网络协议分析与设计实验报告
实验名称:实验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报文段的序号、确认号和报文段长度之间有什么关系?
报文字段=确认号-序号