Menu

Home

Salvatore Novelli

networkanalyzer

This software analyze the network characteristics like Delay, Jitter, Packet loss etc. by sending UDP packet to a host and waiting for that host to echo on the source address.

This software works almost like ping but produces more detailed analysys and can also monitor available bandwidth.
It is composed by a Packet Generator and a Packet Receiver/analyzer

Packet Generator

Packet Generator is a simple UDP stream generator, where you can set:

Source Address, port

  • Destination Address, port
  • Stream Bandwidth
  • Packet size

Packet Receiver

Packet Receiver is a very basic udp socket that receive the stream generated by the Packet generator.
Since the stream is produced and consumed on the same machine, is is very easy to analyze:

Bandwidth : Packets per second

  • Bandwidth : Kbps
  • Delay
  • Packet Loss: Loss count
  • Packet Loss: Corrupted (in case packet discard is disabled or MITM attacks)
  • Packet Loss: Elapsed time since last loss
  • Packet Loss: Continuos packet loss count (Last, AVG, Min, Max) (burst loss)
  • Packet Loss: Continuos paclet loss time duration ms (Last, AVG, Min, Max) (burst loss)
  • Jitter : Last, AVG, Min, Max

You can use this software in 2 ways

  1. Pointing to a server where you have defined a sort of echo via iptables

Example:

SRC_PC_ADDRESS: The pc IP Address where you run the Network Analyzer
DST_PORT: The port you specify as destination Address-Port in network analyzer

1
2
3
4
#!/bin/bash
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p udp -m udp --dport DST_PORT -j DNAT --to-destination SRC_PC_ADDRESS
iptables -t nat -A POSTROUTING -p udp -m udp --dport DST_PORT -j MASQUERADE
  • Pointing to a server that forward the stream to you

Additional notes:

I'm not finding any tool to easily "echo" on a UDP port you must provide a mechanism to echoing the stream on the target server. It would be nice to change protocol from UDP to ICMP to have a pre-defined application on each computer but ICMP would be limiting because many hosts limit the numbers of reply per seconds and the bandwidth test wouldn't work at all or may be producing unexpected results.
I'll post a UDPEchoer project later if there will be intrest on this project.