ARP数据报格式
- 格式:docx
- 大小:53.64 KB
- 文档页数:4
信息安全原理——ARP攻击班级:07计算机1班姓名:胡益铭学号:E07620112ARP原理:ARP,即地址解析协议,实现通过IP地址得知其物理地址。
在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。
为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。
这样就存在把IP 地址变换成物理地址的地址转换问题。
以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。
这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。
ARP数据报格式如下:什么是ARP欺骗:其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。
ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。
从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
第一种ARP欺骗的原理是——截获网关数据。
它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
第二种ARP欺骗的原理是——伪造网关。
它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。
在PC看来,就是上不了网了,“网络掉线了”。
本程序基于C语言,利用winpacp实现往局域网内发自定义的包,以达到ARP欺骗的目的。
首先从/archive/下载4.0beta1-WpdPack和4.0beta1-WinPcap.exe,版本很多,不过最新版本需要64位的系统,本人32位系统用不了。
直接点击4.0beta1-WinPcap.exe安装,然后在C:\Program Files\WinPcap下打开rpcapd.exe 服务。
以太网数据格式与各种报文格式一、数据封装当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。
而再这个过程中,每一层都会对要发送的数据加一些首部信息。
整个过程如下图。
如图可以看出,每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据,称为本层的协议数据单元,即PDU.应用层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段),图示为TCP段传输层的数据(TCP段)传给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包); 图示为IP数据包网络层数据报(IP数据包)被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧),图示为以太网帧。
最后,帧被转换为比特,通过网络介质传输。
这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
二、数据格式需要注意的是,这里所说的以太网帧,与我们常说的以太网是不一样的。
下面我们就来介绍每一层数据的首部信息内容。
首先我们知道世界上有个协会叫作IEEE,即电子工程师协会,里面有个分会,叫作IEEE802委员会,是专门来制定局域网各种标准的。
而802下面还有个分部,叫作802.3.就是我们经常提到的IEEE802.3,这个部门制定的规范叫以太网规范,这个以太网规范中就定义了上面提到的“以太网首部”,这个以太网规范,实际只定义了数据链路层中的MAC层和物理层规范。
(注意数据链路层包括MAC子层和LLC子以太网帧格式:以太网常用帧格式有两种,一种是Ethernet II,另一种是IEEE 802.3 格式。
这两种格式区别是:Ethernet II中包含一个Type字段,。
其中Type字段描述了,以太网首部后面所跟数据包的类型,例如Type为0x8000时为IP协议包,Type为8060时,后面为ARP协议包。
以太网中多数数据帧使用的是Ethernet II帧格式。
实验原理:ARP报文格式下图为ARP数据报的报文格式:图2-1 ARP报文格式ARP报文格式具有如下的一些字段:●硬件类型:这是16位字段,用来定义运行ARP的网络的类型。
每一个局域网基于其类型被指派给一个整数。
例如,以太网的硬件类型是1。
ARP可用在任何网络上。
●协议类型:这是16位字段。
用来定义协议的类型。
例如,对IPv4协议,这个字段的值是0x0800。
ARP 可用于任何高层协议。
●硬件地址长度:这是一个8位字段,用来定义以字节为单位的物理地址长度。
例如,以太网物理地址为6字节,所对应的硬件地址长度值为6。
●协议地址长度:标识用于该数据包的逻辑地址的长度,用十进制标识,单位为一个字节,例如,IPv4为4个字节,所对应的协议地址长度值为4。
●操作码:这是16位字段,用来定义数据包的类型。
已定义了两种类型:为1时表示ARP请求,为2时表示ARP应答。
●发送端硬件地址:这是可变长度字段,用来定义发送端的物理地址。
对于以太网这个字段是6字节长。
●发送端逻辑地址:这是可变长度字段,用来定义发送端的逻辑地址。
对于逻辑地址为IP地址的网络,该字段长度为4字节。
●目的端硬件地址:这是可变长度字段,用来定义目标的物理地址。
对于ARP请求,字段是全0,因为发送端不知道目标的物理地址(该字段长度为可变,如以太网硬件地址为6个字节)。
●目的端逻辑地址:这是可变长度字段,用来定义目标的逻辑地址(该字段长度为可变,如IPv4协议的逻辑地址为4个字节)。
ARP封装ARP数据报直接封装在数据链路帧中。
例如,在下图中,ARP数据包封装在以太网的帧中。
类型字段值为0x0806指出了此帧所携带的数据是ARP数据包。
. ARP的运行过程)数据包传输过程可分为如下步骤:1. 发送端知道目的端的IP地址。
2. IP要求ARP创建一个ARP请求报文,其中包含了发送方的物理地址、发送方的IP地址和目的端的IP地址。
目的端的物理地址用0填充。
网络协议报文格式大集合1.HTTP报文格式:HTTP(超文本传输协议)是用于在Web上传输HTML、图片等资源的协议。
HTTP报文分为请求报文和响应报文。
请求报文包括请求行(方法、URI、协议版本)、请求头部(各种参数信息)、请求体(实体内容)。
响应报文包括状态行(协议版本、状态码、状态描述)、响应头部(各种参数信息)、响应体(实体内容)。
2.SMTP报文格式:SMTP(简单邮件传输协议)是用于在网络中传输电子邮件的协议。
SMTP报文分为命令报文和回应报文。
命令报文包括命令行(命令和参数)和命令数据。
回应报文包括状态码和状态描述。
3.FTP报文格式:FTP(文件传输协议)是用于在网络中传输文件的协议。
FTP报文分为命令报文和数据报文。
命令报文包括命令(用户认证、文件操作等)和参数。
数据报文用于传输文件内容。
4.DNS报文格式:DNS(域名系统)是用于将域名转换成IP地址的协议。
DNS报文分为查询报文和响应报文。
查询报文包括标识、查询类型、查询类等字段。
响应报文包括标识、响应类型、响应类等字段。
5.TCP报文格式:TCP(传输控制协议)是用于可靠传输数据的协议。
TCP报文分为报文头和数据部分。
报文头包括源端口号、目的端口号、序号、确认号等字段。
6.UDP报文格式:UDP(用户数据报协议)是用于不可靠传输数据的协议。
UDP报文分为报文头和数据部分。
报文头包括源端口号、目的端口号、长度、校验和等字段。
7.IP报文格式:IP(网际协议)是用于将数据在网络中传输的协议。
IP报文分为报文头和数据部分。
报文头包括版本号、TTL(生存时间)、源IP地址、目的IP地址等字段。
8.ICMP报文格式:ICMP(互联网控制消息协议)是用于在IP网络中传输控制消息的协议。
ICMP报文分为报文头和数据部分。
报文头包括类型、代码、校验和等字段,数据部分根据不同类型的消息而不同。
9.ARP报文格式:ARP(地址解析协议)是用于将IP地址转换成MAC地址的协议。
arp帧格式2010-06-1819:40转载自czdazaiyi最终编辑mxfyangIP地址实现了底层网络物理地址的统一,但因特网技术并没有改变底层的物理网络,数据最终还是要在物理网络上传输,而在物理网络中传输时使用的仍是物理地址。
我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。
那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?这就是ARP的功能。
一、什么是ARP协议ARP协议是“AddressResolution Protocol”(地址解析协议)的缩写。
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。
在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。
所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行.二、ARP解析过程(1)源主机与目的主机位于同一子网中①检查本地ARP高速缓存当要确定同一子网上的目的主机的物理地址时,ARP先检查本地ARP高速缓存,确定IP地址与物理地址的映射,如果包含,则取出目的主机的物理地址,利用这个地址将IP数据报封装成帧。
若不存在就进行下一步。
②向目的主机发送ARP请求ARP请求以物理广播地址在本地子网上广播,并等待目的主机应答,ARP请求包含发送方的IP地址和物理地址,和目的主机的IP地址。
③将请求方的地址信息写入ARP缓存缓存由于ARP请求是子网上的广播,因而该子网中的每台主机都会收到广播,并将自己的IP地址和该ARP请求中的主机IP地址进行比较,如果不匹配,那么ARP请求将被忽略,若匹配,那么目的主机将会把发送方的IP地址与物理地址写入本机ARP告诉缓存中。
协议数据报文格式1、TCP/IP协议层次TCP/IP协议分为四层结构,每一层完成特定的功能,包括多个协议。
本课程实验中相关协议的层次分布如附图3-1所示。
附图3-1 TCP/IP协议层次这些协议之间的PDU封装并不是严格按照低层PDU封装高层PDU的方式进行的,附图3-2显示了Ethernet帧、ARP分组、IP分组、ICMP报文、TCP报文段、UDP数据报、RIP报文、OSPF报文和FTP报文之间的封装关系。
附图3-2 各协议PDU间的封装关系2、Ethernet帧格式最新的IEEE 802.3标准(2002年)中定义Ethernet帧格式如下:其中,类型/长度值小于1536(0x0600)时表示数据字段的长度,大于等于1536(0x0600)时表示数据字段的协议类型。
类型/长度值0x0800表示帧中封装的数据为IP分组,类型值0x0806表示帧中封装的数据为ARP分组。
3、IP分组格式(RFC 791)4、ARP分组格式(RFC 826)操作代码值1表示ARP请求分组,操作代码值2表示ARP响应分组。
5、ICMP报文格式(RFC 792)ICMP回送请求和回送应答报文:ICMP目的不可达报文:ICMP超时报文:6、TCP报文段格式(RFC 793)7、RIP报文格式(版本1-RFC 1058,版本2-RFC2453)RIP请求报文在某些RIP路由表项超时或路由器刚接入互联网时发送,请求报文可以询问特定路由或所有路由。
路由器在回应请求报文时发送携带被询问路由信息的RIP响应报文,也可以定期(30秒)发送携带整个路由表信息的RIP响应报文。
8、OSPF报文格式(RFC 2328)链路状态更新(LSU)报文:链路状态确认(LSAck)报文:链路状态通告(LSA)首部:。
IP 数据包格式版本字段:4位。
当前的IP 协议版本是4,通常称为IPv4。
下一个版本是6,称为IPv6首部长度:4位,IP 数据报首部的长度,每个单位为4个字节。
IP 数据报的长度是4个字节的整数倍。
服务类型:8位,服务类型。
前3位为优先级,用于表示数据报的重要程度,优先级取值从0(普通优先级)到7(网络控制高优先级)。
D 、T 和R 位表示本数据报希望的传输类型。
D 表示低时延(Delay )需求T 表示高吞吐量(Throughput )要求R 代表高可靠性(Reliability )要求。
总长度:总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
标识(identification):占16位。
IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP 是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志(flag):占3位,但目前只有2位有意义。
标志字段中的最低位记为MF(More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
片偏移:占13位。
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
也就是说,相对用户数据字段的起点,该片从何处开始。
片偏移以8个字节为偏移单位。
这就是说,每个分片的长度一定是8字节(64位)的整数倍。
总长度 服务类型版本 首部长度 标识 源站IP 地址寿命 协议首部校验和 片偏移 标志目的站IP 地址IP 选项(可选)填充 数据……生存时间:占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。
arp使用方法ARP使用方法ARP(Address Resolution Protocol)是一种通过网络地址映射到物理地址的协议。
它的作用是将IP地址转化为MAC地址,以便于数据包在网络中进行传输。
在本文中,我们将介绍ARP的使用方法。
1. ARP的工作原理在进行ARP操作前,我们需要先了解它的工作原理,以便于更好地理解如何使用ARP。
ARP的工作原理如下:当主机A要向主机B发送数据包时,首先需要查找主机B的物理地址,以便于将数据包传输到正确的目的地。
主机A向本地网络中的所有主机广播一个ARP请求报文,请求其它主机帮助查找目标主机的物理地址。
如果在网络中有主机B,它将会响应ARP请求报文,并将自己的物理地址发送给主机A。
主机A将目标主机的IP地址和物理地址存储在本地缓存中,以便于后续数据包的传输。
2. ARP的使用方法在Windows系统中,我们可以使用“arp”命令来进行ARP操作。
具体方法如下:1)查看ARP缓存表我们可以使用“arp -a”命令来查看本地ARP缓存表,该表中存储了目标主机的IP地址和对应的物理地址。
如果我们要了解特定主机的物理地址,可以在命令后添加目标主机的IP地址。
例如,“arp -a 192.168.1.1”命令将会显示本地ARP缓存表中192.168.1.1的物理地址。
2)添加静态ARP条目如果我们需要手动指定某个主机的物理地址,可以使用“arp -s”命令添加静态ARP条目。
该条目将会将目标主机的IP地址和对应的物理地址存储在本地ARP缓存表中,以便于后续数据包的传输。
命令格式为“arp -s IP地址物理地址”,例如,“arp -s 192.168.1.1 00-11-22-33-44-55”命令将会将192.168.1.1的物理地址设置为00-11-22-33-44-55。
3)清除ARP缓存表如果我们需要清除本地ARP缓存表中的所有条目,可以使用“arp -d”命令。
报文格式大全(编写:洪先进)Ethernet 数据包格式(RFC894)Ethernet Ⅱ帧格式:目的 MAC 地点源 MAC 地点Type/Length Payload FCS(CRC) 6 bytes 6 bytes 2 bytes 46-1500 bytes 4 bytes VLAN 帧格式:目的 MAC 地点源 MAC 地点Type/Length Payload FCS6 bytes 6 bytes 2 bytes 4 bytes0x81002 bytes 3bits:UserPriority TCI 2bytes1bit:CFI 12bits:VID1、DstMac 的最高字节的最低BIT 位假如为 1,表示此包是以太网组播/广播包,送给 CPU 办理。
2、将 DstMac 和本端口的 MAC 进行比较,假如不一致就抛弃。
3、获得以太网种类字段Type/Length。
0x0800→IP0x0806→ARP 0x8035→RARP 持续进行 3 层的送给 CPU办理。
送给 CPU办理。
IP 包办理。
0x8863→PPPoE discovery stage 0x8864→PPPoE session stage 送给 CPU办理。
持续进行 PPP的2 层包办理。
0x8100→VLAN其余值看作未辨别包种类而抛弃。
PPP 数据包格式标记 7E 地点 FF 控制 03 协议Payload CRC 标记 7E 1byte 1byte 1byte 2bytes 最多 1500bytes 2bytes 1byte1、获得 PPP 包种类字段。
0x0021→IP 持续进行 3 层的 IP 包办理。
0x8021→IPCP 送给 CPU办理。
0xC021→LCP 送给 CPU办理。
0xc023→PAP 送给 CPU办理。
0xc025→LQR 送给 CPU办理。
0xc223→CHAP 送给 CPU办理。
0x8023→OSICP 送给 CPU办理。
TCP/IP协议栈与数据包封装TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。
如下图所示(该图出自)。
图36.1. TCP/IP协议栈两台计算机通过TCP/IP协议通讯的过程如下所示(该图出自)。
图36.2. TCP/IP通讯过程传输层及其以下的机制由内核提供,应用层由用户进程提供(后面将介绍如何使用socket API编写应用程序),应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示(该图出自)。
图36.3. TCP/IP数据包的封装不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
上图对应两台计算机在同一网段中的情况,如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示(该图出自)。
图36.4. 跨路由器通讯过程其实在链路层之下还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的概念。
物理层的能力决定了最大传输速率、传输距离、抗干扰性等。
集线器(Hub)是工作在物理层的网络设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)。
链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。
STP 数据流分析过程一: 以太网帧格式( Ethernet II )数据长度64-1518(前导码不属于数据部分)←—————————以太网帧首部—————————→ ↑ ↑ IP 报文 ARP 报文插入Vlan 标签后 Ethernet II 帧变成 Ethernet 802.1q 帧二:IP 数据报格式 (IP Datagram) 位数7字节 1字节6字节6字节2字节46-1500字 节4字节前导码 帧首定界符 目的MAC 地址 源MAC 地址 类型:3种 数据(可变长度) CRC (帧校验序列 :0x0) 0800:IP 数据报0806:ARP 请求/应答8035:RARP 请求/应答0 4 8 16 19 24 314版 本4首部长度 6区分服务 16总 长 度16标 识3标 志13片 偏 移 8生 存 时 间8协 议:200多种 如 PRO :0 x 1 (ICMP 报文) PRO :0 x 118(STP 协议)16首 部 检 验 和32源地址(IP ) 32目的地址(IP )可 选 字 段,可 变 长 度(如果有)填 充注释:前5行固定字节20 前6行组合成(IP首部)协议:200种最底页IP数据报完整结构IP帧首部(前6行)数据部分↑↑↑↑ICMP报文格式STPOSPF ARP请求三:ARP/RARP格式 (地址解析协议/逆地址解析协议)单位:字节14 2 2 1 1 2 6 4 6 4以太网帧首部硬件类型协议类型硬件地址长度协议地址长度OP (选项字段)0x1:ARP请求0x2:ARP应答源MAC 源IP目的MAC目的IP ←———————————28位字节ARP请求/应答———————————————→数据部分四:ICMP报文 (互联网控制消息协议)单位: 位IP头部20字节(4)类型(4)代码(8)校验和(4)标示符(8)序列号(16)选项(有很多种格式)可不选←—IP部分—→←———————————ICMP格式—————————————→ICMP定义了五种常用差错报文和八种询问报文类型,差错报告报文的类型有一下几个:类型3:目的站不可达格式表达→类型:0x3类型4:源站抑制类型5:改变路由类型11:时间超过类型12:参数问题查询报文的类型有一下几个:类型8或0:回送请求或回答类型13或14:时间戳请求或回答类型17或18:地址掩码请求或回答类型10或9:路由器询问或通告协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。
ARP数据报格式
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。
因此在通讯前必须获得目的主机的硬件地址。
ARP协议就起到这个作用。
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
每台主机都维护一个ARP缓存表,可以用arp -a命令查看。
缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。
想一想,为什么表项要有过期时间而不是一直有效?
ARP数据报的格式如下所示
图 36.7. ARP数据报格式
注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP 请求,op字段为2表示ARP应答。
下面举一个具体的例子。
请求帧如下(为了清晰在每行的前面加了字节计数,每行16个字节):
以太网首部(14字节)
0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06
ARP帧(28字节)
0000: 00 01
0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37
0020: 00 00 00 00 00 00 c0 a8 00 02
填充位(18字节)
0020: 00 77 31 d2 50 10
0030: fd 78 41 d3 00 00 00 00 00 00 00 00
以太网首部:目的主机采用广播地址,源主机的MAC地址是
00:05:5d:61:58:a8,上层协议类型0x0806表示ARP。
ARP帧:硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0001表示请求目的主机的MAC地址,源主机MAC地址为00:05:5d:61:58:a8,源主机IP地址为c0 a8 00 37(192.168.0.55),
目的主机MAC地址全0待填写,目的主机IP地址为c0 a8 00 02(192.168.0.2)。
由于以太网规定最小数据长度为46字节,ARP帧长度只有28字节,因此有18字节填充位,填充位的内容没有定义,与具体实现相关。
应答帧如下:
以太网首部
0000: 00 05 5d 61 58 a8 00 05 5d a1 b8 40 08 06
ARP帧
0000: 00 01
0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02
0020: 00 05 5d 61 58 a8 c0 a8 00 37
填充位
0020: 00 77 31 d2 50 10
0030: fd 78 41 d3 00 00 00 00 00 00 00 00
以太网首部:目的主机的MAC地址是00:05:5d:61:58:a8,源主机的MAC地址是00:05:5d:a1:b8:40,上层协议类型0x0806表示ARP。
ARP帧:硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0002表示应答,源主机MAC地址为00:05:5d:a1:b8:40,源主机IP地址为c0 a8 00 02(192.168.0.2),目的主机MAC地址为00:05:5d:61:58:a8,目的主机IP地址为c0 a8 00 37(192.168.0.55)。
思考题:如果源主机和目的主机不在同一网段,ARP请求的广播帧无法穿过路由器,源主机如何与目的主机通信?。