Title: Networking
1Networking
- Networking began its infancy in the mid -1960s
by the US Department of Defence (DoD). The
original intention of networking was being
developed to withstand a nuclear war. Telephone
networks were to vulnerable and would terminate
all conversations should a nuclear war occur. - ARPA (Advanced Research Projects Agency) was
created in response with the launching of Russian
Sputnik in 1957. ARPA decided that a DoD network
should be packet switched networked consisting of
a subnet and host computers. Experimental network
research was awarded to UCLA, UCSB, SRI and Univ.
of Utah in 1969. These areas were chosen because
they all had a large number of ARPA contracts.
2Networking
- These 4 universities also had different and
completely incompatible host computers. ARPANET
protocols were not suitable for running over
multiple networks, so TCP/IP model and protocols
were invented in 1974. ARPA awarded several other
contracts and specifically University of
California at Berkeley to integrate the protocols
with the Berkeley UNIX operating system. - Berkeley developed a convenient program interface
to the network and wrote many applications,
utility, and management programs to make
networking easier. In it early infancy, the OSI
protocols were crushed and the TCP/IP protocols
were already in widespread use. The OSI Model had
seven layers because at the time, IBM had a
propriety seven-layer protocol called SNA
(Systems Network Architecture).
3OSI-ISO 7-layer reference model
- The OSI model divides the functions of a protocol
into a series of layers. Each layer has the
property that it only uses the functions of the
layer below, and only exports functionality to
the layer above. - A system that implements protocol behavior
consisting of a series of these layers is known
as a protocol stack or simply a stack. Protocol
stacks can be implemented either in hardware or
software, or a mixture of both. - Typically, only the lower layers are implemented
in hardware, with the higher layers being
implemented in software.
4OSI-ISO 7-layer reference model
- This OSI model is roughly adhered to in the
computing and networking industry. Its main
feature is in the interface between layers which
dictates the specifications on how one layer
interacts with another. - This means that a layer written by one
manufacturer can operate with a layer from
another (assuming that the specification is
interpreted correctly). These specifications are
typically known as Requests for Comments or
(RFCs) in the TCP/IP community. They are ISO
standards in the OSI community.
5OSI-ISO 7-layer reference model
6OSI-ISO 7-layer reference model
Messages
Messages
Segments
Transport layer
Transport layer
Network service
Network service
Network layer
Network layer
Network layer
Network layer
End system a
End system b
Data link layer
Data link layer
Data link layer
Data link layer
Physical layer
Physical layer
Physical layer
Physical layer
7OSI-ISO 7-layer reference model
- Usually, the implementation of a protocol is
layered in a similar way to the protocol design,
with the possible exception of a fast path where
the most common transaction allowed by the system
may be implemented as a single component
encompassing aspects of several layers. - This logical separation of layers makes reasoning
about the behavior of protocol stacks much
easier, allowing the design of elaborate but
highly reliable protocol stacks. - Each layer performs services for the next higher
layer and makes requests of the next lower layer.
8OSI-ISO 7-layer reference model
9OSI-ISO 7-layer reference model - data
encapsulation
10TCP/IP vs. OSI 7-layer reference model
Only a subset of the whole OSI model is used
today. It is widely believed that much of the
specification is too complicated and that its
full functionality has taken too long to
implement, although there are many people who
strongly support the OSI model.
11Physical layer
- This physical layer refers to network hardware,
physical cabling or a wireless electromagnetic
connection. It also deals with electrical
specifications, collision control and other
low-level functions. - The physical layer is the most basic network
layer, providing only the means of representing
and transmitting raw bits. The shapes of the
electrical connectors, which frequencies to
broadcast on, and similar low-level things are
specified here.
12Data-link layer
- The data link layer is the layer of the model
which transfers data between adjacent network
nodes in a wide area network or between nodes on
the same local area network segment. The data
link layer provides the functional and procedural
means to transfer data between network entities
and might provide the means to detect and
possibly correct errors that may occur in the
Physical layer. - This layer is sometimes split into two
sub-layers. - The first sub-layer is Logical Link Control
(LLC). This sub-layer multiplexes protocols
running atop the data link layer, and optionally
provides flow control, acknowledgment, and error
recovery. - The second sub-layer is Media Access Control
(MAC). This sub-layer determines who is allowed
to access the media at any one time. There are
generally two forms of media access control
distributed and centralized.
13Network layer
- The network layer addresses messages and
translates logical addresses and names into
physical addresses. - It also determines the route from the source to
the destination computer and manages traffic
problems, such as switching, routing, and
controlling the congestion of data packets. - The network layer provides the functional and
procedural means of transferring variable length
data sequences from a source to a destination via
one or more networks while maintaining the
quality of service requested by the Transport
layer. - The Network layer performs network routing, flow
control, network segmentation/desegmentation, and
error control functions.
14Transport layer
- The transport layer provides transparent transfer
of data between hosts. It is usually responsible
for end-to-end error recovery and flow control,
and ensuring complete data transfer. - In other words, the purpose of the transport
layer is to provide transparent transfer of data
between end users, thus relieving the upper
layers from any concern with providing reliable
and cost-effective data transfer. - The transport layer usually turns the unreliable
and very basic service provided by the Network
layer into a more powerful one.
15Session layer
- The session layer provides the mechanism for
managing the dialogue between end-user
application processes. It provides for either
duplex or half-duplex operations and establishes
check-pointing, adjournment, termination, and
restart procedures. - The session layer provides mechanisms to allow
information on different streams, perhaps
originating from different sources, to be
properly combined. In particular, it deals with
synchronization issues, and ensuring nobody ever
sees inconsistent versions of data, and similar
concepts.
16Presentation layer
- The presentation layer is responsible for the
delivery and formatting of information to the
application layer for further processing or
display. - It relieves the application layer of concern
regarding syntactical differences in data
representation within the end-user systems. An
example of a presentation service would be the
conversion of an EBCDIC-coded text file to an
ASCII-coded file. - The presentation layer is the first one where
people start to care about what they are sending
at a more advanced level than just a bunch of
ones and zeros.
17Application layer
- The application layer interfaces directly to and
performs common application services for the
application processes. It also issues requests to
the presentation layer. - The common application layer services provide
semantic conversion between associated
application processes. - Examples of common application services of
general interest include the virtual file,
virtual terminal, and job transfer and
manipulation protocols.
18Transmission errors in networks
- Transmission errors are caused by
- thermal noise
- impulse noise
- signal distortion during transmission
- crosstalk
- voice amplitude signal compression
- quantization noise
- jitter
- receiver and transmitter out of synchronization
19Error detection
- Error detection is achieved via adding small but
enough number of extra bits to deduce that there
is an error but not enough bits to correct the
error - If only error detection is employed in a network
transmission the retransmission process is
triggered to recover the frame (data link layer)
or the packet (network layer). - At the data link layer, this is referred to as
ARQ (Automatic Repeat reQuest).
20Error detection and correction
- Error correction requires some number of
additional (redundant) bits to deduce what the
correct bits must have been. - Example
- Hamming Codes
- Superimposed codes (related to selectors)
- FEC Forward Error Correction found in MPEG-4
- and others
21Error detection and correction
- Hamming codes
- codewords in Hamming (error detecting and error
correcting) codes consist of m data bits and r
redundant bits. - Hamming distance between two strings represents
the number of bit positions on which two bit
patterns differ (similar to pattern matching k
mismatches). - Hamming distance of the code is determined by the
two codewords whose Hamming distance is the
smallest. - error detection involves determining if codewords
in the received message match closely enough
legal codewords.
22Error detection and correction
A code with good distance properties
(b)
(a)
A code with poor distance properties
code distance
x codewords o non-codewords
23Error detection and correction
- To detect properly d single bit errors, one needs
to apply a d1 code distance. - To correct properly d single bit errors, one
needs to apply a 2d1 code distance. - In general, the price for redundant bits is too
expensive (!!) to do error correction for all
network messages - Thus safety and integrity of network
communication is based on error detecting codes
and extra transmissions in case any errors were
detected
24Error-Detection System using Check Bits
Received information bits
Information bits
Recalculate check bits
Channel
Calculate check bits
Compare
Information accepted if check bits match
Received check bits
Check bits
25Cyclic Redundancy Checking (CRC)
cyclic redundancy check (CRC) is a popular
technique for detecting data transmission
errors. Transmitted messages are divided into
predetermined lengths that are divided by a
fixed divisor. According to the calculation, the
remainder number is appended onto and sent with
the message. When the message is received, the
computer recalculates the remainder and compares
it to the transmitted remainder. If the numbers
do not match, an error is detected.
26Error detection --via parity of subsets of bits
Note Check bits occupy power of 2 slots
12345678 .
27Detection via parity of subsets of bits
Consider 4 bit words.
Add 3 parity bits.
P2P1P0
D3D2D1D0
0
1
0
1
? ? ?
Each parity bit computed on a subset of bits
P2 D3 xor D2 xor D1 0 xor 1 xor 1 0
P1 D3 xor D2 xor D0 0 xor 1 xor 0 1
P0 D3 xor D1 xor D0 0 xor 1 xor 0 1
Use this word bit arrangement
D3D2D1P2D0P1P0
0
1
1
0
0
1
1
Check bits occupy power of 2 slots!
28Detection via parity of subsets of bits -no
error occurred
D3D2D1P2D0P1P0
First, we send
No error occurred. But how do we know that?
1
1
0
1
1
0
0
Later, someone gets
D3D2D1P2D0P1P0
1
1
0
1
1
0
0
And computes
B2 P2 xor D3 xor D2 xor D1 0 xor 0 xor 1 xor 1
0
If all
B2,B1,B0 0
B1 P1 xor D3 xor D2 xor D0 1 xor 0 xor 1 xor
0 0
there are no errors!
B0 P0 xor D3 xor D1 xor D0 1 xor 0 xor 1 xor 0
0
These equations come from how we computed
P2 D3 xor D2 xor D1 0 xor 1 xor 1 0
P1 D3 xor D2 xor D0 0 xor 1 xor 0 1
P0 D3 xor D1 xor D0 0 xor 1 xor 0 1
29Detection via parity of subsets of bits -single
bit is twisted
D3D2D1P2D0P1P0
What if a cosmic ray hit D1? How would we know
that?
First, we send
0
1
1
0
0
1
1
D3D2D1P2D0P1P0
Later, someone gets
1
1
0
0
1
0
0
And computes
B2B1B0 101 5
B2 P2 xor D3 xor D2 xor D1 0 xor 0 xor 1 xor 0
1
B1 P1 xor D3 xor D2 xor D0 1 xor 0 xor 1 xor
0 0
And what does 101 5 mean?
B0 P0 xor D3 xor D1 xor D0 1 xor 0 xor 0 xor 0
1
7
5
6
3
4
2
1
The position of the flipped bit! To repair, just
flip it back
We number the least significant bit with 1, not
0! 0 is reserved for no errors.
D3D2D1P2D0P1P0
0
0
1
0
0
1
1
30Detection via parity of subsets of bits -magic
trick revealed
For any 4 bit word
we add 3 parity bits
P2P1P0
D3D2D1D0
? ? ?
0
1
0
1
Observation The parity bits need to encode no
error scenario, plus a number for each bit (both
data and parity bits)
For p parity bits and d data bits d p 1 2p
31Detection via parity of subsets of bits -magic
trick revealed
For any 4 bit word
we add 3 parity bits
P2P1P0
D3D2D1D0
Question Why do we arrange bits?
Start by numbering, 1 to 7.
7
5
6
3
4
1
2
D3 D1 D0 P0
With this order, an odd parity means an error in
1,3,5, or 7. So, P0 is the right parity bit to
use
D3D2 D0P1P0
D3D2D1P21P0
etc ... each bit narrows down the suspect bits,
until it is certain.
D3D2D1P2D0P1P0
An odd parity means a mistake must be in 2, 3, 6,
or 7 -- the four numbers possible if P1 1!
32Detection via parity of subsets of bits -magic
trick revealed
For any 4 bit word
we add 3 parity bits
P2P1P0
D3D2D1D0
P2 D3 xor D2 xor D1
P0 D3 xor D1 xor D0
P1 D3 xor D2 xor D0
D3D2D1P2D0P1P0
7 bits can code 128 numbers, but only 16 of these
numbers are legal.
It takes 3 bit flips to move from one legal
number to another (for all 16 numbers)
If only one bit flips, we can always figure out
the closest legal number, and correct the
number.