您的位置:首页 > 理论基础 > 计算机网络

网络层协议IP/ICMP/DHCP/ARP/TCP数据的捕获与分析

2017-06-10 21:37 726 查看

计算机网络实验二实验报告

网络层协议数据的捕获与分析

计算机网络实验二实验报告
实验任务内容环境
实验任务

实验环境

实验步骤

IP协议分析
找出IP包头个字段并分析

描述IP包校验原理并对上述IP包头进行校验

描述IP包分段原理并验证

ICMP协议分析
理解ICMP协议的功能

记录各字段的格式

DHCP协议分析
DHCP协议的功能

DHCP ACK消息

DHCP提供的额外配置参数

DHCP分配过程示意图

DHCP服务器与路由器

DHCP服务消息序列

ARP协议分析
ARP功能和原理

ARP包格式

TCP协议分析
TCP协议各字段功能

分析连接建立与释放过程
连接的建立

正常建立连接的时序图

连接的释放

正常释放连接的时序图

分析TCP数据传输的过程分析其他字段的作用
发送序号和应答序号

应答标志位

窗口大小

数据长度与MSS

消息序列图

实验问题与心得

实验任务、内容、环境

实验任务

本次实验主要包含下列内容:

使用Wireshark 软件捕获在使用ping 命令时产生的ICMP 消息;

分析网络层IP 包头格式,理解各字段的作用,对于分段和校验和进行验证;

使用Wireshark 软件捕获在使用ARP 消息,分析其消息格式,理解其工作原理;

使用Wireshark 捕获DHCP 消息,分析其消息序列,理解DHCP 的功能和操作原理;

使用Wireshark 捕获TCP 消息,分析TCP 报文段头格式,理解连接建立和释放的原理,差错控制原理、序号和窗口管理的原理。

通过本实验学生可以深入理解分层体系结构,理解和掌握TCP/IP 协议栈的代表协议——IP、TCP、

UDP、ICMP、ARP 和DHCP 协议的要点。

实验环境

本次实验在
Windows10
平台下,使用
Wireshark-win64-2.2.7
进行协议的捕获与分析。

实验步骤

CMD
使用
ipconfig\all
命令,获取本机
ip
mac
地址。本机情况如下:

以太网适配器 以太网:

连接特定的 DNS 后缀 … … . :

描述… … … … … : Realtek PCIe GBE Family Controller

物理地址… … … … . : 50-7B-9D-78-A7-84

DHCP 已启用 … … … . . : 是

自动配置已启用… … … . : 是

IPv6 地址 … … … … : 2001:da8:215:81f4:f859:d651:c5dd:16cb(首选)

临时 IPv6 地址… … … . : 2001:da8:215:81f4:8889:7f1f:8074:748a(受到抨击)

临时 IPv6 地址… … … . : 2001:da8:215:81f4:acf4:c8d7:cce0:6944(首选)

本地链接 IPv6 地址… … . . : fe80::f859:d651:c5dd:16cb%10(首选)

IPv4 地址 … … … … : 10.120.10.49(首选)

子网掩码 … … … … : 255.255.255.192

获得租约的时间 … … … : 2017年6月6日 20:50:39

租约过期的时间 … … … : 2017年6月8日 20:50:46

默认网关… … … … . : fe80::761f:4aff:fe28:4b8b%10

默认网关… … … … . : 10.120.10.1

DHCP 服务器 … … … . . : 10.120.10.1

DHCPv6 IAID … … … . . : 55606173

DHCPv6 客户端 DUID … … . : 00-01-00-01-20-47-F1-BC-50-7B-9D-78-A7-84

DNS 服务器 … … … . . : 10.3.9.4

DNS 服务器 … … … . . : 10.3.9.5

TCPIP 上的 NetBIOS … … . : 已启用

下载
wireshark
并进行设置。

启动
Wireshark
,设置捕获接口(
Interface
)为本机网卡,选中混杂模式(
promiscuous mode


捕获选项,设置合适的捕获过滤器(
Capture Filter
):

对于
ping
命令,设置过滤器为
icmp


对于
DHCP
消息,设置过滤器为
udp port 67


对于
ARP
消息,设置过滤器为
arp


对于通过网页浏览应用来捕获
TCP
消息,设置过滤器为
tcp port 80


开始捕获。

捕获数据。

捕获
ICMP
协议数据

运行
ping
命令(例如:
ping 192.168.0.1
),远程主机地址可以是本机地址、网关路由器地址,也可以是域名。将捕获到的数据保存为文件。

使用
Windows
ping
命令的
-l
选项(例如:
ping -l 8000 192.168.0.1
),生成大于
8000
字节的
IP
包并发送,捕获后分析其分段传输的包结构。

捕获
DHCP
协议数据

使用
ipconfig
命令释放计算机的IP 地址(
ipconfig -release
);

使用
ipconfig
命令重新申请IP 地址(
ipconfig -renew
)。

此时
wireshark
窗口中可以捕获到完整的
DHCP
地址分配的流程,将捕获到的数据保存为文件。

捕获
ARP
协议数据

采用与上一段相同的方法释放
IP
地址并重新申请,在
wireshark
窗口中可以捕获到
ARP
请求和响应消息,保存为文件。

捕获
TCP
协议数据

打开浏览器,输入一个页面内容较简单的网页的URL,如
www.baidu.com
;网页全部显示后关闭浏览器。

进行协议数据的分析

IP协议分析





找出IP包头个字段并分析

IP 包头分析:对于采用
ping-l
命令选项捕获的ICMP 消息,对承载ICMP消息的IP 包进行分析。

取了某次ping的第三个包,对于包头各字段,列表如下:

字段报文(16进制)内容
版本4表示报文是IPv4报文
首部长度5首部长度为5*4字节=20字节
服务类型00表示普通服务,无特殊需求
总长度05dc总长度1500字节
标识7604数据报标号为30212
标志001(二进制)表示可以分片,且该片后面还有其他片
片偏移2172(二进制下高三位不计算)片偏移370*8=2960字节
生存时间80生存时间是128跳
协议类型01协议01,表示由ICMP协议处理
首部校验和7489校验和0x7489
源地址0a 78 0a 31源地址:10.120.10.49
目的地址0a 78 0a 01目的地址:10.120.10.1

描述IP包校验原理,并对上述IP包头进行校验。

发送方将校验字段置为全0,然后对包头所有字段计算反码算数求和,结果即为校验码部分。

反码求和:将待运算数作为16bit二进制数,然后做带进位加法,将进位作为一个16bit二进制数,加在结果的低位上,重复运算直到没有进位,最后将结果取反。

接收方将每一个16bit二进制数做同上的反码相加,得到结果若是FFFF,则校验通过。

4500+05dc+7604+2172+80017489+0a78+0a31+0a78+0a010001+fffe+=0001fffe=ffff

校验通过。

描述IP包分段原理,并验证。

当一个较大的数据包通过一个支持最大数据包长度较小的网络时,会被分段,每一段单独生成一个数据包。

分段中的每一段都具有相同的标识,使用MF与DF以及偏移来确定该包的相对位置。

MF表示当前包是否是最后一个包(MF=1表示还有分片,MF=0表示已是最后一个分片),DF表示是否允许分片,DF=0表示允许分片。

分段中除了最后一段,每一段长度必须是8的整数倍。

片偏移k表示这个分片的第一字节是原始数据包的第8*k字节。

在本次实验,网络环境是以太网,支持的最大帧长度为1514字节。

分析后,发现第一个包偏移量为0,第二个包偏移量1480字节,第三个包偏移量2960字节。而一个数据链路层的帧长1514字节,去掉数据链路层的目的地址6字节,源地址6字节,2字节类型,剩余留给IP数据报的长度为1500字节,再去掉20字节的IP头,每个包实际包含数据1480字节,所以第三个包正好偏移2960字节。后面的包以此类推,略去。因为ping包长度8000字节,所以每一次ping有6个分片片段。

同时也可知道,数据链路层使用
以太网V2 MAC帧


ICMP协议分析





理解ICMP协议的功能

为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet Control Message Protocol)。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP是一个工作在网络层,使用IP数据报封装自己的协议,主要为主机报告差错与异常使用。ICMP报文分为差错报告报文和询问报文。

ICMP 差错报告报文共有 5 种

• 终点不可达

• 源站抑制

• 时间超过

• 参数问题

• 改变路由(重定向)

ICMP 询问报文有四种

• 回送请求和回答报文

• 时间戳请求和回答报文

• 掩码地址请求和回答报文

• 路由器询问和通告报文

ICMP可以应用在ping上,检查目的主机是否联通;可以用来测试到达目的主机的路径和跳数等。

记录各字段的格式

选取了上图的1号包和2号包进行分析。



字段报文(十六进制)内容
类型08/0008表示是一个回显请求报文,00表示回显回复报文
代码00/00表示是一个回显报文
校验和4d42/5542整个ICMP部分的校验和
标识符0001/0001表示上层进程ID号
序列号0019/0019包的序列号,该包是25号
ICMP不同的报文类型号不同,比如08代表回显请求,00代表回显应答等。



校验和做的是整个ICMP部分的校验,采用与IP数据报一样的反码求和运算,以1号包为例:

0800+4d42+0001+0019+61626364+6566+6768+696a+6b6c6d6e+6f70+7172+7374+75767761+6263+6465+6667+68690006fff90006+fff9+++==ffff

可见校验成功。

ID与序列号部分,一次
PING
命令会发送4个包,观察发现他们的ID是相同的,序号是递增的。



DHCP协议分析



DHCP协议的功能

DHCP,又称动态主机分配协议,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP有三种机制分配IP地址:

自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

DHCP ACK消息

DHCP消息是承载在UDP数据报上的,运行在传输层的协议。所以完整的DHCP数据报结构由:数据链路层头
以太网V2 MAC帧
,网络层头
IPv4
,传输层头
UDP
Bootstarp Protocol
组成。

下面只分析
DHCP ACK
包的
Bootstarp Protocol
部分。

字段报文(十六进制)功能
消息类型021表示请求报文,2表示回应报文
硬件地址类型011表示以太网硬件地址
硬件地址长度06以太网硬件地址长度为6
跳数00默认0
事物ID51fc5c30客户端选择的随机数,用于本次通信
超时时间0000不设置
标志字段00000表示单播
客户端IP地址00000000表示客户端当前IP地址
个人IP地址0a780a31填写分配给client的ip地址
下一阶段地址00000000若 client 需要透过网络开机,此栏填写开机程序代码所在 server 之地址
中继器地址00000000若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为0
客户端MAC地址507b9d78a784客户端的硬件地址
客户端MAC地址填充字段00000000000000000000
可选服务器主机名64字节全0服务器主机名称
启动文件名128字节全0若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。
magic cookie63825363为了保证兼容性使用
可选字段允许厂商自定义字段,提供更多功能
对于选项字段,是客户端与主机协商使用的字段,在
DHCP Request
中,客户端发送一个表,指明自己想要获得的字段:



DHCP ACK
中,服务器回应客户端它所提供的字段:



详细配置参数见下一节。

DHCP提供的额外配置参数

可选字段的格式为:序号(1字节)+长度(1字节)+内容(长度字节)

选项代号含义
1设置子网掩码选项
3设置网关地址选项
6设置DNS服务器地址选项
12设置DHCP客户端的主机名选项
15设置域名后缀选项
33设置静态路由选项
44设置NetBios服务器选项
46设置NetBios节点类型选项
50设置请求IP选项
51设置IP地址租约时间选项
52设置Option附加选项
53设置DHCP消息类型
54设置服务器标识
55设置请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值
58设置续约T1时间,一般是租期时间的50%
59设置续约T2时间。一般是租期时间的87.5%
60设置厂商分类信息选项,用于标识DHCP客户端的类型和配置
61设置客户端标识选项
66设置TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名
67设置启动文件名选项,用来指定为客户端分配的启动文件名
77设置用户类型标识
121设置无分类路由选项

DHCP分配过程示意图

分析四次握手过程。

DHCP discover



discover包是客户端发送的广播包,数据链路层的mac地址也是广播地址,UDP数据包报中的源端口68,目的端口67。客户端简要汇报自己的网络信息,并在可选字段中附加DHCP type为discover,表示申请一个IP地址。

DHCP offer



因为DHCP服务器会保存一定时间的IP与MAC绑定的信息,所以申请ip时在第二阶段DHCP服务器就分配了该客户端上次的IP地址,并填入目的地址处发回。



可以看到服务器分配的IP地址以及客户端的mac地址。



在可选字段中可以看到DHCP服务器IP地址,租期时间,路由器信息,子网掩码,域名服务器等。

DHCP request



可以看到,第三次,客户端发给服务器的包也是广播包,因为可能有多个DHCP服务器都给客户端发送了可用IP地址,而客户端需要让所有的DHCP服务器知道它接受哪个DHCP服务器停工的IP地址。



在可选字段中,客户端确认了他的mac地址,将接受的IP地址,接受的DHCP服务器,以便DHCP服务器在IP与mac表中记录。最后客户端请求了一个参数表,要求DHCP服务器提供一些详细参数。

上图表示,客户端mac
50:7b:9d:78:a7:84
接受DHCP服务器
10.120.10.1
提供的IP地址
10.120.10.49


使用
ipconfig\all
命令查看本机信息,如图:



与上述分析对应。

DHCP ack



最后一次确认,服务器主要回复上一次中客户端要求的额外信息。至此,租期生效。

DHCP服务器与路由器

当前网络环境下,路由器与DHCP服务器是同一设备。



因为他们IP地址相同。本机的路由详细信息也表明了这一点,即:



路由器IP与DHCP服务器都是
10.120.10.1
,可能为实验室机房的总路由器顺便充当了DHCP服务器。

DHCP服务消息序列

Created with Raphaël 2.1.0ClientClientDHCP ServerDHCP ServerDHCP discoverDHCP offerDHCP requestDHCP ACKDHCP分配过程结束

ARP协议分析

ARP功能和原理

地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

ARP的原理就是对于不知道物理地址的IP地址,主机发送一个广播包,内容就是询问IP地址对应的主机。若该IP对应的主机存在,那对应主机就回复一个包,包内包含自己的MAC地址。如果主机问了三遍还是没人回复,呢么他就认为这个IP地址没人使用。

ARP包格式

数据链路层帧头部分源地址是本机mac,目的地址是广播地址全f,表格列出了ARP协议的数据内容。





字段报文(十六进制)功能
硬件地址0001硬件地址表示硬件接口类型,1表示以太网
协议种类0800指明协议种类,ip是0800
硬件地址长度06指明硬件地址长度,单位为比特
协议长度04指明协议长度
操作码0001操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4
发送方MAC地址507b9b78a784发送方MAC地址
发送方IP地址0a780a31发送方IP地址
目的地MAC地址000000000000目的地MAC地址
目的地IP地址0a780a01目的地IP地址
这个询问表明是一个ARP请求,询问目的地
10.120.10.1
的mac地址。

而收到的回复包如下图:



表明
10.120.10.1
的mac地址为
74:1f:4a:28:4b:8b


TCP协议分析

TCP协议各字段功能

TCP首部如图:



字段名称长度功能
源端口2字节发送方端口
目的端口2字节接收方端口
序号4字节本段发送的第一字节的序号
确认号4字节期望收到对方的下一字节序号
数据偏移4bit指出 TCP 报文段的数据起始处距离 TCP报文段的起始处有多远,以4字节为单位
保留6bit保留为今后使用,目前应置为全0
URG1bit紧急指针有效位,1有效
ACK1bit确认号有效位,1有效
PSH1bit接收方收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付
RST1bitRST=1 时,表明 TCP 连接中出现严重差错,必须释放连接,然后再重新建立连接
SYN1bit同步比特SYN置为1,就表示这是一个连接请求或连接接受报文
FIN1bit终止比特FIN置为1,就表示这个报文用于释放链接
窗口2字节接收方为对方设置的发送窗口大小
校验和2字节校验和,计算时包含伪首部
紧急指针2字节紧急指针指出在本报文段中的紧急数据的最后一个字节
选项长度可变提供更多可选功能
填充不定填充使得首部长度是4字节的整数倍

分析连接建立与释放过程

连接的建立

TCP连接的建立需要三次握手:



第一次握手:



客户端发给服务器,可见源端口5060,目的端口80,相对序号0(实际序号值2145050),ACK序号全0,首部长度32字节,标志字段只有SYN为1,表示这是一个申请建立连接的包,窗口大小8192,校验和
0x96c1
,但是未经核对。

第二次握手:



服务器发回客户端,源端口80,目的端口5060,相对序号0,ACK序号1。标志字段SYN与ACK为1,表示确认了客户端发过来的0号包,回复了一个同意申请建立连接的包。校验和同样未经核对。

第三次握手:



客户端发给服务器,序号增长为1,确认了服务器发来的0号包,第三次握手表明连接的确立。

关于第三次握手,主要是为了防止延期的包干扰服务器:

客户端发送了一个连接请求报文段到服务端,但是在某些网络节点上长时间滞留了,而后客户端又超时重发了一个连接请求报文段该服务端,而后正常建立连接,数据传输完毕,并释放了连接。

如果这时候第一次发送的请求报文段延迟了一段时间后,又到了服务端,很显然,这本是一个早已失效的报文段,但是服务端收到后会误以为客户端又发出了一次连接请求,于是向客户端发出确认报文段,并同意建立连接。

假设不采用三次握手,这时服务端只要发送了确认,新的连接就建立了,但由于客户端比你更没有发出建立连接的请求,因此不会理会服务端的确认,也不会向服务端发送数据,而服务端却认为新的连接已经建立了,并在一直等待客户端发送数据,这样服务端就会一直等待下去,直到超出保活计数器的设定值,而将客户端判定为出了问题,才会关闭这个连接。

这样就浪费了很多服务器的资源。而如果采用三次握手,客户端就不会向服务端发出确认,服务端由于收不到确认,就知道客户端没有要求建立连接,从而不建立该连接。

若双方同时发起建立连接请求,这两个连接都会成功建立,但实际每台主机竹有一个连接,因为连接双方相同的连接会被认为是一个连接。

正常建立连接的时序图:

Created with Raphaël 2.1.0ClientClientServerServerSYN:seq=0,ack=0SYN+ACK:seq=0,ack=1ACK:seq=1,ack=1连接此时已建立



连接的释放

TCP连接的释放需要4次挥手加定时器:



第一次挥手:



服务端发送给客户端,序号为上次需要加1(114),ACK为祈祷收到的包序号(760),标志位置FIN为1,表示请求释放连接。

第二次挥手:



客户端回复服务器,确认收到114号包,本次包序号760,同意释放连接。此时TCP协议在单方向(服务器至客户端)的连接已经关闭,即服务器不给客户端发消息,但可以接受客户端的消息。

第三次挥手:



客户端发给服务器,置FIN位为1,表示客户端申请释放连接。注意本次包确认序号与上次一样,因为服务器不可能主动给客户端发送消息了;而序号为第二次挥手与第三次挥手期间最后发的包序号加1,如果这期间没发送消息,那么与第二次挥手包序号相等。客户端第三次挥手完毕后等待服务器的确认。

第四次挥手:



服务器发送给客户端的确认消息。双方释放连接。

若一开始是客户端主动释放的连接,最后第四次握手是客户端发送给服务器的确认消息,那么此时服务器立即释放连接,客户端等待两倍数据包最长生存周期,在释放连接。原因:

为了保证客户端发送的最后一个ACK报文段能够到达服务器。

该ACK报文段很有可能丢失,因而服务器重发第三次挥手报文。若客户端不等待,那么服务器无法释放连接。故客户端等待,若在等待过程中收到新的第三次挥手,那么客户端回复后将重启定时器。

此举为了保证服务器尽可能不浪费时间,保证服务器正常释放连接。

参考资料

然而,TCP的释放连接,没有完美的机制。在实际使用中,出错时可以重传,重传几次扔没有收到期待的回应,则可以主动释放连接,让对方等待超时无数据发送,强行关闭连接。

正常释放连接的时序图

Created with Raphaël 2.1.0ServerServerClientClientFIN+ACK:seq=114,ack=760ACK:seq=760,ack=115此时单方向连接已释放FIN+ACK:seq=760,ack=115ACK:seq=115,ack=761连接双方向连接已释放

分析TCP数据传输的过程,分析其他字段的作用

发送序号和应答序号

每一个发送方的初始发送序号由通信双方商定,以后按发送字节数递增。接收序号为接收方期待接收的字节,即发送方下一个应发过来的字节号。发生校验错误、乱序导致重传的情况下,要求重传的一方将想要重传的序号置于ACK中,对方会按ACK给的序号重传特定序号。

应答标志位

字段名称长度功能
URG1bit紧急指针有效位,1有效
ACK1bit确认号有效位,1有效
PSH1bit接收方收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付
RST1bitRST=1 时,表明 TCP 连接中出现严重差错,必须释放连接,然后再重新建立连接
SYN1bit同步比特SYN置为1,就表示这是一个连接请求或连接接受报文
FIN1bit终止比特FIN置为1,就表示这个报文用于释放链接

窗口大小

TCP的流量控制由连接的每一端通过声明窗口的大小来提供。窗口大小字段用来控制对方发送的数据量,单位为字节。窗口大小用数据包来表示,例如Windows size=3, 表示一次可以发送三个数据包。窗口大小起始于确认字段指明的值,是一个16bits字段。窗口大小可以调节。

窗口大小有一个调节因子,一般在建立连接的时候协商确定。





所以服务器窗口乘积因子256,客户端窗口乘积因子512。

数据长度与MSS

用于标识该报文段中的数据长度。

MSS指明本端所能够接收的最大长度的报文段。当一个TCP连接建立时,连接的双方都要通告各自的MSS协商可以传输的最大报文长度。我们常见的MSS如以太网可达1440字节。

比如这次通信:





表明MSS为1440字节。

消息序列图

乱序到达情况:



345号包序号是6749,下一个应收序号是8189。



而实际346号包:



序号为9629。说明中间包没有到达,可能是丢了,可能是延迟了。347号包序号接346。而348号包正式此前缺失的:



说明包乱序到达。此后的350,351类似。

Created with Raphaël 2.1.0ServerServerClientClient345号:seq=6749(next:8189),ack=2947,win=69*512=35328346号:seq=9629(next:11069),ack=2947,win=69*512=35328发现序号不连续,产生丢包347号:seq=11069(next:12509),ack=2947,win=69*512=35328348号:seq=8189(next:9629),ack=2947,win=69*512=35328发现包是因为延迟,收到包

快重传:



TCP规定,连续收到三次个重复的ACK重传包就要立刻重传,所以服务器在收到213,214,215三个重复的ACK后,快重传了218号包。

Created with Raphaël 2.1.0ServerServerClientClient213号:seq=580,ack=43201,win=258*256=66048214号:seq=580,ack=43201,win=258*256=66048215号:seq=580,ack=43201,win=258*256=66048Server收到三个相同的ACK,开始快重传218号:seq=43201(next:44641),ack=580,win=60*512=30720

重传:

网络较好情况下,重传多由于不正常释放连接导致,比如客户端强行关闭了程序,导致服务器没有收到ACK而不断超时重传。



可见seq=1与seq=1441在被反复重传,可能由于客户端程序已经强行结束导致。

参考资料

实验问题与心得

本子实验主要遇到的问题是对协议理解不透彻

之前虽然在课堂上跟随老师初步学习了这些协议,但由于缺乏实践,认识不足,导致分析包的时候一头雾水。我将包内容与老师讲义上一一对照,结合教材与网络资料,才弄懂每个字段含义。

比如IP包首部长度以4字节为单位;

IP片偏移以8字节为单位;

TCP片偏移以4字节为单位;

IP校验和只计算首部;

ICMP校验和计算整个报文;

TCP校验和需加上伪首部计算;

校验和计算采用反码加法

本次实验遇到的问题还有wireshark软件使用问题

对wireshark的使用,因为没有接触过,使用起来不太流畅。许多功能比如筛选,标记,分组等最开始也不会用。不过后来到TCP时就会用了。

本次实验最大的收获在于学会了各种协议的每个字段的用处,理解了协议设计者这么设计每个字段的目的。

重点理解了TCP协议建立连接与释放连接的过程,知道了对于没有完美方案的问题该如何尽可能的解决。

还理解了各种辅助协议比如ARP,ICMP等在网络通信中的作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: