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