TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

把这三个协议放到一块儿学习是由于这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层能够从ARP获得数据的传送信息,而从IP获得要传输的数据信息。缓存

1.IP协议

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

1.1.IP协议头

如图所示工具

ip协议报头

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

如今的ip版本号是4,因此也称做IPv4。如今还有IPv6,并且运用也愈来愈普遍了。spa

1.2.IP路由选择

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

最特殊的状况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就能够了。至因而怎么直接传递的,这就要靠ARP协议了,后面会讲到。router

稍微通常一点的状况是,主机经过若干个路由器(router)和目的主机链接。那么路由器就要经过ip包的信息来为ip包寻找到一个合适的目标来进行传递,好比合适的主机,或者合适的路由。路由器或者主机将会用以下的方式来处理某一个IP数据包接口

  1. 若是IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。
  2. 搜索路由表,优先搜索匹配主机,若是能找到和IP地址彻底一致的目标主机,则将该包发向目标主机
  3. 搜索路由表,若是匹配主机失败,则匹配同子网的路由器,这须要“子网掩码(1.3.)”的协助。若是找到路由器,则将该包发向路由器。
  4. 搜索路由表,若是匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,若是找到路由器,则将该包发向路由器。
  5. 搜索陆游表,若是以上都失败了,就搜索默认路由,若是默认路由存在,则发包
  6. 若是都失败了,就丢掉这个包。

这再一次证实了,ip包是不可靠的。由于它不保证送达。生命周期

1.3.子网寻址

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。ip

2. 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”命令:

Interface: 192.168.11.3 --- 0x2
  Internet Address      Physical Address      Type
  192.168.11.1          00-0d-0b-43-a0-2f     dynamic
  192.168.11.2          00-01-4a-03-5b-ea     dynamic

 

 

都会获得这样的结果。

这样的高速缓存是有时限的,通常是20分钟(伯克利系统的衍生系统)。

3.RARP协议(略)

相关文章
相关标签/搜索