The system can send 20,000 bits during the time it takes for the data to go from the sender to the
receiver and then back again. However, the system sends only 1000 bits. We can say that the link
utilization is only 1000/20,000, or 5 percent. For this reason, for a link with a high bandwidth or
long delay, the use of Stop-and-Wait ARQ wastes the capacity of the link.
Example 11.5
What is the utilization percentage of the link in Example 11.4 if we have a protocol that can send
up to 15 frames before stopping and worrying about the acknowledgments?
Solution
The bandwidth-delay product is still 20,000 bits. The system can send up to 15 frames or
15,000 bits during a round trip. This means the utilization is 15,000/20,000, or 75 percent. Of
course, if there are damaged frames, the utilization percentage is much less because frames
have to be resent.
Pipelining
In networking and in other areas, a task is often begun before the previous task has ended.
This is known as pipelining. There is no pipelining in Stop-and-Wait ARQ because we
need to wait for a frame to reach the destination and be acknowledged before the next
frame can be sent. However, pipelining does apply to our next two protocols because
several frames can be sent before we receive news about the previous frames. Pipelining
improves the efficiency of the transmission if the number of bits in transition is large with
respect to the bandwidth-delay product.
Go-Back-N Automatic Repeat Request
To improve the efficiency of transmission (filling the pipe), multiple frames must be in
transition while waiting for acknowledgment. In other words, we need to let more than
one frame be outstanding to keep the channel busy while the sender is waiting for
acknowledgment. In this section, we discuss one protocol that can achieve this goal; in
the next section, we discuss a second.
The first is called Go-Back-N Automatic Repeat Request (the rationale for the
name will become clear later). In this protocol we can send several frames before
receiving acknowledgments; we keep a copy of these frames until the acknowledgments
arrive.
Sequence Numbers
Frames from a sending station are numbered sequentially. However, because we need
to include the sequence number of each frame in the header, we need to set a limit. If
the header of the frame allows m bits for the sequence number, the sequence numbers
range from 0 to 2m - 1. For example, if m is 4, the only sequence numbers are 0
through 15 inclusive. However, we can repeat the sequence. So the sequence numbers
are
0, 1,2,3,4,5,6, 7,8,9, 10, 11, 12, 13, 14, 15,0, 1,2,3,4,5,6,7,8,9,10, 11, ...
In other words, the sequence numbers are modulo-2^m
.
In the Go-Back-N Protocol, the sequence numbers are modulo 2^m,
where m is the size of the sequence number field in bits.
Sliding Window
In this protocol (and the next), the sliding window is an abstract concept that defines the
range of sequence numbers that is the concern of the sender and receiver. In other words,
the sender and receiver need to deal with only part of the possible sequence numbers. The
range which is the concern of the sender is called the send sliding window; the range that
is the concern of the receiver is called the receive sliding window. We discuss both here.
The send window is an imaginary box covering the sequence numbers of the data
frames which can be in transit. In each window position, some of these sequence numbers
define the frames that have been sent; others define those that can be sent. The maximum
size of the window is 2m - 1 for reasons that we discuss later. In this chapter, we let the size
be fixed and set to the maximum value, but we will see in future chapters that some protocols
may have a variable window size. Figure 11.12 shows a sliding window of size 15 (m =4).
The window at any time divides the possible sequence numbers into four regions.
The first region, from the far left to the left wall of the window, defines the sequence
Hệ thống có thể gửi 20.000 bit trong thời gian cho các dữ liệu để đi từ người gửi đến cácnhận và sau đó quay trở lại một lần nữa. Tuy nhiên, Hệ thống sẽ gửi chỉ 1000 bit. Chúng tôi có thể nói rằng liên kếtsử dụng là chỉ 1000/20.000, hay 5 phần trăm. Vì lý do này, cho một liên kết với một băng thông cao hoặcchậm trễ lâu dài, việc sử dụng của dừng và chờ đợi ARQ chất thải năng lực của các liên kết.Ví dụ 11.5Tỷ lệ sử dụng liên kết trong ví dụ 11,4 nếu chúng tôi có một giao thức mà có thể gửi là gìlên đến 15 khung hình trước khi dừng lại và đáng lo ngại về các acknowledgments?Giải phápSản phẩm băng thông-chậm trễ vẫn là 20.000 bit. Hệ thống có thể gửi lên đến 15 khung hoặc15.000 bit trong một chuyến đi vòng. Điều này có nghĩa là việc sử dụng là 15.000/20.000 hoặc 75 phần trăm. CủaTất nhiên, nếu có khung bị hư hỏng, tỷ lệ sử dụng là ít hơn nhiều bởi vì khungcó được resent.PipeliningTrong mạng và tại các khu vực, một nhiệm vụ thường xuyên bắt đầu trước khi tác vụ trước đó đã kết thúc.Điều này được gọi là pipelining. Có là không có pipelining ở dừng và chờ đợi ARQ bởi vì chúng tôicần phải đợi cho một khung để đạt đến đích và được công nhận trước tiếp theokhung có thể được gửi. Tuy nhiên, pipelining áp dụng cho chúng tôi tiếp theo hai giao thức vìmột số khung có thể được gửi trước khi chúng tôi nhận được tin tức về khung hình trước đó. Pipeliningcải thiện hiệu quả của việc truyền tải nếu số bit trong quá trình chuyển đổi lớn vớitôn trọng các sản phẩm băng thông-chậm trễ.Go-Back-N tự động lặp lại yêu cầuĐể nâng cao hiệu quả truyền (điền vào đường ống), nhiều khung phải ởquá trình chuyển đổi trong khi chờ đợi sự thừa nhận. Nói cách khác, chúng ta cần phải cho phép nhiều hơnmột khung được nổi bật để giữ cho các kênh bận rộn trong khi người gửi chờ đợithừa nhận. Trong phần này, chúng tôi thảo luận về một giao thức mà có thể đạt được mục tiêu này; ởphần tiếp theo, chúng tôi thảo luận về tí.Lần đầu tiên được gọi là Go-Back-N tự động lặp lại yêu cầu (những lý do cho cáctên sẽ trở nên rõ ràng sau này). Trong giao thức này, chúng tôi có thể gửi một số khung hình trướcnhận được acknowledgments; chúng tôi giữ một bản sao của những khung hình cho đến khi các acknowledgmentsđến.Số thứ tựKhung hình từ một trạm gửi được đánh số tuần tự. Tuy nhiên, bởi vì chúng ta cầnđể bao gồm số thứ tự của mỗi khung trong tiêu đề, chúng tôi cần phải thiết lập một giới hạn. Nếutiêu đề của khung cho phép m bit cho chuỗi số, số thứ tựkhoảng từ 0 đến 2m - 1. Ví dụ, nếu m là 4, số thứ tự duy nhất là 0đến 15 bao gồm. Tuy nhiên, chúng tôi có thể lặp lại trình tự. Vì vậy các số thứ tựđược0, 1,2,3,4,5,6, 7,8,9, 10, 11, 12, 13, 14, 15,0, 1,2,3,4,5,6,7,8,9,10, 11,...Nói cách khác, số thứ tự là theo modulo 2 ^ m.Trong các giao thức Go-Back-N, số thứ tự là theo modulo 2 ^ m,trong đó m là kích thước của trường số thứ tự trong bit.Cửa sổ trượtGiao thức này (và kế tiếp), cửa sổ trượt là một khái niệm trừu tượng xác định cácphạm vi của số thứ tự là mối quan tâm của người gửi và người nhận. Nói cách khác,người gửi và người nhận phải đối phó với chỉ một phần của số thứ tự có thể. Cácphạm vi đó là mối quan tâm của người gửi được gọi là gửi trượt cửa sổ; phạm vi đólà mối quan tâm của người nhận được gọi là cửa sổ trượt nhận. Chúng tôi thảo luận về cả hai ở đây.Cửa sổ gửi là một hộp ảo bao gồm số thứ tự của các dữ liệukhung có thể trên đường vận chuyển. Ở mỗi vị trí cửa sổ, một số các số thứ tựxác định các khung đã được gửi; những người khác xác định những người có thể gửi. Tối đaKích thước của cửa sổ là 2m - 1 vì lý do đó chúng tôi thảo luận về sau này. Trong chương này, chúng tôi cho kích thướcđược cố định và thiết lập giá trị tối đa, nhưng chúng tôi sẽ nhìn thấy trong tương lai chương một số giao thứccó thể có một kích thước cửa sổ biến. Con số 11.12 cho thấy một cửa sổ trượt của kích thước 15 (m = 4).Cửa sổ bất cứ lúc nào chia số thứ tự có thể thành bốn khu vực.Vùng đầu tiên, từ bên trái để các bức tường bên trái của cửa sổ, định nghĩa dãy
đang được dịch, vui lòng đợi..
Hệ thống có thể gửi 20.000 bit trong thời gian cần cho các dữ liệu đi từ người gửi đến người
nhận và sau đó trở lại một lần nữa. Tuy nhiên, hệ thống sẽ gửi chỉ có 1000 bit. Chúng tôi có thể nói rằng các liên kết
sử dụng là chỉ có 1000 / 20.000, hoặc 5 phần trăm. Vì lý do này, cho một liên kết với một băng thông cao hoặc
chậm trễ lâu dài, việc sử dụng Stop-and-Wait ARQ chất thải công suất của liên kết.
Ví dụ 11.5
tỷ lệ sử dụng các liên kết trong Ví dụ 11.4 là gì nếu chúng ta có một giao thức có thể gửi
lên đến 15 khung hình trước khi dừng lại và lo lắng về sự thừa nhận?
Giải pháp
Các sản phẩm băng thông chậm trễ vẫn là 20.000 bit. Hệ thống có thể gửi lên đến 15 khung hình hoặc
15.000 bit trong một chuyến đi vòng. Điều này có nghĩa là việc sử dụng là 15.000 / 20.000, hoặc 75 phần trăm. Trong số
tất nhiên, nếu có được khung hình bị hư hỏng, tỷ lệ sử dụng thấp hơn nhiều do khung
phải được gửi lại.
Pipelining
Trong mạng và tại các khu vực khác, một nhiệm vụ thường bắt đầu trước khi nhiệm vụ trước đó đã kết thúc.
Điều này được biết đến như pipelining. Không có pipelining trong Stop-and-Wait ARQ bởi vì chúng ta
cần phải chờ đợi cho một khung để đạt đến đích và được công nhận trước mặt sau
khung có thể được gửi đi. Tuy nhiên, pipelining không áp dụng cho hai giao thức tiếp theo của chúng tôi vì
nhiều bức hình có thể được gửi trước khi chúng tôi nhận được tin tức về các khung hình trước. Pipelining
cải thiện hiệu quả của truyền nếu số bit trong quá trình chuyển đổi là lớn với
đối với sản phẩm băng thông chậm trễ.
Go-Back-N Automatic Repeat Request
Để nâng cao hiệu quả của truyền (điền vào các đường ống), nhiều khung phải
quá trình chuyển đổi trong khi chờ đợi sự thừa nhận. Nói cách khác, chúng ta cần để cho nhiều hơn
một khung hình được xuất sắc để giữ cho các kênh bận rộn trong khi người gửi đang chờ
xác nhận. Trong phần này, chúng tôi thảo luận về một giao thức có thể đạt được mục tiêu này; trong
phần tiếp theo, chúng tôi thảo luận về một thứ hai.
Việc đầu tiên được gọi là Go-Back-N Automatic Repeat Request (lý do cho các
tên sẽ trở nên rõ ràng sau này). Trong giao thức này chúng ta có thể gửi một số khung hình trước khi
nhận được sự thừa nhận; chúng tôi giữ một bản sao của những khung hình cho đến các lời cảm ơn
đến nơi.
Số trình tự
các frame từ một trạm gửi được đánh số tuần tự. Tuy nhiên, bởi vì chúng ta cần
phải bao gồm số thứ tự của mỗi khung hình trong phần đầu, chúng ta cần phải thiết lập một giới hạn. Nếu
tiêu đề của khung cho phép bit m cho số thứ tự, các số thứ tự
từ 0 đến 2m - 1. Ví dụ, nếu m là 4, số thứ tự chỉ là 0
đến 15, bao gồm. Tuy nhiên, chúng ta có thể lặp lại liên tục. Vì vậy, các số thứ tự
là
0, 1,2,3,4,5,6, 7,8,9, 10, 11, 12, 13, 14, 15,0, 1,2,3,4,5,6 , 7,8,9,10, 11, ...
Nói cách khác, các số thứ tự được modulo-2 ^
m.
Trong Go-Back-N Protocol, các số thứ tự là modulo 2 ^ m,
trong đó m là kích thước của trường số thứ tự trong bit.
Sliding Window
Trong giao thức này (và tiếp theo), cửa sổ trượt là một khái niệm trừu tượng định nghĩa
phạm vi của số thứ tự đó là mối quan tâm của người gửi và người nhận. Nói cách khác,
người gửi và người nhận cần phải đối phó với chỉ một phần của các số thứ tự có thể. Các
phạm vi mà là mối quan tâm của người gửi được gọi là gửi cửa sổ trượt; phạm vi mà
là mối quan tâm của người nhận được gọi là nhận được cửa sổ trượt. Chúng ta bàn ở đây.
Các cửa sổ gửi là một ô tưởng tượng bao gồm các số thứ tự của dữ liệu
khung mà có thể quá cảnh. Ở mỗi vị trí cửa sổ, một số trong những số thứ tự
xác định các khung đã được gửi đi; những người khác xác định những người có thể được gửi đi. Tối đa
kích thước cửa sổ là 2m - 1 lý do mà chúng tôi thảo luận sau đó. Trong chương này, chúng ta để cho kích thước
được cố định và thiết lập giá trị tối đa, nhưng chúng ta sẽ thấy trong các chương tương lai mà một số giao thức
có thể có một kích thước cửa sổ biến. Hình 11.12 cho thấy một cửa sổ trượt kích thước 15 (m = 4).
Các cửa sổ bất cứ lúc nào chia các số thứ tự có thể thành bốn vùng.
Đầu tiên khu vực, từ phía bên trái bức tường bên trái của cửa sổ, quy định trình tự
đang được dịch, vui lòng đợi..