STUNサーバーの仕組み
STUN(Session Traversal Utilities for NAT)サーバーが、ピアによるパブリックIPアドレスとポートマッピングの検出をどのように支援するかを学びます。
「STUNサーバーの仕組み」はCoddyKit上の無料Real-Time Streaming Systems (WebRTC + Live Data)レッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReal-Time Streaming Systems (WebRTC + Live Data)学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Real-Time Streaming Systems (WebRTC + Live Data)コースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
What is a STUN Server?
Welcome! Today we'll unravel the mystery of STUN servers. STUN stands for Session Traversal Utilities for NAT. It's a key technology that helps WebRTC connections work.
Its main job is to help devices behind a NAT (Network Address Translator) discover their public IP address and port number. This is crucial for establishing direct peer-to-peer connections.
NAT: A Quick Reminder
Remember NAT from our previous lesson? NAT helps multiple devices in a private network share a single public IP address. While great for conserving IPs, it hides your device's true network address from the outside world.
For WebRTC, this is a problem! Peers need to know each other's actual, routable addresses to connect directly. STUN is here to solve this.
STUN's Core Function: Discovery
Think of a STUN server as a friendly helper on the public internet. When your device wants to know its public identity, it asks the STUN server, "Hey, what's my public IP and port from your perspective?"
The STUN server replies with the public address it observed your request coming from. This is your device's public 'face' to the internet.
The STUN Request Flow
Here's how a STUN request typically works:
- Your WebRTC client sends a 'binding request' to a known STUN server.
- This request travels through your local network and then through your NAT.
- The NAT modifies the packet, assigning a public IP and port before sending it out.
- The STUN server receives this request.
Understanding the STUN Response
When the STUN server gets your request, it records the source IP and port of the incoming packet. This is what it sees as your public address.
It then sends a 'binding response' back to your client, containing this observed public IP and port. Your client now knows how it appears to the outside world!
Binding Requests in Detail
The 'binding request' isn't just a simple 'hello'. It's a specific message format defined by the STUN protocol.
- It contains a transaction ID to match requests with responses.
- It asks the server to reflect the client's observed network address.
- The response carries attributes like
XOR-MAPPED-ADDRESS, which is the public IP and port.
STUN & WebRTC's ICE
STUN servers are a fundamental part of WebRTC's ICE (Interactive Connectivity Establishment) framework.
ICE uses STUN (and sometimes TURN) to gather all possible network addresses (called 'candidates') for a peer. These candidates include local IPs, public IPs (from STUN), and relayed IPs (from TURN).
Configuring STUN in WebRTC
In WebRTC, you configure STUN servers as part of your RTCPeerConnection setup. The browser then handles the communication with the STUN server automatically to gather ICE candidates.
Here's how you define a STUN server for your peer connection:
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 vs. NAT Types
STUN works very well with certain types of NATs, like Full Cone NAT and Restricted Cone NAT, where the mapping of internal to external ports is consistent.
However, STUN can struggle with more complex NATs, such as Symmetric NATs. For these, a TURN server (which we'll cover next!) is often required to relay traffic.
Test Your STUN Knowledge
Which of the following best describes the primary role of a STUN server in WebRTC?
STUN: Your NAT Helper
Great job! You've learned that STUN (Session Traversal Utilities for NAT) servers are vital for WebRTC.
- They help devices behind NATs find their public IP and port.
- This discovery is crucial for ICE to gather connectivity candidates.
- STUN works well for many NAT types, but not all.
Next, we'll explore TURN servers, which tackle the toughest NAT challenges!
よくある質問
「STUNサーバーの仕組み」レッスンは無料ですか?
はい。「STUNサーバーの仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Real-Time Streaming Systems (WebRTC + Live Data)コースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Real-Time Streaming Systems (WebRTC + Live Data)コースには全4レッスンが含まれています。
「STUNサーバーの仕組み」で何を学びますか?
STUN(Session Traversal Utilities for NAT)サーバーが、ピアによるパブリックIPアドレスとポートマッピングの検出をどのように支援するかを学びます。 ブラウザで直接実行するハンズオンコードでReal-Time Streaming Systems (WebRTC + Live Data)を演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Real-Time Streaming Systems (WebRTC + Live Data)を始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのReal-Time Streaming Systems (WebRTC + Live Data)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「STUNサーバーの仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このReal-Time Streaming Systems (WebRTC + Live Data)レッスンでコードを書いて実行できますか?
はい。すべてのReal-Time Streaming Systems (WebRTC + Live Data)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。