内容发布更新时间 : 2025/1/9 23:42:12星期一 下面是文章的全部内容请认真阅读。
实验五 使用Wireshark分析TCP协议
一、实验目的
分析TCP协议 二、实验环境
与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。
三、实验步骤
1、捕获一个从你电脑到远程服务器的TCP数据
打开FTP客户端,连接ftp://202.120.222.71,用”TCP”为过滤条件,捕获建立连接和断开连接的数据。
图5.1 捕获的TCP数据
(1)连接建立:
TCP连接通过称为三次握手的三条报文来建立的。观察以上数据,其中分组
10到12显示的就是三次握手。第一条报文没有数据的TCP报文段(分组10),并将首部SYN位设置为1。因此,第一条报文常被称为SYN分组。这个报文段里的序号可以设置成任何值,表示后续报文设定的起始编号。连接不能自动从1开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。观察分组10,Wireshark显示的序号是0。选择分组首部的序号字段,原始框中显示“9b 8e d1 f5”。Wireshark显示的是逻辑序号,真正的初始序号不是0。如图5.2所示:
图5.2 逻辑序号与实际初始序号(分组10)
SYN分组通常是从客户端发送到服务器。这个报文段请求建立连接。一旦成功建立了连接,服务器进程必须已经在监听SYN分组所指示的IP地址和端口号。如果没有建立连接,SYN分组将不会应答。如果第一个分组丢失,客户端通常会发送若干SYN分组,否则客户端将会停止并报告一个错误给应用程序。
如果服务器进程正在监听并接收到来的连接请求,它将以一个报文段进行相应,这个报文段的SYN位和ACK位都置为1。通常称这个报文段为SYNACK分组。SYNACK分组在确认收到SYN分组的同时发出一个初始的数据流序号给
客户端。
图5.3 逻辑序号与实际初始序号(分组11)
分组11的确认号字段在Wireshark的协议框中显示1,并且在原始框中的值是“9b 8e d1 f6”(比“9b 8e d1 f5”多1)。这解释了TCP的确认模式。TCP接收端确认第X个字节已经收到,并通过设置确认号为X+1来表明期望收到下一个字节号。分组11的序号字段在Wireshark的协议显示为0,但在原始框中的实际值却是“f6 74 a5 ea”。这表明TCP连接的双方会选择数据流中字节的起始编号。所有初始序号逻辑上都视同为序号0。
最后,客户端发送带有标志ACK的TCP报文段,而不是带SYN的报文段来完成三次握手的过程。这个报文段将确认服务器发送的SYNACK分组,并检查TCP连接的两端是否正确打开合运行。
(2)关闭连接
当两端交换带有FIN标志的TCP报文段并且每一端都确认另一端发送的FIN包时,TCP连接将会关闭。FIN位字面上的意思是连接一方再也没有更多新的数据发送。然而,那些重传的数据会被传送,直到接收端确认所有的信息。通