传输层协议分析--第2关:三次握手

任务描述

本关任务:分析 TCP 的三次握手的具体过程。

相关知识

为了完成本关任务,你需要掌握:

  1. 了解三次握手协议的内容;
  2. 在 Wireshark 中抓取 TCP 数据包。
三次握手建立连接

传输层协议分析--第2关:三次握手_第1张图片

  1. 第一次握手:客户端将标志位 SYN 置为 1 ,随机产生一个值SEQ = X,并将该数据包发送给服务器,客户机进入 SYN_SENT 状态,等待服务器确认;
  2. 第二次握手:服务器收到数据包后由标志位SYN = 1,知道客户端请求建立连接,服务器将标志位 SYN 和 ACK 都置为 1 ,ACK = X + 1,随机产生一个值SEQ = Y,并将该数据包发送给客户端以确认连接请求,服务器进入 SYN_RCVD 状态;
  3. 第三次握手:客户端收到确认后,检查 ACK 是否为X + 1,ACK 是否为 1 ,如果正确则将标志位 ACK 置为 1 ,ACK = Y + 1,并将该数据包发送给服务器,服务器检查 ACK 是否为K + 1,ACK 是否为 1 ,如果正确则连接建立成功,客户端和服务器进入 ESTABLISHED 状态。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP 连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

TCP 的三次握手在 Wireshark 中分析

打开 Wireshark 抓包软件,开始抓包,打开浏览器输入www.baidu.com,进入网页。停止抓包,在过滤窗口输入TCP。 由下图可知,先进行了 TCP 三次传输,然后才开始 HTTP 传输。

第一次握手:客户端发送 SYN 报文到服务器;

传输层协议分析--第2关:三次握手_第2张图片

第二次握手:服务器接收到客户端的 SYN 报文,回复 SYN + ACK 报文;

传输层协议分析--第2关:三次握手_第3张图片

第三次握手:客户端接收到服务端的 SYN + ACK 报文后,回复 ACK 报文。

传输层协议分析--第2关:三次握手_第4张图片

四次握手断开连接
  1. 第一次握手:主动关闭方发送一个 FIN ,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在 FIN 包之前发送出去的数据,如果没有收到对应的 ACK 确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。
  2. 第二次握手:被动关闭方收到 FIN 包后,发送一个 ACK 给对方,确认序号为收到序号 + 1 (与 SYN 相同,一个 FIN 占用一个序号)。
  3. 第三次握手:被动关闭方发送一个 FIN ,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
  4. 第四次握手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为收到序号 + 1 ,至此,完成四次挥手。

四次握手的过程:

传输层协议分析--第2关:三次握手_第5张图片

操作要求

双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”,并打开其中的文件message-2.txt,将查询的信息保存到文件message-2.txt。具体要求如下:

(1)打开文件夹中tcp-ethereal-trace-1文件;

(2)打开编辑 ( edit ) ->首选项 ( preferences )-> Protocols -> TCP ,取消勾选 Relative sequence numbers(相对序列号);

(3)第一次握手时, TCP SYN 区段的序列号( SEQ )是什么,填写到 txt 文件中;

(4)由三次握手协议,客户端首次回复中,ACK=SEQ+1,根据(3)中的 SEQ 号,用tcp.ack==SEQ+1(具体数字)命令筛选出相应数据报,查看gaia.cs.umass.edu 发送给客户端计算机回复的 SYN 的序列号( SEQ )是多少,填写到 txt 文件中;

message-2.txt

传输层协议分析--第2关:三次握手_第6张图片

你可能感兴趣的:(#,传输层协议分析,计算机网络,网络)