2012-05-10 12 views

答えて

0

TCPの場合、Linuxレベルで値を取得する可能性がありますが、Java/Androidレベルで値を取得する可能性があります。

UDPの場合、パケット損失を検出するために使用できるデータが含まれていないため不可能です。 UDPレベルでのデータ損失を計算する場合は、独自のUDPベースのプロトコルを実装し、たとえばパケットカウンタを含める必要があります。しかし、それは一般的なレベルではなく、独自のプロトコルのパケット損失を計算することだけを可能にします。

1

ロバートの答えを拡張するために、UDPは、セッション、順序どおりの配信、またはエラー検出の概念を持たないデータグラムのベストエフォート型配信プロトコルです。エラー検出が必要な場合は、TCPの多く(おそらく少なくともシーケンス番号、チェックサム、確認応答)を実装することになります。

幸いなことに、TCPの場合、カーネルは詳細な統計情報を記録しています。標準のipユーティリティはここで役立つはずです。私のSGS2では、ユーティリティは完了し、ifconfigのように切り捨てられません。

使用例:

[email protected]:/etC# ip -s -s link 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    RX: bytes packets errors dropped overrun mcast 
    23692  410  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    23692  410  0  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
2: gannet0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1000 qdisc pfifo_fast state UNKNOWN qlen 1000 
    link/ether 72:e0:e5:0a:dc:d6 brd ff:ff:ff:ff:ff:ff 
    RX: bytes packets errors dropped overrun mcast 
    0   0  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    0   0  0  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
3: sit0: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN 
    link/sit 0.0.0.0 brd 0.0.0.0 
    RX: bytes packets errors dropped overrun mcast 
    0   0  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    0   0  59  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
4: ip6tnl0: <NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue state UNKNOWN 
    link/tunnel6 :: brd :: 
    RX: bytes packets errors dropped overrun mcast 
    0   0  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    0   0  62  62  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
5: rmnet0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 
    link/ppp 
    RX: bytes packets errors dropped overrun mcast 
    1410177 2037  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    199870  1831  0  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
6: rmnet1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 
    link/ppp 
    RX: bytes packets errors dropped overrun mcast 
    0   0  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    0   0  0  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  
7: rmnet2: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 
    link/ppp 
    RX: bytes packets errors dropped overrun mcast 
    0   0  0  0  0  0  
    RX errors: length crc  frame fifo missed 
       0  0  0  0  0  
    TX: bytes packets errors dropped carrier collsns 
    0   0  0  0  0  0  
    TX errors: aborted fifo window heartbeat 
       0  0  0  0  

私の携帯電話の根ざしが、それは間違いなく必要条件ではありません。

+0

どうすれば私のアンドロイドアプリケーション内にこの情報が欲しいですか?それを行う方法はありますか? –

+0

はい、あります。あなたは 'ip'ユーティリティを実行し、出力をキャプチャして、必要なものを解析することができます。デバイス間でやりとりするのは苦労でしょう(リンク名は変わります、 'ip'ユーティリティはAndroid自体の一部ではありません)。 – Delyan

関連する問題