← Back to Patent Explorer
EP0377136A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Adaptive data link protocol

Assignee: International Business Machines Corp
•
Filing: 1989-12-11
•
Granted: —
•
Expires: 2009-12-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A communication system provides high speed trans­mission of data over a link, such as a fiber optic link, between a first terminal and a second terminal. The architecture and protocol permits the use of dedicated hardware such as state machines constructed of programmable array logic units, to synchronize the transmission and reception of data packets and the retransmission of designated ones of these packets in the event of a faulty transmission. Packets to be transmitted and received are stored in an array of frames in sub-windows of a memory storage window in each of the terminals, the frame number being equal to the sequence number of the data packet. By embedding sequence and status bits in each packet within control words and bits appended to each packet, the state machine in each terminal can readily track the progress of each packet so as to request acknow­ledgement of error-free receipt, to send an acknow­ledgement, to request a retransmission of a packet designated by its serial number, and to distinguish a retransmitted packet from an original packet trans­mitted with error.

Inventors

  • 👤 Mon-Song Chen
  • 👤 Barry Clifford Goldstein
  • 👤 Hanfy El Sayed Meleis
  • 👤 Dominick Anthony Zumbo

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-03 11:59
CPC Classifications
H; H04; H04L; H04L1/00; H04L1/12; H04L1/16; H04L1/18; H04L1/1825; H04L1/0001; H04L1/0006; H04L1/0007; H04L1/1607; H04L1/1671; H04L1/1685; H04L1/1806; H04L1/1829; H04L1/1832; H04L1/1867; H04L1/187; H04L1/1835; H04L1/188; H04L2001/0092; H04L2001/0094

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 217 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a trans­mission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; counting the number of rejected packets occurring during a transmission of a window of data to obtain a packet error rate; and altering the sizes of said sub-windows in accordance with the packet error rate to minimize the delay of re-transmission and increase the utilization of the link.
Claim 2
Independent Claim 217 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a trans­mission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; counting the number of rejected packets occurring during a transmission of a window of data to obtain a packet error rate; and altering the sizes of said sub-windows in accordance with the packet error rate to minimize the delay of re-transmission and increase the utilization of the link.
Claim 3
Dependent Claim 32 words
A method according to Claim 1 further comprising a step of reporting back to said first terminal from said second terminal an error signal de­signating the sequence number of a rejected packet.
Claim 4
Dependent Claim 32 words
A method according to Claim 2 wherein, during said step of transmitting, there is a retrans­mission of packets which were transmitted subse­quent to said rejected packet in accordance with a GO-BACK algorithm.
Claim 5
Dependent Claim 31 words
A method according to Claim 1 wherein, during said step of retransmitting, there is a step of embedding in each packet a control bits identi­fying each packet as a retransmitted packet.
Claim 6
Dependent Claim 55 words
A method according to Claim 1 wherein, subsequent to the completion of transmission of all frames of a sub-window, there is a step of sending from said first terminal to said second terminal a request signal for acknowledgement, said request signal being embedded as a part of said control signal in a subsequently transmitted packet.
Claim 7
Dependent Claim 37 words
A method according to Claim 5 further comprising a step of reporting back to said first terminal from said second terminal an acknowledgement signal acknowledging that packets previously received at said second terminal have passed said tests.
Claim 8
Dependent Claim 27 words
A method according to Claim 6 further comprising a step of timing an interval of time elapsing between said request-for-acknowledgement signal and receipt of an acknowledgement signal.
Claim 9
Dependent Claim 32 words
A method according to Claim 7 wherein, during said step of transmitting, there is a retrans­mission of packets which were transmitted subse­quent to said rejected packet in accordance with a GO-BACK algorithm.
Claim 10
Dependent Claim 37 words
A method according to Claim 8 wherein said timing of said interval includes time elapsed for retransmission of a rejected packet and wherein, upon detection of a transmission fault followed by a retransmission, acknowledgement follows said retransmission.
Claim 11
Dependent Claim 30 words
A method according to Claim 1 wherein the se­quence number is equal to the number of the frame in said window containing data of the packet bearing said sequence number.
Claim 12
Dependent Claim 39 words
A method according to Claim 10 wherein data of said receive memory is stored in an array of frames in a window of said received memory identical to the array of frames in the window of said transmit memory.
Claim 13
Independent Claim 341 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a transmission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; counting the number of rejected packets occurring during a transmission of a window of data to obtain a packet error rate; altering the sizes of said sub-windows in accord­ance with the packet error rate to maximize a speed of data transmission along said data link; reporting back to said first terminal from said second terminal an error signal designating the sequence number of a rejected packet; wherein, during said step of transmitting, there is a retransmission of packets which were trans­mitted subsequent to said rejected packet in accordance with a GO-BACK algorithm; during said step of retransmitting, there is a step of embedding in each packet a control signal identifying each packet as a retransmitted packet; the sequence number is equal to the number of the frame in said window containing data of the packet bearing said sequence number; and data of said receive memory is stored in an array of frames in a window of said received memory identical to the array of frames in the window of said transmit memory.
Claim 14
Independent Claim 341 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a transmission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; counting the number of rejected packets occurring during a transmission of a window of data to obtain a packet error rate; altering the sizes of said sub-windows in accord­ance with the packet error rate to maximize a speed of data transmission along said data link; reporting back to said first terminal from said second terminal an error signal designating the sequence number of a rejected packet; wherein, during said step of transmitting, there is a retransmission of packets which were trans­mitted subsequent to said rejected packet in accordance with a GO-BACK algorithm; during said step of retransmitting, there is a step of embedding in each packet a control signal identifying each packet as a retransmitted packet; the sequence number is equal to the number of the frame in said window containing data of the packet bearing said sequence number; and data of said receive memory is stored in an array of frames in a window of said received memory identical to the array of frames in the window of said transmit memory.
Claim 15
Dependent Claim 88 words
A method according to Claim 12 wherein subsequent to the completion of transmission of all frames of a sub-window, there is a step of sending from said first terminal to said second terminal a request signal for acknowledgement, said request signal being embedded as a part of said control signal in a subsequently transmitted packet; the method further comprising a step of reporting back to said first terminal from said second terminal an acknowledgement signal acknow­ledging that packets previously received at said second terminal have passed said tests.
Claim 16
Independent Claim 405 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a trans­mission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; reporting back to said first terminal from said second terminal an error signal designating the sequence number of a rejected packet; counting the number of error signals occurring during the transmission of a window of data to obtain a packet error rate; wherein the sequence number is equal to the number of the frame in said window containing data of the packet bearing said sequence number; data of said receive memory is stored in an array of frames in a window of said received memory identical to the array of frames in the window of said transmit memory; subsequent to the completion of transmission of all frames of a sub-window, there is a step of sending from said first terminal to said second terminal a request signal for acknowledgement, said request signal being embedded as a part of said control signal in a subsequently transmitted packet; said method further comprising reporting back to said first terminal from said second terminal an acknowledgement signal acknowledging that packets previously received at said second terminal have passed said tests; and wherein an error signal is produced by comparing sequence numbers of stored data in said receive memory with frame numbers of frames storing data; said method further comprising a step of altering a re­petition frequency of the acknowledgement - request signals in accordance with the packet error rate to maximize a speed of data trans­mission along said data link.
Claim 17
Independent Claim 405 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: storing data at the first terminal in a transmit memory as an array of data frames arranged in a window of the transmit memory; dividing the window into sub-windows each having less frames than said windows; transmitting data from successive ones of said frames in a sequence of packets wherein data in a packet is obtained from one frame; embedding control signals in each of said packets, said control signals identifying packets by sequence number; receiving said packets at said terminals; checking said packets by tests for sequence number and bit error for detection of a trans­mission fault; storing data of only those packets which pass said tests in a receive memory at said second terminal, packets which fail at least one of said tests being rejected packets; retransmitting rejected packets from said first terminal to said second terminal; reporting back to said first terminal from said second terminal an error signal designating the sequence number of a rejected packet; counting the number of error signals occurring during the transmission of a window of data to obtain a packet error rate; wherein the sequence number is equal to the number of the frame in said window containing data of the packet bearing said sequence number; data of said receive memory is stored in an array of frames in a window of said received memory identical to the array of frames in the window of said transmit memory; subsequent to the completion of transmission of all frames of a sub-window, there is a step of sending from said first terminal to said second terminal a request signal for acknowledgement, said request signal being embedded as a part of said control signal in a subsequently transmitted packet; said method further comprising reporting back to said first terminal from said second terminal an acknowledgement signal acknowledging that packets previously received at said second terminal have passed said tests; and wherein an error signal is produced by comparing sequence numbers of stored data in said receive memory with frame numbers of frames storing data; said method further comprising a step of altering a re­petition frequency of the acknowledgement - request signals in accordance with the packet error rate to maximize a speed of data trans­mission along said data link.
Claim 18
Independent Claim 203 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: transmitting a sequence of data packets from said first terminal to said second terminal to be received at said second terminal; sending a request signal from said first terminal for acknowledgement of receipt of the data packets by said second terminal, said sending being done periodically after a prede­termined number of data packets; reporting back to said first terminal from said second terminal, in response to said acknowledge­ment - request signal, a response signal acknow­ledging receipt of error - free packets, said response signal being an error signal in the case of receipt of a packet with error; retransmitting packets which were received with error in accordance with a GO-BACK algorithm; formulating a packet error rate by comparing the number of error signals with the number of packets transmitted; and altering a repetition frequency of said acknow­ledgement - request signals in accordance with said packet - error rate, an increase in error rate producing an increase in said repetition frequency so as to increase the transmission speed of a sequence of data packets.
Claim 19
Independent Claim 203 words
A method of adaptively controlling a data link to compensate for variation in error in a trans­mission of data from a first terminal to a second terminal, the method comprising: transmitting a sequence of data packets from said first terminal to said second terminal to be received at said second terminal; sending a request signal from said first terminal for acknowledgement of receipt of the data packets by said second terminal, said sending being done periodically after a prede­termined number of data packets; reporting back to said first terminal from said second terminal, in response to said acknowledge­ment - request signal, a response signal acknow­ledging receipt of error - free packets, said response signal being an error signal in the case of receipt of a packet with error; retransmitting packets which were received with error in accordance with a GO-BACK algorithm; formulating a packet error rate by comparing the number of error signals with the number of packets transmitted; and altering a repetition frequency of said acknow­ledgement - request signals in accordance with said packet - error rate, an increase in error rate producing an increase in said repetition frequency so as to increase the transmission speed of a sequence of data packets.
Claim 20
Dependent Claim 84 words
A method according to Claim 15 further com­prising: identifying each packet with a sequence number; rejecting a packet having an error; reporting back to said first terminal from said second terminal an error signal designating the sequence number of a rejected packet; embedding control signals in each of said packets, said control signals identifying packets by sequence number; and wherein, during said step of retransmitting, there is a step of embedding in each packet a control signal identifying each packet as a retransmitted packet.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag