wireshark抓包图解TCP三次握手四次挥手详解

文章描述:-2022年4月14日发(作者:危和).wireshark抓包图解TCP三次握手/四次挥手详解一.TCP/IP协议族TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:1.链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2.网络层,也称作互联网层,

-

wireshark抓包图解TCP三次握手四次挥手详解
2022年4月14日发
(作者:危和)

.

wireshark抓包图解TCP三次握手/四次挥手详解

一.TCP/IP协议族TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通

信功能。包含以下四个层次:

1.链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱

动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒

介)的物理接口细节。

2.网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路。网

络层协议包括IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议),

以及IGMP协议(Internet组管理协议)。

3.运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族

中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协

议)。TCP为两台主机提供高可靠性的数据通信。他所作的工作包括把应用程序

交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送

最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端通信,因此应页脚.

用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单

的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证

该数据报能到达另一端。任何必须的可靠性必须由应用层来提供。

4.应用层负责处理特定的应用程序细节。包括Telnet(远程登录)、FTP(文件

传输协议)、SMTP(简单邮件传送协议)以及SMP(简单网络管理协议)等。

wireshark抓到的包与对应的协议层如下图所示:

:物理层的数据帧概况

etII:数据链路层以太网帧头部信息

etProtocolVersion4:互联网层IP包头部信息

issionControlProtocol:传输层的数据段头部信息,此处是TCP

extTransferProtocol:应用层的信息,此处是HTTP协议

二.TCP协议页脚.TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协

议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数

据进行确认、对失序的数据重新排序、丢弃重复数据。TCP的特点有:

是面向连接的运输层协议

2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的

提供可靠交付的服务

提供全双工通信。数据在两个方向上独立的进行传输。因此,连接的每

一端必须保持每个方向上的传输数据序号。

5.面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据

块,但TCP把应用程序交下来的数据仅仅是一连串的无结构的字节流TCP报文首部,如下图所示:页脚

.

1.源端口号:数据发起者的端口号,16bit

2.目的端口号:数据接收者的端口号,16bit

3.序号:32bit的序列号,由发送方使用

4.确认序号:32bit的确认号,是接收数据方期望收到发送方的下一个报文段的

序号,因此确认序号应当是上次已成功收到数据字节序号加1。

5.首部长度:首部中32bit字的数目,可表示15*32bit=60字节的首部。一般

首部长度为20字节。

6.保留:6bit,均为0

7.紧急URG:当URG=1时,表示报文段中有紧急数据,应尽快传送。

8.确认比特ACK:ACK=1时代表这是一个确认的TCP包,取值0则不是确

认包。

9.推送比特PSH:当发送端PSH=1时,接收端尽快的交付给应用进程。

10.复位比特(RST):当RST=1时,表明TCP连接中出现严重差错,必须释放

连接,再重新建立连接。

11.同步比特SY:在建立连接是用来同步序号。SY=1,ACK=0表示一个连

接请求报文段。SY=1,ACK=1表示同意建立连接。

12.终止比特FI:FI=1时,表明此报文段的发送端的数据已经发送完毕,并

要求释放传输连接。

13.窗口:用来控制对方发送的数据量,通知发放已确定的发送窗口上限。页脚.

14.检验和:该字段检验的范围包括首部和数据这两部分。由发端计算和存储,

并由收端进行验证。

15.紧急指针:紧急指针在URG=1时才有效,它指出本报文段中的紧急数据的

字节数。

16.选项:长度可变,最长可达40字节

wireshark捕获到的TCP包中的每个字段如下图所示:

三.TCP三次握手TCP建立连接时,会有三次握手过程,如下图所示,wireshark截获到了

三次握手的三个数据包。第四个包才是http的,说明http的确是使用TCP建

立连接的。页脚.

下面来逐步分析三次握手过程:

第一次握手:客户端向服务器发送连接请求包,标志位SY(同步序号)置为1,

序号为X=0页脚.

第二次握手:服务器收到客户端发过来报文,由SY=1知道客户端要求建立联

机。向客户端发送一个SY和ACK都置为1的TCP报文,设置初始序号Y=0,

将确认序号(Acknowledgementumber)设置为客户的序列号加1,即X+1=

0+1=1,如下图:页脚.

第三次握手:客户端收到服务器发来的包后检查确认序号(Acknowledgement

umber)是否正确,即第一次发送的序号加1(X+1=1)。以及标志位ACK是页脚.

否为1。若正确,服务器再次发送确认包,ACK标志位为1,SY标志位为0。

确认序号(Acknowledgementumber)=Y+1=0+1=1,发送序号为X+1=1。

客户端收到后确认序号值与ACK=1则连接建立成功,可以传送数据了。页脚.

四.TCP四次挥手TCP断开连接时,会有四次挥手过程,如下图所示,wireshark截获到了

四次挥手的四个数据包。页脚.

下面来逐步分析四次挥手过程:

第一次挥手:客户端给服务器发送TCP包,用来关闭客户端到服务器的数据传

送。将标志位FI和ACK置为1,序号为X=1,确认序号为Z=1。页脚.

服务器收到FI后,发回一个ACK(标志位ACK=1),确认序号为收到的序号加1,

即X=X+1=2。序号为收到的确认序号=Z。页脚.页脚.

服务器关闭与客户端的连接,发送一个FI。标志位FI和ACK置为1,序号为

Y=1,确认序号为X=2。页脚.

客户端收到服务器发送的FI之后,发回ACK确认(标志位ACK=1),确认序号

为收到的序号加1,即Y+1=2。序号为收到的确认序号X=2。页脚.页脚

-

wireshark抓包图解TCP三次握手四次挥手详解

发布时间:2022-04-14 10:42:09
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 6 条评论,304人围观)

最近发表

随便看看

热门文章

标签列表