Cell-based link-level retry scheme
First Claim
1. A method for communication, comprising:
- receiving a packet comprising data at a first node for transmission over a link to a second node;
dividing the data into a sequence of cells of a predetermined data size, the cells being identified by respective sequence numbers;
computing respective error detection codes for the payload data of each of the cells;
grouping the cells into link layer frames, such that each link layer frame includes multiple cells with their respective error detection codes for their payload data;
transmitting the link layer frames over the link, while storing the transmitted cells included in the transmitted link layer frames in a buffer at the first node;
receiving acknowledgments at the first node indicating the respective sequence numbers of the transmitted cells that were received at the second node; and
upon receiving an indication at the first node that a transmitted cell having a given sequence number was not properly received at the second node, retransmitting the stored cells from the buffer starting from the cell with the given sequence number.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for communication includes receiving a packet at a first node for transmission over a link to a second node. The data in the packet is divided into a sequence of cells of a predetermined data size. The cells have respective sequence numbers. The cells are transmitted in sequence over the link, while storing the transmitted cells in a buffer at the first node. The first node receives acknowledgments indicating the respective sequence numbers of the transmitted cells that were received at the second node. Upon receiving an indication at the first node that a transmitted cell having a given sequence number was not properly received at the second node, the stored cells are retransmitted from the buffer starting from the cell with the given sequence number.
-
Citations
16 Claims
-
1. A method for communication, comprising:
-
receiving a packet comprising data at a first node for transmission over a link to a second node; dividing the data into a sequence of cells of a predetermined data size, the cells being identified by respective sequence numbers; computing respective error detection codes for the payload data of each of the cells; grouping the cells into link layer frames, such that each link layer frame includes multiple cells with their respective error detection codes for their payload data; transmitting the link layer frames over the link, while storing the transmitted cells included in the transmitted link layer frames in a buffer at the first node; receiving acknowledgments at the first node indicating the respective sequence numbers of the transmitted cells that were received at the second node; and upon receiving an indication at the first node that a transmitted cell having a given sequence number was not properly received at the second node, retransmitting the stored cells from the buffer starting from the cell with the given sequence number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. Communication apparatus, comprising:
-
a memory, which is disposed at a first node in a communication network and is configured to receive and buffer a packet comprising data for transmission over a link to a second node; and a controller, which is coupled to the memory and is configured to divide the data into a sequence of cells of a predetermined data size, the cells being identified by respective sequence numbers, to compute respective error detection codes for the payload data of each of the cells, to group the cells into link layer frames, such that each link layer frame includes multiple cells with their respective error detection codes, and to transmit link layer frames over the link, while storing the transmitted cells included in the transmitted link layer frames in the memory, and wherein the controller is configured to receive acknowledgments at the first node indicating the respective sequence numbers of the transmitted cells that were received at the second node, and upon receiving an indication at the first node that a transmitted cell having a given sequence number was not properly received at the second node, to retransmit the stored cells from the memory starting from the cell with the given sequence number. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A switch, comprising:
-
a switching core; a plurality of ports, coupled to the core, for receiving and transmitting data packets; and circuitry associated respectively with each port among at least some of the ports of the switch, the circuitry comprising; a memory, which is configured to receive from a port of the plurality of ports and buffer a packet comprising data for transmission via the switching core to another port of the plurality of ports; and a controller, which is coupled to the memory and is configured to divide the data into a sequence of cells of a predetermined data size, the cells being identified by respective sequence numbers, to compute respective error detection codes for the payload data of each of the cells, to group the cells into link layer frames, such that each link layer frame includes multiple cells with their respective error detection codes, and to transmit the link layer frames via the switching core, while storing the transmitted cells included in the transmitted link layer frames in the memory, and wherein the controller is configured to receive acknowledgments from the other port indicating the respective sequence numbers of the transmitted cells that were received at the other port, and upon receiving an indication that a transmitted cell having a given sequence number was not properly received at the other port, to retransmit the stored cells from the memory starting from the cell with the given sequence number.
-
Specification