Организация межсетевого взаимодействия

На рис.7.4. показано, как процессы, выполняющиеся на двух конечных узлах, передают свои данные через составную сеть.

Протоколы прикладного уровня стека TCP/IP работают на конечных узлах -компьютерах, выполняющих приложения пользователей. Их данные передаются протоколам транспортного уровня, здесь делятся на сегменты и передаются на сетевой уровень для передачи с помощью маршрутизаторов через составную сеть по сетевым адресам. Пакеты сетевого уровня упаковываются в кадры канального уровня технологии подсети, лежащей между портами соседних маршрутизаторов, и передаются в пределах этой подсети по локальным, например, МАС-адресам. Таким образом, при передаче из одной подсети в другую неизменные сетевые пакеты упаковываются в разные канальные кадры, которые, в свою очередь, используют разные протоколы физического уровня для передачи своих данных по физической среде предачи.

Рис. 7. 4. Передача данных через составную сеть

Протоколы TCP и UDP взаимодействуют через межуровневые интерфейсы с ниже лежащим протоколом IP и с выше лежащими протоколами прикладного уровня или приложениями.

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

Протоколы TCP и UDP ведут для каждого порта две очереди: очередь пакетов, поступающих в данный порт из сети, и очередь пакетов, отправляемых данным портом в сеть. Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами, причем входная и выходная очередь одного приложения рассматриваются как один порт. Порты имеют номера. Таким образом, номера портов идентифицируют приложения и прикладные процессы (рис.7.5.). Для серверных модулей общедоступных служб, таких как FTP, HTTP, DNS и т.д., назначаются хорошо известные стандартные номера портов (например, номер 21 закреплен за службой удаленного доступа к файлам FTP, a 23 — за службой удаленного управления telnet). Назначенные номера являются уникальными в пределах Интернета и назначаются приложениям централизованно в пределах 0 – 1023. Для серверных модулей менее распространенных приложений номера могут назначаться их разработчиками локально. Для других приложений, в том числе и для клиентов известных служб FTP, HTTP, telnet и т.д. ОС в ответ на поступление запроса от приложения выделяет ему динамически первый свободный номер из диапазона 1024 – 65535. После завершения работы приложения, номер его порта освобождается и может быть назначен другому приложению. Номера портов в пределах одного компьютера должны быть уникальными отдельно для TCP –протокола и отдельно для UDP – протокола. Два приложения, которые используют разные транспортные протоколы, могут получить одинаковые номера портов (например, одно – 1520 TCP, другое – 1520 UDP). Аналогично, могут совпадать номера портов, которые выделяют приложениям разные компьютеры одной сети.

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

Входной поток   Выходной поток   Входной поток   Выходной поток

Рис. 7.5. Функции протоколов TCP и UDP


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: