topics in networking1 data link layer services and protocols arzad a. kherani (alam@cse.iitd.ac.in)...
Post on 11-Jan-2016
220 Views
Preview:
TRANSCRIPT
Topics in Networking 1
Data Link Layer Services and Data Link Layer Services and ProtocolsProtocols
Arzad A. Kherani(alam@cse.iitd.ac.in)
Dept. of Computer Sc. And Engg.
Indian Institute of Technology Delhi
Topics in Networking 2
OutlineOutline
Frame encoding Error detection and recovery Data Link Protocols Protocol analysis
– Performance– Verification for correctness
Topics in Networking 3
Data link servicesData link services Operates between two neighboring devices Provides a capability for higher-layer entities to send “packets”
– A packet is a sequence of bits, with well-identified “start” and “end” The packet is itself encapsulated into a “frame”, adding to it
“header” and “trailer”
Topics in Networking 4
Data link services (2)Data link services (2)
Network layer
Data link layer
Physical layer Data link protocol
Service boundary
Topics in Networking 5
Data link services (3)Data link services (3)
There is one data link for each physical link In a router, for instance:
Topics in Networking 6
Data link servicesData link services
Connection-less service– Un-acknowledged service
Useful in case of low errors, and for real-time applications
– Acknowledged service Used in wire-less networks Frames that are not acked may be re-sent
Connection-oriented service– acknowledged
Ensures delivery of frames
Topics in Networking 7
FramingFraming
Link layer packet = frame Problem: how to recognize beginning
and end of frame? Three methods
– byte counting (DDCMP)– bit stuffing (X.25 Level 2, 802.x)– byte stuffing (BISYNCH, IMP-IMP)
Topics in Networking 8
FramingFraming
Solution based on counting bits/characters
Topics in Networking 9
FramingFraming
Solution based on flags (01111110) and bit stuffing
Original bit string
Bit string, suitably bit-stuffed
Received, interpreted bit string
Topics in Networking 10
Bit Stuffing (2)Bit Stuffing (2)
Frame beginning and end marked by special
bit string ( 01111110) If 5 1's in data to be sent, sender inserts 0 If receiver sees 5 1's check next bit(s)
– if 0, remove it (stuffed bit)– if 10, end of frame marker (01111110)– if 11, error (7 1's cannot be in data)
Topics in Networking 11
FramingFraming Solution based on flag characters, byte stuffing
Special characters used for control
Topics in Networking 12
Byte Stuffing ProblemsByte Stuffing Problems
Dependence on fixed character set
Must examine every byte of data on sending
and receiving (insert / remove DLE)
Was used widely in IBM bisynch (at 9600bps)
Topics in Networking 13
Error detection and recoveryError detection and recovery
Two approaches:– error correction codes
quick, but ineffective in several cases:– temporary dislocation
– frame size is large, and error rate is high
– burst errors expensive
– error detection and recovery using re-transmission the preferred solution today
– efficient
Topics in Networking 14
Error detectionError detection
Hamming distance between pair of codeslet message of length m 2m distinct messages
with r redundant bits, codeword is of length n = m + r
hamming distance between codes x, y
= no. of bits in which x and y differ
Hamming distance for a codeconsider n dimension space, with 2m codewords
hamming distance for code (or coding scheme)
= minx, y (no. of bits in which x and y differ)
Topics in Networking 15
Hamming codesHamming codes
Hamming distance for code based on parity bit is 2 resulting capability: detect 1 error, correct 0 errors Result:
– to detect d errors, the Hamming distance must be d+1– to correct d errors, the Hamming distance must be at least
2d +1
dd
Topics in Networking 16
Hamming codes (2)Hamming codes (2) Consider 7 bit data, 4 redundancy bits, codeword is 11 bits message bits are numbered 3, 5, 6, 7, 9, 10, 11 redundancy bits are numbered 1, 2, 4, 8
check bit 1 checks error in bits 1, 3, 5, 7, 9, 11
check bit 2 checks error in bits 2, 3, 6, 7, 10, 11
check bit 4 checks error in bits 4, 5, 6, 7
check bit 8 checks error in bits 8, 9, 10, 11
or (it should be)
0 = b1 + b3 + b5 + b7 + b9 + b11
0 = b2 + b3 + b6 + b7 + b10 + b11
0 = b4 + b5 + b6 + b7
0 = b8 + b9 + b10 + b11
Topics in Networking 17
Error detection using block codesError detection using block codes Block of data is re-written as a matrix, say 4 x 8 last row is parity bits bits are transmitted row-by-row, including parity bits code is capable of detecting a burst of errors of length n
column --> 1 2 3 4 5 6 7 8
row 1 1 0 1 1 0 0 1 1
row 2 0 0 1 0 0 0 1 0
row 3 1 1 1 0 0 1 1 0
row 4 1 1 0 0 1 1 0 0
parity bits 1 0 1 1 1 0 1 1
Topics in Networking 18
Polynomial codesPolynomial codes Also known as Cyclic Redundancy Codes (CRC) Note, all arithmetic is modulo-2
x XrM(x) Xr M(x) /G(x) R(x)- T(x) = Xr M(x)-R(x)
R(x) = T(x) + E(x)
/G(x)=Yes no error
No error
0
Topics in Networking 19
Polynomial codes (2)Polynomial codes (2) Error detection capability depends upon G(x) 1 bit error R(x) = T(x) + xi
R(x)/G(x) = 0 iff E(x)/G(x) = 0
E(x)/G(x) 0 if G(x) has 2 or more terms
single errors can always be detected Similarly, two errors can always be detected if G(x) does not
divide xk + 1 Again, if G(x) is divisible by x+1 then an odd number of errors
can be detected Polynomial codes with r CRC bits will detect all bursts of length r
or less etc., etc.
Topics in Networking 20
Polynomial codes (3)Polynomial codes (3)
International, IEEE standards IEEE 802 standard
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1
it is capable of detecting bursts of length up to 32, and all odd number of errors, and even no of error with high probability
Topics in Networking 21
Error recoveryError recovery
Error detection, followed by re-transmissions, etc.
Efficient Simultaneously address problem of “flow
control”
Topics in Networking 22
Elementary data link protocolsElementary data link protocols
Broad objective of data link protocol:– Error-free, loss-free, duplication-free and in-sequence
transfer of user data packets between network entities– flow-controlled– transfer user data packets in both directions
Network entity
Data link entity
Physical layer
Network entity
Data link entity
p1, p2, p3, .. p1, p2, p3, ..
Topics in Networking 23
Data link modulesData link modules
Network entity Network entity
Data link entity
sender
receiver sender
receiverData link
entity
Physical layer entity
Physical layer entity
Full-duplex channel
Topics in Networking 24
Data link modulesData link modules We consider several protocols. But to begin with we consider
moving data in one direction, only
Network entity Network entity
Data link entity
sender receiverData link
entity
Physical layer entity
Physical layer entity
HALF-duplex channel
Topics in Networking 25
Data link protocolData link protocol
Assumptions:– errors during transmission– processing capacity at receiver end– buffer capacity at receiver end– whether the underlying physical channel is half- or
full-duplex
we will make nice assumptions to begin with, but move towards realistic assumptions later
Topics in Networking 26
Simple data link protocol: UtopiaSimple data link protocol: Utopia Assume no errors, infinite processing capacity and buffer space
at receiver end, and half-duplex channel
Note, F_i: Data link frame, containing data packet, i
Sender, A Receiver, B
F_1
F_2
F_3
F_4
Topics in Networking 27
Simple data link protocol: Utopia (2)Simple data link protocol: Utopia (2) The sender’s end
Topics in Networking 28
Simple data link protocol: Utopia (3)Simple data link protocol: Utopia (3) The receiver’s end
Topics in Networking 29
Definitions of data types/structuresDefinitions of data types/structures
Topics in Networking 30
Definition of proceduresDefinition of procedures
Topics in Networking 31
Simple data link protocol: Utopia (4)Simple data link protocol: Utopia (4)Network entity
Physical layer
Network entity
Topics in Networking 32
Flow control: problem and its solutionFlow control: problem and its solution
Flow control --> limit the rate at which a sender can send data to one which is consistent with the receiver’s ability to process incoming data
Two approaches to solving it:– rate-based: determine the minimum rate at which receiver can
process incoming data
– feedback based: send more data as when receiver can handle more data
time
Rate rcvr can handle
Acceptable rate
Topics in Networking 33
Stop and wait protocolStop and wait protocol
? Assume no errors, FINITE processing capacity, FINITE buffer space at receiver end, and half-duplex channel
Note, F_i: Data link frame, containing data packet, i
Sender, A Receiver, B
F_1
F_2
F_3
ack
ack
ack
Topics in Networking 34
Stop-n-wait protocol (2)Stop-n-wait protocol (2)
Physical layer
Network entity Network entity
Topics in Networking 35
PAR protocol for noisy channelsPAR protocol for noisy channels
PAR protocol addresses:– flow control– noisy channel
based on “positive acks” and re-transmissions
Topics in Networking 36
PAR protocolPAR protocol
Sender, A Receiver, B
F_1
F_2
F_3
ack
ack
ack
Timer runs out
Timer runs out
F_2
F_3
ack
Topics in Networking 37
PAR protocolPAR protocol
Sender, A Receiver, B
F_0
F_1
F_0
ack
ack
ack
Timer runs out
Timer runs out
F_1
F_0
ack
Data Frames are suitably numbered 0, 1, 0, 1, … Acks are not numbered
Topics in Networking 38
PAR protocol (sender)PAR protocol (sender)
Topics in Networking 39
PAR protocol (receiver)PAR protocol (receiver)
Topics in Networking 40
PAR protocolPAR protocol
Physical layer
Network entity Network entity
Topics in Networking 41
PAR protocolPAR protocol If the underlying physical layer is full-duplex, then the protocol fails
Sender, A Receiver, B
F_0
F_1
F_0
ack
ack
ack
Timer runs out
F_1
F_0
ack
Pkt 1
Pkt 2
Pkt 3
Pkt 4
Pkt 1
Pkt 4
Topics in Networking 42
Alternating bit protocolAlternating bit protocol PAR protocol, with numbered acks
Sender, A Receiver, B
F_0
F_1
F_0
Ack_0
Ack_1
Ack_0
Timer runs out
Timer runs out
F_1
F_0
Ack_0
Pkt 1
Pkt 2
Pkt 3
Pkt 1
Pkt 2
Pkt 3
Topics in Networking 43
Alternating bit protocolAlternating bit protocol
Topics in Networking 44
Alternating bit protocolAlternating bit protocol
Topics in Networking 45
Alternating bit protocolAlternating bit protocol Two possibilities:
Topics in Networking 46
Alternating bit protocolAlternating bit protocol Use link A B to carry data from A to B, and acks from B to A
and use link B A to carry data from B to A, and acks from A to B
Piggyback acks onto data frames, if one has data to send Else, just an ack Redundant acks are OK An ack takes the form “I am waiting to receive data frame no. X” Introduce a field for frame type, “data frame” or “ack frame”
Topics in Networking 47
Performance of PAR protocolPerformance of PAR protocol Link utilization
Utilization = L / (L+b*R), where
L = size of data frame
b = data rate
R is round-trip delay For a satellite channel, let L = 10K bits, b = 100 Kbps, R=500ms
Utilization is 10K / (10K + 50K) = 1/6 For a fibre-optic channel, let L = 10K bits, b = 100 Mbps, R = 1ms
Utilization is 10K / (10K + 100K) = 1/11
Delay=BW product is the key Let sender send many data frames before it receives an ack
Topics in Networking 48
PipeliningPipelining
Problems arise when one or more packets are lost
Topics in Networking 49
Pipelining, with error recoveryPipelining, with error recovery Two approaches to recover from loss of data frame:
– go-back n– selective repeat
Topics in Networking 50
Pipelining, with error recoveryPipelining, with error recovery Go-back n scheme:
Topics in Networking 51
Pipelining, with error recoveryPipelining, with error recovery Selective repeat
Topics in Networking 52
Sliding window protocolsSliding window protocols
Each data frame is sequentially numbered 0 through 2n-1
Sender maintains “transmit window” indicating:– which data frames can be sent– which data frames have been sent
receiver maintains a “Receive window”– which data frames can it receive– which data frames have been received
Topics in Networking 53
Sliding window protocolsSliding window protocols Transmit window:
– size = 4, waiting for acks for data frames 1, 2, 3, frame 4 not sent
Receive window:– size = 3, ack for frame 1 sent, data frame 3 received, waiting for
frames 2 and 4
0 1 2 4 53 76
0 1 2 4 53 76
Topics in Networking 54
Sliding window protocolsSliding window protocols
Assuming sequence numbering 0 .. 7– Go back n protocol:
Transmit window is size, say 7 receive window is size 1
– selective repeat protocol: transmit window is size 4 receive window is size 4
Topics in Networking 55
Go back n protocol: declarationsGo back n protocol: declarations
Topics in Networking 56
Go back n protocol: more declrationsGo back n protocol: more declrations
Topics in Networking 57
Go back n protocol: initializationsGo back n protocol: initializations
Topics in Networking 58
Go back n protocol (loop)Go back n protocol (loop)
Topics in Networking 59
Go back n protocol: event processingGo back n protocol: event processing
Topics in Networking 60
Go back n protocol: event processingGo back n protocol: event processing
Topics in Networking 61
Go back n protocol: event processingGo back n protocol: event processing
Topics in Networking 62
Go back n protocolGo back n protocol
Buffer requirements– at sender’s end: N-1, where seq no is 0 .. N-1– at receiver’s end: 1
Go-back n works well when error are infrequent– Because several frames need to be re-transmitted
when an error occurs
Topics in Networking 63
Select Repeat ProtocolSelect Repeat Protocol
Sequence numbering: 0 through n-1 Transmit window size is n/2 Receive window size is n/2
Receiver buffers each correctly recd data frame, but does not deliver it to the layer 3
Receiver sends a NACK frame when it suspects loss of a data frame– But makes sure that a NACK is not repeated
Topics in Networking 64
Select Repeat ProtocolSelect Repeat Protocol
Topics in Networking 65
Select Repeat ProtocolSelect Repeat Protocol
Topics in Networking 66
Select Repeat ProtocolSelect Repeat Protocol
Topics in Networking 67
Select Repeat ProtocolSelect Repeat Protocol
Topics in Networking 68
Protocol AnalysisProtocol Analysis
Performance Verification
Topics in Networking 69
Protocol PerformanceProtocol Performance
Performance– Delay– Efficient use of available bandwidth
Topics in Networking 70
Channel utilizationChannel utilization It can be shown for “stop-and-wait” protocol:
U = F1 * F2 * F3where
F1 = D/ (H+D)F2 = (1-E)(H+D) * (1-E)D F3 = (H+D) / (H+D+CT)
Above,D, H are resp. length of data and header (or Ack)E is bit-error-rate (BER)C is channel capacityT is timer interval
Topics in Networking 71
Channel utilizationChannel utilization
Channel utilization in “stop-and-wait” protocol is maximum when
Doptimum = (H+CT)/E
Topics in Networking 72
Channel utilizationChannel utilization
Channel utilization in “sliding-window” protocols is complex. Consider:– No error, large Tx window– No error, small Tx window– With possibility of errors, large Tx window– With possibility of errors, small Tx window
Topics in Networking 73
Channel utilizationChannel utilization
What is a large enough window size?
W > 1 + 2 C I / (D+H)where I = propagation delay + interrupt handling time
Topics in Networking 74
Channel utilizationChannel utilization
Channel utilization in “sliding-window” when there is no error, large Tx window
U = D / (D+H)
Channel utilization in “sliding-window” when there is no error, but small Tx window
U = D/(D+H) * W/(1 + 2 C I / (D+H))
Topics in Networking 75
Channel utilizationChannel utilization
Channel utilization in “sliding-window” when there may be errors, but Tx window is small U = D/(D+H) * (1-L)
where L is the probability that a frame or an ack to it is lost
Channel utilization in “sliding-window” when there may be errors, but Tx window is small U = D/(D+H) * (1-L) * W/(1 + 2 C I / (D+H))
Topics in Networking 76
Channel utilizationChannel utilization
C*I is also the “delay-BW product”, And CI/F is the delay-BW product in terms of
no of frames
Window size
Channel util. Increasing delay-BW
prod.
Topics in Networking 77
Protocol VerificationProtocol Verification
Verification– Formal specification– Verification of protocol design– Conformance of an implementation to a given
design
Topics in Networking 78
Protocol VerificationProtocol Verification
Two parts:– protocol modeling– verification
Look upon the communicating entities as ONE finite state machine
Use two different, although equivalent, ways to model the machines:– State transition diagrams– Petrinet based model
Topics in Networking 79
Protocol verification: model using state Protocol verification: model using state transitionstransitions
Consider an example: stop-n-wait protocol– Consider the sender-receiver pair, together with
channels as ONE single system– Focus on significant states, not intermediate states
encountered while executing commands or program instructions
Topics in Networking 80
Protocol Verification: model using Protocol Verification: model using state transitionsstate transitions
Stop-n-wait protocol components, and their states– Sender: “sending” 0 or 1– Receiver: receiving 0 or 1– Half-duplex channel: carrying frame 0 or 1, or Ack, or “-”– Acks are not numbered
Total no of states is 16, of which 6 are unreachable– These are states that correspond to sender and receiver waiting for
next event to occur Further,
– Consider initial state– Any enabled transition may take place next– Transitions take place at any time
Topics in Networking 81
Protocol Verification: model using Protocol Verification: model using state transitionsstate transitions
Topics in Networking 82
Protocol VerificationProtocol Verification
Can a protocol drop a user packet?– Protocol never delivers packets in two data
frames, numbered 0, without delivering packet contained in a data frame numbered 1
– Or, machine does not make two transitions numbered “1”, without an intervening transition “3”
– There does not a path with two edges corresponding to “transition 1” without an intervening edge “transition 3”
Topics in Networking 83
Protocol VerificationProtocol Verification
Can a protocol drop a sequence of two user packets?– Or, sender should not state 1 twice while receiver
does not change its state in between
Topics in Networking 84
Protocol modeling using PetrinetsProtocol modeling using Petrinets
A Petrinet, with– places: set of possible states– tokens: define the current state– transitions, input and output arcs– firing of transitions:
conditions, and resulting re-distribution of tokens
eating
sleeping
wake-upburp
eating
sleeping
wake-upburp
Topics in Networking 85
Producer/consumer modelProducer/consumer model
producing
waiting1
done1
consuming
waiting2
done2
Model of a producer- consumer system with one buffer, using Petrinet
Topics in Networking 86
Stop-n-wait Stop-n-wait protocol modelprotocol model
Topics in Networking 87
Stop-n-wait Stop-n-wait protocol modelprotocol model
Petrinet is formally described by its transitions:1: BD --> AC
2: A --> A
3: AD --> BE
4: B --> B
5: C -->
6: D -->
7: E -->
8: CF --> DF
9: EG --> DG
10: CG --> DF
11: EF --> DG
Topics in Networking 88
Stop-n-wait Stop-n-wait protocol modelprotocol model
Using the formal specs one can formally argue about properties that are (are not) satisfied:
– e.g. consider all possible sequences of transitions. Then are there two “10” transitions without an intervening transition “11”?
– How would ensure that two consecutive packets are not lost
Topics in Networking 89
Example Data Link ProtocolsExample Data Link Protocols
HDLC (bit-oriented, high-level data link control)– Connection establishment, release, data transfer, and even connection reset
Topics in Networking 90
Example Data Link ProtocolsExample Data Link Protocols PPP (point-to-point protocol)
– Mainly used router-to-router and dial-up connections– Connection establishment and release a data link, data transfer, and even connection reset– Help establish network layer (IP) addresses
Over LANs, the protocol is typically Ethernet
Topics in Networking 91
ThanksThanks
top related