PARC Universal Packet

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

PARC Universal Packet (сокращенно PUP, хотя оригинальные документы обычно используют Pup) — был одним из двух старейших наборов межсетевых протоколов. Он был создан исследователями из Xerox PARC в середине 1970-х. (Формально, название «PUP» относится только к протоколу межсетевого уровня, но на практике его применяют ко всему набору протоколов). Полный набор обеспечивает маршрутизацию и доставку пакетов, более высокоуровневые возможности, такие как надежный поток байт, а также многочисленные протоколы прикладного уровня.

История[править | править код]

Истоки набора протоколов PUP лежат в двух направлениях: с одной стороны в тех же событиях в начале 1970-х, которые послужили толчком к развитию TCP/IP (см. История Интернета); с другой стороны в создании Ethernet локальной компьютерной сети в PARC. Разработка PUP отделилась потому, что Xerox PARC хотел двигаться быстрее с реализацией для применения её внутри фирмы. Основной дизайн протоколов PUP был в целом завершен к 1974 году.

В 1980-х Xerox использовал PUP как основу для набора протоколов Xerox Network Systems (XNS); часть протоколов в XNS (такие как Internetwork Datagram Protocol) были просто слегка модифицированной версией протоколов из PUP, прочие же сильно отличалась и отражали опыт накопленный с PUP и IP.

Простой межсетевой протокол[править | править код]

Главным протоколом межсетевого уровня является PUP, который примерно соответствует Internet Protocol (IPv4) уровню в TCP/IP. Сетевой адрес PUP состоял из 8 битного номера сети, 8 битного номер хоста и 16 битного номера сокета. Среди номеров сети было выделено специальное значение, которое означало «текущая сеть», для использования хостами которые (еще) не знают номер сети.

В отличие от TCP/IP, поле номер сокета было частью полного сетевого адреса в заголовке PUP, таким образом протоколы более высокого уровня не нуждались в собственной реализации демультиплексирования; PUP также поддерживал типы пакетов (в отличие от IP) [прояснить]. Кроме того опциональные 2 байта контрольной суммы охватывают весь пакет, а не только заголовок.

Пакеты PUP могут быть длиной до 554 байт (включая 20 байт PUP заголовок) плюс контрольная сумма. Это меньше, чем в протоколе IP, который требует от всех хостов поддерживать пакеты длиной по крайне мере 576 байт (и разрешает пакеты вплоть до 64КБ). Отдельная пара PUP-хостов в рамках одной сети может использовать пакеты большей длины, но PUP-маршрутизаторы не обязаны их поддерживать. Большие пакеты можно было фрагментировать.

Протокол называемый Gateway Information Protocol (предок RIP) использовался и как протокол маршрутизации, и для обнаружения роутеров хостами. PUP также включает простой echo протокол межсетевого уровня, аналогичный ping в TCP/IP, но работающий на более низком уровне.

Протоколы транспортного уровня[править | править код]

Чтобы установить транспортное соединение использовались два протокола. Первый Rendezvous and Termination Protocol (RTP), использовался для установления, управления и разрыва соединения. Второй, Byte Stream Protocol (BSP), являлся основным протоколом транспортного уровня (аналог TCP).

После того как RTP устанавливал соединение, включался BSP и управлял передачей данных. Подобно TCP, семантика BSP основывалась на байтах; в более позднем XNS в соответствующем протоколе (Sequenced Packet Protocol) это было заменено на пакеты.

Протоколы прикладного уровня[править | править код]

PUP поддерживал большое число прикладных протоколов. Некоторые, такие как Telnet и File Transfer Protocol, представляли собой по сути те же протоколы, которые использовались в Arpanet (аналогично тому, как они мигрировали в TCP/IP).

Другие же протоколы были новыми, включая протокол для буферизации печати, копирования пакетов дисков[прояснить], странично-уровневый удаленный доступ к файловому серверу[прояснить], разрешение имён, удаленное управление и другие. (Хотя некоторые из этих возможностей существовали и ранее, например уже в ARPANET интенсивно использовался удаленный доступ для управления Interface Message Processors-компьютерами).

Значение[править | править код]

Показав, что идея межсетевого взаимодействия была осуществима, PUP повлиял на дизайн TCP/IP и позже использовался как фундамент для XNS протоколов. Однако, вероятно, самое большое влияние PUP оказал как ключевой компонент для первой продемонстрированной в Xerox PARC модели офиса будущего. Эта демонстрация не была бы такой впечатляющей, если бы не возможности, предоставляемые сетевым взаимодействием.

RIP — потомок Gateway Information Protocol (с некоторыми небольшими изменениями для того, чтобы поддерживать адреса произвольных протоколов) используются и сегодня в других наборах протоколов, например TCP/IP. Одна из версий RIP послужила одним из первых так называемых протоколов внутренней маршрутизации для растущего Интернета, до прихода более современных OSPF и IS-IS, и по прежнему используется для протоколов внутренней маршрутизации в маленьких сетях с простыми требованиями.

Одним из ключевых недостатков PUP являлось то, что он не был устройство-независимым (используя современную терминологию, MAC- и IP- уровни не были разделены), что мешало широкому внедрению. Кроме того, тот факт, что полный адрес предоставлял только 8 бит на сеть и 8 бит на хост, означал, что сеть могла содержать не более 216 машин без использования специальных шлюзов. В наборе протоколов XNS, логическом развитии PUP, появился 48-битный уникальный адрес, впоследствии ставший MAC-адресом.

Ссылки[править | править код]

  • Edward A. Taft, Robert M. Metcalfe, Pup Specifications (Xerox Parc, Palo Alto, June, 1978 and October, 1975)
  • Edward A. Taft, State Machine for Rendezvous/Termination Protocol (Xerox Parc, Palo Alto, July, 1978 and October, 1975)
  • Edward A. Taft, Naming and Addressing Conventions for Pup (Xerox Parc, Palo Alto, July, 1978 and October, 1975)
  • Edward A. Taft, Pup Error Protocol (Xerox Parc, Palo Alto, July, 1978 and October, 1975)
  • Jon A. Hupp, Pup Network Constants (Xerox Parc, Palo Alto, July, 1979)