您的位置:首页 > 理论基础 > 计算机网络

TCP/IP协议卷学习---基础部分(四 ARP协议)

2020-07-18 04:48 183 查看

1 ARP过程(ftp bsdi bsdi一个域名举例)
①通过DNS解析出主机IP地址
②准备与目标地址建立TCP链接,发送TCP数据包并通过IP包装
③如果目标主机在本地网络上,那么数据可以直接发送到目标主机,如果数据不在本地网络上,则通过选路函数先发送给默认路由,再有下一站路由转发
④假定目标机器是本地以太网上的一台机器,则需要知道这台机器的MAC地址才能发送数据,因此首先需要将ARP请求广播到本地网络的每台主机上。包括目标主机的IP,意思为谁为这个IP则回复你的MAC地址
⑤目标主机收到这份广播后判断自己是不是这个IP,如果是则应答ARP请求并附上自己的IP+MAC。
⑥收到ARP应答之后将目标硬件地址与IP缓存到本地的ARP高速缓存中,默认存储20分钟。并发送IP数据包。(通过 arp -a 可以看到高速缓存中的arp地址)。
2 ARP的数据包

①以太网目标地址,目标地址全为1表示广播。源地址表示发起ARR请求主机MAC
②帧类型,表示后面的数据是什么类型的,ARP的帧类型为0X0806
③硬件类型,1表示以太网地址。协议类型,0X0800表示IP地址。因为ARP协议可以适用于多网络类型的多网络类型地址,所以这里区分硬件以及协议。
④硬件地址长度,以太网为6。协议地址长度,IP为4。
⑤op,操作字段。ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和RARP应答(值为4)。
⑥发送端以太地址,IP地址。接收端以太地址,IP地址。字面意思,注意,以太网首部的目的地址与这里的发送端以太网地址是相同的。在ARP请求中,没有的字段都是可以填充的,例如ARP请求中,没有目的以太地址,这里就可以填充占位。
⑦当主机发现自己就是目的以太地址时,只需要把OP改为2,然后写入发送端以太地址,并把目的以太地址换为发送端的以太地址即可。
3 不存在的ARP主机
如果ARP的目的主机不存在,则第1次请求发生后5.5秒进行第2次请求,在24秒
之后又进行第3次请求(后面看T C P的超时和重发算法的细节)。tcpdump命令输出的超时限制为 29.5秒,大多数的超时时间都是75秒。
4 ARP代理
如果A R P请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托 A R P或A R P代理(Proxy ARP)。这样可以欺骗发起A R P请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。
5 免费ARP
在主机启动的时候可以发送一个ARP请求,携带自己的IP地址以及MAC,并且发送端以及接收端IP都是自己的IP,这个时候如果收到一个应答,则说明网络中有一个其他主机IP与自己重复,此时会在终端记录一条错误日志,并交给管理员来处理
主机关机重启可能换了网卡,这个时候其他主机接收到ARP请求之后,必须更新自己ARP高速缓存中的地址。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: