首页 > 编程知识 正文

mc服务器带宽要求,高性能处理器

时间:2023-05-04 15:58:42 阅读:9210 作者:1715

快速查看MSL :最大分段寿命,即消息的最大生存时间

注意:超过这个时间后,消息将被销毁! (验证旧的tcp连接中的链路中的所有旧消息是否都已销毁)

2MSL通常是4分钟!

MSL是最大分段生命周期的英语缩写,在中文中可以翻译为“新闻报道最大生存时间”。 他是任何报纸报道都存在于网上的最长时间,超过这个时间就会销毁报纸报道。 tcp消息(segment )是ip数据报(datagram )的数据部分,因此具体名称请参考《数据在网络各层中的称呼》。 此外,ip标头具有TTL域,TTL是time to live的缩写,在中文中可以翻译为“生存时间”。 此生存时间由源主机设置初始值,但不是保存的特定时间,而是保存的RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。

2MSL是两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态。 也就是说,在第三次握手结束后发送第四次握手的ACK数据包后,必须进入TIME_WAIT状态,并在该状态停留两倍的MSL时间。等待2MSL的目的:

在上图中的场景中,客户端主动开始关闭连接

在服务器端未接收到ACK (第三次握手)超时后,再次发送FIN消息,客户端可以接收重发的FIN消息,并再次发送ACK。 防止断开的连接1链路上剩下的FIN分组终止新连接【该连接重用5组】【发生概率较低,但由于seq循环重用,因此可能】链路上断开的连接剩余分组干扰正常分组,数据流正常在TIME_WAIT状态下,两端的端口不可用,在2MSL时间后才能继续使用。 如果连接处于等待2MSL的阶段,所有延迟的消息段将被丢弃。 但是,在实际的APP应用程序中,通过设置SO_REUSEADDR选项,您无需在使用此端口之前等待2MSL的时间结束。

如果主动关闭的一方没有时间等待状态,会发生什么? 如果主动闭合未进入TIME-WAIT,最后一次ACK接收失败,被动闭合将重新发送FIN包。 无法识别FIN包,因为此连接被认为已在活动关闭端关闭。 协议栈认为对方疯了。 尚未建立连接。 请给我FIN好吗?

因此,如果向对方返回RST包,则被动关闭端将收到“连接重置依据”错误

Broken pipe:

如果在收到RST后继续在此连接上写入数据,则会发生broken pipe错误!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。