实验三 TCP报文的捕获与分析

实验四   TCP报文的捕获与分析

——实验报告

一、实验目的

(1)掌握TCP建立连接的工作机制。

(2)掌握借助Wireshark捕捉TCP三次握手机制。

(3)掌握SYN、ACK标志的使用。

二、实验内容

用Wireshark软件捕捉TCP三次握手机制。

三、实验原理

TCP报文段格式如图1所示。

 

图1 TCP报文段格式

表1 TCP的标志位含义

TCP的标志位

英文简写

含义

紧急标志位

URG

表示数据包的紧急指针域有效,用来保证连接不被阻断,并督促中间设备尽快处理

确认标志位

ACK

对已接收的数据包进行确认

推送标志位

PSH

表示该数据包被对方接收后应立即交给上层应用,而不在缓冲区排队

重置标志位

RST

用于连接复位、拒绝错误和非法的数据包

同步标志位

SYN

用于建立会话连接,同步序列号

完成标志位

FIN

表示已经没有数据要发送了,即将关闭连接

三次握手机制实验原理如图2所示。

TCP的序号和确认号:

32位序号 seq:Sequence number 缩写seq ,TCP通信过程中某一个传输方向上的字节流的每个字节的序号,通过这个来确认发送的数据有序,比如现在序列号为1000,发送了1000,下一个序列号就是2000;

32位确认号 ack:Acknowledge number 缩写ack,TCP对上一次seq序号做出的确认号,用来响应TCP报文段,给收到的TCP报文段的序号seq加1。

区分ack和ACK:

小写的ack,代表的是头部的确认号Acknowledge number, 缩写ack,是对上一个包的序号进行确认的号,ack=seq+1;

大写的ACK,则是上面说的TCP首部的标志位,用于标志的TCP包是否对上一个包进行了确认操作,如果确认了,则把ACK标志位设置成1。

 

三次握手机制过程:

客户端发送SYN报文,并置发送序号为X;服务端发送SYN和ACK报文,并置发送序号为Y,确认序号为X+1;客户端发送ACK报文,并置发送序号为X+1,确认序号为Y+1。

 

图2 三次握手机制工作示意图

四、实验环境

交换式网络、windows操作系统、Wireshark软件

注意:在做这个实验的过程中,例如从打开某一网页获得TCP包从而分析TCP的三次握手机制过程中,容易犯先打开网页再开始抓包的错误,正确的做法是先在Whireshark软件中设置TCP抓包,然后再打开一个网页。

五、实验内容与步骤

(1)开启Wireshark软件

         在捕捉接口对话框中选中网卡接口,然后点击“Optinos”进行包过滤,如图3所示。

图3  Wireshark捕获

(2)过滤TCP数据包

         在随后出现的的下列对话框中,在“Capture Filter”处填写TCP,从而捕捉到TCP包,进而获得TCP三次握手的建立机制,然后点击“Start”。如图4所示。

图4 TCP过滤设置

(3)TCP三次握手机制生成与分析

         访问某一网站,则Whireshark捕捉到的TCP三次握手的信息,如图5所示,以前三行为例解析一下。 

图5 捕获到的三次握手通信包

  •  第一行对应的是第一次握手,其中[SYN]出现表明为三次握手的开始的标志。

          客户端59361端口号向服务器端80号端口发送一个标志为SYN=1且含有初始化序列值seq=0的数据包,开始建立会话,在初始化会话过程中,通信双方还在窗口大小Win、最大报文段长度MSS等方面进行协商。Source port为59361,Destination port为80,打开编号为1所示的下拉菜单,会出现对应项的更加详细的解析,如图6所示。

图6 SYN第一次握手

  • 第二行对应的[SYN,ACK]表明为二次握手,是对建立的确认。

         服务器端80端口号向客户端59361号端口发送包含确认值的数据段,如图7总Transmission Control Protocol(TCP)所示,其值等于所收到的序列值加一,即ACK=1,其自身的序列号为0;并对MSS更改为1460。源端口号Src Port为80,目的端口号Dst Port为59361。

图7 SYN、ACK第二次握手

  • 第三行对应的是第三次握手

         客户端59361端口号向服务器端80号端口发送确认值Seq=1、Ack=1(59361接收到的序列值加1),这便完成了三次握手的建立。如图8所示对应答的应答为第三次握手。

图8 ACK第三次握手

图9 http

五、实验心得

       这次实验更系统地学习了解TCP三次握手建立连接的全过程,明白了TCP报文格式、标志位等内容含义,以及建立的三次握手菜单解析。TCP三次握手过程中,传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。实验过程中也遇到了一些问题,比如不熟悉握手菜单中的一些英文内容,还有可能由于版本不同,导致显示建立连接的只有端口号。另外,与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次握手”四次挥手过程。 

 若有不足,恳请指正,感谢!

posted @ 2022-01-31 18:26  哦呦aholic  阅读(4122)  评论(0编辑  收藏  举报