CompSci 356: Computer Network Architectures Lecture 4: Link layer: Encoding,

advertisement
CompSci 356: Computer Network
Architectures
Lecture 4: Link layer: Encoding,
Framing, and Error Detection
Xiaowei Yang
xwy@cs.duke.edu
Overview
• Review
– Physical links
– Link/network performance metrics
• Bandwidth / throughput
• Latency / delay
• Bandwidth * delay product
• Link layer functions
–
–
–
–
Encoding
Framing
Error detection
Reliable transmission (if have time)
The simplest network is one link plus
two nodes
Hi Alice…
?
Recap: Put bits on the wire
• Each node (e.g. a PC) connects to a • At one end, a network adaptor encodes
and modulates a bit into signals on a
network via a network adaptor.
physical link.
• The adaptor delivers data between a
node’s memory and the network.
• A device driver is the program
• At the other end, a network adaptor reads
running inside the node that
the signals on a physical link and
manages the above task.
converts it back to a bit.
Different types of physical links
• Wired links
– Copper
– Fiber optics
• Wireless links
– Wifi, WiMax, Bluetooth, ZigBee, …
Commonly Used Physical Links
• Different links have different transmission ranges
– Signal attenuation
• Cables
– Connect computers in the same building
• Leased lines
– Lease a dedicated line to connect far-away nodes from
telephone companies
Cables
• CAT-5: twisted pair
• Coaxial: thick and thin
• Fiber
CAT-5
10BASE2 cable, thin-net
200m
10Base4, thick-net
500m
Leased lines
• Tx series speed: multiple of 64Kpbs
– Copper-based transmission
• DS-1 (T1): 1,544, 24*64kpbs
• DS-2 (T2): 6,312, 96*64kps
• DS-3 (T3): 44,736, 672*64kps
• OC-N series speed: multiple of OC-1
– Optical fiber based transmission
• OC-1: 51.840 Mbps
• OC-3: 155.250 Mbps
• OC-12: 622.080 Mbps
Last mile links
• Wired links
– POTS: 28.8-56Kbps (Plain old telephone service)
– ISDN: 64-128Kbps (Integrated Services Digital
Network)
– xDSL: 128Kbps-100Mbps (over telephone lines)
• Digital Subscriber Line
– CATV: 1-40Mpbs (shared, over TV cables)
• Wireless links
– Wifi, WiMax, Bluetooth, …
xDSL wiring
1.5-8.4Mpbs
16-640Kpbs
Central Office
Subscriber premises
Local loop
Runs on existing copper
18,000 feet at 1.544Mbps
9,000 at 8.448 Mbps
13-55Mpbs
OC links
Central office
ADSL
Nbrhood optical
Network unit
Subscriber
premises
1000-4500 feet of copper
Must install VDSL
VDSL (Very high)
transmission hardware
Wireless links
• Wireless links transmit electromagnetic signals
through space
– Used also by cellular networks, TV networks, satellite
networks etc.
• Shared media
– Divided by frequency and space
• FCC determines who can use a spectrum in a
geographic area, ie, “licensing”
– Auction is used to determine the allocation
– Expensive to become a cellular carrier
• Unlicensed spectrum
– WiFi, Bluetooth, Infrared
Link Performance Metrics
• Propagation delay
– How long it takes for one bit to travel from one end of a link to the other
end
• Bandwidth
– How many bits a link can transmit in a unit time
– Each bit is a pulse on the wire
• Must have certain width for the receiver to decode it
Latency and Throughput
• Latency of a message = Propagation +
Transmit + Queue
• Propagation = Distance/SpeedOfWave
• Transmit = Size/Bandwidth
• Throughput = Size / Latency
Example
• 1Mbps, 100ms, 1MB data
– Latency = 1MB/1Mbps + 100ms = 8.1s
– Throughput = 1MB/8.1s ≈ 1Mbps
• 1Gbps, 100ms, 1MB data
– Latency = 1MB/1Gbps + 100ms = 108ms
– Throughput = 1MB/108ms = 74.1Mbps < 1Gbps
• Why?
Delay × Bandwidth Product
• Measures the volume of a pipe
– The maximum number of bits can be in transit
through the pipe at any given instant
• To achieve high throughput, one should keep
the pipe full
High speed versus low speed links
Link-layer functions
• Most functions are completed by adapters
– Encoding
– Framing
– Error detection
– Reliable transmission (if have time)
Overview
• Review
– Physical links
– Link/network performance metrics
• Bandwidth / throughput
• Latency / delay
• Bandwidth * delay product
• Link layer functions
–
–
–
–
Encoding
Framing
Error detection
Reliable transmission (if have time)
Encoding
• Encoding is the process to turn binary data (bits, 0s
and 1s) into physical signals sent over a physical link
• Done by a piece of hardware on a network adaptor
• High and low signals, ignore modulation
• Simplest one: 1 to high, 0 to low
Non-return to zero
• 1 to high, 0 to low
• Not good for decoding
– Baseline wander
• Consecutive 1s or 0s cause the average signal level to drift
– Receiver uses it to distinguish high/low signals
– Clock recovery
• Receiver uses transition to 1s or 0s as clock boundaries to
synchronize clock
Solution 1: Nonreturn to zero inverted
(NRZI)
• A transition from current signal encodes 1
• No transition encodes 0
• Does it solve all problems?
– Not for consecutive 0s
NRZI
Solution 2: Manchester encoding
• Clock XOR NRZ
– 1: high  low; 0: low  high
– Drawback: doubles the rate at which signals are sent
• Baud rate: signal change rate
• Bit rate = half of baud rate. 50% efficient
Final solution: 4B/5B
• Key idea: insert extra bits to break up long sequences of
0s or 1s
• 4-bit of data are encoded in a 5-bit code word
– 16 data symbols, 32 code words  choose the good codes that
do not have long sequence of 0s
– At most one leading 0, two trailing 0s
– For every pair of codes, no more than three consecutive 0s
• 5-bit codes are sent using NRZI
4-bit data
symbol
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
5-bit code
11110
01001
10100
10101
01010
01011
01110
01111
10010
10011
4-bit data
symbol
1010
1011
1100
1101
1110
1111
5-bit code
10110
10111
11010
11011
11100
11101
• Exercise:
– 00101101
• What’s the high/low
signal sequence?
Overview
• Link layer functions
– Encoding
– Framing
– Error detection
Framing
Block of data
• Now we’ve seen how to transmit bitstreams
• But nodes send blocks of data (frames)
– A’s memory  adaptor  adaptor  B’s memory
• An adaptor must determine the boundary of frames
Variety of Framing Protocols
• Framing: determining where the frame begins and
ends
– Why is it an important task of an adaptor?
• Frames may belong to different apps
• Need to decide when to deliver them
• Design choices
– Byte-oriented protocols: the smallest unit of data is a byte
• Sentinel approach
• Byte-counting approach
– Bit-oriented protocols
– Clock-based framing
Byte-oriented protocols: the sentinel
approach
•Transmitted from the leftmost bit
•Binary Synchronous Communication (BISYNC) by IBM in late 60s
• View each frame as a collection of bytes (characters)
• Use special characters SYN, ETX to detect frame start and end
• What if special characters appear in a data stream?
– Insert data link escape (DLE) characters
– Character stuffing
Point-to-Point Protocol (PPP)
• A data link protocol used to establish a direction connection between two
nodes
– Internet dialup access
• More recent, RFC 1661, 1994
• Flag: 01111110; Address & Control: default
• Protocol: demultiplexing
– IP, Link Control Protocol, …,
• Checksum: two or four bytes
• Link Control Protocol
– Set up and terminate the link
– Negotiate other parameters such as maximum receive unit
Byte-oriented protocols: the byte
counting approach
•DDCMP by DECNET
• Use a byte count field to detect the end of a frame.
• The corruption of the count field may cause back-toback frame losses
– A similar problem may occur in the sentinel approach.
• Corrupted ETX
Bit-oriented protocols
•High-level data link control (HDLC) protocol
•
•
•
•
View a frame as a collection of bits
01111110 is the beginning and ending sequence
The sequence is also transmitted when the links are idle
Bit-stuffing for data
– Sender: inserts a 0 after every five consecutive 1’s
– Receiver: after five consecutive 1’s,
• If the next bit is 0, removes it
• If the next bit is 1
– If the next bit is 0 (i.e. the last 8 bits are 01111110), then frame ends
– Else error; discard frame, wait for next 01111110 to receive
• Frames are of variable length, dependent on the data
– Mainly because of stuffing
An exercise
• Suppose a receiver receives the following bit
sequence
– 011010111110101001111111011001111110
• What’s the resulting frame after removing
stuffed bits? Indicate any error.
Clock-based Framing
•STS-1/OC-1 frame
•51.840Mbps
•The slowest SONET link
• Synchronous Optical Network (SONET)
– A complex protocol
• Each frame is 125 us long, 810bytes = 125 us * 51.84Mbps
– 9 rows of 90 bytes each
– First 3 bytes are overhead
– First two bytes of each frame has a special pattern marking the start of a frame
• When the special pattern turns up in the right place enough times
(every 810B), a receive concludes it’s in sync.
Synchronized timeslots as placeholder
• Real frame data may float inside
Overview
• Link layer functions
– Encoding
– Framing
– Error detection
Error detection
• Error detection code adds redundant
information to detect errors
– Analogy: sending two copies of the same message
– Parity
– Checksum
– CRC
• Error correcting code: more sophisticated code
that can correct errors
Two-dimensional parity
A sample frame of six bytes
• Even parity bit
– Make an even number of 1s in each row and column
• Detect all 1,2,3-bit errors, and most 4-bit errors
Internet checksum algorithm
• Basic idea
– Add all the words transmitted and then send the sum.
– Receiver does the same computation and compares the
sums
• IP checksum
– Adding 16-bit short integers using 1’s complement
arithmetic
– Take 1’s complement of the result
• Used by lab 1 and lab 2 to detect bit errors
1’s complement
• -x is each bit of x inverted
• If there is a carry bit, add 1 to the sum
• Example: 4-bit integer
– -3: 1100 (invert of 0011)
– -4: 1011 (invert of 0100)
– -3 + -4 = 0111 + 1 = 1000 (invert of 0111 (8))
IP checksum implementation
• uint16_t cksum (const void *_data, int len) {
const uint8_t *data = _data;
uint32_t sum;
for (sum = 0;len >= 2; data += 2, len -= 2)
sum += data[0] << 8 | data[1];
if (len > 0)
sum += data[0] << 8;
while (sum > 0xffff)
sum = (sum >> 16) + (sum & 0xffff);
sum = htons (~sum);
return sum ? sum : 0xffff;
}
Remarks
• Can detect 1 bit error
• But not all two-bits
– One increases the sum, and one decreases it
• Efficient for software implementation
– Needs to be done for every packet inside a router!
Cyclic Redundancy Check
• A branch of finite fields
• High-level idea:
– Represent an n+1-bit message with an n degree polynomial
M(x)
– Divide the polynomial by a k-bit divisor C(x)
– k-bit CRC: remainder after divided by a degree-k divisor
polynomial
– Send Message + CRC that is dividable by C(x)
Polynomial arithmetic modulo 2
– B(x) can be divided by C(x) if B(x) has higher
degree
– B(x) can be divided once by C(x) if of same degree
– Remainder of B(x)/C(x) = B(x) – C(x)
– Substraction is done by XOR each pair of
matching coefficients
CRC algorithm
1. Multiply M(x) by x^k. Add k zeros to
Message. Call it T(x)
2. Divide T(x) by C(x) and find the remainder
3. Send P(x) = T(x) – remainder
•
•
Append remainder to T(x)
P(x) dividable by C(x)
An example
• 8-bit msg
– 10011010
• Divisor (3bit CRC)
– 1101
How to choose a divisor
• Complicated
• Intuition: unlikely to be divided evenly by an
error
• Corrupted msg is P(x) + E(x)
• If E(x) is single bit, then E(x) = xi
• If C(x) has the first and last term nonzero, then
detects all single bit errors
• Find C(x) by looking it up in a book
Hardware implementation
• Very efficient: XOR operations
• 0 to k-1 registers (k-bit shift registers)
• If nth (n < k) term is not zero, places an XOR
gate
• x3 + x2 + 1
Summary
• Link performance metrics reviewed
• Link layer functions
– Encoding
– Framing
– Error detection
• Parity, Checksum, CRC
• Next lecture
– Reliable transmission
– Multi-access link
Download