Heim > Web-Frontend > js-Tutorial > Hauptteil

Stun-Protokoll, Port und Verkehr

Patricia Arquette
Freigeben: 2024-10-11 10:30:02
Original
160 Leute haben es durchsucht

STUN ist ein Protokoll, das darauf ausgelegt ist, Kommunikationsbarrieren zu überwinden, die durch NAT entstehen.

Das STUN-Protokoll ermöglicht es Geräten, die sich hinter einem NAT befinden, ihre eigene öffentliche IP-Adresse und Portnummer zu erkennen.

Die Geräte kommunizieren mit einem STUN-Server im Internet, und der STUN-Server stellt diese Informationen dem Client-Gerät zur Verfügung

Das Gerät kann diese Informationen dann mit einem oder mehreren anderen Geräten im Internet teilen, mit denen es kommunizieren möchte

Dadurch können externe Geräte direkt miteinander kommunizieren und dabei effektiv das NAT durchlaufen

STUN ist wichtig, um die Peer-to-Peer-Kommunikation in Echtzeit zu ermöglichen.

Wenn Sie mehr darüber erfahren möchten, was ein STUN-Server ist, können Sie sich unseren Artikel ansehen: Stun-Server: Was sind Session Traversal Utilities für NAT?


Stun Protocol, Port and Traffic

Das NAT-Problem verstehen

Erklärung der Network Address Translation (NAT) und ihrer weit verbreiteten Verwendung.

Router ordnen mithilfe einer Technik namens NAT oder Network Address Translation mehrere private IP-Adressen einer einzelnen öffentlichen IP-IP-Adresse zu.

Dadurch können mehrere Geräte im lokalen Netzwerk über eine einzige öffentliche IP-Adresse eine Verbindung zum Internet herstellen.

Dadurch bleibt die begrenzte Anzahl von IPv4-Adressen erhalten.

NAT verbreitete sich aufgrund des exponentiellen Wachstums bei Geräten, die mit dem Internet verbunden waren, und es gab eine Verzögerung bei der Einführung von IPv6, das einen größeren Adressraum bietet.

Durch NAT in der Peer-to-Peer-Kommunikation eingeführte Probleme

NAT blockiert die direkte Kommunikation zwischen Geräten, indem es eingehenden Datenverkehr blockiert, die Portzuordnungen ändert und die öffentliche IP-Adresse vor den Geräten verbirgt, die sich hinter dem NAT befinden

Daher ist die Überwindung der durch NAT geschaffenen Barrieren wichtig, um eine direkte Kommunikation zwischen Geräten zu ermöglichen, die sich in verschiedenen Netzwerken über das Internet befinden

NAT-Transversallösungen wie das STUN-Protokoll ermöglichen es Geräten, ihre eigene öffentliche IP-Adresse zu erkennen und Verbindungen über NAT-Router auszuhandeln

Oft reichen STUN-Server für die NAT-Durchquerung nicht aus und Sie müssen auf TURN-Server zurückgreifen

Wenn Sie eine Eins-zu-eins-Kommunikation implementieren und zuverlässige STUN- und TURN-Server benötigen, können Sie darüber nachdenken

Open Relay Project: Kostenlose TURN-/STUN-Server

Metered.ca TURN-Server: Premium-TURN-Server mit globaler Reichweite

Dienste wie VoIP und Videokonferenzen erfordern STUN- und TURN-Server.


STUN-Protokoll: Lösung für NAT-Traversal

Was ist STUN?

STUN oder Session Traversal Utilities für NAT ist ein standardisiertes Protokoll, das im RFC 5389 definiert ist und es Geräten hinter einem NAT oder einer Firewall ermöglicht, ihre eigene öffentliche IP-Adresse und PORT-Nummer zu erkennen

STUN ermöglicht es Geräten und Anwendungen außerdem herauszufinden, welche Art von NAT sich hinter ihnen verbirgt, und die notwendigen Informationen zu erhalten, um einen direkten Kommunikationskanal mit anderen Geräten im Internet aufzubauen

Zu den Kernfunktionen von STUN gehören:

  1. Erkennung öffentlicher IP-Adressen:STUN ermöglicht es einem Client-Gerät, seine öffentliche IP-Adresse zu erfahren

  2. Portzuordnung: STUN hilft dem Client-Gerät zu wissen, welche Portnummer ihm vom NAT-Gerät zugewiesen wurde

  3. Erkennung des NAT-Typs: Der STUN-Server hilft dem Client-Gerät zu erkennen, um welche Art von NAT-Gerät es sich handelt. Zu den NAT-Typen gehören Full-Cone-NAT, Restricted-Cone-NAT, symmetrisches NAT usw.

  4. Erleichterung der Peer-to-Peer-Kommunikation: Somit erleichtert der STUN-Server die Peer-to-Peer-Kommunikation zwischen Geräten


Wie STUN funktioniert

Wie STUN Geräten dabei hilft, ihre eigene öffentliche IP-Adresse und Portnummer zu ermitteln

Wenn ein Clientgerät eine Anfrage an den STUN-Server sendet, der sich im Internet befindet. Der STUN-Server kann die öffentliche IP-Adresse und Portnummer sehen, von der die Anfrage kommt.

Der STUN-Server sendet diese Informationen dann zurück an den Client. Auf diese Weise hilft der STUN-Server Geräten dabei, ihre eigene öffentliche IP- und Portnummer zu erkennen, die ihnen vom NAT-Router zugewiesen wird.

Der Prozess ermöglicht es dem Kunden

  • Lernen Sie den öffentlichen Endpunkt kennen: Verstehen Sie, wie andere Geräte ihn im Internet sehen

  • Korrekturdetails mit Kollegen teilen: Sobald das Client-Gerät die Details vom STUN-Server erhält, kann es diese mit anderen Geräten im Internet teilen, mit denen es kommunizieren möchte

  • NAT-Verhalten anpassen: Passen Sie Strategien zum Durchlaufen des NAT an, basierend auf dem NAT-Typ, hinter dem sich das Client-Gerät befindet

Schritt für Schritt, wie STUN funktioniert

  1. Kundeninitiierung

    1. Das Client-Gerät sendet über das UDP-Protokoll eine Anfrage an den STUN-Server, um seine eigene öffentliche IP-Adresse und Portnummer zu erfahren
    2. Es sendet eine STUN-Bindungsanfrage über das UDP-Benutzerdatagrammprotokoll
  2. STUN-Serverempfang

    1. Der STUN-Server akzeptiert die Anfrage und notiert die Quell-IP und Portnummer, von der die Anfrage kommt.
    2. Der STUN-Server antwortet dann mit der IP-Adresse und der Portnummer an den Client zurück
  3. Verbindliche Antwort

    1. Der STUN-Server beauftragt eine STUN-verbindliche Antwortnachricht
    2. Diese Antwort enthält ein MAPPED-ADDRESS-Attribut, die öffentliche IP-Adresse und den Port des Clients.
  4. Kundenbeleg

    1. Das Clientgerät empfängt dann die Bindungsantwort vom Server
    2. Das Client-Gerät ruft dann die öffentliche IP-Adresse und die Portnummer aus dem MAPPED-ADDRESS-Attribut ab
  5. NAT-Typerkennung (optional):

    1. Der Client kann dann zusätzliche Tests von verschiedenen STUN-Servern durchführen, um festzustellen, hinter welchem ​​NAT-Typ der Client steckt
    2. Dabei geht es darum, verschiedene Anfragen von verschiedenen Ports zu senden und die Antwort auszuwerten
  6. Kommunikation herstellen

    1. Mit der öffentlichen IP-Adresse und Portnummer kann das Client-Gerät diese Informationen dann mit anderen Geräten im Internet teilen, um eine Kommunikation herzustellen

STUN vs. TURN- und ICE-Protokoll

STUN im Vergleich zu anderen NAT-Traversal-Methoden

  1. STUN (Session Traversal Utilities für NAT)

    1. Zweck: Ermöglicht den Client-Geräten, ihre öffentliche IP- und Portnummer zu erkennen
    2. Anwendungsfall: Gut, wenn NAT und Firewalls eine direkte Peer-to-Peer-Kommunikation ermöglichen, nachdem öffentliche IP-Adressen bekannt sind.
    3. Einschränkungen: Funktioniert nicht, wenn NAT- und Firewall-Regeln restriktiv sind.
  2. TURN (Traversal unter Verwendung von Relays um NAT)

    1. Zweck: Bietet einen Fallback-Mechanismus durch Weiterleitung der Daten über einen TURN-Server, wenn eine direkte Peer-to-Peer-Kommunikation nicht möglich ist
    2. Anwendungsfall: Unverzichtbar, wenn restriktive NAT- und Firewall-Regeln keine direkte Kommunikation zwischen Geräten im Internet zulassen
    3. Betrieb: Der gesamte Datenverkehr ist Ende-zu-Ende-verschlüsselt und wird über den TURN-Server gesendet, der die Daten an jeden Client weiterleitet
    4. Kompromisse: Sie benötigen Turn-Server in der Nähe der Client-Geräte, um die Latenz zu reduzieren und die Kommunikation zu verbessern
  3. ICE (Interactive Connectivity Establishment)

    1. Zweck: ICE ist ein Framework, das STUN und TURN kombiniert, um die bestmögliche Verbindung zwischen Kunden herzustellen.
    2. Anwendungsfall: Wird in WebRTC und anderen Echtzeit-Kommunikationssystemen verwendet, um verschiedene Netzwerkkonfigurationen zu verwalten
    3. Bedienung

      1. Kandidatensammlung: Der Kunde sammelt zunächst Kandidaten, um mögliche Endpunktverbindungen zu sehen. Diese werden mithilfe des Hosts gefunden, reflexiv über STUN und TURN
      2. Konnektivitätsprüfungen: Clients führen dann Prüfungen durch, um zu sehen, mit welchen Kandidaten sie eine Verbindung herstellen können
      3. Kandidatenauswahl: Der optimale Pfad mit der geringsten Latenz wird vom ICE-Framework zum Aufbau der Kommunikation ausgewählt
    4. Vorteile: Maximiert die Chancen, eine Verbindung herzustellen, und optimiert gleichzeitig die beste Leistung

Wann sollte STUN gegenüber anderen Methoden verwendet werden?

  1. Verwenden Sie STUN allein, wenn

    1. Beide Clients befinden sich hinter NAT und Firewall, die eine direkte Kommunikation ermöglichen, nachdem die IP-Adresse und die Portnummer ermittelt wurden
    2. Beide Clients verfügen über eine gute Internetverbindung und die Netzwerkumgebung ist vorhersehbar, zum Beispiel ändern Geräte ihre Netzwerke nicht wie im Fall von Mobiltelefonen usw.
  2. Verwenden Sie STUN TURN und ICE, wenn

    1. Die Geräte unterliegen restriktiven NAT- und Firewall-Regeln
    2. Die Netzwerkumgebung ändert sich, beispielsweise bei mobilen Geräten usw.
    3. Zuverlässigkeit ist wichtig, es kann nicht passieren, dass Geräte aus irgendeinem Grund die Verbindung trennen

Zusammenfassung der Überlegungen

  • Leistung

    • STUN bietet eine gute Leistung bei der Verbindung von Clients in der Nähe, ist aber auch nicht zuverlässig, aber eine kostenlose Option
    • TURN bietet die beste Leistung, benötigt jedoch einen Server, der näher an den Clientgeräten liegt, um die Latenz zu reduzieren. Heutzutage gibt es globale Turn-Server-Dienste wie metered.ca, die recht gut funktionieren
  • Komplexität:

    • STUN ist recht einfach zu implementieren und zu verwenden
    • TURN: Es ist ganz einfach und leicht zu bedienen
  • Erfolgsquote:

    • STUN: Es schlägt bei restriktiven NAT- und Firewall-Regeln fehl
    • TURN: Zuverlässiger und funktioniert mit restriktiven NAT- und Firewall-Regeln

STUN-Häfen und Verkehrsabwicklung

Standardport, der von STUN verwendet wird

Häufig verwendete UDP- und TCP-Ports sind 3478 und 5349

Das STUN-Protokoll verwendet bestimmte Netzwerkports für die Kommunikation zwischen Clients und STUN-Servern

  • UDP-Ports

    • Port 3478: Dies ist der Standardport für STUN für das UDP-Protokoll. Aufgrund seines geringen Overheads arbeitet STUN im Allgemeinen über das UDP-Protokoll und normalerweise wird Port 3478 verwendet
    • Port 5349: Dies ist im Allgemeinen der Port für UDP über DTLS, der die Verschlüsselung für die UDP-Kommunikation bereitstellt
  • TCP-Ports

    • Port 3478: STUN: STUN kann auf demselben Port betrieben werden, der 3478 für TCP ist, wenn UDP nicht geeignet oder blockiert ist
    • Port 5349: Dieser wird für STUN mit TLS verwendet, also Transport Layer Security, das TCP-Verbindungen bietet
  • Alternative Ports

    • Während dies die Standardports für STUN-Server sind, kann jeder andere Port auch für die Verwendung für STUN- und TURN-Server konfiguriert werden.
    • Aus Sicherheitsgründen ist es oft ratsam, den STUN-Server auch auf anderen Ports zu betreiben.

Sicherheitsaspekte bei der Portnutzung

  1. Exposition gegenüber Port-Scanning

    1. Angreifer durchsuchen das Internet häufig nach Standardports für STUN-Server. Wenn STUN-Server auf dem Standardport bleiben, sind sie möglicherweise anfälliger für solche Aufklärungsaktivitäten
  2. Firewall-Konfiguration

    1. Eingehender Verkehr

      1. Viele Firewalls blockieren standardmäßig unerwünschten eingehenden Datenverkehr auf STUN-Ports, um unbefugten Zugriff zu verhindern
      2. Die Firewalls lassen nur eingehenden Datenverkehr zu, wenn er auf eine legitime Anfrage reagiert, die von einem Gerät innerhalb des Netzwerks initiiert wurde
    2. Ausgehender Datenverkehr:

      1. Erlauben Sie ausgehenden Datenverkehr nur an vertrauenswürdige STUN- und TURN-Server und an Ports, die erforderlich sind.
  3. Verschlüsselung verwenden

    1. STUN über TLS/DTLS (Ports 5349): Während der TURN-Serververkehr Ende-zu-Ende-verschlüsselt ist. Der STUN-Serververkehr gilt nicht, aber Sie können auch die STUN-Verschlüsselung aktivieren.
  4. Regelmäßige Updates und Patches: Wenn Sie Ihre eigenen STUN/TURN-Server betreiben, müssen Sie diese aus Sicherheitsgründen regelmäßig aktualisieren und patchen.

  5. Protokollierung und Überwachung: Protokollieren und überwachen Sie STUN- und TURN-Server immer auf Sicherheitslücken, wenn Sie Ihre eigenen STUN-/TURN-Server betreiben


Cloudbasierte STUN-Server im Vergleich zu selbst gehosteten Lösungen

Cloudbasierte TURN-Server

  • Gemessene TURN/STUN-Server: Bietet globale, skalierbare, verwaltete STUN- und TURN-Dienste mit API

  • Öffentliche STUN-Server von Google: Google bietet eine Liste kostenloser STUN-Server an. Sie können die Liste der Google STUN-Server

  • abrufen
  • Open Relay TURN / STUN-Server: Kostenlose TURN-Server für die Öffentlichkeit

Selbst gehostete Lösungen

  • Coturn STUN/TURN-Server: Mit dem Open-Source-Projekt Cotton können Sie Ihren eigenen Turn-Server betreiben. Hier ist die Anleitung zu: Wie richte ich den TURN-Server mit coTURN ein und konfiguriere ihn?

  • AWS TURN-Server: Sie können Coturn auch auf AWS ausführen: Hier ist die Anleitung dazu: AWS TURN-Server: In 7 einfachen Schritten

  • Azure TURN-Server: Sie können die TURN-Server auch auf Azure ausführen. Hier ist eine Anleitung dazu: Azure TURN Server: Die Schritt-für-Schritt-Anleitung.

  • TURN-Serverkosten: Hier finden Sie einen Leitfaden zu möglichen Kosten und Überlegungen beim Betrieb Ihres eigenen TURN-Servers: TURN-Serverkosten: Ein vollständiger Leitfaden


Stun Protocol, Port and Traffic

Gemessene TURN-Server

  1. API: 강력한 API로 서버 관리를 시작하세요. API를 통해 자격 증명 추가/제거, API를 통해 사용자별/자격 증명 및 사용자 지표 검색, API를 통해 자격 증명 활성화/비활성화, API를 통해 날짜별 사용량 데이터 검색 등의 작업을 수행할 수 있습니다.

  2. 글로벌 지리적 위치 타겟팅: 자동으로 트래픽을 가장 가까운 서버로 전달하여 지연 시간을 최소화하고 성능을 최고화합니다. 전 세계 어디에서나 50ms 미만의 지연 시간

  3. 전 세계 모든 지역의 서버: 토론토, 마이애미, 샌프란시스코, 암스테르담, 런던, 프랑크푸르트, 방갈로르, 싱가포르, 시드니, 서울, 달라스, 뉴욕

  4. 낮은 지연 시간: 전 세계 어디에서나 50ms 미만의 지연 시간.

  5. 비용 효율적: 대역폭 및 볼륨 할인이 가능한 종량제 가격.

  6. 손쉬운 관리: 사용 로그, 계정이 임계값 한도에 도달할 때 이메일, 청구 기록, 이메일 및 전화 지원을 받으세요.

  7. 다중 테넌시:

     여러 개의 자격 증명을 생성하고 고객 또는 다른 앱별로 사용량을 구분합니다. 사용 로그, 청구 기록 및 임계값 알림을 받으세요.
  8. 엔터프라이즈 신뢰성:

     SLA를 통한 99.999% 가동 시간.
  9. 엔터프라이즈 규모:

     동시 트래픽 또는 총 트래픽에 제한이 없습니다. 계량형 TURN 서버는 엔터프라이즈 확장성을 제공합니다
  10. 5GB/월 무료:

     무료 플랜으로 매월 5GB 무료 TURN 서버 사용량을 받으세요
  11. 포트 80 및 443에서 실행

  12. TURNS SSL을 지원하여 심층 패킷 검사 방화벽을 통한 연결을 허용합니다.

  13. TCP와 UDP 모두 지원

  14. 무료 무제한 STUN

Das obige ist der detaillierte Inhalt vonStun-Protokoll, Port und Verkehr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!