ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## IP协议 两个计算机在英特网中传递数据时,先是通过ip找到目标计算机所在的网络。然后再子网络的内部,通过广播的方式找到该子网络中的哪个设备。 * **分层实现:**对网路协议进行分层以后,数据链路层的实现不需要考虑数据之间的转发,网络层的实现不需要考数据链路层的影响。 * **分工合作:**IP地址是会随着主机接入网络的不同而发生改变的,而MAC一般不会改变。这样的话,我们可以使用IP地址进行寻址,当数据报和目的主机处于同一网络时,就使用MAC地址进行数据交付。 ## IP报文 * **生存时间(TTL,Time To Live)**:占用8位二进制位,它指定了数据报可以在网络中传输的最长时间。实际应用中把生存时间字段设置成了数据报可以经过的最大路由器数。TTL的初始值由源主机设置(通常为32、64、128或256),一旦经过一个处理它的路由器,它的值就减1。当该字段为0时,数据报就丢弃,并发送ICMP报文通知源主机,因此可以防止进入一个循环回路时,数据报无休止地传输下去。 * **上层协议标识**:占用8位二进制位,IP协议可以承载各种上层协议,目标端根据协议标识就可以把收到的IP数据报送到TCP或UDP等处理此报文的上层协议了。 ## ARP协议 前面说到IP地址用来寻址,当目的地址和数据报处于同一网络时,MAC地址用来交付数据报。现在有一个问题,主机A要给主机B发送消息,消息经过一系列地转发,终于找到了主机B的IP地址。但是,我们都知道,数据在链路层的传输是需要MAC地址的,仅仅知道B的IP地址是无法进行通信的。请看下面这张图: ![](https://img.kancloud.cn/d6/7d/d67d916ebb8c73c7842539b19514b5f8_1240x892.jpeg) 这个时候,ARP协议就派上用场了。ARP全称是地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行,它是IPv4中网络层必不可少的协议。 **如同交换机工作在数据链路层一样,路由器是工作在网络层的。交换机有CAM表,路由器也有路由表。** 现在路由器要给主机B发送一条消息,必须得知道主机B的MAC地址才能进行通信。这个时候路由器会发送一个ARP请求,该请求是以广播的形式发送的,每一台连接到该路由器的主机都收到得到这条消息。但是只有主机B检查到自己的IP地址符合要求。于是主机B发送给路由器一条ARP响应,把自己的MAC的地址告诉了路由器。就像下面图示的那样: ![](https://img.kancloud.cn/a2/6a/a26aec4edca72d59f982a6be1d73e434_1588x988.jpeg) 每次路由器发送一个ARP请求的时候,就会增加一条数据,这一条数据记录了IP地址对应的MAC地址,这样路由器下次再给该主机发送消息的时候就不用广播了。当然如同交换机的CAM表中的数据有生存了时间一样,路由表中的数据也有生存时间。试想一下,如果数据一直存在,那么路由器岂不是需要花大量的存储空间来缓存已经失效的数据。