Home >Промышленный Интернет вещей>Промышленный Интернет вещей
Могут ли TCP и UDP одновременно связать один и тот же порт?


 

 

Могут ли TCP и UDP одновременно связать один и тот же порт? Прежде чем ответить на этот вопрос, нам нужно сначала понять, что такое TCP и UDP и что такое сетевые порты.

 

Введение в TCP и UDP

 

TCP и UDP это два независимых протокола IP (Интернет-протокол). Оба они работают на сетевом уровне в модели OSI. Самая большая разница между TCP и UDP это ориентированность на установление соединения и ориентированность на отсутствие соединения.

 

TCP это


Когда надежность данных, которые необходимо передать, очень важна, мы обычно используем TCP для передачи, поскольку данные, передаваемые по протоколу TCP, передаются последовательно. Если получатель данных не получает данные, переданные отправителем, TCP повторно отправит пакет через определенное время. Это то, что мы часто называем механизмом повторной передачи при потере пакетов, а также контролем перегрузки, управлением потоком и т. д. Надежность TCP обусловлена именно этими характеристиками.

 

UDP это


UDP (протокол пользовательских дейтаграмм) это служба без установления соединения. Данные UDP не будут передаваться в том же порядке, что и TCP. Получатель не будет повторно передавать данные независимо от того, были ли они получены или нет. Поэтому UDP имеет более низкую производительность, чем TCP. UDP чаще используется в приложениях, где приоритет времени выше надежности данных, таких как ежедневные видеозвонки, онлайн-игры и т. д. Потому что для этих приложений время важнее, чем согласованность данных.

 

 

Что такое сетевой порт? Что делает порт?

 

На наших компьютерах установлено множество коммуникационных программ. После того как наши компьютеры получают пакеты данных, как они точно распределяют пакеты данных по различным приложениям? Мы можем понять это так: IP-адрес в сети эквивалентен имени сообщества в нашей реальной жизни, а номер порта как номер конкретного дома.

TCP、UDP、TCP VS UDP

Роль порта заключается в том, чтобы позволить различным прикладным процессам на прикладном уровне доставлять свои данные вниз на транспортный уровень через порт и сообщить транспортному уровню, что данные в его сегментах сообщений должны быть доставлены вверх на прикладной уровень. процесс через порт. Чтобы различать порты, каждый порт пронумерован, что является номером порта. Когда мы отправляем данные с одного устройства на другое, они передаются на определенный порт TCP или UDP, в зависимости от протокола, который мы используем для связи.

 

Могут ли сокеты TCP и UDP быть привязаны к одному и тому же порту?

 

Сети серверов TCP и UDP будут вызывать привязку для привязки порта.

 

 

сетевой порт, порт

TCP-сетевое программирование

 

TCP、UDP、Socket、сокет

Сетевое программирование UDP

 

 

Порты TCP и UDP не связаны друг с другом. Порты TCP интерпретируются стеком TCP, а порты UDP интерпретируются стеком UDP. Порты это способ мультиплексирования соединений, позволяющий нескольким устройствам подключаться к одному узлу. Таким образом, технически говоря, протоколы более высокого уровня могут использовать одни и те же или разные номера портов TCP и UDP. С другой стороны, компьютер может одновременно взаимодействовать с двумя разными службами, используя одни и те же номера портов TCP и UDP.

 

 

TCP、UDP、Socket、сокет

 

 

Как показано на рисунке выше, номера портов TCP/UDP независимы друг от друга. TCP имеет номер порта 80, а UDP также может иметь номер порта 80. Между ними нет конфликта.

 

Таким образом, TCP и UDP могут быть привязаны к одному и тому же порту одновременно.

 

Транспортные протоколы TCP и UDP реализованы в ядре двумя полностью независимыми программными модулями.

 

Когда хост получает пакет данных, он может узнать, является ли пакет данных TCP или UDP, в поле «Номер протокола» заголовка IP, поэтому он может определить, какой модуль (TCP/UDP) отправить его для обработки на основе эту информацию и отправить ее в модуль TCP/UDP. Пакет отправляется, приложение которого определяется на основе «номера порта» для обработки.

 

Следовательно, соответствующие номера портов TCP/UDP также независимы друг от друга и не влияют друг на друга.

 

 

Можно ли повторно использовать порт клиента?

 

Ядро допускает повторное использование портов, пока клиент не подключен к тому же серверу. TCP-соединение однозначно подтверждается четырьмя кортежами (IP-адрес источника, порт источника, IP-адрес назначения, порт назначения). Если какой-либо элемент кортежа изменяется, это представляет собой другое TCP-соединение.

 

Если клиент использует порт 1 для установления соединения с сервером A, клиент также может использовать порт 1 для установления соединения с сервером B. Даже если номер порта клиента тот же, изменение четверной информации не приведет к соединению. конфликт.

 

Могут ли несколько сервисных процессов TCP быть привязаны к одному и тому же порту?

 

Если несколько процессов службы TCP одновременно привязывают один и тот же IP-адрес и порт, при выполнении функции bind() будет сообщено об ошибке «Адрес уже используется», если процесс службы TCP привязывает только один и тот же порт, но привязанные IP-адреса; отличаются, то об ошибке не будет сообщено.


Recommend