web-dev-qa-db-ja.com

誰かがカスタムネットワークプロトコルを実装できますか?

ネットワーキングクラスでは、OSIモデル、TCP、CDMA、輻輳、フレームなどを教えてくれました。

TCPのように20〜30年間存在していた標準が今日のハードウェアに焼き付けられているか、誰かがTCPXを思いついてコードを記述し、それをネットワーク上の2台のマシンに展開して使用できるかどうかを知りたい通信用プロトコル?これはネットワーク上で誰かを見つける方法に影響を与えないので、それは一般的なハードウェアの問題ではないと思います。

しかし、カスタムIPプロトコルが開発されたとしましょう。互換性のないネットワークハードウェアは、送信先を理解できないため、これらのパケットをドロップしますか?

私が理解しようとしているのは、それらの間のネットワークがデータを送信できなくなる前に、カスタム実装を使用して誰かがスタックでどれほど低い(または高い?.

3
romeozor

それがまさに問題です。中間ルーターは、新しいプロトコルを理解せず、UDPまたはTCPが理解しているように見える場合にのみ、IPパケットを転送します。

実際には、TCPプロトコルを拡張してより高性能にするために多くの拡張機能がありますが、ルーターによる取り込みは遅いです。

新しいプロトコルを作成する場合は、既存のプロトコルの上に置く必要があります。 TCPの便利な機能の多くは新しいプロトコル(特に、特定の輻輳制御メカニズム、ヘッドオブラインブロッキング、3ウェイハンドシェイク)にとって望ましくないため、これは新しいプロトコルが通常UDPを拡張することを意味します。ただし、UDPはコネクションレス型プロトコルであるため、NATトラバーサルに関して、独自の問題を共有しています。

UDPの上に位置する新しいプロトコルの例として、 [〜#〜] quic [〜#〜] プロトコルを考えます。これはより高性能なTCPとして意図されており、Googleエコシステムで広く使用されています。詳細については、プロトコルの骨化の解決策としての QUIC LWNのQUIC]を読むことを検討してください

IP上の新しいプロトコルは、それらが使用されるネットワークを制御する場合にのみ、確実に使用できます。ただし、トンネリングを使用して、これらのプロトコルをパブリックインターネット経由で(つまり、VPNを介して)使用することはできます。

8
amon