IP Library Granted Patent US 7,876,751
Granted Patent B2
US 7,876,751 · App. 12/035,067 · Granted Jan 25, 2011

Reliable link layer packet retry

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,876,751
App. No.
12/035,067
Granted
Jan 25, 2011
Kind
B2
Abstract

Communication over a computer network with a node having a first port with a point-to-point link connection to a second node having a second port. The first port transmits to the second port a reliable link layer (RLL) packet over the link. The RLL packet comprises a first RLL header and a first data packet, the first RLL header preceding the first data packet, the first RLL header comprising an RLL start-of-frame (SOF) character and an RLL packet sequence number (PSN). If the first port receives an RLL acknowledgment control packet from the link, it acknowledges receipt of the first data packet, and the first port does not retain the first data packet in the buffer. If the first port does not receive the RLL acknowledgment packet from the link, acknowledging receipt of the first data packet, the first port re-transmits from the buffer the first data packet.

Claims (42)

1. A method for communicating over a computer network having a first port with a point-to-point link connection to a second port, the method comprising:

the first port storing in a buffer, a first data packet to be transmitted, the first data packet comprising a first packet header, and a first packet payload;

the first port, transmitting to the second port from the buffer a first reliable link layer (RLL) packet over the link, the first RLL packet comprising a first RLL header and the first data packet, the first RLL header preceding the first data packet, the first RLL header comprising an RLL start-of-frame (SOF) character and an RLL packet sequence number (PSN);

if the first port receives an RLL acknowledgment control packet from the link, acknowledging receipt of the first data packet, the first port not retaining the first data packet in the buffer, the RLL acknowledgement control packet comprising: an op-code field for defining the type of RLL message being sent and the RLL PSN; and

if the first port does not receive the RLL acknowledgment packet from the link, acknowledging receipt of the first data packet, the first port re-transmitting from the buffer the first data packet.

2. The method of claim 1 , further comprising the first port transmitting over the link a data packet without an RLL SOF and RLL PSN.

3. The method of claim 1 , wherein if the RLL acknowledgment control packet is not received from the second port within a predetermined time period, the first port re-transmitting from the buffer the first data packet.

4. The method of claim 1 , wherein if the RLL acknowledgment control packet includes a received packet sequence number (PSN), the first port discarding data packets in the buffer corresponding to packets specified by the received PSN sequence number and any packets specified by a previous PSN.

5. The method of claim 1 , further comprising:

receiving a second RLL packet from the second port, the second RLL packet comprising a second RLL header preceding a second data packet;

forming a third packet comprising the second RLL packet without the second RLL header; and

transmitting the third packet to a third port over the network.

6. The method of claim 1 , further comprising receiving from the second port a second RLL packet, the second RLL packet comprising a second RLL header and second data packet, wherein the second RLL header includes a PSN specifying a packet previously received by the second port.

7. An apparatus comprising a first port adapted to communicate over a computer network with a point-to-point link connection to a second port, the first port configured to:

store a first data packet to be transmitted to the second port, the first data packet comprising a first packet header, and a first packet payload,

transmit to the second port from the buffer a first reliable link layer (RLL) packet over the link, the first RLL packet comprising a first RLL header and the first data packet, the first RLL header preceding the first data packet, the first RLL header comprising an RLL start-of-frame (SOF) character and an RLL packet sequence number (PSN),

if the first port receives an RLL acknowledgment control packet from the link, acknowledge receipt of the first data packet, the first port does not retain the first data packet in the buffer, the RLL acknowledgement control packet comprising: an op-code field for defining the type of RLL message being sent and the RLL PSN, and

if the first port does not receive the RLL acknowledgment packet from the link, acknowledge receipt of the first data packet, the first port does not re-transmit from the buffer the first data packet.

8. The apparatus of claim 7 , wherein the first port is configured to transmit over the link a data packet without an RLL SOF and RLL PSN.

9. The apparatus of claim 7 , wherein if the RLL acknowledgment control packet is not received from the second port within a predetermined time period, the first port is configured to re-transmit from the buffer the first data packet.

10. The apparatus of claim 7 , wherein if the RLL acknowledgment control packet includes a received packet sequence number (PSN), the first port is configured to discard data packets in the buffer corresponding to packets specified by the received PSN sequence number and any packets specified by a previous PSN.

11. The apparatus of claim 7 , wherein the first port is configured to receive from the second port a second RLL packet, the second RLL packet comprising a second RLL header and second data packet, wherein the second RLL header includes a PSN specifying a packet previously received by the second port.

12. A computer program product for communicating over a network, comprising a non-transitory computer readable medium having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:

store in a buffer of a first port, a first data packet to be transmitted, the first data packet comprising a first packet header, and a first packet payload;

transmit from the buffer of the first port a first reliable link layer (RLL) packet over the link, the first RLL packet comprising a first RLL header and the first data packet, the first RLL header preceding the first data packet, the first RLL header comprising an RLL start-of-frame (SOF) character and an RLL packet sequence number (PSN);

if the first port receives an RLL acknowledgment control packet from the link, acknowledge receipt of the first data packet, the first port to not retain the first data packet in the buffer, the RLL acknowledgement control packet comprising: an op-code field for defining the type of RLL message being sent and the RLL PSN; and

if the first port does not receive the RLL acknowledgment packet from the link, acknowledge receipt of the first data packet, re-transmit from the buffer the first data packet.

13. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

transmit from the first port over the link a data packet without an RLL SOF and RLL PSN.

14. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

wherein if the RLL acknowledgment control packet is not received from the second port within a predetermined time period, retransmit from the buffer the first data packet.

15. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

wherein if the RLL acknowledgment control packet includes a received packet sequence number (PSN), discard data packets in the buffer corresponding to packets specified by the received PSN sequence number and any packets specified by a previous PSN.

16. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

check for receipt of an acknowledgment control packet not having an RLL SOF character.

17. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

receive a second RLL packet from the second port, the second RLL packet comprising a second RLL header preceding a second data packet; form a third packet comprising the second RLL packet without the second RLL header; and

transmit the third packet to a third port over the network.

18. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

receive from the second port a second RLL packet, the second RLL packet comprising a second RLL header and second data packet, wherein the second RLL header includes a PSN specifying a packet previously received by the second port.

19. The computer program product of claim 12 , wherein the non-transitory computer readable medium further includes instructions that, when executed on a program, cause the computer to:

receive from the second port a second RLL packet, the second RLL packet comprising a second RLL header and second data packet, wherein the second RLL header includes a second PSN specifying the second data packet; and compare the second PSN with an third PSN representing an expected PSN of the second data packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2008
From: BENNER, ALAN F; CRADDOCK, DAVID; GREGG, THOMAS A
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020552/0133 →
Continuity (1)
Related Publication 20090213861A1 · Aug 27, 2009