Насколько я знаю, по состоянию на 2018 год некоторые из 65535 доступных портов имеют по крайней мере один из так называемых "протосортов портов"; Я знаю 2 таких протокола; TCP и UDP, в то время как TCP в основном используется.

Если я не ошибаюсь, эти порты являются частью операционной системы, а не материнской платой портов компьютера, и я спрашиваю себя, например, устанавливает ли Ubuntu-WSL на Windows 10 или даже целую ОС на VirtualBox, например VirtualBox- Ubuntu, WSL или эта Ubuntu имеет дополнительные 65535 доступных собственных портов?

Примечания: Некоторые кратко называют эти протоколы "протосами" (как в синтаксисе Ansible YAML).

4 ответа4

2

Вы на правильном пути - порт в этом смысле не означает физическое устройство, к которому вы подключаете что-либо, - это имя, данное определенной части сетевых протоколов TCP и UDP. Чтобы избежать путаницы с аппаратными портами, вы можете использовать термины TCP-порт или UDP-порт (UDP также имеет порты).

Большая часть компьютерных сетей - это совместное использование единой коммуникационной среды. Первоначальные сети Ethernet были физически соединены одним проводом, а беспроводная сеть все еще работает по схожему принципу - все беспроводные устройства на определенном канале должны использовать один и тот же эфир.

Но вы также можете захотеть, чтобы несколько программ использовали коммуникационную среду. Например, вы можете захотеть запустить веб-браузер (HTTP-порт 80) и почтовый клиент одновременно (SMTP-порт 25).

Понятие портов TCP или UDP позволяет нескольким программам в системе использовать один и тот же носитель.

  • Программа, желающая общаться, просит TCP предоставить ей номер свободного порта

  • Программа, желающая получать соединения, сообщает TCP, какой номер порта она будет использовать

  • TCP разбивает связь на сегменты. Включает номер порта с сегментом.

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

  • Из-за этого вам не нужен отдельный сетевой адаптер для каждой программы, которую вы хотите общаться по сети.

Порты связаны с процессами, поэтому они являются «системным» ресурсом. Вы не можете одновременно прослушивать или получать 2 процесса на одном и том же порте, но вы можете иметь 2 процесса с разными портами источника, которые общаются с одним и тем же портом назначения - это процесс, который прослушивает данный другой порт.

Прото- сокращение от протокола - это нечто особенное для ufw и других программ.

1

Сетевые порты - это не аппаратные средства, а просто программные метки, которые позволяют сетевому стеку направлять сетевой трафик в соответствующее приложение. Любая операционная система, работающая со своим собственным сетевым стеком (и, следовательно, со своим собственным IP-адресом), будет иметь свои собственные сетевые порты, независимо от того, работает она в виртуальной машине или нет.

1

Порты (например, 1-65535) и протоколы (включая tcp, udp, icmp и некоторые другие неясные) определены в стандартах Интернета и реализованы ОС как сетевой стек. (На самом деле может быть несколько стеков, например, разные стеки для ipv4 и ipv6)

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

0

Порты материнской платы являются физическими розетками для физических кабелей для ввода / вывода.

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

Сеть разработана в виде стека независимых уровней, для каждого из которых используется отдельный протокол. Протокол каждого уровня помещает свой собственный заголовок в начало каждого пакета, а заголовок каждого уровня имеет своего рода поле числового идентификатора (часто 16-разрядные целые числа без знака), которое позволяет принимающей стороне знать, что представляет собой протокол следующего уровня, так что пакеты могут быть переданы в правильный код для обработки следующего протокола.

Традиционные заголовки Ethernet в стиле «Ethernet-II» имеют поле "EtherType", в котором указано, каким будет следующий протокол. EtherType 0x0800 означает, что этот кадр Ethernet содержит IP-датаграмму.

Заголовки IP имеют поле "Протокол", в котором указано, какой протокол транспортного уровня необходим для обработки содержимого этой дейтаграммы IP. Значение 6 означает TCP, а значение 17 означает UDP.

TCP и UDP оба используют одну и ту же модель номеров портов. Они оба имеют порт источника UInt16 и порт назначения UInt16. Номера портов TCP и UDP являются гибкими и могут быть сопоставлены с различными протоколами. Но есть некоторые строгие соглашения, поэтому трафик к или от TCP-порта 80, скорее всего, будет HTTP (или каким-то другим протоколом, пытающимся замаскироваться под HTTP, чтобы попытаться пройти через прокси и брандмауэры).

Я думаю, что вы, должно быть, имели некоторое знакомство с некоторым программным обеспечением, которое связывает номера протоколов IP с номерами портов TCP/UDP. Хотя номера протокола IP служат аналогичной цели на уровне IP, так как номера портов TCP/UDP служат на транспортном уровне, они по-прежнему являются отдельными понятиями на разных уровнях и их не следует смешивать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .