Что такое порт прослушивания - PullRequest
10 голосов
/ 19 сентября 2011

Под "прослушиванием" порта подразумевается непрерывный опрос этого порта, дискретный опрос или процесс, управляемый прерываниями.Что именно происходит в «Прослушивании порта»?

Ответы [ 2 ]

8 голосов
/ 19 сентября 2011

A порт - это не более чем концепция , это не то же самое, что если бы вы могли проверить некоторые биты памяти, ожидая некоторой информации.

Итак, прослушивание порта научит ядро, что делать при получении пакетов с этим конкретным номером порта : передать его процессу, который запросил прослушивание на этом порту, вместо ответа [или нет], что порт не открыт.

NB: это всего лишь предположения, я не исследовал какую-либо реализацию ядра.

РЕДАКТИРОВАТЬ: На стороне процесса,

  • listen сообщит ядру, что вы заинтересованы в конкретном порту рандеву
  • (я не уверен, что происходит между listen и accept, либо ядро ​​буферизует новые соединения, либо отклоняет их до тех пор, пока не будет вызван accept, см. Соответствующее руководство)
  • accept свяжет соединение с коммуникационным портом и начнет буферизацию входящих пакетов
  • recv (или poll или select, безусловно) будут получать данные из буфера приема
7 голосов
/ 19 сентября 2011

Ядро извлекает порт назначения из входящих IP-пакетов, а затем пересылает пакет всем получателям, которые зарегистрированы для этого конкретного порта (да, их может быть несколько). Пользовательский процесс обычно использует select (2) или poll (2) для ожидания события, но этот опрос отличается от традиционного опроса, такого как «чтение порта ввода-вывода; задержка 500 мс».

...