假设这样一种场景:
客户端和服务器建立连接后,客户端发出消息,但由于网络原因,消息还没有到达服务器,此时连接被关闭,然后重新建立新的连接,发送新消息,但刚才在网络中游荡的消息(上一个连接的)也到达了服务器…
tcp是如何处理这种场景的?
首先,如果连接被关闭时,客户端没有收到服务器传来的确认信号,会处于一种“time_wait”状态;
其次,消息在网络传输时,有固定的“生命时长”;
time_wait状态维持的时长一般被设置为消息生命时长的两倍;
tcp对于处于time_wait状态的连接是不会发起新连接的,而因为时长的关系,在新连接发起前,可以保证旧消息一定是已经消逝的,所以就避免了一开始讲的那种场景的出现。
TCP连接的可靠性
最新推荐文章于 2024-07-28 11:34:56 发布