是否有办法在C linux程序中的非特权TCP套接字上设置TCP ECN?
可以通过setsockopt()设置的任何拥塞算法是否涉及ECN?
谢谢!
答案 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
中的非常好的信息