实验一网络协议分析
一、实验目的
1. 掌握网络分析原理;
2. 学习Ethereal协议分析软件的使用;
3. 加深对基本协议的理解。
二、实验内容
1.掌握协议分析软件Ethereal的使用;
2.分析以太网帧格式;
3.IP、ICMP、TCP、UDP数据包格式。
三、实验所用仪表及设备
1.S3760(1台)、PC机(2台)
2.实验拓扑
四、实验步骤
1.双击启动桌面上ethereal图标,按ctrl+K进行“capture option”的选择。选择正确的NIC,
进行报文的捕获。
2.Capture packets in promiscuous mode表示是否打开混杂模式,打开即捕获所有的报文,
一般我们只捕获到本机收发的数据报文,所以关掉。
3.在Capture option中设置过滤规则(Capture filter)后,点击start就开始进行抓包,同时
就会弹出“Ethereal:capture form (nic) driver”,其中(nic)代表本机的网卡型号。该界面会
以协议的不同统计捕获到报文的百分比。
4.点击stop即可以停止抓包。
5.分析IP、ICMP等网络层协议数据包首部;
6.分析UDP和TCP协议数据首部,分析TCP三次握手机制。
五、实验结果:
六、数据报文的分析实例【数据见前页图】
1、以太网数据帧分析
字节 6 6 2 4 以太网 MAC 帧
所抓数据包为
分析:“00 1f d0 8d 00 06”是目的MAC 地址,“ 00 1d 0f 90 08 9e ”是源MAC 地址,“08 00”是数据类型,表示里面封装的是IP 数据包。
2、IP 数据包分析
所抓数据包为
第一个字节“45”高四位是4,表示此数据报是IPv4版本;低四位是5,表示首部长度,由于首部长度以4字节为单位,所以IP 数据包的首部长度为20字节。第二个字节“00”表示服务类型。第3、4个字节是“00 28”,表示数据报的总长度是40(=2
×16+8)字节。第5、6个字节是“fc 22”表示标识字段。第7个字节“40”的高4位表示标志字段,低4位和第8个字节“00”组成片偏移字段。第9个字节“38”表示生存时间;第10个字节“06”表示数据包的数据部分属于哪个协议,此值代表的协议是TCP 协议。第11、12两个字节表示首部校验和。第13到16字节“ ca 6c 16 2b ”的
4个字节表示源IP 地址是202.108.22.43。第17到20个字节“C0 a8 01 69”表示目的IP 地址是
192.168.1.105。
所抓数据包为
前两个字节“00 50”表示的是源端口号,“04 6a”表示是目的端口号,第5到8个字节“84 e4 e2 04”表示的是序号字段值,第9到12个字节“61 fa 08 a3”表示的是确认序号值。第13个字节“50”的高4为位表示数据偏移字段值,该TCP报文数据偏移字段值是5,该字段表示报文首部的长度,以4字节为单位,所以该TCP报文的首部长度是28字节。第14个字节“10”表示,ACK=409。第15、16个字节“09 d0”表示窗口字段值是2512,即告诉发送端在没有收到确认之前所能发送最多的报文段的个数。第17、18个字节“2d 1b”校验和字段。第19、20个字节“00 00”表示紧急指针字段值。剩下的其他字节是TCP报文的选项部分。
七、思考题
1. TCP的顺序号和确认号有什么规律?
答:数据分包发送,顺序号用来在目的终端重组数据,确认号用来确认接收终端收到了哪些包。
2. TCP数据中为什么没有总长度?
答:他有一个标明是否是结尾报文的标志位,只有最后的那个报文会置为0。所以可以通过收到的报文算出来。
3. UDP校验和根据什么计算?
答:首先,把校验和字段置0。然后,对首部中每个16bit进行二进制反码求和,在最后将高16位的数加到低16。(把整个首部看成是有一串16bit的字组成0,结果存在校验和字段中。包括:源IP + 目的IP + 0x00 + 0x11 + UDP长度+ 源端口号+ 目的端口号+ UDP长度+ 16UDP校验和(0x0000)+ 数据+ 0x00(如果数据为奇数字节)