質問

Cで書かれたp2pアプリでTCPの代わりに SCTP を使用することを検討しています。私がやる?また、SCTPの速度はTCPの速度と比較してどうですか?

編集: SCTPをUDP経由でトンネリングできるトンネル化されたSCTPの唯一の問題は、トンネル化されていないSCTPと相互運用できません。

役に立ちましたか?

解決

ローカルエリアネットワーク用の場合は、必ず行ってください。

ただし、オープンインターネットで使用する場合、多くのコンシューマグレードファイアウォールは、認識できないIPプロトコルを通過させるほど柔軟ではないことに注意してください。

他のヒント

ターゲットシステムのすべてにSCTPがプレインストールされているかどうか、またはアプリケーションにSCTP自体を含める必要があるかどうかを検討しましたか?私の経験では、すべてのシステムにSCTPがインストールされるとは期待していません。また、Windowsの場合はそうでないと思われます。

アプリケーション自体にSCTPを含めると、カーネルから渡されるメッセージの数が2倍以上になり、プリインストールされたTCPを使用した場合と比較してパフォーマンスに影響します。

SCTPからどのようなメリットが欲しいと考えましたか?フォールトトレランスについて説明しましたが、これをSCTPと連携させるには、アプリケーションに複数のイーサネットポートとIPアドレスが必要です。これはアプリにありそうですか?

SCTPが大好き(!)

よろしく

どのように役立ちますか?

あなたはP2Pなので、すべてのピアは他のすべてのピアに対して少なくとも1つのソケットを開いている必要があります。

ソケットを開いている場合は、必要なすべての操作を実行できます。ファイルごとに1つのソケットのアプローチを取り、2つの指定されたピア間で同時に転送される複数のファイルがある場合、SCTPはファイルごとに1つのソケットを保存します。ただし、任意のサイズの通常のP2Pネットワークでは、2つのピア間で複数のファイルが同時に転送されることはほとんどありません

ソケットが1つあり、独自の小さなプロトコルがあります。ヘッダー付きのパケットを送信すると、ヘッダーはコンテンツタイプを示します。コマンド、またはファイルの一部-その場合、どのファイル、どのバイト範囲。

もちろん、そのために少しオーバーヘッドが発生しますが、コマンド用に1つのソケットとファイルごとに1つのソケットがある場合は、より効率的です。 SCTPを使用する時間/面倒/複雑さに見合う価値があるので、ピアごとに1つのソケットを保存していますか(一度に1つのダウンロードを想定)?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top