CHAPTER 2 HARDWARE BUILDING BLOCK ENCODING FRAMING ERROR DETECTION
HARDWARE BUILDING BLOCK Node: Assume general-purpose (programmable) computers; e.g., workstations. Sometimes replaced with special-purpose hardware Finite memory Connects to network via a network adaptor Fast processor, slow memory
HARDWARE BUILDING BLOCK Link : Analog and Digital
Link Digital
Communication Modes Simplex : only 1 way transmission, sender and receiver can not transmit data at the same time Half duplex : 2 way transmission, but sender and receiver can not transmit data at the same time. If sender wants to transmit data then only sender’s path is active Full duplex : 2 way transmission, both sender and receiver can transmit data at the same time
Link …cont’d Sometimes you install your own: Media Bandwidth Distance Cat 5 UTP 10 – 100 Mbps 100 m 50-ohm coax (ThinNet) 200 m 75-ohm coax (ThickNet) 500 m Multimode fiber 100 Mbps 2 km Single-mode fiber 100 – 2400 Mbps 40 km
Link …cont’d Sometimes leased from the phone company: Services Bandwidth ISDN 64 Kbps T1 1,544 Mbps T3 44,763 Mbps STS-1 51,840 Mbps STS-3 155,251 Mbps STS-12 622,080 Mbps STS-24 1,244160 Gbps STS-48 2,488320 Gbps
Encoding A. Overview Signals propagate over a physical medium. Digital signals Analog signals Data can be either digital or analog; we're interested in digital data. Problem: Encode the binary data that the source node wants to send to the destination node into the signal that propagates over to the destination node
Encoding bits
Encoding NRZ (Non-Return to Zero) Problem: Consecutive 1s or 0s Low signal (0) may be interpretted as no signal High signal (1) leads to baseline wander Unable to recover clock
Encoding Make a transition from the current signal to encode a one NRZI (Non-Return to Zero Inverted) Make a transition from the current signal to encode a one stay at the current signal to encode a zero solves the problem of consecutive ones. But doesn’t solve the problem of consecutive zeros
Encoding Manchester Merging the clock with the signal by transmitting the exclusive-OR of the NRZ-encoded data and the clock bit 1 encoded as high-to-low transition bit 0 encoded as low-to-high transition bit rate is half of baud rate, so the encoding considered only 50 % efficient
Encoding (cont’d)
Encoding 4B/5B Idea: Every 4 bits of data is encoded in a 5-bit code, with the 5-bit codes selected to have no more than one leading 0 and no more than two trailing 0 (i.e., never get more than three consecutive 0s). Resulting 5-bit codes are then transmitted using the NRZI encoding. Achieves 80% efficiency.
Exercise 1. Show the 4B/5B encoding, and the resulting NRZI signal for the following bit sequence : 101 0101 0000 0011
Framing A. Overview Problem: Breaking sequence of bits into a frame Must determine first and last bit of the frame Typically implemented by network adaptor Adaptor fetches (deposits) frames out of (into) host memory
Framing B. Byte-Oriented Protocol Sentinel approach : a) BISYNC b)IMP-IMP
Byte-Oriented Protocol Problem: ETX character might appear in the data portion of the frame. Solution: escape the ETX character with a DLE character in BISYNC escape the DLE character with a DLE character in IMP-IMP
Byte-Oriented Protocol Byte Counting Approach : DDCMP Problem: Count field is corrupted (framing error). Solution: Catch when CRC fails
Framing C. Bit-Oriented Protocol HDLC: High-Level Data Link Control (also SDLC and PPP) Delineate frame with a special bit-sequence: 01111110
Bit-Oriented Protocol Bit Stuffing Sender: any time five consecutive 1s have been transmitted from the body of the message, insert a 0. Receiver: should five consecutive 1s arrive, look at next bit(s): if next bit is a 0: remove it if next bits are 10: end-of-frame marker if next bits are 11: error
Framing D. Clock-based Framing SONET: Synchronous Optical Network ITU standard for transmission over fiber STS-1 (51.84 Mbps) Each frame is 125ms long.
Exercise Suppose the following sequence of bits arrives over a link: 11010 11111 01011 11100 10111 11011 Show the resulting frame after any stuffed bits have been removed. Indicate any errors that might have been introduced into the frame
Error Control Error detection Error correction
Error Detection Original message : 10011010 C(x) = x3+ x2 + 1 message to be sent?
Cyclic Redundancy Check Sender: multiply M(x) by xk; example: x10 + x7 + x6 + x4 (10011010000); divide result by C(x) (1101); Send 10011010000 - 101 = 10011010101, since this must be exactly divisible by C(x); Want to ensure that C(x) does not divide evenly into polynomial E(x).
Cyclic Redundancy Check
Cyclic Redundancy Check Message to be sent is : 10011010101 Receiver : Divide 10011010101 by 1101
Cyclic Redundancy Check Detection : All single-bit errors, as long as the xk and x0 terms have non-zero coefficients. All double-bit errors, as long as C(x) has a factor with at least three terms. Any odd number of errors, as long as C(x) contains the factor (x + 1). Any “burst” error (i.e sequence of consecutive errored bits) for which the length of the burst is less than k bits. Most burst errors of larger than k bits can also be detected.
Cyclic Redundancy Check Common polynomials for C(x):
Exercise Suppose we want to transmit the message 11001001 and protect it from errors using the CRC polynomial x3 + 1. Use the polynomial long division to determine the message that should be transmitted Suppose the leftmost bit of the message is inverted due to noise on the transmission link. What is the result of the receiver’s CRC calculation? How does the receiver know that an error has occurred?
Error Detection B. Two-Dimensional Parity Idea : adds bit 1 to data for balancing the total sum of bit 1 Odd Parity : total sum of bit 1 of (data + parity) is odd Even Parity : total sum of bit 1 of (data + parity) is even
Error Detection C. Internet Checksum Idea : sum (ones complement) all the words which transmitted and send the summation result to destination node The summation result called checksum The destination node has to sum the received data, compares the result with checksum value sent by source node If the result doesn’t match, it means that the data has error (include checksum) Disadvantage : can’t detect miss position bits