Kapag naglimbag ang isang pahina ng pagsubok ng WebRTC ng 172.20.4.15, nalaman nito na may lokal na interface sa network na iyon. Iyon ay tunay na pagbubunyag, at hindi ito ang parehong natuklasan ng «lumabas ang media sa labasan ng VPN». Ang pagtuklas ng kandidato at ang pagruruta ng packet ay magkaibang mekanismo, at pinagsasama ng karamihan ng ulat ng pagtagas ang mga ito sa isang hatol. Alin sa dalawa ang tinitingnan mo ang nagtatakda ng lunas.

Nagaganap ang pagtipon bago may ipadala

Inililista ng browser ang mga lokal na interface, nagpapadala ng kahilingan sa pagbubuklod sa isang server ng STUN at humihingi ng paglalaan sa isang server ng TURN, pagkatapos ay isinusulat ang mga resulta sa paglalarawan ng sesyon bilang mga linya ng kandidato. Natatapos ang lahat ng ito nang walang tawag, walang media at walang kabilang panig. Kaya ang listahan ng kandidato ay talaan ng pagtuklas, hindi ng paghahatid.

Maaaring palitan ng mga makabagong browser ang literal na address ng kandidatong host ng isang pangalang mDNS .local, kaya hindi mabasa ng pahina ang pribadong IP. Nakikita pa rin ng lokal na network ang mga multicast na tanong na naglulutas ng pangalang iyon, kaya nakatago ang address sa aplikasyon sa halip na inalis sa network.

Mahalaga rin ang pagkakasunod-sunod: ang bagong pagkarga ng pahina ay nagtitipon ng bagong set, na may ibang paglalaan ng TURN at posibleng ibang reflexive na pagmamapa. Ang dalawang pagtakbo na hindi magkatugma ay hindi kinakailangang dalawang magkaibang pagsasaayos.

Tatlong uri ng kandidato, tatlong uri ng ebidensya

Ang bawat linya ay nagmumula sa ibang obserbasyon. Ang bawat uri ay sumasagot sa ibang tanong, at pinaghihiwalay sila ng talahanayan ayon sa kaya at hindi kayang patunayan.

CandidateDerived fromWhat it establishesWhat it cannot establish
HostAn interface on the deviceA local address exists in that networkThat the peer can reach it
Server-reflexiveA STUN binding responseHow a NAT mapped this sourceWhich exit the media will use
Peer-reflexiveA connectivity check that arrivedAn address seen by the far sideThat it was ever advertised
RelayA TURN allocationThe relay server accepted the sessionThat the relay carries the call

Ang kandidatong relay ay karaniwang napagkakamalang address ng internet ng gumagamit. Pag-aari ito ng server ng TURN, at ang presensya nito ay nagpapakita na may relay na magagamit, hindi na pinili ito ng browser. Ang parehong kalituhan ay pumupunta sa kabilang direksyon sa mga kandidatong host, kung saan itinatago ng pangalang mDNS ang address sa pahina habang dinadala pa rin ng network ang mga tanong. Basahin ang uri bago basahin ang halaga.

Sinasagot ng napiling pares ang tanong sa pagruruta

Ipinares ng ICE ang bawat lokal na kandidato sa bawat malayong kandidato, nagpapatakbo ng mga pagsusuri sa pagkakakonekta sa bawat pares at nagmumungkahi ng panalo. Ang nominadong pares na iyon, na nakikita sa diagnostiko ng browser mismo, ang nagdadala ng media. Lahat ng iba pa sa listahan ay posibilidad na natalo.

Sinasabi ng panalo ang hugis ng landas. Relay papuntang relay ay dumadaan sa server ng TURN, ang pares ng host ay nananatili sa lokal na network, at ang server-reflexive na pares ay direktang dumadaan sa NAT. Iyon ang katotohanang kailangan ng pagsusuri ng VPN, at ibang katotohanan ito kaysa sa listahan ng address. Dalawang tawag na may magkatulad na listahan ng kandidato ay maaaring kumuha ng magkaibang pares.

Ang mga kandidatong hindi napili ay natipon pa rin, at ang pagtipon ay trapik ng network na lumalabas sa makina. Ang tawag na sa huli ay gumamit ng relay ay hindi nangangahulugang walang isinisiwalat habang binubuo ang listahan.

Ang mga kontrol ay tumutugma sa mga layunin, hindi sa iskor ng pagtagas

Inilalarawan ng espesipikasyon ng WebRTC sa paghawak ng IP ang ilang patakaran: gamitin lamang ang interface na nagdadala ng default na ruta, gamitin ang lahat ng interface, at patayin ang UDP na walang proxy upang kailangang dumaan ang trapik sa isang relay o proxy. Ang bawat isa ay nagpapalit ng pagkakakonekta at latency para sa ibang uri ng pagkakalantad. Alin ang ipinapatupad ng browser, at sa anong pangalan, ay nag-iiba ayon sa plataporma at bersyon.

Piliin ang patakaran mula sa layunin. Ang pagtatago ng lokal na address sa isang pahina ay isang layunin; ang pagpigil sa direktang trapik sa pagitan ng mga kapantay ay isa pa; ang pagpapanatili ng bawat packet sa loob ng tunnel ay ang pangatlo. Ang una ay tungkol sa natututuhan ng aplikasyon, ang pangalawa ay tungkol sa aling landas ang pinapayagan, at ang pangatlo ay dapat ipatupad din sa hangganan ng plataporma o ng VPN.

Anuman ang kontrol na piliin mo, tiyakin ang dalawang kalahati: patakbuhin ang pagsubok sa pagtipon at itala ang mga uri ng kandidato, pagkatapos ay siyasatin ang napiling pares sa isang tunay na sesyon. Ang malinis na listahan ng address na may direktang landas ng media ay landas pa ring hindi mo sinasadya.

Kaugnay na mga artikulo