首页  >  文章  >  web前端  >  眩晕协议、端口和流量

眩晕协议、端口和流量

Patricia Arquette
Patricia Arquette原创
2024-10-11 10:30:02160浏览

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

  • Adapt NAT behaviour: Adjust strategies on how to traverse the NAT based on what type of NAT the client device is behind

Step by Step how STUN works

  1. Client Initiation

    1. The client device sends a request to the STUN server using the UDP protocol to learn its own public IP address and port number
    2. It sends a STUN binding request over UDP User datagram protocol
  2. STUN server reception

    1. The STUN server accepts the request and notes the source IP and port number from which the request is coming from.
    2. The STUN server then responds back with the IP address and port number, back to the client
  3. Binding response

    1. The STUN server contracts a STUN binding response message
    2. This response includes a MAPPED-ADDRESS attribute, client public IP address and port.
  4. Client receipt

    1. The client device then receives the binding response from the server
    2. The client device then retrieves the Public IP and port number from the MAPPED-ADDRESS attribute
  5. NAT type discovery (optional):

    1. The client can then perform additional tests from different STUN servers to determine what type of NAT the client is behind
    2. This involves sending different requests from different ports and evaluating the response
  6. Establishing communication

    1. With the public IP address and port number, the client device can then share this information with other devices on the internet to establish communication

STUN vs TURN and ICE Protocol

STUN vs other NAT Traversal Methods

  1. STUN ( Session Traversal Utilities for NAT)

    1. Purpose: Enables the client devices to discover their public IP and port number
    2. Use-Case: Good for when NAT and firewalls allow for peer-to-peer direct communication after public IP addresses are known.
    3. Limitations: Does not work when NAT and firewall rules are restrictive.
  2. TURN (Traversal Using Relays around NAT)

    1. Purpose: Provides a fallback mechanism by relaying the data through a TURN server when peer to peer direct communication is not possible
    2. Use-Case: Essential when restrictive NAT and firewall rules does not allow direct communication between devices on the internet
    3. Operation: All the traffic is end to end encrypted and send through the TURN server, which relays the data to each client
    4. Trade-Offs: You need turn servers near the client devices, in order to reduce latency and improve communication
  3. ICE (Interactive Connectivity Establishment)

    1. Purpose:ICE is a framework that combines STUN and TURN to establish the best possible connection between clients.
    2. Use-Case: Used in WebRTC and other real time communication systems in order to handle various network configurations
    3. Operation

      1. Candidate Gathering: Clients first gathers candidates to see possible endpoint connections, these are found using host, reflexive via STUN and TURN
      2. Connectivity checks: Clients then perform checks to see using which candidates they can establish a connection
      3. Candidate selection: The optimal path that is the one with the lowest latency is selected by the ICE framework for establishing the communication
    4. Advantages: Maximizes the chances of establishing a connection while optimizing for best performance

When to use STUN over other methods

  1. Use STUN alone when

    1. Both the clients are behind NAT and firewall that enable direct communication after discovering the IP address and port number
    2. Both the clients have good internet connection and the network environment is predictable, for example devices are not changing their networks like in the case of mobile phones etc
  2. Use STUN TURN and ICE when

    1. The devices are behind restrictive NAT and firewall rules
    2. The network environment is changing like in case of mobile devices etc
    3. Reliability is important, you cannot have devices disconnecting for some reason or the other

Summary of Considerations

  • Performance

    • 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 进行 TURN 服务器管理。您可以执行以下操作:通过 API 添加/删除凭据、通过 API 检索每个用户/凭据和用户指标、通过 API 启用/禁用凭据、通过 API 按日期检索使用数据。

  2. 全球地理位置定位:自动将流量定向到最近的服务器,以实现尽可能低的延迟和最高的质量性能。全球任何地方的延迟均低于 50 毫秒

  3. 全球所有地区的服务器:多伦多、迈阿密、旧金山、阿姆斯特丹、伦敦、法兰克福、班加罗尔、新加坡、悉尼、首尔、达拉斯、纽约

  4. 低延迟: 低于 50 毫秒的延迟,在世界任何地方。

  5. 经济高效:即用即付定价,并提供带宽和批量折扣。

  6. 轻松管理: 获取使用日志、帐户达到阈值限制时的电子邮件、账单记录以及电子邮件和电话支持。

  7. 符合标准: 符合基于 UDP、TCP、TLS 和 DTLS 的 RFC 5389、5769、5780、5766、6062、6156、5245、5768、6336、6544、5928。

  8. 多租户: 创建多个凭据并按客户或不同应用分开使用。获取使用日志、计费记录和阈值警报。

  9. 企业可靠性: SLA 正​​常运行时间达 99.999%。

  10. 企业规模: 并发流量或总流量不限制。计量 TURN 服务器提供企业可扩展性

  11. 每月 5 GB 免费: 通过免费计划每月获得 5 GB 免费 TURN 服务器使用量

  12. 在端口 80 和 443 上运行

  13. 支持 TURNS SSL 以允许通过深度数据包检测防火墙进行连接。

  14. 同时支持 TCP 和 UDP

  15. 免费无限制 STUN

以上是眩晕协议、端口和流量的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn