计算机网络 Exp2.使用Wireshark对网络层的数据报进行分析

本实验通过Wireshark对网络层的ICMP, ARP, DHCP报文及长IP分组的分片进行捕获与解析。在ICMP中,介绍了其在网络连接中的作用;ARP协议用于IP到物理地址的转换;DHCP动态分配IP地址。实验详细解析了各个协议的数据报头,并展示了如何使用Wireshark进行过滤和捕获。" 132834598,2391601,Linux系统性能问题诊断与解决,"['Linux系统', '服务器', '性能优化']
摘要由CSDN通过智能技术生成

实验报告原文

1. 实验内容

  1. 捕获在连接Internet 过程中产生的网络层分组:DHCP 分组,ARP 分组,IP 数据分组,ICMP 分组。
  2. 分析各种分组的格式,说明各种分组在建立网络连接过程中的作用。
  3. 分析IP 数据分组分片的结构。通过本次实验了解计算机上网的工作过程,学习各种网络层分组的格式及其作用,理解长度大于1500 字节IP 数据组分片传输的结构。

2. 实验环境

  • Microsoft Windows 10.0.18362.836
  • Wireshark Version 3.2.3 (v3.2.3-0-gf39b50865a13)
  • Win10Pcap v10.2-5002

3. 实验流程

3.1 ICMP报文的捕获与解析

3.1.1 ICMP概述

​ ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
​ ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。
​ ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
在这里插入图片描述

3.1.2 ICMP数据报的捕获
  1. 运行Wireshark软件,在首页选择网络连接,进入捕获。

  2. 在顶层过滤器处输入

    icmp
    

    过滤出ICMP报文。
    在这里插入图片描述

  3. 新建一个命令提示符窗口,输入

    ping www.bupt.edu.cn
    

    并回车执行,观察Wireshark捕获的数据报。
    在这里插入图片描述

3.1.3 捕获的ICMP报文

由于MAC地址的全球唯一性,这里已将MAC地址抹去,用全x和全y代替源MAC和目的MAC.

request

0000   yy yy yy yy yy yy xx xx xx xx xx xx 08 00 45 00
0010   00 3c 43 b5 00 00 80 01 00 00 c0 a8 1f b8 d3 44
0020   45 f0 08 00 46 ae 00 01 06 ad 61 62 63 64 65 66
0030   67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
0040   77 61 62 63 64 65 66 67 68 69

reply

0000   xx xx xx xx xx xx yy yy yy yy yy yy 08 00 45 00
0010   00 3c 4e 88 00 00 34 01 3e a4 d3 44 45 f0 c0 a8
0020   1f b8 00 00 4e ae 00 01 06 ad 61 62 63 64 65 66
0030   67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
0040   77 61 62 63 64 65 66 67 68 69
3.1.4 解析ICMP报文
3.1.4.1 以太网报头和IP报头
单元的字节数 值(默认二进制,其他进制会说明) 内容解释
14 以太网报头
1 01000101 IP数据报的报头开始。包含版本(4 bits)和首部长度(4 bits)。
版本:0100,表示IPv4
首部长度:0101,表示首部共有20字节(单位为4 bytes)
1 00000000 服务类型/区分服务,因为没有使用区分服务所以这里不起作用。
2 00000000
00111100
总长度,指分组的长度,即首部和数据之和的长度,单位为字节。
这里表示60 bytes.
2 01000011
10110101
标识,由发送方产生,用于接收方重组数据报时确定哪些分段(分片)属于同一个数据报。
这里表示标识号位17333.
2 00000000
00000000
包含标志(3 bits)和片偏移(13 bits).
标志:000,表示是否进行了分段/分片,目前只有前两个比特有意义。最低位是MF,MF=1表示后面还有分段,MF=0表示这是最后一个分段。中间一位是DF,只有DF=0时才允许分段。
这里表示允许分段、是最后一个分段。
分段偏移量:00000 00000000,指出较长的分组在分段后某片在原分组中的相对位置。分段偏移量以8 个字节为偏移单位。这里表示这个分片是原分组的从第0*8=0个字节起始的。
1 10000000 生存时间,记为TTL(Time To Live)。为了限制数据报在网络中的生存时间,用“跳数”
作为单位。数据报每经过一个路由器,其TTL 值就减1。
这里表示起始的TTL为128.
1 00000001 协议,指出此数据报携带的数据使用何种协议,以便目的主机的IP 层将数据部分上交给哪个处理过程。
这里表示使用ICMP协议(1)。
2 00000000
00000000
首部检验和,只检验数据报的首部不包括数据部分,这里不采用CRC 校验码而采用checksum。
这里为0是因为开启了网卡的“硬件校验和”的功能。开启了这个功能之后协议栈就不会进行校验和的计算了,有助于提高网络性能。关闭网卡的硬件校验和功能后这里会有有效的校验和。
4 11000000
10101000
0001
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值