WebRTC — ارتباط بلادرنگ همتا به همتا
تماس صوتی و تصویری مستقیم بین دو مرورگر. سرور سیگنالینگ فقط پیشنهادها را رد و بدل میکند، STUN آدرس عمومی را کشف میکند و رسانه مستقیماً و رمزشده بین دو همتا جریان دارد.
- لایهٔ OSI: 7 (کاربرد)
- انتقال: UDP (عمدتاً)
- پورت: پویا + 3478 (STUN)
- استاندارد: W3C + RFC 8825
- سطح: پیشرفته · حدود 8 دقیقه
نکتههای کلیدی
- WebRTC ارتباط همتا به همتا برای صدا، تصویر و داده در مرورگر است.
- سیگنالینگ استاندارد نشده؛ هر روشی (WebSocket، HTTP) قابل استفاده است.
- ICE با STUN آدرس عمومی را کشف میکند و اگر اتصال مستقیم ممکن نباشد از رلهٔ TURN کمک میگیرد.
- رمزنگاری اجباری است: DTLS برای کلید و SRTP برای رسانه.
مراحل شبیهسازی (8 بسته)
- STUN Binding: مرورگر از سرور STUN میپرسد «آدرس عمومی من چیست؟» تا کاندیدای مناسب ICE بسازد.
- Binding Success: سرور آدرس و پورتی را که بسته از آن رسیده برمیگرداند؛ XOR شده تا NATهای کنجکاو آن را بازنویسی نکنند.
- SDP Offer: پیشنهاد SDP شامل کدکها، کاندیداها و اثرانگشت DTLS از طریق سرور سیگنالینگ (معمولاً WebSocket) فرستاده میشود.
- SDP Offer: سرور سیگنالینگ فقط پیام را جابهجا میکند و در مسیر رسانه قرار نمیگیرد.
- SDP Answer: سولماز پاسخ میدهد و کاندیداهای خودش را اعلام میکند.
- بررسی ICE: دو طرف مستقیماً برای هم STUN میفرستند تا NATها باز شوند (hole punching) و بهترین مسیر انتخاب شود.
- DTLS: روی همان مسیر یک دستدهی DTLS انجام میشود؛ اثرانگشت گواهی باید با مقدار اعلامشده در SDP یکی باشد.
- SRTP صدا: صدا با کدک Opus در بستههای RTP رمزشده (SRTP) با کمترین تأخیر جریان دارد.