問題タブ [ip-fragmentation]

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.

0 投票する
2 に答える
690 参照

node.js - IP フラグメンテーション: それはまだ標準ですよね?

PDP/11 でソケット プログラミングを行って以来、IP データグラム (UDP データグラムなど) がセグメントに許可されている MTU よりも大きい場合、IP フラグメンテーションが処理されるようになっています。

したがって、サイズ 30 kB の UDP データグラムを送信できます。これは、イーサネット上で 1.5 kB の 20 セグメントにフラグメント化され、その後、特定のワイヤレス リンク用にそれぞれが 576 バイト未満の 3 つのセグメントにフラグメント化されます。フラグメントは相手側に到達し、UDP データグラムは相手側に到達します。

次に、node.js の UDP ソケットに関するドキュメントに出くわしました。このドキュメントでは、次のセグメントの MTU に適合しないデータグラムをルーターがドロップすると主張しています。これは、ヘッダーに「フラグメント化しない」ビットが設定されたデータグラムの場合だけだと思っていましたが、node.js がネットワーク サークルで一定の信頼性を備えた高品質の製品であると想定されていることを考えると、何かを逃したため、多くのルーターはすべてのデータグラムを「フラグメント化しない」かのように扱うようになりました。

リンクは次のとおりです。 http://nodejs.org/api/dgram.html#dgram_socket_send_buf_offset_length_port_address_callback

引用は次のとおりです。

それで、私は何かを見逃していましたか、それとも node.js のドキュメントを更新する必要がありますか?

0 投票する
0 に答える
282 参照

packet-sniffers - WinPCap パケットの再構成

WinPCap を使用して、ネットワーク上のパケットをキャプチャし、ネットワーク アプリケーションの一部をトラブルシューティングできるようにするアプリケーションを作成しています。パケットが断片化されるまで、すべてが正常に機能します。

WinPCap が送信するパケットのオフセットとフラグメンテーション オプションが間違っているようです。

各パケットのデータは次のとおりです。

これらの値を使用して、常にこれらのパケットを 5 つ取得します (毎回同じテスト データを送信しています)。ペイロード データを正しく再構成できるように、パケットに応じてオフセットとオプションを変更する必要があると考えました。

WinPCap を使用して、断片化されたもののパケット データを取得する方法について、私は途方に暮れています。

誰にもアイデアはありますか?どんな助けでも大歓迎です。

0 投票する
1 に答える
528 参照

php - PHP SNMP v2 ウォーク フラグメンテーション/ブロック

PHP で snmp v2 を使用する場合、最大メッセージ サイズを設定するにはどうすればよいですか?

PHP を使用してデバイスの SNMP ウォークを実行しており、私の組織では非常に厳格なファイアウォールが設置されています。(snmp2_real_walk または snmp2_walk) が、パケットが大きく断片化されている場合に実稼働サーバーからタイムアウトになるという問題が発生しています。断片化を防ぐために、最大パケット サイズを小さく設定する方法があるかどうか疑問に思っています。

Ubuntu 12.04 で php 5.4.10 と Net-SNMP 5.4.3 を使用しています。

トラフィックをキャプチャすると、snmp2_real_walk が getBulkRequest を使用していることがわかりました。パケットが断片化されていることを示す応答と、より小さなフォローアップ パケットが返されます。ファイアウォール以外の同じ環境のローカルマシンでは、これは機能します。私の本番マシンでは、失敗しています。

コマンドラインから呼び出すと、より小さなパケットで動作します。理由がわかりません。パケット/メッセージのサイズを設定する方法が必要ですよね?

(機密データは削除されました)。

0 投票する
1 に答える
1353 参照

linux - Linux IPSec 実装が暗号化前の断片化をサポートしないのはなぜですか?

ESP ヘッダーを追加した後に MTU サイズを超えたため、ESP パケットが断片化される問題に対処しようとしています。解決策 (誰もが行っていること) は、ESP 暗号化を行う前に断片化を行うことです。

私の質問は、これがそれほど有用である場合、なぜ Linux の IPSec 実装がそれをネイティブにサポートしないのかということです。L4 トラフィック セレクターが機能しないという特定の制限があることは理解しています。しかし、誰もがそれを利用しているわけではありません。

さらに、このサポートを追加する最善の方法についての指針を共有できれば、本当に役に立ちます。

ありがとう。

0 投票する
2 に答える
4317 参照

sockets - IPフラグメンテーションはどれほど悪いか

IP メッセージを送信するときに、be とパケットの宛先の間のネットワーク パスの各ホップが、次のホップの MTU が送信したパケットのサイズよりも大きいかどうかを確認することを理解しています。その場合、パケットはフラグメント化され、2 つのパケットは別々にネクスト ホップに送信され、宛先で (場合によっては、最初に検出された NAT ルーターで) 再構成されます。私が理解している限り、これはかなり悪いことかもしれませんが、その理由はよくわかりません。

  • 接続が多くのパケットをドロップする傾向がある場合、単一のフラグメントを失うと、パケット全体を再送信する必要があることを理解しています (これは実際に私が自分で見つけた唯一のことです)
  • 私のパケットがフラグメント化される代わりにドロップされる可能性はありますか?
  • パケット フラグメントはどのように識別されますか? それらが正しく再組み立てされることを 100% 確信できますか? たとえば、同じ長さの 2 つの IP パケットをほぼ同時に同じ宛先に送信した場合、AAA、BBB が ABA、BAB に再構成されたように、2 つのフラグメントが交換される可能性はどれくらいありますか?

原則として、パケットがドロップされず、フラグメントが正しく再構成されている場合、実際にパケット フラグメント化を使用することは、ローカル帯域幅を節約し、1 つの大きなパケットだけではなく、ますます多くのヘッダーを送信する必要がないように思えます。

ありがとうございました