当前位置:网站首页>以太网 ARP
以太网 ARP
2022-08-04 05:32:00 【久违de约定】
在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的 MAC 地址(物理地址),而目的 MAC 地址的获取由 ARP 协议完成。
ARP 概述
ARP(Address Resolution Protocol),即地址解析协议,是根据 IP 地址(逻辑地址)获取 MAC 地址的 一种 TCP/IP 协议。在以太网通信中,数据是以“帧”的格式进行传输的,帧格式里面包含目的主机的 MAC 地址。源主机的应用程序知道目的主机的 IP 地址,却不知道目的主机的 MAC 地址。而目的主机的 MAC 地址直接被网卡接收和解析,当解析到目的 MAC 地址非本地 MAC 地址时,则直接丢弃该包数据,因此在通信前需要先获得目的的 MAC 地址,而 ARP 协议正是实现了此功能。
ARP 协议的基本功能是通过目的设备的 IP 地址,查询目的设备的 MAC 地址,以保证通信的顺利进行。MAC 地址在网络中表示网卡的 ID,每个网卡都需要并有且仅有一个 MAC 地址。在获取到目的 MAC 地址之后,将目的 MAC 地址更新至 ARP 缓存表中,称为 ARP 映射,下次通信时,可以直接从 ARP 缓存表中获取,而不用重新通过 ARP 获取 MAC 地址。但一般 ARP 缓存表会有过期时间,过期后需要重新通过 ARP 协议进行获取。
ARP 映射是指将 IP 地址和 MAC 地址映射起来,分为静态映射和动态映射。
静态映射指手动创建一张 ARP 表,把 IP 地址和 MAC 地址关联起来。手动绑定之后,源主机在通信之 前,就可以直接从 ARP 表中直接找到 IP 地址对应的 MAC 地址,但这样做有一定的局限性,因为 MAC 地 址可能会变化,比如:
主机 B 利用收到的 ARP 请求报文中的请求方物理地址,以单播的方式直接发送给主机 A,主机 A 将收 到的 ARP 应答报文中的目的 MAC 地址解析出来,将目的 MAC 地址和目的 IP 地址更新至 ARP 缓存表中。当再次和主机 A 通信时,可以直接从 ARP 缓存表中获取,而不用重新发起 ARP 请求报文。需要说明的是, ARP 缓存表中的表项有过期时间(一般为 20 分钟),过期之后,需要重新发起 ARP 请求以获取目的 MAC 地址。
ARP 协议通过以太网进行传输,那么必须也要按照以太网所规定的格式进行传输,我们先来介绍下以 太网的帧格式。
以太网是目前应用最广泛的局域网通讯方式,同时也是一种协议。以太网协议定义了一系列软件和硬 件标准,从而将不同的计算机设备连接在一起。我们知道串口通信单次只传输一个字节,而以太网通信是以数据包的形式传输,其单包数据量达到几十,甚至成百上千个字节。下图为以太网通过 ARP 传输单包数据的格式,从图中可以看出,以太网的数据包就是对协议的封装来实现数据的传输,即 ARP 数据位于以太网帧格式的数据段。这里只是让大家了解下以太网数据包的格式。
边栏推荐
猜你喜欢
随机推荐
An abstract class, internal classes and interfaces
第二章 STA相关概念
结构体传参-C语言
LeetCode_Nov_5th_Week
LeetCode_22_Apr_2nd_Week
Pipe redirection
分布式cache项目
ideal life
LeetCode_Nov_1st_Week
counting cycle
Rules.make-适合在编辑模式下看
基于Webrtc和Janus的多人视频会议系统开发6 - 从Janus服务器订阅媒体流
淘宝分布式文件系统存储引擎(一)
EL表达式
[Development Miscellaneous][Editor][Code Reading]ctags & vim
Tencent and NetEase have taken action one after another. What is the metaverse that is so popular that it is out of the circle?
LeetCode_Nov_4th_Week
FAREWARE ADDRESS
LeetCode_Dec_2nd_Week
[Daily Office][Miscellaneous][vscode]tab space