Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Протокол Ethernet.....................................................................................................................................5
Принцип работы Ethernet.....................................................................................................................5
Подуровни LLC и MAC........................................................................................................................5
Подуровень MAC................................................................................................................................6
Управление доступом к среде передачи данных............................................................................8
MAC-адрес: идентификация Ethernet...............................................................................................9
Обработка кадров............................................................................................................................10
Атрибуты кадра Ethernet.....................................................................................................................11
Инкапсуляция Ethernet....................................................................................................................11
Размер кадра Ethernet.....................................................................................................................12
Поля кадра Ethernet.........................................................................................................................13
MAC Ethernet........................................................................................................................................13
MAC-адреса и шестнадцатеричная система счисления................................................................14
MAC-адрес одноадресной рассылки..............................................................................................15
MAC-адрес широковещательной рассылки...................................................................................16
MAC-адрес многоадресной рассылки............................................................................................16
MAC и IP................................................................................................................................................16
Сквозное подключение, MAC- и IP-адреса....................................................................................17
Протокол разрешения адресов (ARP).....................................................................................................18
ARP........................................................................................................................................................18
Функции ARP....................................................................................................................................18
Принцип работы ARP...........................................................................................................................19
Проблемы ARP.....................................................................................................................................21
Коммутаторы LAN....................................................................................................................................22
Коммутация..........................................................................................................................................22
Таблица MAC-адресов коммутатора..............................................................................................23
Настройки дуплексного режима.....................................................................................................24
Функция Auto-MDIX.........................................................................................................................25
Способы пересылки кадра на коммутаторах Cisco.......................................................................26
Коммутация без буферизации........................................................................................................26
Буферизация памяти на коммутаторах..........................................................................................27
Коммутация уровня 3..........................................................................................................................28
Сравнение коммутации уровня 2 и уровня 3.................................................................................28
Технология Cisco Express Forwarding..............................................................................................28
Типы интерфейсов уровня 3............................................................................................................30
Конфигурация маршрутизируемого порта на коммутаторе уровня 3.........................................31
Заключение..........................................................................................................................................31
Протоколы сетевого уровня....................................................................................................................33
Сетевой уровень в процессе передачи данных.................................................................................33
Сетевой уровень..............................................................................................................................33
Сетевой уровень в процессе передачи данных.............................................................................33
Характеристики IP-протокола.............................................................................................................34
IP: без установления соединения...................................................................................................34
IP: доставка с максимальными усилиями......................................................................................36
IP: независимость от среды.............................................................................................................37
Инкапсуляция IP...............................................................................................................................38
Пакет IPv4.............................................................................................................................................38
Пакет IPv6.............................................................................................................................................40
Маршрутизация.......................................................................................................................................44
Методы маршрутизации узлов...........................................................................................................44
Решение о перенаправлении узла.................................................................................................44
Шлюз по умолчанию.......................................................................................................................45
Таблица маршрутизации узла IPv4.................................................................................................46
Записи маршрутизации узла IPv4...................................................................................................47
Таблицы маршрутизации маршрутизатора.......................................................................................48
Решение о пересылке пакетов маршрутизатора...........................................................................48
Таблица маршрутизации маршрутизатора IPv4............................................................................49
Записи таблицы маршрутизации с прямым подключением........................................................50
Записи таблицы маршрутизации удалённой сети.........................................................................52
Адрес следующего перехода..........................................................................................................52
Протоколы транспортного уровня..........................................................................................................54
Передача данных.................................................................................................................................54
Значение транспортного уровня.....................................................................................................54
Мультиплексирование сеансов связи............................................................................................55
Надёжность транспортного уровня................................................................................................56
Протокол TCP....................................................................................................................................57
Протокол UDP...................................................................................................................................58
Соответствующий протокол транспортного уровня для соответствующего приложения.........59
Общие сведения о протоколах TCP и UDP.........................................................................................60
Краткое описание протокола TCP...................................................................................................60
Значение протокола TCP.................................................................................................................61
Краткое описание протокола UDP..................................................................................................62
Значение протокола UDP................................................................................................................63
Разделение нескольких каналов связи..........................................................................................63
Адресация портов TCP и UDP..........................................................................................................64
Сегментация TCP и UDP...................................................................................................................67
Протоколы TCP и UDP..............................................................................................................................68
Обмен данными по TCP.......................................................................................................................68
Надёжная доставка по TCP..............................................................................................................68
Процессы TCP-сервера....................................................................................................................68
Установление TCP-соединения и его завершение........................................................................69
Анализ трёхстороннего рукопожатия TCP......................................................................................70
Анализ завершения сеанса TCP......................................................................................................71
Надёжность и управление потоком...................................................................................................72
Надёжность TCP: упорядоченная доставка....................................................................................72
Надёжность TCP: подтверждение и размер окна..........................................................................73
Надёжность TCP: потеря данных и повторная передача..............................................................75
Управление потоком TCP: размер окна и подтверждения...........................................................75
Управление потоком TCP: предотвращение перегрузок..............................................................76
Обмен данными с использованием UDP...........................................................................................78
Низкая нагрузка UDP по сравнению с надёжностью.....................................................................78
Разборка UDP-датаграммы.............................................................................................................78
Процессы и запросы UDP-сервера..................................................................................................79
Процессы UDP-клиента...................................................................................................................79
TCP или UDP?........................................................................................................................................80
Приложения, использующие TCP...................................................................................................80
Приложения, использующие UDP..................................................................................................80
Сетевые IPv4-адреса................................................................................................................................82
Структура IPv4-адресов.......................................................................................................................82
Двоичное представление чисел.....................................................................................................82
Двоичная система исчисления........................................................................................................83
Преобразование двоичного адреса в десятичный........................................................................84
Преобразование из десятичного формата в двоичный................................................................84
Маска подсети IPv4..............................................................................................................................85
Сетевая и узловая части IPv4-адреса..............................................................................................85
Анализ длины префикса..................................................................................................................86
Сетевой адрес, адрес узла и широковещательный адрес сети IPv4............................................86
Первый и последний адреса узлов................................................................................................87
Побитовая операция И....................................................................................................................88
Значение операции И......................................................................................................................88
Одноадресная, широковещательная и многоадресная рассылка IPv4...........................................89
Присвоение узлу статического IPv4-адреса...................................................................................89
Присвоение узлу динамического IPv4-адреса...............................................................................89
Одноадресная передача.................................................................................................................90
Широковещательная передача......................................................................................................91
Многоадресная передача...............................................................................................................92
Типы IPv4-адресов...............................................................................................................................92
Сетевые IPv6-адреса................................................................................................................................97
Проблемы с IPv4..................................................................................................................................97
Потребность в IPv6...........................................................................................................................97
Совместное использование протоколов IPv4 и IPv6.....................................................................98
Адресация IPv6.....................................................................................................................................99
Шестнадцатеричная система исчисления......................................................................................99
Представление IPv6-адресов........................................................................................................100
Правило 1: пропуск начальных нулей..........................................................................................101
Правило 2: пропуск всех нулевых блоков....................................................................................101
Типы IPv6-адресов.............................................................................................................................102
Разбиение IPv4-сети на подсети...........................................................................................................105
Сегментация сети...............................................................................................................................105
Причины разбиения на подсети...................................................................................................105
Обмен данными между подсетями.............................................................................................105
Значимость разбиения IP-сети на подсети......................................................................................106
Разбиение IPv4-сети на подсети.......................................................................................................107
Базовое разбиение на подсети.....................................................................................................107
Используемые подсети.................................................................................................................108
Формулы разделения на подсети.................................................................................................108
Определение маски подсети............................................................................................................109
Разбиение на подсети на основе требований узлов...................................................................109
Разбиение на подсети на основе требований сетей...................................................................109
Преимущества разбиения на подсети с использованием маски переменной длины.................112
Традиционное разбиение ненужных адресов на подсети.........................................................112
Маски подсетей переменной длины (VLSM)...............................................................................112
Базовая модель VLSM....................................................................................................................113
VLSM на практике...........................................................................................................................113
Схема VLSM....................................................................................................................................114
Протокол Ethernet
10 Мбит/с
100 Мбит/с
Как показано на рис. 1, стандарты Ethernet регламентируют как протоколы уровня 2, так и
технологии уровня 1. Для протоколов второго уровня, как и в случае со всеми стандартами группы
IEEE 802, технология Ethernet полагается на работу этих двух отдельных подуровней канального
уровня, а также на подуровни управления логическим каналом (LLC) и MAC.
Подуровень LLC
Подуровень LLC технологии Ethernet обеспечивает связь между верхними и нижними уровнями.
Как правило, это происходит между сетевым программным обеспечением и аппаратным
обеспечением устройства. Подуровень LLC использует данные сетевых протоколов, которые
обычно представлены в виде пакета IPv4, и добавляет управляющую информацию, чтобы помочь
доставить пакет к узлу назначения. LLC используется для связи с верхними уровнями приложений
и перемещает пакет для доставки на нижние уровни.
Подуровень MAC
MAC представляет собой более низкий подуровень канального уровня. MAC реализуется
аппаратно — обычно в сетевой интерфейсной плате компьютера. Спецификации содержатся в
стандартах IEEE 802.3. На рис. 2 приведен список общих стандартов IEEE Ethernet.
Подуровень MAC
Как показано на рисунке, подуровень MAC Ethernet выполняет две основные задачи:
Инкапсуляция данных
Инкапсуляция данных
Процесс инкапсуляции данных включает в себя сборку кадра перед его отправкой и разборку
кадра после его получения. При формировании кадра на уровне MAC к PDU сетевого уровня
добавляются заголовок и концевик.
Использование кадров помогает при передаче битов, так как они помещаются в среду передачи
данных, а также при группировании битов на принимающем узле.
Второй функцией подуровня MAC является управление доступом к среде передачи данных.
Управление доступом к среде передачи данных отвечает за размещение кадров в этой среде и
удаление из нее кадров. Судя по названию этой функции, она позволяет управлять доступом к
среде передачи данных. Этот подуровень напрямую взаимодействует с физическим уровнем.
Процесс CSMA используется для того, чтобы сначала определить, передаётся ли сигнал в среде.
Если в среде обнаружен сигнал несущей частоты, исходящий от другого узла, это значит, что в
данный момент другое устройство осуществляет передачу данных. Если среда занята, когда
устройство пытается передать данные, оно подождёт и повторит попытку позже. Если сигнал
несущей частоты не обнаружен, данное устройство начнёт передачу данных. Существует
вероятность возникновения сбоя процесса CSMA, в результате чего два устройства будут
передавать данные одновременно. Это называется коллизией данных. В этом случае данные,
отправленные обоими устройствами, будут повреждены, из-за чего потребуется их повторная
отправка.
Как показано на рисунке, CSMA обычно используется совместно с одним из методов разрешения
конфликтов в среде. К двум наиболее широко распространённым методам относятся следующие.
Обнаружение коллизий/CSMA
Тем не менее, для беспроводных соединений в среде локальной сети возможность возникновения
таких коллизий всё еще необходимо учитывать. Устройства в беспроводной локальной сети
используют метод доступа к среде передачи данных с контролем несущей и предотвращением
коллизий (CSMA/CA).
При использовании CSMA/CA устройство проверяет среду передачи данных на наличие в ней
сигнала данных. Если среда не загружена, данное устройство отправляет по среде уведомление о
намерении использовать её для передачи данных. Затем устройство отправляет данные. Этот
способ используется беспроводными сетевыми технологиями стандарта 802.11.
Как уже упоминалось ранее, основная логическая топология Ethernet — это шина с
множественным доступом. Каждое сетевое устройство подключено к одной и той же общей среде
передачи данных, и все узлы получают все передаваемые кадры. Проблема заключается в том,
что если все устройства принимают все кадры, как каждое отдельное устройство может
определить, является ли оно запланированным получателем, без дополнительной необходимости
в обработке и декапсуляции кадра для достижения IP-адреса? Ситуация усложняется ещё больше
в крупных сетях с высоким объёмом трафика, в которых пересылается значительное количество
кадров.
Для предотвращения чрезмерных нагрузок, возникающих при обработке каждого кадра, был
создан уникальный идентификатор — MAC-адрес, который используется для определения
фактических узлов источника и назначения в пределах сети Ethernet. Независимо от типа
используемой сети Ethernet MAC-адресация обеспечила метод идентификации устройств на более
низком уровне модели OSI. Возможно, вы помните, что MAC-адресация добавляется как часть
PDU уровня 2. MAC-адрес Ethernet — это 48-битное двоичное значение, выраженное в виде 12
шестнадцатеричных чисел (4 бита для каждой шестнадцатеричной цифры).
Структура MAC-адресов
Институт IEEE требует от поставщиков соблюдения двух простых правил, как показано на рисунке:
Всем MAC-адресам с одним и тем же идентификатором OUI должно быть присвоено уникальное
значение (код производителя или серийный номер), которое указывается в виде последних 3
байтов.
Обработка кадров
MAC-адрес часто называется аппаратным адресом (BIA), поскольку исторически сложилось так,
что он записывается в ПЗУ (постоянное запоминающее устройство) на сетевой интерфейсной
плате. Это означает, что адрес вносится в чип ПЗУ на аппаратном уровне, и его изменение с
помощью программного обеспечения невозможно.
00-05-9A-3C-78-00
00:05:9A:3C:78:00
0005.9A3C.7800
При запуске компьютера сетевая плата вначале копирует MAC-адрес из ПЗУ в ОЗУ. Если
устройство пересылает сообщение в сеть Ethernet, оно добавляет к пакету информацию
заголовка. Информация заголовка содержит MAC-адреса источника и назначения. Исходное
устройство отправляет данные по сети.
Каждая сетевая плата в сети просматривает информацию (на подуровне MAC), чтобы узнать,
соответствует ли MAC-адрес назначения в кадре MAC-адресу физического устройства в ОЗУ. Если
не удаётся обнаружить совпадения, устройство отклоняет кадр. Когда кадр достигает назначения,
в котором MAC-адрес сетевой платы соответствует MAC-адресу получателя кадра, сетевая плата
передаёт кадр на верхние уровни OSI, где происходит процесс деинкапсуляции
На канальном уровне структура кадра практически идентична для всех скоростей Ethernet.
Структура кадра Ethernet добавляет заголовки и концевики вокруг PDU третьего уровня для
последующей инкапсуляции отправляемого сообщения.
Как заголовок, так и концевик Ethernet имеют несколько разделов информации, которые
используются протоколом Ethernet. Каждый раздел кадра называется полем. Как показано на рис.
2, существуют два стиля формирования кадров Ethernet:
стандарт Ethernet IEEE 802.3, который несколько раз обновлялся в соответствии с новыми
технологиями;
Оба стандарта Ethernet II и IEEE 802.3 определяют минимальный размер кадра как 64 байта, а
максимальный — 1518 байт. К этому количеству относятся все байты, начиная с поля «MAC-адрес
назначения» и заканчивая полем «Контрольная последовательность кадра (FCS)». Поля
«Преамбула» и «Начало разделителя кадра (SFD)» при описании размера кадра не включаются.
Любой кадр с длиной менее 64 байт считается «фрагментом коллизии», или «карликовым
кадром», и автоматически отклоняется принимающими станциями.
Стандарт IEEE 802.3ac, выпущенный в 1998 году, позволил увеличить максимальный допустимый
размер кадра до 1522 байт. Размер кадра был увеличен для использования технологии, которая
называется «виртуальной локальной сетью» (VLAN). Виртуальные локальные сети создаются в
пределах коммутируемой сети и будут рассматриваться при изучении одного из последующих
курсов. Кроме того, множество технологий, которые обеспечивают качество обслуживания (QoS),
используют поле «Приоритет пользователя», чтобы реализовать разные уровни обслуживания,
такие как приоритет обслуживания для передачи голосового трафика. На рисунке показаны поля,
содержащиеся в маркере 802.1Q VLAN.
Если размер передаваемого кадра меньше минимального значения или больше максимального
значения, получающее устройство сбрасывает такой кадр. Отброшенные кадры, скорее всего,
являются результатом коллизий или других нежелательных сигналов и, следовательно, считаются
недействительными.
Поле «MAC-адрес источника». Это поле (6 байт) определяет сетевую плату или
интерфейс, отправившие кадр.
Поле «Длина». В любом стандарте IEEE 802.3, используемом до 1997 года, поле «Длина»
определяет точную длину поля данных кадра. Позже оно используется как часть контрольной
последовательности кадра (FCS), чтобы обеспечить правильность получения сообщения. В
других случаях это поле используется, чтобы описывать, какой протокол более высокого
уровня присутствует. Если 2-октетное значение равно или превышает шестнадцатеричный
формат 0x0600 или десятичное число 1536, то содержимое поля «Данные» декодируется в
соответствии с указанным протоколом EtherType. Если же значение равно или менее
шестнадцатеричного формата 0x05DC или десятичного числа 1500, то поле «Длина»
позволяет обозначить использование формата кадра IEEE 802.3. Вот таким образом
различаются кадры Ethernet II и 802.3.
Поле «Данные». Это поле (46—1500 байт) содержит инкапсулированные данные из более
высокого уровня, который является универсальным PDU уровня 3, или, что используется
чаще, — пакетом IPv4. Длина всех кадров должна быть не менее 64 байт. В случае
инкапсуляции небольшого пакета используются дополнительные биты, которые называются
символами-заполнителями, для увеличения размера кадра до этого минимального значения.
MAC Ethernet
MAC-адреса и шестнадцатеричная система счисления
Если 8 бит (байт) — это общепринятая бинарная группа, двоичный код 00000000—11111111 может
быть представлен в шестнадцатеричной системе исчисления в качестве диапазона 00–FF. Чтобы
заполнить 8-битное представление, всегда отображаются ведущие нули. Например, двоичное
значение 0000 1010 показано в шестнадцатеричной системе как 0A.
Шестнадцатеричные преобразования
MAC-адрес одноадресной рассылки — это уникальный адрес, который используется при отправке
кадра от одного передающего устройства к одному устройству назначения.
В примере, приведённом на рисунке, узел с IP-адресом 192.168.1.5 (источник) запрашивает веб-
страницу с сервера с IP-адресом 192.168.1.200. Для отправки и приёма одноадресного пакета в
заголовке IP-пакета должен указываться IP-адрес назначения. Кроме того, в заголовке кадра
Ethernet должен присутствовать MAC-адрес назначения. IP-адрес и MAC-адрес — это данные для
доставки пакета одному узлу.
MAC и IP
Главному устройству присваиваются два основных адреса:
При этом в каждом канале на своём пути IP-пакет инкапсулируется в кадре в зависимости от
используемой технологии канала передачи данных, которая связана с этим каналом, например,
технологии Ethernet. Оконечные устройства в сети Ethernet не принимают и не обрабатывают
кадры на основе IP-адресов — вместо этого кадр принимается и обрабатывается на основе MAC-
адресов.
В сетях Ethernet MAC-адреса используются для определения (на более низком уровне) узлов
источника и назначения. Когда подключённый к сети Ethernet узел начинает обмен данными, он
рассылает кадры со своим MAC-адресом в качестве источника и MAC-адресом предполагаемого
получателя в качестве назначения. Все узлы, которые получают кадр, будут считывать MAC-адрес
назначения. Если MAC-адрес назначения совпадёт с MAC-адресом, установленным на сетевой
интерфейсной плате узла, только после этого узел начнёт обработку сообщения.
На рис. 2 показано, как происходит инкапсуляция кадров на основе технологии, используемой для
фактического канала.
ARP
Следует помнить, что у каждого узла в IP-сети есть как МАС-адрес, так и IP-адрес. Чтобы
отправлять данные, узел должен использовать оба адреса. Узел должен использовать
собственные МАС- и IP-адреса в полях источника, а также предоставить МАС- и IP-адреса для
назначения. Несмотря на то, что IP-адрес назначения будет предоставлен более высоким уровнем
OSI, отправляющему узлу необходим способ найти MAC-адрес назначения для данного канала
Ethernet. В этом заключается назначение протокола ARP.
Функции ARP
Чтобы кадр можно было поместить в среду передачи данных локальной сети, ему необходим
MAC-адрес назначения. Когда пакет отправляется к канальному уровню для инкапсуляции в кадре,
узел обращается к таблице в его памяти, чтобы найти адрес канального уровня, который
сопоставлен с IPv4-адресом назначения. Эта таблица называется таблицей ARP или кэшем ARP.
Таблица ARP хранится в оперативной памяти устройства.
Каждая запись или строка в таблице ARP связывает IP-адрес с MAC-адресом. Мы называем
отношения между двумя значениями сопоставлением — это означает, что IP-адрес можно найти в
таблице и с его помощью определить соответствующий MAC-адрес. Таблица ARP временно
сохраняет (кэширует) сопоставление устройств в локальной сети.
Чтобы начать процесс, узел передачи пытается определить MAC-адрес, сопоставленный с IPv4-
адресом назначения. Если это сопоставление в таблице будет найдено, узел использует MAC-
адрес в качестве MAC-адреса назначения в кадре, который инкапсулирует пакет IPv4. Затем кадр
кодируется в сетевой среде передачи данных.
Таблица ARP сохраняется динамически. Существуют два способа, с помощью которых устройство
может собирать MAC-адреса. Первый способ — мониторинг трафика, который появляется в
сегменте локальной сети. Когда узел получает кадры из среды передачи данных, он может
зарегистрировать IP- и MAC-адреса источника в виде сопоставления в таблице ARP. По мере
передачи кадров по сети устройство заполняет таблицу ARP, добавляя пары адресов.
Второй способ получения пары адресов для устройства — отправка запроса ARP, как показано на
рисунке. Запрос ARP представляет собой широковещательную рассылку уровня 2 на все
устройства в локальной сети Ethernet. Запрос ARP содержит IP-адрес узла назначения и MAC-
адрес широковещательной рассылки, FFFF.FFFF.FFFF. Поскольку это широковещательная
рассылка, все узлы в локальной сети Ethernet получат её и обработают содержимое. Ответ
поступит от того узла, у которого IP-адрес совпадает с IP-адресом в запросе ARP. Ответ будет
представлен в виде кадра одноадресной рассылки, который содержит MAC-адрес,
соответствующий IP-адресу в запросе. Затем этот ответ будет использован для добавления новой
записи в таблицу ARP отправляющего узла.
К записям в таблице ARP добавляются временные метки — для этого используется практически
такая же процедура, что и при добавлении временных меток для записей таблиц MAC-адресов в
коммутаторах. Если к моменту истечения действия временной отметки устройство не получит кадр
от какого-либо определённого устройства, запись для этого устройства будет удалена из таблицы
ARP.
Кроме того, в таблицу ARP можно добавлять статические записи сопоставления, но это
выполняется не часто. Срок действия статических записей в таблице ARP не истекает со
временем, поэтому их необходимо удалять вручную.
Как ведет себя узел, когда ему необходимо создать кадр, а кэш ARP не содержит сопоставления
IP-адреса с MAC-адресом назначения? Он отправляет запрос ARP!
Если на запрос ARP не отвечает ни одно устройство, пакет отбрасывается, поскольку создание
кадра невозможно. Информация об этом сбое инкапсуляции передаётся на верхние уровни
устройства. Если устройство является промежуточным (например, маршрутизатором), верхние
уровни могут отправить ответ на узел источника с ошибкой в пакете ICMPv4.
Все кадры должны быть доставлены на узел в сегменте локальной сети. Если узел назначения
IPv4 находится в локальной сети, кадр будет использовать MAC-адрес данного устройства в
качестве MAC-адреса назначения.
Если узел назначения IPv4 не находится в локальной сети, узлу источника необходимо доставить
кадр к интерфейсу маршрутизатора, который является шлюзом, или следующим переходом,
используемым для достижения этого узла назначения. Исходный узел будет использовать MAC-
адрес шлюза в качестве адреса назначения для кадров, которые содержат пакет IPv4,
адресованный узлам в других сетях.
В случае если запись шлюза отсутствует в таблице, обычный процесс ARP отправит запрос ARP
для получения MAC-адреса, связанного с IP-адресом интерфейса маршрутизатора.
Для каждого устройства таймер кэша ARP удаляет записи ARP, которые не используются в
течение указанного периода времени. Этот период может быть разным в зависимости от
устройства и его операционной системы. Например, некоторые операционные системы Windows
хранят записи кэша ARP в течение 2 минут. Если в течение этого периода запись используется
повторно, таймер ARP будет увеличен для неё до 10 минут.
Кроме того, можно использовать некоторые команды, чтобы вручную удалить все или некоторые
записи из таблицы ARP. После удаления записи процесс отправки запроса ARP и получения
ответа ARP необходимо задействовать повторно, чтобы зарегистрировать сопоставление в
таблице ARP.
Проблемы ARP
На рисунке показаны две потенциальные проблемы, которые могут возникнуть при использовании
ARP.
Безопасность
В некоторых случаях использование протокола ARP может представлять определённый риск для
безопасности. ARP-спуфинг (также называемый «отравлением» ARP-кэша) используется
злоумышленниками, чтобы с помощью фальшивых запросов ARP добавить в сеть заведомо
неправильную связь с MAC-адресом. Злоумышленник фальсифицирует MAC-адрес устройства,
после чего кадры могут отправляться на неправильный адрес назначения.
Конфигурация статических связей ARP вручную — это один из способов предотвращения ARP-
спуфинга. На некоторых устройствах можно указать допустимые MAC-адреса, и в результате
доступ к сети смогут получить только указанные устройства.
Устранение неполадок
Коммутаторы LAN
Коммутация
Следует помнить, что логическая топология сети Ethernet — это шина с множественным доступом,
в которой все устройства используют общий доступ к одной и той же среде передачи данных. Эта
логическая топология определяет, как узлы в сети просматривают и обрабатывают кадры,
отправляемые и получаемые в этой сети. Тем не менее, в настоящее время практически во всех
сетях Ethernet используется физическая топология типа «звезда» или «расширенная звезда». Это
означает, что в большинстве сетей Ethernet оконечные устройства, как правило, подключаются к
коммутатору LAN уровня 2 по принципу «точка-точка».
Коммутатор LAN уровня 2 осуществляет коммутацию и фильтрацию только на основе МАС-адреса
канального уровня модели OSI. Коммутатор полностью прозрачен для сетевых протоколов и
пользовательских приложений. Коммутатор уровня 2 создаёт таблицу МАС-адресов, которую в
дальнейшем использует для принятия решений о пересылке пакетов. В процессе передачи данных
между независимыми IP-подсетями коммутаторы уровня 2 полагаются на маршрутизаторы.
Коммутаторы используют MAC-адреса для передачи данных по сети через свою коммутирующую
матрицу на соответствующий порт в направлении узла назначения. Коммутирующая матрица
представляет собой интегрированные каналы и дополняющие средства машинного
программирования, что позволяет контролировать пути прохождения данных через коммутатор.
Чтобы коммутатор смог понять, какой порт необходимо использовать для передачи кадра
одноадресной рассылки, сначала ему необходимо узнать, какие узлы имеются на каждом из его
портов.
Коммутатор определяет способ обработки входящих кадров, используя для этого собственную
таблицу МАС-адресов. Он создаёт собственную таблицу MAC-адресов, добавляя в нее MAC-
адреса узлов, которые подключены к каждому из его портов. После внесения MAC-адреса для того
или иного узла, подключённого к определённому порту, коммутатор сможет отправлять
предназначенный для этого узла трафик через порт, который сопоставлен с узлом для
последующих передач.
Если коммутатор получает кадр данных, для которого в таблице нет MAC-адреса назначения, он
пересылает этот кадр на все порты, за исключением того, на котором этот кадр был принят. Если
от узла назначения поступает ответ, коммутатор вносит MAC-адрес узла в таблицу адресов,
используя для этого данные из поля адреса источника кадра. В сетях с несколькими
подключёнными коммутаторами в таблицы MAC-адресов вносятся несколько MAC-адресов портов,
соединяющих коммутаторы, которые отражают элементы за пределами узла. Как правило, порты
коммутатора, используемые для подключения двух коммутаторов, имеют несколько MAC-адресов,
внесённых в соответствующую таблицу.
Шаг 2. Коммутатор вводит МАС-адрес источника и порт коммутатора, получившего кадр, в таблицу
МАС-адресов.
Шаг 6. Теперь коммутатор может пересылать кадры между устройствами источника и назначения
без лавинной рассылки, поскольку у него есть записи в таблице МАС-адресов, которые
идентифицируют соответствующие порты.
Для портов Fast Ethernet и 10/100/1000 по умолчанию выбирается параметр auto. Для портов
100BASE-FX по умолчанию выбирается параметр full. Порты 10/100/1000 функционируют либо в
полудуплексном, либо в полнодуплексном режиме, когда работают со скоростью 10 или 100
Мбит/с, и только в полнодуплексном, когда работают со скоростью 1000 Мбит/с.
Функция Auto-MDIX
При использовании функции Auto-MDIX коммутатор определяет необходимый тип кабеля для
медных подключений Ethernet и соответствующим образом настраивает интерфейсы. Таким
образом, можно использовать либо перекрёстный, либо прямой кабель для подключений к
медному порту 10/100/1000 коммутатора независимо от типа устройства на другом конце
соединения.
Коммутация с буферизацией
При коммутации с буферизацией, когда коммутатор получает кадр, он хранит данные в буфере до
тех пор, пока не будет получен весь кадр. Во время сохранения коммутатор анализирует кадр,
чтобы получить информацию о его адресате. При этом коммутатор также выполняет проверку на
наличие ошибок, используя концевую часть кадра Ethernet циклического контроля избыточности
(CRC).
При CRC используется математическая формула, основанная на количестве бит (единиц) в кадре,
что позволяет определить, есть ли ошибка в полученном кадре. После подтверждения
целостности кадра он перенаправляется через соответствующий порт к узлу назначения. Если же
в кадре обнаружена ошибка, коммутатор отклонит его. Отклонение кадров с ошибками позволяет
уменьшить количество пропускной способности, потребляемой повреждёнными данными.
Коммутация с буферизацией необходима для анализа качества обслуживания (QoS) в
конвергированных сетях, в которых требуется классификация кадра для назначения приоритетов
проходящего трафика. Например, при передаче речи по IP потоки данных должны иметь больший
приоритет, чем трафик, используемый для просмотра веб-страниц.
Как уже упоминалось, коммутатор анализирует некоторую часть пакета или весь пакет перед его
пересылкой на узел назначения. Коммутатор Ethernet может использовать метод буферизации для
хранения кадров до их пересылки. Кроме того, буферизацию можно использовать в том случае,
если порт назначения занят по причине его перегрузки, и коммутатор сохраняет кадр до тех пор,
пока не появится возможность его передачи.
Как показано на рисунке, существуют два метода буферизации памяти: буферизация на базе
портов и буферизация совместного доступа к памяти
При буферизации совместного доступа к памяти все кадры помещаются в буфер, который
является общим для всех портов коммутатора. Количество буферной памяти, которое необходимо
каждому порту, выделяется динамически. Кадры в буфере динамически связываются с портом
назначения. Это позволяет получать пакет на один порт и затем пересылать его на другой порт
без перемещения в другую очередь.
Коммутация уровня 3
Сравнение коммутации уровня 2 и уровня 3
Следует помнить, что коммутатор LAN уровня 2 выполняет коммутацию и фильтрацию, используя
только MAC-адрес (уровень 2) канального уровня OSI, и при этом зависит от маршрутизаторов для
передачи данных между независимыми IP-подсетями (см. рис. 1).
Как показано на рис. 2, коммутатор уровня 3 (например, Catalyst 3560) функционирует подобно
коммутатору уровня 2 (например, Catalyst 2960), но вместо использования только одного MAC-
адреса уровня 2 для принятия решений о пересылке коммутатор уровня 3 может также
использовать также IP-адрес. Вместо того чтобы определять, какие MAC-адреса связаны с каждым
из его портов, коммутатор уровня 3 может также установить, какие IP-адреса связаны с его
интерфейсами. Это позволяет коммутатору уровня 3 перенаправлять трафик по сети, также
используя данные об IP-адресе.
Коммутаторы уровня 3 также могут выполнять функции маршрутизации уровня 3, тем самым
снижая необходимость установки выделенных маршрутизаторов в локальной сети. Поскольку в
коммутаторах уровня 3 установлено специальное аппаратное обеспечение для коммутации, они,
как правило, могут направлять данные со скоростью самой коммутации.
По сути, CEF отделяет обычную строгую взаимозависимость между процессами принятия решений
уровня 2 и уровня 3. Замедляет пересылку IP-пакетов постоянное взаимное обращение между
структурными компонентами уровня 2 и 3 внутри сетевого устройства. Таким образом, ускорение
пересылки пакетов происходит в том объёме, в каком возможно отделение структур данных
уровней 2 и 3.
Двумя основными компонентами функционирования технологии CEF являются:
Таблицы смежности
FIB обновляется при появлении изменений в сети и содержит все маршруты, известные на тот
момент.
Таблицы смежности поддерживают адреса следующего перехода уровня 2 для всех записей FIB.
Таблица смежности может быть создана независимо от таблицы FIB, что позволяет
создавать обе таблицы без коммутации каких-либо обрабатываемых пакетов.
Как было показано ранее, интерфейс SVI для сети VLAN (VLAN1), используемой по умолчанию,
должен быть активирован для обеспечения подключения IP-узла к коммутатору и возможности
удалённого администрирования коммутатора. Интерфейсы SVI также должны быть настроены для
маршрутизации между сетями VLAN. Как уже упоминалось, SVI — это логические интерфейсы,
настроенные для определённых сетей VLAN; для маршрутизации между двумя или более сетями
VLAN каждая из них должна иметь отдельный активированный интерфейс SVI.
Заключение
На сегодняшний день Ethernet является наиболее широко используемой технологией для
локальных сетей. Это семейство сетевых технологий, которые регламентируются стандартами
IEEE 802.2 и 802.3. Стандарты Ethernet регламентируют как протоколы второго уровня, так и
технологии первого уровня. Для протоколов второго уровня, как и в случае со всеми стандартами
группы IEEE 802, технология Ethernet полагается на работу этих двух отдельных подуровней
канального уровня, а также на подуровни управления логическим каналом (LLC) и MAC.
На канальном уровне структура кадра практически идентична для всех скоростей Ethernet.
Структура кадра Ethernet добавляет заголовки и концевики вокруг PDU третьего уровня для
последующей инкапсуляции отправляемого сообщения.
Существует два стиля формирования кадров Ethernet: стандарт Ethernet IEEE 802.3 и стандарт
Ethernet DIX, который теперь называется Ethernet II. Наиболее существенным различием между
этими двумя стандартами является добавление в стандарте 802.3 начала разделителя кадра
(SFD) и изменение поля «Тип» на поле «Длина». Ethernet II — это формат кадра Ethernet,
используемый в сетях TCP/IP. Являясь результатом реализации набора стандартов IEEE 802.2/3,
кадр Ethernet предоставляет функции адресации и проверки ошибок.
Адресация Ethernet уровня 2 поддерживает одноадресный, многоадресный и широковещательный
режимы передачи данных. Ethernet использует протокол разрешения адресов (ARP) для
определения MAC-адресов и их сопоставления с известными адресами сетевого уровня.
У каждого узла в IP-сети есть МАС- и IP-адреса. Узел должен использовать собственные МАС- и
IP-адреса в полях источника, а также предоставить МАС- и IP-адреса для назначения. Несмотря
на то, что IP-адрес назначения будет предоставлен более высоким уровнем OSI, отправляющему
узлу необходимо найти MAC-адрес назначения для данного канала Ethernet. В этом заключается
назначение протокола ARP.
Коммутаторы уровня 3 также могут выполнять функции маршрутизации уровня 3, тем самым
снижая необходимость установки выделенных маршрутизаторов в локальной сети. Поскольку в
коммутаторах уровня 3 установлено специальное аппаратное обеспечение для коммутации, они,
как правило, могут направлять данные со скоростью самой коммутации.
Протоколы сетевого уровня
В отличие от транспортного уровня (уровень 4 OSI), который управляет передачей данных между
процессами, запущенными на каждом узле, протоколы сетевого уровня указывают структуру
пакета и тип обработки, которые используются для перемещения данных от одного узла к другому.
Функционирование без учета данных, передаваемых в каждом пакете, позволяет сетевому уровню
передавать пакеты для нескольких типов коммуникации между несколькими узлами.
Существует несколько протоколов сетевого уровня, но, как правило, используются только
следующие два.
Среди других устаревших протоколов сетевого уровня, которые не нашли широкого применения,
можно выделить следующие.
Характеристики IP-протокола
IP — это сервис сетевого уровня, который реализовывается набором протоколов TCP/IP.
IP был разработан как протокол с низкой нагрузкой. Он обеспечивает только те функции, которые
необходимы для доставки пакета от узла источника к узлу назначения по взаимосвязанной
системе сетей. Этот протокол не предназначен для мониторинга и управления потоком пакетов.
При необходимости эти функции выполняют другие протоколы на других уровнях.
Основная роль сетевого протокола — пересылка пакетов между узлами при наименьшей нагрузке
на сеть. Сетевой уровень не имеет отношения (и даже не обладает какой-либо информацией) к
типу обмена данными, который содержится внутри пакета. IP является протоколом без
установления соединения, а это означает, что перед отправкой данных выделенное сквозное
соединение не устанавливается. По своей сути обмен данными без установления соединения
аналогичен отправке письма без предварительного уведомления получателя.
Как показано на рис. 1, почтовая служба использует информацию, указанную на конверте, чтобы
доставить письмо получателю. Адрес на конверте не содержит информации о том, будет ли
получатель присутствовать в момент доставки письма или о том, сможет ли он его прочитать. По
сути, почтовой службе неизвестно содержание доставляемого пакета, и, следовательно, она не
может задействовать какие-либо механизмы исправления ошибок.
Если отсутствие пакетов или несоблюдение очерёдности создаёт проблемы для приложений,
использующих данные, сервисы верхнего уровня, например TCP, должны устранить эти проблемы.
Это обеспечивает высокую эффективность работы протокола IP. Если нагрузки надёжности были
включены в IP, то процессы обмена данными, для которых не требуется подключения, или
надёжность могут пострадать от уменьшения пропускной способности и задержек, вызванных
такими нагрузками. В пакете протоколов TCP/IP транспортный уровень может использовать либо
TCP, либо UDP, в зависимости от необходимости обеспечения надёжности передачи данных. Если
решение об обеспечении надёжности принимается на транспортном уровне, это позволит IP
быстрее адаптироваться к различным типам передачи данных.
На рисунке приводится пример передачи данных с использованием протокола IP. Протоколам с
установлением соединения, таким как TCP, для установки соединения требуется обмен
управляющими данными. Для предоставления информации о подключении протоколу TCP также
необходимы дополнительные поля в заголовке PDU.
Канальный уровень OSI должен принять пакет IP и подготовить его для передачи в
коммуникационной среде. Это означает, что пересылка пакетов IP не ограничивается какой-либо
конкретной коммуникационной средой.
Тем не менее, существует одна важная характеристика среды передачи, которая учитывается на
сетевом уровне: максимальный размер блока PDU, который способна переслать каждая среда.
Эта характеристика называется максимальным размером передаваемого блока данных (MTU).
Часть обмена контрольными данными между канальным уровнем и сетевым уровнем — это
установление максимального размера пакета. Канальный уровень передаёт значение MTU к
сетевому уровню. Затем сетевой уровень определяет размер пакетов.
Пакет IPv4
В 1983 году протокол IPv4 был впервые использован в Сети управления перспективных
исследований и разработок (ARPANET), предшественнице современного Интернета. IPv4 по-
прежнему является наиболее распространённым протоколом сетевого уровня и широко
применяется в сети Интернет.
Как показано на рисунке, заголовок пакета IPv4 состоит из нескольких полей, включающих важную
информацию о пакете. Эти поля содержат двоичные числа, которые анализируются процессом
уровня 3. Двоичные значения каждого поля определяют различные параметры пакета IP.
Среди наиболее важных полей в заголовке IPv4 можно выделить следующие.
Длина заголовка Интернета (IHL): содержит 4-битное значение, определяющее число 32-
битных слов в заголовке. Значение IHL может отличаться в зависимости от полей
«Параметры» и «Заполнитель». Минимальное значение этого поля — 5 (т. е. 5×32 = 160 бит =
20 байт), а максимальное значение — 15 (т. е. 15×32 = 480 бит = 60 байт).
Общая длина: 16-битное поле, которое иногда называется длиной пакета, определяет
размер всего пакета (фрагмента), включая заголовок и данные, выражая его в байтах. Пакет
минимальной длины составляет 20 байт (20-байтный заголовок + 0 байт данных), пакет
максимальной длины — 65 535 байт.
Пакет IPv6
На протяжении многих лет протокол IPv4 периодически обновлялся для решения новых задач. Тем
не менее, даже в результате изменений IPv4 по-прежнему имеет три основных недостатка.
В начале 90-х годов специалисты инженерной группы по развитию Интернета (IETF) подняли
вопрос о недостатках протокола IPv4 и начали поиски альтернативных решений. Результатом
поисков стала разработка протокола IP версии 6 (IPv6). IPv6 помогает преодолеть ограничения
протокола IPv4 и значительно расширяет доступные возможности, предлагая функции, которые
оптимально соответствуют текущим и прогнозируемым сетевым требованиям.
32-битное пространство адресов IPv4 предусматривает примерно 4 294 967 296 уникальных
адресов. Из этого количества могут быть назначены только 3,7 миллиарда, поскольку система
адресации IPv4 подразделяет адреса на классы, резервируя адреса для многоадресных рассылок,
тестирования и других особых целей.
Как показано на рисунке, адресное пространство протокола IP версии 6 поддерживает 340 282 366
920 938 463 463 374 607 431 768 211 456 или 340 ундециллионов адресов, что примерно равно
количеству песчинок на Земле.
Заголовок IPv4 состоит из 20 октетов (до 60 байт, если используется поле «Параметры») и 12
основных полей заголовка, не учитывая поля «Параметры» и «Заполнитель».
Заголовок IPv6 состоит из 40 октетов (главным образом из-за длины адресов IPv6 источника и
назначения) и 8 полей заголовков (3 основных поля заголовков IPv4 и 5 дополнительных полей).
Кроме того, в IPv6 добавлено новое поле, которое не используется в протоколе IPv4. На рис.
показан упрощённый заголовок IPv6.
Версия: поле, содержащее 4-битное двоичное значение, которое определяет версию IP-
пакета. Для пакетов IPv6 в этом поле всегда указано значение 0110.
Пакет IPv6 также может содержать заголовки расширений (EH), которые предоставляют
дополнительную информацию сетевого уровня. Заголовки расширений являются
дополнительными и помещаются между заголовком IPv6 и полезной нагрузкой. Заголовки
расширений используются для фрагментации, обеспечения безопасности, поддержки мобильности
и многого другого.
Маршрутизация
Другим предназначением сетевого узла является пересылка пакетов между узлами. Узел может
отправить пакет на следующие адреса.
Локальный узел: узел в той же сети, в которой также находится отправляющий узел. Узлы
используют один и тот же сетевой адрес.
Удалённый узел: узел в удалённой сети. Узлы не используют один и тот же сетевой
адрес.
Какому узлу адресован пакет — локальному или удалённому — определяется комбинацией IP-
адреса и маски подсети устройства источника (или отправляющего устройства), которые
сравниваются с IP-адресом и маской подсети устройства назначения.
Разумеется, в большинстве случаев нам требуется, чтобы наши устройства могли устанавливать
соединения за пределами сегмента локальной сети: подключаться к другим домам, офисам и
Интернету. Устройства, которые не входят в сегмент локальной сети, называются удалёнными
узлами. Если исходное устройство отправляет пакет к удалённому устройству назначения, то в
этом случае требуется помощь маршрутизаторов и выполнение маршрутизации. Маршрутизация
— это процесс определения наилучшего пути к узлу назначения. Маршрутизатор, подключённый к
сегменту локальной сети, называется шлюзом по умолчанию.
Шлюз по умолчанию
Если узел отправляет пакет устройству в другой IP-сети, то в этом случае он должен пересылать
пакет через промежуточное устройство к шлюзу по умолчанию. Это связано с тем, что главное
устройство не сохраняет информацию о маршрутизации за пределами локальной сети, чтобы
достичь удалённых адресатов. Шлюз по умолчанию, напротив, сохраняет такую информацию.
Шлюз по умолчанию, в роли которого чаще всего выступает маршрутизатор, сохраняет таблицу
маршрутизации. Таблица маршрутизации — это файл данных в ОЗУ, который используется для
хранения информации о маршрутах для напрямую подключённых сетей, а также записей
удалённых сетей, о которых стало известно устройству. Маршрутизатор использует информацию в
таблице маршрутизации, чтобы определить наилучший путь к узлам назначения.
Итак, каким образом узел отслеживает необходимость пересылки пакетов на шлюз по умолчанию?
На узлах должна храниться их собственная локальная таблица маршрутизации, чтобы пакеты
сетевого уровня гарантированно направлялись к нужной сети назначения. Как правило, локальная
таблица узла содержит следующую информацию.
В качестве примера представьте себе сетевой принтер или сканер. Если на сетевом принтере
настроены IP-адрес и маска подсети, то узлы могут отправлять на принтер документы для печати.
Кроме того, принтер может переслать отсканированные документы на любой локальный узел. До
тех пор, пока принтер используется только локально, адрес шлюза по умолчанию не требуется. В
действительности, не настроив на принтере адрес шлюза по умолчанию, вы фактически
отклоняете доступ к Интернету, что может являться разумным решением с точки зрения
безопасности. Отсутствие интернет-подключения означает и отсутствие внешних угроз
безопасности. Поскольку устройства, например принтеры, могут автоматически обновляться через
Интернет, обычно проще и безопаснее устанавливать такие обновления с помощью локальной
загрузки с безопасного локального узла, например, с компьютера.
На узле под управлением Windows для отображения таблицы маршрутизации узла можно
использовать команду route print или netstat -r. Обе команды выдают одинаковый
результат. Сначала полученные выходные данные могут показаться слишком обширными, однако
разобраться в них довольно легко.
Таблица маршрутизации IPv4: содержит все известные маршруты IPv4, включая прямые
подключения, локальные сети и локальные маршруты, используемые по умолчанию.
Таблица маршрутизации IPv6: содержит все известные маршруты IPv6, включая прямые
подключения, локальные сети и локальные маршруты, используемые по умолчанию.
Netmask (Маска сети): содержит маску подсети, которая сообщает узлу, как следует
определять сеть и узловые части IP-адреса.
Чтобы упростить выходные данные, сети назначения могут быть сгруппированы в пять разделов в
соответствии с выделенными зонами на рисунке.
0.0.0.0
127.0.0.0 — 127.255.255.255
192.168.10.0 — 192.168.10.255
Все эти адреса относятся к узлу и локальной сети. Все пакеты с адресами назначения, которые
попадают в эту категорию, будут отправляться из интерфейса 192.168.10.10.
224.0.0.0
255.255.255.255
Когда узел отправляет пакет другому узлу, он использует свою таблицу маршрутизации, чтобы
определить место отправки пакета. Если узел назначения находится в удалённой сети, пакет
пересылается на адрес шлюза.
Сеть назначения
Две записи таблицы маршрутизации создаются автоматически, когда для активного интерфейса
маршрутизатора настраиваются IP-адрес и маска подсети. На рисунке показаны записи таблицы
маршрутизации на маршрутизаторе R1 для сети с прямым подключением 192.168.10.0. Эти записи
были автоматически добавлены в таблицу маршрутизации в процессе настройки и активации
интерфейса GigabitEthernet 0/0. Записи содержат следующую информацию.
Источник маршрута
На рисунке источник маршрута отмечен буквой «A». Она обозначает способ получения
информации о маршруте. Интерфейсы с прямым подключением имеют два кода источника
маршрута.
Сеть назначения
На рисунке сеть назначения отмечена буквой «B». Она обозначает адрес удалённой сети.
Исходящий интерфейс
На рисунке исходящий интерфейс отмечен буквой «C». Она обозначает выходной интерфейс для
пересылки пакетов к сети назначения.
Следующий переход — это адрес устройства, которое будет обрабатывать следующий пакет. Для
узла в сети адрес шлюза по умолчанию (интерфейса маршрутизатора) это следующий переход
всех пакетов, которые необходимо отправить в другую сеть. В таблице маршрутизации
маршрутизатора следующий переход имеется для каждого маршрута к удалённой сети.
Тем не менее, поскольку узел может использовать шлюз по умолчанию для пересылки пакета
неизвестному адресату, маршрутизатор также можно настроить для использования статического
маршрута по умолчанию, чтобы создавать шлюз «последней надежды». Более подробно шлюз
«последней надежды» будет рассмотрен при изучении курса «Маршрутизация CCNA».
Протоколы транспортного уровня
Передача данных
Значение транспортного уровня
Транспортный уровень обеспечивает такой способ передачи данных по сети, который гарантирует,
что на принимающей стороне данные будут скомпонованы без ошибок. Транспортный уровень
также использует разделение данных на сегменты и предлагает элементы управления,
необходимые для повторной сборки этих сегментов в различные потоки обмена данными. В
TCP/IP для выполнения процессов сегментации и повторной сборки можно использовать два
абсолютно разных протокола транспортного уровня — TCP (протокол управления передачей) и
UDP (протокол пользовательских датаграмм).
Основные функции протоколов транспортного уровня:
Определение приложений
На каждом узле в сети может быть запущено множество приложений или сервисов. Чтобы
переслать потоки данных соответствующим приложениям, транспортному уровню необходимо
определить целевое приложение. Для выполнения этой задачи транспортный уровень
присваивает каждому приложению отдельный идентификатор. Этот идентификатор называется
номером порта. Каждому программному процессу, которому требуется доступ к сети, назначается
номер порта, уникальный для этого узла. Транспортный узел использует порты, чтобы определить
соответствующее приложение или сервис.
При передаче по сети данных некоторых типов (например, потокового видео) в виде одного
полного потока может использоваться вся доступная полоса пропускания, что в свою очередь
приведёт к блокированию других процессов передачи данных, выполняемых в это же время.
Кроме того, это усложняет восстановление после ошибок и повторную передачу повреждённых
данных.
Как показано на рисунке, сегментация данных на более мелкие блоки позволяет осуществлять
чередование (мультиплексирование) большого количества разных процессов передачи данных
между многими пользователями в одной и той же сети. Сегментация данных протоколами
транспортного уровня также обеспечивает возможности как для отправки, так и для получения
данных, когда на одном компьютере запущены несколько приложений.
Без сегментации получать данные сможет только одно приложение. Например, при передаче
потокового видео вся среда будет полностью использоваться этим процессом, поэтому для других
приложений она будет недоступна. Работа с электронной почтой, использование программ для
быстрого обмена сообщениями или просмотр веб-страниц одновременно с передачей
видеоизображения будут невозможны.
Чтоб определить каждый сегмент данных, транспортный уровень добавляет к нему заголовок,
который содержит двоичные данные. Этот заголовок содержит поля битов. Именно значения в
этих полях активируют различные протоколы транспортного уровня для выполнения различных
функций при управлении передачей данных.
Как уже упоминалось ранее, TCP считается надёжным транспортным протоколом, а это значит,
что он использует процессы, которые обеспечивают надёжную передачу данных между
приложениями с помощью подтверждения доставки. Передача с использованием TCP аналогична
отправке пакетов, которые отслеживаются от источника к получателю. Если заказ службы Federal
Express разбивается на несколько отправок, заказчик может зайти на веб-сайт компании и
просмотреть порядок доставки.
Такие процессы обеспечения надёжности повышают нагрузку на сетевые ресурсы, что связано с
необходимостью подтверждения, отслеживания и повторной отправки данных. Для поддержки
перечисленных выше процессов между отправляющими и получающими узлами пересылаются
дополнительные управляющие данные. Эта контрольная информация содержится в
заголовке TCP.
Протокол UDP
В то время как функции надёжности TCP обеспечивают более стабильное взаимодействие между
приложениями, они также потребляют больше ресурсов и могут стать причиной задержек при
передаче данных. Существует некий компромисс между надёжностью и той нагрузкой, которую она
представляет для сетевых ресурсов. Дополнительная нагрузка для обеспечения надёжности
некоторых приложений может снизить полезность самого приложения и даже отрицательно
сказаться на его производительности. В таких случаях использование протокола UDP более
предпочтительно.
UDP обеспечивает только основные функции для отправки сегментов данных между
соответствующими приложениями, при этом незначительно используя ресурсы и проверку данных.
UDP известен как протокол негарантированной доставки данных. Применительно к компьютерным
сетям негарантированная доставка считается ненадёжной, поскольку при этом отсутствует
подтверждение о получении отправленных данных на узле назначения. UDP не задействует
процессы транспортного уровня, которые сообщают отправителю об успешной доставке данных.
Протокол UDP подобен тому, как если бы по почте отправляли обычное незарегистрированное
письмо. Отправитель не знает, сможет ли адресат получить письмо, а почтовое отделение не
несёт ответственности за отслеживание письма или информирование отправителя о том,
доставлено ли письмо по адресу.
Нажмите кнопку «Воспроизведение» на рисунке, чтобы просмотреть анимированное
представление сегментов UDP, передаваемых от отправителя к получателю.
В других случаях потеря некоторых данных во время передачи по сети может быть допустима для
приложения, но при этом задержки передачи являются недопустимыми. Таким приложениям
лучше использовать протокол UDP, поскольку он задействует меньше сетевых ресурсов. Протокол
UDP более предпочтителен для потокового воспроизведения аудио, видео и передачи голосовой
информации по протоколу IP (VoIP). Подтверждение доставки только замедлит процесс передачи
данных, но при этом повторная доставка нежелательна.
Например, если один или два сегмента видеопотока не будут доставлены, это вызовет
кратковременные помехи при передаче изображения. В таком случае возможно искажение
изображения, однако пользователь этого может и не заметить. С другой стороны, качество
изображения в потоковом видео значительно ухудшится, если устройство назначения должно
отвечать за утраченную информацию и задерживать поток, ожидая повторной пересылки данных.
В этом случае лучше передать видео максимально возможного качества, используя уже
полученные сегменты, и пожертвовать надёжностью.
Ещё одним примером приложения, которое использует протокол UDP, является интернет-радио.
Если какое-либо сообщение затерялось в пути доставки по сети, оно не будет отправляться
повторно. Пропадание нескольких пакетов будет восприниматься слушателем как
кратковременное пропадание звука. Если для этого использовать протокол TCP,
предусматривающий повторную доставку потерянных пакетов, то процесс передачи данных
приостановится для приёма потерянных пакетов, что заметно ухудшит качество воспроизведения.
Чтобы по-настоящему понять различия между протоколами TCP и UDP, необходимо выяснить, как
каждый из них использует определённые средства обеспечения надёжности, а также как они
отслеживают сеансы передачи данных.
Первоначально протокол TCP был описан в документе RFC 793. Помимо поддержки таких базовых
функций, как сегментация данных и повторная компоновка, протокол TCP, как показано на рисунке,
также обеспечивает:
надёжность доставки
управление потоком
Установление сеанса
Надёжность доставки
Протокол TCP может предоставить способ обеспечения надёжной доставки данных. В сетевой
терминологии надёжность означает доставку на узел назначения каждой части данных,
отправленной узлом источника. Вследствие многих причин при передаче по сети одна из частей
данных может быть повреждена или полностью утрачена. Используя повторную отправку
повреждённых или потерянных данных, TCP может гарантировать, что данные полностью
достигнут своего назначения.
Управление потоком
Такие ресурсы сетевых узлов, как память или полоса пропускания, довольно ограничены. Когда
протокол TCP получает информацию о том, что эти ресурсы используются слишком активно, он
может потребовать от отправляющего приложения уменьшить скорость потока данных. Для этого
TCP регулирует количество информации, передаваемой источником. Управление потоком может
предотвратить потери сегментов при их прохождении по сети и исключить необходимость
повторной передачи данных.
После того как протокол TCP установит сеанс, он сможет следить за обменом данными,
происходящим в рамках этого сеанса. Благодаря способности TCP отслеживать фактические
сеансы связи он считается протоколом с контролем состояния. Протокол с контролем состояния
отслеживает состояние сеанса передачи данных. Например, когда данные передаются по
протоколу TCP, отправитель ожидает, что узел назначения отправит подтверждение о получении
данных. TCP отслеживает, какую информацию он отправил и какая информация была
подтверждена. Если получение данных не подтверждено, отправитель считает, что они не
достигли адресата, и повторяет их отправку. Сеанс связи с контролем состояния начинается с
установления сеанса обмена данными и прекращается по его завершении.
При использовании этих функций протокол TCP создаёт дополнительную нагрузку. Как показано
на рисунке, каждый сегмент TCP содержит 20 дополнительных байт в заголовке, инкапсулируя
данные уровня приложений. Это существенно превышает значение сегмента UDP, в котором
содержатся 8 дополнительных байт. Дополнительная нагрузка состоит из следующих элементов.
Биты управления (6 бит): включает двоичные коды, или флаги, которые указывают
назначение и функцию сегмента TCP.
Размер окна (16 бит): отображает количество сегментов, которые можно принять
единовременно.
Контрольная сумма (16 бит): используется для проверки ошибок заголовка и данных
сегмента.
Как показано на рисунке, следующие функции являются характерными для протокола UDP.
Одним из основных требований для передачи видео и голоса по сети в режиме реального времени
является наличие постоянного высокоскоростного потока. Приложения для передачи видео и
голоса допускают потери некоторого количества данных, которые будут едва заметны или
незаметны вовсе, и отлично подходят для использования протокола UDP.
UDP — это протокол без контроля состояния, а это значит, что ни клиент, ни сервер не обязаны
отслеживать состояние сеанса связи. Как показано на рисунке, протокол UDP не обеспечивает
надёжность или управление потоком. Данные могут быть утрачены или получены не по порядку, а
UDP не обладает какими-либо механизмами для восстановления или переупорядочения данных.
Если при использовании UDP в качестве транспортного протокола требуется надёжность передачи
данных, она должна обеспечиваться самим приложением.
Транспортный уровень должен быть в состоянии разделять несколько каналов передачи данных с
различными требованиями и управлять ими. Рассмотрим пример, в котором пользователь
подключён к сети с использованием конечного устройства. Пользователь одновременно активно
использует электронную почту, программы для быстрого обмена сообщениями, веб-сайты и
передачу голосовой информации по протоколу IP (VoIP). Каждое из этих приложений
одновременно отправляет и получает данные по сети, несмотря на различные требования к
обеспечению надёжности. Кроме того, данные, передаваемые во время телефонного разговора,
не направляются к веб-браузеру, а текст мгновенных сообщений в письмах электронной почты не
отображается.
Как показано на рисунке, для того, чтобы протоколы TCP и UDP могли управлять этими
одновременными сеансами связи с различными требованиями, сервисы, основанные на
использовании TCP и UDP, должны отслеживать процессы обмена данными различных
приложений. Чтобы иметь возможность различать сегменты и датаграммы отдельных приложений,
в протоколах TCP и UDP предусмотрены поля заголовка, однозначно идентифицирующие
приложения. В роли этих уникальных идентификаторов выступают номера портов.
Адресация портов TCP и UDP
В заголовке каждого сегмента или датаграммы указываются порты источника и назначения. Номер
порта источника — это номер для этого обмена данными, связанный с отправляющим
приложением на локальном узле. Как показано на рисунке, номер порта назначения — это номер
для этого обмена данными, связанный с принимающим приложением на локальном узле.
При доставке сообщения по протоколу TCP или UDP запрашиваемые протоколы и сервисы
распознаются по номеру порта. Порт — это числовой идентификатор внутри каждого сегмента,
который используется для учёта отдельных сеансов связи и запрошенных сервисов назначения. В
каждом сообщении, отправляемом с узла, указываются порт источника и порт назначения.
Порт назначения
Клиент указывает номер порта назначения в сегменте, чтобы сообщить серверу назначения
информацию о том, какой сервис запрашивается. Например, порт 80 обозначает протокол HTTP
или веб-сервис. Если клиент в описании для порта назначения указывает порт 80, то сервер,
принимающий это сообщение, уже «знает», что выполнен запрос веб-сервиса. Сервер может
предоставлять несколько сервисов одновременно. Например, сервер может предоставлять веб-
сервис через порт 80 и одновременно услуги обмена файлами по протоколу FTP через порт 21.
Исходный порт
Сочетание номера порта транспортного уровня и IP-адреса узла сетевого уровня однозначно
идентифицирует конкретный процесс приложения на конкретном физическом узле. Такая
совокупность параметров называется сокетом. Пара сокетов, состоящая из IP-адресов и номеров
портов источника и адресата, также уникальна и идентифицирует конкретную операцию обмена
данными между двумя узлами.
Сокет клиента может иметь следующий вид, где 1099 — это номер порта источника:
192.168.1.5:1099
В результате создания сокетов становятся известны конечные точки соединения, и данные могут
передаваться между приложениями на двух узлах. Сокеты позволяют различать несколько
процессов, выполняющихся на клиенте, а также распознавать различные подключения к процессу
сервера.
Запрос клиента порта источника генерируется случайно. Этот номер порта играет роль обратного
адреса для запрашивающего приложения. Транспортный уровень отслеживает порт и приложение
— источник запроса, чтобы после возвращения ответа его можно было переслать
соответствующему приложению. Номер порта запрашивающего приложения используется в
качестве номера порта назначения в ответе, поступающем от сервера.
Номера портов присваиваются Администрацией адресного пространства Интернет (IANA). IANA —
это организация по стандартизации, которая отвечает за установление различных стандартов.
Динамические или частные порты (номера 49152—65535). Как правило, эти порты,
которые также называются временными, динамически присваиваются клиентским
приложениям, когда клиент инициирует подключение к сервису. Динамический порт чаще
всего используется для определения клиентского приложения во время обмена данными, в
то время как клиент использует общеизвестный порт, чтобы определить и установить
подключение к сервису, который запрашивается на сервере. Клиент редко подключается к
сервису, используя динамический или частный порт (хотя некоторые программы для обмена
файлами в одноранговых сетях действительно используют эти порты).
Некоторые приложения могут использовать как протокол TCP, так и UDP (рис. 4). Например,
низкая нагрузка UDP позволяет службе DNS очень быстро обслуживать множество клиентских
запросов. Тем не менее, в некоторых случаях для отправки требуемой информации может
потребоваться надёжность протокола TCP. В этом случае общеизвестный номер порта
53 используется обоими протоколами TCP и UDP для обеспечения этого сервиса.
В предыдущей главе пояснялось, как создаются блоки данных протокола (PDU) посредством
передачи данных приложения вниз через различные уровни для создания блока PDU, который
затем передаётся в среде. На узле назначения этот процесс повторяется в обратном направлении
до тех пор, пока не появится возможность передать данные приложению вверх.
Как показано на рисунке, каждый заголовок сегмента TCP содержит порядковый номер, который
позволяет функциям транспортного уровня на узле назначения повторно собрать сегменты в том
порядке, в котором они были отправлены. Это гарантирует, что приложение назначения получает
данные точно в такой же форме, в которой они были созданы отправителем.
Несмотря на то, что сервисы, которые используют протокол UDP, также отслеживают сеансы связи
между приложениями, они не учитывают порядок, в котором информация была передана, а также
не обеспечивают сохранность подключения. В заголовке UDP порядковый номер не указывается.
Протокол UDP обладает более простой конструкцией и создаёт меньше нагрузки по сравнению с
TCP, что позволяет увеличить скорость передачи данных.
Основным отличием протокола TCP от протокола UDP является надёжность. Надёжность обмена
данными по протоколу TCP обеспечивается с помощью сеансов связи с установлением
соединения. Перед тем как отправить данные, узел, использующий TCP, инициирует процесс для
создания подключения к узлу назначения. Это подключение с контролем состояния позволяет
отслеживать сеанс или поток данных между узлами. Такой процесс гарантирует, что каждый узел
владеет информацией о потоке данных и готов к работе с ним. Сеанс связи с использованием TCP
требует установления сеанса между узлами в обоих направлениях, как показано на
анимированном представлении.
После того как сеанс настроен и началась передача данных, узел назначения отправляет
подтверждения о полученных сегментах на узел источника. Эти подтверждения формируют основу
надёжности в рамках сеанса TCP. Когда источник получает подтверждение, он знает, что данные
успешно доставлены и наблюдение за ними можно прекратить. Если узел источника не получит
подтверждение в течение установленного периода времени, он повторит передачу данных
адресату.
Процессы TCP-сервера
При подключениях по протоколу TCP клиент узла устанавливает связь с сервером. Ниже
перечислены три шага для установления TCP-соединения.
Чтобы понять
процесс трёхстороннего рукопожатия, посмотрите на различные значения данных, которыми
обмениваются два узла. Заголовок сегмента TCP содержит шесть 1-битных полей с контрольной
информацией, которая используется для управления процессами TCP. Эти поля приведены ниже.