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

Подделанные пакеты сброса TCP

Я пытаюсь лучше понять дебаты о сетевом нейтралитете. Некоторые обвиняют интернет-провайдеров в отправке пакетов RST на конечные хосты, чтобы заблокировать трафик BitTorrent. Что именно это значит?

У меня есть базовое представление о HTTP и TCP / IP (я программист), но администрирование серверов - это то, в чем я определенно не эксперт. Спасибо.

В пакете TCP есть несколько флагов (SYN, ACK, PSH, RST и FIN). Обычно они используются как часть установки и разрыва обычных TCP-соединений. Один из флагов (RST) используется, когда возникла проблема с подключением, и одному концу необходимо аварийно прервать подключение. Когда другой конец получает RST-соединение, он немедленно разрывает соединение. Это то, что происходит, когда вы получаете сообщение об ошибке «Сброс соединения одноранговым узлом».

Это означает, что вы можете закрыть любое TCP-соединение, если вы можете вставить RST-пакет в TCP-поток. Однако для этого вам необходимо иметь возможность либо перехватывать действительный пакет, либо делать предположения на различных счетчиках, используемых для отслеживания отдельных TCP-соединений.

Протокол TCP управляется конечный автомат реализован в сетевом стеке операционной системы. Будучи программистом, концепция конечного автомата должна быть хоть немного знакома.

Создание пакета TCP RST (то есть IP-дейтаграммы с поддельным исходным IP-адресом, показывающим, что он поступает с удаленного сервера, содержащего сегмент TCP с установленным битом RST и соответствующими номерами SEQ / ACK) - это то, что каждый на маршруте от клиента к серверу может привести к закрытию TCP-соединения принимающей операционной системой. Клиент получает пакет, и конечный автомат «сбрасывает» соединение, закрывая его и предотвращая дальнейшую передачу данных.

Подделанный пакет неотличим от «настоящего» пакета TCP RST, приходящего с этого удаленного хоста. Без использования протокола, обеспечивающего аутентификацию (IPSEC AH или аналогичный), вы ничего не можете сделать, чтобы помешать какой-либо промежуточной стороне создавать такие поддельные пакеты.

Некоторые интернет-провайдеры (предположительно?) Подделывают такие пакеты TCP RST, чтобы предотвратить «чрезмерное» использование их «каналов» к Интернету пользователями таких приложений, как Bittorrent. Они используют различное оборудование / программное обеспечение для выполнения «глубокой проверки пакетов» (см. http://en.wikipedia.org/wiki/Sandvine на примере одного поставщика такого «решения») для обнаружения таких потоков трафика.

Вокруг дебатов о «сетевом нейтралитете» ведется много политики, многие из которых выходят далеко за рамки обсуждения сбоя сервера. По сути, я думаю, это просто еще одно проявление Netheads против Bellheads битвы, которые бушуют годами.