Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data) · Oppitunti

Hajautetut STUN- ja TURN-palvelut

Suunnitelkaa ja ottakaa käyttöön hajautettu STUN- ja TURN-palvelininfrastruktuuri luotettavien yhteyksien varmistamiseksi käyttäjille maailmanlaajuisesti.

Oppitunti 3/411 vaihetta

Hajautetut STUN- ja TURN-palvelut on ilmainen Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-kurssilla on yhteensä 4 oppituntia.

Miksi STUN/TURN-palveluita hajautetaan?

Sujuvaan reaaliaikaiseen viestintään kaikkialla maailmassa yksi STUN- tai TURN-palvelin ei yksinkertaisesti riitä. Kaukana palvelimestanne olevat käyttäjät kokisivat suurta viivettä.

Näiden palveluiden hajauttaminen tarkoittaa niiden sijoittamista lähemmäs käyttäjiänne. Tämä parantaa yhteyksien luotettavuutta ja vähentää viiveitä kaikille käyttäjien sijainnista riippumatta.

STUN:n rooli yhteyksien muodostamisessa

Muistatteko STUN:n? STUN-palvelin (Session Traversal Utilities for NAT) auttaa WebRTC-vertaisosia selvittämään julkisen IP-osoitteensa ja porttinsa NAT:n (Network Address Translator) tai palomuurin takaa.

Se on tärkeä suoran vertaisverkkoyhteyden muodostamisessa, koska se auttaa vertaisosia selvittämään, miltä ne näyttävät ulospäin.

TURN välitettyihin yhteyksiin

Suora vertaisverkkoyhteys ei aina ole mahdollinen tiukkojen palomuurisääntöjen tai monimutkaisten NAT-asetusten vuoksi. Tällöin käyttöön tulee TURN-palvelin (Traversal Using Relays around NAT).

TURN toimii välityspalvelimena ja välittää kaiken medialiikenteen vertaisosien välillä. Näin yhteys voidaan muodostaa, mutta suoriin yhteyksiin verrattuna viive ja kaistan käyttö kasvavat.

Maailmanlaajuisen viiveen vähentäminen

Kuvitellaan, että Tokiossa oleva käyttäjä yrittää muodostaa yhteyden New Yorkissa sijaitsevaan STUN/TURN-palvelimeen. Tiedon on kuljettava pitkä matka, mikä aiheuttaa huomattavia viiveitä.

Nämä latenssina tunnetut viiveet saavat videopuheluiden kaltaiset reaaliaikaiset sovellukset tuntumaan hitailta ja reagoimattomilta. Tämän ratkaisemiseksi tarvitsemme palvelimia lähemmäs käyttäjiä.

Geo-DNS älykkääseen reititykseen

Yksi tapa hajauttaa palveluita on käyttää Geo-DNS:ää. Tämä palvelu vastaa DNS-kyselyihin pyynnön tekevän käyttäjän maantieteellisen sijainnin perusteella.

Esimerkiksi Euroopassa oleva käyttäjä saisi eurooppalaisen STUN/TURN-palvelimenne IP-osoitteen, kun taas Aasiassa oleva käyttäjä saisi aasialaisen palvelimen IP-osoitteen.

Anycast: lähimmän palvelimen taika

Anycast on toinen tehokas tekniikka. Anycastissa sama IP-osoite ilmoitetaan useista sijainneista eri puolilla maailmaa.

Kun käyttäjä yrittää tavoittaa kyseisen IP-osoitteen, verkon reititysprotokollat ohjaavat liikenteen automaattisesti lähimpään palvelininstanssiin, joka ilmoittaa kyseisen osoitteen. Se on kuin yksi osoite, joka taianomaisesti ohjaa lähimmälle palvelimelle!

Käyttöönotto useilla pilvialueilla

Yleisin tapa toteuttaa hajautus on ottaa STUN/TURN-palvelimet käyttöön useilla pilvipalveluntarjoajien alueilla (esim. AWS, Google Cloud ja Azure).

Kullakin alueella toimii joukko palvelimia, jotta eri mantereilla olevilla käyttäjillä on lähellä sijaitseva päätepiste, johon muodostaa yhteys. Tämä vähentää viivettä merkittävästi ja parantaa luotettavuutta.

Asiakaspuolen määritys

Asiakaspuolella WebRTC:n avulla voidaan määrittää useita STUN- ja TURN-palvelimia. Tämä tehdään luotaessa RTCPeerConnection-oliota käyttämällä iceServers-määritystä.

WebRTC-asiakas kokeilee näitä palvelimia älykkäästi järjestyksessä tai rinnakkain löytääkseen parhaan mahdollisen yhteysreitin ja suosii suoraa vertaisverkkoyhteyttä aina kun mahdollista.

WebRTC:n `iceServers`-taulukko

Näin voitte määrittää iceServers-asetuksen useilla hajautetuilla TURN-palvelimilla. Huomioikaa kunkin alkion urls-taulukko.

const configuration = {
  iceServers: [
    {
      urls: 'stun:stun.l.google.com:19302'
    },
    {
      urls: [
        'turn:turn.myglobalserver.com:3478?transport=udp',
        'turn:turn.myglobalserver.com:3478?transport=tcp'
      ],
      username: 'user1',
      credential: 'password1'
    },
    {
      urls: [
        'turn:turn-eu.myglobalserver.com:3478?transport=udp',
        'turn:turn-eu.myglobalserver.com:3478?transport=tcp'
      ],
      username: 'user1',
      credential: 'password1'
    }
  ]
};

// const peerConnection = new RTCPeerConnection(configuration);

Testatkaa tietonne

Miksi STUN/TURN-palvelimet kannattaa ottaa käyttöön hajautetusti useilla maantieteellisillä alueilla?

Hajautettujen STUN/TURN-palveluiden kertaus

Olette oppineet, että STUN/TURN-palvelinten hajauttaminen maailmanlaajuisesti on ratkaisevan tärkeää skaalautuville ja luotettaville WebRTC-sovelluksille.

  • Se vähentää latenssia merkittävästi tuomalla palvelimet lähemmäs käyttäjiä.
  • Se parantaa luotettavuutta tarjoamalla alueellista vikasietoisuutta.
  • Geo-DNS:n ja Anycastin kaltaiset tekniikat auttavat reitittämään käyttäjät tehokkaasti.
  • Asiakkaat määrittävät useita palvelimia iceServers-taulukossa.

Tämä lähestymistapa takaa sujuvan reaaliaikaisen käyttökokemuksen käyttäjille kaikkialla maailmassa!

Aloita maksutta

Opi Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data) tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Hajautetut STUN- ja TURN-palvelut” ilmainen?

Kyllä – oppitunnin ”Hajautetut STUN- ja TURN-palvelut” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-kurssin, päivitä CoddyKit PROhon. Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Hajautetut STUN- ja TURN-palvelut”?

Suunnitelkaa ja ottakaa käyttöön hajautettu STUN- ja TURN-palvelininfrastruktuuri luotettavien yhteyksien varmistamiseksi käyttäjille maailmanlaajuisesti. Harjoittelet Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Hajautetut STUN- ja TURN-palvelut”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-oppitunnilla?

Kyllä. Jokainen Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. SFU- ja MCU-arkkitehtuurit
  2. Signaalinvälityspalvelinten kuormantasaus
  3. Hajautetut STUN- ja TURN-palvelut
  4. SFU-palvelinten ketjutus maantieteellistä skaalausta varten
← Takaisin: Reaaliaikaiset suoratoistojärjestelmät (WebRTC + reaaliaikainen data)