ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 июля
1075947 Топик полностью
Nikolay_Po (10.02.2021 13:39, просмотров: 99) ответил eyыeyк на Не претендуя на истину, предположу
Для обхода проблемы таймаутов, если есть желание использовать транспорт UDP, используйте протокол уровня приложения SIP с включённой функцией Silence Suppression. Эта фишка позволяет передавать пакеты с данными (media) в сессии SIP не всегда, а только тогда, когда есть данные (разговор). Таким образом, будете иметь действительную сессию, распознаваемую NAT'ом и не используя протокол TCP. Правда, чтобы в этом случае сама сессия SIP не разорвалась по таймауту, узлам придётся 

периодически обмениваться пакетами UDP с сообщениями протокола SIP типа "SIP OPTIONS" и "SIP OK". Учитывая, что SIP очень распространён, поддержка UDP в таком виде на NAT может присутствовать.

В общем, "звоните" от узла за NAT'ом на узел в Интернет по SIP, согласуете в сессии SIP Silence Suppression и дальше передаёте по UDP на назначенные порты пакеты с данными друг другу, не забывая про периодические запросы SIP, чтобы NAT не забыл про ваш "звонок". Таким образом можно хорошо передавать, в том числе, и особенно, данные реального времени.