問題タブ [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.
linux - 同じマシン上に他の非OSSCTPスタックとともにデプロイされたLinuxSCTPスタック
LinuxSCTPスタックを使用しています。現在、同じLinuxマシンで、OS以外のSCTPスタックを使用するプロセスをデプロイする必要があります。(つまり、RAWソケットを開き、トランスポートレベルのメッセージを独自に処理します)。SCTP Initが来ると、Linuxは両方のプロセスにパケットを渡します。これは避けられますか?LinuxSCTPで使用されていないメッセージを処理したくありません。(他の非OS SCTPスタックで使用)これは可能ですか?
c - SCTP マルチホーミング
私はこの単純なクライアント - サーバー アプリケーションを C で開発してきました。クライアントはサーバーにランダム データを送信するだけで、サーバーはクライアントの送信内容をリッスンするだけです。私が使用しているプロトコルは SCTP で、マルチホーミング機能を実装する方法に興味があります。
SCTP とマルチホーミングについてインターネットで検索してきましたが、通信に複数のアドレスを使用するように SCTP に指示する方法の例を見つけることができませんでした。マルチホーミングで SCTP をセットアップしようとするときに使用するコマンドを見つけることができただけで、非常に簡単なはずです。
クライアントとサーバーを作成しましたが、どちらもコンピューターの 2 つの WLAN インターフェイスを接続ポイントとして使用しています。両方のアダプターが同じ AP に接続されています。サーバーはこれらのインターフェイスからクライアントからのデータをリッスンしており、クライアントはそれらを介してデータを送信します。問題は、クライアントがデータを送信しているプライマリ WLAN アダプタを切断すると、セカンダリ接続にフォールバックする必要があるときに送信が停止することです。Wireshark を使用してパケットを追跡したところ、最初の INIT および INIT_ACK パケットは、クライアントとサーバーの両方が通信リンクとして WLAN アダプターを使用していることを報告しています。
プライマリ WLAN 接続を再接続すると、しばらくすると送信が継続し、サーバーに大量のパケットがバーストしますが、これは正しくありません。パケットはセカンダリ接続を介して送信されているはずです。多くのサイトでは、SCTP は自動的に接続を切り替えると言われていますが、私の場合はそうではありません。クライアントとサーバーがセカンダリ アドレスを含む互いのアドレスを認識しているにもかかわらず、プライマリ リンクがダウンしているときに、送信がセカンダリ接続にフォールバックしない理由の手がかりはありますか?
サーバーについて:
サーバーは SOCK_SEQPACKET タイプのソケットを作成し、INADDR_ANY で見つかったすべてのインターフェイスをバインドします。getladdrs は、サーバーが 3 つのアドレス (127.0.0.1 を含む) にバインドされていることを報告します。その後、サーバーはソケットをリッスンし、クライアントがデータを送信するのを待ちます。サーバーは sctp_recvmsg 呼び出しでデータを読み取ります。
クライアントについて:
クライアントは SEQPACKET ソケットも作成し、コマンドライン引数で指定された IP アドレスに接続します。この場合の getladdrs は、サーバーの場合と同様に 3 つのアドレスも返します。その後、クライアントは、ユーザーが Ctrl-C で送信を中断するまで、サーバーへの 1 秒の遅延でサーバーへのデータの送信を開始します。
ソースコードは次のとおりです。
サーバ:
そしてクライアント:
それで、私が間違っていることの手がかりはありますか?
windows - クライアントからサーバーへのプロトコルの変更
さまざまなプロトコル(Tcp、UDP、Sctp)を使用して、クライアントからサーバーへの値をテストする必要があります。それがどのように可能になるかを教えてください。Windowsでプロトコルを変更する方法はありますか、それともパケットトレーサーなどのソフトウェアを使用してプロトコルを見つける方法はありますか。
ありがとう
c++ - SCTP:クロスプラットフォームライブラリはありますか?
SCTPプロトコルを調査しています。その機能は魅力的に見えます。私が心配しているのは、コミュニティからのサポートです。優れたクロスプラットフォーム(少なくともLinuxとWindows)のC ++(または少なくともC)SCTPライブラリはありますか?非同期メソッドをサポートしていますか?
sctp - sctp パケットを注入する
Linux環境でsctpパケットを挿入しようとしましたが成功しませんでした。これが私が行ったことです。2つのポイント(sctpサーバーを備えた1つの端末とsctpクライアントを備えた別の端末)間の関連付けを作成しました。次に、クライアントからサーバーに char を送信し、正常に配信されました。次に、wireshark からパケットをコピーしてソース コードを挿入し、TCN とストリーム シーケンス番号をインクリメントして送信しましたが、sctp で受信しませんでしたサーバ。以下に示すように、私のパケットはまったく同じです。
私のパケットはこれです:
IP 部分 0000 45 00 00 34 00 00 40 00 40 84 3c 44 7f 00 00 01 0010 7f 00 00 01
SCTP パート
0000 0b 5e 0b 59 c2 e5 f8 00 00 00 00 00 00 03 00 13 0010 fe aa 43 3e 00 00 00 0c 00 00 00 00 64 0a 00 00
次に、パケットがsctpサーバーに配信されなかった後、パケットと比較するためだけにsctpクライアントで送信し、sctpサーバーに到着しました。
IP部分
0000 45 02 00 34 00 00 40 00 40 84 3c 42 7f 00 00 01 0010 7f 00 00 01
SCTP パート
0000 0b 5e 0b 59 c2 e5 f8 00 00 00 00 00 00 03 00 13 0010 fe aa 43 3e 00 00 00 0c 00 00 00 00 64 0a 00 00
よろしく、開発バッグ
sockets - SCTP:100ミリ秒以上の遅延でデータを送信する際の問題
SCTPクライアントを使用して、100ミリ秒の遅延リンクを介して1000バイトのデータを別のSCTPサーバーに送信しています。遅延は、Linuxで利用可能なトラフィック制御(tc)とnetemを使用して構成されます
私が使用したコードはSCTPマルチホーミングからのものです。ラウンドトリップ時間(最大)を60秒、ハートビートを10秒に設定しました。今私が直面している問題は、1000バイトの約3〜4パケットを適切に送信できることです。その後、「ピアによる接続リセット」が発生し、そのため、これ以上パケットを送信できなくなります。高遅延リンクを介してSCTPデータを送信するために必要なことを教えてください。ご協力いただきありがとうございます。
java - JavaでのSCTP実装?
Java を使用してゲートウェイとサーバーの間で SCTP プロトコルを実装する方法は?
python - Python SCTP スタック (pysctp) の使用を開始するには?
http://www.epx.com.br/pysctp/から pysctp をインストールしたところですが、基本的な例を機能させるのに問題があります。私は何が間違っているのでしょうか?
Red Hat Linux を使用しています。
macos - OSXでSCTPにインクルードファイルがありませんか?
私はソケットをいじっていましたが、Mac で SCTP プロトコルを使用してテストしたかったのです。
ただし、ファイルをインクルードしようとするとnetinet/sctp.h、コンパイラから「ファイルが見つかりません」というエラーが表示されます。
だから私はいくつかの調査を行いましたが、確かに、netinet/sctp.hMac OSX Lion 用のインクルード ファイルはありません。でソケットをセットアップできIPPROTO_SCTP、それが正常にビルドされるのはなぜですか?
要約すると、2 つの質問があります。
- Mac OSX の SCTP のヘッダーはどこにありますか?
- 適切なヘッダーがなくても SCTP サーバーをセットアップできますか? もしそうなら、どのように?
c - SCTP で OWN プライマリ アドレスを設定することは可能ですか?
サーバーとクライアント (Linux) の間に SCTP 接続を設定しようとしています。サーバーには複数の IP アドレスがあり、発信 IP パケットは送信元アドレスに応じてルーティングされます。sctp 接続がデフォルトで特定のアドレスを使用するようにしたい (デフォルトで特定のルートを使用するため)
私が見つけた唯一のオプションは次のとおりです。
私が理解している限りでは、このオプションを使用すると、ピアのプライマリ アドレスを選択し (送信時)、ローカル アドレスの 1 つを使用するようピアに要求できます (受信時)。
問題は、送信メッセージの送信元となるローカル アドレスを選択する方法はありますか?