For your first project, you will develop a program that teaches about local area networks, specifically, the Ethernet topology. The focus of the project is to teach how computers on such a network contend for transmission, seize it, and transmit them. Obviously, one could also show breakup of messages into packets, or listening and receiving them, but we won't here. A similar project was give in the System simulation course, visit the assignment page for that project (Assignment #5).
It is important to begin working in groups, so, find two other people to work with. If you can't find any one, let us know, we will hook you up with a group. We like to make sure that there is at least one person from the Simulation course in each group. This should not be a problem as more than half of you were in that course last semetser. Begin keeping track of your work in your project notebook, we will ask that you turn it in once this project is finished. You are expected to give a 5 minute presentation about what your user interface will look like on Monday, February 3rd. Set modest goals that you could achieve. On Monday, February 10th, you will be asked to give a 10 minute presentation about your design. Of course, the project itself is due a week later!
The Ethernet model employs a broadcasting approach for networking. A number of stations/nodes/computers are connected to such a network, typically, in a one mile radius. A message broadcasted on the network by one of the stations is picked up by all other stations. Stations can recognize whether messages are for them or not. A message that doesn't belong to a station is, simply, discarded by that station.
The most interesting part of this LAN is the concept of network contention.
When a station is ready to transmit a message, it first must determine
whether the network is already being used or not. If the network is not seized
by any other station, the station that wishes to transmit must first
send a small packet containing a unique bit pattern across the network. If
no other station is doing the same thing at that time, the transmitting
station can now assume ownership of the network and transmit a message.
If more than one station are contending for the network at the same time, their
bit patterns will collide which intern changes the bit pattern in the network
to something different than the bit patterns of all contending stations.
Collisions are easyly detected by the contending stations who listen to the
network for their own unique bit pattern. To resolve collisions, the following
Exponential Backoff Heuristic has been adopted which basically causes the
stations involved in a collision to transmit at a later time.
EBF = L2 * T * random() where L is the number
of seize attempts by the station and T is the time it takes to transmit
the stations bit pattern.
Design a Java Applet and the necessary classes for this project that satisfy the following requirements: