Какая связь между сокетами и портами?
Я пытаюсь понять связь между сокетами и портами. Я обнаружил, что сокет является частью порта, и он обрабатывает связь для этого порта. Тем не менее, на другом блоге я прочитал
ОС не должна поддерживать сокеты для поддержки TCP или UDP!
Итак, если ОС на сервере не поддерживает сокеты, то как будет происходить обмен данными на конкретном порту?
Может ли кто-нибудь направить меня и дать простое объяснение взаимосвязи между портами и сокетами и какова роль каждого из них в общении?
1 ответ
Сокет является практическим адресом на прикладном уровне для общения. Формат адреса сокета ip_address:protocol:port
, Подробнее об адресе сокета вы можете найти здесь.
Пример:
192.168.1.1:tcp:80
это представляет адрес сокета компьютера с IP-адресом 192.168.1.1
ведьма "ожидает" соединение на port 80
если вы используете tcp
протокол.
Пример с моего компьютера
xxx@xxx ~ $ netstat -tp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 xxx.local:54595 104.16.17.44:http ESTABLISHED 32294/chrome
объяснение этой сессии
- мой компьютер общается с
104.16.17.44
- соединение установлено
- мы используем
tcp
протокол - мой компьютер попал в удаленный порт 80 ака http порт
обзор
это представляет сообщение
мой компьютер с адресом сокета xxx.local:54595:tcp
и удаленный компьютер с розеткой 104.16.17.44:http:tcp
Порт практически "дырка" для подключения. А на "дыру" назвали port 80
Вы можете использовать любой сервис. На port 80
Вы можете обслуживать любой сервис на сервере. как ftp, ssh, pop3 или любой другой.
Хорошо известная "дыра" или известные порты, подробнее о порте вы можете узнать здесь.
Порт является частью адреса сокета.
Порты и розетки являются частью tcp stack
, Хорошее объяснение здесь.
Tcp stack
это только один модуль ОС.