8 Data Link Control
8 Data Link Control
1
FRAMING
2
Figure 1 A frame in a character-oriented protocol
3
Byte Stuffing
4
Figure 2 Byte stuffing and unstuffing
5
Figure 3 A frame in a bit-oriented protocol
6
Bit Stuffing
7
Figure 4 Bit stuffing and unstuffing
8
FLOW AND ERROR CONTROL
9
Flow control
10
Error Control
11
PROTOCOLS
Now let us see how the data link layer can combine
framing, flow control, and error control to achieve the
delivery of data from one node to another. The protocols
are normally implemented in software by using one of the
common programming languages. To make our
discussions language-free, we have written in pseudocode
a version of each protocol that concentrates mostly on the
procedure instead of delving into the details of language
rules.
12
Figure 11.5 Taxonomy of protocols used for flow control and error control
13
NOISELESS CHANNELS
● Simplest Protocol
● Stop-and-Wait Protocol
14
Simplest Protocol
Figure 7 shows an example of communication using
simplest protocol. It is very simple.
Note that the data frames are shown by tilted boxes; the
height of the box defines the transmission time difference
between the first bit and the last bit in the frame.
15
Figure 11.7 Flow diagram for simplest protocol
16
Figure 11.6 The design of the simplest protocol with no flow or error control
17
Stop-and Wait protocol
The sender sends one frame and waits for feedback from
the receiver. When the ACK arrives, the sender sends the
next frame.
18
Figure 11.9 Flow diagram for Example 11.2
19
NOISY CHANNELS
20
Note
21
Note
In Stop-and-Wait ARQ, we use sequence numbers to
number the frames. The sequence numbers are based
on modulo-2 arithmetic. For example: 0,1,0,1,0,1…
22
Note
23
Example 11.3
24
Figure 11.11 Flow diagram for Example 11.3
25
Figure 11.10 Design of the Stop-and-Wait ARQ Protocol
26
Go-Back-N Protocol
27
Figure 11.12 Send window for Go-Back-N ARQ
28