Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a system that I've built for using optical signals to communicate underwater. I'm using a GNURadio + USRP system to test this and I have a program that creates an ethernet connection across my system. I need to measure the link quality as a function of communication distance, water quality, etc.

My question is what method should I use to measure ethernet link quality, and how? Say I have a FTP connection, how would I go about measuring and plotting the retransmits? Or, is there an easy way to directly measure TCP packet CRC failures? What other useful metrics could I gather? I want something more high-level than bit-error rate vs. signal/noise.

share|improve this question

migrated from electronics.stackexchange.com May 14 '11 at 8:36

This question came from our site for electronics and electrical engineering professionals, students, and enthusiasts.

3 Answers 3

up vote 1 down vote accepted

Netperf seems to be a popular tool for analyzing ethernet links. I think it is installed by default in Ubuntu.

share|improve this answer

I tried to find such a tool to verify my long range WiFi link but the best thing I came up with was ping.

sudo ping -i 0.01 -c 10000 -s 1024 192.168.17.2

You can change both the interval -i (in seconds) and packet size -s (in bytes) to change the bandwidth utilization. Large packet sizes are also more sensitive to link errors (1 bit error will cause the whole packet to be discarded) so expect higher lost packet counts with bigger -s.

share|improve this answer
    
These are OS X (really BSD I guess) ping arguments but this will work on both Linux and Windows if you adjust the option letters. –  jpc Mar 31 '11 at 10:39
    
This worked on my Linux system (Fedora 14) with no complaints, as is. No adjusting needed. –  Mr. Shickadance Mar 31 '11 at 14:17

Wireshark is a very useful tool for examining ethernet links.

Ethernet has its own check that it performs before TCP's check. It is the Ethernet layer that catches line errors and is probably the best place to be investigating.

share|improve this answer
    
@Kellenjb As you probably know, if Ethernet recognizes a corrupt frame it does not retransmit, it leaves that to a higher level protocol (typically TCP). –  blankabout Mar 31 '11 at 1:03
    
@blankabout correct. Thanks for clarifying my post. –  Kellenjb Mar 31 '11 at 3:07
    
@gallamine By checking for link layer errors you are able to determine the performance of the link you created. If you go any higher level then that then there can be errors and dropped packets that have nothing to do with your link, but rather just the nature of Ethernet networks. It is best to not deal with these in your situation. –  Kellenjb Mar 31 '11 at 3:09
    
@Kellenjb, I have wireshark installed. You're suggesting I track the LL errors there? Is the layer exposed to Wireshark, or should I track TCP retransmits as a proxy metric? –  gallamine Mar 31 '11 at 13:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.