Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы (4-ое изд.) - 2010 - обработка (953099), страница 138
Текст из файла (страница 138)
1и, в основе популярных утилит мониторинга 1Р-сетей р1пр и 1гасегоц1е лежат 1СМР-сообщения. Глава 17. Базовые протоколы ТСР/1Р Протоколы транспортного уровня ТСР и ООР К транспортному уровню стека ТСР/1Р относятся: О протокол управления передачей (Тгапзщ1згйоп Сопгго! Ргососо), ТСР), описанный в стандарте КРС 793; 0 щютокол польаовательских дейтаграмм (()зег Оасайгащ Ргососо(, 1Л)Р), описанный в стандарте йРС 768.
Протоколы ТСР и 1Л)Р, как и протоколы прикладного уровня, устанавливаются на конечных узлах. Порты и сокеты Мульти демультн ТСР ванне! рованне ЦОР Рно. 17.1. Мультнплекснроввнне н демультнплеконрованне на транспортном уровне В то время как задачей уровня сетевого взаимодействия, к которому относится протокол 1Р является передача данных между сетевыми интерфейсами в составной сети, главная задача протоколов транспортного уровня ТСР и Ш)Р заключается в передаче данных между щаклаоными лроцвссами, выполняющимися на компьютерах в сети.
Каждый компьютер может выполнять несколько процессов, более того, даже отдельный прикладной процесс может иметь несколько точек входа, выступающих в качестве адресов назначения для пакетов данных. Поэтому доставка данных на сетевой интерфейс компьютера-получателя — это еще не конец пути, так как данные необходимо переправить конкретному процессу-получателю. Процедура распределения протоколами ТСР н 00Р поступающих от сетевого уровня пакетов между прикладными процессами называется демультиплексированием (рис.
17.1). 565 Протоколы транспортного уровня ТСР и ОСР Существует и обратная задача: данные, генерируемые разными приложениями, работающииа на одном конечном узле, должны быть переданы общему для всех них протокольному кпдулю 1Р для последующей отправки в сеть. Эту работу, называемую мультнплеисированием, тоже выполняют протоколы ТСР и 1Л)Р. Протоколы ТСР и Ш)Р ведут для каждого приложения две системные очереди: очередь данных, поступающих к приложению из сети, и очередь данных, отправляемых этим приложением в сеть. Такие системные очереди называются портами', причем входная и вышлная очереди одного приложения рассматриваются как один порт.
Для идентификации портов им присваивают номера. Если процессы представляют собой популярные системные службы, такие как РТР се!пес, НТТР ТРТР ПНЯ и т. п., то за ними закрепляются стандартные назначенные номера, называемые также хорошо известными (чсеН-1спопгп) номерами портов. Эти номера закрепляются и публикуются в стандартах Интернета (НРС 1700, НРС 3232).
Так, номер 21 мхреплен за серверной частью службы удаленного доступа к файлам РТР а 23 — за серверной частью службы удаленного управления се1пес. Назначенные номера из диапазона от 0 ю 1023 являются уникальными е пределах Интернета и закрепляются за приложениями пептрализоеаняо. Для тех приложений, которые еще не стали столь распространенными, номера портов пюиачаются локально разработчиками этих приложений или операционной системой п ответ на поступление запроса от приложения. На каждом компьютере операционная система ведет список занятых и свободных номеров портов. При поступлении запроса от приложения, выполняемого на данном компьютере, операционная система выделяет ему первый свободный номер.
Такие номера называют динамическими, В дальнейшем все сетевые приложения должны адресоваться к данному приложению с указанием назначенною ему динамического номера порта. После того как приложение завершит работу, его номер возвращается в список свободных и может быть назначен другому приложению. Дпиамические номера являются уникальными е пределах каждого компьютера, но при згпм обычной является ситуация совпадения номеров портов приложений, выполняемых на разных компьютерах. Как правило, клиентские части известных приложений (1)ХЯ, ЮЧ%, ГТР се!пес и др.) получают динамические номера портов от ОС. Все, что было сказано о портах, в равной степени относится к обоим протоколам транспортного уровня (ТСР и 1Л) Р). В принципе, нет никакой зависимости между назначением номеров портов для приложений, использующих протокол ТСР и приложений, работаюипх с протоколом 1Л)Р Приложения, которые передают данные на уровень 1Р по протоколу Ш)Р, получают номера, называемые Ш)Р-портами. Аналогично, приложениям, сбрашаюшимся к протоколу ТСР выделяются ТСР-порты.
В том и другом случаях это могут быть как назначенные, так и динамические номера. Диапионы чисел, из которых выделяются номера ТСР- и ()РР-портов, совпадают: от 0 до 1й23 для назначенных и от 1024 до 65 535 для динамических. Однако никакой связи между нмппченными номерами ТСР- и (Л)Р-портов нет. Даже если номера ТСР- и 1Л) Р-портов вппадают, они идентифицируют разные приложения.
Например, одному приложению шкет быть назначен ТСР-порт 1750, а другому — () 1)Рпорт 1750. В некоторых случаях, югла приложение может обращаться по выбору к протоколу ТСР или ()Е)Р (например, ' Порт приложения не надо путать с портами (сетевыми интерфейсами) оборудования. Глава 17. Базовые протоколы ТСРЛР таким приложением является 1)ХБ), ему, исходя из удобства запоминания, назначаются совпадающие номера ТСР- и (П)Р-портов (в данном примере — это хорошо известный номер 53).
Стандартные назначенные номера портов уникально идентифицируют тип приложения (РТР, или НТТР, или 0ХБ и т. д.), однако они не могут использоваться для однозначной идентификации прикладных процессов, связанных с каждым из этих типов приложений. Пусть, например, на одном хосте запущены две копии 1)ХБ-сервера — РХБ-сервер 1, 1)ХБ- сервер 2 (рис. 17.2).
Каждый из этих 1)ХБ-серверов имеет хорошо известный () ОР-порт 53. Какому из этих серверов нужно было бы направить запрос клиента, если бы в 1)ХБ-запросе в качестве идентификатора сервера был указан только номером порта7 Сохвт 0МЗ-сервера 2 ()Р2, ОСР-порт йэ) 00Р-дейта~рамиз Кадр Рис.
17.2. Демультиплехсирозанне протокола ()0Р на основе сохетоэ Чтобы снять неоднозначность в идентификации приложений, разные копии связываются с разными 1Р-адресами. Для этого сетевой интерфейс компьютера, на котором выполняется несколько копий приложения, должен иметь соответствующее число 1Р-адресов— на рисунке это 1Р1 и! Р2. Во всех 1Р-пакетах, направляемых РХБ-серверу 1, в качестве 1Р-адреса указывается 1Р1, а ))ХБ-серверу 2 — адрес 1Р2. Поэтому показанный иа рисунке пакет, в поле данных которого содержится (Л)Р-дейтаграмма с указанным номером порта 53, а в поле заголовка задан адрес 1Р2, буден направлен однозначно определенному адресату — 1)ХБ-серверу 2. Прикладной процесс однозначно определяется в пределах оети и в пределах отдельного ююм..
пыотера парой ()Р-адрес, номер порта), называемой советом (зосае1). Соквт, определанный !Р-адресом и номером 00Р-порта, называется УЮР-отжатом, в (Р-адресом и номером ТСР- порта — ТСР советом. Протоколы транспортного уровня ТСР н 0ОР ПРИМЕЧАНИЕ Здгсь иы должны уточнить описанную в предыдущих главах упрощенную картину прохождения пакета вверх по стеку Действительно, как мы и отмечали, после получения 1Р-пакета от протокола канзльного уровня протокол 1Р анализирует содержимое заголовка этого пакета, после чего заголовок отбрасывается, и енаверхь передается содержимое паля данных 1Р-пакета, например 11ПР- дейтаграмма.
Упрощение состоит з том, что вместе с содержимым поля данных на транспортный уромнь передается извлеченный нз заголовка 1Р-адрес назначения, который и используется для юдзозяачной идентификации приложения. Протокол Ц0Р и Ц0Р-дейтаграммы . Йрютбкен ~НЖтгФФбЮЖИгаЕь~ся двйпкраммнмм протоколом, реализующим так ьазываемый ммедбжйФдгИйдтрж4рйяйаавяюем, кетегрый нв гарантирует доставку сообщений адресату.
При работе на хосте-отправителе данные от приложений поступают протоколу Ш>Р черье порт в виде сообщений (рис. 17.3). Протокол 1Л)Р добавляет к каждому отдельному сообщению свой 8-байтный заголовок, формируя из этих сообщений собственные проюкольные единицы, называемые ТЛЭР-дейтаграммами, и передает их нижележащему протоколу 1Р.
В этом и заключаются его функции по лгультиллексироеанию данных. Прнпакенне В Сохет В Прилакенне С Сокет С бщения рнложения С Сообщ прнпож ейтаграммы Кпропжону1Р р Приложение А ь Сокет А Рно. 17.3. Работа протокола ССР на хосте-отправителе Глава 17. Базовые протоколы ТСРДР Каждая дейтаграмма переносит ошдельнов нользоваглвльсков сообщение. Сообщения могут иметь различную длину, не превышающую однако длину поля данных протокола 1Р которое, в свою очередь, ограничено размером кадра технологии нижнего уровня.
Поэтому если буфер 0 0Р переполняется, то сообщение приложения отбрасывается. Заголовок Ш)Р состоит из четырех 2-байтных полей: 'ы1 номер 1ЛЭР-порта отправителя; 0 номер 110Р-порта получателя; 1.1 контрольная сумма; 'ьл длина дейтаграммы. Далее приведен пример заголовка () 0Р с заполненными полями: 5оэгсе Рогт - Ок0035 Оеэт!пэ11ол Рогг - Ох0411 Тоса1 1епзтп - 132 (Ох84) Ьутеэ Сьескэпв - Ох5333 В этой 1Л) Р-дейтаграмме в поле данных, длина которого, как следует из заголовка, равна (132 — 8) байт, помещено сообщение 0Х5-сервера, что можно видеть по номеру порта источника (5оэгсе Рост - 0-0035).