Укрощение @Интернет@

       

Что такое порт?


Физические порты ввода-вывода хорошо известны и интуитивно понятны. Может быть, нечто аналогично есть и в Интернет? На самом же деле, с сетевой точки зрения порт - одно из полей заголовка пакета (строго говоря, их даже два - порт отправителя и порт получателя). Наличие портов позволяет уточнять с каким именно приложением, из всех, установленных на удаленном узле, клиент хочет установить соединение. Каждое из приложений "закрепляет" за собой один или несколько портов и получает все приходящее пакеты, в заголовках которых прописаны те же значения. Пакет, который никто не забирает, уничтожается, а отправителю возвращается сообщение об ошибке (в этом случае на жаргоне говорят, что "порт закрыт"). Если образно представить себе IP-адрес как номер дома, то порт – это номер квартиры.

Такая схема обеспечивает совместную работу множества приложений, так, например, на одном и том же компьютере, имеющим всего один IP-адрес, могут быть установлены почтовый сервер, сервер новостей, web-сервер, ftp-сервер. И никаких конфликтов и разборок "это чей пакет?" между ними не возникает.

Очевидно, что приложение-отправитель и приложение-получатель должны использовать общие соглашения. Можно придумать множество механизмов, обеспечивающих синхронизацию портов отправителя и получателя, но самым простым оказалось закрепить за каждым протоколом определенные порты, заставив разработчиков программного обеспечения придерживаться этого стандарта.

Прочная ассоциация порт-протокол привела к тому, что эти два термина стали частенько путать. Фраза "свяжись с сервером по сто десятому порту" - подразумевает "свяжись с сервером по протоколу POP3". На самом же деле, почтовый сервер может быть настроен и на другой порт, значение которого каким-то образом доносится клиенту.



Содержание раздела