Я пытаюсь понять связь между сокетами и портами. Я обнаружил, что сокет является частью порта, и он обрабатывает связь для этого порта. Тем не менее, в другом блоге я прочитал
Os не должен поддерживать сокеты для поддержки TCP или UDP!
Итак, если ОС на сервере не поддерживает сокеты , тогда как будет происходить обмен данными по определенному порту?
Может ли кто-нибудь направить меня и дать простое объяснение взаимосвязи между портами и сокетами и какова роль каждого из них в обмене данными?
Сокет является практическим адресом на прикладном уровне для коммуникации. Формат адреса сокета 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
explantion этой сессии
104.16.17.44
tcp
протоколОбзор
это представляет коммуникацию
мой ПК с адресом сокета xxx.local:54595:tcp
и удаленный ПК с сокетом 104.16.17.44:http:tcp
Порт является практически "дырой" для соединения. Но на "дыре" назван port 80
можно использовать любой сервис. На port 80
можно служить любому сервису на сервер. как ftp, ssh, pop3 или любой другой.
Известная "дыра" иначе стандартные порты, больше о порте Вы имеете здесь
Порт является частью адреса сокета.
Порты и часть площади сокетов tcp stack
. Хороший explination heve здесь.
Tcp stack
только один modul ОС.