Linux: Полное руководство
Шрифт:
3. Выборочно (Elective) — реализация не обязательна.
4. Ограниченное использование (Limited use) — не рекомендуется для всеобщего применения.
5. Не рекомендуется (Not recommended) — не рекомендуются.
Протоколы семейства TCP/IP можно представить в виде модели, состоящей из четырех уровней: прикладного, основного, межсетевого и сетевого (таблица 27.2).
Уровни стека протоколов TCP/IP Таблица 27.2
Уровень 1 | Прикладной уровень (уровень приложения, Application Layer) |
Уровень 2 | Основной (транспортный) уровень (Transport Layer) |
Уровень 3 | Межсетевой уровень (уровень Internet, Internet Layer) |
Уровень 4 | Уровень
|
Каждый из этих уровней выполняет определенную задачу для организации надежной и производительной работы сети.
27.1.1.1. Уровень сетевого интерфейса
Этот уровень лежит в основании всей модели протоколов семейства TCP/IP. Уровень сетевого интерфейса отвечает за отправку в сеть и прием из сети кадров, которые содержат информацию. Кадр (frame) — это единица данных, которыми обмениваются компьютеры в сети Ethernet. Для обозначения блоков данных определенных уровней используются термины кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment). Все эти термины обозначают транспортируемые отдельно блоки данных, и их можно считать синонимами. Название блока пересылаемых данных изменяется в зависимости от уровня (рис. 27.1).
Рис. 27.1. Пересылка блока данных в стеке протоколов TCP/IP
27.1.1.2. Межсетевой уровень
Протоколы Интернет инкапсулируют блоки данных в пакеты (дейтаграммы) и обеспечивают необходимую маршрутизацию. К основным интернет-протоколам относятся:
♦ IP (Internet Protocol) — предназначен для отправки и маршрутизации пакетов.
♦ ARP (Address Resolution Protocol) — используется для получения MAC-адресов (аппаратных адресов) сетевых адаптеров.
♦ ICMP (Internet Control Message Protocol) — предназначен для отправки извещений и сообщений об ошибках при передаче пакетов.
♦ IGMP (Internet Group Management Protocol) — используется узлами для сообщения маршрутизаторам, которые поддерживают групповую передачу, о своем участии в группах.
♦ RIP (Route Internet Protocol) и OSPF (Open Shortest Path First) — протоколы маршрутизации.
На этом уровне реализуется передача пакетов без установки соединения — дейтаграммным способом. Межсетевой уровень обеспечивает перемещение пакетов по сети с использованием наиболее рационального маршрута (протокол OSPF). Основная функция межсетевого уровня — передача пакетов через составную сеть, поэтому этот уровень также называется уровнем Интернет.
27.1.1.3. Транспортный (основной) уровень
Этот уровень обеспечивает сеансы связи между компьютерами. Существует два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP ориентирован на установление соединения, то есть перед передачей данных компьютеры «договариваются» между собой. Обычно по этому протоколу передаются большие объемы данных или данные, для которых требуется подтверждение их приема. Этот протокол используется большинством сетевых приложений, так как обеспечивает достаточную надежность при передаче данных.
Протокол UDP не ориентирован на соединение и не гарантирует доставку пакетов (дейтаграмм), зато он работает быстрее TCP. Обычно по этому протоколу передаются небольшие объемы данных. Ответственность за доставку данных несет сетевая программа.
27.1.1.4. Уровень приложений
Этот уровень является вершиной модели TCP/IP. На этом уровне работают практически все распространенные утилиты и службы: DNS, Telnet, WWW. Gopher, WAIS. SNMP, FIT, TFTP, SMTP, POP, IMAP.
Таблица 27.3 показывает соответствие уровней стека протокола TCP/IP семиуровневой модели OSI.
Соответствие уровней стека TCP/IP модели OSI Таблица 27.3
Уровень модели 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 |
27.1.2.
Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в таблице 27.4, представляют собой IP-заголовок и добавляются к пакету при его получении с транспортного уровня.
Структура заголовка IP-пакета Таблица 27.4
Поле | Описание |
---|---|
Source IP-address | IP-адрес отправителя пакета |
Destination IP-address | IP-адрес получателя пакета |
Protocol | Протокол: TCP или UDP |
Checksum | Контрольная сумма для проверки целостности пакета |
TTL (Time to Live) | Время жизни пакета: определяет, сколько секунд дейтаграмма может находиться в сети. Предотвращает бесконечное блуждание пакетов в сети. Значение TTL автоматически уменьшается на одну или более секунд при проходе через каждый маршрутизатор сети |
Version | Версии протокола IP — 4 или 6 (4 бита) |
Header Length | Длина заголовка пакета (4 бита). Минимальный размер заголовка — 20 байтов |
Type of Service | Тип обслуживания; обозначение требуемого для этого пакета качества обслуживания при доставке через маршрутизаторы IP-сети. Здесь определяются приоритет, задержки, пропускная способность (8 битов) |
Total Length | Длина дейтаграммы IP-протокола (16 битов) |
Identification | Идентификатор пакета. Если пакет фрагментирован (разбит на части), то все фрагменты имеют одинаковый идентификатор (15 битов) |
Fragmentation Rags | 3 бита для флагов фрагментации и 2 бита для текущего использования |
Fragmentation Offset | Смещение фрагмента: указывает на положение фрагментов относительно начала поля данных IP-пакета. Если фрагментации нет, смещение равно 0x0 (13 битов) |
Options and Padding | Опции |
Протокол TCP в отличие от протокола IP ориентирован на установление соединения и обеспечивает надежную доставку данных. Структура TCP-пакета описана в таблице 27.5.
Структура заголовка TCP-пакета Таблица 27.5
Поле | Описание |
---|---|
Source port | Порт TCP узла-отправителя |
Destination Port | Порт TCP узла-получателя |
Sequence Number | Номер последовательности пакетов |
Acknowledgement Number | Номер подтверждения: порядковый номер байта, который локальный узел рассчитывает получить следующим |
Data Length | Длина TCP-пакета |
Reserved | Зарезервировано для будущего использования |
Hags | Флаги: описание содержимого сегмента |
Window | Показывает доступное место в окне протокола TCP |
Checksum | Контрольная сумма для проверки целостности пакета |
Urgent Pointer | Указатель срочности: при отправке срочных данных (поле Flags) в этом поле задается граница области срочных данных |
27.2 Протокол ICMP
27.2.1. Для чего используется протокол ICMP
Протокол межсетевых управляющих сообщений используется для диагностических целей. Например, система А передала системе Б неверный пакет. Система Б с помощью протокола ICMP может «сказать» системе А, что посланный ею пакет некорректен. Также по этому протоколу производится диагностика сети. Многие из вас используют утилиту ping, чтобы определить, доходят ли отправленные вами пакеты до какой-то определенной машины, даже не подозревая о том, что ping использует как раз протокол ICMP.