Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Порты и сокеты






Транспортный уровень

Непосредственно над уровнем Internet расположен транспортный уровень узел-узел, или просто транспортный уровень.

 

Наиболее важными протоколами транспортного уровня являются протокол управления передачей TCP (Transmission Control Protocol) и протокол пользовательских дейтаграмм UDP (User Datagram Protocol).

 

TCP обеспечивает надежную доставку данных со сквозным обнаружением и устранением ошибок.

UDP - это нетребовательная к ресурсам служба доставки дейтаграмм, работающая без образования логических соединений.

Оба протокола выполняют доставку данных между прикладным уровнем и уровнем Internet. Т.е. протоколы TCP и UDP выполняют посредническую роль между приложениями и транспортной инфраструктурой сети. Разработчики приложений вольны выбирать, какая из этих служб точнее отвечает задачам приложения в каждом конкретном случае.

Порты и сокеты

В то время как задачей уровня сетевого взаимодействия, к которому относится протокол IP, является передача данных между сетевыми интерфейсами в составной сети, главная задача протоколов транспортного уровня заключается в передаче данных между прикладными процессами, выполняющимися на компьютерах сети.

Каждый компьютер может выполнять несколько процессов, более того, даже отдельный прикладной процесс может иметь несколько точек входа, выступающих в качестве адресов назначения для пакетов. Поэтому доставка данных на сетевой интерфейс компьютера – получателя – это еще не конец пути, так как данные необходимо переправить конкретному процессу получателю.

Процедура распределения протоколами TCP и UDP поступающих от сетевого уровня пакетов между прикладными процессами называются демультиплексированием.

На рисунке представлено схема мультиплексирования и демультиплексирования на транспортном уровне.

Рис. 5.1

Существует и обратная задача: данные, генерируемые разными приложениями, работающими на одном конечном узле, должны быть переданы общему для всех них протокольному модулю IP для последующей отправки в сеть. Эту работу, называемую мультиплексированием, тоже выполняют протоколы TCP и UDP.

Протоколы TCP и UDP ведут для каждого приложения две системные очереди: очередь данных, поступающих к приложению из сети, и очередь данных, отправляемых этим приложением в сеть. Такие системные очереди называются портами, причем входная и выходная очереди одного приложения рассматриваются как один порт. Для идентификации портов им присваиваются номера.

 

Если процессы представляют собой популярные системные службы, такие как FTP, telnet, HTTP, TFTP, DNS и т.д., то за ними закрепляются стандартные назначенные номера, называемые также хорошо известными (well-known) номерами портов. Эти номера закрепляются и публикуются в стандартах Интернета (RFC 1700, RFC 3232). Так номер 21 закреплен за серверной частью службы удаленного доступа к файлам FTP, а 23 – за серверной частью службы удаленного управления telnet. Назначенные номера из диапазона от 0 до 1023 являются уникальными в пределах Интернета и закрепляются за приложениями централизовано.

Для тех приложений, которые еще не стали столь распространенными, номера портов назначаются локально разработчиками этих приложений или ОС в ответ на поступление запроса от приложения. На каждом компьютере операционная система ведет список занятых и свободных портов. При поступлении запроса от приложения, выполняемого на данном компьютере, ОС выделяет ему первый свободный номер. Такие номера называют динамическими.

Приложения, которые передают данные на уровень IP по протоколу UDP, получают номера, называемые UDP-портами. Аналогично, приложениям, обращающимся к протоколу TCP, выделяются TCP-порты.

В том и другом случаях это могут быть как назначенные, так и динамические номера. Диапазоны чисел, из которых выделяются номера TCP- и UDP-портов, совпадают: от 0 до 1023 для назначенных и от 1024 до 65535 для динамических. Однако никакой связи между назначенными номерами TCP- и UDP-портов нет. Даже если номера TCP- и UDP-портов совпадают, они идентифицируют разные приложения. Например, одному приложению может быть назначен TCP-порт 1750, а другому UDP-порт 1750

 

Стандартные назначенные номера портов уникально идентифицирует тип приложения (FTP, HTTP, DNS и др.), однако они не могут использоваться для однозначной идентификации прикладных процессов, связанных с каждым из этих типов приложений.

Прикладной процесс однозначно определяется в пределах сети и в пределах отдельного компьютера парой (IP-адреса, номер порта), называемой сокетом (socket). Сокет определяемый IP-адресом и номером UDP-порта, называется UDP-сокетом, а IP-адресом и номером TCP-порта – TCP-сокетом.

В переводе с английского socket (сокет) – это гнездо, в котором расположены адрес и порт. В процессе обмена, как правило, используются два сокета - сокет отправителя и сокет получателя.

Рис. 5.2

При работе на хостинге-отправителе данные от приложения поступают по протоколу UDP через порт в виде сообщений (Рис. 5.3). Протокол UDP добавляет к каждому отдельному сообщению свой 8-битный заголовок, формируя из этих сообщений собственные протокольные единицы, называемые UDP-дейтаграммами, и передает их нижележащему протоколу IP. В этом заключаются его функции по мультиплексированию данных.

Рис. 5.3


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал