1 CHAPTER 2 HARDWARE BUILDING BLOCK ENCODING FRAMING ERROR DETECTION
2 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
3 HARDWARE BUILDING BLOCK Link : Analog and Digital
4 Link Digital
5 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
6 Link …cont’d MediaBandwidthDistance Cat 5 UTP10 – 100 Mbps100 m 50-ohm coax (ThinNet)10 – 100 Mbps200 m 75-ohm coax (ThickNet)10 – 100 Mbps500 m Multimode fiber100 Mbps2 km Single-mode fiber100 – 2400 Mbps40 km Sometimes you install your own:
7 Link …cont’d Sometimes leased from the phone company: ServicesBandwidth ISDN64 Kbps T11,544 Mbps T344,763 Mbps STS-151,840 Mbps STS-3155,251 Mbps STS-12622,080 Mbps STS-241, Gbps STS-482, Gbps
8 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
9 Encoding bits
10 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
11 Encoding 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
12 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
13 Encoding (cont’d)
14 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.
15
16 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
17 Framing B. Byte-Oriented Protocol Sentinel approach : a) BISYNC b)IMP-IMP
18 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
19 Byte-Oriented Protocol Byte Counting Approach : DDCMP –Problem: Count field is corrupted (framing error). –Solution: Catch when CRC fails
20 Framing C. Bit-Oriented Protocol HDLC: High-Level Data Link Control (also SDLC and PPP) Delineate frame with a special bit-sequence:
21 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
22 Framing D. Clock-based Framing SONET: Synchronous Optical Network ITU standard for transmission over fiber STS-1 (51.84 Mbps)
23 Clock-based Framing Byte-interleaved multiplexing Each frame is 125ms long.
Error Detection CRC Internet Checksum Parity 24
Error Detection Original message : C(x) = x 3 + x message to be sent? 25
26 Cyclic Redundancy Check Sender: multiply M(x) by x k ; example: x 10 + x 7 + x 6 + x 4 ( ); divide result by C(x) (1101); Send = , since this must be exactly divisible by C(x); Want to ensure that C(x) does not divide evenly into polynomial E(x).
27 Cyclic Redundancy Check
Message to be sent is : Receiver : Divide by
29 Cyclic Redundancy Check Detection : All single-bit errors, as long as the x k and x 0 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.
30 Cyclic Redundancy Check Common polynomials for C(x):
31 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
32 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
Exercise Assuming a framing protocol that uses bit stuffing, show the bit sequence transmitted over the link when the frame contains the following bit sequence:
Exercise Suppose we want to transmit the message and protect it from errors using the CRC polynomial x –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? 34
Exercise A series of 12 bit message blocks ( ) is to be transmitted across a data link using a CRC for error detection. A generator polynomial of C(x)=x 4 +x 3 +1 is to be used. Find the final message that will be transmitted over the link! 35
Exercise Fill the empty space using 2 dimensional odd-parity!