作者:shengxin11 | 来源:互联网 | 2023-07-22 12:45
TCP的三次握手和四次握手TCP三次握手•在一些文化中,两个人见面时常常通过握手来问好。双方都把握手的行为理解为友好问候的信号。网络中的连接是类似的。第一次握手请求同步。第二次握手
TCP 的三次握手和四次握手
TCP三次握手
• 在一些文化中,两个人见面时常常通过握手来问好。 双方都把握手的行为理解为友好问候的信号。 网络中的连接是类似的。 第一次握手请求同步。 第二次握手确认初始同步请求,并同步相反方向上的连接参数。 第三次握手网段是一次确认,用于通知目标两端同意建立连接。
• 当两台主机采用 TCP 协议进行通信时,在交换数据前将建立连接。 通信完成后,将关闭会话并终止连接。 连接和会话机制保障了 TCP 的可靠性功能。请参见右图中建立并终止 TCP 连接的步骤。
• 主机跟踪会话过程中的每个数据段,并使用 TCP 报头信息交换已接收数据的相关信息。 TCP 是全双工协议,每个连接都代表两个单向通信数据流戒会话。若要建立连接,主机应执行三次握手。 TCP 报头中的控制位指出了连接的进度和状态。 三次握手:
1)确认目的设备存在于网络上;
2)确认目的设备有活动的服务,并且正在源客户端要使用的目的端口号上接受
请求;
3)通知目的设备源客户端想要在该端口号上建立通信会话。
• 在 TCP 连接中,主机客户端与服务器建立连接。 TCP 连接创建的过程分为三个步骤:
第 1 步: 源客户端请求与服务器进行客户端——服务器通信会话。
第 2 步: 服务器确认客户端-服务器通信会话,并请求服务器——客户端通信会话。
第 3 步: 源客户端确认服务器——客户端通信会话。
第一步:A向B収送SYN请求
第二步:B向A収送ACK响应和SYN请求
第三步:A向B収送ACK响应
• 为了理解三次握手的过程,请查看两台主机间交换的不同值。 在 TCP 数据段报头中,有六个包含控制信息的 1 位字段,用于管理 TCP 进程。 这些字段分别是:
URG - 紧急指针字段(重要) ACK - 确认字段(重要) PSH - 推送功能
RST - 重置连接 SYN - 同步序列号
FIN - 収送方已传输完所有数据
• ACK 和 SYN 字段均与我们的三次握手分析相关。
TCP四次挥手
• 若要关闭连接,数据段报头必须设置完成 (FIN) 控制标志。 为终止每个单向 TCP 会话,需采用包含 FIN 数据段和 ACK 数据段的二次握手。 因此,若要终止 TCP 支持的整个会话过程,需要实施四次交换,以终止两个双向会话,如图 1 所示。
• 注意:在本部分中,为了更容易理解,采用了客户端和服务器这两个术语进行说明。实际上,终止的过程可以在任意两台具有开放会话的主机之间展开:第 1 步:当客户端的数据流中没有其他数据要収送时,它将収送带 FIN 标
志设置的数据段;
第 2 步:服务器収送 ACK 信息,确认收到从客户端収出的请求终止会话的
FIN 信息;
第 3 步:服务器向客户端収送 FIN 信息,终止从服务器到客户端的会话;
第 4 步:客户端収送 ACK 响应信息,确认收到从服务器収出的 FIN 信息。
• 当客户端没有其他要传输的数据时,它将在数据段报头中设置 FIN 标志。 然后,会话中的服务器端収送包含 ACK 标志设置的一般数据段信息,通过确认号确认已经收到所有数据。 当所有数据段得到确认后,会话关闭。
• 另一方向的会话采用相同的方式关闭。接收方在数据段的报头中设置 FIN 标志,然后収送到収送方,表明没有其他需要収送的数据。 返回的确认信息确定已接收所有数据,随即该方向的会话关闭。
第一步:A向B収送FIN请求
第二步:B向A収送ACK响应
第三步:B向A収送FIN请求
第四步:A向B収送ACK响应
• 也可以通过三次握手方式关闭连接。 当客户端没有其他要传输的数据时,它将向服务器収送 FIN 信息。 如果服务器也没有其他要传输的数据,它将収送同时包含 FIN 和 ACK 标志设置的响应信息,将两步并作一步。 最后,客户端返回 ACK 信息。