码迷,mamicode.com
首页 > 其他好文 > 详细

【IT技术分享】思科CCNA/CCNP/CCIE TCP的三次握手和四次握手

时间:2020-11-13 12:29:18      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:目的   相关信息   执行   开放   二次   指针   信号   四次握手   可靠性   

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 信息。

【IT技术分享】思科CCNA/CCNP/CCIE TCP的三次握手和四次握手

标签:目的   相关信息   执行   开放   二次   指针   信号   四次握手   可靠性   

原文地址:https://blog.51cto.com/14966105/2546144

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!