当前位置:文档之家› TCP协议分析实验报告

TCP协议分析实验报告

网络协议分析与设计 实验报告

实验名称: 实验 TCP协议分析

班 级: 姓 名:

实验地点: 日 期:

一、实验目的:

1. 掌握TCP报文段首部中各字段的含义及作用

2. 掌握TCP连接建立和释放的过程

3. 了解TCP的确认机制

二、实验环境:

1. 联网并运行wireshark软件的PC机

三、实验内容和要求:

1、捕获并分析TCP连接建立过程的三次握手过程中发送和接收的TCP报文段

2、捕获并分析TCP连接释放过程中发送的TCP报文段。

3、捕获并分析一个TCP报文段及该报文段的确认报文段

4、捕获并分析TCP连接超时重传所发送的报文段

四、实验步骤:

1、 开启协议分析软件,设置过滤器为只捕获TCP协议报文段

2、 利用协议分析软件的TCP连接工具连接到FTP服务器,捕获并分析建立TCP连接时发送的TCP报文段,分析TCP连接建立的过程

3、 在已经连接到FTP服务器之后,通过TCP连接工具发送FTP命令:

 USER anonymous

 PASS test@

 PWD

捕获并分析发送和接收的报文段,注意其序号及确认号之间的关系

4、 在已经连接到FTP服务器之后,通过TCP连接工具发送FTP命令:QUIT释放TCP连接,捕获并分析释放连接过程中发送和接收的报文段

5、 通过TCP连接工具连接到10.132.254.1上不存在服务进程的端口,观察服务器与本机交互的报文。

6、 通过TCP连接工具连接到IP地址不在本网段且不存在的主机,观察本机发送的请求建立连接报文段超时重传报文。

五、实验结果与分析(含程序、数据记录及分析和实验总结等):

1、以十六进制形式写出建立TCP连接过程中发送和接收的TCP报文段,给出各字段的取值及含义。

07 11(源端口) 00 15(目标端口) 01 FB 24 31 (序列号)00 00 00 00 (确认序列号)B0(TCP首部长度) 02(标志位:SYN)FF FF(窗口大小)F7 31(校验和) 00 00 (紧急指针)02 04 05

B4 01 03 03 03 01 01 08 0A 00 00 00 00 00 00 00 00 01 01 04 02

00 15(源端口) 07 11 (目标端口)5D BF ED 2F (序列号)01 FB 24 32 (确认序列号)B0 TCP首部长度)12(标志位:SYN|ACK)44 70 (窗口大小)67 C4 (校验和)00 00 (紧急指针)02

04 05 B4 01 03 03 00 01 01 08 0A 00 00 00 00 00 00 00 00 01 01 04 02

2、以十六进制写出捕获到的TCP报文段和确认报文段

07 0A(源端口) 00 15 (目标端口)F8 50 A0 9A (序列号)6E 4E 2A 57确认序列号)

80TCP首部长度) 10 标志位:ACK)B5 C9(窗口大小) F2 EE (校验和)

00 00 (紧急指针)01 01 08 0A 00 00 83 DA 00 00 00 00 00 00

3、以十六进制形式写出释放TCP连接过程中发送和接收的TCP报文段,给出各字段的取值及含义,注意这些报文段控制位的置位和复位情况。

00 15(源端口) 07 0A(目标端口) 6E 4E 2B 0C(序列号) F8 50 A0 CB (确认序列号)80 (TCP首部长度)19(标志位:FIN|PUSH|ACK)44 3F( 窗口大小)6B BB(校验和) 00 00 (紧急指针)01 01 08 0A 00 D5 62 56 00 00 8B 17 32 32 31 20 20 0D 0A

07 0A (源端口)00 15 (目标端口)F8 50 A0 CB (序列号)6E 4E 2B 14 确认序列号)80(TCP首部长度) 10(标志位:ACK)B5 B2(窗口大小) 87 9D(校验和) 00 00 (紧急指针)01 01

08 0A 00 00 8B 29 00 D5

62 56 32

07 0A(源端口) 00 15(目标端口) F8 50 A0 CB(序列号) 6E 4E 2B 14 (确认序列号)80(TCP首部长度) 11(标志位:FIN|ACK)B5 B2(窗口大小) 86 CA (校验和)00 00 (紧急指针)01 01 08 0A 00 00 8B FB 00 D5 62 56 32

00 15(源端口) 07 0A(目标端口) 6E 4E 2B 14 (序列号)F8 50 A0 CC (确认序列号)80(TCP首部长度) 10(标志位:ACK) 44 3F (窗口大小)F7 6B (校验和)00 00 (紧急指针)01 01

08 0A 00 D5 63 28 00 00

8B FB 32 32

4、以十六进制形式写出原始的和重传的TCP报文段。

07 0F(源端口) 00 50(目标端口) FD 0C 12 D6 (序列号)00 00 00 00 (确认序列号)B0(TCP首部长度) 02(标志位:SYN)FF FF(窗口大小) 55 1E(校验和) 00 00(紧急指针) 02 04 05 B4 01 03 03 03 01 01 08 0A 00 00 00 00 00 00 00 00 01 01 04 02

六:思考题:

1、为什么说TCP协议采用了三次握手的算法来建立连接?

因为TCP协议提供可靠的连接服务。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据

建立连接的过程中,发送和接收报文段的序号和确认号之间、源端口和目的端口之间、控制位的置位和复位之间有什么关系?

序号和确认号的关系:序号是本报文中所发送数据的第一个字节的序号,确认号是期望对方的下一个报文字段数据的第一个字节的序号。

源端口和目的端口的关系:都是传输层和应用层的服务接口

控制位和复位的关系: 控制位有6中,复位时控制为的其中一种

2、 TCP报文段的序号、确认号和报文段长度之间有什么关系?

报文字段=确认号-序号 3、释放TCP连接时,共发送接收了多少个报文段?这些报文段的序号和确认号、各控制位的取值情况是怎样的?

理论上是4次报文段的,但在实际操作中却收到一个或两个。

序号和确认号、控制位的取值都是根据上一个报文段然后根据某些计算方法决定的

4、怎么样才能识别出一个报文段是另一个报文段的重传报文?

根据控制位时钟等要素来判断

七、教师评语:

相关主题