архитектура эмвос (open system interconnection, osi). Архитектура протоколов в компьютерных сетях

Стек протоколов TCP/IP представляет собой семейство протоколов, обеспечивающих соединение и совместное использование различных систем. Стек был разработан для работы в разнородных сетях. Протоколы стека отличаются высокой надежностью: они отвечают требованию обеспечения возможности работы узлов сети, уцелевших при ограниченном ядерном нападении. В настоящее время стек протоколов TCP/IP используется как для связи в сети Интернет, так и в локальных сетях.

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

Приведем список протоколов, входящих в стек TCP/IP:

  • TCP (Transmission Control Protocol - протокол управления передачей) - базовый транспортный протокол, давший название всему семейству протоколов TCP/IP;
  • UDP (User Datagram Protocol) - второй по распространенности транспортный протокол семейства TCP/IP;
  • IP (Internet Protocol) - межсетевой протокол;
  • ARP (Address Resolution Protocol - протокол разрешения адресов) - используется для определения соответствия IP-адресов и Ethernet-адресов;
  • SLIP (Serial Line Internet Protocol) - протокол передачи данных по телефонным линиям;
  • PPP (Point to Point Protocol) - протокол обмена данными "точка-точка";
  • RPC (Remote Process Control) - протокол управления удаленными процессами;
  • TFTP (Trivial File Transfer Protocol) - простой протокол передачи файлов;
  • DNS (Domain Name System) - протокол обращения к системе доменных имен;
  • RIP (Routing Information Protocol) - протокол маршрутизации.

Основные протоколы стека TCP/IP можно представить в виде структуры, изображенной на рис.1.

Рис. 1. Архитектура стека TCP/IP

Модель, основанная на стеке TCP/IP, включает в себя 4 уровня: прикладной, основной (транспортный), уровень межсетевых взаимодействий (сетевой), уровень сетевых интерфейсов (канальный). Соответствие этих уровней архитектуре модели OSI показано в таблице 1.

Таблица 1. Сопоставление уровней моделей OSI и TCP/IP

Как видно из таблицы, обе архитектуры взаимодействия включают похожие уровни, но в модели TCP/IP несколько уровней модели OSI объединены в один.

Рассмотрим функции всех четырех уровней модели, основанной на стеке протоколов TCP/IP.

1. Прикладной уровень -

обеспечивается службами, предоставляющими сетевой сервис пользовательским приложениям. Список основных служб включает в себя следующие протоколы: Telnet, FTP, TFTP, DNS, SNMP, HTTP. Прикладной уровень выполняет функции прикладного уровня и уровня представления данных модели OSI.

2. Основной уровень -

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

3. Уровень межсетевых взаимодействий -

обеспечивает передачу пакетов данных в составной сети, где есть не только локальные, но и глобальные связи. Основной протокол этого уровня - IP. На этом уровне для сбора маршрутной информации используется протоколы маршрутизации RIP, OSPF (Open Shortest Path First). Этот уровень соответствует сетевому уровню модели OSI.

Архитектура протоколов TCP/IP, известная как набор протоколов TCP/IP, возникла в результате исследований в области протоколов и разработок, выпол­нявшихся в экспериментальной сети с коммутацией пакетов под названием ARPANET, которая была основана Управлением перспективных исследователь­ских программ Министерства обороны США (Defense Advanced Research Projects Agency - DARPA). Этот набор протоколов состоит из большого собрания прото­колов, изданных Координационным советом по сети Internet (Internet Activities Board - IAB) в качестве стандартов для Internet.

Уровни протокола tcp/ip

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

Ввиду этого в задаче обмена информацией естественно выделить пять отно­сительно независимых уровней:

    физический уровень (physical layer);

    уровень доступа к сети (network access layer);

    межсетевой уровень (intranet layer);

    транспортный уровень (host-to-host layer или transport layer);

    уровень приложений (application layer).

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

Уровень доступа к сети связан с обменом данными между конечной систе­мой (сервером, рабочей станцией и т.п.) и сетью, к которой подсоединена эта система. Компьютер-отправитель должен передать в сеть адрес компьютера-адресата, чтобы сеть могла направить данные по месту назначения. Компьютеру-отправителю могут понадобиться определенные сервисы, такие, как предостав­ляемый сетью приоритет. Вид используемых на этом уровне программ зависит от типа сети; разработаны различные стандарты для сетей с коммутацией кана­лов, коммутацией пакетов (например, Х.25), локальных сетей (Local Area Net - LAN) (например, Ethernet) и других. Таким образом, имеет смысл выделить функции, связанные с предоставлением сетевого доступа, в отдельный уровень. С помощью этого приема удается избавиться от необходимости рассматривать в ос­тальных программах, предназначенных для обмена информацией на более высо­ких уровнях доступа к сети, специфические вопросы устройства используемых сетей. Одни и те же программы более высоких уровней должны правильно рабо­тать независимо от того, к какой сети подключен компьютер.

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

Независимо от природы приложений обмен данными должен быть надеж­ным. Т.е. хотелось бы иметь уверенность в том, что все данные попали к прило­жению-адресату и что эти данные получены в том порядке, в котором они от­правлены. Как вы увидите, механизмы обеспечения надежности, по сути, неза­висимы от природы приложений. Таким образом, имеет смысл выделить такие механизмы в один общий уровень, совместно используемый всеми приложения­ми; он называется транспортным уровнем. Чаще всего для этого применяется протокол управления передачей (Transmission Control Protocol - TCP).

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

Работа протоколов TCP и IP

На рис. А.1 показано конфигурирование этих протоколов для обмена ин­формацией. Чтобы было ясно, что средство связи в целом может состоять из не­скольких сетей, составляющие сети обычно называются подсетями (subnetworks). Для подключения компьютера в подсеть используется некоторый протокол доступа к сети, например Ethernet. Этот протокол позволяет узлу пере­сылать данные по подсети другому узлу; если же узел-получатель находится в другой подсети, данные попадают на маршрутизатор. Протокол IP реализован на всех конечных системах и маршрутизаторах. При передаче данных от одного узла другому с промежуточным прохождением одного или нескольких маршрути­заторов этот протокол действует как релейная станция. Протокол TCP реализо­ван только на конечных системах; он отслеживает блоки данных, убеждаясь, что все они надежно доставлены соответствующим приложениям.

Чтобы обмен информацией был возможен, каждый элемент системы должен иметь уникальный адрес. Фактически нужно задать два уровня адресации. Каж­дый узел подсети должен обладать своим уникальным глобальным сетевым адре­сом; это позволит доставить данные соответствующему узлу. Каждый процесс узла должен иметь адрес, который был бы уникальным в пределах этого узла, что позволит транспортному протоколу (TCP) доставить данные нужному про­цессу. Этот адрес известен как порт.

Проследим за выполнением простой операции. Предположим, что процессу, выполняющемуся на узле А и связанному с портом 1, нужно отправить сообщение другому процессу, связанному с портом 3 на узле В. Процесс на узле А передает про­токолу TCP сообщение с инструкциями, предписывающими отправить его в порт 3 узла В. Протокол TCP передает сообщение протоколу IP, снабжая это сообщение ин­струкциями отправить его на узел В. Обратите внимание, что протоколу IP не нужно сообщать идентификатор порта назначения. Все, что ему нужно знать, - это сами данные и идентификатор узла В. После этого протокол IP передает сообщение на уровень доступа к сети (например, протоколу Ethernet), снабжая его инструкциями отправить это сообщение маршрутизатору J (первый ретранслятор на пути к узлу В).

Чтобы сообщением можно было управлять, вместе с пользовательскими данны­ми в нем должна передаваться управляющая информация (рис. А.2). Предположим, что процесс-отправитель порождает блок данных и передает его протоколу TCP. Протокол TCP может разбить этот блок на меньшие части, чтобы ими было легче управлять. К каждой из этих частей протокол TCP добавляет управляющую инфор­мацию, известную как TCP-заголовок (TCP header), формируя сегмент TCP (TCP segment). Эта управляющая информация будет использоваться протоколом TCP на узле В. В заголовок среди прочих входят такие пункты.

    Порт назначения (destination port). Когда объект TCP на узле В получает сегмент, ему необходимо знать, кому нужно доставить данные.

    Порядковый номер (sequence number). Протокол TCP нумерует сегменты, которые он последовательно пересылает в определенный порт назначения. Это делается для того, чтобы при нарушении порядка получения сообщений объект TCP на узле В мог расположить их в правильном порядке.

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

Затем протокол TCP передает сегменты протоколу IP, снабжая каждый из них инструкциями передать эти пакеты узлу В. Данные сегменты необходимо будет передать через одну или несколько подсетей, при этом они должны пройти через один или несколько маршрутизаторов. Для этого тоже нужна контрольная информация. Поэтому протокол IP добавляет к каждому сегменту заголовок с контрольной информацией, формируя таким образом IP-датаграмму (IP data­gram). Одним из хранящихся в IP-заголовке каждого сегмента элементов явля­ется адрес узла назначения (в нашем примере, узла В).

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

    Адрес подсети назначения . Подсеть, в которой находится пакет, должна иметь информацию о том, какому присоединенному устройству нужно его доставить.

    Запросы средств. Протокол доступа к сети может запросить предоставление определенных сетевых средств, например приоритета.

На маршрутизаторе J из пакета удаляется его заголовок пакета и проверя­ется IP-заголовок. Основываясь на адресе назначения, который содержится в IP-заголовке, IP-модуль маршрутизатора, направляет датаграмму по подсети 2 на узел В. Для этого к ней снова добавляется заголовок доступа к сети.

Когда узел В получит данные, на нем выполняется обратный процесс. На каждом уровне удаляется соответствующий заголовок, а оставшаяся часть пере­дается на ближайший более высокий уровень до тех пор, пока пользовательские данные не будут доставлены в первоначальном виде тому процессу, для которого они предназначены.

Протоколы TCP и UDP

Для большинства приложений, выполняющихся в рамках архитектуры прото­кола TCP/IP, протоколом транспортного уровня является TCP. Этот протокол обес­печивает надежное соединение для передачи данных от одного приложения другому.

На рис. А.З.а показан формат заголовка TCP, который состоит как минимум из 20 октетов или 160 бит. В полях Порт отправления (Source Port) и Порт назна­чения (Destination Port) указаны идентификаторы приложений исходной системы и системы назначения, которые используют это соединение. 1 Поля Порядковый номер (Sequence Number), Номер подтверждения (Acknowledgment Number) и Окно (Window) обеспечивают текущее управление и контроль ошибок. Каждый сегмент пронумерован, чтобы можно было обнаруживать их потерю и отправлять явные подтверждения при получении сегментов. Объект, отправляющий подтверждения, для каждого из них указывает в поле Окно, сколько еще данных он готов при­нять. Поле Контрольная сумма (Checksum) представляет собой 16-битовый кадр, в котором находится контрольная последовательность, предназначенная для выяв­ления ошибок в сегменте TCP.

Кроме протокола TCP существует еще один широко используемый протокол транспортного уровня, входящий в набор протоколов TCP/IP: пользовательский протокол датаграмм (User Datagram Protocol - UDP). Протокол UDP предостав­ляет сервис без установления соединения, предназначенный для процедур на уровне приложений; этот протокол не гарантирует доставку, сохранение после­довательности или защиту от дублирования. Он позволяет процедуре отправлять сообщения другим процедурам с помощью минимального протокольного меха­низма. Протоколом UDP пользуются некоторые приложения, ориентированные на транзакции. Одним из таких приложений является простой протокол сетевого управления (Simple Network Management Protocol - SNTP), который является стандартным протоколом сетевого администрирования в сетях, работающих по протоколу TCP/IP. Протокол UDP выполняет крайне ограниченный набор функ­ций, так как он работает без установления соединения. По сути, он добавляет к протоколу IP некоторые возможности адресации портов. Легче всего это понять, рассмотрев заголовок UDP, показанный на рис. А.З.б".

Протоколы IP и IPv6

Internet-протокол (IP) на протяжении десятилетий был основным элементом архитектуры протоколов TCP/IP. На рис. А.4,а показан формат IP-заголовка, который состоит как минимум из 20 октетов, или 160 бит. В этом заголовке со­держатся 32-битовые адреса отправления и назначения. Поле Контрольная сум­ма заголовка (Header Checksum) используется для выявления ошибок в заголов­ке, что помогает избежать ошибок при доставке. В поле Протокол (Protocol) ука­зано, какой из протоколов более высокого уровня использует протокол IP, TCP, UDP или какой-то другой. Поля Флаги (Flags) и Смещение фрагмента (Fragment Offset) используются в процессе фрагментации и повторной сборки, в котором IP-датаграмма разбивается на несколько IP-датаграмм, а затем в пункте назна­чения снова собирается воедино.

В 1995 году проблемная группа проектирования Internet (Internet Engi­neering Task Force - IETF), занимающаяся разработкой стандартов для прото­колов Internet, опубликовала спецификацию протокола IP следующего поколе­ния, которая с того момента стала известна как IPng. В 1996 году эта специфи­кация получила статус стандарта, известного как IPv6. Протокол IPv6 предоставляет определенный набор функциональных улучшений существующего протокола IP (известного как IPv4). Он разработан, чтобы иметь возможность работать с более высокими скоростями, достигнутыми в современных сетях, а также с потоками данных, включающими графику и видеосигналы, которые становятся все более распространенными. Однако движущей силой разработки нового протокола послужила необходимость дополнительных адресов. Находящийся в обращении протокол IP поддерживает 32-битовые адреса отправки или назначения, В результате интенсивного расширения сети Internet и роста коли­чества подсоединенных к Internet ведомственных сетей длины этих адресов ста­ло недостаточно для всех систем, которым нужны адреса. Как показано на рис. А.4,б, заголовок IPv6 содержит 128-битовые поля для адресов отправления и назначения. Предполагается, что все системы, в которых используется прото­кол TCP/IP, со временем перейдут от текущего протокола IP к протоколу IPv6, однако этот процесс займет многие годы, если не десятилетия.

Сетевые архитектуры

Сетевая архитектура - это набор стандартов топологий и протоколов, необходимых для создания работоспособной сети .

Технология Ethernet

История Ethernet

В 1975 году фирма Xerox основала Ethernet на экспериментальной сети Ethernet Nerwork со скоростью передачи данных 2,93 Мбит/c;

В 1980 году фирмы Dec, Intel, Xerox совместно разработали и опубликовали стандарт Ethernet версии два для сети, построенной на основе коаксиального кабеля. Это Ethernet стал называться фирменным Ethernetom - Ethernet DIX или Ethernet два;

На основе фирменного Ethernet был разработан стандарт IEEE 8093, который стали называть классическим Ethernet.

Характеристики Ethernet:

Физическая топология - шина;

Логическая топология - звезда-шина;

Метод передачи данных - узкополосный, работающий на одной частоте;

Метод доступа - CSMA/CD (множественный доступ с контролем несущей и обнаружением коллизий);

Скорость передачи данных - 10, 100 Мбит/c;

Среда передачи - толстый и тонкий коаксиальный кабель, витая пара .

Стандарты Ethernet:

10Base5 используется толстый коаксиальный кабель;

10Base2 используется тонкий коаксиальный кабель;

10Base T используется витая пара;

10Base F используется оптоволоконный кабель .

Технология данной организации

Характеристики 1000Base - SX:

Физическая топология - “звезда”;

Логическая топология - “шина”;

Метод передачи данных - узкополосный, т.е. на одной частоте;

Метод доступа - CSMA/CD(множественный доступ с контролем несущей и обнаружением коллизий);

Скорость передачи данных - 1000 Мбит/сек;

Среда передачи - многомодовое оптоволокно.

Достоинства 1000Base - SX:

Дальность прохождения сигнала без повторителя до 550м;

Способность передавать одновременно несколько сигналов

Устойчивость к помехам.

Недостатки 1000Base - SX:

Для прокладки сети требуется дорогое оборудование.

Максимальная длина сегмента в технологии 1000 Base SX составляет 550м.

Максимальное количество компьютеров в данной технологии составляет 1024.

Правило четырех хабов.

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

Сетевые протоколы

Сетевой протокол-это четко определенный набор правил и соглашений для взаимодействия одинаковых уровней сети .

Стек протокола TCP/IP

Стек - это набор протоколов, совместно работающих, но каждый на своем уровне.

Стек TCP/IP включает в себя 2 основных протокола:

TСP - протокол для гарантированной доставки данных, разбитых на отдельные фрагменты (соответствует транспортному уровню);

IP протокол для передачи пакетов, относится к разряду сетевых протоколов (соответствует физическому, канальному и сетевому уровням).

Стек TCP/IP выполняет следующие функции:

Обеспечивает совместимость между компьютерами разных типов;

Предоставляет доступ к ресурсам Internet;

Поддерживает маршрутизацию и используется как межсетевой

Протоколы TCP/IP разработаны для сетевого окружения, которое было мало распространено в 70-х гг., но сегодня стало нормой. Эти протоколы позволяют соединять оборудование различных производителей и способны работать через различные типы носителей или сред и связи данных. Они позволили объединить сети в единую сеть интернет , все пользователи которой имеют доступ к набору базовых служб.

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

Все эти требования нашли отражение в архитектуре TCP/IP. Требования независимости от носителей и расширения за счет подключения новых сетей привели к решению о пересылке данных в интернет с разделением их на части и маршрутизацией каждой из этих частей как независимого элемента.

Такие возможности гарантируют надежную пересылку данных от хоста источника к хосту назначения. Вследствие этого разработчики маршрутизаторов направили свои усилия на повышение производительности и внедрение новых коммуникационных технологий.

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

3.2 Деление на уровни

Для достижения надежности обмена данными между компьютерами необходимо обеспечить выполнение нескольких операций:

■ Пакетирование данных

■ Определение путей (маршрутов) пересылки данных

■ Пересылку данных по физическому носителю

■ Регулировку скорости пересылки данных в соответствии с доступной полосой пропускания и возможностью приемника получать посланные ему данные

■ Сборку полученных данных, чтобы в формируемой последовательности не было потерянных частей

■ Проверку поступающих данных на наличие дублированных фрагментов

■ Информирование отправителя о том, сколько данных было передано успешно

■ Пересылку данных в нужное приложение

■ Обработку ошибок и непредвиденных событий

В результате программное обеспечение для коммуникации получается достаточно сложным. Следование модели с разделением на уровни позволяет упростить объединение сходных функций в группы и реализовать разработку коммуникационного программного обеспечения по модульному принципу.

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

Коммуникационная модель обмена данными OSI строго соответствует структуре TCP/IP. Уровни и терминология модели OSI стали стандартной частью коммуникационной структуры обмена данными.

На рис. 3.1 показаны уровни OSI и TCP/IP. Начнем их анализ с самого нижнего уровня (в TCP/IP формально не определены уровни сеанса и представления).

Рис. 3.1. Уровни TCP/IP и OSI

3.2.1 Физический уровень

Физический уровень (physical layer) имеет дело с физическими носителями, разъемами и сигналами для представления логических нулей и единиц. Например, адаптеры сетевого интерфейса Ethernet и Token-Ring и соединяющие их кабели реализуют функции физического уровня.

3.2.2 Уровень связи данных

Уровень связи данных (data link layer) организует данные в кадры (frame). Иногда его называют канальным уровнем. Как показано на рис. 3.2, каждый кадр имеет заголовок (header), содержащий адрес и управляющую информацию, а завершающая секция кадра (trailer) используется для исправления ошибок (иногда ее называют хвостом кадра. - Прим. пер .).

Заголовки кадров локальных сетей содержат физические адреса источника и назначения, которые идентифицируют передающую и принимающую интерфейсные карты локальной сети (сетевые адаптеры). Заголовки кадров, пересылаемых по региональной сети Frame Relay, содержат циклические идентификаторы в специальном адресном поле.

Вызов соединения (связи) в локальной сети, т.е. создание некоторой линии между конечными точками передачи данных, и аналогичные возможности в региональных сетях описываются протоколами уровня связи данных.

Рис. 3.2. Формат кадра

3.2.3 Сетевой уровень

Функции сетевого уровня (network layer) выполняет протокол IP, который осуществляет, маршрутизацию данных между системами. Данные могут следовать по одному пути или использовать несколько различных путей при перемещении в интернете. Данные пересылаются в элементах, называемых датаграммами (datagram).

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

Рис. 3.3. Датаграмма IP

Уровень IP называется "без создания соединения" , поскольку каждая датаграмма маршрутизируется независимо и протокол IP не гарантирует тот же порядок получения датаграмм, как при их отправке. IP маршрутизирует трафик без учета взаимодействий между приложениями, которым принадлежат конкретные датаграммы.

3.2.4 Транспортный уровень (TCP)

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

Приложения, например пересылки файлов, передают данные в TCP, который добавляет к ним заголовок и формирует элемент, называемый сегментом (segment).

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

3.2.5 Транспортный уровень (UDP)

Приложение может послать другому приложению независимое сообщение с помощью протокола UDP, который добавляем к сообщению заголовок и формирует элемент, называемый датаграммой UDP или сообщением UDP .

UDP передает исходящие сообщения в IP и предполагает на другой стороне получение входящих сообщений от IP. Далее UDP определяет приложение, которому направлены данные.

UDP реализует коммуникационную службу без создания соединения, которая часто используется для просмотра содержимого простых баз данных.

3.2.6 Службы для приложений

Как уже отмечалось в главе 2, набор протоколов TCP/IP включает стандартные службы для приложений, такие как доступ с терминала, пересылка файлов, обращение к файловым серверам NFS, электронная почта, сетевые новости, WWW и просмотр адресов в DNS.

3.2.7 Пакетирование данных

На рис. 3.4 показано, как пакетируются прикладные данные перед пересылкой по сети. Основным термином для объединения информации с заголовком соответствующего сетевого уровня является элемент данных протокола (Protocol Data Unit - PDU). Например, сегмент TCP является PDU транспортного уровня, а датаграмма IP - PDU сетевого уровня.


Рис. 3.4. Пакетирование данных перед пересылкой по сети

3.3 Обзор протоколов

На рис. 3.5 представлено соотношение между отдельными компонентами набора протоколов TCP/IP.


Рис. 3.5. Соотношение между компонентами набора протоколов TCP/IP

Хотя текстовые пользовательские интерфейсы для пересылки файлов, доступа с терминала, работы с новостями или запросами к DNS для определения адреса по имени формально не стандартизованы, многие разработчики копируют интерфейс конечного пользователя из BSD Unix. Работающие в режиме текстовых команд пользователи находят, что пользовательский интерфейс не слишком отличается в разных системах.

Для настольных систем Windows и Macintosh существует множество графических пользовательских интерфейсов. Хотя они и отличаются в деталях, но в целом следуют стандартным соглашениям операционных систем и обычно могут использоваться без специального изучения.

Клиенты WWW, сетевых новостей, пересылки файлов (FTP), почты (SMTP) и терминального доступа (telnet ) могут взаимодействовать со своими серверами через соединения TCP. Большинство клиентов NFS обмениваются со своими серверами сообщениями UDP, хотя некоторые реализации NFS предполагают использование как UDP, так и TCP.

Просмотр каталогов DNS основан на сообщениях UDP. Станции управления SNMP извлекают сведения из сетевых устройств с помощью сообщений UDP.

3.4 Маршрутизаторы и топология сети

Набор протоколов TCP/IP может использоваться как в независимых локальных или региональных сетях, так и для их объединения в общие сети интернета. Любой хост с TCP/IP может взаимодействовать с другим хостом через локальную сеть, соединение "точка-точка" или через региональную сеть с пакетированием информации (см. рис. 3.6).


Рис. 3.6. Независимые друг от друга сети

Объединение сетей в интернет предполагает использование маршрутизаторов IP . На рис. 3.7 показана сеть интернет, созданная из независимых сетей, соединенных маршрутизаторами IP.


Рис. 3.7. Объединение независимых сетей маршрутизаторами

Современные маршрутизаторы обеспечивают работу нескольких аппаратных интерфейсов, которые можно комбинировать для применения с конкретной сетевой топологией: Ethernet, Token-Ring, FDDI, синхронные соединения "точка-точка", Frame Relay и т.д.

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

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

3.5 Маршрутизация в IP

Программное обеспечение IP работает на хостах и маршрутизаторах IP. Если пункт назначения датаграммы не находится в том же самом сетевом сегменте, что и ее источник, то протокол IP локального хоста направляет такую датаграмму на локальный маршрутизатор. Если последний не подключен непосредственно к узлу назначения датаграммы, то она будет передана другому маршрутизатору. Этот процесс продолжается до тех пор, пока датаграмма не достигнет заданного пункта назначения.

Маршрутизатор IP определяет местоположение удаленного узла по таблице маршрутизации (routing table), содержащей сведения о ближайших маршрутизаторах, которым должен быть направлен трафик датаграмм для достижения конечной точки в сети.

3.5.1 Протоколы маршрутизации

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

■ Добавление к интернету новой сети

■ Разрушение пути к пункту назначения или невозможность его достижения за заданное время

■ Добавление в интернет нового маршрутизатора, который может обеспечить более короткий путь к месту назначения

Не существует единого стандарта для обмена информацией между маршрутизаторами. Свобода выбора между несколькими согласованными протоколами позволяет добиться наилучшей производительности в каждом конкретном случае.

Сетевая возможность по управлению организацией сети соответствует понятию "автономной системы" (Autonomous System - AS). Организация может выбрать любой из протоколов обмена информацией о маршрутизации, который связан с ее собственной автономной системой. Протоколы обмена информацией о маршрутизации применяются внутри автономных систем в виде протокола внутреннего шлюза (Interior Gateway Protocol - IGP).

Протокол информации о маршрутизации (Routing Information Protocol - RIP) стал одним из популярных стандартов IGP. Широкое распространение этого протокола связано с его простотой, однако новый протокол "Сначала открывать самый короткий путь" (Open Shortest Path First - OSPF) имеет еще более обширный набор полезных возможностей.

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

3.6 Архитектура TCP

TCP реализуется на хостах. Наличие TCP на каждом конце соединения обеспечивает для доставки данных локального приложения следующие возможности:

■ Точность

■ Сохранение последовательности

■ Полноту

■ Исключение дублирования

Базовый механизм для реализации этих возможностей начинает использоваться с самого начала обмена данными. Передающая система TCP:

■ Нумерует каждый сегмент

■ Устанавливает таймер

■ Пересылает сегмент

Принимающая система TCP сообщает своему партнеру, сколько данных было передано правильно, посредством выдачи подтверждения (acknowledgment - ACK). Если подтверждение пересылки сегмента не будет получено за заданный интервал времени, TCP производит повторную пересылку этого сегмента. Такая стратегия называется повторной трансляцией с положительным подтверждением (retransmission with positive acknowledgment). Иногда повторная пересылка приводит к дублированию доставленных на принимающую систему сегментов.

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

Поскольку одна сторона отправляет данные, а другая их принимает, TCP можно назвать полнодуплексным (full-duplex) протоколом: обе стороны соединения могут одновременно посылать и принимать данные (т.е. присутствуют два потока данных). TCP одновременно выполняет роли передатчика и приемника.

3.7 Архитектура UDP

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

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

Участвующие во взаимодействии по UDP приложения могут посылать сообщения с пользовательскими датаграммами в любое время. Клиент и сервер, которые надстроены над UDP, несут ответственность за все взаимоотношения при обмене пользовательскими датаграммами.

3.8 Концепция безопасности

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

Базовые концепции безопасности в сетевом окружении подобны аналогичным концепциям для центрального хоста:

■ Аутентификация пользователей

■ Целостность (гарантия отсутствия изменения данных)

■ Конфиденциальность (защита от нежелательного раскрытия информации)

3.8.1 Аутентификация

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

Если речь идет о пересылке серьезных транзакций в сетях TCP/IP, то требуется способ для надежной идентификации отправителя. Процесс проверки на авторство называется аутентификацией (authentication, дословно: проверка подлинности. - Прим. пер .).

3.8.2 Технология формирования резюме сообщения

Простой, но эффективный способ технологии аутентификации основан на резюме сообщения (message digest). Как показано на рис. 3.8, такое резюме вычисляется по содержимому сообщения с помощью секретного ключа. В настоящее время наиболее распространен алгоритм Message Digest 5 (MD5), который был разработан Рональдом Ривестом (см. RFC 1321).

Рис. 3.8. Использование резюме сообщения.

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

1. Пользователь посылает на хост свой идентификатор.

2. Хост посылает пользователю сообщение со случайным содержимым.

3. Хост и настольная система пользователя выполняют вычисления по алгоритму MD5 для сообщения от хоста и секретного пароля пользователя.

4. Система пользователя отсылает ответ хосту.

5. Хост сравнивает ответ. Если ответ верен, пользователь аутентифицируется.


Рис. 3.9. Использование MD5 при взаимном исследовании

3.8.3 Целостность сообщения

MD5 и совместно используемые секретные ключи можно применять для определения изменений в данных при их пересылке по сети. Рассмотрим рис. 3.10:

1. Вычисление MD5 выполняется над данными с помощью секретного ключа.

2. Данные и полученное сообщение посылаются партнеру.

3. Партнер выполняет вычисление MD5 над полученными данными и известным секретным ключом.

4. Партнер сравнивает полученный результат с соответствующим резюме сообщения. При совпадении считается, что данные не изменились.

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


Рис. 3.10. Защита пересылаемых данных с помощью резюме сообщения, вычисленного по MD5

3.8.4 Конфиденциальность с помощью симметричного шифрования

Для предотвращения чтения и нежелательного использования пересылаемых данных злоумышленником (snooper) данные должны быть зашифрованы. Классическим способом является согласование секретных ключей между отправителем и получателем. Часто при пересылке добавляется резюме сообщения, и получатель может проверить, что данные получены в том виде, в котором они были отправлены. Как показано на рис. 3.11, после шифрования данные выглядят как бессмысленные строки.


Рис. 3.11. Симметричное шифрование

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

■ В целях большей безопасности каждой взаимодействующей паре приходится применять собственный секретный ключ.

■ Изменение ключа связано с большими трудностями.

3.8.5 Асимметричный общедоступный ключ шифрования

Методы асимметричного шифрования известны достаточно давно (основные идеи были заложены в работах Диффи, Хеллмана и Меркля). При таком методе для шифрования и расшифровки используются различные ключи.

Рассмотрим шкатулку с двумя различными ключами (А и Б), как показано на рис. 3.12:

■ Если шкатулка закрывается ключом А, то открывается ключом Б.

■ Если шкатулка закрывается ключом Б, то открывается ключом А.


Рис. 3.12. Использование различных ключей для открытия и закрытия

Асимметричное шифрование называется также шифрованием по общедоступным ключам (public key), поскольку позволяет управлять ключами более согласованным способом. Ключ А может быть общедоступным. Его значение можно открыть для друзей или даже хранить в одном из доступных файлов.

■ Все партнеры могут применять общедоступный ключ для шифрования пересылаемых данных.

Однако только вы будете знать личный ключ, и никто иной не сможет расшифровать посылаемые вам данные.

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

Обслуживание общедоступных/личных ключей гораздо проще, чем симметричных. Однако нужна уверенность, что опубликованный общедоступный ключ "Jane Jone"s Public Key" реально принадлежит нужной Джейн Джон, а не другому человеку с тем же именем.

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

3.8.6 Комбинированное шифрование

Комбинированное шифрование реализуется следующим образом:

■ Выбирается случайный симметричный ключ.

■ По этому ключу шифруются данные.

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

■ Получатель расшифровывает временный случайный ключ и далее использует его для расшифровки данных.

Как показано на рис. 3.13, общедоступный ключ получателя обеспечивает защитную оболочку вокруг случайного ключа. Открыть эту оболочку сможет только получатель сообщения.


Рис. 3.13. Вложенный в зашифрованное сообщение ключ

В следующих главах мы рассмотрим реализацию этих методов в приложениях и коммуникациях TCP/IP. Наиболее впечатляющий результат рассмотрен в главе 24, где описываются аутентификация и шифрование на уровне IP как для классической версии 4 протокола IP, так и для новой версии 6 - IP Next Generation (следующее поколение IP).

Набор многоуровневых протоколов, или как называют стек TCP/IP (табл. 1), предназначен для использования в различных вариантах сетевого окружения. Стек TCP/IP с точки зрения системной архитектуры соответствует эталонной модели OSI (Open Systems Interconnection – взаимодействие открытых систем) и позволяет обмениваться данными по сети приложениям и службам, работающим практически на любой платформе, включая Unix, Windows, Macintosh и другие.

Таблица 1. Семейство протоколов TCP/IP

Название протокола

Описание протокола

Сетевой программный интерфейс

Связь с приложениями ОС Windows

Интерфейс транспортного драйвера (Transport Driver Interface) позволяет создавать компоненты сеансового уровня.

Протокол управления передачей (Transmission Control Protocol)

Протокол пользовательских дейтаграмм (User Datagram Protocol)

Протокол разрешения адресов (Address Resolution Protocol)

Протокол обратного разрешения адресов (Reverse Address Resolution Protocol)

Протокол Internet(Internet Protocol)

Протокол управляющих сообщений Internet (Internet Control Message Protocol)

Протокол управления группами Интернета (Internet Group Management Protocol),

Интерфейс взаимодействия между драйверами транспортных протоколов

Протокол пересылки файлов (File Transfer Protocol)

Простой протокол пересылки файлов (Trivial File Transfer Protocol)

Реализация TCP/IP фирмы Microsoft соответствует четырехуровневой модели вместо семиуровневой модели, как показано на рис. 1. Модель TCP/IP включает большее число функций на один уровень, что приводит к уменьшению числа уровней. В модели используются следующие уровни:


Уровень Приложения модели TCP/IP соответствует уровням Приложения, Представления и Сеанса модели OSI;

Уровень Транспорта модели TCP/IP соответствует аналогичному уровню Транспорта модели OSI;

Рис. 1. Соответствие семиуровневой модели OSI и четырехуровневой модели TCP/IP

Межсетевой уровень модели TCP/IP выполняет те же функции, что и уровень Сети модели OSI;

Уровень сетевого интерфейса модели TCP/IP соответствует Канальному и Физическому уровням модели OSI.

Уровень Приложения

Через уровень Приложения модели TCP/IP приложения и службы получают доступ к сети. Доступ к протоколам TCP/IP осуществляется посредством двух программных интерфейсов (API – Application Programming Interface):

Сокеты Windows;

Интерфейс сокетов Windows, или как его называют WinSock, является сетевым программным интерфейсом, предназначенным для облегчения взаимодействия между различными TCP/IP – приложениями и семействами протоколов.

Интерфейс NetBIOS используется для связи между процессами (IPC – Interposes Communications) служб и приложений ОС BIOS выполняет три основных функции: определение имен NetBIOS; служба дейтаграмм NetBIOS; служба сеанса NetBIOS.

Уровень транспорта

Уровень транспорта TCP/IP отвечает за установления и поддержания соединения между двумя узлами. Основные функции уровня:

Подтверждение получения информации;

Управление потоком данных;

Упорядочение и ретрансляция пакетов.

В зависимости от типа службы могут быть использованы два протокола:

TCP (Transmission Control Protocol – протокол управления передачей);

UDP (User Datagram Protocol – пользовательский протокол дейтаграмм).

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

Протокол управления передачей (TCP)

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

Надежность протокола TCP заключается в следующем:

– он диагностирует ошибки,

– при необходимости посылает данные повторно,

– если не может самостоятельно исправить ошибку, сообщает о ней на другие уровни.

Перед отправкой сегментов информации вниз по модели отправляющий протокол TCP контактирует с принимающим протоколом TCP с целью установления связи. В результате создается виртуальный канал. Такой тип коммуникации называется ориентированным на соединение.

Установление соединения происходит в три шага:

1. Клиент, запрашивающий соединение, отправляет серверу пакет, указывающий номер порта, который клиент желает использовать, а также код (определенное число) ISN (Initial Sequence number).


2. Сервер отвечает пакетом, содержащий ISN сервера, а также ISN клиента, увеличенный на 1.

3. Клиент должен подтвердить установление соединения, вернув ISN сервера, увеличенный на 1.

Принцип работы TCP:

Берет из приложения большие блоки информации, разбивает их на сегменты,

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

Согласовывает с протоколом принимающей стороны количество информации, которое должно быть отправлено до получения подтверждения от принимающего TCP;

После отправки сегментов TCP ждет подтверждения от целевого TCP о получении каждого из них;

Заново отправляет те сегменты, получение которых не было подтверждено.

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

Межсетевой уровень

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

Протокол Интернета IP

Протокол IP обеспечивает обмен дейтаграммами между узлами сети и является протоколом, не устанавливающим соединения и использующим дейтаграммы для отправки данных из одной сети в другую. Данный протокол не ожидает получение подтверждения (ASK, Acknowledgment) отправленных пакетов от узла адресата. Подтверждения, а также повторные отправки пакетов осуществляется протоколами и процессами, работающими на верхних уровнях модели.

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

Уровень сетевого интерфейса

Этот уровень модели TCP/IP отвечает за распределение IP-дейтаграмм. Он работает с ARP для определения информации, которая должна быть помещена в заголовок каждого кадра. Затем на этом уровне создается кадр, подходящий для используемого типа сети, такого как Ethernet, Token Ring или ATM, затем IP-дейтаграмма помещается в область данных этого кадра, и он отправляется в сеть.