|
|
|
| United States Patent | 4841526 |
| Link to this page | http://www.wikipatents.com/4841526.html |
| Inventor(s) | Wilson; Jon C. (200 N. Maryland Ave., #301, Glendale, CA 91206-4236);
Shick; David A. (27366 Compostela, Mission Viejo, CA 92692);
Haynie; Robert L. (16181 Jasmine Way, Los Gatos, CA 95030);
Wilder; Donald R. (525 Gabilan St. #8, Los Altos, CA 94022);
Zimmerman; Larry D. (4504 Poinsettia, San Jose, CA 95136);
LeCour; Richard M. (225 Massol Ave., Los Gatos, CA 95030);
Guzy; D. James (1340 Arbor Rd., Menlo Park, CA 94025) |
| Abstract | A data communications system employing sliding window protocol where the
size of the window of the sending or receiving station can be made
selectable by the user according to the speed, length or error rate of the
communication link or the frame size used to maximize the utilization of
the communication link. The negative acknowledgements sent by the
receiving station specifies the upper and lower limit of a range of
identification numbers of frames unsuccessfully received to increase
efficiency. Before data is transmitted, the sending and receiving stations
exchange the preferred sets of link parameters and generate a modified set
of link parameters to resolve potential conflicts. Either the sending or
the receiving station stores a table defining the frame sizes for use with
different bit error rates of the communication link. The station then
evaluates the current bit error rate to select the optimum frame size from
the table and adjust the frame size accordingly. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 4841526 |
|
|
Data communications system |
|
| Inventor |
Wilson; Jon C. (200 N. Maryland Ave., #301, Glendale, CA 91206-4236);
Shick; David A. (27366 Compostela, Mission Viejo, CA 92692);
Haynie; Robert L. (16181 Jasmine Way, Los Gatos, CA 95030);
Wilder; Donald R. (525 Gabilan St. #8, Los Altos, CA 94022);
Zimmerman; Larry D. (4504 Poinsettia, San Jose, CA 95136);
LeCour; Richard M. (225 Massol Ave., Los Gatos, CA 95030);
Guzy; D. James (1340 Arbor Rd., Menlo Park, CA 94025) |
|
|
|
| Publication Date |
June 20, 1989 |
|
|
|
|
|
| Filing Date |
November 19, 1986 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation-in-part application of "Method And
Apparatus For High Speed Satellite Communication", Ser. No. 06/614,283,
filed May 25, 1984, now abandoned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Claims  |
|
|
We claim:
1. A communication system comprising a first and a second station wherein
data frames are transmitted from the first station to the second station
through a first communication link, each data frame including data and an
identification number, said data frames having a selected frame size, said
identification numbers of the frames being in the sequential order of
transmission to facilitate frame identification, said first station
storing the data frames transmitted by the first station and said second
station storing the data frames received by the second station, said
second station transmitting through the first or a second communication
link data groups including acknowledgement information relating to the
identification members of data frames successfully received by the second
station;
said first station storing the data frames in such manner that the
identification numbers of the frames are within a variable range of
identification numbers defining a first window having an upper and lower
limit wherein the first station evaluates the acknowledgement information
received from the second station to vary the upper and lower limits of the
first window; and
said second station storing the data frames in such manner that the
identification numbers of the frames are within a variable range defining
a second window having an upper and lower limit for a variable range of
identification numbers of possible data frames from the first station
acceptable to the second station, wherein said second station evaluates
the data frames received from the first station to vary the upper and
lower limits of the second window, the difference between the upper and
lower limits of each window defining its size;
wherein at least one of the two stations is such that the size of the first
or the second window is selectable according to the speed, length or error
rate of the first or the first and second communication links or the frame
size used in connection therewith to increase the efficiency in
communication link utilization.
2. The system of claim 1, wherein said second station transmits
acknowledgement information through the second communication link, and
wherein both the first and second windows are selected according to the
speed, length and error rates of the first and second communication links
respectively and the frame size used in connection therewith.
3. The system of claim 1, wherein said second station also transmits data
to the first station, such data being arranged in data groups in which the
acknowledgement information is piggybacked.
4. The system of claim 1, wherein said first and second stations each
comprises a data flow processor for storing data frames and for evaluating
the data frames received from the other station to vary the upper and
lower limits of the window of the station.
5. A method for transmitting data frames from a first station to a second
station through a first communication link, each data frame including data
and an identification number, said data frames having a selected frame
size, said identification numbers of the frames being in the sequential
order of transmission to facilitate frame identification, said first
station storing the data frames transmitted by the first station and said
second station storing the data frames received by the second station,
said second station transmitting through the first or a second
communication link data groups including acknowledgement information
relating to the identification numbers of data frames successfully
received by the second station; said method comprising:
defining a first window having an upper and lower limit so that the data
frames stored by the first station are such that their identification
numbers are within the window and evaluating the acknowledgement
information received from the second station to vary the upper and lower
limits of the first window; and
defining a second window for a variable range of identification numbers of
possible data frames from the first station acceptable to the second
station, so that the data frames stored by the second station are such
that their identification numbers are within the second window, and
evaluating the data frames received from the first station to vary the
upper and lower limits of the second window, the difference between the
upper and lower limits of each window defining its size;
wherein the size of the first or the second window is defined in either one
of the defining steps according to the speed, length or error rate of the
first or the first and second communication links or the frame size used
in connection therewith to increase the efficiency in communication link
utilization.
6. A communication system comprising a first and a second station, wherein
data frames are transmitted from the first station to the second station
through a first communication link and the second station transmits
acknowledgement information concerning the data frames received through
the first or a second communication link, wherein (a) each data frame
includes data and an identification number, said identification numbers of
the frames being in the sequential order of transmission to facilitate
frame identification, said first station storing the data frames
transmitted by the first station and said second station storing the data
frames received by the second station, wherein (b) the identification
numbers of the frames stored by the first station are within a variable
range of identification numbers defining a first window having an upper
and lower limit wherein said first control means evaluates the
acknowledgement information received from the second station to vary the
upper and lower limits of the first window; wherein (c) the data frames
stored by the second station are such that their identification numbers
are within a variable range defining a second window having an upper and
lower limit for a variable range of identification numbers of possible
data frames from the first station acceptable to the second station, said
second control means evaluating the data frames received from the first
station to vary the upper and lower limits of the second window; wherein
(d) the difference between the upper and lower limits of each window
defining its size;
wherein each station has an initial set of link parameters, wherein before
data frames and acknowledgement information are transmitted the two
stations exchange the sets of link parameters and generate a modified set
of link parameters representing a compromise between the two initial sets
of link parameters, and wherein one of the parameters exchanged is the
sizes of the first and second windows.
7. The system of claim 6, wherein one of the first and second stations
requests communication with the other station so that parameters are
subsequently exchanged, resolves the received set of link parameters with
its own, and transmits the modified set of link parameters to the other
station.
8. The system of claim 6, wherein said second station transmits
acknowledgement information through the second communication link, wherein
the first and second stations have respectively high and low levels of
information traffic, and wherein the first and second communication links
are high and low speed links respectively.
9. The system of claim 8, wherein said second station also transmits data
to the first station, such data being arranged in data groups in which the
acknowledgement information is piggybacked.
10. A method for transmitting data frames from a first to a second station
through a first communication link, wherein the second station transmits
acknowledgement information concerning the data frames received through
the first or a second communication link, wherein (a) each data frame
includes data and an identification number, said identification numbers of
the frames being in the sequential order of transmission to facilitate
frame identification, said first station storing the data frames
transmitted by the first station and said second station storing the data
frames received by the second station, wherein (b) the identification
numbers of the frames stored by the first station are within a variable
range of identification numbers defining a first window having an upper
and lower limit wherein said first control means evaluates the
acknowledgement information received from the second station to vary the
upper and lower limits of the first window; wherein (c) the data frames
stored by the second station are such that their identification numbers
are within a variable range defining a second window having an upper and
lower limit for a variable range of identification numbers of possible
data frames from the first station acceptable to the second station, said
second control means evaluating the data frames received from the first
station to vary the upper and lower limits of the second window; wherein
(d) the difference between the upper and lower limits of each window
defining its size; wherein each station has an initial set of link
parameters; said method comprising:
exchanging, before data frames are transmitted, the initial sets of link
parameters including the sizes of the first and second windows and
generating a modified set of link parameters representing a compromise
between the two initial sets of parameters. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
cl BACKGROUND OF THE INVENTION
This invention relates in general to data communication and particularly to
a data communication system which efficiently communicates data over a
variety of communication links.
Information gathering, processing and distribution has become an increasing
important aspect of modern day life. Together with the unprecedented
growth of the amount of information gathered and processed, there is
increasing need for the capability to transfer data at a variety of speeds
between separated locations. Different types of communication links have
been used for transfer of data. One type of common carrier communication
link is terrestrial such as a cable or a leased phone line. Other common
carriers may include high speed satellite links. These links may have
different lengths, operate at different error rates and transfer data at
very different speeds. Since a variety of communication links with
different characteristics may be available between two locations, it is
advantageous to choose the communication link which is the most economical
and efficient for the particular type of data transfer desired. It is
therefore desirable to provide a communication system which is flexible
and dynamically adjustable and which is efficiently used for data transfer
over communication links having different characteristics.
Communications protocols based on a layered network architecture have been
developed for the transfer of data between remote host computers. Because
of the value and precision of the data transferred, it is absolutely
essential that all the data be correctly transferred particularly in the
face of predictable errors caused by the communications links used for the
data transfer. Communication protocols have therefore been developed for
transmitting data in discrete blocks known as frames, for evaluating
whether the data are correctly received, for communicating to the sending
station which data frames are in error and for retransmitting such data
frames. The Synchronous Data Link Control (SDLC) developed by
International Business Machines Corporation (IBM) and the High Level Data
Link Control (HDLC) published by the International Standards Organization
are examples of communications protocols which are currently used.
Where a sending station is transmitting data through a communication link
to a receiving station, both stations must define their link parameters
for the data transfer. Where the resources available to the two stations
are different, there may be conflicts between the link parameters
designated by the two stations. It is therefore desirable to provide a
data communications system where such conflicts can be resolved in a
simple manner.
The interchange of information between stations on an SDLC or HDLC link is
controlled by sequence numbers within the frame. The two types of sequence
numbers are: Send Sequence Number, N.sub.S, and Receive Sequence Number,
N.sub.R. The N.sub.S indicates to the receiving host the sequence number
of the next frame that will be transmitted by the sending host. As each
frame is sent, the sending host increments the N.sub.S that it sends by 1.
N.sub.R is used to acknowledge which frames have been successfully
received, and to indicate to the sending host which information frame the
receiving host expects to receive next. In SDLC and HDLC, N.sub.R always
acknowledges that all frames up to N.sub.R have been successfully
received.
SDLC uses 3-bit sequence numbers that may contain the digits 0 through 7.
SDLC thereby allows for up to 7 frames to be outstanding (frame
transmitted but not acknowledged). HDLC allows for 3-bit and, in extended
mode, 7-bit sequence numbers which may contain the sequence numbers 0
through 7 and 0 through 127, respectively. HDLC would allow for up to 127
frames to be outstanding. The two protocols use similar error detection
algorithms and error recovery techniques to verify the successful receipt
of a transmitted frame.
Upon detection of a missing frame, or a frame in error, SDLC uses a
technique that is called "Go-back-n". Use of this technique requires the
receiving host to reject all frames that have been received after the
frame in error, whether or not these frames are correctly received.
As an example, suppose the sending host has sent frames numbered 1, 2, 3, 4
and 5 and that frame number 2 was destroyed in transit. The receiving host
using the SDLC technique, will reject frame number 2 and discard frames
numbered 3, 4, and 5. The sending host then must retransmit the frames
numbered 2-5. In this example it is easy to see that retransmission of
frames 3, 4, and 5 is redundant and that link utilization would be more
efficient if such redundant transmission were not required.
Another general strategy for handling data frames received in error, known
as selective repeat or selective reject, is described in Computer
Networks, by Andrew S. Tanenbaum, Prentice-Hall, Inc., Englewood Cliffs,
N.J., 1981, p. 155. In this alternative strategy, all the correct frames
following the bad one received by the receiving host are stored in its
buffer. The receiving host again sends a negative acknowledgement to the
sending host. When the sending host finally becomes aware that something
is wrong, it simply identifies and retransmits the one bad frame from its
buffer, but not all its successfully transmitted successors. Thus, by
providing a buffer for storing the correct frames following the bad one,
only the one bad frame needs to be re-transmitted.
Data communications systems employing the above-described concepts are
described for example in U.S. Pat. No. 3,979,719 to Tooley et al. and in
U.S. Pat. No. 4,422,171 to Wortley et al. None of the above-described
systems are entirely satisfactory. It is therefore desirable to provide
data communication systems having improved qualities.
SUMMARY OF THE INVENTION
The data frames transmitted from a first station to a second station
typically includes data and an identification number, where the
identification numbers of the frames are typically assigned in the
sequential order of transmission to facilitate frame identification. To
confirm that the data frames received by the second station are correct
and in the correct sequence, it is necessary for the receiving station to
utilize verification techniques for each frame received and communicate to
the sending station that the frames were indeed correctly received by
sending a properly formatted acknowledgement for each of these data frames
including their identification numbers. Since it is necessary for the
sending station to receive confirmation of the correct receipt of data
frames from the receiving station before it considers the transmission
complete, the sending station typically is equipped with the capability of
storing transmitted-but-not-yet acknowledged data frames. The sending
station evaluates the acknowledgement information received from the
receiving station and uses it to discard from its buffer those data frames
acknowledged as correctly received, in order to make room for additional
data frames to be transmitted. Thus the sending station assigns and
monitors a variable range of identification numbers for data frames stored
in its buffer, thereby restricting the total number of such frames within
the defined first window. The sending station evaluates the
acknowledgement information received from the receiving station in order
to shift the upper and lower limits of the window.
The receiving station establishes a second window having an upper and lower
limit for a variable range of identification numbers of possible data
frames from the sending station acceptable to the receiving station. The
receiving station evaluates the data frames received from the sending
station to shift the upper and lower limits of the second window. The
difference between the upper and lower limits of each of the first and
second windows defines its size. Up to this point, a previously known
system using a protocol known as the sliding window protocol is described,
wherein the window consists of that subset of data to be transmitted which
has been initiated into the transmission process but not yet successfully
terminated out of that process by the two stations involved.
One aspect of the invention is based on the observation that the size of
the first or the second window or both can be made selectable by the user
according to the speed, length or error rate of the communication link or
the frame size used in connection therewith. Thus, for lengthy
communication links such as satellite links with long delay times
(thousands or millions of frames in transit) between the sending and
receipt of data frames, it is desirable to select large window sizes. The
selection of large window sizes requires a larger storage buffer but
allows a sending station to continuously transmit frames without having to
interrupt transmission while awaiting acknowledgements from the receiving
station. A large window size allows a receiving station to continuously
receive data frames without having to reject data frames because of the
fact that the identification numbers of these frames falls outside its
window.
The above described feature of the extensible window size is advantageous
since it allows the user to select a window size that is the most
efficient and economical for the particular communication link used. This
greatly increases the flexibility in selecting communication links and
reduces the cost of data transfer by efficient utilization of the link
bandwidth. The tradeoff between link utilization and required buffer size
has benefitted in recent year because the cost of storage has decreased at
a faster rate than the cost of transmission.
In many communication systems, the receiving station also sends negative
acknowledging information to the sending station to indicate every data
frame which has been unsuccessfully received. A second aspect of the
invention is directed to a communication system where a single negative
acknowledgement message sent by the receiving station specifies both the
upper and lower limits of a range of identification numbers of frames
unsuccessfully received. In other words, the receiving station need send
only a message containing two identification numbers to identify a range
of data frames incorrectly received. This feature enables the
communication system to avoid the necessity of sending the identification
number of each and every data frame incorrectly received, thereby
improving the efficiency of the system. This feature is particularly
advantageous where, for example, a burst error in the communication link
causes a large number of consecutive data frames to be lost or damaged in
the transmission.
The sending and receiving stations each maintains a preferred set of link
parameters related to the resources available to it. A third aspect of the
invention is directed to a communication system comprising a first and a
second station where, before data is transmitted, the two stations
exchange the preferred sets of link parameters and generate a modified set
of link parameters representing a satisfactory compromise between the two
sets of preferred parameters. This allows potential conflicts between the
parameters of the two stations to be resolved and minimizes the adverse
impact of such conflicts on data transfer.
Predictably the error conditions of a communication link vary with time.
Differential error rates have different impacts on data transfer,
particularly as a function of frame size. When the error rate is low, it
is desirable to use large frames containing data bit streams with many
bits. Given a low error rate, the bit errors introduced by the link cause
relatively few data frames to be transmitted incorrectly, even where the
frames contain a large number of bits. Large frames, mostly transmitted
error free, maximize bandwidth utilization. When the error rate is high,
however, the probability increases that large frames will be transmitted
in error, thereby requiring retransmission. In such event it is desirable
to reduce the frame size. A fourth aspect of the invention is directed to
a communication system comprising a sending and a receiving station where
the sending station automatically evaluates error conditions of the
communication link to vary dynamically the frame size; this increases the
overall efficiency of communication link utilization. In the preferred
embodiment, at least one of the two stations stores a table defining the
frame sizes for use with different bit error rates of the communication
link for substantially optimizing the efficiency of link utilization. Such
station evaluates the current bit error rate of the link measured by
percentage of rejected frames, selects the optimum frame size from the
table, and adjusts the transmission frame accordingly.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a communication system illustrating the
invention.
FIG. 2 illustrates data communication across asymmetrical communication
links to illustrate the invention.
FIG. 3 illustrates the frame format in accordance with the preferred
embodiment of the present invention.
FIG. 4 is a conceptual block diagram of the functional elements of the data
flow processor in accordance with the present invention.
FIG. 5A and 5B illustrate the send/receive frame table maintained in
accordance with the present invention.
FIG. 6 provides a generalized flow diagram of read processing function.
FIG. 7 provides a detailed flow diagram of FRMARRI step 128 of FIG. 6.
FIG. 8 provides a detailed flow diagram of FRMPIKR step 142 of FIG. 7.
FIG. 9 provides a detailed flow diagram of RNGCHK step 148 of FIG. 7.
FIG. 10 provides a detailed flow diagram of ACKWIND step 184 of FIG. 9.
FIG. 11 provides a detailed flow diagram of HART step 188 of FIG. 9.
FIG. 12A and 12B provide a detailed flow diagram of ITSTATE step 154 of
FIG. 7.
FIG. 13 provides a generalized flow diagram of the write processing
function in accordance with the present invention.
FIG. 14 provides a detailed flow diagram if DOHART step 268 of FIG. 13.
FIG. 15 provides a detailed flow diagram of GETFRM step 270 of FIG. 13.
FIG. 16 provides a detailed flow diagram of BILDFEA step 342 of FIG. 13.
FIG. 17 provides a detailed flow diagram of MOVEFRM step 342 of FIG. 13.
DESCRIPTION OF THE INVENTION
FIG. 1 is a conceptual block diagram of two stations 2 and 4 illustrating
the invention. As shown in FIG. 1 stations 2 and 4 are connected by a
communication link 16. Data is transferred from station 2 to station 4;
station 2 is referred to below as the sending station and station 4 as the
receiving station. Station 4 examines the data frames received from
station 2 through link 16 and sends acknowledgement information through
link 16 to station 2. The acknowledgement information may be sent to
station 2 in the form of data groups including control information and the
acknowledgement information. Alternatively, the acknowledgement
information may be "piggybacked" onto data frames in the return traffic
sent by station 4 to station 2. Such piggybacking schemes are well known
in the art.
Each of the stations comprises a host 18 or 18', a data flow processor 20
or 20' and a communication processor 40 or 40'. Host 18 of the sending
station supplies data to data flow processor 20 and communication
processor 40 for preprocessing the data for transmission through link 16.
Host 18' of station 4 is the destination of the data transferred from host
18 and receives the data after it is processed by communication processor
40' and data flow processor 20'. The hosts 18, 18' may be computers or
other data sources and sinks. Host 18, 18' may be part of the sending and
receiving stations as shown in FIG. 1. Alternatively these hosts may be
separate from the sending and receiving stations themselves but linked to
the stations by a conventional means. Thus while in FIG. 1 the stations
are shown to include the hosts, it will be understood that the invention
is applicable whether such hosts are part of or separate from the
stations. The data flow processors 20, 20' may be distinct pieces of
hardware or can be implemented within the hosts in a form of a series of
instructions executed by the host for processing the incoming and outgoing
frames of information. The detailed structure and functions of the data
flow processors will be explained below.
FIG. 2 is a schematic view of a data communications system employing
asymmetrical communication links between stations to illustrate the
invention. As shown in FIG. 2, station 2 may transfer data to station 4
via a satellite link 16, which includes a satellite 10. Communication link
16 normally includes both a forward channel from station 2 to station 4
and a return channel from station 4 to station 2, where the forward and
return channels have essentially the same characteristics. If the level of
information traffic from station 2 to station 4 and from station 4 to
station 2 require essentially the same communication capacity, it is
desirable to employ both the forward and return channels of link 16 for
the two-way traffic.
In some applications, however, the traffic from station 4 to station 2 may
be at a much lower level than the traffic from station 2 to station 4. In
such event it may be desirable to free the return channel of link 16 for
other purposes and employ a separate communication link 17 for
transferring communication data from station 4 to station 2 as shown in
FIG. 2. Then the return channel of link 16 from station 4 to station 2 may
be utilized for an entirely separate purpose. Link 17 may, for example, be
a slow inexpensive terrestrial line such as a leased telephone line. The
scheme illustrated in FIG. 2 may be used for example where the only
traffic from station 4 to station 2 is that of acknowledgement information
acknowledging data frames received through link 16.
FIG. 3 illustrates the frame format in accordance with the preferred
embodiment of the invention. As shown in FIG. 3, a typical frame includes
flag bits 28, an address 30, control field 32 which indicates the type of
frame, the information itself 34, a frame check sequence 36 and a flag 38.
Address 30 can be that of the station to which the information is to be
sent, that of the station sending a response, or a broadcast address.
The control field identifies the nature of the frame, for example, an
information frame, a supervisory frame, or an unnumbered frame.
Information frames are used for transferring data between stations. The
sequence number N.sub.S is the identification number for the information
frame. Typically the information frames are numbered in the same order as
their transmission. The setting of the sequence length subfield in the
control field determines the length of the sequence number subfields
N.sub.S, N.sub.R that follow it and hence the maximum sequence number. In
the preferred embodiment, the maximum sequence length may be set between 0
and 7 bits. The setting of the maximum sequence length may be used to
determine the length of N.sub.S, N.sub.R as follows. When the maximum
sequence length is set to 0 bit, the sequence number subfields N.sub.S,
N.sub.R are each 4 bits in length so that the sum of the two subfields is
1 byte in length. When the maximum sequence length is set to 1 bit, the
sequence number subfields N.sub.S, N.sub.R are each 8 bits in length (or a
total length of 2 bytes for the two subfields), and so on until when the
maximum sequence length is 7 bits, the sequence number subfields N.sub.S,
N.sub.R are each 32 bits in length for a sum total length of 8 bytes.
Hence, when the maximum sequence length is set between 0-7 bits, N.sub.S
and N.sub.R each ranges in length between 4 and 32 bits. Where N.sub.S,
N.sub.R are each 32 bits in length, the maximum sequence number is over 4
billion.
In reference to FIGS. 1 and 3, data flow processor 20 of sending station 2
stores the information frames already transmitted through link 16 but yet
unacknowledged by station 4. Data flow processor 20' of station 4 stores
the data information frames received from station 2 which have not yet
been transmitted to host 18'. Station 4 evaluates the data information
frames received through link 16 from station 2 and sends acknowledgement
information through link 16 back to station 2. When station 2 receives the
acknowledgement information that a certain data frame has been
successfully received, the data flow processor 20 may then discard the
frame from its memory, thereby freeing some memory space for accepting new
data from host 18. In such manner the data flow processors perform the
important function of retaining a copy of in transit data until having
assured that the data transferred from host 18 to host 18' are correct and
in the correct sequence.
This invention employs an improved sliding window protocol for data
transmission. Sliding window protocols are described in Section 4.2 of
Computer Networks, by Tanenbaum referenced above. The several paragraphs
below summarize the description in the section.
In a sliding window protocol, at any instant of time, the sending station
maintains a list of consecutive sequence numbers corresponding to frames
it is permitted to send, where the list defines the sending window. The
receiving station maintains a receiving window corresponding to frames it
is permitted to accept. Whenever a new message arrives from the host, it
is given the next highest sequence number, and the upper limit of the
window is advanced by 1. When an acknowledgement comes in, the lower limit
is advanced by 1. In such manner the window continuously maintains a list
of unacknowledged frames. The sending station must store the data frames
which are currently within its window. When a sending station receives
indication from the receiving station that these data frames are lost or
damaged, they can be retransmitted. Thus, if the maximum window size is n,
the sending station need n buffers to hold the unacknowledged frames. If
the window ever grows to its maximum size, the sending station must
forcibly shut down the host until another buffer becomes free.
The window of the receiving station corresponds to the frames it may
accept. Any frame falling outside a window is discarded. When a frame
whose sequence number equal to the lower limit of the window is received,
it is passed to the host. An acknowledgement is generated for such frame,
and the upper and lower limits of the window are advanced by one.
For better efficiency, it is desirable for the receiving station to accept
and store the data frames following a damaged or lost frame. In such
event, further restrictions must be imposed on the sending and receiving
stations. As explained on pages 160 and 161 of Computer Networks, by
Tanenbaum referenced above, the maximum window size for both stations
should be at most half the range of the sequence numbers. In other words
if the maximum sequence number is said to be MaxSeq, the maximum window
size will be (MaxSeq+1)/2. We are now ready to return to the description
of the sliding window protocol of the preferred embodiment of the
invention.
FIGS. 5A, 5B illustrate a sliding window protocol adopted by stations 2 and
4 to insure that data is correctly transferred from station 2 to station 4
and in the correct sequence. Data flow processor 20 of the sending station
2 includes memory or temporary storage area for storing information which
the processor constantly checks and updates to insure that data is
correctly transferred. FIG. 5A illustrates the entries in the temporary
storage area of data flow processor 20 in the sending station. FIG. 5B
illustrates the entries made in the temporary storage area of the data
flow processor 2' in the receiving station.
In FIGS. 5A and 5B, it is assumed that the maximum sequence length is
designated to be 256 frames long. Thus the sequence numbers of the data
frames may range from 0 to 255 and MaxSeq is 255. Therefore, the maximum
window size for stations 2, 4 is 128.
The optimum window size is a function of a number of communication link
characteristics. Thus, in the case of a satellite communication link,
there is considerable delay between the transmission from station 2 and
its receipt by station 4. In such event it would be advantageous to employ
a window size which is large. If the window size is too small, the window
of the sending station will be full long before the sending station
receives acknowledgement of any frames in the window. This prevents the
sending station from sliding its window upwards and therefore prevents it
from sending any more data frames. Thus the sending station will be idle
for a large percentage of the operating time of the system, and the
bandwidth capacity of the link will be vastly underutilized. The optimum
window size is also a function of other link characteristics such as its
speed, error rate and the frame size used.
In previously known sliding window protocols, the range of maximum sequence
numbers is fixed. This is the case for example in the data communications
systems described by Tooley et al. in U.S. Pat. No. 3,979,719 and by
Wortley et al in U.S. Pat. No. 4,422,171. With a fixed maximum sequence
length, the maximum window size is also fixed. As discussed above,
different types of communication links may be available between two
stations and it may be more efficient and economical for more than one
type of communication link to be employed for transmitting data between
the two stations. In such event it is advantageous for the user to be able
to specify the maximum sequence length and hence the maximum window size
to most efficiently use each such type of communication link. As discussed
above, it is desirable to change the window size depending on the length,
speed or error rate of the communication link or the frame size used in
the transmission. In reference to FIG. 3, the sequence length subfield can
be set by the user. This increases the efficiency in utilizing the
communication link.
In reference to FIG. 3, supervisory frames are sent by the receiving
station 4 to inform the sending station that certain frames are rejected.
Thus, where the third and the fourth bits of the supervisory frame are 0
and 1 respectively, the number N.sub.S specifies the next frame to be sent
and the number N.sub.R specifies the starting number of the rejected
sequence of identification numbers. Where the third and the fourth bits of
the supervisory frame are both 1's, selective reject command is indicated
and the number N.sub.S indicate the high end or the upper limit of the
selective reject range and the number N.sub.R indicates the lower limit of
the range. In other words, such a supervisory frame indicates that all the
data frames with sequence numbers ranging from N.sub.S down to N.sub.R are
all selectively rejected. In previously known protocols, each individual
sequence number of the data frame rejected must be specified in the
negative acknowledgement sent by station 4. Therefore if a burst error in
the communication link causes a large number of consecutive data frames to
be lost or damaged, previously known systems require each and every
sequence number of such frames to be specified in the selective reject
command sent by station 4 to station 2. This multiplicity of reject
messages is undesirable and inefficient. By providing the capability to
| | |