問題タブ [packets]
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.
java - Java クライアントを使用して TCP 経由で読み取ると、パケットが欠落/ドロップする
私は C++ クライアントを Java バージョンに変更しています - 私が何よりも試している演習です。
元の C++ コードは完全に機能します。サービス側は DWORD を送信し、クライアントはこれを探して 253 バイトのデータを読み取ります。私はJavaでこれを試しましたが、多くの成功を収めました.クライアントは多くのパケットをドロップしています.20分の1が通過します. 以下は、私が試したいくつかの異なるコード ブロックです。私が間違っているときに誰かが私に言うことができれば、私はそれを最も感謝しています.
ありがとう
マーク
試行 1:
試行 2:
network-programming - UDPパケットはどの程度故障していると予想できますか?
通常の状況では、UDPパケットの順序が正しくない場合の最悪のシナリオはどうなると思いますか?
現在、順序を追跡するために、各パケットに2バイト(0〜65535の番号)のタグを付けています。これで十分ですか、それとも多すぎますか?
c++ - UDP Tx ループは、正確に 3970 パケット (友人のコンピューターでは 14386) で毎回動作を停止します
過去 4 日間、この問題で立ち往生しており、理解できないようです。別のプログラムがバイトを読み取れるように、UDP パケットを使用して自分自身にデータを送信しようとしています。
パケットを明確に読み取ることができますが、プログラムの UDP 部分がハングする前に 3970 までしか取得できません。Glut と他のすべては正常に動作し続けます。友人に同じコードを渡すと、彼はそれを自分のコンピューターで実行しました。彼は、ハングするまでに 14386 回の反復を行いました。変数 temp は、送信されたパケットの数をカウントします。-1は悪いです。counter は while ループの反復をカウントします。ここの例に従っています:
http://msdn.microsoft.com/en-us/library/ms740148(v=vs.85).aspx
コード例:
networking - 奇妙な IPERF 観測: MSS サイズが指定されたサイズから減少する
IPERF を使用して、ある PC から別の PC にパケットを送信しています。IPERF で MSS (Maximum Segment Size) をテストしているときに、次のことが観察されました。
MSS = 20 バイトのパケットを送信します。
上記のコマンドは、MSS = 20 バイト、
MTU = MSS + 40 バイト = 60 バイトのパケットを送信すると予想していましたが、IPERF は MSS = 36 バイト (MTU = 76 バイト) を示しています。
IPERF は常に、指定したサイズよりも 12 バイト小さいサイズの MSS を送信することがわかりました。
ここで、パケットを送信する PC は Linux マシンであり、これらのパケットを受信する PC は Windows マシンであることに注意してください。Linux では IPERF コマンドを使用してパケットを生成しますが、Windows では JPERF の照合が実行され、着信パケットに関する情報が表示されます。
もう 1 つの重要なことは、送信したパケットを受信した後の Windows マシン上の JPERF が次のように表示することです: MSS および MTU サイズが不明です (TCP_MAXSEG は OS でサポートされていませんか?)
MSSがどのように/なぜ減少するのか考えていますか?
networking - ネットワーキング/国際的にホストされているpingとtraceroute
pingとtracerouteに関連するサーバーの距離の相関関係を含むプロジェクトに取り組んでいます。そのため、さまざまなWebサイトのホップ数と平均ping時間を取得しています。これを実現するためにpuTTyおよびunixコードを使用していますが、Webサイトをtracerouteする場合(traceroute australia.gov.au -m 255)、最大ホップ数を許可します。約18ホップを取得すると、横に3つのアスタリスクが付いた237の番号が取得されます。最初は、これはコマンドの-m 255拡張子の結果であると思いましたが、youtubeやgoogleなどのWebサイトでは発生しません。これはタイムアウトしたホップ/接続ですか?また、このWebサイト(ping australia.gov.au -c 25)にpingを実行すると、約1分間(2000ミリ秒近く)応答がなく、25パケットが送信され、0が受信されたと出力されます。説明は何ですか。このため?
network-programming - nfq_get_payload からデータを取得する
「nfq_get_payload(nfqData, &data);」を使用する場合 そして、「データ」を出力します。得られるのはEだけです。ペイロードを取得するために他に何かする必要がありますか?
packet - netfilter キューによるパケット変更?
私は現在、iptables の NFQUEUE ターゲットでキューに入れられたパケットを変更するために、ユーザー空間で libnetfilter_queue のコードを使用しようとしています。しかし、私はそれを行う方法についてほとんど考えていません。
NFQNL_COPY_PACKET を使用してパケットをコピーするように設定しました。コピーされたパケットを変更すると、関数 nfq_set_verdict() によって自動的にカーネルに送り返されますか?
さらに、以前に pcap ファイルからパケットを抽出する作業を行ったことがありますが、nfq_get_payload() から取得したデータが非常に異なっているように見えることに気付きました。データを分析する方法を知っている人はいますか?
c# - IP パケットの送信
道に迷いました。私は何日もウェブを検索してきましたが、答えが見つかりません。私は多かれ少なかれ初心者のソケットプログラマーですが、それは理解しています。
私は次のことをしたい:
- カスタム パケットを作成する (最初から、すべての値を設定する)
- それを送る
Java、C++、または C# のいずれか。これには使いやすいライブラリがありますか、それともそれを可能にするコアクラスがありますか? すでに Java ライブラリ jnetpcap を試しましたが、例を実行して Eclipse のインストール ガイドに従っている場合でも、エラーが発生するだけでした。
どんな助けでも大歓迎です!
注:Windows用です
c++ - ネットワークデータパッキング
データをネットワーク経由で送信するために、データを効率的にパックする方法を探していました。方法を提案するトピックを見つけました:http ://www.sdltutorials.com/cpp-tip-packing-data
また、商用アプリケーションで使用されていることも確認しました。そこで試してみることにしましたが、思った通りの結果にはなりませんでした。
まず第一に、データを「パック」することの全体的なポイントは、バイトを節約することです。しかし、上記のアルゴリズムがバイトを節約しているとは思いません。なぜなら、パッキングなしで...サーバーは4バイト(データ)を送信するので、パッキング後、サーバーは4バイト長の文字配列を送信します...したがって、それは無意味です。
それを除けば、なぜ誰かが0xFFを追加するのでしょうか、それは何もしません。
上記のチュートリアルにあるコードスニペット:
結果:0040//4バイト長の文字1024//4バイト長
c - malloc() と free() を呼び出し続けるのはどれほど悪いことでしょうか?
テキストファイルを送信しています-クライアントサーバーはテキストをそれぞれ512バイトのパケットに分割しますが、一部のパケットには最大サイズ未満のテキストが含まれているため、サーバー側で各パケットを受信するときにmalloc()を呼び出して文字列を再度構築します、これは悪い習慣ですか?最大長に収まる作業バッファを保持し、その値を反復、コピー、上書きし続ける方が良いですか?
わかりました @nm ここにコードがあります。これは、select() によって起こされた for(;;) ループ内にある場合