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

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

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

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

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

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

1 ответ1

1

Почти, но не совсем правильно.

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

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

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

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