11 DataLink
11 DataLink
2
Framing
Process of wrapping data with certain info before
sending out
3
Byte vs. Bit Oriented
Framing in byte-oriented protocols
4
Byte Stuffing
Process of adding extra byte whenever there is
an escape or a flag character in the data
5
Bit Stuffing
Process of adding extra bit to ensure flag
sequence does not appear in the data
01111110
6
Flow Control and Error Control
Flow control
A set of procedures that tells the sender how
much data can be sent before waiting for
acknowledgment
Error control
Includes both error detection and correction
Allows receiver to inform sender of lost or
duplicate frames
Mostly based on Automatic Repeat Request
(ARQ)
7
Data Link Protocols
8
Protocols for Noiseless Channel
Assuming channel is error free
Not realistic…
No need for error control
9
"Simplest" Mechanism
Assuming
Noiseless channel
Unlimited buffer and speed for the receiver
10
"Simplest" : Pseudo Code
Sender
Receiver
11
"Simplest": Flow Diagram
12
Stop-and-Wait Mechanism
Still noiseless channel
Receiver has limited buffer
Requires flow control
Sender sends one frame at a time and
wait for an acknowledgment
13
Stop-and-Wait: Overview
14
Stop-and-Wait: Pseudo Code
Sender side
15
Stop-and-Wait: Pseudo Code
Receiver side
16
Stop-and-Wait: Flow Diagram
17
Noisy Channel
Realistic
Error can and will happen
Require error control
Mechanisms:
Stop-and-Wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
18
Stop-and-Wait ARQ
Sender keeps a copy of sent frame until
successful delivery is ensured
Receiver responds with an ack when it
successfully receives a frame
Both data and ack frames must be
numbered
When sender does not receive an ack
within certain time, it assumes frame is
lost, then retransmits the same frame.
19
Stop-and-Wait ARQ
20
Flow Diagram: Normal Operation
Sender Receiver
S=0 R=0
Deliver
S=1 R=1
Deliver
R=0
Time Time
21
Thinking Corner
Why data frames need to be numbered?
22
Flow Diagram: Lost Frame
Sender Receiver
S=0 R=0
Deliver
S=1 R=1
Timeout
Deliver
R=0
Time Time
23
Flow Diagram: Lost ACK
Sender Receiver
S=0 R=0
Deliver
S=1 R=1
Deliver
Timeout S=1
R=0
Frame 0 expected;
discard
R=0
S=0
Time Time
24
Thinking Corner
Why ACK frames need to be numbered?
25
Flow Diagram: Delayed ACK
Sender Receiver
S=0 R=0
Deliver
Timeout
R=1
Frame 0 expected;
discard
S=1
R=1
Timeout
Deliver
R=0
S=0
26
Bidirectional Transmission
Data are transferred both ways
ACK are "piggybacked" with data frames
27
Example
Assuming a communication system where:
Stop-and-Wait ARQ is used
Bandwidth of the link is 1 Mbps
Propagation delay is 10 ms
One-way data flow
Questions
What should be an appropriate time-out value?
What is the bandwidth-roundtrip-delay product?
If the system data frames are 1000 bits in length,
what is the utilization percentage of the link?
28
Improving Link Utilization
Previous example demonstrates major
disadvantage of Stop-and-Wait ARQ
Prefer to send more frames before waiting
for ACK
Example:
Recalculate the link utilization if we allow up
to 15 frames to be sent before waiting for an
ACK
29
Go-Back-N ARQ
Allows multiple frames to be sent before
waiting for ACK
These frames must be numbered differently
Frame numbers are called Sequence numbers
Frames must be received in the correct
order
If a frame is lost, the lost frame and all of
the following frames must be
retransmitted
30
Sequence Numbers
Frame header contains m bits for
sequence number
That allows up to 2m different frame
numbers
How big should m be?
31
Sending Window
Sending more than one frame at once requires
sender to buffer multiple frames
Known as "sending window"
Any of these frames in the window can be lost
32
"Sliding" Window
Once the first frames in the window is ACKed
ACKed frames are removed from the buffer
More frames are transmitted
Result: The window slides to the right
33
Receiving Window
Receiver expects one frame at a time
34
Send vs. Receive Windows
35
Go-Back-N: Window Sizes
For m-bit sequence numbers
Send window size: at most 2m-1
Up to 2m-1 frames can be sent without ACK
Receive window size: 1
Frames must be received in order
36
Go-Back-N: Normal Operation
37
Go-Back-N: Lost Frame
ACKs are
cumulative
38
Lost ACK: Window Size < 2 m
39
Thinking Corner
What is a problem if send window is
greater than 2m-1?
40
Lost ACK: Window Size = 2 m
41
Thinking Corner
Stop-and-Wait is a special case of Go-
Back-N.
What is the send window size in Stop-and-
Wait?
42
Selective Repeat ARQ
Go-Back-N always discards out-of-order
frames
Losing one frame may result in retransmission
of multiple frames
Very inefficient in noisy link
Selective Repeat ARQ allows frames to be
received out of order
Therefore, receive window > 1
43
Send and Receive Windows
Sender and receiver share window space
equally
For m-bit sequence numbers
Send window: up to 2m-1
Receive window: up to 2m-1
44
Send Window
45
Receive Window
46
Negative ACK
Used by receiver to indicate missing frame
47
Selective Repeat: Window Size
48
Data Link Control Protocols:
HDLC and PPP
HDLC
High-level Data Link Control
Bit-oriented protocol
Support both
Point-to-point links
Multipoint links
50
Normal Response Mode
"NRM" mode
Used in both point-to-point and multi-point link
51
Asynchronous Balance Mode
"ABM"
Supports only point-to-point links
Each station is both primary and
secondary
52
HDLC Frames
Information frame (I-frame)
53
Control Field Format
54
U-Frame Codes
55
Connection and Disconnection
56
Data Transfer: No Error
57
Data Transfer: With Error
58
PPP
Point-to-Point Protocol
Byte-oriented protocol
Most common protocol for point-to-point
access
Dial-up access
ADSL
GPRS/EDGE/3G
59
PPP Frame Format
60
PPP Transition States
61
Multiplexing in PPP
62
PPP Stack
Link Control Protocol (LCP)
Authentication Protocol (AP)
Network Control Protocol (NCP)
63
LCP: Link Control Protocol
Responsible for establishing, maintaining,
configuring, and terminating links
64
PPP Authentication
Two protocols are supported:
Password Authentication Protocol (PAP)
Challenge Handshake Authentication Protocol
(CHAP)
65
PAP
66
CHAP
67
NCP: Network Control Protocol
A set of control protocols to allow data from the
network layer to be encapsulated into a PPP
frame
One common protocol: IPCP
(Internetwork Protocol Control Protocol)
Allow negotiation at the network layer
68
Data Encapsulation
69
Example: PPP Session
70
Example: PPP Session (cont'd)
71