Основы технологии internet
Реализация принципов internet в стеке протоколов ТСР/IP
Немного о прошлом ...
... и о будущем

Тезис о значении сетевого взаимодействия сейчас стал общим местом. Сетевым технологиям посвящаются книги, специальные журналы (данное издание - тому пример) и мириады статей в многочисленных компьютерных газетах. Но это сейчас. А на заре создания технологии, о которой пойдет речь, к специалистам-компьютерщикам только приходило понимание того факта, что отдельно взятая, пусть и очень мощная вычислительная машина не способна решить многих проблем.

Благодаря возникновению и развитию сетей передачи данных появился новый, высокоэффективный способ взаимодействия между людьми. Первоначально сети использовались главным образом для научных исследований, но затем они стали проникать буквально во все области человеческой деятельности. При этом большинство сетей существовало совершенно независимо друг от друга, решая конкретные задачи для конкретных групп пользователей. В соответствии с этими задачами выбирались те или иные сетевые технологии и аппаратное обеспечение. Построить универсальную физическую сеть мирового масштаба из однотипной аппаратуры просто невозможно, поскольку такая сеть не могла бы удовлетворять потребности всех ее потенциальных пользователей. Одним нужна высокоскоростная сеть для соединения машин в пределах здания, а другим - надежные коммуникации между компьютерами, разнесенными на сотни километров.

Тогда возникла идея объединить множество физических сетей в единую глобальную сеть, в которой использовались бы как соединения на физическом уровне, так и новый набор специальных "соглашений" или протоколов. Эта технология, получившая название internet, должна была позволить компьютерам "общаться" друг с другом независимо от того, к какой сети и каким образом они подсоединены.

Осознав важность идеи internet, несколько правительственных организаций в США стали работать над ее реализацией. И наибольшего успеха в этом достигло агенство Defense Advanced Research Projects Agency (DARPA), создавшее стек протоколов TCP/IP. Возникший в конце 60-х гг. как проект объединения сетей нескольких крупных исследовательских организаций, в наше время TCP/IP стал одним из наиболее популярных протоколов сетевого взимодействия и стандартом de facto для реализации глобальных сетевых соединений. TCP/IP - базовая технология сети сетей, или, как сейчас принято "уважительно" писать, - Сети с большой буквы.

Если раньше использование Internet было прерогативой ученых, то сейчас уже говорят даже об управлении бытовыми приборами с помощью мировой Сети. Отметим здесь, что сеть Internet - это одна из реализаций технологии internet, которая позволяет объединить множество различных физических сетей с помощью общего стека протоколов. Сеть Internet объединяет около 10 млн компьютеров по всему миру, которые взаимодействуют друг с другом с помощью стека протоколов TCP/IP. Internet - это internet, однако обратное утверждение будет неверным.

Дуглас Комер в своем глобальном исследовании сетевых взаимодействий с помощью TCP/IP1 приводит пример возможного влияния технологии internet на научные исследования. "Вообразите на минуту, - пишет он, - что произойдет, если будут соединены между собой все компьютеры, которые используют ученые. Все ученые смогут обмениваться данными, полученными в результате их экспериментов. Станет возможным создание национальных центров данных для сбора исследовательской информации и предоставления ее всем заинтересованным научным работникам. Компьютерные службы и программы, используемые в одном месте, станут доступны ученым и в других местах. В результате возрастет скорость проведения научных исследований. Короче, нас ждут значительные изменения". Изменения действительно произошли значительные, и не только в области научных исследований.

Серия протоколов TCP/IP - яркий пример открытой системы в том смысле, что, в отличие от протоколов, используемых в коммуникационных системах разных поставщиков, все спецификации этого стека протоколов и многие из его реализаций общедоступны (предоставляются бесплатно или за символическую цену). Это позволяет любому разработчику создавать свое программное обеспечение, необходимое для взаимодействия по Internet. TCP/IP привлекает своей масштабируемостью, предоставляя одинаковые возможности глобальным и локальным сетям.

В следующих разделах мы подробнее остановимся на принципах технологии internet и их реализации в стеке протоколов TCP/IP.

Основы технологии internet

Итак, создатели технологии internet исходили из двух основополагающих соображений:

  • невозможно создать единую физическую сеть, которая позволит удовлетворить потребности всех пользователей;
  • пользователям нужен универсальный способ для установления соединений друг с другом.
  • В пределах каждой физической сети подсоединенные к ней компьютеры используют ту или иную технологию (Ethernet, Token Ring, FDDI, ISDN, соединение типа "точка-точка", а в последнее время к этому списку добавились сеть АТМ и даже беспроводные технологии). Между механизмами коммуникаций, зависящими от данных физических сетей, и прикладными системами встраивается новое программное обеспечение, которое обеспечивает соединение различных физических сетей друг с другом. При этом детали этого соединения "скрыты" от пользователей и им предоставляется возможность работать как бы в одной большой физической сети. Такой способ соединения в единое целое множества физических сетей и получила название internet.

    Для соединения двух и более сетей в internet используются маршрутизаторы (routers) - компьютеры, которые физически соединяют сети друг с другом и с помощью специального программного обеспечения передают пакеты из одной сети в другую (рисунок 1). Раньше в литературе по TCP/IP такие машины часто называли шлюзами (gateway), однако сейчас под шлюзом обычно подразумеватеся программный процесс соединения двух различных стеков протоколов (например, TCP/IP и IBM SNA) для определенного приложения (например, электронной почты или передачи файлов).

    Picture 1

    Рисунок 1.
    Две сети, соединенные с помощью маршрутизатора.

    Технология internet не навязывает какой-то определенной топологии межсетевых соединений. Добавление новой сети к internet не влечет за собой ее подсоединения к некоторой центральной точке коммутации или установки непосредственных физических соединений со всеми уже входящими в internet сетями. Маршрутизатор "знает" топологию internet за пределами тех физических сетей, которые он соединяет, и, основываясь на адресе сети назначения, передает пакет по тому или иному маршруту. В internet используются универсальные идентификаторы подсоединеннных к ней компьютеров (адреса), поэтому любые две машины имеют возможность взаимодействовать друг с другом. В internet также должен быть реализован принцип независимости пользовательского интерфейса от физической сети, то есть должно существовать множество способов установления соединений и передачи данных, одинаковых для всех физических сетевых технологий.

    Напомним еще раз, что internet скрывает детали соединений сетей между собой. Поэтому с точки зрения конечных пользователей и по отношению к прикладным программам internet представляет собой единую виртуальную сеть, к которой подсоединены все компьютеры - независимо от их реальных физических соединений (рисунок 2). Каждый компьютер должен иметь программное обеспечение доступа к internet, которое позволяет прикладным программам использовать internet как одну физическую сеть.

    Picture 2

    Рисунок 2.
    Сеть internet с точки зрения пользователя: каждый компьютер подсоединен к одной большой сети.

    Фундаментальным принципом internet является равнозначность всех объединенных с ее помощью физических сетей: любая система коммуникаций рассматривается как компонент internet, независимо от ее физических параметров, размеров передаваемых пакетов данных и географического масштаба. На рисунке 3 мы использовали одинаковые обозначения для любых физических сетей, объединенных в internet ( например, соединений типа "точка-точка", локальных сетей рабочей группы или больших корпоративных сетей).

    Picture 3(1x1)

    Рисунок 3.
    Внутренняя структура сети internet - физические сети соединены с помощью маршрутизаторов.

    Реализация принципов internet в стеке протоколов ТСР/IP

    Коммуникационные уровни TCP/IP

    Семейство протоколов ТСР/IP позволяет построить универсальную сеть, реализующую принципы, которые рассмотрены в предыдущем разделе, и включает в себя протоколы 4-х уровней коммуникаций (рисунок 4).

    Picture 4

    Рисунок 4.
    Четыре уровня стека протоколов TCP/IP.

    Уровень сетевого интерфейса отвечает за установление сетевого соединения в конкретной физической сети - компоненте internet, к которой подсоединен компьютер. На этом уровне работают драйвер устройства в операционнной системе и соответствующая сетевая плата компьютера.

    Сетевой уровень - основа ТСР/IP. Именно на этом уровне реализуется принцип межсетевого соединения, в частности маршрутизация пакетов по internet. На сетевом уровне протокол реализует ненадежную службу доставки пакетов по сети от системы к системе без установления соединения (connectionless packet delivery service). Это означает, что будет выполнено все необходимое для доставки пакетов, однако эта доставка не гарантируется. Пакеты могут быть потеряны, переданы в неправильном порядке, продублированы и т.д. Служба, работающая без установления соединения, обрабатывает пакеты независимо друг от друга. Но главное, что именно на этом уровне принимается решение о маршрутизации пакета по межсетевым соединениям.

    Надежную передачу данных реализует следущий уровень, транспортный, на котором два основных протокола, TCP и UDP, осуществляют связь между машиной - отправителем пакетов и машиной-адресатом.

    Наконец, прикладной уровень - это приложения типа клиент-сервер, базирующиеся на протоколах нижних уровней. В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и "не интересуются" способами передачи данных по сети. Среди основных приложений ТСР/IP, имеющихся практически в каждой его реализации, - протокол эмуляции терминала Telnet, протокол передачи файлов FTP, протокол электронной почты SMTP, протокол управления сетью SNMP, используемый в системе World Wide Web протокол передачи гипертекста НТТР и др.

    На рисунке 5 показано, как осуществляется соединение двух сетей "с точки зрения" TCP/IP. Программное обеспечение IP-протокола с помощью маршрутизатора передает пакеты из сети Ethernet в сеть Token Ring. Протоколы верхних уровней, прикладного и транспортного, осуществляют соединения между хост-компьютерами, клиентом и сервером приложения, в то время как IP обеспечивает связь между конечной и промежуточной системами.

    Picture 5(1x1)

    Рисунок 5.
    Две сети, соединенные с помощью маршрутизатора, "с точки зрения" TCP/IP.

    В нашем примере один маршрутизатор соединяет два хоста. В реальной жизни все, конечно, гораздо сложнее. Маршрутизатор может соединять значительно большее количество различных физических сетей. Для каждого поступающего пакета маршрутизатор принимает индивидуальное решение о пути следования к сети, в которой находится машина-адресат. По определению, на маршрутизаторе реализуются два или более уровней сетевого интерфейса. Любая система с несколькими интерфейсами носит название multihomed. Хост-компьютер также может быть multihomed, однако если он не осуществляет передачу пакетов с одного интерфейса на другой, то маршрутизатором не является. Сам маршрутизатор совсем не обязательно должен быть специальным компьютером, который занимается только передачей пакетов по internet. В большинстве реализаций TCP/IP multihomed-хост также может быть маршрутизатором, однако для этого он должен быть специальным образом сконфигурирован.

    Поскольку в internet детали физических соединений скрыты от приложений, прикладной уровень совершенно "не заботится" о том, что клиент приложения работает в Ethernet, а сервер подключен к сети Token Ring. Между конечными системами может быть несколько десятков маршрутизаторов и множество промежуточных физических сетей различных типов, но приложение будет воспринимать этот конгломерат как единую физическую сеть. Это и обуславливает основную силу и привлекательность технологии internet.

    Особенности протокола TCP/IP

    Хотя рассматриваемый нами стек протоколов и называется TCP/IP, сами протоколы TCP и IP являются важнейшими, но не единственными представителями этого семейства. Каждый уровень коммуникаций обслуживается несколькими протоколами. Рассмотрим их более подробно.

    TCP и UDP - протоколы транспортного уровня, организующие поток данных между конечными системами для приложений верхнего уровня. Эти протоколы значительно отличаются друг от друга.

    TCP (Transmission Control Protocol) обеспечивает надежную передачу данных между двумя хостами. Он позволяет клиенту и серверу приложения установливать между собой логическое соединение и затем использовать его для передачи больших массивов данных, как если бы между ними существовало прямое физическое соединение Протокол позволяет осуществлять дробление потока данных, подтверждать получение пакетов данных, задавать таймауты (которые позволяют подтверждить получение информации), организовывать повторную передачу в случае потери данных и т.д. Поскольку этот транспортный протокол реализует гарантированную доставку информации, использующие его приложения получают возможность игнорировать все детали такой передачи.

    Протокол UDP (User Datagram Protocol) реализует гораздо более простой сервис передачи, обеспечивая подобно протоколам сетевого уровня, ненадежную доставку данных без установления логического соединения, но, в отличие от IP, - для прикладных систем на хост-компьютерах. Он просто посылает пакеты данных, дейтаграммы (datagrams), с одной машины на другую, но не предоставляет никаких гарантий их доставки. Все функции надежной передачи должны встраиваться в прикладную систему, использующую UDP.

    Протокол UDP имеет и некоторые преимущества перед TCP. Для установления логических соединений нужно время, и они требуют дополнительных системных ресурсов для поддержки на компьютере информациии о состоянии соединения. UDP занимает системные ресурсы только в момент отправки или получения данных. Поэтому если распределенная система осуществляет непрерывный обмен данными между клиентом и сервером, связь с помощью транспортного уровня TCP окажется для нее более эффективной. Если же коммуникации между хост-компьютерами осуществляются редко, предпочтительней использовать протокол UDP. Среди известных распределенных приложений, использующих TCP, - такие как Telnet, FTP и SMTP. Протоколом UDP пользуется, в частности, протокол сетевого управления SNMP.

    TCP и UDP идентифицируют приложения по 16-битным номерам портов. Серверы приложений обычно имеют заранее известные номера портов. Например, в каждой реализации TCP/IP, которая поддерживает сервер FTP, этот протокол передачи файлов получает для своего сервера номер TCP-порта 21. Каждый Telnet-сервер имеет TCP-порт 23, а сервер протокола TFTP (Trivial File Transfer Protocol) - UDP-порт 69. Службам, которые могут поддерживаться любой реализацией TCP/IP, назначаются номера портов в диапазоне от 1 до 1023. Назначение номеров портов находится в ведении организации Internet Assigned Numbers Authority (IANA).

    Клиент приложения обычно "не интересуется" номером своего порта для транспортного уровня, который он использует. Ему лишь необходимо гарантировать, что этот номер уникален для данного хоста. Номера портов клиентов приложений принято называть краткосрочными (т.е. недолговечными), поскольку в общем случае клиенты существуют ровно столько времени, сколько работающий с ним пользователь нуждается в соответствующем сервере. (Серверы, напротив, находятся в рабочем состоянии все время, пока включен хост, на котором они работают.) В большинстве реализаций TCP/IP краткосрочным номерам портов выделен диапазон от 1024 до 5000.

    Internet Protocol (IP) - основной протокол сетевого уровня, позволяющий реализовывать межсетевые соединения. Он используется обоими протоколами транспортного уровня. IP определяет базовую единицу передачи данных в internet, IP-дейтаграмму, указывая точный формат всей информации, проходящей по сети TCP/IP. Программное обеспечение IP выполняет функции маршрутизации, выбирая путь данных по паутине физических сетей. Для определения маршрута поддерживаются специальные таблицы; выбор осуществляется на основе адреса сети, к которой подключен компьютер-адресат. Протокол IP определяет маршрут отдельно для каждого пакета данных, не гарантируя надежной доставки в нужном порядке. Он задает непосредственное отображение данных на нижележащий физический уровень передачи и реализует тем самым высокоэффективную доставку пакетов.

    Кроме IP, на сетевом уровне используются также протоколы ICMP и IGMP. ICMP (Internet Control Message Protocol) отвечает за обмен сообщениями об ошибках и другой важной информацией с сетевым уровнем на другом хосте или маршрутизаторе. IGMP (Internet Group Management Protocol) используется для отправки IP-дейтаграмм множеству хостов в сети.

    На самом нижнем уровне - сетевого интерфейса - используются специальные протоколы разрешения адресов ARP (Adress Resolution Protocol) и RARP (Reverse Adress Resolution Protocol). Эти протоколы применяются только в определенных типах физических сетей (Ethernet и Token Ring) для преобразования адресов сетевого уровня в адреса физической сети и обратно.

    Адресация в internet

    Коммуникационная система считается универсальной, если она предоставляет возможность любому хосту взаимодействовать с любым другим хостом. Для того чтобы добиться такой универсальности, необходимо определить глобальный метод идентификации компьютеров в распределенной системе для доступа к ним. В TCP/IP выбрана схема идентификации, аналогичная адресации в физических сетях. Каждому сетевому интерфейсу присваивается уникальный 32-битный адрес (IP-адрес), который используется для всех коммуникаций с этим интерфейсом по internet. IP-адрес компьютера имеет определенную структуру. Она задает идентификатор сети, к которой подсоединен компьютер, и уникальный идентификатор самого компьютера. На рисунке 6 показаны различные классы internet-адресов.

    Picture 6(1x1)

    Рисунок 6.
    Классы IP-адресов.

    Для 32-битных IP-адресов принята десятичная нотация, в которой каждый из четырех байтов адреса записывается десятичным числом. Адреса класса С, например, охватывают диапазон от 192.0.0.0 до 223.255.255.255. Структура адресов различных классов делает достаточно очевидным их применение. Адреса класса С, в которых 21 бит отводится для идентификатора сети и только 8 бит - для идентификатора хоста, присваиваются компьютерам локальных сетей небольших организаций, которые объединяют до 255 машин. Более крупные организации могут получить адреса класса В, которые способны обслужить до 256 сетей, в состав которых входит до 64 тыс. рабочих станций. И наконец, адреса класса А присваиваются компьютерам, подключенным к ограниченному числу глобальных сетей очень большого масштаба, например, в Arpanet.

    Компьютеры, подсоединенные к нескольким физическим сетям (multihomed), имеют несколько IP-адресов - по одному для каждого сетевого интерфейса. Соответственно, эти IP-адреса различаются своими сетевыми идентификаторами. Таким образом, мы можем сделать вывод, что на самом деле адрес в internet задает не отдельную машину, а ее сетевое соединение.

    Помимо адресов, предназначенных для одного хоста (unicast), существуют также широковещательные (broadcast) и групповые (multicast) адреса.

    Широковещательные адреса позволяют обращаться ко всем хостам сети. В них поле идентификатора хоста состоит только из единиц. Механизм IP-адресации предоставляет возможность широковещательной передачи, но не гарантирует ее, поскольку она зависит от характеристик конкретной физической сети. В Ethernet, например, широковещательная передача может выполняться с той же эффективностью, что и обычная передача данных, но есть сети, которые вообще не поддерживают такой тип передачи или имеют для этого ограниченные возможности.

    Групповые адреса (адреса класса D) используются для отправки сообщений определенному множеству адресатов (multicasting). Такая возможность необходима для многих приложений, например для реализации интерактивных конференций, отправки почты или новостей группе получателей. Для поддержки групповой передачи хосты и маршрутизаторы используют протокол IGMP, который предоставляет всем системам в физической сети информацию о том, какие хосты принадлежат к какой группе в настоящее время.

    Уникальный IP-адрес назначается каждому сетевому интерфейсу специальной организацией, Inter-net Network Information Center (InterNIC), которая отвечает за выделение адресов сетям, объединенным в мировую сеть Internet. Назначение идентификаторов хостов не входит в компетенцию InterNIC и находится в ведении системного администратора. До 1 апреля 1993 г. (дата создания InterNIC) регистрационное обслуживание для Internet (назначение IP-адресов и имен доменов DNS) выполнялось организацией Network Information Center (NIC). В настоящее время NIC выполняет запросы только для сети DDN (Defense Data Network). Всех остальных пользователей Internet обслуживает регистрационный сервис InterNIC.

    В связи с бурным ростом Internet 32-битная схема адресации нынешней версии Internet Proto-col, IPv4, уже не удовлетворяет потребности Мировой сети. Новая версия, IPv6, проект которой был обнародован в 1991 г., призвана решить эти проблемы. IPv6 обеспечит 128-битный формат IP-адреса и будет поддерживать автоматическое назначение адресов.

    Как мы уже отмечали, назначение уникальных идентификаторов хостов находится в ведении системных администраторов. В большой корпоративной сети, тенденциями которой являются рост числа входящих в нее компьютеров и их постоянные перемещения, управление IP-адресами вручную может оказаться довольно сложной задачей. Чтобы случайно не оказалось двух машин с одним и тем же номером, необходимо поддерживать список всех ранее присвоенных адресов. Если компьютер перемещается в другую подсеть, то нужно менять в адресе сетевой идентификатор и следить за тем, чтобы часть адреса с номером хоста не вступала в конфликт с адресами узлов новой подсети. Для решения этих задач разрабатываются продукты, которые либо способствуют повышению эффективности использования адресов, либо, как, например, средства организации виртуальных частных сетей, позволяют обходиться без регистрации.

    К первой категории продуктов управления IP-адресами относятся интеллектуальные утилиты распределения адресов, например системы NetID компании Isotro и QIP компании Quadritek Systems, и созданный в 1993 г. протокол динамической конфигурации хоста (Dynamic Host Configuration Proto-col - DHCP). По этому протоколу системный администратор конфигурирует одну машину в сети как сервер DHCP, а все остальные становятся его клиентами. DHCP поддерживает динамическое назначение IP-адресов, при котором адрес из заданного при конфигурации пула IP-адресов выделяется на ограниченный период времени или до отказа клиента от его использования. Это позволяет эффективнее использовать ограниченное число IP-адресов. Если какие-либо компьютеры подключаются к сети время от времени, то для них можно совместно использовать не очень большую область адресов (во всяком случае меньшую, чем если бы каждый из них имел свой собственный постоянный адрес). DHCP также поддерживает автоматическое назначение постоянного IP-адреса и назначение вручную, при котором выбором адреса занимается системный администратор, а сервер DHCP только извещает клиента о назначении. Протокол DHCP разработан на базе старого протокола стека TCP/IP, Bootstrap Protocol (BOOTP), который обеспечивает при начальной загрузке автоматическое получение информации о конфигурации ВООТР-клиентом от ВООТР-сервера. Серверы DHCP реализованы в ОС Windows NT и системе управления сетью SolarNet компании SunSoft. Клиентскую часть протокола поддерживает большинство пакетов, реализующих TCP/IP.

    TCP/IP дает пользователям возможность работать не с адресами хост-компьютеров, а с их именами, что, конечно, намного удобнее для человеческого восприятия. Распределенная база данных DNS (Domain Name System) обеспечивает отображение IP-адресов в имена хостов. Любое приложение может вызвать стандартную библиотечную функцию для преобразования IP-адреса в соответствующее имя хоста или наоборот. Эта база данных является распределенной, поскольку ни один объект в internet не обладает всей информацией о именах. Каждый объект (например, университетский факультет, компания или подразделение компании) поддерживает свою базу данных и имеет серверную программу, к которой могут обращаться другие системы (клиенты) в сети. DNS обеспечивает протокол, по которому взаимодействуют эти клиенты и серверы.

    Немного о прошлом ...

    Работа над созданием технологии internet была начата в DARPA в середине 70-х годов. А в 1977-1979 гг. архитектура и протоколы TCP/IP приобрели современный вид. К этому времени агенство DARPA уже стало одним из лидеров в исследовании и разработке сетей с коммутацией пакетов и реализовало немало новых идей в этой области в своей сети ARPANET. Бурное развитие разнообразных сетевых технологий, в том числе беспроводных радиосетей и спутниковых каналов связи, стимулировало активность DARPA в исследовании проблем межсетевого взаимодействия и реализации принципов internet в ARPANET.

    DARPA не делало тайны из своей деятельности в этом направлении, поэтому разнообразные научные группы проявляли большой интерес к разработкам технологии глобальной сети сетей, особенно те исследователи, которые уже имели опыт использования принципов коммутации пакетов в сети ARPANET. DARPA инициировало ряд неформальных встреч, во время которых ученые обменивались новыми идеями и обсуждали результаты экспериментов. К 1979 г. в работу по созданию TCP/IP оказались вовлечены такие значительные силы, что было принято решение о создании неформального комитета для координации и руководства процессом разработки протоколов и архитектуры сети Internet. Получившая название Internet Control and Configuration Board (ICCB), эта группа существовала и регулярно работала до 1983 г., когда она была реорганизована.

    Начало 80-х гг. - время зарождения реальной сети Internet. В эти годы DARPA инициировало перевод машин, подсоединенных к его исследовательским сетям, на использование стека TCP/IP. ARPANET стала магистральной сетью Internet и активно использовалась для многочисленных экспериментов с TCP/IP. Окончательный переход к технологии internet произошел в январе 1983 г. В это же время сеть ARPANET была разбита на две независимые части. Одна из них предназначалась для исследовательских целей, и за ней было оставлено название ARPANET; вторая, несколько большая по масштабу сеть MILNET, должна была отвечать за военные коммуникации.

    Для того чтобы стимулировать адаптацию и использование новых протоколов в университетских кругах, DARPA сделало реализацию TCP/IP доступной, предлагая ее за низкую цену. В это время большинство факультетов, занимающихся исследованиями в компьютерной области, использовало версию ОС Unix от Berkeley Software Distribution (Berkeley Unix, или BSD Unix) университета шт. Калифорния в Беркли. Субсидировав компанию Bolt Beranek and Newman (BBN) с целью реализации ею протоколов TCP/IP для использования вместе с Unix, а также университет в Беркли для интеграции этих протоколов в свою версию популярной операционной системы, DARPA добилось того, что более 90% компьютерных факультетов университетов адаптировали новую сетевую технологию.

    Версия BSD стала стандартом de facto для реализаций стека протоколов TCP/IP. Такую большую популярность она приобрела во многом благодаря тому, что обеспечивает больше, чем просто базовые internet-протоколы. Помимо стандартных прикладных программ TCP/IP, BSD предоставляет набор сетевых утилит, сходных с Unix-службами, используемыми на автономной машине. Основное преимущество этих утилит состоит в том, что они аналогичны стандартным средствам Unix. Например, опытный пользователь Unix быстро освоит использование утилиты удаленного копирования файлов (rcp) в BSD, поскольку она ведет себя точно так же, как утилита копирования файлов Unix, c той разницей, что она позволяет копировать файлы на удаленный компьютер или с него.

    Помимо серии сетевых утилит, Berkeley Unix предоставляет новую абстракцию операционной системы, так называемый socket. Socket является интерфейсом прикладных программ для доступа к протоколам TCP/IP. Он позволил программистам без больших усилий использовать TCP/IP и стал стимулом для проведения новых экспериментов с этим стеком протоколов. Еще один популярный прикладной программный интерфейс для TCP/IP, TLI (Transport Layer Interface - интерфейс транспортного уровня), был разработан компанией AT&T.

    После 4.2BSD (1983 г.) было выпущено еще несколько версий этой ОС, каждая из которых добавляла новые возможности в TCP/IP, в том числе:

    • 4.3BSD (1986 г.) - увеличение производительности TCP;
    • 4.3BSD Tahoe (1988 г.) - возможность избежать пререгруженности сети, быстрая повторная передача;
    • 4.3BSD Reno (1990 г.) - быстрое восстановление и изменение таблиц маршрутизации;
    • 4.4BSD (1993 г.) - групповая передача (multicasting).

    Сейчас поддержку стека протоколов TCP/IP встраивают в свои операционные системы многие компании, в том числе Microsoft, Novell и Apple. Большое количество независимых поставщиков работает над продуктами, расширяющими возможности TCP/IP, добавляя поддержку интерактивных приложений, защиту информации, речевую почту и средства коллективной работы.

    Но вернемся в начало прошлого десятилетия. Сетевые коммуникации становятся критически важной составляющей научных исследований. Осознав этот факт, National Science Foundation приняла активное участие в расширении Internet с целью сделать стек TCP/IP доступным максимальному числу исследовательских организаций. С 1985 г. NSF реализовывала программу создания сетей вокруг шести своих суперкомпьютерных центров. В 1986 г. была создана магистральная сеть NSFNET, которая в конце концов объединила все эти центры и связала их с ARPANET.

    К началу 90-х гг. Internet объединяла уже сотни отдельных сетей в США и Европе. К мировой Сети помимо научных институтов и университетов стали подключаться компьютерные компании и большие корпорации нефтяной, автомобильной и электронной индустрии, а также телефонные компании. Кроме того, многие организации использовали TCP/IP для создания своих корпоративных сетей, которые не являются компонентами большой Internet. В наши же дни Internet проникает буквально во все сферы человеческой жизни, и сейчас уже всерьез говорят о влиянии мировой сети на наше мировоззрение и мировосприятие.

    ... и о будущем

    Проблемы Internet

    Открытость, масштабируемость, универсальность и простота использования - неоспоримые преимущества TCP/IP, но у этого семейства протоколов есть и очевидные недостатки. Столь привлекательная простота доступа оборачивается для Internet серьезнейшей проблемой защиты информации, которая приобретает особую остроту сейчас, когда мировая Сеть все активнее используется для электронной коммерции. Неупорядоченность передачи пакетов и невозможность отследить маршрут их продвижения также представляют собой важные проблемы, поскольку препятствуют реализации таких необходимых в современных коммуникациях возможностей, как передача мультимедийных данных в реальном времени. Наконец, как уже упоминалось, предоставляемый нынешней версией протокола IP объем адресного пространства, особенно в связи с его неэффективным использованием, уже с большим трудом позволяет удовлетворять потребности гигантской и все более разрастающейся Сети.

    Методы решения каждой из этих проблем заслуживают подробного обсуждения в отдельных статьях. Здесь же скажем только, что в XXI в. многие проблемы Internet, по-видимому, будут сняты реализацией уже упоминавшегося протокола IPv6. Помимо четырехкратного увеличения размера адреса, что обеспечит адресное пространство объемом (страшно произнести!) около 4 квадриллионов адресов (сравните с современными 4 миллиардами), новый стандарт обещает реализацию встроенных функций защиты от несанкционированного доступа, поддержку передачи данных мультимедиа в реальном времени и возможности автоматического реконфигурирования адресов. Выпуск окончательной версии стандарта IPv6 планируется в этом году.

    Кто занимается развитием Internet?

    Как мы уже поняли, семейство протоколов TCP/IP не является детищем одного разработчика или профессионального сообщества. Поэтому возникает вопрос: кто контролирует использование TCP/IP, определяет основные направления развития, разрабатывает и утверждает стандарты? Сейчас существует несколько групп, отвечающих за развитие Internet.

    Основной из них является Internet Society (ISOC) - профессиональное сообщество, которое занимается общими вопросами эволюции и роста Internet как глобальной инфраструктуры исследовательских коммуникаций.

    Под управлением ISOC действует Internet Architecture Board (IAB) - организация, в ведении которой находится технический контроль и координация Internet. IAB координирует направления исследований и новых разработок для TCP/IP и является конечной инстанцией при определении новых стандартов для Internet.

    В IAB входят две основные группы: Internet Engineering Task Force (IETF) и Internet Research Task Force (IRTF). IETF - инженерная группа, которая занимается решением ближайших технических проблем Internet. IETF делится на девять подгрупп в соответствии с основными областями (приложения, маршрутизация и адресация, защита информации и т.д.) и определяет спецификации, которые затем становятся стандартами Internet. В частности, протоколы IPv6 и DHCP являются плодом усилий IETF. В свою очередь, IRTF координирует долгосрочные исследовательские проекты по протоколам TCP/IP и технологии internet в целом.

    Разнообразная документация, связанная с Internet, предложения по стандартам и сами официальные стандарты протоколов TCP/IP публикуются в серии технических сообщений Internet Request for Comments, или RFC. RFC могут быть короткими или длинными, излагать глобальные концепции или описывать детали того или иного проекта, формулирвать официальный стандарт или давать предложения по новому протоколу. Каждый RFC имеет порядковый номер (соответственно более новые публикации имеют больший порядковый номер). Среди наиболее важных выпусков RFC можно выделить следующие.

    Assigned Numbers RFC (1340) - важнейшие числа и константы, которые используются в протоколах Internet. В частности, здесь перечислены известные порты приложений.

    Internet Official Protocol Standards (1600) - описывает состояние стандартизации различных протоколов Internet.

    Host Requirements RFC (1122 и 1123) - описывают уровни протоколов TCP/IP.

    Router Requimemts RFC (1009) - описывает уникальные требования для маршрутизаторов.

    Еще раз подчеркнем, что указанные номера - это номера версий данных выпусков RFC в 1996 г. Новые версии этих публикаций получат более высокие порядковые номера. Все RFC доступны бесплатно через Internet по электронной почте или с помощью протокола FTP.


    Дубова Наталья Аркадьевна - младший научный сотрудник НИИСИ РАН. С ней можно связаться через редакцию журнала "Сети".