The Ethernet network type simulates a multiple access network with optional collision detection. Note that this is really an abstract network type, capable of simulating networks with a variety of characteristics. If no arguments are specified, the network's default configuration is that of a 10Mbps Ethernet, with the exception that collision detection is disabled. However, the bandwidth, latency, packet overhead, and MTU can be changed to produce networks with behaviors different from that of the standard Ethernet.
The following arguments can be specified on the args line of an Ethernet entry.
collisions= on | off
Enables/disables Ethernet collisions. When this option is off, two or more hosts are allowed to successfully transmit on the Ethernet simultaneously. When on, if two hosts send simultaneously, a collision is detected and the hosts perform the Ethernet exponential backoff algorithm. The default is off.
delay=<integer>[unit]
Sets the latency, that is, the time it takes for a packet to propagate from one end of the network to the other. The optional unit can be us (microseconds), ms (milliseconds), or s (seconds). The default value is 0, and the default unit is microseconds.
maxPacket=<integer>
Specifies, in bytes, the maximum packet size for the network. Packets larger than this maximum should be fragmented by a higher-level protocol; if they are not, they will be dropped. The default
maxPacket for ETH is 1518, comprising 1500 bytes of payload, 14 bytes of Ethernet header, and a 4-byte CRC.
minPacket=<integer>
Specifies, in bytes, the minimum packet size for that network. Packets smaller than the minimum will be padded. The default
minPacket for ETH networks is 64 bytes, 14 of which are for the Ethernet header, and 4 for the CRC.
pktHeader=<integer>
For use with minPacket and maxPacket. The simulator adds the value of pktHeader to the length of the message pushed to SIM to determine the packet's length. In ETH, since the header is attached by the ethd protocol, the network's
pktHeader defaults to 0. In other words, the size of a packet is given by the size of the message pushed to SIM, plus
pktHeader. If packet < minPacket, it is padded; if packet > maxPacket, it is dropped. When using
ETH networks to model other types of networks, one may want to use negative values for pktHeader when the modeled network's header is less than 14 bytes.
pktOverhead=<integer>
Conceptually, this option adds the specified number of bytes to each packet as it is transmitted on the network. The intended use is to model the overhead consumed by framing information. The added
pktOverhead does not count as part of the packet length from the standpoint of minPacket or maxPacket. The default is 8, as Intel's Lance uses 8 bytes for framing.
rate=<real>[unit] | T1 | T3
Sets the bandwidth, in units per second, for the network. The rate can be a positive real number followed immediately by an optional unit. The unit is one of: MB, Mb, KB, Kb, B, or b. A B in all units represents bytes and b denotes bits. For instance, 4.5Mb specifies a bandwidth of 4.5 mega bits per second. If no unit is specified, the default is bytes. T1 and T3 can also be specified as rates. T1 corresponds to approximately 1.5Mbps, and
T3 is about 45Mbps. For Ethernet, the default bandwidth is 10Mbps.