LINUX.ORG.RU

История изменений

Исправление sanwashere, (текущая версия) :

IP в ответном пакете проходит через XOR (0x2112A442 для IPv4 и «свежей» версии STUN), так что в «чистом» виде там его и не будет.

После получения адреса от STUN (атрибут XOR-MAPPED-ADDRESS), ICE библиотека браузера откроет локальный порт на прослушивание и сформирует описание [адрес из STUN и номер порта] в виде кандидата с типом srflx («server reflexive»), и передаст его веб-приложению (обычно JavaScript), которое уже отправит эту строку-описание удалённой стороне посредством какого-либо сигнального протокола (обычно WebSocket). На той стороне веб-приложение, получив строку, передаст её в свою библиотеку ICE, которая попытается проверить связность, - послать запрос по указанному в описании (кандидате) адресу и номеру порта (опять STUN, но именно не серверу, а другой стороне; обычно посредством UDP, но TCP кандидаты тоже существуют). Если запрос долетит до первой стороны (его поймает библиотека ICE), то она в свою очередь тоже отправит ответный запрос. При получении ответного запроса обе стороны будут считать связь посредством данного кандидата «успешной», и могут/будут использовать этот адрес в качестве канала для данных (обычно RTP/RTCP через DTLS или двоичные сообщения посредством SCTP через DTLS).

Исправление sanwashere, :

IP в ответном пакете проходит через XOR (0x2112A442 для IPv4 и «свежей» версии STUN), так что в «чистом» виде там его и не будет.

После получения адреса от STUN (атрибут XOR-MAPPED-ADDRESS), ICE библиотека браузера откроет локальный порт на прослушивание и сформирует описание [адрес из STUN и номер порта] в виде кандидата с типом srflx («server reflexive»), и передаст его веб-приложению (обычно JavaScript), которое уже отправит эту строку-описание удалённой стороне посредством какого-либо сигнального протокола (обычно WebSocket). На той стороне веб-приложение, получив строку, передаст её в свою библиотеку ICE, которая попытается проверить связность, - подключиться по указанному в описании (кандидате) адресу и номеру порта. Если запрос долетит до первой стороны (его поймает библиотека ICE), то она в свою очередь тоже отправит ответный запрос. При получении ответного запроса обе стороны будут считать связь посредством данного кандидата «успешной», и могут/будут использовать этот адрес в качестве канала для данных (обычно RTP/RTCP через DTLS или двоичные сообщения посредством SCTP через DTLS).

Исходная версия sanwashere, :

IP в ответном пакете проходит через XOR (0x2112A442 для IPv4), так что в «чистом» виде там его и не будет.

После получения адреса от STUN (атрибут XOR-MAPPED-ADDRESS), ICE библиотека браузера откроет локальный порт на прослушивание и сформирует описание [адрес из STUN и номер порта] в виде кандидата с типом srflx («server reflexive»), и передаст его веб-приложению (обычно JavaScript), которое уже отправит эту строку-описание удалённой стороне посредством какого-либо сигнального протокола (обычно WebSocket). На той стороне веб-приложение, получив строку, передаст её в свою библиотеку ICE, которая попытается проверить связность, - подключиться по указанному в описании (кандидате) адресу и номеру порта. Если запрос долетит до первой стороны (его поймает библиотека ICE), то она в свою очередь тоже отправит ответный запрос. При получении ответного запроса обе стороны будут считать связь посредством данного кандидата «успешной», и могут/будут использовать этот адрес в качестве канала для данных (обычно RTP/RTCP через DTLS или двоичные сообщения посредством SCTP через DTLS).