Файл: Аналитический обзор развития технологий Интернета (Истоки и концепция сети Интернет).pdf
Добавлен: 25.05.2023
Просмотров: 309
Скачиваний: 2
Однако NCP не содержал средств для адресации сетей (и машин), расположенных за IMP-устройством в месте назначения, так что некоторые модификации NCP все же были необходимы. (Первоначально предполагалось, что динамические изменения ARPANET невозможны.) В обеспечении сквозной надежности протокол NCP полагался на ARPANET. Если какие-то пакеты терялись, протокол (и, естественно, поддерживаемые им приложения) должны были остановиться. В модели NCP отсутствовало сквозное управление ошибками, поскольку ARPANET должна была являться единственной существующей сетью, причем настолько надежной, что от компьютеров не требовалось умения реагировать на ошибки.
В итоге Кан решил разработать новую версию протокола, удовлетворяющую требованиям окружения с открытой сетевой архитектурой. Этот протокол позднее будет назван Transmission Control Protocol/Internet Protocol (TCP/IP - Протокол управления передачей/Межсетевой протокол). В то время как NCP действовал в духе драйвера устройства, новинка должна была в большей мере напоминать коммуникационный протокол.
В основу своих первоначальных рассуждений Кан положил четыре принципа:
Каждая сеть должна сохранять свою индивидуальность. При подключении к Интернету сети не должны подвергаться внутренним переделкам.
Коммуникации должны идти по принципу "максимум возможного". Если пакет не прибыл в пункт назначения, источник должен вскоре повторно передать его.
Для связывания сетей должны использоваться черные ящики; позднее их назовут шлюзами и маршрутизаторами. Шлюзы не должны хранить информацию об отдельных протекающих через них потоках данных. Они должны оставаться простыми, без сложных средств адаптации и восстановления после разного рода ошибочных ситуаций.
На эксплуатационном уровне не должно существовать глобальной системы управления.
Другими ключевыми проблемами, нуждавшимися в решении, были:
Алгоритмы, препятствующие разрыву связи из-за потери пакетов и позволяющие источнику повторно передать их.
Средства "конвейеризации" потоков данных между компьютерами, позволяющие маршрутизировать множество пакетов на всем пути от отправителя до получателя с точностью до компьютеров, участвующих в процессе передачи, если промежуточные сети дают такую возможность.
Функции шлюзов, позволяющие им правильно перенаправлять пакеты. Имеется в виду интерпретация IP-заголовков для маршрутизации, обслуживание интерфейсов, разделение пакетов на более мелкие, если это необходимо, и т.п.
Необходимость сквозного контрольного суммирования, пересборки пакетов из фрагментов, выявления повторяющихся пакетов при появлении таковых.
Необходимость глобальной адресации.
Методы сквозного управления потоками данных.
Взаимодействие с различными операционными системами.
Были и другие проблемы, например, эффективность реализации и производительность объединенной сети, но первоначально их отодвинули на второй план.
Кан начал работать над коммуникационно-ориентированными принципами операционных систем, еще будучи сотрудником BBN. Он зафиксировал некоторые из своих ранних соображений в виде внутреннего меморандума BBN, озаглавленного "Коммуникационные принципы операционных систем" ("Communications Principles for Operating Systems"). Кан понял, что для эффективного встраивания любого нового протокола необходимо изучить детали реализации каждой операционной системы. В результате весной 1973 года, после образования проекта "Internetting", Кан пригласил Винта Серфа (работавшего в то время в Стэнфорде) для совместной работы над детальной спецификацией протокола. Серф активно участвовал в проектировании и реализации NCP, поэтому он уже обладал информацией об интерфейсах с существующими операционными системами. Вооружившись архитектурным подходом Кана к коммуникациям и опытом Серфа, полученным во время работы над NCP, коллеги объединились для уточнения деталей того, что впоследствии станет семейством протоколов TCP/IP.
Взаимообогащение дало превосходные результаты, и первая документированная версия выработанных спецификаций (впоследствии эта версия была опубликована в виде статьи) была распространена на специальной встрече Международной сетевой рабочей группы (INWG), состоявшейся во время конференции в Университете Суссекса в сентябре 1973 года. В свое время Серфу предложили возглавить эту группу, и он не упустил случая организовать встречу членов INWG, поскольку большинство из них присутствовали на конференции в Суссексе.
В процессе сотрудничества между Каном и Серфом были сформулированы следующие основополагающие принципы:
Общение между двумя процессами логически должно представляться как обмен непрерывными последовательностями байтов (октетов, в терминологии Кана и Серфа). Для идентификации октета используется его позиция в последовательности.
Управление потоком данных осуществляется на основе механизмов скользящих окон и подтверждений. Получатель может выбирать, когда посылать подтверждение, распространяющееся на все полученные к этому моменту пакеты.
Вопрос о том, как именно отправитель и получатель договариваются о параметрах окон, оставлен открытым. Первоначально используются подразумеваемые значения.
Хотя в то время в Исследовательском центре компании Ксерокс в Пало-Альто (Xerox PARC) уже велись работы над сетями Ethernet, массового распространения локальных сетей пока не предвиделось. О персональных компьютерах и рабочих станциях вообще не было речи. Первоначальную модель составляли сети национального уровня, такие как ARPANET; предполагалось, что подобных сетей будет относительно немного. В результате под IP-адрес было отведено 32 бита, из которых первые 8 битов обозначали сеть, а оставшиеся 24 бита - компьютер в сети.
Предположение о том, что в обозримом будущем окажется достаточно 256 сетей, очевидно, пришлось пересматривать с появлением локальных сетей в конце 1970-х годов.
В первоначальном документе Серфа и Кана по объединению сетей описывался один протокол, названный TCP. Он предоставлял все услуги по транспортировке и перенаправлению данных в Интернете. Кан планировал, что протокол TCP будет поддерживать целый диапазон транспортных сервисов, от абсолютно надежной упорядоченной доставки данных (модель виртуального соединения) до дэйтаграммного сервиса, когда приложение напрямую взаимодействует с нижележащим сетевым уровнем, что может привести к случайным потерям, повреждению или дублированию пакетов.
Однако первые попытки реализовать TCP породили версию, поддерживающую только виртуальные соединения. Такая модель отлично работала для приложений типа пересылки файлов или удаленного входа в систему, но ряд ранних исследований продвинутых сетевых приложений, в частности, пакетной передачи голоса (1970-е годы), показал, что в некоторых случаях потерю пакетов не следует исправлять на уровне TCP, - пусть приложение само разбирается с ними. Это привело к реорганизации первоначального варианта TCP и разделению его на два протокола - простой IP, обслуживающий только адресацию и перенаправление отдельных пакетов, и отдельный TCP, имеющий дело с такими операциями, как управление потоком данных и нейтрализация потери пакетов. Для приложений, не нуждавшихся в услугах TCP, была добавлена альтернатива - Пользовательский дэйтаграммный протокол (User Datagram Protocol, UDP), открывающий прямой доступ к базовым сервисам уровня IP.
Первоначально основным стимулом к созданию как ARPANET, так и Интернета было совместное использование ресурсов, позволяющее, например, пользователям пакетных радиосетей осуществлять доступ к системам с разделением времени, подключенным к ARPANET. Объединять сети было гораздо практичнее, чем увеличивать число очень дорогих компьютеров. Тем не менее, хотя пересылка файлов и удаленный вход (Telnet) были очень важными приложениями, наибольшее влияние из инноваций того времени оказала, безусловно, электронная почта. Она породила новую модель межперсонального взаимодействия и изменила природу сотрудничества, сначала в рамках собственно построения Интернета (об этом речь впереди), а позднее, - в пределах большей части общества.
На заре Интернета предлагались и другие приложения, включая основанные на пакетах голосовые коммуникации (предшественники Интернет-телефонии), различные модели разделения файлов и дисков, а также ранние программы-черви, иллюстрирующие концепцию агентов (и, конечно, вирусов). Ключевая концепция создания Интернета состояла в том, что объединение сетей проектировалось не для какого-то одного приложения, но как универсальная инфраструктура, над которой могут быть надстроены новые приложения. Последующее распространение Всемирной паутины стало превосходной иллюстрацией универсальной природы сервисов, предоставляемых TCP и IP.
1.2. Переход к широко распространенной инфраструктуре
Параллельно с экспериментальной проверкой Интернет-технологий и их интенсивным использованием частью специалистов по информатике разрабатывались и развивались другие сети и сетевые технологии. Практические достоинства компьютерных сетей и особенно электронной почты, продемонстрированные на примере ARPANet, DARPA, и организациями, имевшими контракты с министерством обороны США, были замечены специалистами из других кругов и предметных областей. К середине 1970-х годов компьютерные сети начали расти, как грибы после дождя, - везде, где для этой цели удавалось найти финансирование. Министерство энергетики США сначала создало сеть MFENet в интересах исследователей термоядерного синтеза с магнитным удержанием, затем специалисты в области физики высоких энергий получили сеть HEPNet. Для астрофизиков из NASA построили сеть SPAN, а Рик Эдрион (Rick Adrion), Дэвид Фарбер (David Farber) и Лэрри Лэндвебер (Larry Landweber), получив первоначальные субсидии от Национального научного фонда (NSF) США, развернули сеть CSNet, объединившую специалистов по информатике из академических и промышленных кругов. Свободное распространение компанией AT&T, являвшейся в те далёкие времена монополистом на телефонных коммуникациях, операционной системы UNIX породило сеть USENet - самую большую в мире систему электронных досок объявлений, содержащую сообщения электронной почты и статьи, организованные в группы новостей, объединяя людей по интересам - основанную на встроенном в UNIX коммуникационном протоколе UUCP. В 1981 году Ира Фукс (Ira Fuchs) и Грейдон Фримэн (Greydon Freeman) придумали BITNet - сеть, связавшую академические мейнфреймы сервисами почтовой рассылки.
За исключением BITNet и USENet, ранние сети (в том числе ARPANet) строились целенаправленно. Они должны были использоваться замкнутым сообществом специалистов; как правило, этим работа сетей и ограничивалась. Особой потребности в совместимости сетей не было; соответственно, не было и самой совместимости. Кроме того, в коммерческом секторе начали появляться альтернативные технологии, такие как XNS от компании Xerox, DECNet, а также SNA от IBM. Потребность в обмене электронной почтой привела, тем не менее, к появлению одной из первых Интернет-книг - "!%@:: A Directory of Electronic Mail Addressing and Networks", которую написали Фрей (Frey) и Адамс (Adams). Эта книга посвящена трансляции почтовых адресов и перенаправлению сообщений. Только в программах JANet (Великобритания, 1984) и NSFNet (США, 1985) было явно провозглашено намерение обслуживать всех причастных к системе высшего образования, независимо от специализации. В самом деле, чтобы американский университет мог получить от NSF средства на подключение к Интернету, он, как было записано в программе NSFNet, "должен обеспечить доступность этого подключения для ВСЕХ подготовленных пользователей в университетском городке".
В 1985 году из Ирландии, для годичного руководства программой NSFNet, был приглашен Дэннис Дженнингс (Dennis Jennings). Он активно способствовал принятию принципиально важного решения об обязательном использовании в NSFNet протокола TCP/IP. Стив Вулф, принявший руководство NSFNet в 1986 году, поставил задачу формирования глобальной сетевой инфраструктуры для обслуживания широких академических и исследовательских кругов. По мнению Вулфа, необходимо было разработать стратегию создания сетевой инфраструктуры, исходя из принципа максимальной независимости от прямого федерального финансирования. Такая стратегия и методы проведения ее в жизнь были разработаны и утверждены (см. далее).
В NSF решили присоединиться к существовавшей под эгидой DARPA иерархической организационной инфраструктуре Интернета, которую возглавлял Совет по развитию Интернета (Internet Activities Board, IAB). Сделанный выбор был закреплен в виде "Требований к Интернет-шлюзам" (RFC 985), совместно разработанных специалистами из подведомственных IAB Тематических групп по технологии и архитектуре Интернета (Internet Engineering and Architecture Task Forces) и членами Сетевой технической консультативной группы NSF. Требования обеспечивали совместимость частей Интернета, находящихся в ведении DARPA и NSF.
Помимо выбора TCP/IP как основы NSFNet, федеральные агентства США приняли и реализовали ряд дополнительных принципов и правил, сформировавших современный облик Интернета.