Кратко

  • RFC 741 рассматривал пакетный голос не как простую последовательность отсчётов: прежде чем передавать речь, два хоста должны были согласовать вызов, кодирование, темп и готовность.
  • Четыре направленные роли управления и данных, согласование кодеков и ожидание ответа человека показывают, что именно задавал NVP. Указание четырёх площадок не доказывает широкого распространения.

Анализ

Два разных года в одном документе

На обложке RFC стоит дата 22 ноября 1977 года. Титульная страница при этом называет текст NSC Note 68 от 29 января 1976 года и указывает, что он пересматривает три более ранние записки. Это не противоречие в истории реализации, а две даты документа: протокол, по словам автора, был впервые реализован в декабре 1973 года.

Предисловие помещает NVP в проект ARPA Network Secure Communications. Проект стремился продемонстрировать высококачественную, малоскоростную, цифровую полнодуплексную речь через сети с коммутацией пакетов. Для защиты оцифрованной речи, говорится в тексте, можно было использовать уже существовавшие шифровальные устройства. NVP был частью усилия, но не обеспечивал шифрование сам.

В благодарностях Danny Cohen сообщает, что NVP с 1973 года применялся для локальной и межсетевой голосовой связи в ARPANET. Он перечисляет Information Sciences Institute, Lincoln Laboratory, Culler-Harrison и Stanford Research Institute, а также разные комбинации оборудования и речевого кодирования. Это конкретное сообщение об использовании в четырёх местах. В RFC нет подсчёта пользователей и вызовов, оценки качества или доказательства существования общедоступной телефонной службы.

Сначала согласовать вызов, потом передавать речь

RFC 741 объяснял, почему стандартного обмена данными было мало: протокол host-to-host в ARPANET оптимизировали для передачи данных, а для интерактивной речи он не подходил. Поэтому NVP отделил управляющие сообщения от речевых данных. Верхние восемь бит 12-битного MESSAGE-ID документ называет LINK, нижние четыре — SUB-LINK. Это логические идентификаторы сообщений, а не четыре физических линии и не современные IP-порты.

Вызов использовал четыре направленные роли. L переносил управление от вызывающего к отвечающему, K — управление обратно. Речь шла по L+1 в первом направлении и по K+1 во втором. L и K выбирались в восьмеричном диапазоне 340–375 и могли совпадать. Первоначальный контакт проходил по ссылке 377.

Вызывающий отправлял по 377 сообщение с указанием вызывающей и вызываемой сторон и предлагал K. Отвечающий мог отказать либо принять вызов и назначить L. Затем вызывающий повторял обращение уже по L. Начиналось согласование совместимости: одна сторона предлагала параметры WHAT и варианты HOW, другая принимала или отклоняла их. Согласовать можно было тип речевого кодирования, период дискретизации, версию протокола, максимальную длину сообщения и размер речевого фрагмента. RFC описывал, среди прочего, LPC и CVSD. Совпадение оборудования не требовалось; требовалась общая конфигурация.

Совместимость машин ещё не означала, что человек ответил

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

После назначения ссылок любая сторона могла запросить новое согласование. Ссылки оставались прежними, а ранее согласованные параметры требовалось пройти заново; до READY речевые сообщения игнорировались. Необязательный ECHO REQUEST позволял измерять задержку. RFC не требовал поддержки этой функции и прямо запрещал завершать вызов только из-за отсутствия ответа. Это точка наблюдения, а не гарантия задержки.

В 1986 году RFC 980 отнёс NVP-II к «Minor Host Protocols». Такая запись фиксирует место в каталоге протоколов, но не показывает, сколько сетей продолжало использовать NVP. Исторический вывод здесь ограничен и потому надёжен: к середине 1970-х исследователи ARPANET описали, как разнородные машины согласуют кодирование, роли управления и состояние человеческого ответа. Речь передавалась после этого согласования, а не вместо него.

Источники