Streaming-systemer i realtid (WebRTC og live-data) · Lektion

STUN-serverens funktion forklaret

Lær, hvordan STUN-servere (Session Traversal Utilities for NAT) hjælper peers med at finde deres offentlige IP-adresser og porttilknytninger.

Lektion 2 af 411 trin

STUN-serverens funktion forklaret er en gratis Streaming-systemer i realtid (WebRTC og live-data)-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Streaming-systemer i realtid (WebRTC og live-data), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Streaming-systemer i realtid (WebRTC og live-data)-kurset indeholder 4 lektioner i alt.

Hvad er en STUN-server?

Velkommen! I dag afdækker vi mysteriet bag STUN-servere. STUN står for Session Traversal Utilities for NAT. Det er en vigtig teknologi, der hjælper WebRTC-forbindelser med at fungere.

Dens primære opgave er at hjælpe enheder bag en NAT (Network Address Translator) med at finde deres offentlige IP-adresse og portnummer. Det er afgørende for at oprette direkte peer-to-peer-forbindelser.

NAT: En kort påmindelse

Kan du huske NAT fra den forrige lektion? NAT hjælper flere enheder på et privat netværk med at dele én offentlig IP-adresse. Det er godt til at spare på IP-adresser, men det skjuler din enheds faktiske netværksadresse for omverdenen.

Det er et problem for WebRTC! Peers skal kende hinandens faktiske adresser, som kan dirigeres på netværket, for at oprette direkte forbindelse. STUN løser dette problem.

STUNs kernefunktion: Opdagelse

Se en STUN-server som en venlig hjælper på det offentlige internet. Når din enhed vil kende sin offentlige identitet, spørger den STUN-serveren: "Hej, hvad er min offentlige IP-adresse og port set fra dit perspektiv?"

STUN-serveren svarer med den offentlige adresse, den observerede, at din anmodning kom fra. Det er din enheds offentlige 'ansigt' ud mod internettet.

Forløbet for en STUN-anmodning

En STUN-anmodning fungerer typisk sådan:

  • Din WebRTC-klient sender en 'binding request' til en kendt STUN-server.
  • Anmodningen går gennem dit lokale netværk og derefter gennem din NAT.
  • NAT ændrer pakken og tildeler en offentlig IP-adresse og port, før den sender den videre.
  • STUN-serveren modtager anmodningen.

Forstå STUN-svaret

Når STUN-serveren modtager din anmodning, registrerer den kilde-IP-adressen og porten for den indgående pakke. Det er den adresse, den ser som din offentlige adresse.

Derefter sender den et 'binding response' tilbage til din klient med den observerede offentlige IP-adresse og port. Din klient ved nu, hvordan den ser ud for omverdenen!

Binding requests i detaljer

En 'binding request' er ikke bare et simpelt 'hej'. Det er et specifikt meddelelsesformat, der er defineret af STUN-protokollen.

  • Den indeholder et transaktions-id, så anmodninger kan matches med svar.
  • Den beder serveren om at afspejle klientens observerede netværksadresse.
  • Svaret indeholder attributter som XOR-MAPPED-ADDRESS, der angiver den offentlige IP-adresse og port.

STUN og WebRTCs ICE

STUN-servere er en grundlæggende del af WebRTCs ICE (Interactive Connectivity Establishment)-rammeværk.

ICE bruger STUN (og nogle gange TURN) til at indsamle alle mulige netværksadresser (kaldet 'candidates') for en peer. Disse candidates omfatter lokale IP-adresser, offentlige IP-adresser (fra STUN) og videresendte IP-adresser (fra TURN).

Konfiguration af STUN i WebRTC

I WebRTC konfigurerer du STUN-servere som en del af opsætningen af din RTCPeerConnection. Browseren håndterer derefter automatisk kommunikationen med STUN-serveren for at indsamle ICE-candidates.

Sådan definerer du en STUN-server til din peer-forbindelse:

const configuration = {
  iceServers: [
    {
      urls: 'stun:stun.l.google.com:19302'
    }
  ]
};

const peerConnection = new RTCPeerConnection(configuration);

// The browser will now use the STUN server
// to discover public IP/port for ICE candidates.

STUN sammenlignet med NAT-typer

STUN fungerer meget godt med bestemte NAT-typer, f.eks. Full Cone NAT og Restricted Cone NAT, hvor tilknytningen mellem interne og eksterne porte er konsistent.

STUN kan dog have problemer med mere komplekse NAT-typer, f.eks. Symmetric NATs. I disse tilfælde er en TURN-server (som vi gennemgår bagefter!) ofte nødvendig for at videresende trafik.

Test din viden om STUN

Hvilket af følgende beskriver bedst den primære rolle for en STUN-server i WebRTC?

STUN: Din NAT-hjælper

Godt gået! Du har lært, at STUN-servere (Session Traversal Utilities for NAT) er afgørende for WebRTC.

  • De hjælper enheder bag NAT med at finde deres offentlige IP-adresse og port.
  • Denne opdagelse er afgørende for, at ICE kan indsamle forbindelseskandidater.
  • STUN fungerer godt med mange NAT-typer, men ikke med alle.

Nu undersøger vi TURN-servere, som håndterer de mest udfordrende NAT-problemer!

Gratis at komme i gang

Lær Streaming-systemer i realtid (WebRTC og live-data) med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “STUN-serverens funktion forklaret” gratis?

Ja — hele teksten til “STUN-serverens funktion forklaret” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Streaming-systemer i realtid (WebRTC og live-data)-kurset, skal du opgradere til CoddyKit PRO. Streaming-systemer i realtid (WebRTC og live-data)-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “STUN-serverens funktion forklaret”?

Lær, hvordan STUN-servere (Session Traversal Utilities for NAT) hjælper peers med at finde deres offentlige IP-adresser og porttilknytninger. Du øver dig i Streaming-systemer i realtid (WebRTC og live-data) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Streaming-systemer i realtid (WebRTC og live-data)?

Der kræves ingen tidligere erfaring. Streaming-systemer i realtid (WebRTC og live-data) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “STUN-serverens funktion forklaret”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Streaming-systemer i realtid (WebRTC og live-data)-lektion?

Ja. Alle Streaming-systemer i realtid (WebRTC og live-data)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Udfordringer med NAT og firewalls
  2. STUN-serverens funktion forklaret
  3. TURN-servere til relæforbindelser
  4. Deployment og sikring af Deres egen TURN-server
← Tilbage til Streaming-systemer i realtid (WebRTC og live-data)