2015-11-17 2 views
1

Есть ли способ установить TCP ECN на непривилегированный TCP-сокет в программе C linux?Установить TCP ECN на сокет (C Linux)

Есть ли какой-либо алгоризм скопления, который может быть установлен через setsockopt(), связан с ECN?

Спасибо!

+0

Возможный [дубликата] (http://stackoverflow.com/q/8394625/3288910). – Jason

+0

Я не думаю, что это дубликат - ключ непривилегирован, а также подразумевается поведение per-socket и setsockopt(). – Anders

ответ

1

Короткий ответ: нет и технически да (но на основании вопроса это не поможет, и я не думаю, что это да, что вы хотели спросить).

ECN включается повторением 1 в/proc/sys/net/ipv4/tcp_ecn. См. ip_sysctl.txt. По умолчанию это должно быть 2, которое позволяет ECN, когда одноранговый узел запрашивает его, но не инициирует его запросы. Для установки этого потребуются «привилегии» и не могут быть выполнены через сокет, поэтому первый ответ - нет.

Алгоритмы перегрузки могут устанавливаться на основе каждого сокета и могут включать ECN, тривиально по умолчанию. Так технически, да. Но даже если алгоритмы перегрузки могут включать ECN, код в tcp_input.c и tcp_output.c дает понять, что без установленного флага sysctl он не будет использовать его, поэтому это не поможет.

Смотрите очень хорошую информацию в этом answer

+0

Действительно полезно, спасибо! –

Смежные вопросы