MTU、Keepalive

本文介绍了路径最大传输单元(MTU)的概念及其在TCP协议中的应用,同时还详细解析了TCP保活机制的工作原理,包括保活时间、保活间隔及保活探测数等参数的设置与作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

路径最大传输单元(MTU)

是指经过两台主机之间路径的所有网络报文段中最大传输单元的最小值。知道MTU后可以帮助一些像TCP这类的协议避免分片(主要通过设置DF位)。从而减少一次内核中TCP协议栈从传输层向下的一次拷贝。(这个值在TCP连接建立的时候可以确定)

TCP 保活机制(keepalive)(这个问题在面试中多次被问)

如果在一段时间内(称为保活时间, keepalive time)内连接处于非活动状态,开启保活功能的一端将向对方发送一个保活探测报文。如果发送端没有收到响应报文,那么经过一个已经提前配置好的保活间隔(keep interval),将继续发送保活探测报文,直到发送探测报文的次数达到保活探测数(keepalive probe),这时对方主机将被确认为不可到达,连接也将被中断。

开启保活功能的过程工作过程中,开启该功能的一端会发现对方处于以下四种状态之一:

  1. 对方主机仍在工作,并且可以到达。对方的TCP响应正常,并且请求端也知道对方在正常工作,请求端将保活计时器重置(重新设定为保活时间值)。如果在计时器超时之前有应用程序通过该连接传输数据,那么计时器将再次被设定为保活时间值。如果在计时器超时之前有应用程序通过该连接传输数据,那么计时器将再次被设定为保活时间值。
  2. 对方主机已经崩溃,包括已经关闭或者正在重新启动。这时对方的TCP将不会响应。请求端不会接收到响应报文,并在经过保活时间间隔指定的时间后超时。超时前,请求端会测报文的响应,那么它将认为对方主机已经关闭,连接也将被断开。
  3. 客户主机崩溃并且已经重启。在这种情况下,请求端会收到一个对其保活探测报文的响应,但这个响应是一个重置报文段,请求端将会断开连接。
  4. 对方主机仍在工作,但是由于某些原因不能到达请求端(例如网络无法传输,而且坑使用ICMP通知也可能不通知对方这一事实)。这种情况与状态2相同,因为TCP不能区分状态2与状态4,结果都是没有收到探测报文的响应。

参考:

[1] TCP/IP详解 (卷1:协议)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值