問題タブ [sctp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
connection - 間違ったインターフェイスでの Netty Sctp ハートビート
2 台の異なるマシン間で Netty との NioSctpServerChannel 接続を使用しています。接続は正常に確立され、クライアントの channelActive-Handler がサーバーにデータを送信した後にデータを受信します。
受信インターフェイスはバインディング インターフェイス (192.168.243.31 ではなく 192.168.122.1) とは別のもののようです - これはシステムまたはネットの問題ですか?
次に、完全に異なるインターフェイス (この場合は virbr 192.168.122.1) を介してハートビートが送信され、接続を破棄するアボートで応答されます。クライアントがハートビートを送信しようとすると、接続が既にダウンしているため、これも論理的にアボートで応答されます。
PC1 192.168.243.31 (サーバー) PC2 192.168.243.12 (クライアント)
サーバー初期化コード:
ログ出力:
ネットワーク設定:
ネットワーク トラフィック:
linux - パケット損失のない TCP ダンプの作成
ネットワークを実際に通過するすべてのパケットがキャプチャされ、何も失われないことが保証されている TCP ダンプを作成する方法は?
詳細: SCTP スタック上にソリューションを提供し、彼も実装しているサードパーティ ベンダーに問題があります。
非常に高いスループット (52 000 メッセージ/秒、平均メッセージ サイズは 500 バイト) では、SCTP リンクが切断されます。
このバグはベンダーの SCTP スタックにあると考えられます。
しかしベンダーによると、これは SCTP スタックがメッセージを送信し、ACK を受信せず、再送信を何度も送信し、ACK も受信せず、SCTP リンクを閉じるために発生します。
したがって、ベンダーは、パケットを失うため、これは有罪のネットワークであると述べています。
クライアントとサーバーの両側の TCP ダンプでは、元のメッセージがサーバーに到達し、サーバーが ACK で応答しないことがわかります。しかし、ベンダーは、TCP ダンプは信頼できないと述べています。TCP ダンプをキャプチャするときに、いくつかのパケットがキャプチャされない可能性があります。これは、libpcap ライブラリが 1 つのハードウェア スレッド内でのみ機能するため、すべてのパケットをログに記録するにはその能力が十分でない可能性があるためです。
技術データ: 52,000 メッセージ/秒、平均メッセージ サイズは 500 バイトなので、合計で 26 MB/秒、4 つの SCTP リンクが使用されます。
ハードウェア: CPU E5-2670、2.6 GHz、8 HW スレッド
ネットワーク: 10 GBit、トラフィックは 1 つのラックにある HP ブレード間です。
RHEL6.
sockets - SOL_SOCKET は任意の optname に使用できますか?
私は SCTP プログラミングに非常に慣れていないので、トラブルシューティングを行ったり、書籍 (W.Richard Stevens による Unix Network Programming) を参照したりしているときに、あいまいな点に出くわしました。本によると、IPPROTO_SCTPで使用されるはずのオプション名(optname)値SCTP_INITMSGおよびSCTP_EVENTSについて、こことここでSOL_SOCKETとしてレベル名を使用しています。どちらのコードも正常に機能するため、何かが欠けているに違いなく、極めて重要なものが欠けていると感じています。それは何ですか?これで私を助けてください。ありがとうございました。
tcp - カスタマイズした nmap db ファイルに範囲を入力する方法はありますか?
nmap で独自のポート定義を定義しようとしているため、カスタマイズされたバージョンの nmap-services を作成しています。私が抱えている問題は、特定のサービス、つまりポート 1024 ~ 65355 のサービスのポート範囲を定義できないことです。数が多すぎてコピペできません。私は周りを見回しましたが、それについて何も見つかりません。
これは /usr/share/nmap/nmap-services ファイル内にあります。したがって、ポート 1024-65535 で実行される telnet (例) などのサービスを定義したいと思います。これをファイルに書き込むにはどうすればよいですか。私はすでに次のことを試しました:
linux - sctp uapi がカーネルと一致しませんか?
3.x Linux カーネルでは、sctp 状態はカーネルと uapi の間で異なって定義されます。それは不一致ですか、それとも何か不足していますか?
インクルード/uapi/linux/sctp.h
インクルード/ネット/sctp/constants.h
SCTP_STATE_EMPTY はこのパッチによって削除されたようです: http://lists.openwall.net/netdev/2011/04/20/31
python - Python sctp モジュール - サーバー側
ネットワーク展開用に SCTP をテストしようとしています。私は SCTP サーバーまたはクライアントを持っておらず、pysctp を使用できることを望んでいました。
クライアント側のコードが機能していることはかなり確信しています。
サーバー側で python sctp モジュールを使用して運が良かった人はいますか? 前もって感謝します!
tcp - WebRTC と socket.io WebSockets ハートビート
WebRTC データ チャネル (順序付けられた、信頼できる) と socket.io WebSockets をシグナリング サーバーとして使用してアプリケーションを作成します。
仮定(確認してください/無視してください)
- WebRTC SCTP と socket.io はハートビートを送信しますが、その間隔は異なる場合があります
- ハートビートを使用してクラッシュが検出された場合、接続 (DataChannel および WebSockets) は閉じられ、ピアが一時的に切断されただけの場合は再利用できません --> 一時的にクラッシュしたピアは再接続する必要があります
WebRTC ハートビート間隔/タイムアウトを構成することは可能ですか、または Chrome と Firefox で使用されている信頼できるデフォルト値はありますか?
sockets - lksctp は大きなメッセージの送信をサポートしていますか
SCTP ソケットを 1 対多スタイル [SOCK_SEQPACKET] で開くと、SO_SNDBUF より大きいメッセージを送受信できません。これは、draft-ietf-tsvwg-sctpsocket-14.txt セクション 7.1.7 に従っています。SO_SNDBUF、Linux カーネル モジュール 3.16.3 net/sctp/socket.c 行番号 1874 および lksctp ユーザー空間ライブラリに適切に実装されています。
sctp プロトコルを使用して指定されたサイズより大きいメッセージを送信するには、どのようなオプション/戦略がありますか?
例: 送信側でメッセージを分割し、ppid=seq_number を設定してから、受信側で元のメッセージを再組み立てします。