有没有办法在 C linux 程序中的非特权 TCP 套接字上设置 TCP ECN?
任何可以通过 setsockopt() 设置的拥塞算法是否涉及 ECN?
谢谢!
有没有办法在 C linux 程序中的非特权 TCP 套接字上设置 TCP ECN?
任何可以通过 setsockopt() 设置的拥塞算法是否涉及 ECN?
谢谢!
简短的回答:不,技术上是的(但基于这个问题,它没有帮助,我认为你想问的不是肯定的)。
通过将 1 回显到 /proc/sys/net/ipv4/tcp_ecn 来打开 ECN。请参阅 ip_sysctl.txt。默认情况下,它应该是 2,当对等方请求它时启用 ECN,但不发起对它的请求。要设置它需要“特权”并且不能通过套接字完成,所以第一个答案是否定的。
拥塞算法可以在每个套接字的基础上设置,并且可能涉及 ECN,默认的很简单。所以从技术上讲,是的。但是即使拥塞算法可能涉及 ECN,tcp_input.c 和 tcp_output.c 中的代码也清楚地表明,如果没有设置 sysctl 标志,它将不会使用它,因此无济于事。
请参阅此答案中的非常好的信息