在套接字上设置TCP ECN(C Linux)

时间:2015-11-17 16:00:01

标签: c linux sockets tcp congestion-control

是否有办法在C linux程序中的非特权TCP套接字上设置TCP ECN?

可以通过setsockopt()设置的任何拥塞算法是否涉及ECN?

谢谢!

1 个答案:

答案 0 :(得分:1)

简短的回答:不,技术上是肯定的(但基于它赢得的问题没有帮助,我不认为你想问的是肯定的。)

通过将1回显到/ proc / sys / net / ipv4 / tcp_ecn来打开ECN。看到 ip_sysctl.txt。默认情况下,它应为2,在对等方请求时启用ECN,但不会发起对它的请求。要设置这将需要"特权"并且无法通过套接字完成,因此第一个答案是否定的。

拥塞算法可以基于每个套接字设置,并且可能涉及ECN,而非默认算法。所以技术上,是的。但即使拥塞算法可能涉及ECN,tcp_input.c和tcp_output.c中的代码也清楚地表明,如果没有设置sysctl标志,它就不会使用它,所以它不会帮助。

请参阅此answer

中的非常好的信息