Во второй лекции мы говорили, что каждый процесс, существующий в
данный момент в вычислительной системе, уже имеет собственный
уникальный номер – PID. Но этот номер неудобно использовать в
качестве локального адреса процесса при организации удаленной
связи. Номер, который получает процесс при рождении, определяется
моментом его запуска, предысторией работы вычислительного комплекса
и является в значительной степени случайным числом, изменяющимся от
запуска к запуску. Представьте себе, что адресат, с которым вы
часто переписываетесь, постоянно переезжает с место на место, меняя
адреса, так что, посылая очередное письмо, вы не можете с
уверенностью сказать, где он сейчас проживает, и поймете все
неудобство использования идентификатора процесса в качестве его
локального адреса. Все сказанное выше справедливо и для
идентификаторов промежуточных объектов, использующихся при
локальном взаимодействии процессов в схемах с непрямой
адресацией.
Для локальной адресации процессов и промежуточных объектов при
удаленной связи обычно организуется новое специальное адресное
пространство, например представляющее собой ограниченный набор
положительных целочисленных значений или множество символических
имен, аналогичных полным именам файлов в файловых системах. Каждый
процесс, желающий принять участие в сетевом взаимодействии, после
рождения закрепляет за собой один или несколько адресов в этом
адресном пространстве. Каждому промежуточному объекту при его
создании присваивается свой адрес из этого адресного пространства.
При этом удаленные пользователи могут заранее договориться о том,
какие именно адреса будут зарезервированы для данного процесса,
независимо от времени его старта, или для данного объекта,
независимо от момента его создания. Подобные адреса получили
название портов, по аналогии с портами ввода-вывода.
Необходимо отметить, что в системе может существовать несколько
таких адресных пространств для различных способов связи. При
получении данных от удаленного процесса операционная система
смотрит, на какой порт и для какого способа связи они были
отправлены, определяет процесс, который заявил этот порт в качестве
своего адреса, или объект, которому присвоен данный адрес, и
доставляет полученную информацию адресату. Виды адресного
пространства портов (т. е. способы построения локальных адресов)
определяются, как правило, протоколами транспортного уровня
эталонной модели.
Полные адреса. Понятие сокета (socket)
Таким образом, полный адрес удаленного процесса или промежуточного
объекта для конкретного способа связи с точки зрения операционных
систем определяется парой адресов: <числовой адрес компьютера в
сети, порт>. Подобная пара получила наименование socket (в
переводе – "гнездо" или, как стали писать в последнее время,
сокет), а сам способ их использования – организация связи с помощью
сокетов. В случае непрямой адресации с использованием промежуточных
объектов сами эти объекты также принято называть сокетами.
Поскольку разные протоколы транспортного уровня требуют разных
адресных пространств портов, то для каждой пары надо указывать,
какой транспортный протокол она использует, – говорят о разных
типах сокетов.
В современных сетевых системах числовой адрес обычно получает не
сам вычислительный комплекс, а его сетевой адаптер, с помощью
которого комплекс подключается к линии связи. При наличии
нескольких сетевых адаптеров для разных линий связи один и тот же
вычислительный комплекс может иметь несколько числовых адресов. В
таких системах полные адреса удаленного адресата (процесса или
промежуточного объекта) задаются парами <числовой адрес сетевого
адаптера, порт> и требуют доставки информации через указанный
сетевой адаптер.
Локальная адресация. Понятие порта
170
0
2 минуты
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!