web-dev-qa-db-ja.com

skypeはどのようにファイルを直接送信しますか?

Skypeが通常ファイアウォールの背後にいるユーザーにファイルを直接送信する方法を知りたいのですが。 1つのローカルWebサーバー(ファイアウォールの背後)が別の同一のWebサーバーにファイルを直接送信/ストリーミングできる必要があるようなものを開発する必要があるため、これはどのように機能しますか?

両方がお互いを検出する、ある種の公的にアクセス可能な中央サーバーが必要であることを理解しており、それを使用する予定ですが、その後、直接接続はどのように行われますか?

ありがとう

3
Rok

Skypeは、ファイルの送信をサーバーに依存しませんそれ自体。 Skype ホールパンチング と呼ばれる手法を使用して、2つの制限付きファイアウォールの背後で通信を許可します。本質的に、それは通信チャネルを開き、ローカルファイアウォールを介して「穴を開ける」ので、他のSkypeクライアントがデータを転送するために使用できます。

Skypeの通信はほぼ完全にピアツーピアに基づいているため、実際のデータ転送に集中型サーバーは必要ありません。ただし、最初の通信を行うにはスーパーノードが必要です。

したがって、NATルーターは、どの内部コンピューターがどの外部コンピューターと通信し、どのポートを使用したかを示すテーブルを保持します。VoIPソフトウェアで使用されるトリックは、接続が確立されたことをファイアウォールに説得することです。 、後続の着信データパケットを割り当てる必要があります。

したがって、基本的に、通信は次のようになります。

9
slhck