Post on 21-Dec-2015
transcript
The Layers of a NetworkThe Layers of a Networkand and
Error CorrectionError Correction
Wade Trappe
Lecture OverviewLecture Overview
Layers– Components– The 7 Layers of OSI– Their Purpose
Error Correcting Codes– Definitions– Some Basic Results– Major Math will be presented on the board
LayeringLayering
The idea of layering is fundamental to network design Although Protocol Layering is covered in detail in
Communication Networks II, it useful to have some awareness of layering for this class as the basis for discussion
Tasks can be broken down into individual subtasks– a network involves many subtasks, or services, some of which are independent of each other, some dependent
The most common form of dependency is where Protocol A uses Protocol B in its execution– Example: File Exchange, one protocol is the file exchange,
another is involved in transferring a smaller data unit (packet) from the sender to receiver
– This transfer is called a data transfer, and is part of a data transfer protocol
Layering, pg. 2Layering, pg. 2
This type of dependency is fundamental, it leads to the idea of layering (e.g. the file transfer is a layer above the data transfer)
The interface between a lower layer and an upper layer is called a service access point (SAP)
The packets or messages exchanged between entitites in the same layer are protocol data units (PDUs)
Packets handed by upper layers to lower layers are service data units (SDUs)
PDUs are basically SDUs are SDUs with extra header info.
PDUs
Upper Layer
PDUs
Lower Layer
SDUs SAP
Layering, pg. 3Layering, pg. 3
Layering provides abstraction, hiding the issues of one layer from another
This is good engineering:– It means you don’t have to worry about all the unnecessary details
above or below your layers
– It is bad as information is hidden from you that might be useful and might affect performance
– Additional advantage is that layering facilitates standardization
The Open System Interconnect (OSI) reference model developed by the International Organization for Standards (ISO) is the basic generic reference model used to discuss network protocols
OSI is not used in practice
Seven OSI LayersSeven OSI Layers
Physical Medium
Presentation
Session
Transport
Network
Datalink
Physical
Application
Presentation
Session
Transport
Network
Datalink
Physical
Application
Network
Datalink
Physical
Sender
Intermediary
Receiver
Tour De’LayersTour De’Layers Physical Layer:
– Provides the ability to transmit a sequence of bits between any two nodes joined by a physical communication channel.
– The physical interface module is called a modem Datalink Control Layer:
– Each point-to-point communication link (aka a bit pipe provided by Layer 1) has data link control modules at each end of the link
– The objective of the DLC is to convert unreliable bit pipe into a virtual link for sending error-free packets over the link
– Asynchrony involved: Delay (variable) from correcting errors and packet size Packets from higher layers might arrive at variable times
– DLC is accomplished by: adding header and trailer bits around a packet to form a larger stream called a frame
Purpose of these bits is error correction, retransmission, and start/stop marking
– In many networks, we have a multiple access channel (shared medium). Tasks of administering and resolving conflicts are relegated to the MAC sublayer (medium access control).
Tour De’Layers, pg. 2Tour De’Layers, pg. 2 Network Layer:
– Each node on the network uses its Network Layer Process to determine how to send information between two network entities
– To do this, it uses the packet header information plus locally stored information to perform routing and flow control
– Routing: Determines the path that the message will take through the intermediate nodes before getting to the end host
– Flow/Congestion Control: The goal is to adjust the rate of flow of packets into the network in order to control congestion along the entire path
Transport Layer:– Breaks messages into smaller data units “packets” at the transmitting end and
reassembles them at the receiving end– Key issues of buffer management arise (buffer memory, packet reordering etc)– Multiplex many separate low-rate sessions into a single higher rate session to be
handed to the network layer (reduces overhead)– Split higher-rate session into several lower rate sessions (for flow control)– Reliability
Tour De’Layers, pg. 3Tour De’Layers, pg. 3
Session Layer: – Provides service look up
– Provides access control (restrict communication between two entities based on the network information)
– Controls interaction between two endpoints
Presentation Layer:– Data encryption
– Data compression
– Code Conversion (variations of ASCII)
Application Layer– Software needed to perform operations/services
Often application and presentation are bundled together
Physical Layer MediaPhysical Layer Media
There are many different types of media over which networks are built. The main three are – Transmission Lines
– Fiber Optics
– Microwave Radio
For each type of media, the most common form of communication involves the use of a carrier wave– This means that our information rides “on top” of a narrowband signal
– The purpose of the carrier wave is to place information at a particular frequency range where it will not interfere (or coexist) with too many other types of signals
The information has a finite bandwidth and is conveyed around a center frequency known as the carrier:– If s(t) is a signal with baseband information/spectrum, then s(t)ei0t
A Little More PHY (but not much!)A Little More PHY (but not much!) Information is encoded into waveforms through modulation– this is covered in
Digital Communications classes.
The communications channel is the source of distortions that are introduced.
The corresponds to the transmission medium and, in general, poses constraints as well as introduces distortions– Bandwidth constraint: The limitations on the amount of bandwidth that may
be conveyed by the medium (incorporates issues such as the spectral shape of the medium)
– Transmitted Power Constraint: Limitations on the amount of power used in transmission– perhaps to limit cross-channel interference, or because of non-linear “threshold” effects of the medium (saturation)
The types of distortion that the medium introduces are:– Attenuation– Delay– Limited Bandwidth– Line/Channel Noise
A Little More PHY (but not much!), pg. 2A Little More PHY (but not much!), pg. 2 Break to draw a couple diagrams and some explanations
on the chalk board
Discuss each type of distortion
After PHY ComesAfter PHY Comes The result of the physical layer is an unreliable bit pipe (a stream of bits)
We now move up one layer to the Data Link Control Layer
There are several key issues that are handled by the DLC:
1. Framing: How to decide where to start and stop “packets” given the stream of bits coming out of the bit pipe
2. Error Detection/Correction
3. Retransmissions
4. Handle issues associated with multiple access
We begin with error detection and correction, and assume (for now) that the big issue of framing has been solved
Our question is: How to determine if a frame/packet has an error?
Simple Error CorrectionSimple Error Correction The simplest form of error detection is through parity checks
A single parity check involves taking a string of bits of fixed length and appending a “1” if the number of “1”s in the string is odd or a “0” if the number of “1”s is even
So, if we have (s1, s2, … ,sm) then the parity is
Suppose one of these bits is flipped
So, we can detect a single bit error
However, we cannot detect the flipping of two bits. Why?
m
1jj1m
'l211m1 rcr)c,,s,,s,s()r,,r(
m
1jj 2modsc
Simple Error CorrectionSimple Error Correction The simplest form of error detection is through parity checks
A single parity check involves taking a string of bits of fixed length and appending a “1” if the number of “1”s in the string is odd or a “0” if the number of “1”s is even
So, if we have (s1, s2, … ,sm) then the parity is
Suppose one of these bits is flipped
So, we can detect a single bit error
However, we cannot detect the flipping of two bits. Why?
m
1jj1m
'l211m1 rcr)c,,s,,s,s()r,,r(
m
1jj 2modsc
Two-Dimensional Parity CodeTwo-Dimensional Parity Code The simple parity check code can be used to design a code that can correct an
error of one bit
To demonstrate, suppose we have 20 bits and arrange in a 4x5 array:
Calculate the parity along the rows and columns and define the last bit in the lower right by the parity of the column/row of parity bits
This bigger matrix is sent
Suppose an error occurs at the 3rd row, 4th column. Then the 4th column and 3rd row parity checks will fail. This locates the error and allows us to correct it.
This scheme can detect two errors, but can’t correct 2 errors. Why?
110110
111010
110011
000110
111001
General Parity CodesGeneral Parity Codes The ideas can be generalized to detect or correct errors more efficiently
We now look at the general theory of error detection/correction (block codes)
Definition: Let A={0,1} be the binary alphabet, and let An denote the binary n-tuples. A code of length n is a non-empty subset C of An. The n-tuples that make up a code are called codewords.
Example: C={(0,0,0), (1,1,1)} is the 3-ary repetition code.
For codes that are random subsets of An, it could be hard to decode or detect errors because there is no efficient structure. The most common class of codes, therefore, are linear codes, in which C is itself a vector subspace of An.
To decode and detect errors, it is useful to have a notion of how close two vectors are
Hamming Distance: d(u,v) is the number of places where u and v differ
Hamming Weight: w = d(u,0)
Example: u=(1,0,1,0,1,0,1,0), v=(1,0,1,1,1,0,0,0)
d(u,v) = 2
Error Correcting CodesError Correcting Codes d(u,v) satisfies a metric on An:
– d(u,v) ≥ 0 for all u, v– d(u,v) = d(v,u) for all u, v– d(u,v) ≤ d(u,w) + d(w,v) for all u, w, v
For a code C, one can calculate the Hamming distance between any two distinct codewords. Out of this table of distances, there is a minimum value d(C) called the minimum distance of C.
d(C) = min{d(u,v) : u, v in C, u ≠ v} A code can detect s errors if changing a codeword in at most s places cannot
change it to another codeword Codes can correct errors using the nearest neighbor decoding policy: Decide
that the received vector actually corresponds to the nearest codeword that requires changing the fewest bits.– A code C can correct up to t errors if, whenever changes are mate at t or
fewer places in an arbitrary codeword c, then the closest codeword is still c.
– This does not say HOW to decode!
Error Correcting Codes, pg. 2Error Correcting Codes, pg. 2
Theorem: (1) A code C can detect up to s errors if d(C)≥ s+1
(2) A code C can correct up to t errors if d(C) ≥ 2t+1
Proof: (1) Suppose d(C)≥ s+1. If a codeword c is sent and s or fewer errors occur, then the result cannot be another codeword.
(2) This is a good homework problem!!! (hint!)
Definition: A code of length n with M codewords and a minimum distance d is called an (n,M,d) code.
The code rate R for an (n,M,d) code is
Goals for designing error correcting codes: (1) based on the theorem we want the minimum distance d(C) to be large so we can correct as many errors as possible; (2) we would like M to be large so that the code rate R is large, i.e. we can support more information
Unfortunately, increasing d tends to increase n or decrease M!
bitsdtransmitteofnumber
symbolsinputofbitsof#
n
MlogR 2
Error Correcting Codes, pg. 3Error Correcting Codes, pg. 3
Theorem: Let C be a binary, (n,M,d) code. Then M ≤ 2n-d+1.
Proof: For a codeword c=(a1,a2,…,an), define c’ =(ad,ad+1,…,an), that is we cut out the first d-1 places from c.
If c1 ≠ c2, then c1 and c2 differ in at least d places. Since c1’ and c2’ are arrived at by cutting (d-1) entries, c1’ and c2’ differ in at least one place, hence
c1’ ≠ c2’.
Therefore, the number M of codewords c is at most the number of vectors c’ obtained in this way. There are at most 2n-d+1 vectors c’ since there are n-d+1 positions in these vectors.
Thus, M ≤ 2n-d+1 .
On the Road to CRCOn the Road to CRC We now turn our attention towards a specific class of error
detection codes, known as cyclic redundancy check codes (CRC codes). To get these codes, we first present the fundamentals of linear codes and polynomials over Z2.
Definition: A linear code of dimension k and length n over Z2 is a k-dimensional subspace of . Such a code is called an [n,k] code. If the code has minimum distance d, then the code is called an [n,k,d] code.
Recall that a k-dimensional vector space consists of all vectors of the form
where and form a linear-independent basis set.
There are 2k elements in a k-dimensional binary code, so an [n,k,d] linear code is a (n,2k,d) code.
n2Z
k
1jjjvac
}1,0{a j kj 1j}v{
Too much math for PPT!!!Too much math for PPT!!!
Ok, so this is where things begin to get tough and when things get tough, the math starts to fly…
And PPT is not the friendliest environment for math…
So, we now switch to the chalkboard…
Time to take notes… paper and pen style.
Wrap-up Lecture 2Wrap-up Lecture 2
We have seen basic error correction and detection
In practice, such error correction is not sufficient to provide an error-free pipe to the higher layers.
We will now turn to ARQ, which completes the error handling that we need
We will then return to framing.