Re: CSMA

From: Alex Fraser (me_at_privacy.net)
Date: 09/25/05


Date: Sun, 25 Sep 2005 11:26:14 +0100


<rishi.shah@patni.com> wrote in message
news:1127596352.312029.273640@z14g2000cwz.googlegroups.com...
> I am implementing a project in c++/unix in which I need to simulate a
> CSMA MAC layer.
> The project is a simulation of peer to peer network where is each peer
> is a process on some unix machine. Though each client has a separate
> TCP communication line, I have to assume that they have a common line
> and each of the process has to follow the CSMA mechanism while
> transmitting that is if there is a collision while transmitting then
> both the processes have to revert back and transmit after some random
> interval of time. I have to assume that the entire network is runnning
> on a 9.6kbps line. Each peer notifies every other client if it sends a
> packet on the common line.
> I am struggling as to how to design such a network where I have to
> detect a collision since there is no delay in the unix socket
> communication. One idea could be to send the packet to a recipient,
> wait for x msec and then send a signal to the recipeint to go ahead. If
> the sender receives a packet from some other source during the xmsec
> wait time then it will not send the signal and the recipient will
> discard the packet.

I presume you intend to handle the case where A sends to B at the same time
as C sends to D.

Note that AIUI, in a half-duplex Ethernet network compliant with the
specification, a collision anywhere will always be detected by the senders.
Thus the situation Pascal described where the packets cross on the
transmission line does not occur. The guarantee is provided by specifying
that the minimum transmission time (implied by way of a minimum frame size)
is longer than the maximum propagation time between any two nodes. I think
simulating this simplifies matters.

Another thing that would almost certainly simplify the problem (timing
issues in particular) is having all transmissions go via a "hub" process, if
that is an option.

You might be better off asking about this in another group such as
comp.programming since the difficulties are not Unix-specific.

Alex



Relevant Pages

  • Re: CSMA
    ... > The project is a simulation of peer to peer network where is each peer ... I have to assume that the entire network is runnning ... One idea could be to send the packet to a recipient, ... You need to have a line object and some packet objects, ...
    (comp.unix.programmer)
  • CSMA
    ... CSMA MAC layer. ... The project is a simulation of peer to peer network where is each peer ... One idea could be to send the packet to a recipient, ...
    (comp.unix.programmer)
  • RE: Securing a Local Network
    ... Show the Management of your company the insecurity of the Peer to Peer ... setup and discuss what risks are they willing to accept. ... -Cost of getting the web server and the mail server internally versus having ... -Use an older box for Intrusion Detection on the internal network as well. ...
    (Security-Basics)
  • Re: War
    ... you do realise that with most internet connections this is simply ... Because the entire point with "peer to peer" is to place all the processing ... at the "edges" of the network (that is, the peer machines do all the actual ... bandwidth so the bandwidth of the entire network becomes the _combination_ ...
    (alt.lang.asm)
  • Re: Wireless Peer to Peer Networking
    ... I need to set up a peer to peer wireless network between Windows XP ... Proffesional laptops and one laptop running Windows 2003 Server, ...
    (microsoft.public.windowsxp.network_web)