Linux上如何在预定时间单位后自动杀死空闲的tcp连接?

问题描述 投票:0回答:1

我正在尝试用C语言编写一个服务器,它使用一个名为epoll()的函数来处理连接,我想在空闲套接字上实现超时,这样我可以防止一堆空闲套接字耗尽资源,但我不想使用timerfd()编写一堆复杂的超时代码。我知道在 Linux 上可以配置网络流量设置,我想知道是否有一种方法可以让操作系统在 15 秒不活动后终止空闲 tcp 连接。我知道这会对其他使用 TCP 的程序产生影响,但我只打算让这个程序在我的 Linux 机器上运行。

有没有办法让内核(或任何控制 TCP 流量的东西)在闲置一段时间后终止 tcp 连接?

c linux tcp epoll netfilter
1个回答
0
投票

拥有这样的功能需要资源来实现和维护。我不认为存在“相关”的现实世界用例,其中系统上的每个 TCP 套接字都需要全局空闲超时。因此我认为这不会被实施。应用程序可以轻松实现自己的超时处理,并且在这里也更加灵活,例如每个应用程序的不同超时、套接字上应用程序协议的每个状态(例如标头与主体)、取决于负载、打开的套接字数量……

© www.soinside.com 2019 - 2024. All rights reserved.