NAT айналасындағы релені пайдалану - Traversal Using Relays around NAT

NAT айналасындағы релені пайдалану (АЙНАЛДЫРУ) Бұл хаттама өтуге көмектеседі желілік мекенжай аудармашылары (NAT) немесе брандмауэрлер мультимедиялық қосымшаларға арналған. Оны бірге қолдануға болады Трансмиссияны басқару хаттамасы (TCP) және Пайдаланушының Datagram хаттамасы (UDP). Бұл маскарадталған желілердегі клиенттер үшін ең пайдалы симметриялық NAT құрылғылар. TURN жүгіруге көмектеспейді серверлер NAT арқылы жеке желідегі белгілі порттарда; ол, мысалы, телефониядағы сияқты NAT-тің артындағы пайдаланушының тек бір теңдесімен байланысын қолдайды.

TURN анықтайды RFC  8656. TURN URI схемасы құжатталған RFC  7065.

Кіріспе

Табиғи ресурстар жеңілдіктер бере отырып, кемшіліктермен де келеді. Бұл кемшіліктердің ішіндегі ең мазасызы - олардың көптеген қолданыстағы IP қосымшаларын бұзуы және жаңаларын орналастыруды қиындатуы. «NAT достық» хаттамаларын қалай құруға болатынын анықтайтын нұсқаулықтар әзірленді, бірақ көптеген хаттамаларды сол нұсқаулыққа сәйкес құру мүмкін емес. Мұндай хаттамалардың мысалдары мультимедиялық қосымшалар мен файлдарды бөлісуді қамтиды.

NAT үшін сеанс траверсальді утилиталары (STUN) қосымшаның NAT арқылы өтуінің бір әдісін ұсынады. STUN клиентке тасымалдаушының мекен-жайын алуға мүмкіндік береді (IP-адрес және порт), ол теңдестіруден пакеттер алу үшін пайдалы болуы мүмкін. Алайда, STUN арқылы алынған мекен-жайлар барлық құрдастарына жарамсыз болуы мүмкін. Бұл мекен-жайлар желінің топологиялық жағдайына байланысты жұмыс істейді. Сондықтан STUN өздігінен NAT травералы үшін толық шешім ұсына алмайды.

Толық шешім үшін клиент өзінің көлік мекен-жайын ала алады, ол арқылы кез-келген теңдестірушіден пакет жібере алады, ол пакетті жалпыға қол жетімді Интернетке жібере алады. Бұл жалпыға қол жетімді Интернетте орналасқан сервер арқылы деректерді беру арқылы ғана жүзеге асырылады. NAT (TURN) релесін пайдалану траверсалы - бұл клиентке IP-адрестер мен порттарды осындай реледен алуға мүмкіндік беретін протокол.

TURN әрдайым клиентке қосылуды қамтамасыз етсе де, TURN серверінің провайдері үшін ресурстарды қажет етеді. Сондықтан мүмкіндігінше басқа механизмдерді (мысалы, STUN немесе тікелей қосылымды) қалап, TURN-ді тек соңғы құрал ретінде қолданған жөн. Мұны орындау үшін Интерактивті байланыс орнату Байланыстың оңтайлы құралдарын табу үшін (ICE) әдіснаманы қолдануға болады.

Хаттама

Процесс клиенттік компьютер деректер транзакциясы үшін құрдастық компьютермен байланысқысы келген кезде басталады, бірақ клиенттің де, құрбылардың да тиісті NAT-тің артында болуына байланысты олай ете алмайды. Егер STUN параметрі болмаса, өйткені NAT-тің біреуі симметриялы NAT болып табылады (STUN-ға сәйкес келмейтін NAT түрі), TURN-ді пайдалану керек.

Біріншіден, клиент TURN серверімен «Бөлу» сұранысына жүгінеді. Бөлу сұранысы TURN серверінен өзінің ресурстарының бір бөлігін клиент үшін бөліп беруін сұрайды, сол кезде ол өз теңімен байланысуы мүмкін. Егер бөлу мүмкін болса, сервер клиентке реле ретінде пайдалану үшін мекен-жай бөледі және клиентке TURN серверінде орналасқан «бөлінген релелік көлік адресін» қамтитын «Сәтті бөлу» жауабын жібереді.

Екіншіден, клиент TURN серверіне CreatePermmissions сұрауын жіберіп, тең-серверлік коммуникациялар үшін рұқсаттарды тексеру жүйесін жасайды. Басқаша айтқанда, теңдесі бар адаммен байланыс орнатылғанда және клиентке беру үшін TURN серверіне ақпаратты қайтадан жіберген кезде, TURN сервері «peer-to-to-server» байланысының жарамдылығын тексеру үшін рұқсаттарды пайдаланады.

Рұқсаттар жасалғаннан кейін клиентте нақты деректерді жіберу үшін екі таңдау бар, (1) ол жіберу механизмін қолдана алады немесе (2) ChannelBind сұранысы арқылы арнаны резервтей алады. Жіберу тетігі қарапайым, бірақ үлкен тақырып, 36 байттан тұрады, бұл TURN релелік сөйлесу кезінде өткізу қабілеттілігін едәуір арттыра алады. Керісінше, ChannelBind әдісі жеңілірек: тақырыбы небары 4 байтты құрайды, бірақ ол басқа ойлармен қатар мезгіл-мезгіл жаңарып отыруды қажет ететін арнаның сақталуын талап етеді.

TURN сервері клиенттен деректерді қабылдайды және UDP датаграммаларын қолдана отырып, оларды деректердің адресі ретінде «Бөлінген релелік тасымалдау мекенжайы» ретінде қамтиды. Құрбылар деректерді қабылдайды және жауап береді, қайтадан UDP датаграммасын көлік протоколы ретінде пайдаланып, UDP датаграммасын TURN серверіндегі релелік мекен-жайға жібереді.

TURN сервері UDP-дің диаграммасын қабылдайды, рұқсаттарды тексереді және егер олар жарамды болса, оны клиентке жібереді.

Бұл процесс тіпті симметриялы NAT-ті айналып өтеді, өйткені клиент те, құрдастар да ең болмағанда байланыс үшін релелік IP-мекен-жай бөлген TURN серверімен сөйлесе алады.

TURN, көптеген NAT түрлерін өтуге көмектесетін STUN-ге қарағанда әлдеқайда берік болса, TURN байланысы сервер арқылы бүкіл байланысты таратады, STUN протоколынан гөрі әлдеқайда көбірек сервер өткізу қабілеттілігін талап етеді, ол тек IP мекен-жайы мен релеге қарайтын жалпыға ортақ шешеді. клиентке және олардың тікелей қарым-қатынаста пайдалануға мүмкіндік беретін ақпарат. Осы себептен ICE протоколы STUN қолдануды бірінші құрал ретінде, ал TURN-ді қолданғанда ғана қолдануға кеңес береді симметриялық NAT немесе STUN пайдалану мүмкін емес басқа жағдайлар.

Сондай-ақ қараңыз

Сыртқы сілтемелер