arp學習筆記(linux高性能服務編程)

先看看arp的定義吧linux

image

如今linux運行這條命令tcp

tcpdump -i eth0:1 -ent '(dst 192.168.5.190 and src 192.168.5.109)or( dst 192.168.5.109 and src 192.168.5.190)' -xblog

bc:ee:7b:9d:ee:02 > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 192.168.5.190 tell 192.168.5.109, length 46
    0x0000:  0001 0800 0604 0001 bcee 7b9d ee02 c0a8
    0x0010:  056d 0000 0000 0000 c0a8 05be 0000 0000
    0x0020:  0000 0000 0000 0000 0000 0000 0000
40:16:7e:79:c7:36 > bc:ee:7b:9d:ee:02, ethertype ARP (0x0806), length 42: Reply 192.168.5.190 is-at 40:16:7e:79:c7:36, length 28
    0x0000:  0001 0800 0604 0002 4016 7e79 c736 c0a8
    0x0010:  05be bcee 7b9d ee02 c0a8 056dip

咱們同時把 數據16進制打印出來了get

先 分析 請求arp的包it

0001 ---表示硬件類型爲mac地址ast

0800 ---表示要映射的協議類型,這裏爲ip地址硬件

06    ---表示mac地址長度請求

04    ---表示ip地址長度程序

0001 ---表示 arp請求

bcee 7b9d ee02  ---發送方mac地址啦 也就是本機啦

c0a8 056d ---發送方ip 192.168.5.109

0000 0000 0000 --- 目標mac,這裏是全網啦,未知

c0a8 05be --- 目標端ip地址,也就是 192.168.5.190

再分析 arp響應的包

0001 ---表示硬件類型爲mac地址

0800 ---表示要映射的協議類型,這裏爲ip地址

06    ---表示mac地址長度

04    ---表示ip地址長度

0002 ---表示 arp響應

4016 7e79 c736 --- 發送方mac地址

c0a8 05be ---發送方ip地址

bcee 7b9d ee02 ---接收mac地址

c0a8 056d ---接收方ip地址

 

image 

image

arp的數據長度不足46,因此要補0啦 啦,這是一個規定爲何能看到迴應是42字節而請求是60字節。由於迴應這層數據還沒經過太網設備驅動程序,若是是2臺PC通信的話,再另一臺上看,必定是60字節的哦!剛開始我也很迷惘謝謝這位大哥 http://blog.163.com/cailing_07@126/blog/static/339150872011112693647977/ 解惑
相關文章
相關標籤/搜索