Базовые протоколы TCP/IP
Порты и сокеты
К протоколам транспортного уровня относят стек TCP/IP, относят TCP (протокол управления передачей, описан в стандарте RFC 793), и UDP (протокол пользовательских дейтаграмм, описан в стандарте RFC 768).
Протоколы TCP и UDP устанавливаются на конечных узлах, главная задача этих протоколов заключается в передаче данных между прикладными процессами, выполняющимися на компьютерах в сети. Каждый компьютер может выполнять несколько процессов, а отдельный процесс может иметь несколько точек входа, выступающих в качестве адресов назначения для пакетов данных, поэтому доставка данных на сетевой интерфейс компьютера-получателя заканчивается доставкой данных конкретному процессу-получателю. Процедуры распределения протоколами TCP и UDP, поступающих от сетевого уровня пакетов между прикладными процессами, называется демультиплексированием (обратная задача - мультиплексированием).
Протоколы TCP и UDP ведут для каждого приложения две системные очереди:
1) Очередь данных, поступающих к приложению из сети.
2) Очередь данных, отправляемых этим приложением в сеть.
Такие системные очереди называются портами, причём входная и выходная очереди одного приложения рассматриваются как 1 порт.
Для идентификации им присваиваются номера. Если процессы представляют собой популярные системные службы (например, FTP, HTTP, DNS), то за ними закрепляются стандартные назначенные номера, эти номера закреплены в стандартах Internet RFC 1700 и RFC 3232. Например, номер 21 закреплён за FTP. Назначенные номера из диапазона от 0 до 1023 являются уникальными в пределах интернета и закрепляются за приложениями централизованно. Для тех приложений, которые не стали распространёнными, номера портов назначаются локально разработчиками этих приложений или операционной системой в ответ на поступление запроса от приложения.
На каждом компьютере операционная система ведёт список занятых и свободных номеров портов, такие номера называются динамическими. После завершения работы одного приложения этот номер может быть назначен другому приложению.
Динамические номера уникальны в пределах компьютера, но не сети. Между назначением номеров портов для приложений, использующих протокол TCP, и приложений, работающих с протоколом UDP, нет никакой зависимости.
Приложения, которые передают данные на уровень IP по протоколу UDP получают номера, эти номера называются UDP портами, а если по TCP – TCP портами.
Диапазоны чисел, из которых выделяются номера TCP и UDP портов, совпадают, и соответственно для назначенных от 0 до 1023-х, а динамических от 1024-х до 65535. Между назначенными и динамическими номерами TCP и UDP портов нет никакой взаимосвязи.
Стандартно назначенные номера портов уникально идентифицируют тип приложения, однако они не могут использоваться для однозначной идентификации прикладных процессов, связанных с каждым из этих типов приложений. Например, на одном хосте запущены 2 копии DNS сервера, каждый из этих DNS серверов имеет порт UDP 53. Как определить какому серверу надо отправлять такой запрос? Для этого разным копиям присваиваются разные IP адреса, соответственно сетевой интерфейс компьютера, на котором выполняются несколько приложений, должен иметь соответствующее число IP адресов, т.е. в поле данных UDP дейтаграммы будет указан номер порта 53, а в поле заголовка соответствующий IP адрес.
Дата добавления: 2015-11-28; просмотров: 1299;