問題タブ [network-protocols]
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.
network-protocols - カスタムネットワークプロトコルでの無限のタイムアウトまたは「フェイルファスト」?
カスタムネットワークプロトコルを検討してください。このカスタムプロトコルを使用して、中央の.NETベースのワークステーションからLAN経由でロボット周辺機器を制御できます。(重要な場合、ロボットはチップ生産環境でファブを移動するのに忙しいです)。
- 会話の相手は、.NETステーションとロボット周辺機器の2つだけです。
- ロボット側はリクエストの受信と応答の送信のみが可能です
- .NET側は、要求を開始して応答を受信することしかできません
- リクエストごとに常に1つの応答が必要です
- 結果として生じるリクエストは、応答を待たずに次々に続くことができますが、同時に処理されるリクエストの固定制限(たとえば、5)を超えることはありません。
素敵なディテールやアイデアについて、友人(デザインを所有しているので、傍観者として話し合った)と徹底的に話し合った。議論の終わりに、タイムアウトの欠落について強い意見の不一致がありました。私の友人の主張は、両側のソフトウェアは無期限に待つべきだというものです。私の主張は、タイムアウトはどのネットワークプロトコルでも常に必要であるというものでした。私たちは単に同意することはできませんでした。
私の理由の1つは、障害が発生した場合は、どのようなコストでも「迅速に失敗」する必要があるということです。障害がすでに発生している場合、回復のコストは、障害に関する情報を受け取るために費やした時間に比例して増加し続けるためです。LANで1分後、待つのをやめて、アラームを鳴らしてください。
しかし、彼の主張は、回復には失敗したものの正確な修復(この場合はネットワーク接続の回復)が含まれるべきであり、ネットワークが失われて修正されたことを理解するのに何時間もかかる場合でも、ソフトウェアはただちに透過的に実行し続けるべきであるというものでしたLANケーブルを再接続した後。
この議論が行われるまで、私は時代を超越したプロトコルについて真剣に考えることはありませんでした。
議論のどちら側が正しいですか?「速く失敗する」または「決して失敗しない」?
編集:失敗の例は通信の喪失であり、通常はTCP層によって検出されます。この部分も議論されました。TCP層がエラーを返す場合、上位のカスタムプロトコル層は送信を再試行し、それについての引数はありません。問題は、下位レベルが試行を継続できるようにする期間はどれくらいかということです。
受け入れられた回答の編集:回答は2つの選択肢よりも複雑です:「最も一般的なアプローチは、実際の送信の試みが失敗し、接続が長い間失われたことを確実に確認するまで接続を放棄することはありません。接続が長い間失われたことを計算するには、ハートビートを使用しますが、即時アラームではなく、この確認のみの損失の年齢」。
例:Telnetセッションを使用している場合、端末を永久に稼働させ続けることができ、Enterキーを押す間に、下位レベルのルーチンで検出可能な障害があったかどうかはわかりません。
windows - Windows で Perl を使用して raw IP パケットを送信するにはどうすればよいですか?
Windows で raw パケットを送信できる Perl モジュールはありますか? があることは知っていますがNet::RawIP
、Windows では動作しないようです。
perl - Perl でその場でネットワーク パケットをキャプチャして編集するにはどうすればよいですか?
ネットワーク パケットをキャプチャしてその場で編集する Win32 の CPAN モジュールについて知っている人はいますか? 私の知る限り、オンザフライでパケットを処理する Win32 上の唯一の Perl モジュールはNet::Pcap ですが、パッシブ モニタリングのみをサポートし、TCP/IP スタックには影響しません。
誰かが example /reference /documentation を提供できるようなモジュールはありますか?
c# - SharpPcapでHTTPパケットをキャプチャする方法
自分のマシンのすべての着信HTTPパケットをキャプチャしたいと思います。そのために、WinPcapラッパーであるSharpPcapを使用しています。
SharpPcapは非常にうまく機能しますが、TCPパケットをキャプチャするため、これは低レベルであり、私が望むことを実行できません。これらすべてのTCPパケットから完全なHTTP要求/応答を簡単に取得する方法を知っている人はいますか?
ありがとう
c++ - C++でipstackを設計する
Linuxとネットワークの世界へのトレーニングプロジェクトとして、C++でIPスタックを実装したいと思います。Linux IPスタックがどのように機能するかについてはある程度の知識がありますが、前述したように、パフォーマンスに重点を置くのではなく、優れた設計のC++で何かを実装したいと思います。
C ++で書かれたIPスタックの書かれたデザイン(いくつかのUML +シーケンス図)をどこで見つけることができるか知っている人はいますか?
c++ - winsock バージョン 1.1 を使用して icmp パケット ハンドラーを実装するには?
現在、非常に古いアプリケーションに取り組んでいます。このアプリケーションを変更して、来る icmp リクエストをリッスンし、応答するか、パケットをドロップするかを決定する必要があります (ICMP でのアクセス制御のようなものです)。アプリケーションは Winsock バージョン 1.1 ベースです。ソケットを作成し、ソケットを使用して icmp パケットをキャプチャするさまざまな方法を試しました。しかし、私の努力はどれもうまくいきませんでした。
誰でも私を助けることができますか?それとも絶対無理ですか?
ご回答どうもありがとうございました。
linux - TCP 接続が CLOSE_WAIT ステータスでハングする
クライアントは最初にソケットを閉じます。サーバーからのデータがあまりない場合、tcp 接続のシャットダウンは次のように問題ありません。
サーバーがデータの送信でビジー状態の場合:
そして、サーバー接続は CLOSE_WAIT 状態になり、長時間そこにとどまります。
ここで何が問題なのですか?クライアント関連またはサーバー関連? これは、ローカル ソケットの Redhat5 で発生します。
この記事では、「RST」が送信される理由について説明していますが、サーバー接続が CLOSE_WAIT のままになっている理由がわからず、FIN を送信していません。
[編集] 最も重要な情報を無視しました。これは qemu の slirp ネットワーク エミュレーションで発生します。密接な接続を処理するための slirp バグの問題のようです。
http - ブラウザのHTTPコマンドを表示できるオープンソース(無料で読む)ツールはありますか?
HTTPプロトコルの詳細を調べていますが、ブラウザが使用されているときに行われる呼び出しを確認/理解したいと思います。Firebug(Firefoxを使用)を使用してAJAXインタラクションなどを確認/デバッグしていますが、完全なHTTP会話が表示されません。
ブラウザによって発行されたHTTPコマンドを表示するための類似したものはありますか?
networking - ネットワーク層がパケットのルートを見つける方法
www.stackoverflow.com に対する HTTP アプリケーション要求。このメッセージはトランスポート層に渡されます。トランスポート層はヘッダーを追加し、パケットをインターネット層に送信します。インターネット層は、トランスポート層によって追加されたヘッダーにしかアクセスできないため、www.stackoverflow.com を表示できません。次に、インターネット層はこの要求パケットのルートをどのように決定できますか。
アプリケーション層とトランスポート層だけがそのフィールドを知っているため、IPヘッダーの宛先アドレスフィールドはどのように埋められますか。(アプリケーション層は、ヘッダーにポート番号が記載されているインターネット層およびトランスポート層と相互作用しません。)