TCP/Socket学习----ARP数据报格式

TCP/Socket学习(亚嵌网络版图书)

ARP数据报格式

ARP的作用:
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的
主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议,如果接收到的
数据包的硬件地址和本机的不符则直接丢弃。因此在通讯前必须获得目的主机的硬
件地址。
ARP协议就起到这样的一个作用,即在通讯前获取目的主机的硬件地址???

ARP的工作原理:
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少“,并将
这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示
广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个
ARP应答数据包给源主机,将自己的硬件地址填写到应答包里。

ARP缓存表:
每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间
(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发
请求ARP。

图36.7ARP数据报格式
看图分析:
以太网首部:
有三部分组成
以太网目的地址  6byte
以太网源地址  6byte
帧类型   2byte

数据报主体:
28字节的ARP请求/应答组成:
硬件类型  2byte
协议类型  2byte
硬件地址长度  1byte
协议地址长度  1byte
op   2byte(op是什么???) 
发送端以太网地址 6byte(发送端的MAC地址)
发送端IP地址  4byte
目的以太网地址  6byte(想要得到的目的MAC地址)
目的IP地址  4byte

注意:硬件类型指链路层网络类型,1为以太网
      协议类型指的是哟转换的地址类型,0x0800为IP地址
      op字段为1表示ARP请求,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(此处本文上面说的有些不符,需要斟酌,上面讲这两个长度都为1个字节),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)
     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值