《TCP/IP详解 卷1:协议》 读书笔记 第4章 ARP:地址解析协议

一、引言

当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit以太网地址(MAC地址)来确定目的接口的。设备驱动程序从不检查IP数据报中的目的IP地址。
地址解析为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址。

  • ARP为IP地址到对应的硬件地址之间提供动态映射。
  • RARP是被那些没有磁盘驱动器的系统使用的。

二、ARP运行过程

一个FTP客户端传输过程如下:

  1. FTP调用函数gethostbyname把主机名用DNS转换成32bit的IP地址。
  2. 用IP地址建立TCP连接。
  3. TCP发送一个连接请求到远端的主机上。
  4. 如果目的主机在本地网络上,那么直接发送到该主机;如果不在本地,那么就需要通过IP选路函数来确定下一跳路由器地址。
  5. 如果链路层是以太网,那么发送端主机需要把32bit的IP地址变换成48bit的以太网地址,这个时候就要用到ARP。
  6. ARP广播发送一份ARP请求的以太网数据帧到以太网上的每个主机,请IP地址相符的拥有者返回硬件地址
  7. 目的主机收到广播报文,返回一个ARP应答
  8. 发送IP数据报。

在ARP背后有一个基本概念,那就是网络接口有一个硬件地址(48bit)。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。
点对点链路不使用ARP,点对点链路发送数据肯定是到另一个点,并不涉及硬件地址。


三、ARP高速缓存

ARP高效运行的关键是每个主机上都有一个ARP高速缓存,存放着IP和MAC地址的映射。
48bit的以太网地址用6个十六进制的数来表示,中间以冒号隔开。


四、ARP的分组格式

ARP请求和应答分组的格式如下:
ARP格式

  • 目的地址和源地址:全1的为广播地址。电缆上所有以太网接口都要接受广播的数据帧。
  • 帧类型:表示后面的数据类型(ARP请求/ARP应答/RARP请求/RARP应答),请求的值为0x0806.
  • 硬件类型:比如以太网。
  • 协议类型:比如IP协议。
  • 硬件地址长度和协议地址长度:以字节为单位。
  • op操作:支出4种操作类型,ARP请求/ARP应答/RARP请求/RARP应答,值分别为1/2/3/4.

可以用tcpdum指令来查看运行过程。
当系统受到ARP请求或发送ARP应答时,都要把请求端的硬件地址和IP地址存入ARP高速缓存中。


ARP代理

如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARPARP代理。(也就是说返回的是路由器的MAC地址和主机的IP)

ARP代理

拨号SLIP链路的两端只拥有一个IP地址140.252.1.183,而SLIP链路的两端却分别有一个IP地址,为什么?因为路由不需要知道拨号SLIP链路每一端的IP地址,它通过分组到达的串行链路接口来确定发送分组的拨号主机。其实这里不是很懂,希望理解的朋友们给我留言解答一下

ARP代理也称作混合ARP或ARP出租,这些名字来自于它的其他用途:通过两个物理网络之间的路由器可以互相隐藏物理网络。


七、免费ARP

免费ARP指主机发送ARP查找自己的IP地址。
主要有2个作用:

  1. 一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。
  2. 如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。

八、arp命令

arp -a显示ARP高速缓存中的所有内容
arp -d删除某一项内容
arp -s增加一项内容
位于命令行末尾的关键字pub和-s选项一起,可以使系统起着主机ARP代理的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值