Академический Документы
Профессиональный Документы
Культура Документы
Учебник
Учебник
Протокол 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. Эти поля приведены ниже.
Шаг 2. Сервер подтверждает сеанс связи клиент-сервер и запрашивает сеанс связи сервер-
клиент.
Чтобы начать сеанс связи клиент-сервер, TCP-сервер должен подтвердить получение сегмента
SYN от клиента. Для этого сервер возвращает сегмент клиенту с установленным флагом
подтверждения (ACK), указывая на то, что номер подтверждения задействован. Если этот флаг в
сегменте установлен, клиент считает это подтверждением того, что сервер получил SYN от
клиента TCP.
Значение в поле номера подтверждения равно номеру ISN плюс 1. Это позволяет установить
сеанс связи клиент-сервер. Для обеспечения сбалансированности сеанса флаг ACK остаётся
установленным. Следует помнить, что сеанс связи между клиентом и сервером фактически
представляет собой два односторонних сеанса: один клиент-сервер, другой — сервер-клиент. На
втором шаге трёхстороннего рукопожатия сервер должен инициировать ответ клиенту. Чтобы
начать этот сеанс, сервер использует флаг SYN точно так же, как это делал клиент. Он
устанавливает управляющий флаг SYN в заголовке для установления сеанса типа сервер-клиент.
Флаг SYN указывает на то, что начальное значение поля порядкового номера указано в заголовке.
Это значение используется для отслеживания в этом сеансе потока данных от сервера к клиенту.
Наконец, клиент TCP возвращает сегмент, содержащий ACK, — то есть ответ на TCP SYN,
отправленный сервером. Пользовательские данные в этом сегменте отсутствуют. Значение в поле
номера подтверждения на единицу больше, чем номер ISN, полученный от сервера. После того
как между клиентом и сервером будут начаты оба сеанса, для всех дополнительных сегментов,
которые пересылаются в этом процессе обмена данными, будут установлены флаги ACK.
Как показано на рисунке, информация анализатора протоколов отображает установленный
управляющий флаг ACK, а также последовательный номер и номер подтверждения.
Эти меры по обеспечению безопасности можно использовать как для всех, так и только для
выбранных TCP-сеансов.
Для прекращения соединения в заголовке сегмента должен быть установлен управляющий флаг
Finish (FIN). Для завершения каждого одностороннего TCP-сеанса используется двухстороннее
рукопожатие, которое состоит из сегмента FIN и сегмента ACK. Следовательно, чтобы завершить
один сеанс связи, поддерживаемый протоколом TCP, необходимы четыре обмена данными,
которые завершат оба сеанса, как показано на рис. 1.
Шаг 1. Когда у клиента больше нет данных для отправки в потоке, он отправляет сегмент с
установленным флагом FIN.
Шаг 2. Сервер отправляет ACK, чтобы подтвердить получение FIN для завершения сеанса клиент-
сервер.
Когда у клиента больше нет данных для передачи, он устанавливает флаг FIN в заголовке
сегмента. Затем серверная часть соединения отправляет нормальный сегмент, содержащий
данные, с установленным флагом ACK; при этом она использует номер подтверждения, который
гарантирует получение всех байтов данных. После подтверждения всех сегментов сеанс
закрывается.
На рис. 2 и 3 показано, что управляющие флаги FIN и ACK установлены в заголовке сегмента,
закрывая таким образом HTTP-сеанс.
Когда сервисы отправляют данные по протоколу TCP, сегменты могут быть доставлены на узел
назначения в изменённом порядке. Чтобы получатель смог расшифровать изначальное
сообщение, данные в этих сегментах повторно собираются в исходном порядке. Для этого в
заголовке каждого пакета указываются порядковые номера.
Во время настройки сеанса связи устанавливается начальный порядковый номер сеанса (ISN).
Этот номер ISN представляет начальное значение байтов для этого сеанса, которое передаётся
получающему приложению. По мере передачи данных во время сеанса порядковый номер
увеличивается на число переданных байт. Такое отслеживание байтов данных позволяет
однозначно определять и подтверждать каждый сегмент. Можно выяснить, какие сегменты
отсутствуют.
Источнику сообщается, что узел назначения получил все данные в этом потоке до того байта (но
не включая его), который обозначен номером ACK. Предполагается, что передающий узел
отправит сегмент, в котором используется порядковый номер, равный номеру ACK.
Необходимо помнить, что каждое соединение фактически представляет собой два односторонних
сеанса. Обмен номерами SEQ и ACK осуществляется в обоих направлениях.
В примере, показанном на рисунке, узел слева отправляет данные узлу справа. Он отправляет
сегмент, который содержит 10 байт данных для этого сеанса, и порядковый номер, равный 1, в
заголовке.
Получающий узел принимает сегмент на 4-м уровне и определяет, что порядковый номер равен 1,
а также то, что сегмент содержит 10 байт данных. Затем узел отправляет сегмент обратно узлу
слева, чтобы подтвердить получение этих данных. В этом сегменте узел устанавливает 11 в
качестве номера ACK, чтобы показать, что в этом сеансе следующим байтом данных он ожидает
получить байт с номером 11. Когда передающий узел получает это подтверждение, он может
отправить следующий сегмент, содержащий данные для этого сеанса, которые начинаются с
байта номер 11.
Из этого примера видно, что если бы отправляющему узлу пришлось ждать подтверждения
каждых 10 байт, это создало бы значительную нагрузку на сеть. Чтобы снизить нагрузку,
связанную с получением этих подтверждений, несколько сегментов данных можно отправить и
подтвердить в одном сообщении TCP, отправленном в противоположном направлении. Это
подтверждение содержит номер ACK, который указывается исходя из общего количества байтов,
полученных в течение сеанса связи. Например, начиная с порядкового номера 2000 (если было
получено 10 сегментов из каждых 1000 байт) источнику должен быть отправлен ACK с
номером 12001.
Как бы хорошо ни была организована сеть, в ней время от времени случаются потери данных; по
этой причине протокол TCP предусматривает способы управления этими потерями сегментов.
Среди них — механизм для повторной передачи сегментов с неподтвержденными данными.
Сервис узла назначения, использующая протокол TCP, обычно подтверждает только данные,
поступившие в непрерывной последовательности. В случае отсутствия одного или нескольких
сегментов подтверждаются только данные в первой непрерывной последовательности байтов.
Например, если были получены сегменты с порядковыми номерами от 1500 до 3000 и от 3400 до
3500, номером ACK будет 3001. Это связано с тем, что имеются сегменты с номерами SEQ от 3001
до 3399, которые не были получены.
При типичной реализации протокола TCP узел может переслать сегмент, поместить копию
сегмента в очередь для повторной передачи и запустить таймер. После получения подтверждения
данных сегмент удаляется из очереди. Если подтверждение не поступает до истечения времени
таймера, сегмент пересылается повторно.
В настоящее время узлы могут также использовать дополнительную функцию, которая называется
выборочным подтверждением (SACK). Если оба узла поддерживают выборочные подтверждения,
адресат может подтвердить байты в прерывающихся сегментах, в результате чего узел должен
будет повторить передачу только недостающих данных.
Управление потоком
Протокол TCP также обеспечивает механизмы для управления потоком данных. Управление
потоком позволяет поддерживать надёжность передачи по протоколу TCP путём регулировки
скорости потока данных между узлами источника и направления в течение определённого сеанса.
Управление потоком осуществляется путём ограничения количества сегментов данных,
передаваемых за один раз, а также запроса подтверждений получения до отправки следующих
сегментов.
Для управления потоком TCP в первую очередь определяет количество сегментов данных,
которое может принять устройство назначения. Заголовок TCP включает в себя 16-битное поле,
которое называется размером окна. Это количество байтов, которое устройство назначения
сеанса TCP способно принять и обработать единовременно. Исходный размер окна
согласовывается во время запуска сеанса через трёхстороннее рукопожатие между устройствами
источника и назначения. После согласования исходное устройство должно ограничить количество
сегментов данных, отправленных устройству назначения, в соответствии с размером окна. Только
после того как исходное устройство получит подтверждение того, что сегменты данных получены,
оно может продолжить отправку остальных данных в этом сеансе.
Протокол TCP использует размер окна, чтобы попытаться управлять скоростью передачи данных в
соответствии с максимальным значением потока, которое поддерживается сетью и устройством
назначения, одновременно с этим уменьшая потери данных и количество их повторных
пересылок.
Принимающий узел отсылает значение размера окна на отправляющий узел, чтобы указать
количество байтов, которое он готов принять. Если узлу назначения необходимо снизить скорость
передачи данных из-за ограниченной памяти буфера, он может, например, пересылать узлу
источника меньшее значение размера окна как часть подтверждения.
Как показано на рисунке, если на принимающем узле наблюдается перегрузка, он может ответить
отправляющему узлу, переслав сегмент, который указывает меньший размер окна. На этом
рисунке видно, что один из сегментов был потерян. В этом сеансе связи получатель уменьшил
поле окна в заголовке TCP возвращаемых сегментов с 3000 до 1500, вследствие чего отправителю
пришлось изменить размер окна 1500.
После периода передачи данных без потерь или ограничения ресурсов получатель начинает
увеличивать поле окна, что уменьшает нагрузку на сеть, поскольку требуется отправка меньшего
количества подтверждений. Размер окна продолжает увеличиваться до тех пор, пока не начнутся
потери данных, в результате чего размер окна будет уменьшаться.
Этот динамический процесс увеличения и уменьшения размера окна в протоколе TCP происходит
постоянно. В высокопроизводительных сетях размеры окон могут быть очень большими, поскольку
потери данных отсутствуют. В сетях, в которых базовая инфраструктура находится под нагрузкой,
размер окна, скорее всего, остается небольшим.
Обмен данными с использованием UDP
Низкая нагрузка UDP по сравнению с надёжностью
UDP — это простой протокол, который обеспечивает базовые функции транспортного уровня. Он
характеризуется существенно меньшими нагрузками по сравнению с протоколом TCP; он не
использует установление соединения и не предлагает сложные механизмы повторной передачи
данных, упорядочивания и управления потоком, которые обеспечивают надёжность.
Это вовсе не означает, что приложения, которые используют UDP, всегда ненадёжны, или что
UDP — неполноценный протокол. Это лишь означает, что функции обеспечения надёжности не
реализуются протоколом транспортного уровня и при необходимости должны быть реализованы
на других уровнях.
Несмотря на то, что UDP-трафик обычно составляет небольшую долю общего сетевого трафика,
UDP используется следующими важными протоколами уровня приложений.
Протокол DHCP
Протокол RIP
Онлайн-игры
Низкая нагрузка, свойственная UDP, делает его для таких приложений просто незаменимым.
Разборка UDP-датаграммы
Поскольку UDP является протоколом без установления соединения, перед началом соединения
сеансы связи не устанавливаются, как это происходит в случае с протоколом TCP. Считается, что
в основе протокола UDP лежат транзакции; другими словами, если у приложения есть данные для
отправки, оно просто отсылает их.
Многие приложения, которые используют UDP, отправляют незначительное количество данных,
которое может поместиться в один сегмент. При этом другие приложения отправляют большие
объёмы данных, которые необходимо разделить на несколько сегментов. Блок PDU протокола
UDP называется датаграммой, хотя понятия «сегмент» и «датаграмма» иногда используются как
синонимы для описания PDU транспортного уровня.
Когда на узел назначения отправляются несколько датаграмм, они могут использовать разные
пути и прибыть в неправильном порядке. Протокол UDP не отслеживает порядковые номера, как
это делает TCP. Как показано на рисунке, у UDP нет способа повторно скомпоновать датаграммы
в том порядке, который использовался при их передаче.
Таким образом, протокол UDP просто повторно собирает данные в том порядке, в котором они
были приняты, и пересылает их приложению. Если последовательность данных важна для работы
приложения, оно должно определить правильную последовательность и выбрать оптимальный
способ обработки данных.
Процессы UDP-клиента
Как и в случае с TCP, обмен данными между клиентом и сервером инициируется клиентским
приложением, которое запрашивает данные с серверного процесса. Процесс UDP-клиента
случайным образом выбирает номер порта из диапазона динамических номеров портов и
использует его в качестве порта источника для сеанса связи. Как правило, порт назначения — это
известный или зарегистрированный номер порта, присвоенный процессу сервера.
Случайные номера портов источника также помогают повысить безопасность. При наличии
предсказуемой модели для выбора порта назначения злоумышленнику проще смоделировать
доступ к клиенту, попытавшись подключиться к номеру порта, который, вероятнее всего, будет
открыт.
Поскольку при использовании протокола UDP после подготовки данных к отправке и определения
портов сеансы не создаются, UDP может составить датаграммы и переслать их на сетевой
уровень для определения адреса и пересылки по сети.
После того как клиент выбрал порты источника и назначения, эта же пара портов будет указана в
заголовке всех датаграмм, которые используются в процессе пересылки. Чтобы сервер мог
вернуть данные клиенту, номера портов источника и назначения в заголовке датаграммы
указываются в обратном порядке.
Как результат, TCP лучше всего подходит для приложений, которым необходима надёжная
передача данных и которые допускают некоторые задержки. Протокол TCP — это отличный
пример того, как различные уровни набора протоколов TCP/IP могут выполнять определённые
роли. Поскольку протокол транспортного уровня TCP обрабатывает все задания, связанные с
разделением потока данных на сегменты, обеспечением надёжности, управлением потоком и
повторной компоновкой сегментов, он освобождает приложение от выполнения всех этих задач.
Приложение может просто отправить поток данных протоколу транспортного уровня и
использовать сервисы TCP.
Telnet
Существуют три типа приложений, которые наиболее всего подходят для работы с протоколом
UDP:
однонаправленные потоки данных, при которых надёжность не требуется или может быть
обеспечена приложением.
Протокол UDP используют многие приложения для передачи видео и мультимедийных данных,
например IP-телефония и интернет-телевидение. Эти приложения допускают потери некоторого
количества данных, которые будут едва заметны или незаметны вовсе. Вследствие использования
механизмов обеспечения надёжности, которые предусмотрены в TCP, возможно заметное
ухудшение качества передаваемого изображения и звука.
Другие приложения, которые оптимально подходят для использования протокола UDP, — те,
которые используют простые операции по отправке запросов и получения ответов. Под этим
понимается ситуация, когда узел отправляет запрос, ответ на который, возможно, поступит, а
возможно, и нет. К таким приложениям относятся:
DHCP
SNMP
TFTP
Структура IPv4-адресов
Двоичное представление чисел
Чтобы понять, как работают устройства в сети, необходимо взглянуть на адреса и другие данные
так, как это делают устройства — то есть в двоичном представлении. Двоичное представление
информации осуществляется с помощью только единиц и нулей. Компьютеры взаимодействуют с
использованием двоичных данных. Двоичные данные можно использовать для представления
разных видов информации. Например, когда пользователь набирает символы на клавиатуре, они
отображаются на экране в удобном для чтения и понимания виде. Однако компьютер преобразует
каждый символ в серии двоичных цифр для удобства хранения и передачи. Для преобразования
этих символов компьютер использует Американский стандартный код для обмена информацией
(ASCII).
Например, буква «А» в коде ASCII представлена в виде бита 01000001. В свою очередь, буква
нижнего регистра «a» представлена в виде бита 01100001. Используйте преобразователь ASCII на
рисунке 1 для преобразования символов в двоичную форму.
Хотя в целом людям не нужно углубляться в преобразование символов, необходимо понимать, как
двоичные числа используются в IP-адресации. Каждое устройство в сети должно быть уникально
представлено с помощью двоичного адреса. В IPv4-сетях этот адрес представлен с помощью
серии из 32 бит (единиц и нулей). Затем на сетевом уровне пакеты включают в себя эту
уникальную идентификационную информацию для систем источника и назначения. Таким
образом, в IPv4-сети каждый пакет включает в себя 32-битный адрес источника и 32-битный адрес
назначения в заголовке уровня 3.
Большинству людей сложно понять строку из 32 бит и тем более сложно её запомнить. Поэтому
вместо двоичной системы для представления IPv4-адресов мы используем десятичный формат с
разделительными точками. Это означает, что мы рассматриваем каждый байт (октет) в виде
десятичного числа от 0 до 255. Чтобы понять этот принцип работы, необходимо уметь
преобразовывать двоичные представления в десятичный формат.
Для десятичного числа 192 единица (1) представляет значение 1*10^2 (1 раз 10 на 2). Единица
находится на позиции сотни (100). Позиционное представление передаёт эту позицию, как
основание^2, поскольку основание, или корень, — это 10, а степень — это 2. Цифра 9
представлена как 9*10^1 (9 раз 10 на 1). Позиционное представление десятичного числа 192
показано на рисунке 2.
или
192 = (1 * 100) + (9 * 10) + (2 * 1)
Двоичный адрес:
192.168.10.10
На рисунке 1 нажимайте каждую кнопку, чтобы увидеть, как 32-битный двоичный адрес
представлен десятичными октетами с разделительными точками.
Корнем для двоичной системы исчисления является 2. Таким образом, каждое расположение
представляет значение в степени 2. В 8-битных двоичных числах расположения представляют
следующие суммы:
128 64 32 16 8 4 2 1
Когда мы представляем байт в виде десятичного числа, то единица означает, что расположение
представляет сумму. Если же у нас цифра ноль, то суммы нет, как показано на рисунке 1.
Рисунок 2 демонстрирует представление десятичного числа 192 в двоичном формате. Единица (1)
в определённой позиции означает, что мы прибавляем это значение к общей сумме. Ноль (0)
означает, что мы не добавляем это значение. Двоичное число 11000000 имеет 1 в позиции 2^7
(десятичное значение 128) и 1 в позиции 2^6 (десятичное значение 64). Оставшиеся биты — это
нули, поэтому не нужно добавлять соответствующие десятичные значения. При сложении 128 + 64
получаем сумму 192, десятичный эквивалент которой 11000000.
Единица в каждой позиции означает, что мы прибавляем значение к этой позиции до общей
суммы. Если в сумме все единицы, то значения каждой позиции включены в общую сумму; таким
образом, значение всех единиц равняется 255.
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
0+0+0+0+0+0+0+0=0
Каждый октет состоит из 8 бит, каждый бит имеет значение 0 или 1. Четыре группы из 8 бит имеют
одну серию допустимых значений от 0 до 255 включительно. Значения каждого размещения бита
справа налево: 1, 2, 4, 8, 16, 32, 64 и 128.
Чтобы определить значение октета, нужно сложить значения позиций, в которых присутствует
двоичная единица.
Если все 8 бит имеют значение 1, 11111111, значение октета равно 255
(128+64+32+16+8+4+2+1).
Если среди 8 бит есть и единицы, и нули, то значения прибавляются вместе. Например,
значение октета 00100111 составляет 39 (32+4+2+1).
Понимание двоичной системы исчисления особенно важно, чтобы установить, находятся ли два
узла в одной и той же сети. Как вы помните, IP-адрес является иерархическим адресом, который
состоит из двух частей: сетевой и узловой. Определяя ту или иную часть, необходимо обращать
внимание не на десятичное значение, а на 32-битный поток. В 32-битном потоке одна часть битов
составляет сеть, а другая — узел.
Биты в сетевой части адреса должны быть одинаковыми для всех устройств, которые находятся в
одной и той же сети. Биты в узловой части адреса должны быть уникальными, чтобы можно было
определить конкретный узел в сети. Независимо от того, совпадают ли десятичные числа в двух
IPv4-адресах, если два узла имеют одну битовую комбинацию в определённой сетевой части 32-
битного потока, то эти два узла находятся в одной и той же сети.
Но как узлы определяют, какая из частей 32-битного потока является сетевой, а какая — узловой?
Для этого используется маска подсети.
При настройке IP-узла ему присваивается не только IP-адрес, но и маска подсети. Как и IP-адрес,
маска состоит из 32 бит. Она определяет, какая часть IP-адреса относится к сети, а какая — к узлу.
Сетевые префиксы
Длина префикса — это ещё один способ представления маски подсети. Длина префикса означает
количество бит, установленных на единицу (1) в маске подсети. Она обозначается наклонной
чертой вправо («/»), после которой идёт набор единиц. Например, если маска подсети
255.255.255.0, то в двоичной версии маски подсети на единицу настроены 24 бита, поэтому длина
префикса составляет 24 бита или /24. Префикс и маска подсети — это разные способы
представления одного и того же — сетевой части адреса.
Сетям не всегда назначается префикс /24. В зависимости от количества узлов в сети префикс
может отличаться. Различный префикс приводит к изменению диапазона узлов и
широковещательного адреса для каждой сети.
На рисунках ниже показано, как различные префиксы используют один и тот же адрес 10.1.1.0. На
рис. показаны префиксы от /24 до /26.
Сетевой адрес
Узловые адреса
Широковещательный адрес
Сетевой адрес
Сетевой адрес — это стандартный способ обозначения сети. Маска подсети или длина префикса
могут использоваться при обозначении сетевого адреса. Например, сеть, показанную на рисунке 1,
можно обозначить как 10.1.1.0, 10.1.1.0 255.255.255.0 или 10.1.1.0/24. Все узлы в сети 10.1.1.0/24
будут иметь одинаковую сетевую часть.
Как показано на рисунке 2, в пределах диапазона IPv4-адресов первый из них зарезервирован для
сетевого адреса. В каждом узловом бите узловой части этого адреса указан ноль. Все узлы в этой
сети используют одну сеть.
Адрес узла
Для обмена данными по сети каждому оконечному устройству необходим уникальный адрес. В
IPv4-адресах значения между сетевым и широковещательным адресами могут быть назначены
оконечным устройствам в сети. Как показано на рисунке 3, в узловой части этот адрес может иметь
любую комбинацию нулей и единиц, но при этом не может состоять только из нулей или только из
единиц.
Широковещательный адрес
Широковещательный IPv4-адрес — это особый адрес для каждой сети, который осуществляет
связь для всех узлов, расположенных в этой сети. Для единовременной отправки данных на все
узлы в сети узел может отправить один пакет, назначенный широковещательному адресу сети, а
каждый узел в этой сети, который получит этот пакет, обработает его содержимое.
Для широковещательной рассылки используется наивысший адрес диапазона сети. В этом адресе
все части узла представлены единицами (1). Сумма единиц октета в двоичной форме равняется
значению 255 в десятичном формате. Таким образом, как показано на рисунке 4, для сети
10.1.1.0/24, в которой последний октет используется для узловой части, широковещательный
адрес будет равен 10.1.1.255. Обратите внимание, что узловая часть не всегда представлена всем
октетом целиком. Также этот адрес называют прямой широковещательной рассылкой.
Чтобы удостовериться, что всем узлам в сети присвоен уникальный IP-адрес внутри диапазона
сети, сначала нужно определить адреса первого и последнего узлов. В этом диапазоне узлам
внутри сети могут быть присвоены IP-адреса.
Как видно на рисунке 1, узловая часть первого адреса узла будет содержать все нулевые биты с
единицей в крайнем справа бите. Значение этого адреса всегда на единицу больше сетевого
адреса. В этом примере первым адресом узла в сети 10.1.1.0/24 является 10.1.1.1. Часто во
многих схемах адресации первый адрес узла используется для маршрутизатора или шлюза по
умолчанию.
Узловая часть последнего адреса узла будет содержать все единицы с нулём в крайнем справа
бите. Значение этого адреса всегда на единицу меньше, чем значение широковещательного
адреса. Как видно на рисунке 2, последним адресом узла в сети 10.1.1.0/24 является 10.1.1.254.
Побитовая операция И
Если устройству назначен IPv4-адрес, то это устройство использует маску подсети, чтобы
определить, к какому сетевому адресу оно принадлежит. Сетевой адрес представляет все
устройства в одной и той же сети.
При отправке данных по сети устройство использует эту информацию, чтобы определить, может
ли оно пересылать пакеты локально, либо оно должно отправлять пакеты на шлюз по умолчанию
для удалённой отправки. Когда узел отправляет пакет, он сравнивает сетевые части собственного
IP-адреса и IP-адреса назначения, который зависит от маски подсети. Если биты сетевой части
совпадают, значит, узлы источника и назначения находятся в одной и той же сети, и пакет
доставляется локально. Если биты не совпадают, отправляющий узел передаёт пакет на шлюз по
умолчанию для отправки в другую сеть.
Операция И
1И1=1
0И1=0
0И0=0
1И0=0
IPv4-адрес узла постепенно, бит за битом, прошел операцию И, и его маска подсети определила
сетевой адрес, с которым связан узел. В результате выполнения побитовой операции И между
адресом и маской подсети создаётся сетевой адрес.
Значение операции И
Любой бит адреса, прошедший операцию И со значением бита 1 из маски подсети, выводит
исходное значение бита из адреса. Таким образом, 0 (из IPv4-адреса) И 1 (из маска подсети)
равняется 0. 1 (из адреса IPv4) И 1 (из маски подсети) равняется 1. Таким образом, всё, что
проходит операцию И со значением 0, выводит 0. Эти свойства операции И используются с маской
подсети, чтобы «замаскировать» узловые биты IPv4-адреса. Каждый бит адреса проходит
операцию И с соответствующим битом маски подсети.
Поскольку все биты маски подсети, представляющие узловые биты, являются нулями, узловая
часть выведенного сетевого адреса состоит только из нулей. Как вы помните, IPv4-адрес со всеми
нулями в узловой части представляет сетевой адрес.
И наоборот, все биты маски подсети, которые представляют сетевую часть, являются единицами.
Когда каждая из этих единиц проходит операцию И с соответствующим битом адреса, полученные
в результате операции биты идентичны исходным битам адреса.
Как показано на рисунке, биты 1 в маске подсети будут выведены в сетевую часть сетевого адреса
с теми же битами, что и в сетевой части узла. Узловая часть сетевого адреса будет состоять из
всех нулей.
Для данного IP-адреса и его подсети операцию И можно использовать для определения того, к
какой подсети принадлежит этот адрес, а также того, какие другие адреса относятся к той же
подсети. Помните, что если два адреса находятся в одной и той же сети или подсети, то друг для
друга они являются локальными и, следовательно, могут взаимодействовать между собой
напрямую. Адреса, находящиеся в разных сетях или подсетях, являются друг для друга
удалёнными, поэтому для их коммуникации необходимо устройство уровня 3 (например
маршрутизатор или коммутатор уровня 3).
При проверке или диагностике сети нам часто приходится определять два узла из одной
локальной сети. Это определение необходимо делать с точки зрения сетевых устройств. Из-за
неправильной конфигурации узел может видеть себя не в той сети. Если не провести проверку
операций И, применяемых узлом, могут потребоваться лишние действия.
Статическое присвоение
Динамическое присвоение
DHCP — это наиболее предпочтительный способ присвоения IPv4-адресов узлам в большой сети,
поскольку он облегчает работу специалистов службы поддержки и практически устраняет
возможность ошибки.
Другое преимущества DHCP состоит в том, что адреса присваиваются узлам временно. Если узел
выключается или уходит из сети, его адрес возвращается в пул для повторного использования.
Это особенно полезно для мобильных пользователей, которые используют сеть не постоянно.
Одноадресная передача
Эти три типа связи используются в сетях передачи данных для различных целей. Во всех трёх
типах IPv4-адрес исходного узла размещён в заголовке пакета в качестве адреса источника.
Одноадресный трафик
Одноадресная передача используется для обычного обмена данными между узлами как в сети
типа «клиент/сервер», так и в одноранговой сети. Для одноадресной рассылки пакетов в качестве
адреса назначения используются адреса целевого устройства. Пакеты могут быть направлены
через объединённую сеть.
Примечание. В этом курсе любая связь между устройствами является одноадресной, если не
указано иное.
Широковещательная передача
Трафик широковещательной рассылки используется для отправки пакетов по всем узлам в сети с
помощью группового адреса сети. В пакете широковещательной рассылки содержится IP-адрес
назначения, в узловой части которого присутствуют только единицы (1). Это означает, что пакеты
получат и обработают все узлы в локальной сети (домене широковещательной рассылки).
Широковещательные рассылки предусмотрены во многих сетевых протоколах, например в
протоколе DHCP. Когда узел получает пакет, отправленный на сетевой широковещательный
адрес, узел обрабатывает этот пакет так же, как обрабатывает пакет, отправленный по
одноадресной рассылке.
Запрос адреса
Прямая широковещательная рассылка отправляется всем узлам в конкретной сети. Этот тип
широковещательной рассылки полезен для отправки широковещательных пакетов на все узлы
нелокальной сети. Например, для связи какого-либо узла за пределами сети 172.16.4.0/24 со
всеми узлами внутри этой сети адресом назначения пакета будет являться 172.16.4.255. Несмотря
на то, что маршрутизаторы не пересылают широковещательные пакеты по умолчанию, их можно
для этого настроить.
Многоадресная передача
Групповые адреса
Протокол IPv4 имеет блок адресов, зарезервированных для групп мультивещания. Это диапазон
адресов составляет от 224.0.0.0 до 239.255.255.255. Диапазон групповых адресов разделён на
различные типы адресов: зарезервированные канальные и глобальные адреса. Дополнительный
тип групповых адресов — это административно определяемые адреса, которые также называются
ограниченными адресами.
Типы IPv4-адресов
Хотя большая часть узловых IPv4-адресов являются публичными, т. е. предназначенными для
использования в сетях, доступных через Интернет, существуют блоки адресов, которые
используются в сетях, требующих ограниченного доступа в Интернет или не требующих его
совсем. Эти адреса называются частными.
Частные адреса
10.0.0.0–10.255.255.255 (10.0.0.0/8)
172.16.0.0–172.31.255.255 (172.16.0.0/12)
192.168.0.0–192.168.255.255 (192.168.0.0/16)
Частные адреса определены в документе RFC 1918 «Присвоение адресов для частного
Интернета». Иногда эти адреса называют адресами RFC 1918. Как показано на рисунке, блоки
адресов частного пространства используются в частных сетях. Узлы, которые не требуют доступа
в Интернет, могут использовать частные адреса. Однако в рамках частной сети узлы по-прежнему
должны иметь уникальные IP-адреса внутри частного пространства.
Узлы в различных сетях могут использовать одни и те же адреса частного пространства. Пакеты,
использующие эти адреса в качестве источника или назначения, не должны появляться в
публичном Интернете. Маршрутизатор или устройство межсетевого экрана по периметру этих
частных сетей должны блокировать или преобразовывать эти адреса. Даже если бы пакеты сами
прокладывали свой путь через Интернет, у маршрутизаторов в любом случае не появилось бы
маршрутов для пересылки их в соответствующую частную сеть.
Публичные адреса
Некоторые адреса невозможно назначить узлам. Также существуют особые адреса, которые могут
быть назначены узлам, но с ограничениями того, как эти узлы могут взаимодействовать в сети.
Как было указано выше, в каждой сети первый и последний адреса не могут быть назначены
узлам. Это сетевой и широковещательный адреса соответственно.
Адреса TEST-NET
Блок адресов от 192.0.2.0 до 192.0.2.255 (192.0.2.0/24) отложен для обучающих и учебных целей.
Эти адреса могут использоваться в документации и сети. В отличие от экспериментальных
адресов сетевые устройства принимают эти адреса в свои конфигурации. Эти адреса часто
используются в сочетании с такими доменными именами, как example.com или example.net в серии
документов, имеющих статус стандартов (RFC), в документации поставщиков и протоколов.
Адреса из этого блока не должны появляться в сети Интернет.
Экспериментальные адреса
Блоки класса А
Блок адресов класса А разработан для поддержки очень крупных сетей, содержащих более чем 16
миллионов адресов узлов. Для обозначения сетевого адреса IPv4-адреса класса А использовали
фиксированный префикс /8 с первым октетом. Остальные три октета использовались для адресов
узлов. Все адреса класса А требуют, чтобы самый старший разряд старшего октета был равен
нулю. Это означает, что существовало только 128 возможных сетей класса А, от 0.0.0.0/8 до
127.0.0.0 /8. Даже если адреса класса А зарезервировали половину адресного пространства, в
связи с их ограничением до 128 сетей они могут быть назначены только приблизительно 120
компаниям или организациям.
Блоки класса B
Блоки класса С
Адресное пространство класса С было доступно чаще всех остальных классов адресов. Это
адресное пространство предназначено для предоставления адресов небольшим сетям с
максимальным количеством узлов не более 254. Блоки адресов класса С использовали префикс
/24. Это означает, что сеть класса С использовала только последний октет в качестве адресов
узлов с тремя старшими октетами, используемыми для обозначения сетевых адресов. Блоки
адресов класса С отделяли адресное пространство с помощью фиксированного значения 110
самых старших разрядов старшего октета. Это ограничило блок адресов класса С от 192.0.0.0/24
до 223.255.255.0/24. Хотя этот блок занял только 12,5 % от общего объёма адресного IPv4-
пространства, он предоставил адреса 2 миллионам сетей.
Хотя эта классовая система была практически забыта в конце 1990-х гг., в настоящее время по-
прежнему наблюдается её влияние. Например, при назначении компьютеру IPv4-адреса
операционная система проверяет присваиваемый адрес, чтобы определить, к какому классу
принадлежит этот адрес: A, B или C. Затем операционная система принимает префикс,
используемый этим классом, и назначает маску подсети по умолчанию.
Бесклассовая адресация
В IETF понимали, что бесклассовая междоменная маршрутизация (CIDR) была только временным
решением и для поддержки быстрого развития количества пользователей Интернета необходим
новый IP-протокол. В 1994 г. в IETF начались поиски преемника IPv4. Им стал протокол IPv6.
Основные реестры:
Интернет-провайдеры
По сути, провайдеры одалживают своим клиентам эти адреса. При смене интернет-провайдера
новый поставщик услуг предоставляет адреса из своих адресных блоков, а предыдущий получает
обратно свои адреса и одалживает их другому заказчику.
Сервисы интернет-провайдера
Для получения доступа к услугам сети Интернет нам необходимо подключить нашу сеть для
передачи данных в Интернет с помощью интернет-провайдера (ISP).
Уровни интернет-провайдеров
Уровень 2
Уровень 3
Сетевые IPv6-адреса
Проблемы с IPv4
Потребность в IPv6
Протокол IPv6 разработан как преемник протокола IPv4. В протоколе IPv6 больше 128-битного
адресного пространства, что достаточно для 340 ундециллионов адресов. (Это число 340, за
которым следует 36 нолей.) Однако IPv6 — не просто большие адреса. Когда специалисты IETF
начали разработку преемника IPv4, они использовали эту возможность для устранения
ограничений протокола IPv4 и внесения дополнительных улучшений. Среди таких улучшений —
протокол управляющих сообщений версии 6 (ICMPv6), который включает в себя разрешение
адресов и автонастройку адресов, что отсутствовало в протоколе ICMP для IPv4 (ICMPv4).
Протоколы ICMPv4 и ICMPv6 будут рассмотрены далее в этой главе.
Потребность в IPv6
Интернет вещей
Точно неизвестно, когда мы перейдем на протокол IPv6. В ближайшем будущем протоколы IPv4 и
IPv6 будут существовать совместно. Полный переход может занять многие годы. Специалисты
IETF создали различные протоколы и инструменты, которые позволяют сетевым администраторам
постепенно переводить свои сети на протокол IPv6. Методы перехода можно разделить на 3
категории:
Двойной стек: как показано на рис. 1, двойной стек позволяет протоколам IPv4 и IPv6
сосуществовать в одной сети. Устройства с двойным стеком одновременно работают с
протокольными стеками IPv4 и IPv6.
Адресация IPv6
Шестнадцатеричная система исчисления
Шестнадцатеричная нумерация
Если 8 бит (байт) — это общепринятая бинарная группа, двоичный код 00000000—11111111 может
быть представлен в шестнадцатеричной системе исчисления в качестве диапазона 00–FF. Для
завершения 8-битного представления можно просмотреть ведущие нули. Например, двоичное
значение 0000 1010 показано в шестнадцатеричной системе как 0A.
Шестнадцатеричные преобразования
Длина IPv6-адресов составляет 128 бит, написанных в виде строки шестнадцатеричных значений.
Каждые 4 бита представлены одной шестнадцатеричной цифрой, причём общее количество
шестнадцатеричных значений равно 32. IPv6-адреса не чувствительны к регистру, их можно
записывать как строчными, так и прописными буквами.
Предпочтительный формат
Первое правило для сокращения записи IPv6-адресов — пропуск всех ведущих 0 (нулей) в
шестнадцатеричной записи. Например:
Это правило применяется только к ведущим нулям, а НЕ к последующим, иначе адрес будет
записан неясно. Например, шестнадцатеричное число «ABC» может быть представлено как
«0ABC» или «ABC0».
Второе правило для сокращения записи адресов IPv6 заключается в том, что двойное двоеточие
(::) может заменить любую единую, смежную строку одного или нескольких 16-битных сегментов
(хекстетов), состоящих из нулей.
Двойное двоеточие (::) может использоваться в адресе только один раз, в противном случае в
результате может возникнуть несколько адресов. Сочетание этого правила с методом пропуска
нулей помогает значительно сократить запись IPv6-адреса. Это называется сжатым форматом.
Неверный адрес:
2001:0DB8::ABCD::1234
2001:0DB8::ABCD:0000:0000:1234
2001:0DB8::ABCD:0000:0000:0000:1234
2001:0DB8:0000:ABCD::1234
2001:0DB8:0000:0000:ABCD::1234
Типы IPv6-адресов
Существует три типа IPv6-адресов.
Как вы помните, префикс, или сетевая часть адреса IPv4, может быть обозначен маской подсети в
десятичном формате с разделительными точками или длиной префикса (запись с наклонной
чертой). Например, IP-адрес 192.168.1.10 с маской подсети в десятичном формате с
разделительными точками 255.255.255.0 эквивалентен записи 192.168.1.10/24.
Протокол IPv6 использует длину префикса для обозначения части префикса адреса. IPv6 не
использует для маски подсети десятичное представление с разделительными точками. Длина
префикса обозначает сетевую часть IPv6-адреса с помощью адреса или длины IPv6-префикса.
Диапазон длины префикса может составлять от 0 до 128. Традиционная длина IPv6-префикса для
локальных и других типов сетей — /64. Это означает, что длина префикса, или сетевая часть
адреса, составляет 64 бита, а оставшиеся 64 бита остаются для идентификатора интерфейса
(узловой части) адреса.
Глобальный индивидуальный адрес мало чем отличается от публичного IPv4-адреса. Эти адреса,
к которым можно проложить маршрут по Интернету, являются уникальными по всему миру.
Глобальные индивидуальные адреса могут быть настроены статически или присвоены
динамически. В динамическом назначении IPv6-адреса устройством имеются некоторые важные
отличия по сравнению с динамическим назначением IPv4-адреса.
Локальные адреса канала используются для обмена данными с другими устройствами по одному
локальному каналу. В протоколе IPv6 термин «канал» означает подсеть. Локальные адреса
каналов ограничены одним каналом. Они должны быть уникальны только в рамках этого канала,
поскольку вне канала к ним нельзя проложить маршрут. Другими словами, маршрутизаторы не
смогут пересылать пакеты, имея локальный адрес канала источника или назначения.
Loopback-адрес используется узлом для отправки пакета самому себе и не может быть назначен
физическому интерфейсу. Как и на loopback-адрес IPv4, для проверки настроек TCP/IP на
локальном узле можно послать эхо-запрос на loopback-адрес IPv6. Loopback-адрес IPv6 состоит из
нулей, за исключением последнего бита, который выглядит как ::1/128 или просто ::1 в сжатом
формате.
Неопределённый адрес
Неопределённый адрес состоит из нулей и в сжатом формате представлен как ::/128 или просто ::
Он не может быть назначен интерфейсу и используется только в качестве адреса источника в
IPv6-пакете. Неопределённый адрес используется в качестве адреса источника, когда устройству
еще не назначен постоянный IPv6-адрес или когда источник пакета не относится к месту
назначения.
Примечание. Исходная спецификация IPv6 определяет локальные адреса для тех же целей с
помощью диапазона префикса FEC0:: /10. В спецификации были обнаружены некоторые
неточности, и локальные адреса сайтов были запрещены IETF в пользу уникальных локальных
адресов.
Встроенный IPv4
В отличие от локальных IPv4-адресов канала, локальные адреса канала IPv6 играют важную роль
в различных аспектах сети. Глобальный индивидуальный адрес не обязателен. Однако для
содержания локального адреса канала необходим сетевой интерфейс под управлением протокола
IPv6.
Локальные IPv6-адреса канала находятся в диапазоне FE80::/10. /10 указывает на то, что первые
10 бит — 1111 1110 10xx xxxx. Первый хекстет имеет диапазон от 1111 1110 1000 0000 (FE80) до
1111 1110 1011 1111 (FEBF).
Примечание. Как правило, в качестве шлюза по умолчанию для других устройств в канале
используется локальный адрес маршрутизатора, а не глобальный индивидуальный адрес.
Разбиение IPv4-сети на подсети
Сегментация сети
Причины разбиения на подсети
Ранее при развёртывании сети организации часто подключали все компьютеры и другие сетевые
устройства к одной IP-сети. Всем устройствам в организации назначались IP-адреса с одинаковой
сетевой частью. Конфигурация такого типа называется плоской архитектурой сети. В небольшой
сети с небольшим количеством устройств плоская архитектура не представляет проблемы. Однако
по мере расширения сети с такой конфигурацией могут возникнуть серьёзные трудности.
Подумайте о том, как в сети Ethernet устройства выполняют поиск необходимых служб и устройств
с помощью широковещательной рассылки. Как вы помните, широковещательное сообщение
доставляется всем узлам данной сети. Протокол DHCP — пример сетевой службы, которая
зависит от широковещательной рассылки. Устройства отправляют по сети широковещательные
запросы, чтобы определить местонахождение DHCP-сервера. В крупной сети из-за этого может
создаваться значительный трафик, который замедлит общую работу сети. Кроме того, поскольку
широковещательная рассылка выполняется по всем устройствам, им необходимо принять и
обработать трафик, что приводит к повышению требований к обработке. Если устройство должно
обработать значительный объём широковещательных рассылок, это может даже привести к
замедлению работы устройства. По этой причине более крупные сети необходимо разделить на
более мелкие подсети, предназначенные для небольших групп устройств и служб.
Процесс сегментации сети путём разделения её на несколько более мелких сетей называется
разбиением на подсети. Эти более мелкие сети называются подсетями. Сетевые администраторы
могут группировать устройства и службы в подсети по их географическому местоположению
(например, 3-й этаж здания), организационному подразделению (например, отдел продаж) или по
типу устройств (принтеры, серверы, глобальная сеть и т.п.) или по другому значимому для сети
принципу. Разбиение на подсети может снизить общую нагрузку на сеть и повысить её
производительность.
Примечание. Подсеть аналогична сети, и оба этих термина можно использовать как синонимы.
Большинство сетей сами являются подсетями более крупных блоков адресов.
Определяя размер подсети, необходимо оценить количество узлов, которым потребуются IP-
адреса в каждой подсети в рамках разделённой частной сети. Например, при проектировании сети
студенческого городка нужно оценить количество узлов в локальной сети администраторов, в
локальной сети преподавателей и в локальной сети учащихся. В домашней сети можно оценить
количество узлов в локальной сети жилой зоны и в локальной сети домашнего офиса.
Как уже упоминалось ранее, диапазон частных IP-адресов, используемых в локальной сети,
выбирается сетевым администратором, и к выбору этого диапазона следует отнестись с должным
вниманием. Необходимо убедиться, что количества адресов будет достаточно для активных в
данный момент узлов и для будущего расширения сети. Запомните диапазоны частных IP-
адресов:
На основании требований к IP-адресам можно определить диапазон или диапазоны узлов для
развёртывания. После разбиения выбранного пространства частных IP-адресов на подсети будут
получены адреса узлов, соответствующие требованиям к сети.
В примерах ниже отображено разбиение на подсети на основе блоков адресов с масками подсети
255.0.0.0 и 255.255.255.0, 255.255.0.0.
Каждый сетевой адрес содержит допустимый диапазон адресов узлов. Все устройства,
подключённые к одной и той же сети, будут иметь IPv4-адрес узла этой сети, а также общую маску
подсети или префикс сети.
Префикс и маска подсети — это разные способы представления одного и того же — сетевой части
адреса.
Для создания IPv4-подсетей мы задействуем один или нескольких бит из узловой части в качестве
бит сетевой части. Для этого мы расширяем маску подсети. Чем больше заимствовано бит из
узловой части, тем больше подсетей можно создать. Для каждого заимствованного бита
количество доступных подсетей удваивается. Например, если заимствовать один бит, можно
создать две подсети. Для двух бит — 4 подсети, для трёх бит — 8 подсетей и т. д. Однако с
каждым заимствованным битом уменьшается количество адресов узлов в каждой подсети.
Биты могут быть заимствованы только из узловой части адреса. Сетевая часть адреса выделяется
оператором связи, и изменить её невозможно.
Как показано на рисунке 1, сеть 192.168.1.0/24 имеет 24 бита в сетевой части и 8 бит в узловой
части, что обозначено маской подсети 255.255.255.0 или записью с префиксом /24. Без разделения
на подсети эта сеть поддерживает работу только с одним интерфейсом локальной сети. Если
нужна дополнительная локальная сеть, основную сеть нужно разделить на подсети.
На рисунке 2 в самом старшем разряде (крайний левый бит) заимствуется 1 бит в узловой части,
расширяя сеть до 25 бит. При этом создаются две подсети: первая определяется цифрой 0 в
заимствованном бите, а вторая — цифрой 1 в заимствованном бите. Для маски подсети обеих
сетей используется цифра 1 в заимствованном бите, чтобы показать, что этот бит теперь входит в
сетевую часть адреса.
Как показано на рисунке 3, если преобразовать двоичный октет в десятичный формат, мы увидим,
что адрес первой подсети — 192.168.1.0, а адрес второй подсети — 192.168.1.128. Поскольку был
заимствован бит, маска подсети для каждой подсети будет 255.255.255.128 или /25.
Используемые подсети
192.168.1.0/25
192.168.1.128/25
Адрес первого узла — все биты 0, а также крайний правый бит 1 в узловой части адреса.
Адрес последнего узла — все биты 1, а также крайний правый бит 0 в узловой части
адреса.
Как показано на рисунке 2, адрес первого узла в сети 192.168.1.0/25 — 192.168.1.1, а адрес
последнего узла — 192.168.1.126. На рисунке 3 показано, что адрес первого узла в сети
192.168.1.128/25 — 192.168.1.129, а адрес последнего узла — 192.168.1.254.
Чтобы назначить адрес первого узла в каждой подсети интерфейсу маршрутизатора для этой
подсети, используйте команду ip address в режиме конфигурации интерфейса, как показано на
рисунке 4. Обратите внимание, что для каждой подсети используется маска подсети
255.255.255.128, которая означает, что под сетевую часть адреса отведено 25 бит.
Конфигурация узла для сети 192.168.1.128/25 показана на рисунке 5. Обратите внимание, что IP-
адресом шлюза является адрес (192.168.1.129), настроенный на интерфейсе G0/1
маршрутизатора R1, а маской подсети является 255.255.255.128.
Расчёт подсетей
Как показано на рисунке 1 для примера 192.168.1.0/25, расчёт выглядит следующим образом:
2^1 = 2 подсети
Расчёт узлов
Как показано на рисунке 2 для примера 192.168.1.0/25, расчёт выглядит следующим образом:
2^7 = 128
Поскольку для узлов не может использоваться сетевой адрес или широковещательный адрес из
подсети, эти два адреса нельзя назначить узлам. Это означает, что в каждой из подсетей можно
использовать 126 (128-2) адресов узлов.
Таким образом, в этом примере заимствование одного бита узла для сети приведёт к созданию
двух подсетей, в каждой из которых можно назначить 126 узлов.
Принятие решения о том, сколько бит в узловой части заимствовать для создания подсетей,
является важным этапом планирования. При планировании подсетей следует рассмотреть два
момента: количество адресов узлов, необходимых для каждой сети, и количество требуемых
отдельных подсетей. На анимационном представлении показаны возможности подсети для сети
192.168.1.0. Выбор количества бит для идентификатора подсети влияет на количество возможных
подсетей и количество адресов узлов в каждой из них.
Обратите внимание на обратную зависимость между количеством подсетей и узлов в них. Чем
больше бит заимствовано для создания подсетей, тем меньше останется бит в узловой части и,
следовательно, тем меньше узлов будет доступно в каждой подсети. Если требуется больше
узлов, значит, нужно больше бит в узловой части, что приводит к уменьшению количества
подсетей.
Количество узлов
При заимствовании бит для создания нескольких подсетей у вас остаётся достаточно бит в
узловой части для самой крупной подсети. Количество адресов узлов, необходимых в самой
крупной подсети, определяет, сколько бит нужно оставить в узловой части адреса. Для расчёта
количества адресов, которые будут доступны в каждой подсети, используется формула 2^n (где
n — количество оставшихся бит в узловой части). Как вы помните, два адреса использовать
нельзя, поэтому фактически количество доступных адресов рассчитывается как 2^n-2.
Иногда требуется конкретное количество подсетей, а количество адресов узлов в каждой подсети
менее важно. Например, в организации может потребоваться разделить сетевой трафик согласно
внутренней структуре или при настройке сети в подразделении. Например, организация может
принять решение объединить в одну сеть все устройства, используемые специалистами
технического отдела, а все устройства, используемые руководством, вынести в отдельную сеть. В
этом случае количество подсетей имеет более высокий приоритет при определении количества
бит для заимствования.
Как вы помните, количество подсетей, создаваемых при заимствовании бит, можно рассчитать по
формуле 2^n (где n — количество заимствованных бит). Вычитать какие-либо подсети нет
необходимости, так как они все пригодны к использованию.
Все сети в организации спроектированы таким образом, чтобы обеспечить работу конечного
количества узлов. Для базового разбиения на подсети требуется достаточно подсетей для
объединения сетей, что обеспечивает при этом нужное количество адресов в каждой подсети.
В некоторых сетях, таких как каналы сети WAN класса «точка-точка», требуется только два узла.
Другие сети, например локальная сеть пользователей в крупном здании или в отделе, могут
содержать сотни узлов. Сетевые администраторы должны разработать схему межсетевой
адресации, чтобы обеспечить максимальное количество узлов в каждой сети. Количество узлов в
каждом подразделении должно иметь запас для увеличения в будущем.
Сначала оцените общее количество узлов, необходимых для всей корпоративной объединённой
сети. Необходимо использовать достаточно крупный блок адресов, который охватывает все
устройства во всех корпоративных сетях. К таким устройствам относятся устройства конечных
пользователей, сервера, промежуточные устройства и интерфейсы маршрутизатора.
Сетевой адрес 172.16.0.0/22 имеет 10 битов в узловой части. Поскольку самой крупной подсети
требуется 40 узлов, для обеспечения их адресации требуется не менее 6 битов в узловой части.
Это число определяется по следующей формуле: 2^6 - 2 = 62 узла. Оставшиеся 4 бита в узловой
части можно использовать для создания подсетей. По формуле определения количества подсетей
получаем 16 подсетей: 2^4 = 16. Поскольку в нашем примере сетевой инфраструктуры требуются 9
подсетей, это соответствует нашим требованиям и обеспечивает некоторый запас для роста в
будущем.
Если заимствовать 4 бита, новая длина префикса будет /26 с маской подсети 255.255.255.192.
Как показано на рисунке, длина префикса /26 позволяет определить 16 адресов подсетей.
Увеличилась только часть подсети в адресе. Исходные 22 бита сетевого адреса нельзя изменить,
а узловая часть будет содержать нулевые биты.
Примечание. Обратите внимание, что поскольку часть подсети находится в третьем и четвёртом
октетах, одно или два этих значения будут изменяться в адресах подсетей.
Как показано на рисунке, исходная сеть 172.16.0.0/22 была единой сетью, в которой используются
10 бит, обеспечивая 1022 пригодных к использованию адресов для назначения узлам. Путём
заимствования 4 бит из узловой части можно создать 16 подсетей (от 0000 до 1111). В каждой
подсети имеются 6 бит в узловой части или 62 пригодных к использованию адреса узлов.
Как показано на рисунке, подсети можно назначить сегментам локальной сети и соединениям
между маршрутизаторами.
Преимущества разбиения на подсети с использованием
маски переменной длины
Традиционное разбиение ненужных адресов на подсети
Хотя это традиционное разбиение на подсети соответствует требованиям самой крупной ЛВС и
делит адресное пространство на достаточное количество подсетей, в нём создаётся значительный
объём неиспользуемых адресов.
Например, в каждой подсети для каждого из трёх WAN-соединений нужны только два адреса.
Поскольку в каждой подсети доступно по 30 адресов, 28 из них не будут использоваться. Как
показано на рисунке 3, в результате мы получаем 84 неиспользуемых адреса (28x3).
Кроме того, это ограничивает возможности для будущего роста, сокращая общее количество
доступных подсетей. Такое неэффективное использование адресов характерно для традиционного
разбиения на подсети с использованием классовых сетей.
Обратите внимание, что во всех предыдущих примерах разбиения на подсети ко всем подсетям
применялась одна маска подсети. Это означает, что в каждой подсети доступно одинаковое
количество адресов узлов.
VLSM-разбиение на подсети похоже на традиционное тем, что в нём для создания подсетей
заимствуются биты. Формулы расчёта количества возможных подсетей и количества узлов в
каждой подсети также применимы. Различие состоит в том, что разбиение на подсети выполняется
в несколько этапов. При использовании VLSM сеть сначала разбивается на подсети, а затем
подсети снова делятся на подсети. Этот процесс может повторяться много раз для создания
подсетей различного размера.
Чтобы создать более мелкие подсети для каналов сети WAN, одна из подсетей будет разделена.
На рисунке 2 последняя подсеть 192.168.20.224/27 будет дополнительно разбита на подсети.
Как вы помните, если известно требуемое количество адресов узлов, можно использовать
формулу 2^n-2 (где n — количество оставшихся бит в узловой части). Чтобы получить два
доступных адреса, в его узловой части должны остаться два бита.
2^2 - 2 = 2
Поскольку в адресном пространстве 192.168.20.224/27 имеются 5 бит в узловой части, три бита
можно позаимствовать, оставив 2 бита в узловой части.
VLSM на практике
При использовании VLSM-подсетей для сегментов ЛВС и сети WAN можно выделить адреса без
ненужной избыточности.
Узлам во всех локальных сетях будет присвоен допустимый адрес узла в диапазоне этой подсети
и с маской /27. У каждого из четырёх маршрутизаторов будет интерфейс локальной сети с
подсетью /27, а также один или несколько последовательных интерфейсов с подсетью /30.
В стандартной схеме адресации IPv4-адрес первого узла в каждой подсети назначается LAN-
интерфейсу маршрутизатора. WAN-интерфейсам маршрутизаторов назначаются IP-адреса и
маска для подсетей /30.
Узлы в каждой подсети будут иметь IPv4-адрес из диапазона адресов этой подсети и
соответствующую маску. Узлы будут использовать адрес подключённого LAN-интерфейса
маршрутизатора в качестве шлюза по умолчанию.
Узлы здания A (192.168.20.0/27) будут использовать адрес 192.168.20.1 маршрутизатора в
качестве шлюза по умолчанию.
Схема VLSM
Выделение адресов можно также спланировать с помощью ряда способов. Одним из таких
способов является определение доступных и назначенных блоков адресов с помощью схемы
VLSM. Этот метод позволяет предотвратить назначение уже выделенных адресов. Например, для
сети из предыдущего примера с помощью схемы VLSM можно спланировать назначение адресов.
Как показано на рисунке 1, при использовании традиционного разбиения на подсети первые семь
блоков адресов используются для локальных и глобальных сетей. Как вы помните, по этой схеме
были получены 8 подсетей с 30 доступными адресами в каждой из них (/27). Хотя схема подходит
для сегментов локальной сети, в сегментах сети WAN будет несколько неиспользуемых адресов.
При проектировании схемы адресации для новой сети блоки адресов можно присвоить таким
образом, чтобы сократить до минимума избыточные адреса и объединить неиспользуемые блоки
адресов.
Назначение блоков адресов VLSM
Как показано на рисунке 2, чтобы более эффективно использовать адресное пространство, для
каналов сети WAN были созданы подсети /30. Чтобы объединить неиспользуемые блоки адресов,
последняя подсеть /27 была дополнительно разбита на подсети для создания подсетей /30.
Первые 3 подсети были назначены каналам сети WAN.
Диапазон адресов узла .224 /30 от 225 до 226: канал сети WAN между маршрутизаторами
R1 и R2.
Диапазон адресов узла .228 /30 от 229 до 230: канал сети WAN между маршрутизаторами
R2 и R3.
Диапазон адресов узла .232 /30 от 233 до 234: канал сети WAN между маршрутизаторами
R3 и R4.
Диапазон адресов узла .236 /30 от 237 до 238: доступен для использования.
Диапазон адресов узла .240 /30 от 241 до 242: доступен для использования.
Диапазон адресов узла .244 /30 от 245 до 246: доступен для использования.
Диапазон адресов узла .248 /30 от 249 до 250: доступен для использования.
Диапазон адресов узла .252 /30 от 253 до 254: доступен для использования.
При подобном проектировании схемы адресации остаются три неиспользуемые подсети /27 и пять
неиспользуемых подсетей /30.