任务一: 用Wireshark观察TCP连接的建立、使用和
释放过程
思考作业:
a) 浏览器进程的IP地址和端口号是什么? IP地址:192.168.209.44 端口号:3003
b) 服务器端进程的IP地址和端口号是什么? IP地址 :128.119.245.12 端口号:80
c) 如何识别连接建立时的SYN报文,它的sequence序号值是多少?该TCP报文是从
哪台主机发送出去的?
通过查看图标中的中间绿色行,点显示SYN的箭头,可以识别。 Sequence序列号:0
该TCP报文是从IP地址为192.168.209.44的主机发送出去
d) 如何识别SYN的确认报文,即SYN ACK,它是有哪台主机发送的?它的seqence
序号值是什么?对SYN报文的确认号值是什么?确认后有什么样的含义? 通过查看图标中的中间绿色行,点显示SYN ACK的箭头,可以识别。 它是从IP地址为128.119.245.12的主机发送的 它的seqence序列号为 0
对SYN报文的确认号码为:1
含义:1.表示已经受到报文 2.表示愿意接受的下一个报文的序号
e) 观察前3个数据帧,它们是与TCP连接建立相关的数据,分析这些数据在TCP首
部中的特点?确认TCP连接过程中协商的参数有哪些?
TCP连接过程中的协商的参数有:源端口 、目标端口、序号(Seq) 确认号(ACK)
前提:观察TCP报文的可靠通信机制。从第4个TCP报文开始(连接建立后的第一个),连续观察5个TCP报文的内容。回答以下问题:
a) 每个TCP报文的长度值是多大?它们的最大值是多少?是否有确定依据? 每个TCP报文的长度为617、0、1408、1408、1408。 他们的最大值为 1408。 有确定依据。
b) 每个TCP报文的序号值是什么?是否是连续变化? TCP报文的序号值:1 、618、 1、2026、 3434 是连续变化的 呈现不断增长的趋势
c) 每个TCP报文的确认号是什么?它的作用是什么? TCP报文的确认号:1、1、618、1、1
它的作用:确认号 表示 愿意接受的下一个报文的序号,并表示成功接受该报文 d) 每个TCP报文首部中的Windows size是什么含义? 它的作用是什么? Windows size 是窗口大小的意思
作用: TCP报文的流量控制由连接的每一端通过声明的窗口大小来提供 e) 连续的5个TCP报文是否有重传的现象?
在此次跟踪中有重传的报文段。判断时需要检查客户机发出报文段的 sequence number
字段即可。由于未发现有重复的 sequence number,证明连续5个TCP保温并无重传的现象
观察每个TCP报文的往返时延RTT的变化情况。选择Wireshark的“Statistics->TCP Stream Graph->Round Trip Time Graph”,绘制所有报文的往返时延图。
思考作业:
? 分析任意一个TCP报文首部的构造,并对字段的作用进行解释
顺序号(Sequence Number),简写为SEQ,从上面三次握手的分析可以看出,当一方要与另一方联系时就发送一个初始序号给对方,服务方收到后要发个独立的序号给发送方,意思是“消息收到,数据流将以这个数开始。”由此可看出,TCP连接完全是双向的,即双方的数据流可同时传输。在传输过程中双方数据是独立的,因此每个TCP连接必须有两个顺序号分别对应不同方向的数据流。
ACK指确认序号。在握手阶段,确认序号将发送方的序号加1作为回答,在数据传输阶段,确认序号将发送方的序号加发送的数据大小作为回答,表示确实收到这些数据。在第三组的分析中将看到这一过程。 端口号:HTTP占80端口
URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据
ACK 置1时表示确认号为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。 PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。