二级建造师报名入口官网,网站优化改动怎么做,建设工程安全信息网,大理建设工程信息网一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ack#xff0c;B收到。 A #xff1a; 知道B可以收也可以发 , B知道A…一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ackB收到。 A 知道B可以收也可以发 , B知道A可以发送和收。
举个实际场景比如线上会议时老板问你能听见吗这就是A向B发送syn此时你知道老板能发数据老板什么都不知道接着你要告诉老板你能听见这就是B向A发送syn-ack此时老板知道你可以收也可以发但是你只知道老板能发不知道他能不能收最后老板说好的知道了这就是A发送ack此时你得知老板能收。
如果不进行第三次握手拿上面例子来说你不知道老板能否收到你发的数据会产生怀疑这显然是不能存在的。
二、四次挥手
四次挥手Four-Way Handshake是 TCP 连接终止的过程用于在通信双方都完成数据传输后安全地关闭连接。以下是对四次挥手过程的详细解释 第一次挥手 主动方动作当客户端主动方的数据传输完成想要关闭连接时它会向服务器端发送一个 FINFinish报文段。这个 FIN 报文段的序列号是客户端之前已发送数据的最后一个字节的序号加 1。例如如果客户端之前发送的数据的最后一个字节的序号是 1000那么 FIN 报文段的序列号就是 1001。这表示客户端不再有数据要发送了请求关闭连接。FIN 报文段FIN 报文段除了包含序列号信息外还设置了控制位中的 FIN 位为 1其他位如 ACK 位等根据具体情况设置。FIN 位的设置是告诉服务器端客户端想要终止连接。 第二次挥手 被动方动作服务器端收到客户端的 FIN 报文段后会返回一个 ACKAcknowledgment报文段作为应答。这个 ACK 报文段的序列号是客户端发送的 FIN 报文段的序列号加 1即确认收到了客户端的关闭请求。例如如果客户端的 FIN 报文段的序列号是 1001那么服务器端返回的 ACK 报文段的序列号就是 1002。确认关闭请求服务器端此时可能还有数据没有发送完成所以它不会立即关闭连接而是先向客户端发送 ACK 报文段告知客户端它已经收到了关闭请求。 第三次挥手 被动方动作当服务器端的数据也发送完成后它会向客户端发送一个 FIN 报文段通知客户端它也没有数据要发送了请求关闭连接。这个 FIN 报文段的序列号是服务器端之前已发送数据的最后一个字节的序号加 1。发起关闭请求这一步是服务器端主动发起的关闭请求与客户端之前发起的关闭请求类似只是角色互换了。服务器端发送的 FIN 报文段的 FIN 位也设置为 1表示请求关闭连接。 第四次挥手 主动方动作客户端收到服务器端的 FIN 报文段后会返回一个 ACK 报文段作为应答。这个 ACK 报文段的序列号是服务器端发送的 FIN 报文段的序列号加 1确认收到了服务器端的关闭请求。连接关闭客户端在发送完 ACK 报文段后会等待一段时间通常是 2 倍的最大段生存期即 2MSL以确保服务器端能够收到 ACK 报文段。如果在等待期间没有收到服务器端的重传请求那么客户端就认为连接已经完全关闭可以释放相关的资源。服务器端在收到客户端的 ACK 报文段后也会释放连接相关的资源至此TCP 连接完全终止。
为什么挥手需要四次 由于 TCP 的半关闭half-close特性TCP 提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。
任何一方都可以在数据传送结束后发出连接释放的通知待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候则发出连接释放通知对方确认后就完全关闭了TCP连接。 通俗的来说两次挥手就可以释放一端到另一端的 TCP 连接完全释放连接一共需要四次挥手。
举个例子A 和 B 打电话通话即将结束后A 说 “我没啥要说的了”B 回答 “我知道了”于是 A 向 B 的连接释放了。但是 B 可能还会有要说的话于是 B 可能又巴拉巴拉说了一通最后 B 说“我说完了”A 回答“知道了”于是 B 向 A 的连接释放了这样整个通话就结束了。