問題タブ [packet-loss]

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 に答える
1834 参照

serial-port - Arduino: シリアル通信でのパケット損失

ボード間の通信を可能にするために、シリアルピンを介して複数のArduinoメガボードを接続しようとしています。任意の数の arduino をデイジー チャンニングして接続できるようにしたいのですが、1 つのボードをマスターにして、他のボードの動作を制御したいと考えています。マスターは、ボードによって動的に決定される必要があります。デイジーチェーン方式ではパケットの転送により通信に遅延が生じることは承知していますが、今のところ最大で4枚のボードを接続する予定です。将来的には、これはおそらく 10 ボードに増える可能性があります。私のボードはすべて、独自の電源を持つ他のハードウェアに接続されているため、個別の電源を持っています。

私のアイデアは、ボードの配線によってマスターが決定されるような方法でボードを接続することでした。「Serial」ポートを「To-Master」シリアルポートとして、「Serial1」ポートを「To-Child」シリアルポートとして持つことを考えました。ボードは「To-Master」シリアル ポートで hello メッセージを送信し、「To-Child」シリアル ポートでそのようなメッセージを受信した場合、マスターは応答します。数秒経っても応答がない場合、ボードはそれ自体がマスターであると判断します。

グランド ピンを接続してボードを配線し、マスターの RX1 を子の TX0 に、マスターの TX1 を子の RX0 に配線します。

ボードの配線

ボードはお互いを検出し、hello メッセージと返信を交換するため、基本的に私のセットアップは機能しています。ただし、除去したい大量のパケット損失または破損があります。

パケット検証の簡単な方法として、各パケットを「マジック ナンバー」で始めます。受信ボードはこのバイトを探し、このバイトを受信した後にのみパケットを読み取ろうとします。受信したその他のバイトは単に破棄されます。

お分かりのように、どちらかのシリアル ポートでマジック ナンバーで始まらないものを受信したために破棄されることがよくあります。ただし、これらのイベントのタイムスタンプは、他のボードの送信のタイムスタンプと一致しています。これは、パケットが少なくとも部分的に送信されたものの、何らかの理由でマジック バイトが破損または破棄されたことを意味します。

これは arduinos シリアル ポートの既知の問題ですか?

それは私の配線に関連していますか?

パケットの保存配信を確実にするために講じることができる手段はありますか?

ボードが正しい時間に信号を読み取らないことが問題なのでしょうか (私は 9600 のボーレートを使用しました)?

I2C 通信も調べましたが、このタイプの通信のマスターを動的に選択できるかどうかのリソースや情報は見つかりませんでした。また、ドキュメントには、すべてのデバイスが共通の電源を共有することが重要であると記載されていますが、これは私のシナリオでは不可能です。ただし、他のすべてのボードにコマンドを送信するマスターがあるため、この I2C の基本的なマスター/スレーブ原理は私の要件に準拠しています。私の場合、I2C を利用できますか?

ご感想ありがとうございます!

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

java - Java UDP パケットの送受信の問題

Java と UDP の送信者と受信者を使用するクラスのプロジェクトに取り組んでいます。問題の前提は、テキスト ファイルを読み込み、パケット内に内容を格納し、パケットを送信し、パケットを受信し、画面上でファイルを読み上げ、受信側のコンピューターで同一のテキスト ファイルの新しいテキスト ドキュメントを作成することです。 .

私はそのすべてを機能させています。ローカル ホストでテストすると、100% の確率で動作するように見えます。ラップトップから PC に送信すると、100% 正常に動作しているように見えます。ただし、PCからラップトップに送信すると機能しません。

送信した情報の一部を確認するための System.out デバッグ ステートメントがいくつかあります。テキスト ファイルに 7 パケットが必要であることはわかっています。ただし、PC からラップトップに送信するたびに、46 パケットを送信していると表示されます。

私の最初の考えは、パケットが順不同で送信されている可能性があるということです。私が送信している最初のパケットは、受信者が受信する予定のパケット数を示しています。何らかの理由で「46」は大文字の「F」を示しているのではないかと考えたので、大文字の「F」をすべて削除しても、46 パケットを送信していると表示されます。

一度に送信する情報が多すぎるのではないかと考えたので、Thread.sleep() を使用して、受信者が追いつく時間を与えましたが、これもうまくいきませんでした。

最後に、Oracle のドキュメントとオンラインの投稿を読んだところ、UDP が信頼できないことがわかりました。だから、私はそれが潜在的にそれであると仮定しています。ただし、それが問題になる可能性があることを確認したいだけです。

または、何が問題を引き起こしている可能性があるかについて誰かがより良い考えを持っているなら、それも素晴らしいでしょう!

ご協力いただきありがとうございます :)

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

iis - IIS6 失われたパケット

しばらくの間、オンとオフに問題がありました...

サーバーに同期するアプリがあります。wireshark を実行していて、着信要求を確認できるため、要求がサーバーに到達していることがわかります。

ここで、どこかが間違っている場合は修正が必要です...

私の理解では、トラフィックはマシンのネットワーク カードから HTTP.sys に送られ、IIS6 に転送され、IIS6 がそれを実行可能な ISAPI に送信します。ネットワーク カードを WWW 経由でデバイスに戻します。

これらのリクエストは失われつつあります。先ほど言ったように、wireshark のおかげでリクエストがネットワーク カードに到達したことがわかりますが、この時点から何が起こったのかはわかりません。HTTP.sys ログにエラーはありません。 、IIS ログには何もありません。ISAPI のログと同じで、ここにも何もありません。

HTTP.sys ログが空であるという事実は、カーネルがそれを IIS6 に正常に渡したと考えていることを示していますが、IIS6 が最初に要求を受信したときにログに記録するのか、それとも正常に応答したときに誰かがログに記録するのかはわかりません。これについて何かアイデアはありますか?それは非常に奇妙なものです。

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

java - QT - JAVA ソケット損失データ

私は QT/C++ サーバーと Java クライアントを持っています。クライアントはサーバーにファイルを要求し、サーバーはクライアントにストリームを送信します。問題は、TCP 送信 (ローカルホストでも) でいくつかのパケットが失われたことです。時々、クライアントは 288890 の 280705 バイトを受け取ります。

サーバーがあります:

これは SocketThread です。

そして、これはJAVAクライアントです:

} }

ファイル test.txt は、各行に番号が付いたファイルです。

クライアントがファイル全体を受け取る場合もあれば、次のように最初の部分を除いてファイルを受け取る場合もあります。

60 から開始し、1860 にジャンプして 50000 に終了します。

リクエストを 1000 回反復しようとすると、90% の回数でコードが機能し、すべてのデータが転送されます。

誰かが私を理解するのを手伝ってくれますか?

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

networking - 異常なネットワーク ステータスに応じたジッターとパケット損失に関連する RTP ビデオの問題

私は、SIP/RTP Voip ソフトウェアを開発する初心者のソフトウェア開発者です。確かに、私は UDP プロトコルを使用しており、このビデオのビデオ コーデックは H264 です。

私はこの VoIP エリアに慣れていないので、非常に混乱しており、ネットワークの問題に悩まされています。

特にジッター/パケット損失に関するRTP/RTCPの問題を扱うネットワークに関連する専門家に質問したいと思います。

SIP がメディア セッションを正常に作成した後、QoS に関する問題が発生します。

私が直面している問題は、以下のようなものです。

Wifi ネットワーク (遅延: 11.1m/s ダウンロード速度: 14.9mbps アップロード速度: 3.27mbps):
http://www.youtube.com/watch?v=epm01c6IT5Q&feature=youtu.be

3G ネットワーク (遅延: 26.4M/s ダウンロード速度: 1.94Mbps アップロード速度: 2.42Mbps): http://www.youtube.com/watch?v=-iG156_wdQE&feature=youtu.be

ご覧のとおり、アップロードとダウンロードが少なく、遅延が不安定な 3G 経由で、緑色に着色されたビデオの問題とビデオの遅延を含むビデオ品質は、Wifi よりも優れています。

Wifi よりも遅い 3G ネットワークを使用すると、常に Wifi よりも優れたユーザー エクスペリエンスを得ることができます。

RTP/RTCP パケットを深く分析したわけではありませんが、言えることは...

問題の状況で、アプリケーションに Wi-fi を使用すると、Jitter が異常に高くなり、パケット損失も明らかに高くなりました。

総括する、

  1. ご覧のとおり、Wifi よりも遅い 3G ネットワークを使用すると、ビデオの品質が向上します。
  2. Wifi が動作すると、受信側で Wire-shark を使用してパケットを解析できるため、ジッターとパケット ロスが明らかに高くなります。
  3. その朝の時点では、ビデオの問題 (ビデオの緑色のピクセル、ビデオの遅延) ははるかに深刻でしたが、時間が経つにつれて、午後と夜に問題が少し回復しました。

私の知る限り、それはネットワーク帯域幅とネットワークの輻輳に関連しています。それが適切な診断であり、これを解決する必要があるかどうかはわかりません。申し訳ありませんが、まだ十分な背景情報がありません。

ありがとう。