A method of communicating packet data in a unidirectional single-ring network comprised a plurality of end system (ES) nodes utilizing a messaging protocol, each of said plurality of ES nodes distinguishing between data messages and control messages and comprising:
- a unidirectional ingress port interface and a unidirectional egress port interface, wherein said egress port interface is connected to said ingress port interface of a first ES node of said plurality of ES nodes, and said ingress port interface is connected to said egress port interface of a second ES node of said plurality of ES nodes;
- a fixed and unique address associated with each of said plurality of ES nodes to distinguish between each of said plurality of ES nodes;
- address comparator means that compares the address fields within messages of said messaging protocol with said fixed address of a particular ES node of said plurality of ES nodes, to determine whether said messages are destined for said particular ES node;
- a receive buffer coupled to said ingress port interface of said particular ES node, containing said data messages that are determined to be destined for said particular ES node according to said comparison:
- a bypass buffer coupled to said ingress port interface and said egress port interface of said particular ES node containing said messages that are not destined for said particular ES node according to said comparison;
- a plurality of transmit buffers coupled to said egress port interface of said particular ES node, wherein the number of transmit buffers is equal to the number of said plurality of ES nodes in said network, and each transmit buffer is uniquely associated with a corresponding one of said plurality of ES nodes in said network, and each transmit buffer holds packet data to be sent to said corresponding one of said plurality of ES nodes;
- arbitration means coupled to said egress port interface, said bypass buffer and said transmit buffers of said particular ES node, operative to select packet data to be transmitted on said egress port interface from either said bypass buffer or said transmit buffers according to a predetermined algorithm;
- a table of pending transfer requests from said plurality of ES nodes in the network, that may be scanned in parallel to determine an optimal transfer request to select and authorize from the set of said transfer requests;
- a queue of pending transfer authorizations from said plurality of ES nodes in said network, and
- a message transfer protocol utilizing control and data messages said method comprising the steps of:
- m) issuing a transfer request control message to a destination ES node in said network, if said transmit buffer for said destination ES node within a source ES node contains at least one complete packet;
- n) updating of the entry corresponding to said source ES node in said table of pending transfer requests in said destination ES node, upon receipt of said transfer request control message by said destination ES node;
- o) inspecting all the entries in said table of pending transfer requests in said destination ES node, and selecting said source ES node issuing said transfer request for transfer authorization;
- p) issuing a transfer authorization control message to said source ES node, if space is available in said receive buffer to hold at least one of said data messages;
- q) placing said transfer authorization control message in said queue of pending transfer authorizations when received by said source ES node;
- and
- r) removing the first entry in said queue of pending transfer authorizations in said source ES node, decoding said transfer authorization control message, and sending said packet data from the corresponding one of said transmit buffers to said destination ES node.