bet36体育在线网站_bet36网址365v.com_bet36备用手机版

当TCP摇动4次时,为什么还要等待3次握手和2MSL?

来源:365bet网上娱乐网址 作者:365bet网站平台 人气: 发布时间:2019-11-13
摘要:1) TCP是否有三向握手? 在谢希仁的“计算机网络”第四版中,三向链接协议的目的是防止失败的连接请求消息段突然发送到服务器并导致错误。本书中的示例就是这样的非活动连接。
1)
TCP是否有三向握手?
在谢希仁的“计算机网络”第四版中,三向链接协议的目的是防止失败的连接请求消息段突然发送到服务器并导致错误。本书中的示例就是这样的非活动连接。当客户端发送的初始连接请求消息段没有丢失并且在特定时间内长时间停留时,会生成请求消息段,因此延迟延迟直到释放连接,现在是时候到达服务器了。
本来这是一个过期的段。
但是,当服务器收到无效的连接请求段时,会将其与客户端返回的新连接请求混淆。
然后,将确认消息段发送给客户端以同意建立连接。
假设不存在3次握手,而存在2次握手,则服务器发出确认后便立即建立新的连接。
由于客户端不发出建立连接的请求,因此客户端将忽略服务器的确认,并且不会将数据发送到服务器。
但是,服务器认为建立了新的传输连接,并且正在等待客户端发送数据。
此方法浪费大量服务器资源。
3次握手可以防止这种情况。
例如,在这种情况下,客户端不会发出服务器确认的确认。
服务器未收到确认,并且知道客户端不需要连接。
坦白地说,主要目的是防止服务器等待和浪费资源。
2)
为什么要等待2个MSL来打招呼4次?
与TCP三向同步链接协议不同,TCP关闭连接是通过四向链接协议实现的:ABFin,BAACK,BAFin,ABACK。为什么这样
ABFin,BAACK和A属于活动关闭部分。当从B收到ACK时,从A到B的连接将关闭。换句话说,它显示在中间。此时,A不能再发送数据。
即使在这种状态下,B也可以发送一个地址的数据。发送完B数据后,还将执行结束动作。
BAFin,后退
B收到ACK并关闭连接。
但是我是否因为A不知道ACK是否到达B而等待?
你还在等什么
如果ACK未到达B,则B重新发送END消息超时。如果A等待足够长的时间,它将收到FIN消息,指示ACK尚未到达B,因此再次发送ACK,但在足够的时间内未收到ACK。成功。
此等待时间至少为:B待机时间+ FIN传输时间。采用更保守的2MSL超时以确保可靠性。
MSL,MaximumSegmentLife,这是TCPSegment生命周期的TCP限制。
TTL,TimeToLive,IPDa的寿命为255秒,因此MSL通常= TTL = 255秒
A发送一个ACK,等待ACK到达另一MSL对方的等待时间,并等待FIN等待时间(也为MSL)的重发。因此,如果在2MSL内未收到END,则另一方将安全地接收END。
总而言之,等待2MSL的目的是使A发送的最后一个ACK最终可以到达B。

责任编辑:365bet网站平台