Re: [Embedlets-dev] peer to peer?
Status: Alpha
Brought to you by:
tkosan
|
From: Gregg G. W. <gr...@sk...> - 2003-06-27 20:00:10
|
>I'm lost. Peer to peer either is or isn't. If there is one master then it >isn't peer to peer since there's no peer-to-peer communication ever, only >master-to-peer. I realize I'm stating the obvious but... Which is no diffent that a modern TCP/IP switch. It has been proven and is well recognized that broadcast networks, such as ethernet are not effective for realtime comms. Collisions in CSMA networks just kill dependable performance. >If I grasp your idea (and I'm not sure I do) the master visits all the >intelligent slaves, gets data packets from them, then redistributes any >such packets which are intended to be sent from one slave to another. So >the master is a "mailman". The master has to handle every packet twice, >which could be done but will become a bottleneck at some point. There's no >guarantee that a timely message will get through unless the overall loading >is light and the polling is frequent. > >This could work, I suppose, but how does one node know another exists, and >what services it can provide or consume? What I describe is a wire level mechanism (layer 1 and 2 of the ISO seven layers) which allows a master/slave network to provide peer to peer communications. At layers above this simple mechanism, you might find network protocols or peer to peer routing protocols that can allow peers to find each other, and/or route data appropriately. >This is why there are true peer to peer nets such as CAN which contemplate >such things. CAN is true peer to peer and will run at up to 1 MBit for >short distances. It's also extremely robust. There are CAN protocols which >could have this structure. The best peer to peer one of which I'm aware is >CAN Kingdom. It's not a lightweight protocol. CAN is only suitable for a >small local net. It would require a CAN controller chip such as MCP2510 or >SJA1000. CAN guarantees that urgent messages get through quickly and in a >bounded time. This is why it's used on antilock brake and fuel injection >systems where there is little margin for error. I see that ISO 11898 covers CAN and specifies details at layer 1 and 2. There is stuff about timing, format of packets etc. Nothing about routing, CSMA vs single fabric networks etc. >JXTA also addresses similar issues and that's where we are going: >http://jcx.systronix.com/rfmodems.htm >since it works with or without wires and already scales from embedded >devices to the internet. > >Maybe some subset of a JXTA peer could be used on a party line net like CAN >(preferable) or I2C (less ideal but lower cost) to accomplish what you want? JXTA is a layer 7 protocol that can run on CAN, or a network such as I suggested for making SPI look like peer to peer. My suggestion for SPI would create a dual direction network between the master and the slaves. So, as they are sending, they are also receiving. What this means is that we actually get a net doubling of bandwidth capacity at whatever speed the SPI bus runs at. It is just an idea, but it will work just fine. It will provide a network exactly like you would see with a TCP/IP switched network, in terms of topology. Broadcast networks are fine for one or two users, but degrade quickly... There's plenty of experience that says about 20% utilization is all that you can count on before you get a dramatic degradation for each percentage above that. Clearly there is research going on that has shown some ways to make the degradation less dramatic (search google for 'CSMA degradation'). LonWorks has a proprietary solution as do others specific to their use. The easies and simplest is the round-robin, equal time, equal access mechanism that I described. It will provide dependable, predictable data transfer from one peer to another. ----- gr...@cy... (Cyte Technologies Inc) |