Internet层中的协议
Internet层的职责包括寻址、打包和路由功能。Internet 层与 OSI 模型的网络层类似。Internet 层包含ARP、IP(IPv4、IPv6)、ICMP、IGMP协议,下面将详细地介绍每一种协议。
1.地址解析协议(ARP)
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。ARP 把IP 地址解析成 LAN 硬件使用的媒体访问控制地址。IP数据包常通过以太网发送,但以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为目标硬件地址(MAC地址),以保证通信的顺利进行。
RARP协议,即“Reverse Address Resolution Protocol”(反向地址解析协议)的缩写,RARP负责将主机的物理地址转换为IP地址。例如,局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。ARP和RARP使用相同的报头结构,如图1-18所示。
图1-18 ARP/RARP报头结构
硬件类型 | 协议类型 | |
硬件地址长度 | 协议长度 | 操作类型 |
发送方的硬件地址(0~3字节) | ||
源物理地址(4~5字节) | 源IP地址(0~1字节) | |
源IP地址(2~3字节) | 目标硬件地址(0~1字节) | |
目标硬件地址(2~5字节) | ||
目标IP地址(0~3字节) |
另外,为使广播量最小,ARP维护IP地址到媒体访问控制地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。静态项目一直保留在缓存中,直到重新启动计算机为止。
每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。在工作站PC的Windows环境中,可以使用命令“arp-a”查看当前的ARP缓存,如图1-19所示。在路由器和交换机中可以用show arp完成相同的功能。
下面举个例子:ARP和RARP协议的工作原理。两个位于同一个物理网络上运行TCP/IP的主机,如图1-20所示,主机A和主机B。主机A分配的IP地址是192.168.1.1,主机B分配的IP地址是192.168.1.2。
图1-19 查看ARP缓存
图1-20 ARP工作原理解析
当主机A要与主机B通信时,以下步骤可以将主机B软件指定的地址(192.168.1.2)解析成主机B硬件指定的媒体访问控制地址。
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配硬件地址。
第2步:如果主机A在缓存中没有找到映射,它将询问“192.168.1.2的硬件地址是什么?”从而将ARP请求帧广播到本地网络上的所有主机。源主机A的硬件和软件地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机未找到匹配值,它将丢弃ARP请求。
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,将主机的硬件/软件地址映射添加到本地ARP缓存中。
第4步:主机B将包含其硬件地址的ARP回复消息直接发送回主机A。
第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的硬件/软件地址映射更新ARP缓存。主机B的媒体访问控制地址一旦确定,主机A就能向主机B发送IP通信,为它找到主机的媒体访问控制地址。