Windows Server入门系列之十七 ARP协议原理

简介:

ARP,“AddressResolutionProtocol”(地址解析协议),是网络层的重要辅助协议,用于在以太网中获取某一IP地址对应的节点MAC地址。

根据OSI七层模型的定义,数据在每一层都要经过处理或封装,其中封装的操作主要发生在三个层:传输层、网络层、数据链路层。

  • 在传输层,要在数据头部加上源端口号和目的端口号,封装成数据段,然后送给下一层网络层。

  • 在网络层,要在数据段的头部加上源IP地址和目的IP地址,封装成数据包,再送给下一层数据链路层。

  • 在数据链路层,要在数据包的头部加上源MAC地址和目的MAC地址,封装成数据帧,最后送给物理层进行编码传输。

我们在网络中通信时,首先必须要知道对方的IP地址以及端口号,但对方的MAC地址却很少去关心。根据OSI七层模型理论,如果不知道目的MAC地址,就无法封装数据帧,数据也就发送不出去。我们之所以没有关注到目的MAC地址,这是因为目的MAC地址是由系统自动获取的,而系统获取目的MAC地址的方法,正是依赖于ARP协议。

所谓ARP地址解析,就是主机在发送数据帧前通过目的IP地址解析出相应目的MAC地址的过程。

ARP协议以广播的方式工作,因为广播信号不能通过路由器,所以ARP协议的解析范围只能限于本地网络,即一台主机只能知道与它处在同一网络中的其它主机的MAC地址。

在每台安装有TCP/IP协议的主机里都有一个ARP缓存表,用来记录与该主机处在同一网络中的其它主机的IP地址与MAC地址之间的对应关系,ARP表中的记录并不固定,它们都是动态建立和维护的。

下面介绍一下ARP地址解析的过程,网络拓扑如图1所示。

image

假设主机A要与同一网络中的主机B进行通信,一般要经过如下几个步骤:

①主机A检查自己的ARP缓存表中是否有与主机B的IP地址相对应的MAC地址。

②如果有,就用B的MAC地址封装数据帧,然后发送出去。

③如果没有,主机A就以广播的形式向网络中发送一个ARPRequest(ARP请求)数据帧,查询主机B的MAC地址。

ARPRequest数据帧的封装结构如图2所示:

image

④在图1的网络拓扑中,路由器将整个网络分隔成2个网段,每个网段都是一个广播域。主机A所在广播域中的所有主机和网络设备都能接收到这个ARP请求数据帧,它们会查看帧中请求的目的IP地址与自己是否一致,如果不一致则忽略。当主机B收到此广播帧后,发现目的IP地址与自己一致,然后就以单播形式将自己的MAC地址利用ARPResponse(ARP响应)数据帧传给主机A,同时将主机A的IP地址与MAC地址的对应关系写入自己的ARP缓存表中。

ARPResponse数据帧的封装结构如图3所示:

image

⑤主机A收到主机B的ARP响应数据帧后,将据此更新自己的ARP缓存表,然后按正确的MAC地址向主机B发送信息。

如果主机A要与不同网段中的主机C通信,由于数据必须要经过路由器转发(应将路由器左侧接口的IP地址192.168.1.1设为主机A的默认网关),因而ARP要解析的并非是主机C的MAC地址,而是网关192.168.1.1所对应的MAC地址。

此时ARPRequest和ARPResponse数据帧的封装结构如图4所示:

image

同样,如果主机C要回复主机A,那么它要解析的也是它的默认网关192.168.2.1所对应的MAC地址。因而,一台主机如果要与不同网段中的计算机进行通信,那么它必须要通过ARP解析出默认网关的MAC地址。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1328854


相关文章
|
3月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
4月前
|
存储 缓存 网络协议
dpdk课程学习之练习笔记二(arp, udp协议api测试)
dpdk课程学习之练习笔记二(arp, udp协议api测试)
63 0
|
3月前
|
存储 缓存 网络协议
ARP协议:地址解析协议
ARP协议:地址解析协议
40 0
|
1月前
|
网络协议 数据格式
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
|
2月前
|
存储 缓存 网络协议
|
2月前
|
存储 缓存 网络协议
【网安 | 网络协议】ARP协议(地址解析协议)
【网安 | 网络协议】ARP协议(地址解析协议)
194 1
|
3月前
|
网络协议 API 网络安全
用户态协议栈设计实现udp,arp与icmp协议
用户态协议栈设计实现udp,arp与icmp协议
61 1
|
4月前
|
缓存 网络协议 网络架构
【网络层】子网划分、无分类编址CIDR、构成超网、ARP协议
【网络层】子网划分、无分类编址CIDR、构成超网、ARP协议
32 0
|
4月前
|
缓存 网络协议
Wireshark中的ARP协议包分析
Wireshark可以跟踪网络协议的通讯过程,本节通过ARP协议,在了解Wireshark使用的基础上,重温ARP协议的通讯过程。 ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。 主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 在Wireshark界面,我们可以看到19、20号数据包,就是一对标准的ARP请求和响应包。