А. Робачевский - Операционная система UNIX (1114671), страница 73
Текст из файла (страница 73)
В то же время использованием сети в своих целях заинтересо!вались исследователи, далекие от военных кругов. Стали поступать много!численные запросы от руководителей университетов США в Националь!ный научный фонд (National Science Foundation, NSF) с предложениямисоздания научно!образовательной компьютерной сети. В результате в 1981году NSF одобрил и финансировал создание сети CSNET (ComputerScience Network).В 1984 году ARPANET разделилась на две различные сети: MILNET,предназначенную исключительно для военных приложений, и ARPANETдля использования в "мирных" целях.www.books-shop.comСемейство протоколов TCP/IP385В 1986 году фонд NSF финансировал создание опорной сети, соединившейканалами с пропускной способностью 56 Кбит/с шесть суперкомпьютер!ных центров США. Сеть получила название NSFNET и просуществоваладо 1995 года, являясь основной магистралью Internet.
За это время пропу!скная способность опорной сети возросла до 45 Мбит/с, а число пользова!телей превысило 4Стремительное развитие NSFNET сделало бессмысленным дальнейшеесуществование ARPANET. В июне 1990 года Министерство обороны СШАприняло решение о прекращении работы сети.
Однако уроки, полученныев процессе создания и эксплуатации ARPANET, оказали существенноевлияние на развитие коммуникационных технологий, таких как локальныесети и сети пакетной коммутации.При создании ARPANET был разработан и протокол сетевого взаимодей!ствия коммуникационных узлов. Он получил название Network ControlProgram (NCP). Однако этот протокол строился на предположении, чтосетевая среда взаимодействия является абсолютно надежной. Учитываяспецифику ARPANET, такое предположение являлось, мягко говоря, ма!ловероятным: качество коммуникационных каналов могло существенноизменяться в худшую сторону (особенно при предполагаемом использова!нии радио! и спутниковой связи), а отдельные сегменты сети могли бытьТаким образом, подход к коммуникационной среде нуждалсяв пересмотре, и, как следствие, возникла необходимость разработки новыхпротоколов.
Еще одной задачей, стоявшей перед разработчиками, являлосьобеспечение согласованной работы связанных сетей (internet), использую!щих различные коммуникационные технологии (например, пакетное ра!дио, спутниковые сети и локальные сети). Результатом исследований вэтой области явилось рождение нового семейства протоколов — InternetProtocol (IP), с помощью которого осуществлялась базовая доставка дан!ных в гетерогенной коммуникационной среде, и Transmission ControlProtocol (TCP), который обеспечивал надежную передачу данных междупользователями в ненадежной сетевой инфраструктуре.
Спецификацииэтих протоколов в 1973 году получили статус стандартов Министерстваобороныисоответственно.Общее число пользователейна начало 1995 года составило 4852000, из них в США —более 3 миллионов. Уже к середине 1996 года сеть Internet имела следующие показатели:почти миллионов хостов, 134 365 сетей, почти полмиллиона зарегистрированных доменов.На начало 1997 года население Internet по сведениям компании Network Wizards(http://www.nw.com) составляло 16 146 000 хостов (число записей в системе DNS), располо!женных в 828 000 доменах.
Правда, на запрос "откликнулось" в среднем около 3 миллионовхостов.Принимая во внимание существовавшие в то время отношения между СССР и США,приходится констатировать, что такое вполне могло произойти. Сегодня предположение онадежности сети также не всегда справедливо, только роль бомб и ракет исполняютши экскаваторов.www.books-shop.com386Глава 6.
Поддержка сети в операционной системе UNIXАрхитектура TCP/IPАрхитектура семейства протоколов TCP/IP основана на представлении,что коммуникационная инфраструктура включает три объекта: процессы,хосты, и сети. Процессы являются основными коммуникационными объ!ектами, поскольку между процессами, в конечном итоге, осуществляетсяпередача информации.
Выполнение процессов происходит на различныххостах (или компьютерах). Передача информации между процессами про!ходит через сети, к которым подключены хосты.Подобный взгляд на вещи позволяет сделать основной вывод: чтобы дос!тавить данные процессу, их необходимо сначала передать нужному хосту, азатем определенному процессу, который выполняется на этом хосте. Болеетого — эти две фазы могут выполняться независимо.
Таким образом, откоммуникационной инфраструктуры требуется маршрутизация и доставкаданных между хостами, а хосты, в свою очередь, обязаны обеспечить дос!тавку нужным процессам.Основываясь на этом простом соображении, при разработке семействапротоколов взаимодействия логичным было четкое распределение обязан!ностей между отдельными протоколами, представив их в виде несколькихуровней.
Разработчиками было выбрано четыре уровня:Уровень приложений/процессов (Application/process layer)Транспортный уровень (Host!to!host layer)Уровень Internet (Internet layer)Уровень сетевого интерфейса (Network interface layer)Уровень сетевого интерфейса составляют протоколы, обеспечивающиедоступ к физической сети.
С помощью этих протоколов осуществляетсяпередача данных между коммуникационными узлами, подключенными кодному и тому же сетевому сегменту (например, сегменту Ethernet или ка!налу точка!точка). Протоколы этого уровня должны поддерживаться всемиактивными устройствами, подключенными к сети (например, мостами). Кэтому уровню относятся протоколы Ethernet, IEEE802.X, SLIP, PPP и т. д.Протоколы уровня сетевого интерфейса формально не являются частьюсемейства TCP/IP, однако стандарты Internet определяют, каким образомдолжна осуществляться передача данных TCP/IP с использованием выше!перечисленных протоколов.Уровень Internet составляют протоколы, обеспечивающие передачу данныхмежду хостами, подключенными к различным сетям. Одной из функций,которая должна быть реализована протоколами этого уровня, являетсявыбор маршрута следования данных, или маршрутизация.
Сетевые элемен!ты, осуществляющие передачу данных из одной сети в другую, получилиwww.books-shop.comСемейство протоколов TCP/IP387название шлюзовШлюз имеет несколько сетевых интерфейсов,подключенных к различным физическим сетям, и его основной задачейявляется выбор маршрута передачи данных из одного сетевого интерфейсав другой. Основной представитель уровня Internet — протокол IP.Протоколы транспортного уровня обеспечивают передачу данных междупроцессами, выполняющихся на разных хостах. Помимо этого транспорт!ные протоколы могут реализовывать дополнительные функции, например,гарантированную доставку, создание виртуального канала и т. д.
К транс!портному уровню относятся протоколы TCP и UDP.Наконец, протоколы уровня приложений обеспечивают функционирова!ние прикладных услуг, таких как удаленный терминальный доступ, копи!рование удаленных файлов, передача почтовых сообщений и т. д. Работуэтих приложений обеспечивают протоколы Telnet, File Transfer Protocol(FTP), Simple Mail Transfer Protocol (SMTP) и т.
д.На рис. 6.1 показана иерархическая четырехуровневая модель семействапротоколов TCP/IP. Заметим, что протоколы уровня сетевого интерфейса,фактически не являются частью семейства, поскольку не определены нистандартами Министерства обороны США, ни стандартами Internet. Вместоэтого используются существующие протоколы сети и определяются методыпередачи трафика TCP/IP с помощью данной коммуникационной техноло!гии. Например, RFC894 (A Standard for the Transmission of IP Datagrams overEthernet Networks) определяет формат и процедуру передачи IP!пакетов всетях Ethernet, a RFC 1577(Classical IP and ARP over ATM) — в сетях ATM.На рис. 6.2 показана базовая коммуникационная схема протоколовTCP/IP.
Коммуникационная инфраструктура может состоять из несколь!ких физических сетей. Для передачи данных в физической сети междуподключенными хостами используется некоторый протокол уровня сете!вого интерфейса, определенный для данной технологии передачи данных(Ethernet,ATM и т. д.). Отдельные сети связаны между собой шлю!зами, — устройствами, подключенными одновременно к нескольким сетями служащими для передачи пакетов данных из одного интерфейса в дру!гой. Выполнение этой функции обеспечивается протоколом IP. Как видноиз рисунка, протокол IP выполняется на хостах и шлюзах и в конечномитоге обеспечивает доставку данных от хоста!отправителя к хосту!получателю. За обмен данными между процессами отвечают протоколытранспортного уровня — TCP или UDP.
Поскольку работа транспортныхБолее точным названием этих устройств является "маршрутизатор" (router). С формальнойточки зрения термин "шлюз", применительно к данным устройствам, не совсем верен.Модель OSI определяет шлюз, как устройство, которое может осуществлять функции пе!редачи на всех семи уровнях (подробнее о моделибудет рассказано в следующем раз!деле).
Однако в мире UNIX маршрутизаторы почему!то называют шлюзами, и мы будемпридерживаться этой терминологии.www.books-shop.com388Глава 6.сети в операционной системе UNIXпротоколов обеспечивает передачу данных между удаленными процессами,протоколы этого уровня должны быть реализованы на хостах. При этомшлюзов для TCP или UDP как бы не существует, поскольку их присутст!вие и работу полностью скрывает протокол IP.
Наконец, процессы такжеиспользуют некоторый протокол для обмена данными, например Telnetили FTP.Рис. 6.1. Архитектура протоколов TCP/IPРис. 6.2. Коммуникационная схема TCP/IPwww.books-shop.comСемейство протоколов TCP/IP389Для правильного обмена данными каждый коммуникационный узел дол!жен иметь уникальный адрес. На самом деле, как правило, существует не!сколько уровней адресации. Например, в локальной сети, каждый сетевойинтерфейс (первый уровень модели) имеет т. н.С помощьюэтого адреса обеспечивается доставка данных требуемому получателю вфизической сети. Для доставки данных IP необходимо адресовать хост!получатель. Для этого используется т.
н. IP! или Internet!адрес. Наконец,хост, получивший данные, должен доставить их требуемому процессу. Та!ким образом, каждый процесс хоста, участвующий в коммуникационномвзаимодействии также имеет адрес. Этот адрес получил название номерапорта.Таким образом, для того чтобы однозначно адресовать принимающую сто!рону, отправитель данных должен указать адреса хоста (IP!адрес) и про!цесса на этом хосте (номер порта). Он также должен указать, какой прото!кол транспортного уровня будет использован при обмене данными (номерпротокола). Поскольку путь данных может проходить по нескольким фи!зическим сегментам, физический адрес, или МАС!адрес, сетевого интер!фейса не имеет смысла и определяется автоматически на каждом этапепересылки (hop) между шлюзами.Попробуем вкратце рассмотреть процесс передачи данных от процесса2000 (номер порта), выполняющегося на хосте А, к процессу 23, выпол!няющемуся на хосте В.