Что такое внутренние сетевые порты?

Что такое внутренние сетевые порты?

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

Но я хочу понять, что это за порты внутри?

Ниже приведено мое понимание сетевых портов. Поправьте меня, если я не прав. Добавьте подробности, чтобы было понятнее.

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

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

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

решение1

Почти, но не совсем верно.

  • Розеткиявляются программной конструкцией с буферами (каждый сокет имеет отдельные очереди отправки и получения). Для TCP каждое соединение использует отдельный сокет.

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

Каждый сокет связан с несколькими параметрами — протоколом, локальными и удаленными адресами, а также локальными и удаленными портами — и все они используются при поиске полученного пакета. (Если адреса идентичны, по крайней мере один из портов должен отличаться. Но если адреса различны, то несколько сокетов могут использовать идентичные порты.)

Связанный контент