21
Networking and Communication Greg Drysdale Oct. 28, 2008 CS147 Section 3

Networking and Communication Greg Drysdale Oct. 28, 2008 CS147 Section 3

Embed Size (px)

Citation preview

Networking and Communication

Greg DrysdaleOct. 28, 2008

CS147 Section 3

Topics Covered

Modulation Schemes

Transmission Media

Error Detection and Correction

Some Networking Terms

LAN (Local Area Network) – A network of computers within close physical proximity.

WAN (Wide Area Network) – A network of computers connected over large distances (eg. The Internet)

Modem (MOdulator/DEModulator) – A device used to communicate over the various transmission media.

Modulation Schemes

Modulation is the process of encoding signals from one type to another to enable the use of the transmission medium. (eg. From audible sound into electrical signals like the telephone)

Modulation Schemes refer to the various types of modulation, each of which have their own pros and cons.

Amplitude Modulation (AM)

Common Use: AM Radio Waves

Information is represented by the amplitude of the signal, so 1's and 0's are encoded by the signal strength.

Pro: Simple and inexpensive to implement.

Con: Anything which affects the signal strength can alter the signal. (eg. Lightning, close proximity to electrical lines, and bridges)

Frequency Modulation (FM)

Common Use: FM Radio Waves

Information is represented by the frequency of the signal

Pro: Mostly immune to amplification issues, such as bridges.

Phase Modulation (PM)

Common Use: Modems

Capable of transmitting 2 bits at once by splitting the signal into four phases (90 degrees each)

Pulse Code Modulation (PCM)

An analog signal is converted into binary by sampling at twice the highest frequency of the original signal to produce values at discrete intervals.

Pro: With digital repeaters at regular intervals the effective bandwidth can be quite large, and the signal may be perfectly restored.

Transmission Media

Two-Wire Open Lines (19.2Kbps / 50m)

lines emit EM radiation, and also pick up a lot of noise which may vary for each line, resulting in distortions in the signal, and the low capacity.

Twisted Pair Lines (1Mbps / 100m)

less vulnerable than two-wire lines to external noise, as both wires are equally affected.

Coaxial Cable (10Mbps / 100s of meters)

the cable is shielded from external noise and also from losses due to EM radiation.

Transmission Media Optical Fiber (several Gbps / 10s of kilometers)

expensive hardware is required on both ends, but transmission is very reliable and fast.

Satellites

Orbit levels affect delay time, satellites in geosynchronous orbit has delays up to 250ms.

Terrestrial Microwave

bounces signals off the lower atmosphere

Radio (cellular) (2MB/s / ~10km)

Uses a restricted band of frequencies for communicating with mobile devices.

Error Detection and Correction

Transmission Media are not always perfect as they are subject to noise introduced by the environment, such as power fluctuations and magnetic fields.

This noise may cause faults, or errors, which flip bits from 0 to 1, or 1 to 0.

So how do we fix these faults?

Terms Codeword – The bitstring of data which will be

transmitted. (eg. an ASCII Character)

Parity Bit – a single extra bit added to a codeword to allow for error detection.

Check Bit (Redundant Bit) – additional bits added to a codeword to allow for recovery of bit errors.

Even/Odd Parity – for any given set of bits for which a parity bit is to check, the total of all bits including the parity bit, will be an even or odd number (respectively).

Additional Terms Bit Error Rate (BER) – the probability that a

given bit is incorrect. (eg. Fiber Optic BER is 1 in 10¹² bits)

Single-Error-Correcting (SEC) – combination of a codeword and redundant bits capable of correctly a single errant bit.

Double-Error-Detection (DED) – codes which may detect up to two errors. SEC codes are also DED codes, and are sometimes called SECDED.

Hamming Code

Check bits are placed in the power of two bit positions and are responsible for checking specific bits.

Hamming Distance – the number of bits which must be changed in order to convert one string into another.

(eg. 0000 to 0100 – the hamming distance is 1)

Hamming Code

Here is a table which shows which bits each of the check bits is responsible for.

Each check bit has a ”step” pattern based on which bit it is. (eg. Check bit C2 checks two bits, then skips two, etc, starting from its own location)

Hamming Code

Here is a sample Hamming Code for the ascii character a, using even parity.

Hamming code is a type of horizontal or Longitudinal Redundancy Checking (LRC) because the width of the codeword is increased.

Vertical Redundancy Checking

Vertical Redundancy Checking (VRC) is used on a group of codewords by using a Checksum to store a parity bit for each column.

Used alone, this is only good for detecting errors, not correcting them, so it will often be combined with LRC.

Cyclic Redundancy Checking

Cyclic Redundancy Checking (CRC) uses polynomial codes to create a Frame-Check Sequence which is then appended to the Frame. Error Checking involves dividing the frame by the polynomial code used to create the frame.

Frame – a block of data to be transmitted or stored.

Frame-Check Sequence (FCS) – also known as the CRC Digits, the information appended to a frame to allow for error checking.

CRC Process

Start with a k-bit message to be transmitted: M(x)

Append n zeros to M(x), where n is the degree of the generator polynomial G(x). (k > n)

The extended M(x) is divided by G(x) using modulo-2 arithmetic. (discards and carries are discarded – same as bit-by-bit XOR)

The remainder R(x) is no more than n bits wide, and forms the CRC Digits or Frame-Check Sequence for M(x).

Transmit (or store) M(x) + R(x)

CRC Process

G(x) = x^4 + x + 1

CRC Error Detection

Start with a frame T(x), which is M(x) + R(x) which was generated before.

Divide T(x) by the same G(x) used in the generation of T(x).

If there is a non-zero remainder, an error has occurred.

CRC is good for catching Burst Errors, large consecutive errors, and should catch any error which is not a factor of G(x).