stringtranslate.com

Подмена протокола

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

Методы подделки

В большинстве случаев применения подмены протоколов коммуникационное устройство, такое как модем или маршрутизатор, имитирует («подделывает») удаленную конечную точку соединения с локально подключенным хостом, используя при этом более подходящий протокол для связи с совместимым удаленным устройством, которое выполняет эквивалентную подмену на другом конце канала связи.

Подделка передачи файлов

Протоколы исправления ошибок и передачи файлов обычно работают, вычисляя контрольную сумму или CRC для блока данных, называемого пакетом , и передавая полученное число в конце пакета. На другом конце соединения получатель пересчитывает число на основе полученных данных и сравнивает этот результат с тем, что было отправлено с удаленной машины. Если эти два результата совпадают, пакет был передан правильно, и получатель отправляет сигнал о ACKтом, что он готов принять следующий пакет.

Время передачи ACKобратно отправителю зависит от телефонных линий, а не от скорости модема, и обычно составляет около 1 10 секунды на коротких линиях связи и может быть намного больше на дальних линиях связи или сетях передачи данных, таких как X.25 . Для протокола, использующего небольшие пакеты, эта задержка может быть больше, чем время, необходимое для отправки пакета. Например, протокол UUCP "g" и Kermit используют 64-байтовые пакеты, отправка которых на линии связи 9600 бит/с занимает около 120 секунды. XMODEM использовал немного больший 128-байтовый пакет, отправка которого занимает около 110 секунды.

Следующий пакет данных не может быть отправлен, пока не ACKбудет получен предыдущий пакет. Например, в случае XMODEM это означает, что для завершения всего цикла одного пакета требуется минимум 210 секунды. Это означает, что общая скорость составляет всего половину теоретического максимума, эффективность канала 50% .

Подмена протокола решает эту проблему, заставляя локальный модем распознавать, что идет передача данных, часто путем поиска заголовков пакетов. Когда они видны, модем затем ищет конец пакета, обычно зная количество байтов в одном пакете. XMODEM, например, имеет 132 байта в пакете из-за того, что заголовок и контрольная сумма добавляются к 128 байтам фактических данных. Когда модем видит, что пакет закончился, он немедленно отправляет поддельное ACKсообщение обратно на хост. Это заставляет локальный компьютер немедленно отправлять другой пакет, избегая задержки ожидания ACKот удаленной машины. Данные для нескольких пакетов хранятся во внутреннем буфере, пока модем отправляет их на удаленную машину. Это позволяет отправлять пакеты непрерывно, значительно повышая эффективность канала. Однако это также требует, чтобы связь между двумя системами была безошибочной, поскольку модем уже ACKотредактировал пакеты еще до того, как они были отправлены. Обычно эта проблема решалась с помощью протокола исправления ошибок на уровне модема, например, сетевых протоколов Microcom .

Подмена протокола также широко использовалась с другой функцией ранних высокоскоростных модемов. До введения эхоподавления в V.32 и более поздних протоколах высокоскоростные модемы обычно имели очень медленный «обратный канал» для отправки таких вещей ACKобратно отправителю. Например, на TrailBlazer со скоростью ~18 500 бит/с модем мог отправлять получателю до 35 пакетов UUCP в секунду, но обратный канал предлагал всего 75 бит/с, что недостаточно для 35 байт, 280 бит, ACKсообщений, сгенерированных удаленным хостом.

В этом случае спуфинг позволял отправляющему модему продолжать отправлять пакеты так быстро, как только мог. В то же время модем на удаленном принимающем конце сбрасывал пакеты, ACKгенерируемые программным обеспечением локального компьютера, сохраняя обратный канал свободным. Поскольку эффективность канала становилась серьезной проблемой только на скоростях свыше 2400 бит/с, а модемы, способные работать быстрее, как правило, в любом случае обладали значительной вычислительной мощностью, спуфинг протокола в основном ассоциировался с этими высокоскоростными системами.

TCP-спуфинг

Соединения TCP могут страдать от ограничений производительности из-за недостаточного размера окна для соединений с высоким произведением пропускной способности и задержки , а на соединениях с большой задержкой, таких как через спутники GEO , алгоритм медленного запуска TCP значительно задерживает запуск соединения. Поддельный маршрутизатор локально завершает соединение TCP и транслирует TCP в протоколы, адаптированные к большим задержкам по спутниковому соединению, таким как XTP .

Подмена RIP/SAP

SAP и RIP периодически транслируют сетевую информацию, даже если таблицы маршрутизации/обслуживания не изменяются. Поэтому каналы WAN с набором по требованию в сетях IPX никогда не простаивают и не отключаются. Поддельный маршрутизатор или модем перехватывает трансляции SAP и RIP и ретранслирует объявления из собственной таблицы маршрутизации/обслуживания, которую он обновляет только тогда, когда канал активен по другим причинам.

Смотрите также

Внешние ссылки