即时通讯开发之tcp/ip中的ip协议arp协议

wecloud1314 wecloud1314     2023-02-07     119

关键词:

IP 协议是 TCP/IP 协议的核心,所有的 TCP,UDP,IMCP,IGCP 的数据都以 IP 数据格式传输。要注意的是,IP 不是可靠的协议,这是 说,IP 协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP 或 UDP 要做的事情。所以这也就出现了 TCP 是一个可靠的协议,而 UDP 就没有那么可靠的区别。这是后话,暂且不提。

 

挨个解释它是教科书的活计,我感兴趣的只是那八位的 TTL 字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过 多少个路由之后才会被抛弃 (这里就体现出来 IP 协议包的不可靠性,它不保证数据被送达),某个 ip 数据包每穿过一个路由器,该数 据包的 TTL 数值就会减少1,当该数据包的 TTL 成 为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就 在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一 样,一般是32或者是64,Tracerouter 这个工具就是用这个 原理工作的,tranceroute 的-m 选项要求最大值是255,也就是因为这个 TTL 在 IP 协议里面只有8bit。

现在的 ip 版本号是4,所以也称作 IPv4。现在还有 IPv6,而且运用也越来越广泛了。

IP 路由选择

当一个 IP 数据包准备好了的时候,IP 数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路 径来"送货"的呢?

最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。至于是怎么直接传递的,这 就要靠 ARP 协议了,后面会讲到。稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。那么路由器就要通过 ip 包的信息来为 ip 包寻找到一 个合适的目标来进行传递,比如合适的主机,或者合适的路由。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询

 

路由器或者主机将会用如下的方式来处理某一个 IP 数据包:

     如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。
     搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机
     搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要“子网掩码(1.3.)”的协助。如果找到路由器,则将该包
    发向路由器。
     搜索路由表,如果匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,如果找到路由器,则将该包发向路由器。  搜索路由表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包
     如果都失败了,就丢掉这个包。


这再一次证明了,ip 包是不可靠的。因为它不保证送达。

子网寻址

IP 地址的定义是网络号+主机号。但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。最终一个IP 地址就成为 网络号码+子网号+主机号。例如一个 B 类地址:210.30.109.134。一般情况下,这个 IP 地址的红色部分就是网络号, 而蓝色部分就是子网号,绿色部分就是主机号。至于有多少位代表子网号这个问题上,这没有一个硬性的规定,取而代之的则是子网 掩码, 校园网相信大多数人都用过,在校园网的设定里面有一个255.255.255.0的东西,这就是子网掩码。子网掩码是由32bit 的二进 制数字序列,形式 为是一连串的1和一连串的0,例如:255.255.255.0(二进制就是11111111.11111111.11111111.00000000) 对于刚才 的那个 B 类地址,因为210.30是网络号,那么后面的109.134就是子网号和主机号的组合,又因为子网掩码只有后八 bit 为0,所以主 机号 就是 IP 地址的后八个 bit,就是134,而剩下的就是子网号码--109。

ARP 协议

还记得数据链路层的以太网的协议中,每一个数据包都有一个 MAC 地址头么?我们知道每一块以太网卡都有一个 MAC 地址,这个 地址是唯一的,那么 IP 包是如何知道这个 MAC 地址的?这就是 ARP 协议的工作。

ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个 IP 对应的是哪个主机的哪个接口,当主机要发送一个 IP 包的 时候,会首先查一下自 己的 ARP 高速缓存(就是一个 IP-MAC 地址对应表缓存),如果查询的 IP-MAC 值对不存在,那么主机就向网络 发送一个 ARP 协议广播包,这个广播包 里面就有待查询的 IP 地址,而直接收到这份广播的包的所有主机都会查询自己的 IP 地址,如 果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包 含自己的 MAC 地址的 ARP 包传送给发送 ARP 广播的主机,而广播 主机拿到 ARP 包后会更新自己的 ARP 缓存(就是存放 IP-MAC 对应表的地方)。发送 广播的主机就会用新的 ARP 缓存数据准备好数据链 路层的的数据包发送工作。

一个典型的 arp 缓存信息如下,在任意一个系统里面用“arp -a”命令:

都会得到这样的结果。这样的高速缓存是有时限的,一般是20分钟(伯克利系统的衍生系统)。

即时通讯开发之tcp/ip中的tcp协议概述

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠... 查看详情

即时通讯开发之详解tcp/ip中的广播和多播igmp协议

单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主... 查看详情

即时通讯开发之tcp/ip基本概念

在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识... 查看详情

即时通讯tcpudp

TCP协议与UDP协议的区别   首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很... 查看详情

tcp/ip之常用协议

...解析成MAC地址ARP工作过程:源终端与目的终端第一次通讯时,源终端会根据目的ip地址,查询自身的arp表,arp表记录着ip地址与对应mac地址的对应关第一次查询不到目的mac地址,采用广播的方式发送arp请求,... 查看详情

mqtt是ibm开发的一个即时通讯协议,构建于tcp/ip协议上,是物联网iot的订阅协议,借助消息推送功能,可以更好地实现远程控制

...掌握的机制原理,主要讲解理论。背景MQTT是IBM开发的一个即时通讯协议。MQTT构建于TCP/IP协议上,面向M2M和物联网IoT的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了MQTTv3.1协议的开源消息代理软件,提供轻量... 查看详情

tcp/ip协议簇之数据链路层

...帧格式认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响查看硬件地址和MTUARP协议ARP协议的作用ARP协议的工作流程ARP数据报的格式数据链路层用于两个设备(同一种数据链路节点)之... 查看详情

tcp/ip协议簇之数据链路层

...帧格式认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响查看硬件地址和MTUARP协议ARP协议的作用ARP协议的工作流程ARP数据报的格式数据链路层用于两个设备(同一种数据链路节点)之... 查看详情

认识arp协议

什么是ARP?地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理地址的一个TCP/IP协议。在tcp/ip的网络环境下,每个联网的主机都会被分配一个32位的IP地址。ARP协议的作用是把IP地址转换成mac地址,是IP转换成mac地... 查看详情

tcp/ip是啥意思?

...写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它... 查看详情

tcp/ip之常用协议

...解析成MAC地址ARP工作过程:源终端与目的终端第一次通讯时,源终端会根据目的ip地址,查询自身的arp表,arp表记录着ip地址与对应mac地址的对应关第一次查询不到目的mac地址,采用广播的方式发送arp请求,... 查看详情

tcp/ip之常用协议

...解析成MAC地址ARP工作过程:源终端与目的终端第一次通讯时,源终端会根据目的ip地址,查询自身的arp表,arp表记录着ip地址与对应mac地址的对应关第一次查询不到目的mac地址,采用广播的方式发送arp请求,... 查看详情

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

arp抓包实战小结-tcp/ip协议学习

...011-12-2621:36:47图1  一,环境说明硬件连线。PC与2440开发板直接用网线连接。PC的ip地址:192.168.0.107。2440开发板的ip地址:192.168.0.106二,操作在开发板的uboot中用输入命令。Ping192.168.0.107三,抓包及说明:见图1四,疑问点解... 查看详情

lvs原理及部署之arp协议

 1、什么使ARP协议ARP协议,全称"AddressResolutionProtocol",中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC地址)。在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址... 查看详情

tcp/ip,udp,icmp,arp协议族简介--纯图慎点

...错信息,时间,回显,网络信息等报文数据,ICMP在IP报文中的位置为:  通过ICMP协议,判断局域网的某 查看详情

浅析im即时通讯开发中tcp和udp的区别

网络协议是每个搞网络通信应用开发(比如IM、推送、网关等等)的程序员都必须要掌握的基础知识,TCP/IP协议簇中有两个最具有代表性的传输层协议——分别是TCP和UDP。有过网络通信开发经验的同学们都知道,TC... 查看详情