Коммуникационный протокол – это набор правил и форматов данных, необходимых для установления связи и передачи данных.
Достоинства TCP/IP
Протоколы основаны на открытых и доступных стандартах, не зависящих от конкретного оборудования.
Протоколы не зависят от физического уровня, что позволяет использовать их в различных сетях: Ethernet, X.25 и других.
Протоколы имеют гибкую систему адресации, которая может быть использована как в локальных, так и в глобальных сетях.
Протоколы поддерживают стандартные протоколы высокого уровня для передачи файлов, электронной почты, терминального доступа.
Архитектура протокола основана на представлении, что коммуникационная инфраструктура включает три объекта:
Процессы;
Хосты;
Сети.
Процессы являются основными коммуникационными объектами, поскольку, в конечном итоге, между ними осуществляется передача информации.
Выполнение процессов происходит на хостах.
Передача информации проходит через сети, к которым подключены хосты.
Чтобы доставить данные процессу, их сначала надо передать нужному хосту, а затем, процессу, который выполняется на данном хосте.
От коммуникационной инфраструктуры требуется маршрутизация и доставка данных хосту, а хост обязан доставить информацию нужному процессу.
На этих концепциях сформированы четыре уровня архитектуры:
Уровень приложений/процессов;
Транспортный уровень (хост – хост);
Интернет-уровень;
Уровень сетевого интерфейса.
Уровни сетевого интерфейса составляют протоколы доступа к физической сети. К этому уровню относятся протоколы Ethernet, IEEE802.x, PPP (Point-to-Point Protocol)
Уровень Интернет составляют протоколы, обеспечивающие передачу данных между хостами, подключенными к различным сетям. Основной функцией этих протоколов является выбор маршрута – маршрутизация. Сетевые элементы, осуществляющие передачу из одной сети в другую, называются маршрутизаторами. Иногда их называют шлюзами. Основной представитель уровня Интернет – протокол IP (Internet Protocol).
Протоколы транспортного уровня обеспечивают передачу данных между хостами.
К транспортному уровню относятся протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).
Протоколы уровня приложений обеспечивают функционирование прикладных услуг, таких как:
Терминальный доступ (Telnet);
Передача файлов (FTP);
Передача почты (SMTP);
Сетевая файловая система (NFS);
Управление сетью (SNMP).
Передача файлов |
Электронная почта |
Эмуляция терминала |
Сетевая файловая система |
Менеджмент сети |
Уровень приложений Процессов |
||
FTP |
SMTP |
Telnet |
NFS |
SNMP |
|||
Transmission Control Protocol TCP |
User Datagram protocol UDP |
Транспортный уровень |
|||||
Address Resolution |
Internet Protocol IP |
Internet Control Message protocol ICMP |
Уровень Интернет |
||||
Ethernet, serial |
Уровень сетевого интерфейса |
||||||
Витая пара, коаксиальный кабель, волоконно-оптический кабель, спутниковый канал |
|||||||
Архитектура протоколов TCP/IP
Процесс-клиент
Базовая коммуникационная схема TCP/IP
Каждый коммуникационный узел должен иметь уникальный адрес.
Существует несколько уровней адресации:
На сетевом уровне (уровень 1) имеется МАС-адрес (media access control);
На IP-уровне имеется IP- или Интернет-адрес, который адресует хост;
Хост, получив данные, доставляет их процессу. Адрес процесса называется номером порта.
Таким образом, чтобы однозначно адресовать процесс необходимо указать:
Номер порта;
Тип протокола транспортного уровня;
Интернет-адрес.
МАС-адрес используется шлюзами в автоматическом режиме.
TCP/IP |
ISO OSI |
Уровень приложения |
Уровень приложений |
Уровень представления |
|
Уровень сеанса |
|
Транспортный уровень |
Транспортный уровень |
Уровень Интернет |
Сетевой уровень |
Уровень сетевого интерфейса |
Уровень канала |
Физический уровень |
Протокол IP обеспечивает доставку фрагмента данных от источника к получателю.
Протокол IP выполняет три основных функции:
Адресацию;
Фрагментацию;
Маршрутизацию.
Данные, формат которых понятен протоколу IP, называются дейтаграммой.
Дейтаграмма состоит из заголовка и данных, полученных от протоколов верхних уровней.
Протокол обрабатывает каждую дейтаграмму как самостоятельный объект, не зависящий от других передаваемых дейтаграмм.
Модули IP производят передачу дейтаграммы по направлению к получателю на основании адреса, расположенного в заголовке IP-дейтаграммы. Выбор пути называется маршрутизацией.
В процессе обработки дейтаграммы протокол иногда вынужден выполнять ее фрагментацию. Это необходимо делать, когда сети, через которые вынуждена проходить дейтаграмма, используют разные размеры кадра.
0 - 3 |
4 - 7 |
8 - 11 |
12 - 15 |
16 - 19 |
20 - 23 |
24 - 27 |
28 – 31 |
Version |
IHL |
Type of service |
Total length |
||||
Identification |
Flags |
Fragment Offset |
|||||
TTL |
Protocol |
Header Checksum |
|||||
Source address |
|||||||
Destination address |
|||||||
Options |
Padding |
||||||
Data |
|||||||
Структура заголовка IP-датаграммы
Заголовок занимает минимум 20 байтов и содержит следующие поля:
Version – определяет версию протокола. Обычно, 4.
IHL – internet header length – длина заголовка в 32-битных словах. При 20 байтах IHL = 5.
Type of service - битовое поле:
0 – 2 - Precedence – относительная значимость дейтаграммы. Большее значение соответствует большему приоритету;
3 – Delay – 0 – нормальная задержка при обработке, 1 – низкое значение задержки;
4 – Throughput. Скорость передачи. 0 – нормальная, 1 – высокая скорость;
5 – Reliability. Надежность. 0 – нормальная, 1 – высокая надежность;
6 – 7 – резерв.
Это поле определяет правила обработки дейтаграммы при передаче через сети. Иногда правила противоречат друг другу. Например, низкая задержка противоречит высокой надежности. Стандарты разрешают эти противоречия.
Total length – размер дейтаграммы. Размер ограничен 65535 байтами.
Identification – поле, используемое при фрагментации. Это поле одинаково для всех фрагментов одной дейтаграммы.
Flags – битовое поле, тоже используется при фрагментации:
0 – резерв;
1 – DF – 0 – можно фрагментировать, 1 – нельзя фрагментировать;
2 – MF – 0 – последний фрагмент, 1 – не последний фрагмент.
Fragment offset – номер фрагмента.
Объединяются дейтаграммы с одинаковыми полями Identification, Source address, Destination address, protocol.
TTL – time to live – время жизни дейтаграммы. Если 0, то дейтаграмма уничтожается. Каждый модуль протокола уменьшает значение этого поля на число секунд, затраченных на обработку. Цель этого поля – уничтожать «заблудившиеся» дейтаграммы.
Protocol – номер протокола верхнего уровня. Для TCP – 6, для UDP – 17.
Header checksum – контрольная сумма.
Source address и destination address – IP-адреса источника и получателя.
Options – содержит дополнительные параметры протокола.
Padding – выравнивает заголовок до границы 32-битного слова.
7.2.2. IP-адресация
Каждый IP-адрес состоит из двух частей: адреса сети и адреса хоста в этой сети. Существует 5 форматов адреса, отличающихся по числу битов, отводимых для адреса сети и хоста. Эти форматы определяют классы адресов отA до D.
Класс определяют первые три бита.
0 |
7 - сеть |
24 – хост |
Класс A |
||||||
1 |
0 |
14 – сеть |
16 - хост |
Класс B |
|||||
1 |
1 |
0 |
21 – сеть |
8 – хост |
Класс С |
||||
1 |
1 |
1 |
0 |
28 – групповой адрес |
Класс D |
||||
1 |
1 |
1 |
1 |
0 |
Зарезервировано |
Класс Е |
|||
Уникальность адресов обеспечивается их централизованным назначением.
В классе А число сетей ограничено126 (0 и 127 – зарезервированы). Это устаревшая структура.
В классе В число сетей 16 382. Адреса сетей такого класса также сейчас не предоставляются.
В классе С число сетей равно 2 097 150. При этом число хостов может быть не более 254. Самый распространенный в настоящее время класс сетей. Но и он истощается.
Поэтому введена дополнительная иерархия – адрес хоста может быть разделен на адрес подсети и адрес хоста в подсети.
Для определения фактической границы между адресом подсети и хоста используется маска подсети, маскирующая единицами номера сети и подсети и содержащая нули в позициях номера хоста.
Посмотрим, как используется маска подсети.
Предположим, что есть сеть класса В с адресом 190.50.0.0 и маска подсети равна 255.255.255.0.
190.50.0.0
190.50.1.4
Н1
190.50.1.1
Н2
190.50.1.2
Н3
190.50.2.1
Н4
190.50.2.2
190.50.2.3
Пусть, например, хосту Н1 надо обратиться к хосту Н3. Н1 берет адрес Н3 190.50.2.1 и накладывает на него маску подсети 255.255.255.0, получая результат 190.50.2.0. Поскольку Н1 находится в подсети 190.50.1.0, то Н3 напрямую недоступен. Сверившись со своей маршрутной таблицей Н1 обнаруживает, что следующий адрес на пути к Н3 – это R1.
Н1 отображает IP-адрес R1 на его физический адрес и посылает R1 дейтаграмму. R1 ищет адрес назначения в своей маршрутной таблице, пользуясь той же маской подсети, и определяет местонахождение Н3 в подсети, соединенной с его интерфейсом 190.50.2.3.
R1 доставляет дейтаграмму хосту Н3, получив предварительно его физический адрес по IP-адресу.
Пусть теперь хост Е из внешней сети хочет отправить дейтаграмму Н3. Поскольку 190.50.2.1 – адрес класса В, то маршрутизатору сети, где находится этот хост Е, известно, что Н3 находится в сети 190.50.0.0. Т. к. шлюзом в эту сеть является R2, то дейтаграмма от Е в конце концов дойдет до R2.
R2 получив дейтаграмму, накладывает маску, выделяет адрес подсети 190.50.2.0, определяет R1 в качестве следующего узла на пути к Н3 и посылает R1 дейтаграмму, которую R1 отправляет Н3.