データが送信される速度を確認する方法


0

私はある既知のフォーマットでUDPを介してメッセージを送信するアプリを持っています。これらのメッセージが送信される速度を知りたいのですが。明確にするために、私はデータレートについてあまり気にすることができませんでした - それはループバックです、それでそれは無限大+ 1の近くのどこかです - 私が彼がどれくらい頻繁に知る必要があるもの 完全なメッセージ 外出する。


例えばあなたが使ってみた ワイヤーシャーク ?何が起こっているのかを正確に示すことができるはずです。そして興味のあるパケットを見つけたら、それらを表示するようにビューをフィルタすることができます。
AndrejaKo

2
それが答えになるはずです、@ Andreja!それを信用してください。 :)
Darth Android

回答:


3

使用してみるべきです TCPDUMP そして WireShark データを取得して分析する

気にしているのがパケットレートだけであれば、実行中です。 netstat あなたにアイデアを与えるかもしれません。

Linuxの場合

`netstat --interfaces=lo -c`

1秒間隔であなたにアイデアを与えるでしょうが、ほとんどの現代のOSには同様のフラグがあります。


win7と同等のもの
jamesson

@jamesson - 提案されているプログラムを使用するか、またはWindows版のnetstatを使用してください。
Ramhound

@jamesson - 試してみましたか WireShark
Karlson

0

「メッセージ」によって「データグラム」を意味する場合、答えは100%です。 UDPデータグラムは送信されるかされないかのどちらかであり、そして到着するかしないかのどちらかです。あなたは絶対にいけない recvfrom() UDPデータグラムの一部だけ。データグラムがネットワークMTUよりも大きくなってしまうと、IP層で断片化される可能性がありますが、フラグメントがドロップされると、データグラム全体が部分的なメッセージではなくドロップされます。

ループバックの速度は無限大ではありません。CPUによって制限されます。データの送信速度が速すぎると、発信UDPバッファがいっぱいになります。それからあなたがしようとすると sendto() 残りのバッファスペースに収まるには大きすぎるデータグラムは、次のようなエラーになります。 EAGAINENOBUFSまたは EMSGSIZE実装によって異なります。受信機が電話をかけた場合 recvfrom() ゆっくりすると、その入力バッファはいっぱいになり、データグラムは静かに破棄されます。

より関連性のある質問は、実際に受信された送信データグラムの割合です。 CPU飽和をかなり下回るレートでは、これはループバックで100%になるはずです。しかし、CPUの飽和状態に近づくとき、または受信側がデータグラムの読み取りに時間がかかる場合は、任意に低くなる可能性があります。


便利で面白い視点私のシステムはCPU飽和度に近づいていないので、私の場合には本当に当てはまりません。知恵をありがとう!
jamesson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.