Chinaunix首页 | 论坛 | 博客
  • 博客访问: 900002
  • 博文数量: 119
  • 博客积分: 2493
  • 博客等级: 大尉
  • 技术积分: 2363
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-03 14:00
文章分类

全部博文(119)

文章存档

2013年(19)

2012年(100)

分类: LINUX

2012-08-30 14:08:57

       tcpdump是linux下的抓包工具。和wireshark的作用差不多,只是
wireshark是带图形界面的,而tcpdump是命令行形式的。通过该工具可以
分析很多协议。
---------------------------------------------------------------------------------------
一,使用tcpdump分析ICMP协议。
        使用ICMP协议的典型例子就是ping命令。现在在局域网内ping一
台主机。命令如下:

  1. ping -s 10 192.168.1.102
其中加一个参数-s表示ICMP的数据报长度为10 byte.默认的情况为56 byte.

使用如下命令抓包:

  1. linux@linux:~$ sudo tcpdump -X -i eth0
其中-X表示将抓的包的头部用16进制显示出来。

  1. 11:45:06.379759 IP linux > glinuxi-G31M-ES2C.local: ICMP echo request, id 
  2. 16290, seq 21, length 18
  3.     0x0000: 4500 0026 0000 4000 4001 b6af c0a8 0171 E..&..@.@......q
  4.     0x0010: c0a8 0166 0800 4c42 3fa2 0015 c2e1 3e50 ...f..LB?.....>P
  5.     0x0020: 5dcb 0500 0809 ].....
  6. 11:45:06.379874 IP glinuxi-G31M-ES2C.local > linux: ICMP echo reply, id 16290, 
  7. seq 21, length 18
  8.     0x0000: 4500 0026 9592 0000 4001 611d c0a8 0166 E..&....@.a....f
  9.     0x0010: c0a8 0171 0000 5442 3fa2 0015 c2e1 3e50 ...q..TB?.....>P
  10.     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 0166


c0a8 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 序列号

-----------------------------------------------------------------------------------------




阅读(1426) | 评论(0) | 转发(0) |
0

上一篇:core dump

下一篇:ARP

给主人留下些什么吧!~~