Курсовая работа: История возникновения Интернет
Вообще говоря, не накладывается никаких ограничений на типы объединяемых сетей или их территориальный масштаб, хотя, конечно, прагматические соображения должны сузить спектр возможных решений.
Идея открытой сетевой архитектуры была впервые высказана Каном в 1972 году, вскоре после того, как он начал работать в DARPA. Деятельность, которой занимался Кан, первоначально была частью программы разработки пакетных радиосетей, но впоследствии она переросла в полноправный проект под названием "Internetting". Ключевым для работоспособности пакетных радиосистем был надежный сквозной протокол, способный поддерживать эффективные коммуникации, несмотря на радиопомехи или временное затенение, вызванное особенностями местности или пребыванием в туннеле. Сначала Кан предполагал разработать протокол, специфичный для пакетных радиосетей, поскольку это избавило бы от необходимости иметь дело с множеством различных операционных систем и позволило бы продолжать использовать протокол NCP.
Однако 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) были очень важными приложениями, наибольшее влияние из инноваций того времени оказала, безусловно, электронная почта. Она породила новую модель межперсонального взаимодействия и изменила природу сотрудничества, сначала в рамках собственно построения Интернета (об этом речь впереди), а позднее, - в пределах большей части общества.