![](https://csdnimg.cn/release/download_crawler_static/10763523/bg5.jpg)
TCP/IP 学习笔记(3)-IP、ARP、RARP 协议
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP 协议用来找
到目标主机的 Ethernet 网卡 Mac 地址,IP 则承载要发送的消息。数据链路层可
以从 ARP 得到数据的传送信息,而从 IP 得到要传输的数据信息。
IP 协议
IP 协议是 TCP/IP 协议的核心,所有的 TCP,UDP,IMCP,IGCP 的数据都以
IP 数据格式传输。要注意的是,IP 不是可靠的协议,这是说,IP 协议没有提供一
种数据未传达以后的处理机制--这被认为是上层协议--TCP 或 UDP 要做的事情。
所以这也就出现了 TCP 是一个可靠的协议,而 UDP 就没有那么可靠的区别。
IP 协议头
只是那八位的 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 包寻找到一个合适的目标来进行传递,
比如合适的主机,或者合适的路由。路由器或者主机将会用如下的方式来处理某
一个 IP 数据包
如果 IP 数据包的 TTL(生命周期)以到,则该 IP 数据包就被抛弃。