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

330
Darshan L

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

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

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

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

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

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

0
Не стесняйтесь взглянуть здесь: https://en.wikipedia.org/wiki/Port_(computer_networking) pim 6 лет назад 0
Связанный: [Что такое сокет?] (Https://unix.stackexchange.com/q/16311/23408) (на U & L) Scott 6 лет назад 0

1 ответ на вопрос

1
grawity

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

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

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

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