Adaptive bandwidth sharing
First Claim
1. A method of controlling the rate of packet transmissions between a plurality of nodes, including a source node, a target node and an intermediate node, the method comprising the steps of:
- connecting the nodes via unidirectional links;
transmitting flow control information in a Send packet from a source node to a target node, wherein the step of transmitting includes the steps of;
sending the Send packet to the intermediate node; and
requesting, at the intermediate node, bandwidth for one of plurality of nodes, wherein the step of requesting bandwidth includes the step of modifying, within the intermediate node, the flow control information in the Send packet;
receiving the Send packet at the target node and transferring the modified flow control information from the Send packet to an echo packet;
transmitting the echo packet from the target node to the source node; and
at the source node, adjusting the rate of packet transmission as a function of the modified flow control information contained in the echo packet and the traffic at the source node, wherein adjusting includes transmitting one or more idle symbols from the source node as a function of the modified flow control information contained in the echo packet.
17 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for the efficient management of electronic communications in a ring topology network. Each Send packet and Echo packet includes a mechanism used to request to share bandwidth. In one implementation a single bit is used, while in another the mechanism includes a traffic control field providing a hierarchy of request to share bits accompanied by priority information, thereby enabling a multi-level system. When a Send packet reaches the target node the information is returned to the source node via the echo packet'"'"'s request to share bit or the traffic control field, depending upon the implementation. The source node then alters its rate of packet transmission as a function of the number of requests to share it receives and, in the second implementation, as a function of the priority of the requesting nodes in relation to the priority of the source node. In one embodiment, each node conditionally gives output packets preference over passing through packets.
61 Citations
40 Claims
-
1. A method of controlling the rate of packet transmissions between a plurality of nodes, including a source node, a target node and an intermediate node, the method comprising the steps of:
-
connecting the nodes via unidirectional links;
transmitting flow control information in a Send packet from a source node to a target node, wherein the step of transmitting includes the steps of;
sending the Send packet to the intermediate node; and
requesting, at the intermediate node, bandwidth for one of plurality of nodes, wherein the step of requesting bandwidth includes the step of modifying, within the intermediate node, the flow control information in the Send packet;
receiving the Send packet at the target node and transferring the modified flow control information from the Send packet to an echo packet;
transmitting the echo packet from the target node to the source node; and
at the source node, adjusting the rate of packet transmission as a function of the modified flow control information contained in the echo packet and the traffic at the source node, wherein adjusting includes transmitting one or more idle symbols from the source node as a function of the modified flow control information contained in the echo packet. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of controlling the rate of packet transmissions between a plurality of nodes, including a source node, a target node and an intermediate node, the method comprising the steps of:
-
connecting the nodes via unidirectional links;
transmitting flow control information in a Send packet from a source node to a target node, wherein the Send packet includes a traffic control field, and wherein the step of transmitting includes the steps of;
sending the Send packet to the intermediate node; and
requesting, at the intermediate node, bandwidth for one of plurality of nodes, wherein the step of requesting bandwidth includes the step of modifying, within the intermediate node, the flow control information in the Send packet, wherein the step of modifying flow control information comprises the step of setting a request-to-share bit in the traffic control field;
receiving the Send packet at the target node and transferring the flow control information from the Send packet to an echo packet;
transmitting the echo packet from the target node to the source node; and
at the source node, adjusting the rate of packet transmission as a function of the flow control information contained in the echo packet and the traffic at the source node.
-
-
8. A method of controlling the rate of packet transmissions between a plurality of nodes, including a source node, a target node and an intermediate node, the method comprising the steps of:
-
connecting the nodes via unidirectional links;
transmitting flow control information in a Send packet from a source node to a target node, wherein the Send packet includes a traffic control field, and wherein the step of transmitting includes the steps of;
sending the Send packet to the intermediate node; and
requesting, at the intermediate node, bandwidth for one of plurality of nodes, wherein requesting bandwidth includes modifying, within the intermediate node, the flow control information in the Send packet, wherein modifying the flow control information comprises the step of selecting a request-to-share bit to be set according to a priority held in the traffic control field;
receiving the Send packet at the target node and transferring the flow control information from the Send packet to an echo packet;
transmitting the echo packet from the target node to the source node; and
at the source node, adjusting the rate of packet transmission as a function of the flow control information contained in the echo packet and the traffic at the source node. - View Dependent Claims (9, 10, 11)
-
-
12. A system for controlling electronic communications, comprising:
-
a network comprising a plurality of nodes, including a source node, a target node and plurality of intermediate nodes, wherein the plurality of nodes are interconnected via unidirectional links;
means for transmitting a Send packet from a source node, the Send packet comprising flow control information;
means for allowing one of the plurality of intermediate nodes to request bandwidth by modifying the flow control information in the transmitted Send packet;
means for receiving a Send packet at a target node;
means for transferring the flow control information from the received Send packet to an Echo packet;
means for transmitting the Echo packet to the source node; and
means for modifying the transmission rate according to the traffic at the source node and the modified flow control information, wherein the means for modifying transmits one or more idle symbols from the source node as a function of the modified flow control information contained in the Echo packet. - View Dependent Claims (13, 14, 15)
-
-
16. A system for controlling electronic communications, comprising:
-
a network comprising a plurality of nodes, including a source node, a target node and plurality of intermediate nodes, wherein the plurality of nodes are interconnected via unidirectional links;
means for transmitting a Send packet from a source node, the Send packet comprising flow control information;
means for allowing one of the plurality of intermediate nodes to request bandwidth by modifying the flow control information in the transmitted Send packet;
means for receiving a Send packet at a target node;
means for transferring the flow control information from the received Send packet to an Echo packet;
means for transmitting the Echo packet to the source node; and
means for modifying the transmission rate according to the traffic at the source node and the modified flow control information, wherein the means of modifying comprises means for activating a request to share bit. - View Dependent Claims (17, 18)
-
-
19. A system comprising a plurality of interconnected nodes, wherein each node shares communications bandwidth with one or more of the other nodes, wherein each node comprises:
-
a receiver for receiving a plurality of incoming packets, including an echo packet, wherein each of the plurality of packets comprising a plurality of fields;
a modifier for writing information to one or more of the plurality of fields;
a parser for extracting information contained in one or more of the plurality of fields;
a throttling mechanism, wherein the throttling mechanism controls the amount of bandwidth being used by the node by transmitting one or more idle symbols from the node as a function of flow control information contained in the echo packet; and
an output queue for holding packets generated by the node. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A node for communicating with a network, the node comprising:
-
a receiver for receiving a plurality of incoming packets, including an echo packet, from the network, wherein each of the plurality of packets comprising a plurality of fields;
a modifier for writing information to one or more of the plurality of fields;
a parser for extracting information contained in one or more of the plurality of fields;
a throttling mechanism, wherein the throttling mechanism controls the amount of bandwidth being used by the node by transmitting one or more idle symbols from the node as a function of flow control information contained in the echo packet; and
an output queue for holding packets generated by the node. - View Dependent Claims (25, 26)
-
-
27. A method of communicating data packets in a network of nodes comprising:
-
transmitting a data packet from a source node to a target node via at least one intermediate node, wherein the data packet includes flow control information;
modifying the flow control information of the data packet when the data packet passes through the intermediate node;
transmitting an echo packet from the target node to the source node, wherein the echo packet includes the modified flow control information from the data packet; and
adjusting a packet transmission rate of the source node by transmitting one or more idle symbols from the source node as a function of the modified flow control information contained in the echo packet. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
-
34. A node for a computer network, wherein the node performs the steps of:
-
transmitting a data packet from a source node to a target node via at least one intermediate node, wherein the data packet includes flow control information;
modifying the flow control information of the data packet when the data packet passes through the intermediate node;
transmitting an echo packet from the target node to the source node, wherein the echo packet includes the modified flow control information from the data packet; and
adjusting a packet transmission rate of the source node by transmitting one or more idle symbols from the source node as a function of the modified flow control information contained in the echo packet.
-
-
35. A system comprising a network of interconnected nodes, wherein each node comprises:
-
a receiver for receiving a plurality of incoming packets from other nodes in the network, wherein the plurality of incoming packets includes an echo packet, wherein the echo packet includes flow control information;
a parser for extracting the flow control information contained in the echo packet;
a throttling mechanism for generating one or more idle symbols as a function of the extracted information, wherein the throttling mechanism adjusts a packet transmission rate of the node by transmitting one or more idle symbols from the node as a function of the flow control information contained in the echo packet; and
an output for transmitting the idle symbols and any data packet generated by the node. - View Dependent Claims (36, 37, 38, 39, 40)
-
Specification