В чем преимущество использования нескольких портов в UDP-транспорте RTI connext DDS, тогда как только один порт используется в TCP/IP RTI connext DDS??
несколько портов используются в UDP-транспорте RTI connext DDS?
Ответы (2)
Сопоставление портов UDP определяется Спецификацией проводного протокола взаимодействия OMG RTPS DDS (http://www.omg.org/spec/DDSI-RTPS/), Модель для конкретной платформы (PSM): UDP/IP.
Есть несколько преимуществ/требований, оправдывающих использование разных портов для обнаружения и трафика данных. Наиболее актуальными являются:
- Дифференциация трафика: использование разных портов упрощает идентификацию разных типов трафика. Это полезно как для отладки (например, с помощью wireshark), так и для применения другой обработки к обнаружению и трафику пользовательских данных.
- Параллелизм: используя несколько портов, можно распараллелить обработку и создание трафика обнаружения и пользовательских данных. Это имеет решающее значение в некоторых средах, которые имеют строгие требования к задержке для трафика пользовательских данных.
Конструкция RTI Connext TCP Transport соответствует этим двум требованиям, но имеет дополнительное требование:
- Поддержка NAT. Транспорт TCP должен легко настраиваться в средах NAT.
RTI Connext TCP Transport поддерживает режим, в котором открывается только один серверный порт для приема всех подключений (на настроенном server_bind_port), необходимых для связи двух Участников. Таким образом, он совместим со средами NAT, где только участник, использующий сервер RTI TCP, имеет общедоступный адрес и порт. Затем участники, использующие клиенты RTI TCP, просто откроют соединения с этим сервером.
Обратите внимание, что даже если RTI TCP Transport открывает только один серверный порт/сокет, сервер использует этот сокет только для приема соединений. RTI TCP Transport по-прежнему открывает разные соединения для обработки каждого вида и направления трафика (входящее/исходящее обнаружение, входящие/исходящие пользовательские данные). Требование параллелизма по-прежнему выполняется.
Что касается дифференциации трафика, RTI TCP Transport добавляет дополнительные заголовки к RTPS-трафику, чтобы его можно было легко идентифицировать в сети.
Обратите внимание, что это относится к RTI, так как в настоящее время нет спецификации для модели OMG TCP PSM, тем не менее, в настоящее время она находится в разработке OMG.
Не могу ответить на вопросы о "преимуществе". Однако я могу объяснить, почему это делается именно так, а вы можете судить сами.
Методология анонимного однорангового обнаружения UDP определена в стандарте таким образом. Стандарт определяет, как получаются номера портов для данного Участника по заданному адресу. Поскольку это предусмотрено стандартом, DDS поставщика А может немедленно найти DDS поставщика Б.
Не существует аналогичного TCP-аналога стандарту, определенному UDP. В конце концов, они будут, но на данный момент каждый поставщик, желающий предоставить TCP-транспорт, может делать это по своему усмотрению. Это означает, что по большей части метод продавца-А не будет работать с методом продавца-Б, поэтому они не будут видеть друг друга.
Кстати, именно поэтому транспорты с общей памятью также несовместимы с поставщиками.
Транспорт RTI Connext TCP/IP использует один порт для обнаружения. После этого он использует любые эфемерные порты, созданные для сокетных соединений между одноранговыми узлами.