Могут ли два разных приложения связывать один и тот же порт на хосте, если они используют разные протоколы?

Мой вопрос достаточно ясен, я думаю. Если два приложения используют разные протоколы транспортного уровня (например, TCP и UDP или что-то еще), могут ли они открыть один и тот же номер порта?

Как ОС выполняет мультиплексирование, если это так?

Сколько транспортных протоколов может быть в сетевом стеке ОС? Если количество различных протоколов не ограничено, значит ли это, что компьютер может иметь неограниченные открытые порты для связи?

1 ответ

Решение

Да, TCP-порты и UDP-порты - это совершенно разные наборы портов, хотя они оба являются UInt16 и управляются одинаково.

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

Другие вопросы по тегам