Установите TCP ECN на сокет (C Linux)

Есть ли способ установить TCP ECN на непривилегированном сокете TCP в программе на C linux?

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

Спасибо!

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам