ARP请求详解

合集下载

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构ARP协议详解与ARP报文结构ARP(Address Resolution Protocol,地址解析协议)是一个重要的网络协议,用于将IP地址与MAC地址相互映射。

在局域网中,每个主机都有一个唯一的IP地址和MAC地址,而ARP协议则负责通过目标IP地址获取对应的MAC地址,从而实现数据包的正确传输。

一、ARP工作流程ARP的工作流程可以简单概括为以下几个步骤:1. 发送ARP请求:源主机A在发送数据包时,会先检查目标主机B的IP地址是否与自己在同一局域网中,如果不是,则需要获取目标主机的MAC地址。

A会根据目标主机的IP地址构建一个ARP请求包(ARP Request),该包中包含源主机A的IP地址、MAC地址以及目标主机的IP地址。

然后,A会将ARP请求包广播发送到局域网中的所有主机。

2. 接收ARP请求:局域网中的其他主机收到ARP请求包后会进行筛选,只有与ARP请求包中的目标IP地址相同的主机会继续处理。

3. 发送ARP响应:局域网中的目标主机B收到ARP请求包后会将自己的MAC地址信息封装在一个ARP响应包(ARP Reply)中,并发送给源主机A。

该ARP响应包中包含目标主机B的IP地址、MAC地址以及源主机A的IP地址。

4. 更新ARP缓存表:源主机A收到ARP响应包后会将目标主机B的IP地址与其对应的MAC地址映射关系添加到本地的ARP缓存表中,以备将来使用。

5. 数据传输:当主机A获取到目标主机B的MAC地址后,就可以将待发送的数据包封装在以太网帧中,通过局域网将数据包传输给目标主机B。

二、ARP报文结构ARP报文结构包括以下字段:1. 硬件类型(Hardware Type):占2字节,表示硬件接口类型,例如以太网。

2. 协议类型(Protocol Type):占2字节,表示网络协议类型,例如IPv4或IPv6。

3. 硬件地址长度(Hardware Address Length):占1字节,表示源和目标MAC地址的长度,通常为6(以太网中的MAC地址长度)。

arp请求和相应的具体过程 -回复

arp请求和相应的具体过程 -回复

arp请求和相应的具体过程-回复ARP(Address Resolution Protocol)是一种网络协议,用于将IP地址与MAC地址相互映射,以实现在网络层和链路层之间的通信。

ARP 请求和相应的过程是实现该映射的关键步骤。

本文将逐步解释ARP请求和响应的具体过程。

1. ARP基本概念ARP是一种请求-响应协议,用于获取目标设备的MAC地址。

它由两种主要消息组成:ARP请求和ARP响应。

ARP请求消息包含发送方的IP地址和MAC地址,以及目标设备的IP地址。

ARP响应消息包含发送方的IP和MAC地址,以及目标设备的IP和MAC地址。

2. ARP请求流程当主机A需要与主机B进行通信时,主机A会首先检查其本地的ARP 缓存。

如果目标设备的MAC地址已经在ARP缓存中,则主机A可以直接进行通信。

否则,主机A需要发送ARP请求以获取目标设备的MAC 地址。

3. ARP请求消息格式ARP请求消息包含以下字段:a. 硬件类型:指定链路层的类型,如以太网。

b. 协议类型:指定网络层的类型,如IPv4。

c. 硬件地址长度:指定MAC地址的字节数。

d. 协议地址长度:指定IP地址的字节数。

e. 操作码:指定此消息是ARP请求。

f. 发送方MAC地址:发送方的MAC地址。

g. 发送方IP地址:发送方的IP地址。

h. 目标MAC地址:通常设置为0。

i. 目标IP地址:目标设备的IP地址。

4. ARP请求过程a. 主机A将目标设备的IP地址作为目标IP地址,并设置目标MAC 地址为0,发送ARP请求消息到本地链路。

b. ARP请求消息被封装在数据链路层的帧中,并使用广播地址发送到本地网络上的所有设备。

c. 当主机B接收到ARP请求消息时,它会检查目标IP地址是否与自己的IP地址匹配。

d. 如果主机B的IP地址与目标IP地址匹配,它会将自己的MAC地址作为目标MAC地址,并将其发送到主机A的MAC地址。

e. 如果主机B的IP地址与目标IP地址不匹配,则忽略ARP请求消息。

ARP请求详解

ARP请求详解

ARP请求详解/thread-520007-1.htmlIP地址是不能直接用来进行通信的。

这是因为IP地址只是主机在抽象的网络层中的地址。

若要将网络层中传送的数据报交给目的主机,还要传到链路层转变成MAC帧后才能发送到实际的网络上。

因此,不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

由于IP地址有32 bit,而局域网的硬件地址是48bit,因此它们之间不存在简单的映射关系。

此外,在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。

更换网卡也会使主机的硬件地址改变。

可见在主机中应存放一个从IP地址到硬件地址的映射表,并且这个映射表还必须能够经常动态更新。

地址解析协议ARP很好地解决了这些问题。

每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。

如果不使用ARP高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播方式发送ARP请求分组,这就使网络上的通信量大大增加。

ARP将已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。

(详解过程请参考第2页)ARP将保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10~20分钟)。

凡超过生存时间的项目就从高速缓存中删除掉。

设置这种地址映射项目的生存时间是很重要的。

设想有一种情况。

主机A和B通信。

A的ARP高速缓存里保存有B的物理地址。

但B的网卡突然坏了,B立即更换了一块,因此B的硬件地址就改变了。

A还要和B继续通信。

A 在其ARP高速缓存中查找到B原先的硬件地址,并使用该地址向B发送数据帧。

但B原先的硬件地址已经失效了,因此A无法找到主机B。

但是过了一段时间,A的ARP高速缓存中已经删除了B原先的硬件地址(因为它的存在时间到了),于是A重新广播发送ARP请求分组,又找到了B。

ARP工作原理详解

ARP工作原理详解

ARP工作原理详解ARP(Address Resolution Protocol)是一种用于解决IP地址与MAC地址之间映射关系的网络协议。

在以太网等局域网中,通信设备通过MAC地址来识别和寻址。

而在互联网中,通信设备通过IP地址进行通信。

因此,当一个设备想要向网络中的其他设备发送数据时,需要先通过ARP协议解析出目标设备的MAC地址,以便将数据正确地传输到目标设备。

ARP的工作原理可以简单地分为两个过程:ARP请求和ARP响应。

设备在发送数据之前,会首先在本地ARP缓存中查找目标IP地址对应的MAC地址。

如果ARP缓存中不存在该映射关系,设备就需要发送ARP请求广播,以请求其他设备提供目标MAC地址。

而目标设备在收到ARP请求后,会向发送请求的设备发送ARP响应,将自己的MAC地址告诉请求设备。

这样,发送设备就可以将数据封装成以太网帧,通过MAC地址发送到目标设备了。

下面具体介绍ARP工作原理的过程:1.ARP请求:设备A想要向设备B发送数据,并且A知道B的IP地址,但不知道B的MAC地址。

A首先检查自己的ARP缓存中是否有B的IP-MAC映射关系。

如果没有,A就会发送一个ARP请求广播,包含自己的IP地址和MAC地址。

2.ARP响应:当设备B收到ARP请求时,会检查请求中的目标IP地址是否与自己的IP地址相匹配。

如果匹配,则会向设备A发送一个ARP响应,包含自己的IP地址和MAC地址。

3.更新ARP缓存:设备A在收到设备B的ARP响应后,会将B的IP-MAC映射关系存储到自己的ARP缓存中,以便将来使用。

这样,设备A就可以通过MAC地址向设备B发送数据了。

总结一下,ARP工作原理的过程可以概括为:设备A发送ARP请求,设备B收到请求后发送ARP响应,设备A收到响应后更新ARP缓存。

通过这个过程,设备A就能够得到设备B的MAC地址,从而实现与设备B的通信。

需要注意的是,ARP请求和ARP响应都是通过广播方式发送的,也就是说,所有在同一局域网中的设备都能够接收到这些广播消息。

arp请求和相应的具体过程

arp请求和相应的具体过程

ARP( 地址解析协议)是用于将IP地址解析为MAC地址的协议,以便在局域网上进行通信。

下面是ARP请求和相应的具体过程:1.(首先,发送方主机A要发送数据给目标主机B,但是A并不知道B的MAC地址。

A会检查本地的ARP缓存表,看是否已经有B的IP地址对应的MAC地址。

如果有,A就可以直接发送数据了。

如果没有,A需要发送ARP请求来获取B的MAC地址。

2.(A创建一个ARP请求包,包含以下几个字段:(((-(目标MAC地址:全0 广播地址,表示发送给所有主机)(((-(目标IP地址:B的IP地址(((-(源MAC地址:A的MAC地址(((-(源IP地址:A的IP地址(((-(ARP请求操作码:1 表示ARP请求)3.(A将ARP请求包封装在以太网帧中,并将目标MAC地址设置为广播地址 全FF),以太网帧的目标IP地址设置为B的IP地址,源MAC地址设置为A的MAC地址,源IP地址设置为A的IP地址。

然后A将该帧发送到本地网络上。

4.(所有在本地网络上的主机都会收到这个ARP请求包,但是只有IP地址与请求中的目标IP 地址相同的主机 即B)会作出响应。

5.(B接收到ARP请求包后,检查请求包中的目标IP地址是否与自己的IP地址相匹配。

如果匹配,B将创建一个ARP响应包,包含以下几个字段:(((-(目标MAC地址:A的MAC地址(((-(目标IP地址:A的IP地址(((-(源MAC地址:B的MAC地址(((-(源IP地址:B的IP地址(((-(ARP响应操作码:2 表示ARP响应)6.(B将ARP响应包封装在以太网帧中,并将目标MAC地址设置为发送ARP请求的A的MAC 地址,以太网帧的目标IP地址设置为A的IP地址,源MAC地址设置为B的MAC地址,源IP地址设置为B的IP地址。

然后B将该帧发送到本地网络上。

7.(A接收到ARP响应包后,会检查响应包中的源IP地址是否与自己的IP地址相匹配。

如果匹配,A将从响应包中获取B的MAC地址,并将其添加到ARP缓存表中。

ARP工作原理详解

ARP工作原理详解

ARP工作原理详解ARP(Address Resolution Protocol)是一种在TCP/IP网络中常用的协议,它负责将一个IP地址解析为对应的MAC地址,以实现网络设备之间的通信。

ARP工作原理涉及到以下几个步骤:1.ARP请求:当一个主机需要与另一个主机通信时,它首先检查目标主机的IP地址是否在其本地网络上。

如果目标主机在本地网络上,那么源主机构建一个包含源主机MAC地址和IP地址,以及目标主机IP地址的ARP请求报文,并将其广播到本地网络上的所有主机。

2.ARP应答:本地网络上的所有主机都会接收到ARP请求报文,但只有目标主机会响应。

目标主机检查自己的IP地址是否与ARP请求报文中的目标IP地址相同。

如果相同,目标主机会构建一个ARP应答报文,其中包含自己的MAC地址和IP地址,并将其单播回源主机。

3.ARP缓存:源主机收到目标主机的ARP应答报文后,会将目标主机的IP地址和MAC地址的映射关系存储在本地的ARP缓存中,以便以后快速检索。

这样,在源主机向目标主机发送数据时,就可以直接使用目标主机的MAC地址,而不需要再进行ARP解析。

4.ARP缓存更新:ARP缓存中的映射关系是有限期的。

为了保证实时性,源主机会定期发送ARP请求报文,以确认目标主机的存活状态。

如果目标主机没有回复ARP请求,源主机会将其从缓存中删除。

当然,如果目标主机的IP地址发生了变化,源主机也会重新进行ARP解析,更新缓存中的映射关系。

需要注意的是,ARP是一种无状态协议,它不对报文进行确认或重传。

因此,如果在ARP请求过程中出现丢包或冲突,通信的双方可能需要重新发送ARP请求,直到建立起正确的映射关系。

此外,还有一种称为逆向ARP(Reverse Address Resolution Protocol,RARP)的协议,它与ARP相反,负责将一个MAC地址解析为对应的IP地址。

RARP在特定的场景下使用,例如无盘工作站在启动时需要通过网络获取自己的IP地址。

抓包arp报文解析

抓包arp报文解析

抓包arp报文解析****在计算机网络的世界中,抓包和报文解析是网络诊断和调试的重要手段。

ARP(Address Resolution Protocol)报文作为IP地址与MAC地址转换的关键,了解其结构和解析方法对于网络管理人员和技术爱好者来说至关重要。

本文将详细介绍如何抓取ARP报文并进行解析。

---**抓包ARP报文解析**### 1.抓取ARP报文首先,我们需要使用抓包工具来捕获网络中的ARP报文。

Wireshark是最常用的抓包工具之一,以下是其基本操作步骤:- 下载并安装Wireshark。

- 打开Wireshark,选择正确的网络接口开始捕获数据包。

- 在过滤栏输入`arp`以只显示ARP相关的报文。

- 进行网络活动(如尝试ping另一台设备),以触发ARP请求和响应。

### 2.ARP报文结构一旦捕获到ARP报文,我们可以看到它包含以下主要字段:- **硬件类型(Hardware Type)**:指明网络硬件的类型,例如以太网为0x01。

- **协议类型(Protocol Type)**:通常为IPv4,其值为0x0800。

- **硬件地址长度(Hardware Address Length)**:指硬件地址的长度,以太网MAC地址长度为6。

- **协议地址长度(Protocol Address Length)**:指IP地址的长度,IPv4地址长度为4。

- **操作码(Opcode)**:标识ARP请求(1)或ARP响应(2)。

- **发送者硬件地址(Sender Hardware Address)**:发送方的MAC 地址。

- **发送者协议地址(Sender Protocol Address)**:发送方的IP地址。

- **目标硬件地址(Target Hardware Address)**:接收方的MAC地址(在ARP请求中通常为全0)。

- **目标协议地址(Target Protocol Address)**:接收方的IP地址。

arp协议的解析过程

arp协议的解析过程

arp协议的解析过程ARPA(地址解析协议)是一种局域网(LAN)协议,它用于将IP 地址转换为物理地址,即MAC地址。

它还可以识别本地网络中的主机,并检查网络上其他主机的存在。

许多网络协议都使用ARP来完成地址解析功能,包括TCP/IP、IPX和AppleTalk。

ARP协议的解析过程非常简单,但很有效。

当一台计算机想要发送一个数据包到另一台计算机时,它会发送一个广播ARP请求。

此广播ARP请求是一个使用广播通信机制的数据包,其中包含了发送方和接收方的IP地址。

每个网络上的主机都会收到此ARP请求,但只有接收方才会回复一个ARP应答,以及它的MAC地址。

发送方收到ARP 应答后,就可以用它的MAC地址继续发送数据包。

ARP协议建立在其他协议的基础上运行,并有效地解析IP地址到MAC地址。

ARP使用什么样的协议取决于本地网络的连接类型。

如果本地网络是基于以太网的,它会使用以太网ARP(Ethernet ARP)协议。

而如果本地网络是基于令牌环的,它会使用令牌环ARP(Token Ring ARP)协议。

无论使用哪种协议,ARP协议解析这样的步骤都是一样的:发送ARP请求,接收ARP应答,然后用收到的MAC地址发送数据包。

为了更有效地使用ARP协议,大多数系统都支持ARP缓存(也称为ARP表)。

一旦计算机接收到ARP应答,它就会把接收方的IP地址和MAC地址保存到ARP缓存中。

以后,它就会检查ARP缓存,而不是发送新的ARP请求,以节省网络带宽。

在局域网内,每个主机的ARP缓存列表大致相同,但是当此主机发送数据包到Internet时,它的ARP缓存列表就完全不同了,因为Internet上的每个主机都有一个不同的IP地址。

ARP协议也被用于防止ARP欺骗,也称为ARP伪造。

ARP伪造是一种攻击方法,允许攻击者伪造网络中其他主机的IP地址,以便解除网络上数据的传输权限。

比如,当攻击者伪装成另一台连接到网络的计算机时,就可以收集他人的网络数据包。

ARP详解

ARP详解

ARPARP作用ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。

在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。

但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。

APR就是实现这个功能的协议。

ARP报文结构ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。

图 1 ARP报文结构●硬件类型:表示硬件地址的类型。

它的值为1表示以太网地址;●协议类型:表示要映射的协议地址类型。

它的值为0x0800即表示IP地址;●硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。

对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;●操作类型(OP):1表示ARP请求,2表示ARP应答;●发送端MAC地址:发送方设备的硬件地址;●发送端IP地址:发送方设备的IP地址;●目标MAC地址:接收方设备的硬件地址。

目标IP地址:接收方设备的IP地址。

ARP地址解析过程假设主机A和B在同一个网段,主机A要向主机B发送信息。

如图1-2所示,具体的地址解析过程如下:(1)主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。

如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2)如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。

ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。

由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

arp报文种类

arp报文种类

arp报文种类ARP(地址解析协议)是一种用于将IP地址映射到物理硬件地址的协议。

它在计算机网络中起到了重要的作用,可以使计算机在进行网络通信时能够准确找到目标设备的物理地址。

ARP报文是为了实现ARP协议而发送的数据包,主要包含以下几种种类:1. ARP请求报文(ARP Request):这种类型的报文用于计算机发送一个ARP请求来查找目标设备的物理地址。

ARP Request报文包含发送方的IP地址和物理地址,以及目标设备的IP地址。

2. ARP响应报文(ARP Reply):当目标设备收到ARP请求报文后,会发送一个ARP响应报文以回应请求。

ARP Reply 报文包含目标设备的IP地址和物理地址,并将其发送给请求方。

3. RARP请求报文(RARP Request):RARP是逆地址解析协议,与ARP相反,它是通过物理地址来查找目标设备的IP地址。

RARP Request报文包含发送方的物理地址,并请求接收方提供对应的IP地址。

4. RARP响应报文(RARP Reply):当接收方收到RARP请求报文后,会发送一个RARP响应报文以回应请求。

RARP Reply报文包含接收方的IP地址,并将其发送给请求方。

5. Gratuitous ARP报文:这种类型的ARP报文用于在网络中广播自己的IP和MAC地址,以便其他设备更新其ARP缓存表。

Gratuitous ARP报文与普通的ARP请求和响应报文不同,它没有目标地址,而是将目标地址设置为源地址。

在实际的网络通信中,ARP报文扮演着非常重要的角色。

它可以帮助计算机在进行通信时找到目标设备的物理地址,从而确保数据包准确地发送到目标设备。

同时,ARP报文还可以用于更新设备间的ARP缓存表,保证网络通信的高效性和稳定性。

总结:ARP报文主要包括ARP请求报文、ARP响应报文、RARP请求报文、RARP响应报文和Gratuitous ARP报文。

arp协议原理

arp协议原理

ARP协议原理1. ARP协议概述ARP(Address Resolution Protocol)是一种用于在局域网(LAN)中解析网络层地址和物理层地址的协议。

它的主要作用是通过已知的IP地址获取对应的MAC地址,以便在数据链路层进行通信。

2. ARP工作原理ARP协议的工作原理可以分为两个阶段:ARP请求和ARP应答。

2.1 ARP请求当一台主机需要与另一台主机进行通信时,它首先会在自己的ARP缓存中查找目标主机的MAC地址。

如果找到了对应的MAC地址,则直接发送数据包到目标主机;如果没有找到,则需要发送ARP请求。

ARP请求是以广播的形式发送的,即发送给同一个局域网中的所有主机。

请求中包含了源主机的IP地址和MAC地址,以及目标主机的IP地址。

2.2 ARP应答当目标主机收到ARP请求后,会根据请求中的IP地址判断是否是自己的地址。

如果是自己的地址,则会用自己的MAC地址作为应答发送给源主机;如果不是自己的地址,则不做任何响应。

源主机收到ARP应答后,将目标主机的IP地址和MAC地址添加到自己的ARP缓存中,并且将之前等待发送的数据包重新发送给目标主机。

3. ARP缓存ARP缓存是每个主机在通信过程中维护的一个表格,用于记录IP地址和MAC地址的对应关系。

当一台主机发送ARP请求时,会先在自己的ARP缓存中查找目标主机的MAC地址,如果找到了则直接发送数据包,如果没有找到则发送ARP请求。

ARP缓存中的记录会有一个过期时间,如果在过期时间内没有再次通信,则会将该记录删除。

当主机收到ARP应答时,会更新对应的记录,并且重置过期时间。

4. ARP攻击ARP协议的设计存在一定的安全风险,容易受到ARP攻击。

ARP攻击是指攻击者通过伪造ARP请求或应答,篡改网络中主机的ARP缓存,以达到劫持通信、中断通信或者进行中间人攻击的目的。

为了防止ARP攻击,可以采取一些安全措施,如使用静态ARP表、ARP防火墙、ARP检测等。

arp 原理 -回复

arp 原理 -回复

arp 原理-回复arp(Address Resolution Protocol)是一种网络协议,它用于将IP地址解析为对应的MAC地址。

本文将详细介绍ARP原理。

一、ARP概述ARP是在TCP/IP协议族中的网络层使用的一种协议。

它的主要作用是通过网络层的IP地址获取数据链路层的MAC地址,以便在局域网中正确地发送数据包。

在一个局域网中,每个计算机设备都有一个唯一的MAC地址和一个IP地址。

而在进行网络通信时,需要知道目标计算机的MAC地址才能正确地发送数据包。

而ARP协议就是用于动态地维护一个IP地址与MAC地址的对应关系表,这个表也被称为ARP缓存或者ARP表。

二、ARP工作原理1. ARP请求过程当主机A要向主机B发送数据包时,主机A首先会检查本地的ARP缓存表,看是否有目标主机B的IP地址和对应的MAC地址。

若有缓存,主机A直接使用该MAC地址进行封装数据包并发送。

若缓存中没有目标主机B的MAC地址,则主机A发送ARP请求数据包,该数据包包含目标主机B的IP地址,源主机A的MAC地址和IP地址。

该ARP请求被广播到整个局域网中的所有设备。

当目标主机B收到ARP请求数据包后,会检查源主机A的IP地址是否与自身的IP地址相匹配。

若相匹配,则主机B收到该ARP请求,并发送一个ARP响应数据包。

2. ARP响应过程当主机B接收到ARP请求数据包后,检查源IP地址与自身IP地址是否匹配。

如果匹配,则将自身的MAC地址封装到ARP响应数据包中,并向主机A发送ARP响应。

主机A接收到ARP响应数据包后,将目标主机B的IP地址和对应的MAC 地址添加到本地的ARP缓存表中。

之后,主机A可以使用这个MAC地址封装数据包,并通过局域网发送到主机B。

三、静态ARP缓存与动态ARP缓存ARP缓存表根据其记录方式,可以分为静态ARP缓存和动态ARP缓存。

1. 静态ARP缓存静态ARP缓存是通过手动配置的方式建立的,管理员可以根据需要预先添加对应关系到ARP缓存中。

arp报文种类

arp报文种类

arp报文种类ARP(地址解析协议)是一种用于解析IP地址和MAC地址之间关系的网络协议。

在正常的网络通信中,数据是通过IP地址进行传输的,但实际的数据交换却是通过MAC地址完成的。

ARP协议就是用来完成IP地址和MAC地址的对应工作。

ARP报文是在ARP协议中用来传输ARP数据的一种数据格式。

根据ARP的不同功能,可以分为以下几种类型的ARP报文:1. ARP请求报文:当一个主机需要发送数据到另一个主机时,它首先要确认目标主机的MAC地址。

这时,它会发送一个ARP请求报文到网络中的所有主机,请求目标主机响应自己的MAC地址。

2. ARP应答报文:当网络中的主机收到ARP请求报文时,如果发现自己是被请求的目标主机,就会发送一个ARP应答报文作为响应。

这个报文中包含目标主机的MAC地址。

3. ARP通告报文:某些主机会定期发送ARP通告报文,用以更新网络中其他主机对自己MAC地址的认识。

这个通告报文中包含发送主机的IP地址和MAC地址。

4. RARP请求报文:RARP(逆地址解析协议)是ARP的一种变种协议,用于将MAC地址解析为IP地址。

与ARP请求报文相反,RARP请求报文中包含了发送主机的MAC地址,请求得到该主机的IP地址。

5. RARP应答报文:当网络中的RARP服务器接收到RARP请求报文时,会将MAC地址与IP地址进行对应,并发送一个RARP应答报文作为响应。

以上是一些常见的ARP报文类型。

通过ARP报文的传输,主机可以在发送数据前获得目标主机的MAC地址,从而保证数据能够被正确地发送到目标主机。

同时,通过定期发送ARP 通告报文,网络中的主机可以及时更新其他主机对自己MAC 地址的认识,保证网络通信的顺畅。

总结起来,ARP报文在网络通信中起到了关键的作用,它用于解析IP地址和MAC地址之间的对应关系,帮助数据包正确地发送到目标主机。

了解并掌握常见的ARP报文类型,对于网络管理和故障排查都是非常重要的。

arp协议的作用工作原理

arp协议的作用工作原理

arp协议的作用工作原理ARP(Address Resolution Protocol,地址解析协议)是一种互联网协议,用于将IP地址映射到物理MAC地址。

其作用是在IP网络中,使计算机能够准确地找到和通信。

工作原理当一个设备想要与同一网络上的其他设备通信时,它首先检查目标IP地址是否与其本地网络(局域网)相同。

如果不相同,则设备需要找到一个可以将IP地址转换为对应的MAC地址的方式。

这就是使用ARP的时候。

具体地,以下是ARP的工作原理:1.发送ARP请求:设备A(源设备)要发送数据给设备B(目标设备),但设备A只知道目标设备的IP地址,并不知道目标设备的MAC地址。

因此设备A将发送一个ARP请求广播到本地网络,该请求包含设备A的IP地址和MAC地址。

2.ARP缓存查询:本地网络上的每个设备都会接收到这个ARP请求。

设备B接收到请求后,会检查自己的ARP缓存表中是否已经包含了设备A的IP地址和MAC地址。

如果存在,设备B将直接响应ARP响应消息,而不必进行以下步骤。

如果不存在,设备B将继续执行下一步。

3.ARP响应:设备B通过广播发送一个ARP响应消息,包含自己的MAC地址和IP 地址。

其他设备在收到该消息后,会将设备B的IP地址和MAC地址添加到其ARP缓存表中,以备将来使用。

4.ARP缓存表更新:设备A接收到ARP响应消息后,将设备B的IP地址和MAC地址添加到自己的ARP缓存表中。

5.数据通信:现在设备A已经知道设备B的MAC地址,因此可以使用该地址将数据包发送到设备B。

6.ARP缓存表超时和更新:由于网络中设备的IP地址和MAC地址可能会发生变化,因此设备的ARP缓存表中的条目具有一定的过期时间。

在过期之前,设备会定期发送ARP请求来更新缓存表中的地址信息。

作用ARP协议在互联网中具有以下重要作用:1.IP地址到MAC地址映射:ARP协议通过将IP地址映射到对应的MAC地址,使得设备能够准确地找到和通信。

ARP请求

ARP请求

从下面的文章我们了解到,对于一个设备用的ARP协议而言,重要的东西包括三方面:1.一个本地的IP与MAC地址的缓存表.以有对应的更新和查询操作.2.一个发送ARP请求的函数.3.一个处理ARP回复的函数.下面我们来看uIP中是如何实现的(代码见uip_arp.c:首先,定义一个缓存表的数据结构,99行起:struct arp_entry {u16_t ipaddr[2];struct uip_eth_addr ethaddr;u8_t time;};只有三个项,很简单第一项是ip地址,16*2=4*8位的,保存四个八位组.第二项是MAC地址.第三项是缓存更新时间.下来是ARP请求发送函数:/*-----------------------------------------------------------------------------------*//*** Prepend Ethernet header to an outbound IP packet and see if we need* to send out an ARP request.*为传出的IP包添加以太网头并看是否需要发送ARP请求.* This function should be called before sending out an IP packet. The* function checks the destination IP address of the IP packet to see* what Ethernet MAC address that should be used as a destination MAC* address on the Ethernet.*此函数应该在发送IP包时调用,它会检查IP包的目的IP地址,看看以太网应该使用什么目的MAC地址.* If the destination IP address is in the local network (determined* by logical ANDing of netmask and our IP address), the function* checks the ARP cache to see if an entry for the destination IP* address is found. If so, an Ethernet header is prepended and the* function returns. If no ARP cache entry is found for the* destination IP address, the packet in the uip_buf[] is replaced by* an ARP request packet for the IP address. The IP packet is dropped* and it is assumed that they higher level protocols (e.g., TCP)* eventually will retransmit the dropped packet.*如果目的IP地址是在局域网中(由IP地址与子网掩码的与逻辑决定),函数就会从ARP缓存表中查找有*无对应项.若有,就取对应的MAC地址,加上以太网头,并返回,否则uip_buf[]中的数据包会被替换成一个*目的IP在址的ARP请求.原来的IP包会被简单的仍掉,此函数假设高层协议(如TCP)会最终重传扔掉的包.* If the destination IP address is not on the local network, the IP* address of the default router is used instead.*如果目标IP地址并非一个局域网IP,则会使用默认路由的IP地址.* When the function returns, a packet is present in the uip_buf[]* buffer, and the length of the packet is in the global variable* uip_len.函数返回时,uip_buf[]中已经有了一个包,其长度由uip_len指定.*//*-----------------------------------------------------------------------------------*/voiduip_arp_out(void){struct arp_entry *tabptr;/* Find the destination IP address in the ARP table and constructthe Ethernet header. If the destination IP addres isn't on thelocal network, we use the default router's IP address instead.//在ARP表中找到目的IP地址,构成以太网头.如果目的IP地址不在局域网中,则使用默认路由的IP.If not ARP table entry is found, we overwrite the original IPpacket with an ARP request for the IP address. *///如果ARP表中找不到,则将原来的IP包替换成一个ARP请求./* First check if destination is a local broadcast. 首先检查目标是不是广播*/if(uip_ipaddr_cmp(IPBUF->destipaddr, broadcast_ipaddr)) {memcpy(IPBUF->ethhdr.dest.addr, broadcast_ethaddr.addr, 6);} else {/* Check if the destination address is on the local network. 检查目标地址是否在局域网内 */if(!uip_ipaddr_maskcmp(IPBUF->destipaddr, uip_hostaddr, uip_netmask)) {/* Destination address was not on the local network, so we need touse the default router's IP address instead of the destinationaddress when determining the MAC address. 目的地址不在局域网内,所以保用默认路由器的地址来确在MAC地址*/uip_ipaddr_copy(ipaddr, uip_draddr);} else {/* Else, we use the destination IP address. 否则,使用目标IP地址*/uip_ipaddr_copy(ipaddr, IPBUF->destipaddr);}for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {//这里遍历表,对比目的IP与ARP缓存表中的IP.tabptr = &arp_table;if(uip_ipaddr_cmp(ipaddr, tabptr->ipaddr)) {break;}}if(i == UIP_ARPTAB_SIZE) {/* The destination address was not in our ARP table, so weoverwrite the IP packet with an ARP request. 如果遍历到头没找到,将原IP包替换为ARP请求并返回*/memset(BUF->ethhdr.dest.addr, 0xff, 6);memset(BUF->dhwaddr.addr, 0x00, 6);memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);uip_ipaddr_copy(BUF->dipaddr, ipaddr);uip_ipaddr_copy(BUF->sipaddr, uip_hostaddr);BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */BUF->hwtype = HTONS(ARP_HWTYPE_ETH);BUF->protocol = HTONS(UIP_ETHTYPE_IP);BUF->hwlen = 6;BUF->protolen = 4;BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);uip_appdata = &uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN];uip_len = sizeof(struct arp_hdr);return;}/* Build an ethernet header. 如果是在局域网中,且在ARP缓存中找到了(如果没找到进行不到这一步,在上面就返回了),则构建以太网头*/memcpy(IPBUF->ethhdr.dest.addr, tabptr->ethaddr.addr, 6);}memcpy(IPBUF->ethhdr.src.addr, uip_ethaddr.addr, 6);IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);uip_len += sizeof(struct uip_eth_hdr);}以上内容自325行起.下面再总结一下其基本顺序:用IPBUF->ethhdr.dest.addr来存储目的IP地址,它有可能是局域网内一主机,也可能是路由器(如果是发往外网,即原来的目的IP不在局域网内),还有可能是广播专用的MAC:broadcast_ethaddr.addr.先看是不是在广播:如果是广播,将IPBUF->ethhdr.dest.addr设为广播MAC.再看是不是在局域网内:如果不是,则将IPBUF->ethhdr.dest.addr设为路由器MAC.如果在局域网内,查看是否已经存在于ARP缓存表中:如果不在,将要发送的换成ARP请求,返回.如果已存在,则查找使用查找到的MAC地址为IP包添加以太网头.这里还要解释一些细节问题,主要是:1.如何在IP包上添加以太网头2.如果将IP包替换成ARP请求,ARP请求的格式是什么.3.广播地址将IP包替换成ARP请求部分代码(实际上IP包是放在uip_buf[]里的,这里只是将uip_buf[]填充上ARP请求即可),于uip_arp.c的388行:1./* The destination address was not in our ARP table, so we2. overwrite the IP packet with an ARP request. */3.4. memset(BUF->ethhdr.dest.addr, 0xff, 6);5. memset(BUF->dhwaddr.addr, 0x00, 6);6. memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);7. memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);8.9. uip_ipaddr_copy(BUF->dipaddr, ipaddr);10. uip_ipaddr_copy(BUF->sipaddr, uip_hostaddr);11. BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */12. BUF->hwtype = HTONS(ARP_HWTYPE_ETH);13. BUF->protocol = HTONS(UIP_ETHTYPE_IP);14. BUF->hwlen = 6;15. BUF->protolen = 4;16. BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);17. uip_appdata = &uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN];18.19. uip_len = sizeof(struct arp_hdr);20. return;复制代码首先解释这里的BUF(于uip_arp.c的116行):1.#define BUF ((struct arp_hdr *)&uip_buf[0])复制代码可见这里的BUF就是uip_buf[],只不过这里将它取做一个struct arp_hdr的结构体:1.struct arp_hdr {2. struct uip_eth_hdr ethhdr;3. u16_t hwtype; //硬件类型4. u16_t protocol; //协议类型5. u8_t hwlen;6. u8_t protolen;7. u16_t opcode; //操作码8. struct uip_eth_addr shwaddr; //源以太网地址9. u16_t sipaddr[2]; //源IP地址10. struct uip_eth_addr dhwaddr; //目的以太网地址11. u16_t dipaddr[2]; //目的IP地址12.};复制代码这里需要了解一下ARP的帧格式(【相关资料】ARP分组格式(帧格式,报文格式)):1.struct uip_eth_hdr {2.struct uip_eth_addr dest;3.struct uip_eth_addr src;4.u16_t type;5.};复制代码这是arp_hdr的第一个成员ethhdr的类型定义,对应图片中的前三项:6+6+2,目的以太网地址,源以太网地址,2字节数据类型(ARP请求和应答为0x0806).struct arp_hdr的第二个成员u16_t hwtype,对应图片中第三项,2字节硬件类型(值为1表示以太网).struct arp_hdr的第三个成员u16_t protocol,对应图片中第四项,2字节要映射的协议地址类型(ip地址为0x0800).struct arp_hdr的第四个成员u8_t hwlen,对应图片中第五项,1字节硬件地址长度(对MAC地址来说为6).struct arp_hdr的第五个成员u8_t protolen,对应图片中第六项,1字节协议地址长度(对IP地址来说为4).struct arp_hdr的第六个成员u16_t opcode,对应图片中第七项,2字节操作码(1 ARP请求,2 ARP应答,3 RARP请求,4 RARP应答,必须字段).struct arp_hdr的第七个成员struct uip_eth_addr shwaddr,对应图片中第八项,6字节源以太网地址.struct arp_hdr的第八个成员u16_t sipaddr[2];,对应图片中第九项,2字节源IP地址. struct arp_hdr的第九个成员struct uip_eth_addr dhwaddr,对应图片中第十项,6字节目标以太网地址.struct arp_hdr的第十个成员u16_t dipaddr[2];,对应图片中第十一项,2字节目标IP地址.上面绿色的表示已经详解的,红字的表示要进一步说明的.这就是一个ARP帧的结构,可以看到,里面的源和目的以太网地址都是重复的.我们再看函数中的代码:1.memset(BUF->ethhdr.dest.addr, 0xff, 6);2.memset(BUF->dhwaddr.addr, 0x00, 6);3.memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);4.memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);复制代码这里四个memset,重复的源和目的以太网地址一起设置了,四个memset对应图片中的1,10,2,8项.但是:对1和10两项,都是源以太网地址,但置的值是不同的,分别为0xff*6和0x00*6.为什么会这样呢?因为他们的用处不一样,见:【相关资料】ARP分组格式(帧格式,报文格式)6+6–以太网的源地址和目的地址,目的地址为全1的为广播地址注意这里说,目的地址为全为1的广播地址.什么意思?当你发送一个ARP请求是,你是想知道一个IP对应的以太网地址(即MAC地址),但是你现在不知道目的主机的以太网地址,你问谁啊?不知道问谁,这种情况下,只能是广播一下了,0xff*6就是广播地址.从图片中可以看到,ARP包是分成两部分的,前6+6+2叫做"以太网首部",它的意义就是"分组是从谁(源地址)发给谁(目的地址)的什么类型(帧类型,请求和应答为0x0806)",第二部分则是内容.来看这个例子:请求帧如下(为了清晰在每行的前面加了字节计数,每行16个字节):以太网首部(14字节)0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06ARP帧(28字节)0000: 00 010010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 370020: 00 00 00 00 00 00 c0 a8 00 02填充位(18字节)0020: 00 77 31 d2 50 100030: fd 78 41 d3 00 00 00 00 00 00 00 00以太网首部:目的主机采用广播地址,源主机的MAC地址是00:05:5d:61:58:a8,上层协议类型0x0806表示ARP。

试说明arp协议的工作原理

试说明arp协议的工作原理

试说明arp协议的工作原理ARP(Address Resolution Protocol)是一种网络协议,用于将IP地址转换为物理地址,也称为MAC地址。

这篇文章将生动地介绍ARP协议的工作原理,并提供一些指导,让读者更好地理解和应用该协议。

ARP协议的工作原理如下:1. 设备发送ARP请求:当一个设备(发送方)想要与网络中的另一个设备(接收方)通信时,它首先会检查自己的ARP缓存,看是否已知接收方的MAC地址。

如果没有,则发送一个ARP请求广播到网络上的所有设备。

2. ARP请求的格式:ARP请求包含发送方的MAC地址、IP地址和接收方的IP地址。

发送方将该请求以广播的形式发送到网络上的所有设备。

3. 接收方响应ARP请求:网络上的所有设备都会接收到ARP请求,但只有目标设备会响应。

当接收方设备接收到ARP请求时,它会将自己的MAC地址和IP地址作为ARP响应发送给发送方。

4. ARP响应的格式:ARP响应包含发送方和接收方的MAC地址和IP地址。

发送方接收到ARP响应后,将会把接收方的MAC地址存储在本地ARP缓存中,以备以后使用。

5. 更新ARP缓存:发送方设备在收到ARP响应后,将会更新本地的ARP缓存,以便于将来的通信。

这样,在通信过程中,发送方就无需再次发送ARP请求,直接使用ARP缓存中的MAC地址即可。

通过以上步骤,ARP协议使设备能够将IP地址转换为物理地址,并建立有效的通信。

然而,ARP协议也存在一些局限性和安全风险,需要我们注意:1. ARP缓存的过期机制:由于网络的变化,ARP缓存中的信息可能会过期。

发送方设备需要定期刷新和更新ARP缓存,以保证通信的准确性和稳定性。

2. ARP欺骗攻击:恶意用户可以利用ARP协议的特性进行ARP欺骗攻击。

他们可以发送伪造的ARP响应来欺骗其他设备,使其将通信流量发送给攻击者。

为防止此类攻击,可以使用网络防火墙等安全措施来检测和阻止ARP欺骗行为。

arp表的原理

arp表的原理

arp表的原理ARP表什么是ARP表?ARP(Address Resolution Protocol)表是一个用于将IP地址与MAC地址进行映射的网络协议。

在一个局域网中,每个设备都有一个唯一的MAC地址,而IP地址则用于在网络上唯一标识设备。

ARP表就是用来记录设备之间IP地址和MAC地址的对应关系的。

ARP的工作原理1.ARP请求:当一个设备需要与另一个设备进行通信时,它首先会检查自己的ARP表,看是否已经有了目标设备的MAC地址。

如果没有,那么它会发送一个ARP请求广播到局域网上的所有设备,询问“谁有IP地址为的设备的MAC地址?”。

2.ARP应答:收到ARP请求的设备会检查自己的IP地址是否与请求中的IP地址相匹配。

如果匹配,它会发送一个ARP应答给请求方,告诉它自己的MAC地址是什么。

3.更新ARP表:请求方收到应答后,会将目标设备的IP地址和MAC地址添加到自己的ARP表中,并将该条目标记为“已解析”。

如果请求方之前已经有了目标设备的条目,但是MAC地址有变化,那么会更新该条目的MAC地址。

ARP表的作用ARP表的作用非常重要,它可以加速设备之间的通信并提高网络效率。

以下是ARP表的几个作用:•IP地址与MAC地址的映射:ARP表记录了设备之间IP地址与MAC地址的对应关系,使得设备可以根据IP地址找到对应的MAC地址,从而进行通信。

•减少ARP请求:ARP表可以缓存已解析过的IP地址和MAC地址的对应关系,当需要与该设备通信时,直接从ARP表中取出对应的MAC地址,无需发送ARP请求。

•更新MAC地址变化:当设备的MAC地址发生变化时,ARP表能够自动更新对应的条目,确保设备之间的通信不受干扰。

ARP表的管理管理ARP表是网络管理员的一个重要工作,以下是几个常见的ARP表管理方法。

•清空ARP表:当网络出现问题时,有时需要清空ARP 表并重新建立所有设备的IP和MAC地址映射关系,以修复通信问题。

ARP协议和http协议

ARP协议和http协议

ARP协议和http协议协议名称:ARP协议(Address Resolution Protocol)协议描述:ARP(Address Resolution Protocol)是一种用于在网络层和数据链路层之间进行通信的协议。

它的主要功能是将IP地址转换为物理地址(MAC地址),以便在局域网中进行数据包的传输。

协议内容:1. ARP请求和响应消息格式:- 源MAC地址:发送ARP请求或响应消息的设备的MAC地址。

- 源IP地址:发送ARP请求或响应消息的设备的IP地址。

- 目标MAC地址:ARP请求的目标设备的MAC地址,或者ARP响应的发送设备的MAC地址。

- 目标IP地址:ARP请求的目标设备的IP地址,或者ARP响应的发送设备的IP地址。

2. ARP请求过程:- 设备A需要发送数据包给设备B,但不知道设备B的MAC地址。

- 设备A发送一个ARP请求消息,其中包含自己的MAC地址和IP地址,以及目标设备B的IP地址。

- 所有设备在局域网上接收到该ARP请求消息。

- 设备B检查ARP请求消息中的目标IP地址是否与自己的IP地址匹配。

- 如果匹配,设备B发送一个ARP响应消息,其中包含自己的MAC地址和IP地址。

- 设备A接收到ARP响应消息,并将设备B的MAC地址与IP地址关联起来。

- 设备A使用设备B的MAC地址发送数据包。

3. ARP缓存:- 设备在接收到ARP响应消息后,将发送设备的IP地址和MAC地址存储在本地的ARP缓存中。

- 在发送数据包时,设备首先检查ARP缓存中是否有目标设备的MAC地址。

- 如果有,设备直接使用缓存中的MAC地址发送数据包。

- 如果没有,设备需要发送一个ARP请求消息来获取目标设备的MAC地址。

协议名称:HTTP协议(Hypertext Transfer Protocol)协议描述:HTTP(Hypertext Transfer Protocol)是一种用于在客户端和服务器之间进行通信的协议。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。
如果不使用ARP高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播方式发送ARP请求分组,这就使网络上的通信量大大增加。ARP将已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。(详解过程请参考第2页)
设想有两个主机可以直接使用硬件地址进行通信(具体实现方法暂不必管)。再假定其两个主机的网卡都同时坏了,然后又都更换了一块,因此它们的硬件地址也都改变了。这时,这两个主机怎样能够知道对方的硬件地址呢?显然很难。但IP地址是独立于主机或路由器的硬件地址的。硬件地址的改变不会影响使用IP协议的主机的通信。
ARP将保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10~20分钟)。凡超过生存时间的项目就从高速缓存中删除掉。设置这种地址映射项目的生存时间是很重要的。设想有一种情况。主机A和B通信。A的ARP高速缓存里保存有B的物理地址。但B的网卡突然坏了,B立即更换了一块,因此B的硬件地址就改变了。A还要和B继续通信。A在其ARP高速缓存中查找到B原先的硬件地址,并使用该地址向B发送数据帧。但B原先的硬件地址已经失效了,因此A无法找到主机B。但是过了一段时间,A的ARP高速缓存中已经删除了B原先的硬件地址(因为它的存在时间到了),于是A重新广播发送ARP请求分组,又找到了B。
因此,在虚拟的IP网络上用IP地址进行通信给广大的计算机用户带来很大的方便。
那么就可能会产生这样的问题:既然在网络链路上传送的帧最终是按照硬件地址找到目的主机的,那么为什么我们不直接使用硬件地址进行通信,而是要使用抽象的IP地址并调用ARP来寻找出相应的硬件地址呢?
这个问题必须弄清楚。
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。但统一的IP地址把这个复杂问题解决了。连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
由于IP地址有32 bit,而局域网的硬件地址是48bit,因此它们之的主机加入进来,或撤走一些主机。更换网卡也会使主机的硬件地址改变。可见在主机中应存放一个从IP地址到硬件地址的映射表,并且这个映射表还必须能够经常动态更新。地址解析协议ARP很好地解决了这些问题。
这里需要指出,ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,例如,在TCP/IP详解卷1中,第29页的例子,那么这时就要借助于网络层的协议,配合链路层协议才能将数据报成功的发送到目的主机上。(详解过程请参考第3页)
这里要指出的是,这种从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。
相关文档
最新文档