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

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 делятся на пять типов:

Требуется (Required) данный стандарт должен быть реализован на всех основных узлах TCP/IP.
Рекомендуется (Recommended) обычно такие спецификации RFC также реализуются
Выборочно (Elective) реализация не обязательна.
Ограниченное использование (Limited use) не рекомендуется для всеобщего применения.
Не рекомендуется (Not recommended) не рекомендуется.

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

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

Уровень 1 Прикладной уровень (уровень приложения, Application Layer)
Уровень 2 Основной (транспортный) уровень (Transport Layer)
Уровень 3 Межсетевой уровень (уровень Internet, Internet Layer)
Уровень 4 Уровень сетевых интерфейсов (Network Interface Layer)

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

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

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

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


У9.3 Совместное использование стека достижимых элементов

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

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


Просмотр стека вызовов 

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

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


Глобальное и локальное разворачивание стека

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

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


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

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

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


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

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

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


8.1.17. Использование массива в качестве стека или очереди

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

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


9.2.1. Более строгая реализация стека

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

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


Роль стека протоколов TCP/IP в развитии сетей

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

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


Многоуровневая нумерация

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

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


Многоуровневая модель

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

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


11.3.2. Раскрутка стека

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

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


19.2.5. Раскрутка стека и вызов деструкторов

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

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