Протокол передачи Ликлайдера - Licklider Transmission Protocol

Протокол передачи Ликлайдера это протокол точка-точка для использования в каналах связи дальнего космоса. LTP обычно рассматривается как стандартный протокол уровня конвергенции для Пакетный протокол (RFC 5050 ), поддерживая широкий выбор сетей.

LTP назван в честь американского ученого-информатика Джозеф Карл Робнетт Ликлайдер.

дизайн

LTP предназначен для работы непосредственно на уровне канала передачи данных (например, протокол канала космической передачи данных Advanced Orbiting Systems (AOS)[1]). Он также может работать на Протокол пользовательских датаграмм (UDP), например если используется в сенсорной сети, в частной сети (где проблема пропускной способности не является проблемой) или в целях отладки программного обеспечения. Следовательно, он не решает такие проблемы, как маршрутизация или контроль перегрузки. Первоначально он был разработан для поддержки передачи на большие расстояния в межпланетной сети; его дизайн основан на опыте использования Протокол доставки файлов CCSDS (CFDP).

Разработанный для космической связи, его особенности:

  • Надежный перенос важных данных (например, заголовка файла)
  • Ненадежная передача менее важных данных (например, пикселей изображения - поврежденный пиксель можно преодолеть)
  • Нет обмена сообщениями для выполнения переговоров. Протокол избегает этого процесса, чтобы избежать задержек из-за высокой время поездки туда и обратно. Это также позволяет избежать недоиспользования ссылок.
  • Энергоэффективность, поскольку она передается только при наличии ссылки и различает важные и неважные данные.
  • Его таймеры работают вместе с графиками связи и могут быть приостановлены при возникновении запланированного отключения связи.
  • Он должен быть проинформирован о доступности канального уровня, времени приема-передачи и графиках связи, для чего в основном требуется база управляющей информации (MIB). LTP очень сохраняет состояние.
  • Однонаправленные сеансы передачи, обход большого времени приема-передачи или неспособность однорангового коммуникационного узла передавать

Приложение делит свои данные для отправки на две части (каждая часть может иметь размер 0):

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

Протокол

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

Реализации

Эталонные реализации

Два эталонные реализации для LTP:

Другие реализации

  • Scapy имеет модуль Contrib LTP,[2] предоставлено корпорацией MITER.[3]

использованная литература

  1. ^ "ПРОТОКОЛ AOS SPACE DATA LINK" (PDF). Консультативный комитет по системам космических данных (CCSDS). CCSDS. Получено 18 декабря 2019.
  2. ^ https://github.com/secdev/scapy/blob/master/scapy/contrib/ltp.py
  3. ^ Scapy: программа и библиотека для интерактивного управления пакетами на основе Python. Поддерживает Python 2 и Python 3 .: secdev / scapy, SecDev, 2019-03-05, получено 2019-03-05

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