The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Видеочат Facebook избавился от привязки к плагину и теперь р..., opennews (ok), 12-Янв-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


14. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от Ilya Indigo (ok), 12-Янв-15, 21:15 
Вот одного не могу понять, каким образом WebRTC связывает 2 браузера методом p2p, не требуя ни от одного из клиентов быть активным? То есть иметь открытый порт, к которому другой клиент должен подключиться?
Разъясните пожалуйста, каким образом, тот же Firefox Hello, работает заявляя, что соединение устанавливается напрямую и только между ними?
Или я что-то не понимаю, или соединение устанавливается через сервер Firefox, к которому уже подключаются оба пассивных клиента.
Ответить | Правка | Наверх | Cообщить модератору

20. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от all_glory_to_the_hypnotoad (ok), 12-Янв-15, 21:53 
Для передачи медиа соединения практически везде устанавливаются напямую, сигнализация идёт через посредника. На счёт как удаётся первое смотри что такое STUN и TURN.
Ответить | Правка | Наверх | Cообщить модератору

22. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от Ilya Indigo (ok), 12-Янв-15, 22:22 
> TURN

Ничего связанного с IT я не нащёл.

> STUN

https://ru.wikipedia.org/wiki/STUN
STUN (Утилиты прохождения сессий для NAT, Простое прохождение UDP через серверы NAT) — это сетевой протокол, который позволяет клиенту, находящемуся за сервером трансляции адресов (или за несколькими такими серверами), определить свой внешний IP-адрес, способ трансляции адреса и порта во внешней сети, связанный с определённым внутренним номером порта.

Если я правильно понял, то он позволяет всего лишь определить мой IP и заранее открытый UDP-порт за натом. Но если я нахожусь даже не за натом и у меня реальник, но закрыты iptables-ом все порты, кроме используемых, то как в таком случае он собирается устанавливать соединение?

Ответить | Правка | Наверх | Cообщить модератору

26. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +3 +/
Сообщение от Нанобот (ok), 12-Янв-15, 22:36 
>> TURN
> Ничего связанного с IT я не нащёл.

твой навык владения гуглом ещё слишком слаб, юный падаван.
вот - https://ru.wikipedia.org/wiki/Traversal_Using_Relay_NAT

Ответить | Правка | Наверх | Cообщить модератору

27. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от Ilya Indigo (ok), 12-Янв-15, 22:51 
Благодарю. Возможно.
Но скорее всего я просто устал и спать уже хочу, но угораздило меня перед сном почитать opennet, где всплыла тема с давно интересовавшим меня вопросом :-)
И теперь мне уже не до сна, пока не разберусь how does it work :-)
Ответить | Правка | Наверх | Cообщить модератору

29. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от Ilya Indigo (ok), 12-Янв-15, 23:10 
>STUN и TURN

Session Traversal Utilities for NAT (STUN) предусматривает одно средство для прохождения NAT. STUN позволяет клиенту получить транспортный адрес (IP адрес и порт), который может быть полезен для приема пакетов от peer-ов. Однако адреса, полученные через STUN, не могут быть доступны всем peer-ам. Эти адреса работают в зависимости от топологии сети. Таким образом, STUN сам по себе не может обеспечить комплексное решение для обхода NAT.

Законченное решение требует средств, с помощью которых клиент мог бы получить транспортный адрес, на который он мог бы получать поток данных от любого peer-а который может передавать пакеты данных в публичный интернет. Это может быть достигнуто лишь путем ретрансляции данных через сервер, который находится в общедоступном Интернете. Эта спецификация описывает Traversal Using Relay NAT (TURN), протокол, который позволяет клиенту получить IP-адреса и порты от таких peer-ов.

Хотя TURN будет почти всегда обеспечивать подключение к клиенту, он создает большую нагрузку на провайдера TURN-сервера. Поэтому рекомендуется использовать TURN только в крайнем случае, предпочитая другие механизмы (например, STUN или прямое подключение), когда это возможно. Для достижения этого может использоваться методология Interactive Connectivity Establishment (ICE), чтобы найти оптимальное средство связи.

C TURN вроде всё ясно, если через STUN не удаётся получить адрес и порт, то сервер занимается ретрансляцией, то есть все данные проходят через посредника со всеми вытекающими, для приватности, последствиями.

Но мне взрывает мозг первый абзац.
Как всё же STUN, и в каких именно случаях, умудряется получить адрес и порт клиента для подключения, и почему он может быть доступен лишь одному клиенту?

Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

50. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +1 +/
Сообщение от Аноним (-), 14-Янв-15, 10:38 
С приватностью все в порядке, трафик шифруется на клиентах, и у TURN ключей нет. Другое дело, что ключи должны передаваться по сигнальным протоколам, которые, в общем-то, к WebRTC отношения не имеют, и чаще всего сводятся к HTTPS + SDP через удаленный сервер (который в общем случае не тот, который STUN/TURN).

STUN работает только с симметричным NAT'ом. Грубо говоря, клиент отправляет запрос на STUN-сервер, живущий в публичном Internet. Тот видит адрес и порт (внешние), с которых пришел запрос, и возвращает их в ответе. Симметричный NAT работает так, что при приходе на эти внешние адрес/порт запроса или трафика с другого клиента этот трафик будет направлен на тот же хост и порт внутренней сети.

Собственно, ICE и подразумевает сбор всевозможных адресов клиента (т.н. кандидатов). Эти кандидаты затем передаются другому клиенту по сигнальному протоколу, и тот начинает пытаться достучаться по этим адресам.

Ответить | Правка | Наверх | Cообщить модератору

51. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +/
Сообщение от Ilya Indigo (ok), 14-Янв-15, 16:45 
Спасибо за Ваш ответ :-)

Почитав спеки на инглише и ваш ответ, стало более-менее понятно.

Мне хочется, помимо STUN/TURN, просто указать TCP/UDP порт, который будут передаваться собеседникам, по которому они смогут подключаться напрямую, не трогая STUN/TURN серверы вообще. И им лучше бы было, и мне спокойней. А вот если по этому порту я не доступен, тогда уже шаманство с STUN/TURN. Ну и конечно же с обоюдным шифрованием.

Но пока имеем что имеем.

Ответить | Правка | Наверх | Cообщить модератору

53. "Видеочат Facebook избавился от привязки к плагину и теперь р..."  +1 +/
Сообщение от Аноним (-), 14-Янв-15, 23:23 
Так оно так и происходит. "Локальные" кандидаты никто не отменял. Но работать они будут, есс-но, только в рамках одной сети.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру