- •12.4 Возникновение коллизии Ошибка! Закладка не определена.
- •Общие принципы построения сетей
- •Простейшая сеть из двух компьютеров
- •Сетевые интерфейсы
- •Проблемы связи нескольких компьютеров
- •Топология физических связей
- •Адресация узлов сети
- •Коммутация
- •Маршрутизация
- •Продвижение данных
- •Обобщенная задача коммутации
- •Мультиплексирование и демультиплексирование
- •Типы коммутации
- •Коммутация каналов
- •Элементарный канал
- •Составной канал
- •Неэффективность при передаче пульсирующего трафика
- •Коммутация пакетов
- •Способы соединения абонентов в сети
- •Дейтаграммная передача
- •Передача с установлением логического соединения
- •Передача с установлением виртуального канала
- •Сравнение сетей с коммутацией пакетов и каналов
- •Архитектура и стандартизация сетей
- •Протокол и стек протоколов
- •Общая характеристика модели osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Сеансовый уровень
- •Уровень представления
- •Прикладной уровень
- •Понятие открытой системы
- •Распределение протоколов по элементам сети
- •Вспомогательные протоколы транспортной системы
- •Структурированная кабельная система зданий
- •Стандартизация протоколов локальных сетей
- •Ethernet со скоростью 10 Мбит/с на разделяемой среде
- •Форматы кадров технологии Ethernet
- •Доступ к среде и передача данных
- •Спецификации физической среды
- •Технологии Token Ring и fddi
- •Беспроводные локальные сети ieee 802.11
- •Проблемы и области применения беспроводных локальных сетей
- •Топологии локальных сетей стандарта 802.11
- •Логическая структуризация сетей и мосты
- •Алгоритм прозрачного моста ieee 802.1d
- •Топологические ограничения при применении мостов в локальных сетях
- •Коммутаторы. Параллельная коммутация
- •Дуплексный режим работы
- •Виртуальные локальные сети
- •Назначение виртуальных сетей
- •Создание виртуальных сетей на базе одного коммутатора
- •Создание виртуальных сетей на базе нескольких коммутаторов
- •Стек протоколов tcp/ip
- •Формат ip-адреса
- •Классы ip-адресов
- •Особые ip-адреса
- •Использование масок при ip-адресации
- •Порядок назначения ip-адресов
- •Назначение адресов автономной сети
- •Централизованное распределение адресов
- •Адресация и технология cidr
- •Отображение ip-адресов на локальные адреса
- •20.1Протокол разрешения адресов
- •Формат ip-пакета
- •Упрощенная таблица маршрутизации
- •Пример ip-маршрутизации без масок
- •Маршрутизация с использованием масок
- •Структуризация сети масками одинаковой длинны
- •Перекрытие адресных пространств
- •Протоколы транспортного уровня tcp и udp
- •Протокол udp и udp-дейтаграммы
- •Протокол tcp и tcp-сегменты
- •Протокол rip
- •Построение таблицы маршрутизации
Протокол udp и udp-дейтаграммы
Протокол UDP, подобно IP, является дейтаграмным протоколом, реализующим так называемый надежный сервис по возможности, который не гарантирует доставку сообщений адресату.
При работе на хосте-отправителе данные от приложений поступают протоколу UDP через порт в виде сообщений (рис. 17.3). Протокол UDP добавляет к каждому отдельному сообщению свой 8-байтный заголовок, формируя из этих сообщений собственные протокольные единицы, называемые UDP-дейтаграммами, и передает их нижележащему протоколу IP. В этом и заключаются его функции по мультиплексированию данных.
Рис. 17.3. Работа протокола UDP на хосте-отправителе
Каждая дейтаграмма переносит отдельное пользовательское сообщение. Сообщения могут иметь различную длину, не превышающую, однако длину поля данных протокола IP, которое, в свою очередь, ограничено размером кадра технологии нижнего уровня. Поэтому если буфер UDP переполняется, то сообщение приложения отбрасывается.
Заголовок UDP состоит из четырех 2-байтных полей:
номер UDP-порта отправителя;
номер UDP-порта получателя;
контрольная сумма;
длина дейтаграммы.
Далее приведен пример заголовка UDP с заполненными полями:
Source Port - 0x0035
Destination Port = 0x0411
Total length = 132 (0x84) bytes
Checksum = 0x5333
В этой UDP-дейтаграмме в поле данных, длина которого, как следует из заголовка, равны (132-8) байт, помещено сообщение DNS-сервера, что можно видеть по номеру порта источника (Source Port = 0-0035). В шестнадцатеричном формате это значение равно стандартному номеру порта DNS-сервера — 53.
К примеру, если контрольная сумма показывает, что в поле данных UDP-дейтаграммы произошла ошибка, протокол UDP просто отбрасывает поврежденную дейтаграмму.
Работая на хосте-получателе, протокол UDP принимает от протокола IP извлечение из пакетов UDP-дейтаграммы. Полученные из IP-заголовка IP-адрес назначения и из UDP-заголовка номер порта используются для формирования UDP-сокета, однозначно идентифицирующего приложение, которому направлены данные. Протокол UDP освобождает дейтаграмму от UDP-заголовка. Полученное в результате сообщение он передает приложению на соответствующий UDP-сокет. Таким образом, протокол UDP выполняет демультиплексирование на основе сокетов.
Протокол tcp и tcp-сегменты
Протокол TCP предназначен для передачи данных между приложениями. Этот протокол работает на логическом соединении, что позволяет ему обеспечивать гарантированную доставку пакета, используя в качестве инструмента ненадежный дейтаграммный сервис протокола IP.
При работе на хосте-отправителе протокол TCP рассматривает информацию, поступающую к нему от прикладных процессов, как неструктурированный поток байтов (рис 17.4). Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая называется сегментом и снабжается заголовком
Рис. 17.4. Формирование TCP-сегментов из потока байтов
ПРИМЕЧАНИЕ
Поясним значение однобитных полей, называемых флагами, или кодовыми битами (Code bits). Они расположены сразу за резервным полем и содержат служебную информацию о типе данного сегмента. Положительное значение сигнализируется установкой этих битов в единицу:
URG - срочное сообщение;
ACK - квитанция на принятый сегмент;
PSH - запрос на отправку сообщения без ожидания заполнения буфера;
RST - запрос на восстановление соединения;
SYN - сообщение, используемое для синхронизации счетчиков переданных данных при установлении соединения;
FIN - признак достижения передающей стороной последнего байта в потоке передаваемых данных
Основная задача TCP протокола – это установление надежного логического соединения.
Рис. 17.5. Формат заголовка TCP-сегмента
