[英]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.