TCP/IP详解卷1:第四/五章(ARP和RARP)

1. ARP基础知识

数据链路层以48bit地址进行通信。所以ARP为IP地址到对应的硬件地址之间提供动态映射。而RARP是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或X终端),它需要系统管理员进行手工设置。
TCP/IP详解卷1:第四/五章(ARP和RARP)

2. 关于ARP的一个例子

我们执行一个ftp命令时:
ftp bsdi
都会进行以下这些步骤:
1) 应用程序FTP客户端调用函数gethostbyname把主机名转换成32bit的IP地址。这个函数在DNS(域名系统)中称作解析器。我们也可以在/etc/hosts中查看
leichaojian@ThinkPad-T430i:~$ cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	ThinkPad-T430i

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
2) FTP客户端请求TCP用的到的IP地址建立连接。
3) TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报。
4) 如果目的主机在本地网络上,那么IP数据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本机网络上的下一站路由器地址,并让它转发IP数据报。
5) 假定是一个以太网,那么发送端主机必须把32bit的IP地址变换成48bit的以太网地址。(ARP所要实现的功能)
6) ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,其意思是:如果你是这个IP地址的拥有者,请回答你的硬件地址。
TCP/IP详解卷1:第四/五章(ARP和RARP)
7) 目的主机的ARP层收到这份官博报文后,识别出这是发送端在询问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。
8) 收到ARP应答后,使ARP进行请求--应答交换的IP数据报现在就可以传送了。
9) 发送IP数据报到目的主机。
在ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的IP地址和采用不同网络计数的硬件地址之间提供动态映射。
点对点链路不使用ARP。当设置这些链路时(一般是在引导过程进行),必须告知内核链路每一端的IP地址,像以太网地址这样的硬件地址并不涉及。


3. ARP的分组格式

TCP/IP详解卷1:第四/五章(ARP和RARP)
1) 帧类型:表示后面数据的类型,对于ARP为0x0806
2)  硬件类型:为1表示以太网地址
3) 协议类型:为0x0800表示IP地址
4) 硬件协议长度和协议地址长度:对于ARP来说分别为6或4
5) op:ARP请求(1),ARP应答(2),RARP请求(3)和RARP应答(4)
6) 硬件地址为6字节(48bit),而IP地址为4字节(32bit)

4. ARP举例

由于没有环境进行测试,这步先放着,后期补上。

你可能感兴趣的:(unix,tcp/ip详解卷1)