Введение
Ранний протокол сетевого взаимодействия
Универсальный пакет PARC (PUP или PuP, хотя в оригинальных документах обычно используется Pup) был одним из двух самых ранних комплектов протоколов сетевого взаимодействия; он был разработан исследователями Xerox PARC в середине 1970-х годов. (Строго говоря, название "PUP" относится только к протоколу сетевого уровня, но оно также применяется ко всему комплекту протоколов.) Весь комплект обеспечивал маршрутизацию и доставку пакетов, а также функции более высокого уровня, такие как надёжный поток байтов, вместе с многочисленными приложениями.
The PARC Universal Packet (PUP or PuP, although the original documents usually use Pup) was one of the two earliest internetworking protocol suites; it was created by researchers at Xerox PARC in the mid 1970s. (Technically, the name "PUP" only refers to the internetwork level protocol, but it is also applied to the whole protocol suite.) The entire suite provided routing and packet delivery, as well as higher level functions such as a reliable byte stream, along with numerous applications.
История
Протокол PUP был разработан примерно в то же время, что и самые ранние этапы разработки TCP/IP для Интернета, а также параллельно с появлением ранней локальной сети Ethernet в PARC. К 1974 году базовая архитектура семейства протоколов PUP была практически завершена. В 1980-х годах компания Xerox использовала PUP в качестве основы для пакета протоколов Xerox Network Systems (XNS); некоторые протоколы XNS (например, Internetwork Datagram Protocol) представляли собой незначительно измененные версии протоколов PUP, в то время как другие существенно отличались, отражая опыт, накопленный при работе с PUP и IP.
Базовый протокол сети Интернет
Основным протоколом интернет-слоя является PUP, который приблизительно соответствует уровню протокола Интернет (IP) в TCP/IP. Полный сетевой адрес PUP состоит из 8-битного номера сети, 8-битного номера хоста и 16-битного номера сокета. Номер сети имеет специальное значение, обозначающее "эта сеть", предназначенное для использования хостами, которые (пока) не знают свой номер сети. В отличие от TCP/IP, поля сокетов являются частью полного сетевого адреса в заголовке PUP, что избавляло протоколы верхнего уровня от необходимости реализации собственного мультиплексирования; PUP также предоставляет типы пакетов (также в отличие от IP). Кроме того, необязательная контрольная сумма размером 2 байта охватывает весь пакет. Пакеты PUP имеют длину до 554 байт (включая 20-байтовый заголовок PUP) и контрольную сумму. Это меньше, чем минимальный размер пакета, требуемый IP – 576 байт (хотя IP допускает пакеты размером до 65K байт, если хосты поддерживают такую возможность); отдельные пары хостов PUP в конкретной сети могут использовать пакеты большего размера, но маршрутизатору PUP не требуется их обрабатывать. Пакеты большего размера могут быть фрагментированы. Протокол Gateway Information Protocol (предшественник RIP) используется как для маршрутизации, так и для обнаружения маршрутизаторов хостами. PUP также включает простой протокол эхо на уровне сети, аналогичный ping в IP, но работающий на более низком уровне.
Протоколы транспортного уровня
Для установления транспортного соединения в работу вступили два протокола. Первый – протокол установления и завершения соединения (RTP), который использовался для инициирования связи между двумя сущностями, а также для управления и завершения соединения. Второй – основной протокол транспортного уровня, протокол байтового потока (BSP), аналогичный TCP. После того, как RTP инициировал соединение, BSP принимал управление и осуществлял передачу данных. Как и TCP, семантика и функционирование BSP были основаны на байтах; в отличие от этого, для эквивалентного протокола в XNS, протокола последовательных пакетов, использовались пакеты.
Протоколы применения
PUP поддерживал большое количество приложений. Некоторые из них, такие как Telnet и File Transfer Protocol, по сути являлись теми же протоколами, что и в ARPANET (подобно тому, как это было с набором протоколов TCP/IP). Другие были новыми, включая протоколы для спулинга печати, копирования дисковых пакетов, удаленного доступа к файловым серверам на уровне страниц, поиска имен, удаленного управления и т.п. (хотя некоторые из этих возможностей уже встречались ранее, например, ARPANET уже широко использовал удаленное управление для контроля интерфейсных процессоров сообщений (IMP), из которых он и состоял).