实验目的

(1)了解IP数据报的格式,理解IP 各个数据项的含义;

(2)了解TCP报文段各个字段的含义,理解TCP协议的工作原理;

(3)了解UDP数据报各个字段的含义,理解UDP协议的工作原理;

(4)了解ICMP报文各个字段的含义,理解ICMP协议的功能和作用。

实验内容

(1)运行Wireshark,分别捕获ICMP、UDP、TCP报文;

(2)查看捕获到的数据报的首部;

(3)根据所捕获到的IP数据报中协议字段值,ICMP、UDP协议选择一条记录分别填入表5-2中;

(4)根据所捕获到的IP数据报中协议字段值,TCP协议选择三条记录(分别是建立连接、数据传送、释放连接)填入表5-2中;

(5)将所记录的5个IP数据报导出并保存为文本文件;

(6)分析实验结果,加深对数据报首部各字段的理解;

(7)整理实验结果,书写实验报告。

  • 实验数据记录

1、记录所使用的协议分析软件信息(名称、版本号);

2、记录本机的IP地址;

3、根据所捕获到的IP数据报中协议字段值,ICPM、UDP协议选择一条记录分别填入表5-2中;

(1)ICMP报文;

过滤器设置条件:

ICMP

界面截图:

表5-2  IP数据报格式表

版本:4

首部长度:5

服务类型:00

总长度:00 68

标识:5b 0e

标志:0x00

片偏移:0 0000 0000 0000

生存时间:80

协议:01

首部校验和:00 00

源地址:0a 0c 1a f5

目的地址:0a 0c 1a da

可选字段(长度可变):

填充:

数据部分:

(2)UDP报文;

过滤器设置条件:

UDP

界面截图:

表5-2  IP数据报格式表

版本:4

首部长度:5

服务类型:00

总长度:00 29

标识:83 a9

标志:0x00

片偏移:0 0000 0000 0000

生存时间:80

协议:11

首部校验和:d9 90

源地址:ac 14 42 62

目的地址:ac 14 42 ff

可选字段(长度可变):

填充:00 00 00 00 00

数据部分:

00000001000001001100100100100001000011010000000000000000000000000000000000000000000000000000000000000000

4、根据所捕获到的IP数据报中协议字段值,TCP协议选择三条记录(分别是建立连接、数据传送、释放连接)填入表5-2中;

(1)TCP建立连接报文;

过滤器设置条件:

TCP

界面截图:

表5-2  IP数据报格式表

版本:4

首部长度:5

服务类型:00

总长度:00 34

标识:00 34

标志:0x40

片偏移:0 0000 0000 0000

生存时间:80

协议:06

首部校验和:00 00

源地址:0a 0c 1a 35

目的地址:08 08 04 04

可选字段(长度可变):

填充:

数据部分:

(2)TCP数据传送报文;

过滤器设置条件:

TCP

界面截图:

表5-2  IP数据报格式表

版本:4

首部长度:5

服务类型:00

总长度:00 28

标识:46 b5

标志:0x40

片偏移:0 0000 0000 0000

生存时间:80

协议:06

首部校验和:00 00

源地址:0a 0c 1a 35

目的地址:0a 0e 13 01

可选字段(长度可变):

填充:

数据部分:

(3)TCP连接释放报文;

过滤器设置条件:

TCP

界面截图:

表5-2  IP数据报格式表

版本:6

首部长度:0

服务类型:0c

总长度:a8 98

标识:00 14

标志:0x00

片偏移:0 0110 1000 0000

生存时间:20

协议:01

首部校验和:02 50

源地址:48 0c 27 12

目的地址:12 e7 c6 ff

可选字段(长度可变):

填充:

数据部分:

  • 问题讨论

ICMP校验和字段是如何计算的,是否包括数据部分?

答:计算过程如下:1.初始化校验和字段:在计算校验和之前,将ICMP头部中的校验和字段设置为零。2.分组处理:将整个ICMP报文(包括头部和数据部分)按16位(2字节)分组。如果报文的总长度是奇数字节,则在最后补一个字节的零。3.累加求和:将所有16位字进行逐个相加,处理进位(即每加一步,将进位加回低位)。4.取补码:最后对累加的结果取补码,得到校验和。5.填充校验和字段:将计算得到的校验和填入ICMP头部的校验和字段。

包含数据部分。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐