Короткий ответ:
Судя по ответу, приведенному здесь . Вы можете иметь два приложения, прослушивающие один и тот же IP-адрес и номер порта, поэтому один из портов является портом UDP, а другой - портом TCP.
Объяснение:
Концепция порта применима к транспортному уровню стека TCP / IP, поэтому, если вы используете разные протоколы транспортного уровня стека, вы можете иметь несколько процессов, прослушивающих одну и ту же <ip-address>:<port>
комбинацию.
Люди сомневаются в том, что если два приложения работают в одной <ip-address>:<port>
комбинации, как клиент, работающий на удаленном компьютере, различает эти два? Если вы посмотрите на заголовок пакета уровня IP ( https://en.wikipedia.org/wiki/IPv4#Header ), вы увидите, что биты с 72 по 79 используются для определения протокола, именно так можно провести различие.
Однако, если вы хотите, чтобы два приложения использовали одну и ту же <ip-address>:<port>
комбинацию TCP , ответ - нет (Интересным упражнением будет запуск двух виртуальных машин, присвоение им одинакового IP-адреса, но разных MAC-адресов, и посмотреть, что произойдет - вы заметите, что несколько раз VM1 получит пакеты, а в другой раз VM2 получит пакеты - в зависимости от обновления кэша ARP).
Я чувствую, что, запустив два приложения на одном и том же, <op-address>:<port>
вы хотите добиться некоторой балансировки нагрузки. Для этого вы можете запускать приложения на разных портах и писать правила IP-таблиц для разделения трафика между ними.
Также см. Ответ @ user6169806.