2016-01-05 4 views
0

Предположим, что у меня есть два процесса, оба прослушивают порт 80 (html), ожидая, что пакет html будет распакован, проанализирован и отображен. Теперь, как система знает, для какого процесса является html-пакет? Например, кажется, Skype слушает порт 80, а другое приложение тоже. Как Skype знает «этот пакет для меня?» и на каком сетевом уровне этот процесс происходит?один порт для нескольких приложений [network]

+0

Возможно, есть какой-либо флаг или что-то в заголовке пакета? – yogipriyo

ответ

1

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

Также порт не является уникальной общесистемной вещью, только «порт + IP-адрес». Таким образом, несколько приложений могут безопасно использовать один и тот же порт, если они связаны с разными сетевыми интерфейсами.

Смежные вопросы