tcpdump是linux下的抓包工具。和wireshark的作用差不多,只是
wireshark是带图形界面的,而tcpdump是命令行形式的。通过该工具可以
分析很多协议。
---------------------------------------------------------------------------------------
一,使用tcpdump分析ICMP协议。
使用ICMP协议的典型例子就是ping命令。现在在局域网内ping一
台主机。命令如下:
其中加一个参数-s表示ICMP的数据报长度为10 byte.默认的情况为56 byte.
使用如下命令抓包:
- linux@linux:~$ sudo tcpdump -X -i eth0
其中-X表示将抓的包的头部用16进制显示出来。
- 11:45:06.379759 IP linux > glinuxi-G31M-ES2C.local: ICMP echo request, id
- 16290, seq 21, length 18
- 0x0000: 4500 0026 0000 4000 4001 b6af c0a8 0171 E..&..@.@......q
- 0x0010: c0a8 0166 0800 4c42 3fa2 0015 c2e1 3e50 ...f..LB?.....>P
- 0x0020: 5dcb 0500 0809 ].....
- 11:45:06.379874 IP glinuxi-G31M-ES2C.local > linux: ICMP echo reply, id 16290,
- seq 21, length 18
- 0x0000: 4500 0026 9592 0000 4001 611d c0a8 0166 E..&....@.a....f
- 0x0010: c0a8 0171 0000 5442 3fa2 0015 c2e1 3e50 ...q..TB?.....>P
- 0x0020: 5dcb 0500 0809 0000 0000 0000 0000 ].............
上面显示的结果是使用主机linux(用户名) 去ping局域网内的主机
glinuxi-G31M-ES2C(用户名)从宏观上可以看出这个IP数据报有
38个字节,其中IP数据报报头占20字节,IP数据报的数据部分就是
“装载”的ICMP数据报,ICMP数据报又有8个字节的报头,还有10个
字节的数据。这和 ping -s 10 192.168.1.102 发送10个字节是
吻合的。
首先将ICMP的报头和ICMP的数据封装为ICMP报文。
然后将IP数据报报头和ICMP报文封装为IP数据报(充当IP数据报数据)。
linux > glinuxi-G31M-ES2C.local: ICMP echo request...这组数据是
主机linux向主机glinuxi-G31M-ES2C发送一个ICMP的echo request。
glinuxi-G31M-ES2C.local > linux: ICMP echo reply...该组数据是主机
glinuxi-G31M-ES2C向主机linux作出echo reply。
IP协议数据报格式:
由上面的抓出包的信息分析有:ip数据报报头占20个字节,分别是:4500 0026 0000 4000 4001 b6af
c0a8 0171 c0a8 0166c0a8 0171 对应源地址,c0-->192 a8-->168 01-->1 71--->113
即192.168.1.113
c0a8 0166 对应目的地址,c0-->192, a8-->168,01-->1,66--->102,
即191.168.1.102
0026 该两个字节表示ip数据报的长度, 26---> 38表示ip数据报的长度
为38字节。
4001 后面的01表示该IP所承载的协议的标号是1.而1就表示ICMP协议。-----------------------------------------------------------------------------------
ICMP协议报文格式:由ICMP协议可知,ICMP协议的头部占8个字节。分别是:
0800 4c42 3fa2 0015
08---->8表示类型,根据协议语义可知,类型8表示echo request message
00----->0表示代码。
4c42---->校验和
3fa2----->16290 ID号
0015--->31 序列号
-----------------------------------------------------------------------------------------
阅读(1481) | 评论(0) | 转发(0) |