Wie sendet Skype Dateien direkt?

5001
Rok

Ich frage mich, wie Skype Dateien direkt an Benutzer senden kann, die sich normalerweise hinter einer Firewall befinden. Wie funktioniert das, da ich etwas Ähnliches entwickeln muss, wo ein lokaler Webserver (hinter einer Firewall) Dateien direkt an einen anderen identischen Server senden / streamen kann?

Ich verstehe, dass es eine Art öffentlich zugänglicher zentraler Server geben muss, durch den sich beide gegenseitig entdecken, und ich habe vor, diesen zu haben, aber wie kommt die direkte Verbindung danach zustande?

Vielen Dank

3
Siehe: [Wie Skype & Co. Firewalls umgehen - The H Security] (http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html) slhck vor 11 Jahren 2
Danke, das ist großartig! Hoffentlich kann ich eine Python-Bibliothek finden, um dies zu vereinfachen. Prost! Rok vor 11 Jahren 0

1 Antwort auf die Frage

9
slhck

Skype ist nicht darauf angewiesen, dass ein Server Dateien per se sendet . Skype verwendet eine als Lochung bezeichnete Technik, um die Kommunikation hinter zwei einschränkenden Firewalls zu ermöglichen. Im Wesentlichen wird ein Kommunikationskanal geöffnet, der die lokale Firewall "durchbohrt", mit der der andere Skype-Client Daten übertragen kann.

Die Kommunikation von Skype basiert fast ausschließlich auf Peer-to-Peer, daher ist für die eigentliche Datenübertragung kein zentraler Server erforderlich. Es benötigt jedoch einen Superknoten, um die erste Kommunikation herzustellen.

Ein NAT-Router speichert daher Tabellen, von denen der interne Computer mit welchem ​​externen Computer kommuniziert hat und welche Ports die beiden verwendet haben. Der Trick der VoIP-Software besteht darin, die Firewall davon zu überzeugen, dass eine Verbindung hergestellt wurde, der sie nachfolgende eingehende Datenpakete zuordnen soll.

Im Grunde sieht die Kommunikation also so aus: