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

Linux-сервер своими руками Колисниченко Денис Николаевич

1.7.5. Многоуровневая архитектура стека TCP/IP

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

Вначале давайте рассмотрим историю создания протокола TCP/IP. Протокол TCP/IP был создан в конце 60-х - начале 70-х годов агентством DARPA Министерства Обороны США (U.S. Department of Defense Advanced Research Projects Agency). Основные этапы развития этого протокола отмечены в табл. 1.4.

Этапы развития протокола TCP/IP Таблица 1.4

Год Событие
1970 Введен в использование протокол NCP (Network Control Protocol) для узлов сети Arpanet
1972 Вышла первая спецификация Telnet (см. RFC 318)
1973 Введен протокол FTP (RFC 454)
1974 Программа TCP (Transmission Control Program)
1981 Опубликован стандарт протокола IP (RFC 791)
1982 Объединение протоколов TCP и IP в одно целое - TCP/IP
1983 Сеть Arpanet переведена на протокол TCP (ранее использовался протокол NCP)
1984 Введена доменная система имен DNS

Как вы видите, все стандарты Интернет-протоколов опубликованы в документах RFC. Документы RFC (Request For Comments) - это запрос комментариев. В этих документах описывается устройство сети Интернет.

Документы RFC создаются сообществом Интернет (Internet Society, ISOC). Любой член ISOC может опубликовать свой стандарт в документе RFC. Документы RFC делятся на пять типов:

Все необходимые документы RFC вы найдете на прилагаемом компакт-диске.

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

Рис. 1.11. Уровни стека протоколов TCP/IP

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

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

Данный уровень лежит в основании всей модели протоколов семейства TCP/IP. Уровень сетевого интерфейса отвечает за отправку в сеть и прием из сети кадров, которые содержат информацию. Кадры передаются по сети как одно целое. Кадр (frame) - это единица данных, которыми обмениваются компьютеры в сети Ethernet. Для обозначения блоков данных определенных уровней используют термины кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment). Все эти термины обозначают транспортируемые отдельно блоки данных и их можно считать синонимами. Название блока пересылаемых данных изменяется в зависимости от уровня (см. рис. 1.12).

Рис. 1.12. Пересылка блока данных в стеке протоколов TCP/IP

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

Протоколы Интернет инкапсулируют блоки данных в пакеты (дейтаграммы) и обеспечивают необходимую маршрутизацию. К основным Интернет-протоколам относятся:

IP (Internet Protocol) предназначен для отправки и маршрутизации пакетов.
ARP (Address Resolution Protocol) используется для получения МАС-адресов (аппаратных адресов) сетевых адаптеров.
ICMP (Internet Control Message Protocol) предназначен для отправки извещений и сообщений об ошибках при передаче пакетов.
IGMP (Internet Group Management Protocol) используется узлами для сообщения маршрутизаторам, которые поддерживают групповую передачу, о своем участии в группах.
RIP (Route Internet Protocol) и OSPF (Open Shortest Path First) протоколы маршрутизации.

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

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

Данный уровень обеспечивает сеансы связи между компьютерами. Существует два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP ориентирован на установление соединения, то есть перед передачей данных компьютеры «договариваются» между собой. Обычно по этому протоколу передаются большие объемы данных или данные, для которых требуется подтверждение их приема. Этот протокол используется большинством сетевых приложений, так как обеспечивает достаточную надежность при передаче данных.

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

Уровень приложений

Данный уровень является вершиной модели TCP/IP. На этом уровне работают практически все распространенные утилиты и службы: DNS, Telnet, WWW, Gopher, WAIS, SNMP, FTP, TFTP, SMTP, POP, IMAP.

В качестве завершения данного пункта рассмотрим соответствие уровней стека протокола TCP/IP семиуровневой модели OSI (см. табл. 1.5).

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

Уровень модели OSI Протокол Уровень стека TCP/IP
7, 6 WWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMP 1
5, 4 TCP, UDP 2
3 IP, ICMP, RIP, OSPF, ARP 3
2, 1 Ethernet, PPP, SLIP 4

В следующем пункте рассмотрено такое важное понятие протокола TCP/IP как порт. В том же пункте будут рассмотрены структуры пакетов IP и TCP, поскольку рассмотрение этого материала без введения определения порта не имеет смысла.

Из книги Давайте создадим компилятор! автора Креншоу Джек

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

1.7.5. Многоуровневая архитектура стека TCP/IP Этот пункт книги является необязательным: если вы считаете, что у вас уже достаточно знаний о протоколе TCP/IP, то можете перейти к следующим разделам, а к этому вернуться позже. Здесь будет описана многоуровневая архитектура

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

У9.3 Совместное использование стека достижимых элементов (Это упражнение подразумевает знакомство с результатами лекции 18) Перепишите компонент available, задающий стек достижимых элементов при подходе на уровне компонентов. Единственный стек должен совместно

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Просмотр стека вызовов В отладчике можно вывести окно Call Stack со списком всех активных процедур и функций сценария. Для этого нужно выполнить команду View|Call Stack. Например, если вызвать это окно, находясь внутри функции MyFunc() в сценарии ForDebug.js, то в списке мы увидим название

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Глобальное и локальное разворачивание стека Исключения и аварийные завершения вызывают глобальное разворачивание стека (global stack unwind) в поиске обработчика, как было показано на рис. 4.1. Предположим, например, что в отслеживаемом блоке примера, приведенного в конце

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

3.6 Архитектура TCP TCP реализуется на хостах. Наличие TCP на каждом конце соединения обеспечивает для доставки данных локального приложения следующие возможности:? Точность? Сохранение последовательности? Полноту? Исключение дублированияБазовый механизм для реализации

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

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

Из книги Сетевые средства Linux автора Смит Родерик В.

8.1.17. Использование массива в качестве стека или очереди Базовые операции со стеком называются push и pop, они добавляют и удаляют элементы в конец массива. Базовые операции с очередью - это shift (удаляет элемент из начала массива) и unshift (добавляет элемент в начало массива). Для

Из книги XSLT автора Хольцнер Стивен

9.2.1. Более строгая реализация стека Мы обещали показать, как можно сделать стек защищенным от некорректного доступа. Выполняем обещание! Вот пример простого класса, который хранит внутри себя массив и управляет доступом к этому массиву. (Есть и другие способы, например

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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

Из книги C++ для начинающих автора Липпман Стенли

Многоуровневая нумерация Элемент также поддерживает многоуровневую нумерацию - такую как 3.1.2.5 и т. п. Для работы с ней нужно установить атрибут level в «multiple». При помощи атрибута count можно указать, узлы какого типа вы хотите нумеровать, установив этот атрибут в

Из книги автора

Из книги автора

Многоуровневая модель Увеличение возможностей масштабирования и требования большей функциональной совместимости приводят к модели с большим количеством уровней, как показано на рис. 5.2. Клиентский интерфейс перемещается в центр модели; он объединяется с одним или

Из книги автора

11.3.2. Раскрутка стека Поиск catch-обработчикадля возбужденного исключения происходит следующим образом. Когда выражение throw находится в try-блоке, все ассоциированные с ним предложения catch исследуются с точки зрения того, могут ли они обработать исключение. Если подходящее

Из книги автора

19.2.5. Раскрутка стека и вызов деструкторов Когда возбуждается исключение, поиск его catch-обработчика – раскрутка стека – начинается с функции, возбудившей исключение, и продолжается вверх по цепочке вложенных вызовов (см. раздел 11.3).Во время раскрутки поочередно

Набор многоуровневых протоколов, или как называют стек 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-дейтаграмма помещается в область данных этого кадра, и он отправляется в сеть.

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

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

Модули распределяются по функциональным уровням, которые организуются в виде ВЕРТИКАЛЬНОГО СТЕКА:

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

Таким образом, функциональные уровни внутри одной системы взаимодействуют на строго иерархической основе.

Архитектура процессов в компьютерной сети

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

В 1983 году в целях упорядочения принципов взаимодействия устройств в сетях передачи данных Международная организация по стандартизации (МОС, ISO) утвердила в качестве международного стандарта 7-ми уровневую модель для архитектуры коммуникационных протоколов. Предполагалось , что эта модель должна послужить основой для разработки международных стандартов протоколов. Модель получила название - Эталонная модель Взаимодействия Открытых Систем ВОС (стандарт ISO #7498, рекомендация Международного Союза электросвязи МСЭ-Т Х.200). Разработчики модели полагали, что эта модель и протоколы, разрабатываемые в ее рамках, будут преобладать в средствах компьютерной связи, и, в конце концов, вытеснят фирменные протоколы и конкурирующие модели, такие как TCP/IP. Хотя этого не произошло, в рамках модели было создано много полезных протоколов. И в настоящее время, большинство разработчиков и поставщиков сетевого оборудования определяют свои продукты в терминах эталонной модели ВОС или OSI (Open System Interconnection).

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

В соответствии с моделью OSI взаимодействие прикладных процессов пользователей в сети разбивается на 7 функциональных уровней.

Нумерация функциональных уровней идет снизу вверх. На рисунке показаны названия уровней ВОС и соответствующих уровневых протоколов.

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

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

Функциональные уровни 1-4 (физический – транспортный) предоставляют транспортные услуги по доставке блока данных от прикладного процесса компьютера – источника до прикладного процесса компьютера – получателя информации.

Пакет, поступающий от смежного вышестоящего уровня, называется блоком данных протокола этого уровня PDU (Protocol Data Unit). Например, блок данных сетевого уровня может включать в себя собственно данные прикладного процесса пользователя (Данные ППП) и заголовки "Сет -….- Прик".

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

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

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

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

Набор уровней и протоколов называется архитектурой сети.

Физический уровень обеспечивает передачу/прием неструктурированного потока бит в физической среде.

Уровень определяет механические , электрические и функциональные параметры физической связи, то есть описывает процесс прохождения сигналов через среду передачи между сетевыми устройствами. На этом уровне решаются вопросы: какое количество контактов должно быть в сетевом разъеме и для чего используется каждый контакт, какие сигналы используются для передачи битов "1" и "0" в последовательности данных, чему должна быть равна скорость модуляции В (число импульсов в секунду), как устанавливается начальное физическое соединение и как оно разрывается, как обеспечивается синхронизация приемника с поступающими сигналами.

Сетевое устройство - Повторитель или хаб (hub, repeater) выполняет только функции физического уровня. Функции хаба – усиление и ретрансляция сигналов. Хаб имеет несколько сетевых разъемов (портов) для подключения среды передачи (кабеля). Сигнал, поступивший на вход одного из портов, пересылается параллельно на все выходные порты (за исключением входного).

Канальный уровень (уровень звена данных). Звено данных – это участок сети, включающий два соседних сетевых устройства и физическую линию связи между ними. Например, компьютер пользователя – линия связи кабель UTP 5e – коммутатор.

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

Протокол канального уровня в глобальной (региональной) сети Wide Area Network (WAN) обеспечивает доставку кадра между соседними в сети узлами, соединенными индивидуальной линией связи.

Протокол канального уровня в локальной сети Local Area Network (LAN) может обеспечить доставку кадра между любыми узлами этой сети, но в современных сетях при этом задействуются протоколы вышестоящих уровней – сетевого и транспортного.

Локальные сети изначально строились с использованием разделяемой (share) среды передачи. В настоящее время методы разделения среды передачи в локальной сети используются на участках беспроводного доступа (например, WI-FI). Поэтому, канальный уровень LAN разделен на два подуровня (стандарты IEEE 802.x):

· LLC (Logical Link Control) - подуровень управления логическим каналом (взаимодействие с сетевым уровнем, управление потоком кадров, передача кадров между рабочими станциями сети в соответствии с определенной процедурой: 1) без установления логического соединения и без подтверждения правильного приема кадра; 2) с установлением логического соединения, нумерацией передаваемых кадров и повторной передачей искаженных кадров; 3) без установления логического соединения, но с подтверждением.

· MAC (Media Access Control) - подуровень управления доступом к среде передачи (реализация алгоритма доступа к среде, адресация узлов сети по физическим (аппаратным) адресам сетевых карт, проверка принятого кадра на наличие ошибок).

Сетевые устройства, выполняющие функции канального уровня –коммутатор (SW-switch), мост (bridge), сетевой адаптер (сетевая карта) узла в локальной сети (NIC – Network Interface Card).

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

На сетевом уровне создаётся логический адрес подсети для идентификации группы компьютеров. Этот адрес присваивается автоматически операционной системой или администратором системы.

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

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

Работу маршрутизатора поддерживают два процесса. Один процесс обрабатывает приходящие пакеты и выбирает для них по своей таблице маршрутизации исходящую линию (исходящий порт). Второй процесс отвечает за заполнение и обновление таблиц маршрутизации. Второй процесс работает в соответствии с определенным алгоритмом выбора маршрута – алгоритмом маршрутизации .

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

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

Адаптивные алгоритмы (динамическая маршрутизация ) изменяют решение о выборе маршрутов при изменении топологии сети и в зависимости от загруженности линий.

Маршрутизатор (router) определяет оптимальный (лучший) путь передачи пакета, вычисляя количественные показатели, которые называются метриками . Обычно лучший путь – это путь с наименьшей метрикой.

Переход пакета через маршрутизатор часто называют скачком (hop) или хопом .

Простейшие алгоритмы маршрутизации определяют маршрут на основании наименьшего числа транзитных узлов на пути к адресату (дистанционно-векторные алгоритмы DVA или маршрутизация по вектору расстояния, протокол маршрутизации RIP – routinginformationprotocol). Более сложные алгоритмы учитывают несколько показателей, например, общую задержку при передаче пакетов до узла назначения, пропускную способность каналов связи или денежную стоимость связи (протокол OSPF, алгоритмы состояния связей LSA, алгоритм Дейкстры – поиск оптимального маршрута на графе).

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

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

Транспортный уровень должен довести качество сетевого соединения до того класса надежности, который запросило приложение.

Модель OSI определяет 5 классов сервиса (услуг), предоставляемых транспортным уровнем. Они отличаются срочностью, возможностью восстановления прерванного соединения, а главное – обнаружением и исправлением ошибок в принятых пакетах.

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

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

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

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

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


Похожая информация.


Архитектура протоколов 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, однако этот процесс займет многие годы, если не десятилетия.

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

Таблица 2.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 соответствует четырехуровневой модели вместо семиуровневой модели, как показано на рис. 2.2. Модель TCP/IP включает большее число функций на один уровень, что приводит к уменьшению числа уровней. В модели используются следующие уровни:

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

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

Рис. 2.2. Соответствие семиуровневой модели 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) служб и приложений ОС Windows. NetBIOS выполняет три основных функции: определение имен 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 отвечает за надежную передачу данных от одного узла сети к другому. Он создает сеанс с установлением соединения, иначе говоря, виртуальный канал между машинами.

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

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

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

Получает с верхних уровней блоки информации, разбивает их на сегменты;

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

Отправляет сегменты и «забывает» о них;

Не ждет подтверждений о получении и даже не допускает таких подтверждений и потому считается ненадежным протоколом. Но это не значит, что UDP неэффективен – просто он не относится к надежным протоколам.

UDP также использует номера портов для определения конкретного процесса по указанному IP-адресу. Однако UDP-порты отличаются от TCP-портов и, следовательно, могут использовать те же номера портов, что и TCP, без конфликта между службами.

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

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

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

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

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

Адресация в IP-сетях

Каждый компьютер в сетях TCP/IP имеет адреса трех уровней: физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя) .

Физический, или локальный адрес узла, определяемый технологией, с помощью которой построена сеть, в которую входит узел. Для узлов, входящих в локальные сети – это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем.

Сетевой, или IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла гибкое, и граница между этими полями может устанавливаться произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.

При разработке протокола IP на основе размера сетей были выделены их классы (табл. 2.2):

· Класс а – немногочисленные сети с очень большим количеством узлов; номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети.

· Класс В – сети средних размеров; под адрес сети и под адрес узла отводится по 16 битов (по 2 байта).

· Класс С – сети с малым числом узлов; под адрес сети отводится 24 бита (3 байта), а под адрес узла – 8 битов (1 байт).

Таблица 2.2. Классы сетей

Диапазон адресов

Максимальное количество сетей

Максимальное количество узлов в одной сети

0Сеть.узел.узел.узел

0.0.0.0 ‑ 0.255.255.255

зарезервировано

1.0.0.0 ‑ 126.255.255.255

127.0.0.0 – 127.255.255.255

зарезервировано

10Сеть.сеть.узел.узел

128.XXX.0.0 – 191.XXX.255.255

110Сеть.сеть.сеть.узел

192.XXX.XXX.0 ‑ 223.XXX.255.255

1110Группа.группа. группа.группа

224.0.0.0 – 239.255.255.255

1111Резерв.резерв. резерв.резерв

240.0.0.0 – 255.255.255.255

зарезервировано

· Адреса класса D – особые, групповые адреса – multicast; могут использоваться для рассылки сообщений определенной группе узлов. Если в пакете указан адрес назначения, принадлежащий классу D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

· Адреса класса Е зарезервированы для будущих применений.

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

Если в поле номера сети стоят 0

0 0 0 0...................................0 Номер узла,

то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет: если адрес компьютера 128.187.0.0, то указанный в сообщении адрес 0.0.25.31 неявно преобразуется в адрес 128.187.25.31;

Адрес 127.0.0.Х зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback или localhost. Если программа отправит пакет с таким адресом, то этот пакет, не выйдя за пределы компьютера, пройдется по всем уровням сетевой подсистемы и вернется к этой программе. Позволяет разрабатывать и тестировать сетевое программное обеспечение на локальном компьютере, в т. ч. и вообще не имеющем сетевого адаптера.

Если все двоичные разряды IP-адреса равны 1

1 1 1 1...................................1 1,

то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и отправитель. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);

Если в поле адреса узла назначения стоят сплошные 1

Адрес сети 1111................11,

то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным адресом. Такая рассылка называется широковещательным сообщением (broadcast);

Адреса класса D ‑ форма группового IP-адреса – multicast. Пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Такие сообщения, в отличие от широковещательных, называются мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом.

Символьный адрес, или DNS-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес используется на прикладном уровне, например, в протоколах FTP или telnet.

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

IP-адрес Имя машины

127.0.0.1 localhost

144.206.160.32 Polyn

144.206.160.40 Apollo

По мере роста сети была разработана система доменных имен – DNS (Domain Name System), которая позволяет присваивать компьютерам легко запоминаемые имена, например yahoo.com, и отвечает за перевод этих имен обратно в IP-адреса. DNS строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet.

Компьютерное имя имеет по меньшей мере два уровня доменов, отделяемых друг от друга точкой (.). Идущие после доменов верхнего уровня домены обычно определяют либо регионы (msk), либо организации (ulstu). Следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организаций или частными лицами (например, alvinsoft.h11.ru).

Все, что находится слева, является поддоменом для общего домена. Таким образом, в имени somesite.uln.ru, somesite является поддоменом uln, который в свою очередь является поддоменом ru.

Наиболее популярной программой поддержки DNS является BIND, или Berkeley Internet Name Domain, – сервер доменных имен, который широко применяется в Internet. Он обеспечивает поиск доменных имен и IP-адресов для любого узла сети. BIND обеспечивает также рассылку сообщений электронной почты через узлы Internet.

BIND реализован по схеме «клиент-сервер». Различают четыре вида серверов:

· primary master-сервер поддерживает свою базу данных имен и обслуживает местный домен;

· secondary master-сервер обслуживает свой домен, но данные об адресах части своих машин получает по сети с другого сервера;

· caching-сервер не имеет своего домена. Он получает данные либо с одного из master-серверов, либо из буфера;

· удаленный сервер обычный master-сервер, установленный на удаленной машине, к которому обращаются программы по сети.

Primary или secondary master-серверы устанавливаются обычно на машинах, которые являются шлюзами для локальных сетей.

Шлюз (Gateway) – система, выполняющая преобразование из одного формата в другой.

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

Протоколы сопоставления адреса ARP и RARP

Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol (ARP) . ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети – протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило, не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу – нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP – RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

В локальных сетях ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным
IP-адресом.

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

Протокол ICMP

Протокол управления сообщениями Интернета (ICMP – Internet Control Message Protocol) используется IP и другими протоколами высокого уровня для отправки и получения отчетов о состоянии переданной информации. Этот протокол используется для контроля скорости передачи информации между двумя системами. Если маршрутизатор, соединяющий две системы, перегружен трафиком, он может отправить специальное сообщение ICMP-ошибку для уменьшения скорости отправления сообщений. Является частью сетевого уровня набора протоколов TCP/IP.

Протокол ICMP для своих целей использует сообщения, два из которых называются эхо-запрос ICMP и эхо-ответ ICMP:

· Эхо-запрос подразумевает, что компьютер, которому он был отправлен, должен ответить на этот пакет.

· Эхо-ответ – это тип ICMP-сообщения, которое используется для ответа на такой запрос.

Эти сообщения отправляются и принимаются с помощью команды ping (Packet Internet Groper).

С помощью специальных пакетов ICMP можно получить информацию:

· о невозможности доставки пакета,

· о превышении времени жизни пакета,

· о превышении продолжительности сборки пакета из фрагментов,

· об аномальных величинах параметров,

· об изменении маршрута пересылки и типа обслуживания,

· о состоянии системы и т. п.

Протокол IGMP

Узлы локальной сети используютпротокол управления группами Интернета (IGMP – Internet Group Management Protocol), чтобы зарегистрировать себя в группе. Информация о группах содержится на маршрутизаторах локальной сети. Маршрутизаторы используют эту информацию для передачи групповых сообщений.

Групповое сообщение, как и широковещательное, используется для отправки данных сразу нескольким узлам.

Network Device Interface Specification (NDIS) – спецификация интерфейса сетевого устройства, программный интерфейс, обеспечивающий взаимодействие между драйверами транспортных протоколов, и соответствующими драйверами сетевых интерфейсов. Позволяет использовать несколько протоколов, даже если установлена только одна сетевая карта.

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

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