0% found this document useful (0 votes)
15 views

Lecture Notes 1 - Introduction

Uploaded by

chinnianu668
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Lecture Notes 1 - Introduction

Uploaded by

chinnianu668
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

I.

INTRODUCTION

(a) Network Topologies

(i) point-to-point communication

→ each station (i.e., computer, telephone, etc.) directly


connected to all other stations

(ii) switched networks

(1) circuit switched eg. telephone network

→ fixed path established for duration of call and path


dedicated to that call only, regardless of whether
data is being transferred

INTRO 1
one switch network:

- in practice, many switches in telephone network

two switch network:

"trunk" = shared link


→ many channels or calls on one "wire", typically
using Time Division Multiplexing (TDM)
TDM
→ each channel uses trunk for slot of time in round
robin fashion

INTRO 2
(2) packet switched eg. ATM networks

→ data divided into "packets" and packets sent


individually

- i.e., paths used on a per packet basis and, hence, one link
can carry packets from many different paths
associated with different sessions (link is shared in
time)

- in general, switched communication requires less


hardware → many links replaced by few switches at
the expense of increased complexity

(iii) broadcast networks eg. local area networks


(LANs)

→ when one station transmits, all stations receive

LAN architecture:

INTRO 3
- small hardware complexity (no switches, few links) and
control complexity distributed to stations rather than
network

(iv) hybrid combinations of (i), (ii), (iii)

eg. the Internet (actually packet switching on top of


different types of networks)

(b) Packet Switching

general view of switch or node:

INTRO 4
- output queues required because if a link is busy sending a
packet, other packets destined for that link must wait
in a queue

- input queues required because multiple packets entering a


switch at once may require same switch resources (eg.
links) and this may not be possible

- not all switches have both input and output queues but all
packets will be saved into a queue (or buffer of
memory) at least once in a switch

(c) Packet Format

- many different packets for different protocols

- typical format includes following fields:

(d) Flow Control

- required to ensure that a receiving node or server in a


network does not have queues overflow because it is
not processing packets as quickly as they arrive

INTRO 5
(i) Stop-and-Wait Flow Control

- transmitter sends packets and waits for short


acknowledgement packet (call it an "ACK") before
sending next packet

- if receiver queues are filled, receiver can withhold ACK

- problem: packets get delayed in network due to


queuing at switches, propagation delays of
electrical signals along links, and processing
delay at receiver
→ transmitted might have to wait long time
for ACK before sending next packet
∴ inefficient

Example:

INTRO 6
INTRO 7
(ii) Sliding Window Flow Control

- allows more than one packet sent at a time

- uses "sequence number" of k bits, SN ∈ {0, 1, ... , 2k-1},


and increases SN by one modulo 2k for every packet
sent

- up to W, where W = window size, packets can be


outstanding (i.e., sent but ACK not yet received)

- window slides along as packets acknowledged and new


frames sent

See figures.

Example:

INTRO 8
INTRO 9
(e) Error Control

- packets travelling through networks can be

(1) damaged:

- packet arrives at destination but checksum fails


eg. bit error in information field

(2) lost:

eg. packet dropped in network due to queue


overflow or bit error in start flag causes packet to
be undetected at destination

- packets can be corrected by having receiver request


retransmission of detected damaged packets or
transmitter times out waiting for ACK

→ "automatic repeat request" (ARQ)

INTRO 10
(i) Stop-and-Wait ARQ

- if received packet damaged, error detection techniques


may allow the receive to detect error, in which case
the receiver sends negative acknowledgement
(NACK) to request retransmission and transmitter
resends when NACK received

- if receiver times out waiting for ACK due to lost packet or


lost ACK, then packet resent

- problem: What if ACK lost resulting in receiver


getting duplicate frame?
- solution: label ACKs → ACK0/ACK1 indicates
receiver ready for packet 0/1
→ "alternating bit protocol"
See figure.

(ii) Go-Back-N ARQ

- based on sliding window flow control


- basic concept:
→ if packet i NACKed or timeout before ACK
received, packet i and all subsequent packets
retransmitted
→ can result in retransmission of properly received
packets → inefficiency

See figure → must have W ≤ 2k -1 ⇒ usually, W = 2k-1 for


efficiency.

INTRO 11
(iii) Selective Reject ARQ

- similar to Go-Back-N except only damaged and lost


packets retransmitted

- more efficient than Go-Back-N but more complex at


receiver because packets can be received out of order

See figure → must have W ≤ 2k-1 ⇒ W = 2k-1 for efficiency

(iv) "Piggybacking" ACKs

- often ACKs/ NACKs are included as part of data packet


→ even if ACK has already been sent, when packet
sent, ACK will be resent

Why is window size W picked to be W ≤ 2k -1 for go-back-


N and not W = 2k, where k = number of bits in
sequence number field?

Consider W = 8, k = 3:

→ say transmitter sends packet 0 and gets ACK 1 in packet


→ then transmitter sends 8 frames: 1, 2, 3, ... , 7, 0
and receives ACK 1 in packet
→ Have all frames been acknowledged or have all frames
been lost?
⇒ use W = 7 to avoid

Why should W ≤ 2k-1 for selective reject? Can you answer?

INTRO 12
(f) Error Detection

How does the receiver detect damaged packets?

(i) Parity Check

- add bit to data block to ensure either:

→ even number of 1s (even parity)


→ odd number of 1s (odd parity)

- consider adding a parity bit to an n-bit block of data

→ parity easily implemented as XOR of bits

dn-1 ⊕ dn-2 ⊕ ... ⊕ d1 ⊕ d0 ⊕ p = 0 (even parity)


or = 1 (odd parity)

Example:

- data is often stored/transmitted as 7-bit ASCII code +


parity bit = 8-bit character

-parity bit can be used to detect an odd number of errors but


even number of errors will be undetected

INTRO 13
(ii) Cyclic Redundancy Check (CRC)

- adds r-bit frame check sequence (FCS) to n-bit data


sequence with r < n

- let T = (n+r)-bit frame


M = n-bit message (i.e., first n bits of T)
F = r-bit FCS (i.e., last r bits of T)
P = special r+1 bit pattern used to generate FCS

- consider arithmetic based on bit-wise modulo-2 addition

→ uses bit-wise XOR (i.e., no carry or borrow) for


addition and subtraction

- FCS chosen so that T/P has no remainder

- let T = 2rM ⊕ F

M shifted left by r bits

INTRO 14
How to choose F so that T/P has no remainder?

Let 2rM/P = Q ⊕ R/P


where R = remainder and must be r bits

and set F = R

Is T now divisible by P?

T/P = (2rM ⊕ R) / P
= (Q ⊕ R/P) ⊕ R/P = Q ∴ yes, divisible by P

- let Γ represent the received vector such that Γ = T ⊕ E


where E = error vector with ones representing
positions of bit errors

eg.

- error detection process:

(1) at transmitter, divide 2rM by P and use remainder


as FCS
(2) at receiver, divide Γ by P and
→ if remainder of Γ/P = 0 then assume no error
→ if remainder of Γ/P ≠ 0 then assume error

INTRO 15
Example:

INTRO 16
- often binary strings represented as polynomials

eg. 1 1 0 0 1 → x4 + x3 + 1

and polynomials with special properties define a CRC


scheme

- standard FCS exist such as "CRC-32" and "CRC-16"

CRC-16: P(x) = x16 + x15 + x2 + 1

- in general, 1st and last terms of P(x) must be non-zero and


for a properly selected P(x) it can be shown that the
following errors are detectable:

(1) all single bit error patterns


(2) all double bit error patterns
(3) any odd number of errors, as long as P(x) has a
factor of x + 1
(4) all burst errors with length less than FCS length
(5) most larger burst errors

- transmitter and receiver can use shift register to perform


division by P(x)

INTRO 17
- let input = 10110010011011

step c5 c4 c3 c2 c1 c0 c5+c4 c5+c3 c5+c2 c5+input input


c5' c4' c3' c0'
0 0 0 0 0 0 0 0 0 0 1 1
1 0 0 0 0 0 1 0 0 0 0 0
2 0 0 0 0 1 0 0 0 0 1 1
3 0 0 0 1 0 1 0 0 1 1 1
4 0 0 1 0 1 1 0 1 0 0 0
5 0 1 0 1 1 0 1 0 1 0 0
6 1 0 1 1 0 0 1 0 0 0 1
7 1 0 0 0 0 0 1 1 1 1 0
8 1 1 1 0 0 1 0 0 1 1 0
9 0 0 1 0 1 1 0 1 0 1 1
10 0 1 0 1 1 1 1 0 1 1 1
11 1 0 1 1 1 1 1 0 0 1 0
12 1 0 0 1 1 1 1 1 0 0 1
13 1 1 0 1 1 0 0 1 0 0 1
14 0 1 0 1 0 0 1 0 1 0 0
15 1 0 1 0 0 0 1 0 1 1 0
16 1 0 1 0 0 1 1 0 1 1 0
17 1 0 1 0 1 1 1 0 1 1 0
18 1 0 1 1 1 1 1 0 0 1 0
19 1 0 0 1 1 1 1 1 0 1 0
20 1 1 0 1 1 1 ← FCS

INTRO 18
(g) Error Detection Calculations

- typical channel model:

→ bit errors occur randomly and independently and


occur with probability of Pe

→ Pe is called "bit error rate"

(i) Parity Check

Consider an n-bit character which has a parity bit added to


it.

Some things can be calculated:

- probability of no errors in a character:

- probability of one bit error in a character:

INTRO 19
- probability of k bit errors in a character:

- probability that error is detected:

- probability that a character has undetected errors:

Note that P(1) > P(2) > ... so parity makes sense, since
single bit errors most likely and these will be detected.

Now consider a "packet" constructed of m n-bit characters


where each character has a parity bit added to it.

- probability of no errors in packet:

INTRO 20
- probability packet has errors but that no errors are
detected:

- probability that packet has a detected error:

INTRO 21
(ii) CRC

Consider packet format:

and assume CRC capable of detecting 1, 2, or 3 bit errors


(in practice, CRCs detect more error patterns that
this!)

- probability of no errors:

- probability of missed packet:

INTRO 22
- probability that received packet must be retransmitted:

- probability that errors are undetected in packet:

- expected number of retransmissions


assuming ACKs, NACKs not corrupted and assume
PU << PR and PM << PR

INTRO 23
(h) Communication Architectures

- typical communication protocols are layered to

(1) logically partition functionality


(2) encourage development of standards

- example 3 layer model for file transfer:

INTRO 24
Application layer: - file transfer commands, file data

Transport layer: - ensures both ends are active and ready


to communicate
- ensures reliable delivery of data
header: - destination application address
- sequence number
- CRC

Network layer: - interfaces to network for connection


setup, etc.
header: - destination computer address
- network facilities request (eg. quality
of service, priority)

Open Systems Interface (OSI) Model:


→ 7 layer framework for communication protocols

See figures.

INTRO 25

You might also like