Компьютерные сети. 6-е изд. - Эндрю Таненбаум
Шрифт:
Интервал:
Закладка:
В первые несколько лет ARPA занималось поиском своей миссии. В 1967 году Ларри Робертс (Larry Roberts), руководитель проектов в ARPA, пытавшийся найти способ предоставления удаленного доступа к компьютерам, обратил свое внимание на сетевые технологии. Он связался с несколькими экспертами в этой области, чтобы определить порядок действий. Один из них, Уэсли Кларк (Wesley Clark), предложил построить подсеть с коммутацией пакетов, в которой каждый хост был бы связан со своим маршрутизатором.
Поначалу Робертс был настроен скептически, но в конце концов принял эту идею. Он представил несколько туманный доклад на симпозиуме по операционным системам ACM SIGOPS, проводившемся в Гатлинбурге, штат Теннесси, в конце 1967 года (Roberts, 1967). К большому удивлению Робертса, на конференции был представлен еще один доклад, описывающий аналогичную систему. Эта система была не только спроектирована, но и полностью реализована под руководством Дональда Дэвиса (Donald Davies) из Национальной физической лаборатории (NPL) Великобритании. Созданная в NPL система не охватывала всю страну, а всего лишь соединяла несколько компьютеров на территории NPL. Тем не менее это убедило Робертса в принципиальной реализуемости идеи коммутации пакетов. Кроме того, в упомянутом докладе цитировалась более ранняя забракованная работа Бэрана. Робертс уехал из Гатлинбурга с твердым намерением создать то, что позднее получило название ARPANET.
Согласно разработанному им плану, подсеть состояла из мини-компьютеров IMP (Interface Message Processors — обработчики сообщений интерфейсов), соединенных самыми современными на тот момент 56-килобитными линиями передачи. Для повышения надежности каждый IMP соединялся по крайней мере с двумя другими IMP. Все отправляемые через подсеть пакеты содержали полный адрес получателя, так что в случае уничтожения части линий связи и IMP следующие пакеты автоматически перенаправлялись бы по альтернативным путям.
Каждый узел сети представлял собой находящиеся в одном помещении IMP и хост, соединенные коротким кабелем. Хост мог отправлять своему IMP сообщения размером до 8063 бит. Затем IMP разбивал информацию на пакеты максимум по 1008 бит и по отдельности направлял их в пункт назначения. Перед дальнейшей отправкой каждый пакет нужно было получить полностью. Таким образом, эта подсеть стала первой электронной сетью с промежуточным хранением данных и коммутацией пакетов.
Далее ARPA объявило тендер на создание подсети и получило заявки от 12 компаний. После оценки всех предложений победила консалтинговая компания BBN (Кембридж, штат Массачусетс). В декабре 1968 года ARPA заключило с BBN контракт на разработку подсети и написание для нее программного обеспечения. В качестве IMP были выбраны специально модифицированные мини-компьютеры Honeywell DDP-316 с 12K 16-битных слов памяти на магнитных сердечниках. У этих IMP не было дисков, поскольку наличие движущихся частей сочли понижающим надежность. IMP соединялись между собой 56-килобитными линиями связи, арендованными у телефонных компаний. Сегодня скорость в 56 Кбит/с используется разве что в сельской местности, но тогда это было лучшее из возможного.
Программное обеспечение было разбито на две части: ПО подсети и ПО хоста. ПО подсети состояло из конечного IMP в соединении между хостом и IMP, протокола IMP — IMP и протокола для взаимодействия, передающего и принимающего IMP, созданного для повышения надежности. Первоначальная архитектура ARPANET приведена на илл. 1.13.
Вне подсети также требовалось программное обеспечение, а именно конечный хост в части соединения хоста с IMP, протокол хост — хост, а также прикладное ПО. Вскоре стало понятно, что BBN полагали, что их работа была выполнена, как только сообщение на линии хост — IMP было получено и передано в пункт назначения.
Однако для хостов также требовалось программное обеспечение. Для решения этой проблемы Робертс организовал встречу исследователей сетей (в основном аспирантов) в Сноуберде, штат Юта, летом 1969-го. Участники собрания ожидали, что какой-нибудь эксперт представит грандиозный проект по созданию сети, опишет нужное программное обеспечение, после чего распределит между ними работу. Они с удивлением обнаружили, что никакого эксперта, как и проекта, нет. Им нужно было самим разобраться, что делать.
Илл. 1.13. Первоначальная архитектура ARPANET
Тем не менее в декабре 1969-го удалось запустить экспериментальную сеть, состоящую из четырех узлов: Калифорнийский университет в Лос-Анджелесе (UCLA), Калифорнийский университет в Санта-Барбаре (UCSB), Стэнфордский исследовательский институт (SRI) и Университет Юты. Эти четыре узла были выбраны, поскольку все они имели значительное количество контрактов с ARPA. Кроме того, их хост-компьютеры были совершенно несовместимы (что делало задачу более интересной). Первое сообщение между хостами было отправлено двумя месяцами ранее из узла UCLA в узел SRI группой под руководством Лена Клейнрока (Len Kleinrock), одного из первопроходцев теории коммутации пакетов. Сеть быстро росла по мере доставки и установки дополнительных IMP, и вскоре она полностью охватила Соединенные Штаты. На илл. 1.14 представлен стремительный рост ARPANET за первые три года.
ARPA не только помогала расти только что созданному ARPANET, но и спонсировала исследования в области спутниковых сетей и мобильных сетей пакетной радиосвязи. В знаменитом ныне эксперименте ехавший по Калифорнии грузовик с помощью пакетной радиосети передавал сообщения в SRI, которые отправлялись далее через ARPANET на Западное побережье, а затем в Университетский колледж Лондона по спутниковой сети. Таким образом находящийся в грузовике исследователь мог использовать лондонский компьютер во время поездки по Калифорнии.
Этот эксперимент также продемонстрировал, что существующие протоколы ARPANET не подходили для работы с различными сетями. Это наблюдение привело к дальнейшим исследованиям в сфере протоколов, завершившихся изобретением TCP/IP (Серф и Кан; Cerf & Kahn, 1974). Протокол TCP/IP был специально разработан для связи через интерсети, и его значение росло по мере подключения к ARPANET все новых сетей.
В качестве стимула для внедрения новых протоколов ARPA заключила несколько контрактов по реализации TCP/IP на различных компьютерных
Илл. 1.14. Разрастание ARPANET. (а) Декабрь 1969. (б) Июль 1970. (в) Март 1971. (г) Апрель 1972. (д) Сентябрь 1972
платформах, включая системы IBM, DEC и HP, а также Berkeley Unix. Исследователи из Калифорнийского университета в Беркли переписали TCP/IP на основе нового интерфейса программирования — сокетов (sockets) — для предстоящей версии 4.2BSD системы Berkeley Unix. Они также разработали множество приложений, утилит и программ управления, чтобы продемонстрировать, насколько удобно использовать сеть с сокетами.
Момент был выбран идеально. Во многих университетах как раз появился второй или третий компьютер VAX и соединяющая их LAN, но отсутствовало необходимое сетевое программное обеспечение. Как только появилась 4.2BSD — с TCP/IP, сокетами и множеством сетевых утилит, — ее немедленно приняли на вооружение в полном комплекте. Более того, благодаря TCP/IP значительно упрощалось соединение LAN