DragonOS-Community / DragonOS

使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算轻量化场景而设计。DragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for lightweight cloud computing scenarios.
https://dragonos.org
GNU General Public License v2.0
817 stars 132 forks source link

fix(net): Fix TCP Unresponsiveness and Inability to Close Connections #791

Closed Samuka007 closed 1 month ago

Samuka007 commented 2 months ago

Fix several issues that can cause TCP to get stuck on the accept state and fail to send a complete close (FIN) message.

Changes:

Todo:

dragonosbot commented 2 months ago

@Samuka007: no appropriate reviewer found, use r? to override

Samuka007 commented 2 months ago

743 对于不阻塞read的访问(如来自curl-8.7.1与Firefox-125.0.2的,一次访问仅建立一个连接的访问)已经能正常高效完成多次连接。对于Edge等chrome内核浏览器的访问,多个TCP连接会一直处于Establish状态,而测试程序http_server未做read阻塞超时处理(且单线程),会导致除了拥有该连接的应用,都无法再与server建立连接,属正常现象。

fslongjin commented 2 months ago

@dragonosbot author 我改了一下,目前仍需修改PORT_MANAGER相关的地方。