Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Re: Network Duplex speed test

by Preceptor (Deacon)
on Sep 10, 2003 at 08:36 UTC ( #290342=note: print w/replies, xml ) Need Help??

in reply to Re: Network Duplex speed test
in thread Network Duplex speed test

I've used pcap in different programs, and essentially, the route I went to develop it didn't really go near pcap :). I've always thought of pcap as a way to write custom packet sniffing tools (I've got one that just logs host and service of machines that access a particular server. Used just prior to decommissioning it to check if anything would break horribly when we did)

I started with a need to send pings, so started using Net::Ping. Then, when that proved no use for my needs, I started looking at the source code, and adapting from there.
The reason I didn't include a subnet scanner, was partially because as is, this program fulfills my need, and partially because sending a large number of fragmented ICMP packets counts as a DOS. So hitting a whole subnet with them is a very rude thing to do.
For subnet scanning, I use nmap. It's fairly easy to do a pingsweep in nmap, and feed the results through to this script :)

I hadn't really considered using it as a network performance indicator. I suppose that as the network load drops, the quantity of returned packets will increase, but my primary aim was to track down the few machines that were slowing us down (backups primarily) by running half duplex.

Replies are listed 'Best First'.
Re: Re: Re: Network Duplex speed test
by melora (Scribe) on Oct 01, 2003 at 16:56 UTC
    Looks like a handy bit of code. I'm trying to use it on our dinky LAN, just testing and hoping to do some benchmarking and learning more about network programming in Perl. However, I'm getting errors from the recv() calls - they are resulting in undefined $remote. I'm giving the program IP addresses on our local LAN (e.g., ones that I can successfully ping. Where do I go from here? (ooh, I opened myself up that time). melora
      Never mind, I found it. The size (10240) used to make up a message was larger than the SIZE 1500 used to specify the maximum length of a message. Thanks for a handy piece of code! melora
        The value of $datasize is deliberately larger than SIZE. This is because the mtu on ethernet (max transmission unit) is 1496 bytes. By setting the packet size larger, you are forcing fragmentation which means you're more likely to get a correct response (since at half duplex the frags tend to collides and thus don't reach the remote host).
        I'd check it against a host you've deliberately set to half duplex, just to make sure it works if you've changed that behaviour.
        Glad it proved useful though.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://290342]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2017-04-24 17:54 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (443 votes). Check out past polls.