广州总校区切换校区
复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图片
news

新闻资讯

tcp为什么要三次握手

发布时间: 2021-10-28

tcp为什么要三次握手?TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以?




TCP三次握手执行过程:


(1)首先,服务端和客户端都是处于CLOSED状态的,然后服务端启动,监听端口,状态变为LISTEN(监听)状态


(2)客户端为了请求资源,发送链接,发送同步序列号SYN,此时客户端就变成了SYN-SEND状态


(3)服务端接收到客户端请求之后,发送SYN和ACK,然后服务端状态就变成SYN-RCVD状态


(4)客户端接收到信息之后,再次发送ACK,然后变成ESTABLISHED(已确认)状态,服务端接收到返回信息后,状态也变成ESTABLISHED(已确认)状态


为什么需要TIME_WAIT状态


1、可靠的终止TCP连接


2、保证让迟来的TCP报文段有足够的时间被识别并丢弃


①为实现TCP这种全双工连接的可靠释放,这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的FIN)这种2MSL等待的另一个结果是这个TCP连接在2MSL等待期间,定义这个连接的插口(客户的IP地址和端口号,服务器的IP地址和端口号)不能再被使用。这个连接只能在2MSL结束后才能再被使用。


②为使旧的数据包在网络因过期而消失,每个具体TCP实现必须选择一个报文段较大生存时间MSL。它是任何报文段被丢弃前在网络内的最长时间。


TCP 建立连接时通过三次握手可以有效地避免历史错误连接的建立,减少通信双方不必要的资源消耗,三次握手能够帮助通信双方获取初始化序列号,它们能够保证数据包传输的不重不丢,还能保证它们的传输顺序,不会因为网络传输的问题发生混乱,到这里不使用『两次握手』和『四次握手』的原因已经非常清楚了:


『两次握手』:无法避免历史错误连接的初始化,浪费接收方的资源;


『四次握手』:TCP 协议的设计可以让我们同时传递 ACK 和 SYN 两个控制信息,减少了通信次数,所以不需要使用更多的通信次数传输相同的信息。

上一篇: 什么是tcp端口

下一篇: nb-iot能做什么

<
在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!