NAME
Net::Layers::Physical::Unreliable - Perl extension for testing network layer protocols on an unreliable physical layer.
SYNOPSIS
use Net::Layers::Physical::Unreliable;
my $obj = Net::Layers::Physical::Unreliable->new();
$obj->attempt("Message");
DESCRIPTION
Perl extension for testing network layer protocols (TCP|UDP|etc) on an unreliable physical layer.
The attempt method will returned a dropped (null) string, a garbled string (a string replaced with a non-sensical characters), or the orignal string.
Statistics are generated and can be called as shown bellow.
DETAILS
$obj = new(drop_percentage=> 5, garble_percentage=> 5);
Creates a new unreliable object. Optional parameters drop_percentage and garble_percentage are the percentages of a message being droped or garbled respectivly, in the range of 0 to 100 percent.
$obj->attempt("message");
Returns the orignal string, if the packet is not dropped or grabled. The following things happen: 1) The message is accepted. The number of attempted messages is incremented by 1. 2) A random number is generated in the range of 0..100. 3) If the random number is less than the drop_percentage, the message is "dropped" (an undef is returned), and the drop counter is incremented by one. If the random number is less than the drop_percentage plus the garble_percentage, the message is garbled, and is returned. 4) Else, the orignal message is returned and the orignal counter is incremented by one.
$obj->getAttempted();
Returns the number of attempted messages.
$obj->getOrignal();
Returns the number of messages that were returned in the orignal form.
$obj->getGarble();
Returns the number of messages that were garbled.
$obj->getDrop();
Returns the number of messsages that were dropped.
$obj->getLast();
Returns what happened last to the packet. Code Description -1 Packet returned was dropped 0 Packet returned was a garbled 1 Packet returned was the orignal packet
AUTHOR
Zachary Zebrowski, zak@freeshell.org
SEE ALSO
Effective Perl Programming by Joseph N. Hall with Randl L. Schwartz
Computer Networks by Andrew Anenbaum
http://freeshell.org/~zak