Назад | Перейти на главную страницу

Windows 10, исходящий TCP всегда на ECN (явное уведомление о перегрузке) CE (имеется перегрузка) кодовые точки

Недавно я обнаружил кое-что интересное, выполняя случайный захват пакетов. Я включил возможности ECN в своей Windows несколько лет назад, когда она была на Windows 8. Я обновил его, когда Windows 10 была доступна, поэтому я не уверен, включен ли он по умолчанию или что.

В любом случае, я полностью сторонник ECN, это хорошая функция, но я заметил кое-что странное в моем wirehark: почти весь исходящий TCP SYN помечен CE (0x03): Скриншот Windows

тот же компьютер в Linux с включенным ECN, который показывает нормальное поведение (0x01 или 0x02): скриншот linux

это ошибка или особенность, из-за которой они просто хотели быть вежливыми для всех, поэтому отметили ее сверхмедленным запуском tcp? Я уверен, что мой компьютер не перегружен ...

РЕДАКТИРОВАТЬ: некоторая формулировка

Это не ошибка, так ECN работает между конечными точками TCP.

Хост A отправляет SYN с установленными флагами ECN и CWR, чтобы сообщить хосту B, что он хочет использовать ECN. Если хост B поддерживает ECN, он должен выполнить SYN-ACK с установленным битом ECN.

После согласования ECN информация ECT может быть установлена ​​в IP-заголовке, который вы видите при просмотре (не SYN) захвата на вашем хосте Linux.

Из RFC3168:

Прежде чем TCP-соединение сможет использовать ECN, узел A отправляет пакет SYN для установки ECN, а узел B отправляет пакет SYN-ACK для установки ECN. Для пакета SYN установка как ECE, так и CWR в пакете SYN-setup ECN определяется как указание на то, что отправляющий TCP поддерживает ECN, а не как указание на перегрузку или ответ на перегрузку.