Подмена протокола
Подмена протокола используется при передаче данных для повышения производительности в ситуациях, когда существующий протокол неадекватен, например, из-за длительных задержек или высокой частоты ошибок.
Техники спуфинга
[ редактировать ]В большинстве случаев подмены протокола устройство связи, такое как модем или маршрутизатор, имитирует («подделывает») удаленную конечную точку соединения с локально подключенным хостом, используя при этом более подходящий протокол для связи с совместимым удаленным устройством, которое выполняет подмену протокола. эквивалентная подмена на другом конце канала связи.
Подмена передачи файлов
[ редактировать ]Протоколы исправления ошибок и передачи файлов обычно работают путем вычисления контрольной суммы или CRC для блока данных, известного как пакет , и передачи полученного числа в конце пакета. На другом конце соединения получатель повторно вычисляет число на основе полученных данных и сравнивает этот результат с тем, что было отправлено с удаленного компьютера. Если они совпадают, пакет был передан правильно, и получатель отправляет сообщение. ACK
чтобы сигнализировать о готовности принять следующий пакет.
Время для передачи ACK
обратно к отправителю зависит от телефонных линий, а не от скорости модема , и обычно составляет около 1/10 секунды как на коротких каналах и может быть намного дольше на междугородних каналах или сетях передачи данных, таких X.25 . Для протокола, использующего небольшие пакеты, эта задержка может быть больше, чем время, необходимое для отправки пакета. Например, протокол UUCP «g» и Kermit используют 64-байтовые пакеты, что на канале со скоростью 9600 бит/с занимает около 1 ⁄ 20 секунды на отправку. XMODEM использовал немного больший пакет размером 128 байт, который занимает около 1 ⁄ 10 секунды на отправку.
Следующий пакет данных не может быть отправлен до тех пор, пока ACK
поскольку получен предыдущий пакет. Например, в случае XMODEM это означает, что требуется минимум 2 ⁄ секунды для завершения всего цикла для одного пакета. Это означает, что общая скорость составляет лишь половину теоретического максимума, а эффективность канала составляет 50% .
Подмена протокола решает эту проблему, заставляя локальный модем распознавать, что идет передача данных, часто путем поиска заголовков пакетов. Когда они обнаружены, модем ищет конец пакета, обычно зная количество байтов в одном пакете. Например, XMODEM имеет 132 байта в пакете из-за того, что заголовок и контрольная сумма добавляются к 128 байтам реальных данных. Когда модем видит, что пакет закончился, он немедленно отправляет поддельное сообщение. ACK
сообщение обратно хосту. Это заставляет локальный компьютер немедленно отправить другой пакет, избегая задержки ожидания ACK
с удаленной машины. Данные для нескольких пакетов хранятся во внутреннем буфере, пока модем отправляет их на удаленный компьютер. Это позволяет отправлять пакеты непрерывно, что значительно повышает эффективность канала. Однако для этого также необходимо, чтобы связь между двумя системами была безошибочной, поскольку модем уже ACK
редактировал пакеты еще до того, как они были отправлены. Обычно эта проблема решалась с помощью протокола исправления ошибок на уровне модема, такого как сетевые протоколы Microcom .
Подмена протокола также широко использовалась вместе с еще одной особенностью более ранних высокоскоростных модемов. До введения эхоподавления в протоколах V.32 и более поздних версиях высокоскоростные модемы обычно имели очень медленный «обратный канал» для отправки подобных сообщений. ACK
возвращается отправителю. со скоростью ~18 500 бит/с Например, на TrailBlazer модем мог отправлять получателю до 35 пакетов UUCP в секунду, но обратный канал предлагал только 75 бит/с, что недостаточно для 35 байт (280 бит) ACK
сообщения, генерируемые удаленным хостом.
В этом случае подмена позволила модему-отправителю продолжать отправку пакетов с максимальной скоростью. В то же время модем на удаленной принимающей стороне прервал передачу ACK
пакеты генерируются программным обеспечением локального компьютера, сохраняя обратный канал свободным. Поскольку эффективность канала стала серьезной проблемой только на скоростях выше 2400 бит/с, а модемы, способные работать быстрее, обычно все равно имели значительную вычислительную мощность, подмена протокола в основном была связана с этими более высокоскоростными системами.
TCP-спуфинг
[ редактировать ]TCP-соединения могут страдать от ограничений производительности из-за недостаточного размера окна для каналов с высокой задержкой полосы пропускания , а на каналах с большой задержкой, например, через спутники GEO TCP , алгоритм медленного запуска значительно задерживает запуск соединения. Поддельный маршрутизатор локально разрывает TCP-соединение и преобразует TCP в протоколы, адаптированные к длительным задержкам по спутниковому каналу, такие как XTP .
Подмена RIP/SAP
[ редактировать ]SAP и RIP периодически передают сетевую информацию, даже если таблицы маршрутизации/услуг не изменились. с коммутируемым доступом по требованию Таким образом, каналы WAN в сетях IPX никогда не простаивают и не отключаются. Поддельный маршрутизатор или модем перехватывает широковещательные сообщения SAP и RIP и повторно транслирует рекламные объявления из своей собственной таблицы маршрутизации/сервиса, которая обновляется только тогда, когда канал активен по другим причинам.
См. также
[ редактировать ]Внешние ссылки
[ редактировать ]- UUCP `g' Protocol
- Ишак, Джозеф; Оллман, Марк (2001). «О производительности TCP-спуфинга в спутниковых сетях» (PDF) . Архивировано из оригинала (PDF) 11 октября 2006 г. Проверено 29 декабря 2005 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )