第四章 ARP: 地址解析协议

来源:互联网 发布:2017编程一小时 编辑:程序博客网 时间:2024/04/28 07:27

一下面例子为例:

%ftp bsdi

   应用程序FTP客户端调用函数gethostbyname函数把主机名(bsdi)转换成32 bit的IP地址。这个函数在DNS中称作解析器。

   FTP客户端请求TCP用得到的IP地址建立连接。

   TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报。

    如果目的主机在本地网络上,那么IP数据报可以直接发送到目的主机上。如果目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。在这两种情况下,IP数据报都是被发送到位于本地网络上的一台主机或路由器。

    假定是一个以太网,那么发送端主机必须把32bit的IP地址转换成48bit的以太网地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。这就是ARP功能。ARP本来是用于广播网络的,有许多主机或路由器连在同一个网络上。

    ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址。

    目的主机的ARP层收到这份广播报文后,识别出这是发送端在询问他的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。

    收到ARP应答后,使ARP进行请求--应答交换的IP数据包现在就可以发送了。

    发送IP数据报到目的主机。


  点对点链路不使用ARP。当设置这些链路时,必须告知内核链路每一端的IP地址。





如果ARP请求是从一个网络的主机发送到另一个网络上的主机,那么连接这两个网络的路由器就可以应答该请求,这个过程称作ARP或ARP代理。