Могут ли два разных приложения связывать один и тот же порт на хосте, если они используют разные протоколы?
Мой вопрос достаточно ясен, я думаю. Если два приложения используют разные протоколы транспортного уровня (например, TCP и UDP или что-то еще), могут ли они открыть один и тот же номер порта?
Как ОС выполняет мультиплексирование, если это так?
Сколько транспортных протоколов может быть в сетевом стеке ОС? Если количество различных протоколов не ограничено, значит ли это, что компьютер может иметь неограниченные открытые порты для связи?
1 ответ
Да, TCP-порты и UDP-порты - это совершенно разные наборы портов, хотя они оба являются UInt16 и управляются одинаково.
Вы можете создать свой собственный транспортный протокол и дать ему столько битов, сколько вы хотите для своего транспортного эквивалента номера порта, и никогда не заканчиваться номерами портов. Вы также можете создать что-то порядка 256 транспортных протоколов (хотя некоторые уже заняты) и определить огромные целые числа как переменную номера порта для всех них.