[英]why TCP keep-alive packet doesn't trigger I/O event? Is it because no payload or sequence number is 1 less than sequence number of connection
我想让我的服务器在收到“保持活动数据包”时通知应用程序层。 我想知道“保持活动”数据包不触发I / O事件的原因是什么。 是因为TCP Keep Alive数据包没有数据,还是序列号比连接的序列号小1。
我做了一些测试,让我的客户发送“保持活动数据包”。 我的服务器使用epoll,但未触发。
我也想知道我是否填充一个字节以保持活动数据包数据/有效载荷,我的应用程序是否会收到通知/ I / O事件/ Epoll触发?
您不必为此感到惊讶。 例如,您也不会收到RST数据包的通知。
这些是传输级消息传递详细信息。 在应用程序级别,TCP为您提供字节流,而与低级详细信息无关。 如果要具有应用程序级心跳,则应在应用程序级协议上实现它们。
您的最新编辑似乎源于某种混乱。 您不能将数据添加到Keep Alive数据包中,原因有两个:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.