3a.
Data Link Layer Protocols
1. Introduction 2. DLL Design
3. Elementary Data Link Protocols
a. b. c. a. b. c. d. e. f. g. Network Layer Services Error Control Flow Control Stop-and-Wait Protocol Simplex Protocol for Noisy Channel; Time-out Sliding Window Protocols Sliding-window Flow Control A One bit Sliding-Window A Protocol Using Go-Back-N Selective Reject
High-Level Data Linc Control The Internet Protocol
(T. 183-229; 234-246)
a. HDLC Operation b. HDLC Protocol a. PPP-The point-to-point protocol
1
1. Data/control exchanged via protocols
a human protocol and a computer network protocol:
Hi
Hi
Got the time?
TCP connection req
TCP connection response Get http://www.awl.com/kurose-ross
2:00
time
<file>
Data Link Layer
Data transfer between neighboring network elements
Requirements and Objectives: Maintain and release data Link Frame synchronization Error control Flow control Addressing Link management DLL functions:
application transport network link physical
Providing service interface to the network layer. Data Link Protocols must take circuit errors, Flow regulating.
3
Link Layer: Introduction
Some terminology:
Hosts, bridges, switches and routers are nodes Communication channels that connect adjacent nodes along communication path are links
wired links wireless links LANs
Data link
frame, encapsulates datagram Data link layer has responsibility of transferring datagram from one node to adjacent node over a data link
2. Packet and Frame relationship
Network Layer
Sending machine Packet Frame
Network Layer
Receiving machine Packet
Header Payload fild Trailer
Header Payload field Trailer
In some cases, functions of error control and flow control are allocated in transport or other upper layer protocols and not in the DLL, but principles are pretty much the same. 5
Protocol layering and data
Each layer takes data from above adds header information to create new data unit passes new data unit to layer below
source
M
destination application Ht transport Hn Ht network Hl Hn Ht link physical
M M M M message segment datagram frame
Ht M Hn Ht M Hl Hn Ht M
application transport network link physical
Data flow-physical communication
data application transport network link physical
application transport network link physical
network link physical data application transport network link physical
7
application transport network link physical
list of the DLL requirements
Frame synchronization. Data are sent in blocks called frames. The beginning and end of each frame must be recognized. Flow control. The sending station must not send frames at a rate faster then the receiving station can absorb them. Error control. Any bit errors introduced by the transmission system must be checked & corrected. Addressing. On a multipoint line, such as a LAN, the identity of the two stations involved in a transmission must be specified. Link management. The initiation, maintenance, and termination of a data exchange requires a fair amount of coordination and cooperation among stations. 8
Services to the Network Layer (NL)
DLL processes data transfer using a data link protocol.
The actual services can vary from system to system.
Three reasonable services to the NL are: 1. Unacknowledged connectionless service. 2. Acknowledged connectionless service. 3. Acknowledged connection-oriented service.
1. Unacknowledged connectionless service
The source machine send frames to the destination machine without having the destination machine acknowledged them. No logical connection is established beforehand or released afterward. If a frame is lost due to noise on the line, no attempt is made to detect the loss or recover from it in the DLL. This class of service is appropriate when the error rate is very low so that recovery task is left for solution to higher layers. It is also appropriate for real-time traffic, such as voice, in which late data are worse than bad data. Most LANs use unacknowledged connectionless service in the DLL 10
2. Acknowledged connectionless service
Is more reliable. Still no logical connections used, but each frame sent is individually acknowledged. The sender knows whether a frame has arrived correctly. If it has not arrived within a specific time interval, it can be sent again. This service is useful over unreliable channels, such as wireless system. If the large packet is broken up into frames, If individual frames are acknowledged or retransmitted, entire packets get through much faster than unbroken frame that is lost, it may take a very long time for the packet to get through..
11
3. ACKed connection-oriented service
The service requires established connection between source/destination machines before data are transferred. Any frame sent over the connection is numbered, and the DLL guarantees that each frame sent, is received, and are received in the same order. With connectionless service, in contrast, it is possible that a lost acknowledgement causes a packet to be sent several times and thus received several times. When connection-oriented service is used, transfers go through 3 distinct phases: 1. The connection is established and counters needed to keep track of which frames have been received and which ones have not. 2. One or more frames are transmitted and acknowledged. 3. Connection is released, freeing up the variables - buffers and 12 other resources used to maintain the connection.
Link Layer Job
Framing: encapsulate datagram into frame, adding header, trailer Error Detection: errors caused by signal attenuation, noise. receiver detects presence of errors: signals sender for retransmission or drops frame
two types of errors:
Lost frame Damaged frame Error Correction: receiver identifies and corrects bit errors without retransmission
13
Example is a WAN subnet
Consisting of routers connected by point-to-point leased telephone lines. 1. When a frame arrives at a router, the hardware checks it for errors, (Passes the frame to the DLL software which might be embedded in a chip on the network interface board). 2. The DLL software checks to see if it is the frame expected, 3. If so, gives the packet (contained the payload field) to the routing software. 4. The routing software then chooses the appropriate outgoing line and passes the packet back down to the DLL software, which then transmits it.
14
Techniques for error control are: Error detection. Positive Acknowledgment. Retransmission after time-out. Negative acknowledgment and retransmission These 4 mechanisms are all referred to as Automatic Report reQuest (ARQ); the effect of ARQ is to turn an unreliable data link into a reliable one. Three standardized versions Of ARQ:
Stop-and-wait ARQ Go-back-N ARQ Selective-reject ARQ
15
Link Layer Job (Cont) Flow Control: Two approaches are commonly used:
1. Feedback-based flow control, the receiver sends back information to the sender giving it permission to send more data or at least telling the sender how the receiver is doing. You may send me n frames now, but after they have been sent, do not send any more until I have told you to continue. 2. Rate-based flow control, the protocol has a built-in mechanism that limits the rate at which senders may transmit data. Since rate16 based schemes are never used in the DLL
Elementary Data Link Protocols
Assumptions:
1). DLL and Network layer are independent processes that communicate by passing messages back and forth trough the physical layer. 2). a. Machine A wants to send a long stream of data to machine B, using a reliable, connection-oriented service. b. We will consider the case where B also wants to send data to A simultaneously. A is assumed to have a data ready to send. 3). Machines do not crash.
17
Prtcl.1. Stop-and Wait Protocol
Protocol in which the sender sends one frame and then waits for an ACK: stop-and-wait. t (timeout); Damaged ACK; ACK0, ACK1. bidirectional information transfer. Half duplex physical channel. It is often the case that a source will break up a large block of data into smaller blocks and transmit the data in many frames, Reason: 1. The buffer size of the receiver may be limited. 2. The larger the transmission, the more error, With smaller frames, error are detected sooner, Smaller amount of data needs retransmission. 3. On a shared medium, (LAN), it is usually desirable not to permit one station to occupy the medium for an extended period, as this causes long delay at the other sending stations.
18
Stop-and-Wait ARQ
A B
Timeout
Frame lost A retransmits
Timeout
ACK1 lost A retransmits
B discards duplicate frame
19
How to prevent the sender from flooding the receiver?
t= from_physical_layer + to_network_layer, Errors
Damaged:
Error detection Acknowledgment (Copies are maintained)., Damaged ACK=Time-out+ Duplicates frame Frame labeling (0 / 1). Positive ACK0= ready for 1; ACK1= ready for 0.
Lost:
Timer
Time-out
Frame resend (Copies are maintained)
20
Stop-and-wait link utilization
(transmission time=1; propagation delay=).
underutilized inefficiently utilized
t0 t0+1 t0+ t0+1+ t0+1+2
T T T T
R R R R
t0 t0+ t0+1 t0+1+ t0+1+2
T T T T
R R R R
T
(a) >1
T
(b) <1
21
Prtcl.2. Simplex prtcl for Noisy Channel; Time-out Data are transmitted in one direction only (simplex channel), that makes error. Frames may be either damaged or lost completely. Stop-and-wait protocol would work: adding a timer. a. The sender could send a frame, but the receiver would only send an ACK frame if the data were correctly received. b. If a damaged frame arrived at the receiver, it would be discarded. c. After a while the sender would time out and sends the frame again. This process would be repeated until the frame finally arrives intact.
1-bit sequence number (0 or 1)
22
TCP Round Trip Time and Timeout
Q: how to set TCP timeout value?
too short: premature timeout =unnecessary retransmissions too long: slow reaction =time wasting
Q: how to estimate RTT?
SampleRTT: measured time from segment transmission until ACK receipt ignore retransmissions SampleRTT will vary, want estimated RTT smoother average several recent measurements, not just current SampleRTT
23
Fast Retransmit
Time-out period often relatively long:
long delay before resending lost packet
Detect lost frame via duplicate ACKs.
Sender often sends many frames back-toback If frame is lost, there will likely be many duplicate ACKs.
If sender receives 3 ACKs for the same data, it presumes that frame after ACKed data was lost:
fast retransmit: resend frame immediately, before timer expires
24
Protocol scenario:
1. The network layer on A gives packet 1 to its DLL. The packet is correctly received at B and passed to the network layer on B. B sends an ACK frame back to A. 2. The ACK frame gets lost completely. It just never arrives at all. 3. The DLL on A times out. Not having received an ACK, it (incorrectly) assumes that its data frame was lost or damaged and sends the frame containing packet 1 again. 4. The duplicate frame also arrives at the DLL on B perfectly and is randomly passed to the network layer there. If A is sending a file to B, part of the file will be duplicated (i.e., the copy of the file made by B will be incorrect and the error will not have been detected). In other words, the protocol will fail. 25
Sliding-Window
Better idea is to use the Duplex Channel. Data frame from A to B are intermixed with the acknowledgment frames from B to A. By looking at the kind field in the header of an incoming frame, the receiver can tell whether the frame is data or ACK. Station B,-buffer space for n frames. Thus, B can accept n frames, and A is allowed to send n frames without waiting for any ACK. 3-bit field, the sequence number can range from 0 to 7 0 through , from 0 to 2k 1 26
Sliding-Window
Window of frames that Frames already received may be transmitted
Last frame Window shrinks Frame Sequence transmitted from trailing edge as frames are sent number
Window expands from leading edge as received acknowledgment (a) Transmitters perspective
Pipeline
Frames already received
Window of frames that may be accepted
Last frame acknowledged
Window shrinks from trailing edge as frames are received
Window expands from leading edge as sent acknowledgment (b) Receivers perspective
27
Pr.3. Example: Sliding-window protocol
Source system A 0 1 2 3 4 5 6 7 0 1 2 3 F0 F1 F2 Destination system B 0 1 2 3 4 5 6 7 0 1 2 3
0 1 2 3 4 5 6 7 0 1 23
RR3 0 1 2 3 4 5 6 7 0 1 2 3
(RR6); (RNR)
0 1 2 3 4 5 6 7 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3
F3 F4 F5 F6 RR7
0 1 2 3 4 5 6 7 0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3
28
Maximum window size=7
Pr.4 Example: One-Bit Sliding Window
(piggybacking)
A sends (0,1,A0) B gets (0,1,A0)* B sends (0,0,B0) A sends (0,1,A0)
A; T-O short
B sends (0,1,B0) B gets (0,1,A0)* B sends (0,0,B0)
A gets (0,0,B0)* A sends (1,0,A1)
B gets (1,0,A1)* B sends (1,1,B1) A gets (1,1,B1)* A sends (0,1,A2) B gets (0,1,A2)* B sends (0,0,B2) A gets (0,0,B2)* A sends (1,0,A3) B gets (1,0,A3)* B sends (1,1,B3)
A gets (0,1,B0)* A sends (0,0,A0)
B gets (0,0,A0) B sends (1,1,B1) A gets (0,0,B0) A sends (1,0,A1)
B gets (1,0,A1)* B sends (1,1,B1)
A gets (1,0,B1)* A sends (1,1,A1) B gets (1,1,A1) B sends (0,1,B2)
Two scenario: (a) Normal case. (b) Abnormal case. The notation is (seq, ack, 29 packet number). An asterisk indicates where a network layer accepts a packet.
Prtcl.5. A Protocol Using Go Back N
For efficiency of the bandwidth utilization: 59 kbps satellite channel-500-msec round-trip delay. Sent 1000-bit frame. At t=0 msec-the frame has been Started and t=20 msec sent. Received t=270 msec frame fully arrived at the receiver; t=520 msec- ACK to the sender; So, sender was blocked during 500/520 or 96% of the time. 4 % of the bandwidth was used. The solution: the sender transmits up to w frames before blocking, instead of just 1 frame. The example, w should be at least 26. The sender begins sending Fr. 0 as before. Finishes sending 26 frames, at t=520 msec, the ACK for frame 0 will have just arrived. ACK arrive every 20 msec, (PIPLINING) so the sender always gets permission to continue 30 when it needs it.
Pr.5.A Protocol Using Go Back N (Cont) If the channel capacity is b bits/sec, the frame size l bits, and the round-trip propagation time R sec, the time required to transmit a single frame is l/b sec. After the last bit of data frame has been sent, there is a delay of R/2 before that bit arrives at the receiver and another delay of at least R/2 for ACK to come back, for a total delay of R. In stop-and-wait the line is busy for l/b and idle for R, giving: Line utilization = l / (l+bR).=4% 31
Pr.5. A Protocol Using Go Back N
Time interval, Time out 4 5 6 7 0 Go Back N With size window 1 1 2 3 8 2 3 4 5 6 7
0
0
1
1 Error E D D D D D
2 D
2 3
3
4
5
5
a
0 Selective repeat (NAK) 1 2
Frames discarded by DLL 5 2 6 7 8 9 10
Time 11 12 13
NAK2
10
11
1 Error
10
11
12
13
Frames buffered by DLL
Error recovery, when:
Data flow (a) receivers window size is 1 and (b) receivers window size is large; Selective Repeat
ACK flow
32
Sender:
Pr.5 .Go-Back-N
k-bit seq # in packet header window of up to N, consecutive unACKed pkts allowed
ACK(n): ACKs all pkts up to, including seq # n cumulative ACK may receive duplicate ACKs (see receiver) timer for each in-flight pkt timeout(n): retransmit pkt n and all higher seq # pkts in window 33
Prtcl.5. Selective repeat: senderreceiver windows
34
Prtcl.7. High-Level Data Link Control
High-Level Data Link Control (HDLC) subsets: (Synchronous Data Link Control (SDLC) Link Access Procedure for D Channel (LAPD) Advanced Data Communication Control Procedure (ADCCP) Link Access Procedure (LAP). These protocols are based on the same principles.
35
Pr.7. HDLC Frame Format
bit oriented; bit stuffing
Flag 8 Bits Address Control Data CRC Flag 8/16 Bits 8/16 Bits Variable Length 8/16 Bits 8 Bits
Commends Response
Master
Slave
Flag- synchronization. Address- address of the secondary station. Control- keep track of transmitted and received frames for acknowledgment and flow control. CRC- contains a checksum to ensure data integrity.
Flag- used
to signal the end of a frame, and possibly the start 36 of the next frame.
Pr.7. High-Level Data Link Control
Three kinds of control fields: The protocol uses a sliding a. Information window, with 3-bit sequence number. Up to seven b. Supervisory unacknowledged frames may be c. Unnumbered. outstanding at any instant.
Bits 1 3 1 3
P-polling data F-finished polling. (a)-nACK (reject)
(a)
0
1 0 1 1
Seq
Type Type
P/F
P/F P/F
Next
Next Modifier
(b)
(c)
(b)-RNR
(c)-Selective rejectretransmit specified
37
For ACK is used the number of the first frame not yet received (i.e.., the next frame expected).
Pr.7. High-Level Data Link Control
Different types of frames use different ACKs: ACK Type REJECT 1 Definition Used Transmission error Frame with has been detected error
Problems with the receiver shortage of buffer senders window size is half or less the 38 sequence space
Type RECEIVE Acknowledges all 2 NOT frames, but not READY including Next. Stop sending Type SELECTIE Retransmission 3 REJECT of only the frame specified.
A Network Layer in the Internet
Leased Lines to Asia
A U.S. backbone
A European backbone
IP token Ring LAN Regional network
Regional network 2 B
39
A IP Ethernet LAN
Data Link Layer in the Internet
Subnet router
Host
ATC PC
Service provider
40
Data Link Layer in the Internet
PPP Situation
Users home
PC
Internet providers office Dial-up Telephone line
Client process Using TCP/IP
modem
TCP/IP Connection Using PPP modems
Router
Routing process
A home personal computer acting as an Internet host
41
Pr.8. PPP-The Point-to-point
Protocol
PPP provides three features: A framing method that clearly determines the: end of one frame and the start of the next one, Error detection. A link control protocol for bringing lines up, testing them, negotiating options, and bringing them down again when they are no longer needed, This protocol is called LCP (Link Control Protocol). It supports synchronous and asynchronous circuits and byte-oriented and bit-oriented encodings. A way to negotiate network-layer options in a way that is independent of the network layer protocol to be used. The method chosen is to have a different NCP (Network Control Protocol) for each network layer supported.
42
Pr.8. PPPRouter
Steps
1. PC calls the providers router via a modem. 2. The routers modem has answered the phone and established a physical connection
ATC
3. PC sends to the router a series of LCP packets in the payload field of one or more PPP frames
These packets and their responses select the PPP parameters to be used. Once the parameters have been agreed upon, a series of Network Control Protocol packets are sent to configure the network layer. Typically, the PC wants to run a TCP/IP protocol stack, so it needs an IP address.
43
Difference between
PPP and HDLC
Bit-Oriented
CRC 8/16 Bits Flag 8 Bits
01111110
High-Level Data Link Frame;
Flag 8 Bits
01111110
Address Control 8/16 8/16 Bits Bits
Data Variable Length
Bytes
1 Flag 01111110 1 Address 11111111 1 1 or 2 variable Payload 2 or 4 1 Flag 01111110
Control Protocol 00000011
Checksum
PPP Frame; Byte Oriented
44
Pr.8. PPP-Protocol field
The Protocol fields job is to tell what kind of packet is in the Payload field. Codes are defined for LCP, NCP, IP, and other protocols. Protocols starting with a 0 bit are network layer protocols such as IP, IPX, OSI CLANP. Those starting with a 1 bit are used to negotiate other protocols. These include LCP and a different NCP for each network layer protocol supported. The default size of the protocol field is 2 bytes, but it can be negotiated down to 1 byte using LCP.
45
PPP-summary
PPP is a multiprotocol framing mechanism suitable for use over: Modems, HDLC,SONET, Other physical layers. It supports: Error detection, Option negotiating, Header compression. DLL converts the raw bit stream (from physical layer) into a stream of frames (for network layer). Various framing methods are used: character count, byte stuffing, and bit stuffing. Data link protocols can provide: 1. Error control to retransmit damaged or lost frames. 2.To prevent a fast sender from overrunning a slow receiver. The data link protocol also provide flow control. The sliding window mechanism is used to integrate error 46 control and flow control in a convenient way