2. Introduction to Communication Networks
Smoke signals Bird messengers Horse messengers Postal communications
Telephones Wireless
communication Communication Networks
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
3. Basic Communication Network
• Network with one central processor and a separate communication link to each device.
RJEs: Remote job entry points
Separate communication link for each peripheral device
Increase in the #peripheral devices and users
Leads to more #communication links, higher space, power and cost
Problem statement: Design the basic communication network with minimal #links, lower space, power and cost
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
4. Basic Communication Network
• Network with one central processor but with shared communication links to devices.
RJEs: Remote job entry points
Multiplexers: To collect the traffic from a set of peripheral devices or users in the same area and to send it on a
single link to the control processor/computer
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
5. Advantages of the Multiplexing and Traffic Grooming
RJEs: Remote job entry points
Better capacity utilization
Lower #communication links
Lower space, power and cost per bit
Traffic Grooming: It is a process where small telecommunication services are groomed
in to the larger units and processed as a single entity. (e.g. 10x10 GbE LAN ->
1x100GbE LAN service)
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
6. Computer network with subnets
RJEs: Remote job entry points
• General network with a subnet of communication links and nodes. External devices are connected to the subnet via links to the
subnet nodes.
Account/HR
subnet
Marketing
subnet
Engineering
subnet
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
7. Network of Networks
RJEs: Remote job entry points
Gateway/Edge routers
Allow users of one network to send the data to the users of the other networks.
Network of Networks
Problem statement: Design LAN, MAN and WAN forming subnets & gateways
Account/HR
subnet
Marketing
subnet
Engineering
subnet
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
8. Commercial application of Communication Networks
RJEs: Remote job entry points
Data-centres:
Central storage and remote access: Google drive
Banking and financial services:
Remote services
E-mails
Cloud computing and automation
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
9. Open System Inter connection (OSI) model
RJEs: Remote job entry points
10. Physical Layer
RJEs: Remote job entry points
Defines rules by which bits are passed from one system to another on the Physical
communication channel/medium
Provides physical interface for the transmission
To provide a virtual link for transmitting the
sequence of bits between any pair of nodes joined by
the physical communication channel
Such virtual links are also known as bit pipes
Physical interface to map the incoming bits
from Data link layer into appropriate signals for
the transmission over the physical
channel/medium
At the receiving maps the signal back in to bits
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
11. Data Link Layer
RJEs: Remote job entry points
Provides reliable and error free communication over the physical layer interface
Breaks the outgoing data into frames and resembles the receiving frames
Place overhead control bits called header at the beginning and trailer at the end of each packet
Over Head bits determine errors in the transmission frames
Handles the errors by implementing an acknowledgement and retransmission
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
12. The MAC sub-layer
RJEs: Remote job entry points
Medium Access Control (MAC): Requirement of an
intermediate layer to manage the multi-access link so that frames
can be sent by each node without constant interference from the
other nodes.
Usually considered as the lower sub-layer of layer 2 (Data Link
Layer)
The function of the MAC sub-layer is to allocate the multi-access
channel so that each node can successfully transmit its frames
without undue interference from the other nodes
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
13. Network Layer
RJEs: Remote job entry points
Routing, flow and congestion control
When a frame enters a node or site from a communication
link, the bits in that frame pass through the physical layer to
the DL layer.
The DL layer determines where the frame begins and ends,
and if the frame is accepted as correct, the DLC strips off the
DLC header and trailer from the frame and passes the
resulting packet up to the network layer.
A packet consists of two parts, a packet header followed by
the packet body
The network layer module uses the packet header of an
incoming packet, along with stored information (Source and
Destination addresses) to accomplish its routing, flow and
control functions.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
14. Routing exercise
RJEs: Remote job entry points
Problem statement: Design the routing table for each router and identify the route for the
transmission
15. Internet sub-layer
RJEs: Remote job entry points
Standards for the routing and flow control protocols
Despite of all standardization, different networks use different algorithm for routing and flow
control at the network layer
Can’t connect different sub-networks together
Solution:
Create a new sub-layer called Internet sub-layer
Several subnets can be combined by creating special nodes called Gateways between
them.
A gateway connecting two subnets will interface with each Subnet through a network
layer module appropriate for that subnet.
When a packet arrives at a gateway from one subnet, the corresponding network layer
module passes the packet body and subsidiary information about the packet to the
internet sub-layer
Internet sub-layer plays a role in routing and flow control
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
16. Transport Layer
RJEs: Remote job entry points
Pair of peer process
Break the messages in to packets of the transmitting end
Reassemble the packets into the messages at Rx
Buffering improves the sequential delivery of the packets
Limited or shared buffer space between many virtual links can cause the buffer
overflow and results in the packet loss (Problem statement: Estimate the
optimal buffer size)
Multiplexing/De-multiplexing:
Multiplex several low-rate sessions/services which are originated from the
same source and going towards the same destination
Also splits the high rate sessions in to multiple small sessions in case if the
network layer is not capable of handling that much of high data rate.
End to end reliability:
To handle the failures
End to end flow control
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
17. Session Layer
RJEs: Remote job entry points
Session layer provides the mechanism for controlling the dialogue between two end systems
Session layer creates, maintains, and terminates communication between devices on a network.
Establishing the connection
Maintaining the session
Terminate the connection
Dialog control
Dialog separation
Session is a logical communication channel that is created and maintained between two network
devices in order to transfer data.
Access rights/Authorization check/Log-in-ID/Password
Check points/Failure checks and Retransmission from the last check point
E.g. Restore the web services
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager and online sources
18. Presentation Layer
RJEs: Remote job entry points
Presentation layer ensures
Common format
Data compression and decompression for better bandwidth
and storage utilization
Translation and code conversation
Data encryption/decryption and cryptography for security
Application: Confidentiality in military communications
Prevent messages from getting to the wrong recipients
Prevent malfunctions
Systematic information exchange between two sides
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
19. Application Layer
RJEs: Remote job entry points
Application layer interacts with application programs and is the highest level of OSI
model.
Application layer contains management functions to support distributed applications.
Examples of application layer are applications such as file transfer, electronic mail,
remote login etc.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
20. Summary
RJEs: Remote job entry points
Physical Layer
Physical Medium for the transmission
Data link Layer
Error free transmission, Medium Access Control (MAC) sub-L.
Network Layer
Routing, flow and congestion control, Internet sub-layer (L)
Transport Layer
Buffering, Multiplexing/De-multiplexing, E2E connections
Session Layer
Establish, Maintain, Terminate the connection, Access rights
Presentation Layer
Format, Compression/Decompression, Encryption/Decryption
Application Layer
functions to support applications
22. Overview
RJEs: Remote job entry points
Networks interconnect multiple devices.
We studied the Local Area Networks.
Now, let’s go through wide area networks
Circuit Switching: Communication via circuit switching implies that there is a dedicated communication
path between two stations
Telephones: Circuit switching has been the dominant technique for the voice communications.
Packet Switching: Data transmission in which a message is broken into small entities called packets
which are sent independently
Since 1970, packet switching has evolved significantly for digital data communications. It was
designed to achieve the more efficiency than circuit switching for burst data traffic.
Two types of packet switching:
Connectionless Packet Switching/Datagram approach (such as today’s Internet)
Connection-Oriented Packet Switching/Virtual circuit approach (such as Frame Relay, ATM)
Ref. Book: Data and Computer Communication by William Stallings
23. Switched Communications Networks
RJEs: Remote job entry points
Long distance transmission between
stations is typically achieved over a network
through switching nodes.
Switching nodes do not concern with
content of data. Their purpose is to provide
a switching facility that will move the data
from node to node until they reach their
destination.
A collection of nodes and connections
forms a communications network.
In a switched communications network,
data entering the network from a station are
routed to the destination by being switched
from node to node.
Ref
Switching Nodes
25. Circuit Switching
RJEs: Remote job entry points Ref
• Circuit switching:
– There is a dedicated communication path between two stations (end-to-end)
– The path is a connected sequence of links between network nodes. On each
physical link, a logical channel is dedicated to the connection.
• Communication via circuit switching has three phases:
– Circuit establishment (link by link)
• Routing & resource allocation (FDM or TDM)
– Data transfer
– Circuit disconnect
• Decommission the dedicated resources
• The switches must know how to find the route to the destination and
how to allocate bandwidth (channel) to establish a connection.
26. Circuit Switching Properties
RJEs: Remote job entry points Ref
• Inefficiency
– Channel capacity is dedicated for the whole duration of a connection
– If no data, capacity is wasted
• Delay
– Long initial delay: circuit establishment takes time
– Low data delay: after the circuit establishment, information is
transmitted at a fixed data rate with no delay other than the
propagation delay. The delay at each node is negligible.
• Developed for voice traffic (public telephone network) but
can also applied to data traffic.
– For voice connections, the resulting circuit will enjoy a high
percentage of utilization because most of the time one party or the
other is talking.
– But how about data connections?
27. Packet Switching Principles
RJEs: Remote job entry points Ref
• Problem of circuit switching
– designed for voice service
– Resources dedicated to a particular call
– For data transmission, much of the time the
connection is idle (say, web browsing)
– Data rate is fixed
• Both ends must operate at the same rate during the
entire period of connection
• Packet switching is designed to address these
problems.
28. Basic Operation
RJEs: Remote job entry points Ref
• Data are transmitted in short packets
– Typically at the order of 1000 bytes
– Longer messages are split into series of packets
– Each packet contains a portion of user data plus some
control info
• Control info contains at least
– Routing (addressing) info, so as to be routed to the intended
destination
• Store and forward
– On each switching node, packets are received, stored
(buffered) and passed on to the next node.
Buffering
29. Advantages of Packet Switching
RJEs: Remote job entry points Ref
• Line efficiency
– Single node-to-node link can be dynamically shared by
many packets over time
– Packets are queued up and transmitted as fast as possible
• Data rate conversion
– Each station connects to the local node at its own speed
• In circuit-switching, a connection could be blocked if
there lacks free resources. On a packet-switching
network, even with heavy traffic, packets are still
accepted, by delivery delay increases (Buffering).
• Priorities can be used
– On each node, packets with higher priority can be
forwarded first. They will experience less delay than
lower-priority packets.
30. Packet Switching Technique
RJEs: Remote job entry points Ref
• A station breaks long message into packets
• Packets are sent out to the network sequentially, one at a
time
• How will the network handle this stream of packets as it
attempts to route them through the network and deliver
them to the intended destination?
– Two approaches
• Connectionless Packet Switching/Datagram approach
• Connection-Oriented Packet Switching/Virtual circuit approach
31. RJEs: Remote job entry points
Connectionless Packet Switching/Datagram approach
• Each packet is treated independently, with no
reference to packets that have gone before.
– Each node chooses the next node on a packet’s
path.
• Packets can take any possible route.
– Also, depends on the available link capacity.
• Packets may arrive at the receiver out of order.
• Packets may go missing.
• It is up to the receiver to re-order packets and
recover from missing packets.
• Example: Internet
32. Connection-Oriented Packet Switching/Virtual Circuit approach
RJEs: Remote job entry points Ref
• In virtual circuit, a preplanned route is
established before any packets are sent, then
all packets follow the same route.
• Each packet contains a virtual circuit
identifier instead of destination address, and
each node on the preestablished route knows
where to forward such packets.
– The node need not make a routing decision for
each packet.
• Example: X.25, Frame Relay, ATM
33. Virtual Circuit
RJEs: Remote job entry points Ref
• A route between stations is set
up prior to data transfer.
• All the data packets then follow
the same route.
• But there is no dedicated
resources reserved for the
virtual circuit! Packets need to
be stored-and-forwarded.
34. Virtual Circuits v Datagram
RJEs: Remote job entry points Ref
• Virtual circuits
– Network can provide sequencing (packets arrive at the
same order) and error control (retransmission between
two nodes).
– Packets are forwarded more quickly
• Based on the virtual circuit identifier
• No routing decisions to make
– Less reliable
• If a node fails, all virtual circuits that pass through that node fail.
• Datagram
– No call setup phase
• Good for bursty data, such as Web applications
– More flexible
• If a node fails, packets may find an alternate route
• Routing can be used to avoid congested parts of the network
35. Event Timing for Circuit Switching and Packet Switching
RJEs: Remote job entry points Ref
38. Role of Data Link Layer in Error Detection
RJEs: Remote job entry points
Data link control (DLC) module knows where frames begin and end. The problem then is to
determine which of those frames contain errors
Provide error-free packets to the next layer
Extra bits must be appended to a packet to detect errors
Note that the receiver cannot tell which bit is in error, nor how many errors occurred; it simply
knows that errors occurred because of the odd number of 1's
Characters are mapped into strings of seven bits and then a parity check is appended as an
eighth bit
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
39. Single Parity Checks
RJEs: Remote job entry points
Total number of 1's in an encoded string (i.e., the original bit string plus the appended parity
check) is always even.
If an encoded string is transmitted and a single error occurs in transmission, then, whether 1
is changed to 0 or 0 to 1, the resulting number of 1's in the string is odd and the error can be
detected at the receiver.
Disadvantage:
Limited to single error detection
What if, two errors occurred?
In general, any odd number of errors are detected and any even number are undetected.
Single parity check is ineffective
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
40. Horizontal and Vertical Parity Checks
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
Error detection
Error detection
Error detection
42. Parity Check Code
RJEs: Remote job entry points
The transformation from the string of data bits to the string of data bits and parity checks is
called a parity check code or linear code.
A parity check code is defined by the particular collection of subsets used to generate parity
checks. Note that the word code refers to the transformation itself; we refer to an encoded bit
string (data plus parity checks) as a code word.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
43. CRC encoder and decoder
RJEs: Remote job entry points Ref. Book: Data Communication and Networking by Forouzan
44. Parity Check Code
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
K- length of the data string for a given parity check code
L-the number of parity checks
K +L is the frame length
Objective: Detect the errors
In the error-detection system, the frame is transmitted and
the receiving DLC module determines if each of the parity
checks is still the modulo 2 sum of the corresponding
subset of data bits. If so, the frame is regarded by the
receiver as error-free, and if not, the presence of errors is
detected.
If errors on the link convert one code word into another,
the frame is regarded by the receiver as error-free, and
undetectable errors are said to have occurred in the
frame.
45. Parity Check Code
RJEs: Remote job entry points
Predict the probability of undetectable errors in a frame. Unfortunately, this is very difficult.
As a result of these difficulties, the effectiveness of a code for error detection is usually
measured by three parameters:
1) the minimum distance of the code
2) the burst-detecting capability
3) the probability that a completely random string will be accepted as error-free
The minimum distance of a code is defined as the smallest number of errors that can
convert one code word into another.
As we have seen, the minimum distance of a code using a single parity check is 2, and the
minimum distance of a code with horizontal and vertical parity checks is 4.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
46. Parity Check Code
RJEs: Remote job entry points
The length of a burst of errors in a frame is the number of bits from the first error to the last,
inclusive. The burst-detecting capability of a code is defined as the largest integer B such that
a code can detect all bursts of length B or less.
The burst-detecting capability of the single parity check code is 1, whereas the burst-detecting
capability of a code with horizontal and vertical parity checks is 1 plus the length of a row.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
47. Parity Check Code
RJEs: Remote job entry points
Predict the probability of undetectable errors in a frame
Random string of length K + L is meant that each such string is received with probability
code words, the probability of an undetected error is the probability that the random string
is one of the code words; this occurs with probability of .
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
48. Cyclic Redundancy Checks
RJEs: Remote job entry points
The parity check codes used for error detection in most DLCs today are cyclic redundancy
check (CRC) codes. The parity check bits are called the CRC.
L - the length of the CRC (number of check bits)
K - the length of the string of data bits
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
Indeterminate D can be thought of as keeping track of the bits; high-order terms are viewed as
being transmitted first.
The CRC is represented as
Transmitted frame:
49. Parity Check Code
RJEs: Remote job entry points
The CRC polynomial c(D) is a function of the information polynomial s(D), defined in terms of a
generator polynomial g(D); this is a polynomial of degree L with binary coefficients that specifies
the particular CRC code to be used.
For a given g(D), the mapping from the information polynomial to the CRC polynomial c(D) is
given by
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
The polynomial division above is just ordinary long
division of one polynomial by another, except that
the coefficients are restricted to be binary and the
arithmetic on coefficients is performed modulo 2.
Thus, for example, (1 + 1) modulo 2 = 0 and (0 - 1)
modulo 2 = 1. Note that subtraction using modulo 2
arithmetic is the same as addition.
50. Parity Check Code
RJEs: Remote job entry points
This long division can be implemented easily in hardware by the feedback shift register circuit
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
51. Division in CRC encoder
RJEs: Remote job entry points Ref. Book: Data Communication and Networking by Forouzan
52. Division in the CRC decoder for two cases
RJEs: Remote job entry points Ref. Book: Data Communication and Networking by Forouzan
53. Parity Check Code
RJEs: Remote job entry points
Let z(D) be the quotient resulting from dividing s(D)DL by g(D). Then, c(D) can be represented as
Subtracting c(D) (modulo 2) from both sides of this equation and recognizing that modulo 2
subtraction and addition are the same, we obtain
x(D) is transmitted and that the received sequence is represented by a polynomial y(D), where
x(D) and y(D) differ because of the errors on the communication link.
Error sequence is represented as a polynomial e(D)
y(D) = x(D) + e(D)
Where, as throughout this section, + means modulo 2 addition;
Each error in the frame corresponds to a non zero coefficient in e(D) [i.e., a coefficient in which
y(D) and x(D) differ].
At the receiver, remainder can be calculated as shown below
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
54. Parity Check Code
RJEs: Remote job entry points
This long division can be implemented easily in hardware by the feedback shift register circuit
If no errors occur, then e(D) = 0 and the remainder above will be 0.
The rule followed by the receiver is to decide that the frame is error-free if this remainder is 0 and to
decide that there are errors otherwise.
When errors occur
The receiver fails to detect the errors only if this remainder is 0; this occurs only if e(D), is itself some
code word. In other words, is undetectable if and only if
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
55. Parity Check Code
RJEs: Remote job entry points
If a double error occurs, say in positions i and j,
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
From the argument above, Dj is not divisible by g(D) or by any factor of
g(D); thus, e(D) fails to be detected only if is divisible by g(D).
For any binary polynomial
g(D) of degree L, there is some smallest n for which is divisible
by g(D). It
is known from the theory of finite fields that this smallest n can be no
larger than
moreover, for all L > 0, there are special L-degree polynomials, called
primitive
polynomials, such that this smallest n is equal to 2L - 1.
56. Parity Check Code
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
Thus, if g(D) is chosen to be such a primitive polynomial of degree L, and if the frame length is restricted
to be at most , then cannot be divisible by g(D); thus, all double errors are detected.
58. Parity Check Code
RJEs: Remote job entry points
Some CRC polynomials that are actually used
•CRC-8: x8+x2+x+1
• Used in: 802.16 (along with error correction).
•CRC-CCITT:
•x16+x12+x5+1
• Used in: HDLC, SDLC, PPP Default
•IBM-CRC-16 (ANSI):
•x16+x15+x2+1
•802.3:
x32+x26+x23+x22 +x16+x12+x11+x10 +x8+x7+x5+x4+x2+x+1
• Append 32 bits to the message.
• Detects all bursts of length 32 or less.
59. Automatic Repeat Request (ARQ)
RJEs: Remote job entry points
Objective: Detect frames with errors
and request the transmitting DLC
module to retransmit erroneous
frames.
Correctness: Does the protocol
succeed in releasing each packet,
once and only once, without errors,
from the receiving DLC?
Efficiency: How much of the bit-
transmitting capability of the bit pipe
is wasted by unnecessary waiting
and by sending unnecessary
retransmissions?
60. Stop-and-Wait ARQ
RJEs: Remote job entry points
Ensure that each packet has been received correctly before initiating transmission of the next packet.
In transmitting packets from point A to B, the first packet is transmitted in the first frame, and then the
sender A waits for the acknowledgment (Ack).
Thus, If the frame is error-free, B sends an Ack back to A; if the frame is an error frame, B sends a
negative acknowledgment (called a Nak) back to A.
If an error-free frame is received at B, and the corresponding Ack frame to A is error-free, then A can
start to send the next packet in a new frame.
Alternatively, detected errors can occur either in the transmission of the frame or the return Ack or
Nak, and in either case A resends the old packet in a new frame. Finally, if either the frame or the
return ack or nak is lost, A must eventually time-out and resend the old packet.
61. Stop-and-Wait ARQ
RJEs: Remote job entry points
Potential malfunction: Delay
Case: Node A to time-out and resend a packet when the first transmission and/or the corresponding
Ack is abnormally delayed. If B receives both transmissions of the given packet correctly, B has no
way of knowing whether the second transmission is a new packet or a repetition of the old packet.
B should simply compare the packets to
resolve this issue, but as far as the DLC layer
is concerned, packets are arbitrary bit strings
and the first and second packets could be
identical; it would be a violation of the principle
of layering for the DLC layer to rely on higher
layers to ensure that successive packets are
different.
Solution: Use the sequence numbers
62. Stop-and-Wait ARQ
RJEs: Remote job entry points
Solution: The simplest solution to this problem is for the sending DLC module (at A) to use
a sequence number in the frame header to identify successive packets.
Problem with the unnumbered
Acks: If Acks can get lost on the
return channel, and thus when B
gets the same packet correctly
twice in a row, it has to send a
new Ack for the second reception
(see Fig. 2.19). After transmitting
the packet twice but receiving
only one Ack, node A could
transmit the next packet in
sequence, and then on receiving
the second Ack could interpret
that as an Ack for the new
packet, leading to a potential
failure of the system.
63. Request numbers and Piggyback
RJEs: Remote job entry points
To avoid the problem with the unnumbered Acks, use request numbers and overcome the
ambiguities about which frame is being Acked
Node B can request next awaited packet upon the receipt of each packet
Piggyback: In many applications, there is another stream of data from B to A, and in this case,
the frames from B to A carrying requests for new A to B packets must be interspersed with
data frames carrying data from B to A. It is also possible to "piggyback" these requests for
new packets into the headers of the data frames from B to A (see Fig. 2.20).
64. Delay to avoid the retransmission
RJEs: Remote job entry points
65. Algorithm: Pseudo code
RJEs: Remote job entry points
The algorithm at node A for A-to-B transmission:
1. Set the integer variable SN to 0.
2. Accept a packet from the next higher layer at A; if no packet is available, wait
until it is; assign number SN to the new packet.
3. Transmit the SNth packet in a frame containing SN in the sequence number field.
4. If an error-free frame is received from B containing a request number RN greater
than SN, increase SN to RN and go to step 2. If no such frame is received within
some finite delay, go to step 3.
1. Set the integer variable RN to 0 and then repeat steps 2 and 3 forever.
2. Whenever an error-free frame is received from A containing a sequence number
SN equal to RN, release the received packet to the higher layer and increment
RN.
3. At arbitrary times, but within bounded delay after receiving any error-free data
frame from A, transmit a frame to A containing RN in the request number field.
The algorithm at node B for A-to-B transmission:
66. Correctness of stop and wait
RJEs: Remote job entry points
An algorithm is safe if it never produces an incorrect result, which in this
case means never releasing a packet out of the correct order to the higher
layer at B.
An algorithm is live if it can continue forever to produce results (i.e., if it can
never enter a deadlock condition from which no further progress is
possible).
69. Go Back n-ARQ/sliding window ARQ protocol
RJEs: Remote job entry points
Advantage: In contrast to stop-and-wait ARQ, several successive packets can be sent
without waiting for the next packet to be requested.
It accepts packets only in the correct order and sends request numbers RN back to A;
the effect of a given request RN is to acknowledge all packets prior to RN and to
request transmission of packet RN.
The go back number n >= 1 in a go back n protocol is a parameter that determines how
many successive packets can be sent in the absence of a request for a new packet.
Specifically, node A is not allowed to send packet i +n before i has been acknowledged
(i.e., before i + 1 has been requested). Thus, if i is the most recently received request
from node B, there is a "window" of n packets, from i to i +n - 1, that the transmitter is
allowed to send.
As successively higher-numbered requests are received from B, this window slides
upward; thus go back n protocols are often called sliding window ARQ protocols.
70. Operation of go back 7 ARQ with piggybacking
RJEs: Remote job entry points
71. Sources of delay
RJEs: Remote job entry points
Even in the absence of transmission errors, there are several sources of delay between
the time that a packet is first assembled into a frame at A and the time when A receives
an acknowledgment of the packet.
Sources of delay:
Transmission time of the frame
Propagation delay
Wait until the frame in transmission at Rx side is completed
Transmission time of the frame carrying the acknowledgment
Propagation delay in the reverse direction (B-to-A)
72. Effect of a transmission error on go back 4
RJEs: Remote job entry points
The second frame from A,
carrying packet 1, is received
in error at node B. Node B
continues to look for packet 1
and to transmit RN = 1 in
frames from B to A. Packets
2, 3, and 4 from A all arrive at
B in error-free frames but are
not accepted since node B is
looking only for packet 1.
It would be more efficient for
node B to buffer packets 2, 3,
and 4, thus avoiding the
necessity for A to retransmit
them after packet 1 is finally
retransmitted. Such a
buffering strategy is called
selective repeat ARQ
73. Effect of transmission errors in the reverse direction for go back 4
RJEs: Remote job entry points
74. Effect of delayed feedback for go back 4
RJEs: Remote job entry points
Impact of short frames in one direction and long frames in the other
75. Algorithm: Pseudo code
RJEs: Remote job entry points
The transmitter uses two integer variables, SNmin and SNmax to keep track of its operations. SNmin
denotes the smallest-numbered packet that has not yet been acknowledged (i.e., the lower end of the
window).
SNmax denotes the number of the next packet to be accepted from the higher layer. Thus the DLC layer
is attempting to transmit packets SNmin to SNmax - 1.
The go back n algorithm at node A for A-to-B transmission:
1. Set the integer variables SNmin and SNmax to 0.
2. Do steps 3, 4, and 5 repeatedly in any order. There can be an arbitrary but bounded delay between the
time when the conditions for a step are satisfied and when the step is executed.
3. If SNmax < SNmin + n, and if a packet is available from the higher layer, accept a new packet into the
DLC, assign number SNmax to it, and increment SNmax.
4. If an error-free frame is received from B containing a request number RN greater than SNmax , increase
SNmin to RN.
5. If SNmin < SNmax, and no frame is currently in transmission, choose some number SN, SNmin < SNmax;
transmit the SNth packet in a frame containing SN in the sequence number field. At most a bounded delay
is allowed between successive transmissions of packet SNmin over intervals when SNmin does not change.
76. Algorithm: Pseudo code
RJEs: Remote job entry points
The go back n algorithm at node B for A-to-B transmission:
1. Set the integer variable RN to 0 and repeat steps 2 and 3 forever.
2. Whenever an error-free frame is received from A containing a sequence number
SN equal to RN. release the received packet to the higher layer and increment
RN.
3. At arbitrary times, but within bounded delay after receiving any error-free data
frame from A, transmit a frame to A containing RN in the request number field.
77. Exercise
RJEs: Remote job entry points
Problem statement: Considering the stop and wait protocol, for the given
communication link the link capacity is 100 kbps, the latency or propagation
delay is 40 ms, frame processing delay is 1 µs, frame transmission delay is
10 ms, frame size is 1 kbits.
What is the minimum wait duration?
What is the throughput or the maximum link capacity utilization of the
system?
In order to improve the throughput or link capacity utilization, we would
like to employ Go Back and N-ARQ protocol. What is the optimal
window size to achieve the maximum link capacity utilization? Assume
there are no errors or fame losses.
79. Correctness of go back n
RJEs: Remote job entry points
The safety property of the go back n algorithm is exactly the same as for
stop and wait. (Release/Deliver the packets in the correct order)
To verify the liveness property, assume That i is the value of SNmin at
node A at a given time t1 (see Fig. 2.28). Let t2 be the time at which
packet i is received error-free and released to the higher layer at node B;
let t2 = Infinite) if this event never occurs.
Similarly, let t3 be the time at which SNmin is increased beyond i and let t3
=Infinite, if this never occurs. We will show that t3 is finite and that t1 < t3
and t2 < t3.
Hence the protocol is a live.
81. Correctness of go back n
RJEs: Remote job entry points
Let RN(t) be the value of the variable RN at node B as a function of time t and let SNmin (t) be the
corresponding value of SNmin at node A.
It is seen directly from the algorithm statement that SNmin(t) and RN(t) are non-decreasing in t.
Also, since SNmin(t) is the largest request number (if any) received from B up to time t, SNmin(t) =<
RN(t).
By definition of t2 and t3, RN(t) is incremented to i + 1 at t2 and SNmin(t) is increased beyond i at
t3. Using the fact that SNmin(t) =< RN(t), it follows that t2 < t3. Note that it is possible that t2 < t1,
since packet i might have been received error-free and released at B before time t1 and even
before SN, in became equal to i.
From the algorithm statement, node A transmits packet i repeatedly, with finite delay between
successive transmissions, from t1 until t3. If t1 < t2, then RN(t) = i for t1=< t=<t2, so the first
error-free reception of packet i after t1 will be accepted and released to the higher layer at B.
Since t2 < t3, node A will retransmit packet i until this happens. Since there is a probability q > 0
that each retransmission is received correctly, and retransmissions occur within finite intervals,
the time from t1 to t2 is finite.
B (whether t1 < t2 , or vice versa) transmits frames carrying RN>= i + 1 from time t2 until some
such frame is received error-free at A at time t3. Since node A is also transmitting frames in this
interval, the delay between subsequent transmissions from B is finite, and, since q > 0, the
interval from t2 to t3 is finite. Thus the interval from t1 to t3 is finite and the algorithm is live.
82. Go back n with modulus m > n
RJEs: Remote job entry points
It will now be shown that
if the sequence number
SN and the request
number RN are sent
modulo m, for some m
strictly greater than the
go back number n, the
correctness of go back n
is maintained as long as
we re-impose the
condition that frames do
not get out of order on
the links. To demonstrate
this correctness, we first
look more carefully at the
ordering of events when
ordinary integers are
used for SN sand RN.
83. Go back n with modulus m > n.
RJEs: Remote job entry points
Consider the transmission of an
arbitrary frame from node A to B.
Suppose that the frame is generated at
time t1 and received at t2 (see Fig.
2.29). The sequence number SN of the
frame must lie in node A's window at
time t1, so
SN and RN(t2) are both contained in
the interval from SNmin(t1) to SNmin (t1)
+n, and thus must satisfy (eq. 2.26)
84. Go back n with modulus m > n.
RJEs: Remote job entry points
Now suppose that when packet number SN is sent, the accompanying
sequence number is sent modulo m, and let sn denote SN mod m.
Step 3 of the algorithm at node B must then be modified to: If an error-
free frame is received from A containing a sequence number sn equal
to RN mod m, release the received packet to the higher layer and
increment RN.
Since m > n by assumption, we see from Eq. (2.26) that sn = RN mod
m will be satisfied if and only if the packet number SN is equal to RN;
thus, the algorithm still works correctly.
85. Go back n with modulus m > n.
RJEs: Remote job entry points
Now suppose that RN is sent modulo m, and let
rn = RN mod m. Step 4 of the algorithm at node
A must then be modified to: If an
error-free frame is received from B containing
SNmin mod m, then increment SNmin until rn =
SNmin mod m.
Because of the range of RN in Eq. (2.27), we
see that this new rule is equivalent to the old
rule, and it is sufficient to send request numbers
modulo m.
At this point, however, we see that it is
unnecessary for SNmin, SNmax, and RN to be
saved at nodes A and B as ordinary integers;
everything can be numbered modulo m, and the
algorithm has been demonstrated to work
correctly for m>n.
86. Algorithm: Pseudo code
RJEs: Remote job entry points
The go back n algorithm at node A for modulo m operation, m>n:
1. Set the modulo m variables SNmin and SNmax to 0.
2. Do steps 3, 4, and 5 repeatedly in any order. There can be an arbitrary but bounded delay
between the time when the conditions for a step are satisfied and when the step is executed.
3. If (SNmax - SNmin ) mod m < n, and if a packet is available from the higher layer, accept a
new packet into the DLC, assign number SNmax to it, and increment SNmax to (SNmax + 1) mod
m.
4. If an error-free frame is received from B containing a request number RN, and (RN - SNmin)
mod m ≤ (SNmax - SNmin) mod m, set SNmin to equal RN.
5. If and no frame is currently in transmission, choose some number SN
such that (SN - SNmin ) mod m < (SNmax - SNmin ) mod m transmit packet SN in a frame
containing SN in the sequence number field.
87. RJEs: Remote job entry points
The go back n algorithm at node B for modulo m operation, m>n
1. Set the modulo m variable RN to 0.
2. Whenever an error-free frame is received from A containing a sequence
number SN equal to RN, release the received packet to the higher layer and
increment RN to (RN + 1) mod m.
3. At arbitrary times, but within bounded delay after receiving any error-free
data frame from A, transmit a frame to A containing RN in the request
number field.
Algorithm: Pseudo code
88. Selective Repeat ARQ
RJEs: Remote job entry points
Even if unnecessary retransmissions are avoided, go back n protocols must retransmit at least one
round-trip-delay worth of frames when a single error occurs in an awaited
Selective repeat ARQ can be used to increase efficiency
The basic idea of selective repeat ARQ for data on a link from A to B is to accept out-of-order packets
and to request retransmissions from A only for those packets that are not correctly received.
If p is the probability of frame error, the expected number η of packets delivered to B per frame from
A to B is bounded by
(1 – p) is also called the throughput
The throughput of this ideal is shown in Problem 2.26 to be where β is the expected number of
frames in a round-trip delay interval. This indicates that the increase in throughput available with
selective repeat is significant only when pβ is appreciable relative to 1.
92. Protocol Functions
RJEs: Remote job entry points
Encapsulation
Fragmentation and reassembly
Connection control
Ordered delivery
Flow control
Error control
Addressing
Multiplexing
Transmission services
Ref. Book: Data and Computer Communication by William Stallings
93. Encapsulation
RJEs: Remote job entry points
Data usually transferred in blocks
Protocol data units (PDUs)
Each PDU contains data and control information
Some PDUs only control
Three categories of control
Address
Of sender and/or receiver
Error-detecting code
E.g. frame check sequence
Protocol control
Additional information to implement protocol functions
Addition of control information to data is encapsulation
Data accepted or generated by entity and encapsulated into PDU
Containing data plus control information
e.g. TFTP, HDLC, frame relay, ATM, AAL5 (Figure 11.15), LLC, IEEE 802.3, IEEE
802.11
Ref. Book: Data and Computer Communication by William Stallings
94. Fragmentation and Reassembly
RJEs: Remote job entry points
Exchange data between two entities
Characterized as sequence of PDUs of some bounded size
Application level message
Lower-level protocols may need to break data up into smaller blocks
Communications network may only accept blocks of up to a certain size
ATM 53 octets
Ethernet 1526 octets
More efficient error control
Lesser retransmission
Equitable access to shared transmission
Prevent station monopolizing medium
Smaller buffers
Provision of checkpoint and restart/recovery operations
Ref. Book: Data and Computer Communication by William Stallings
95. Disadvantages of Fragmentation
RJEs: Remote job entry points
Make PDUs as large as possible because
PDU contains some control information
Smaller block, larger overhead
PDU arrival generates interrupt
Smaller blocks, more interrupts
More time processing smaller, more
numerous PDUs
Ref. Book: Data and Computer Communication by William Stallings
96. Reassembly
RJEs: Remote job entry points
Segmented data must be reassembled into messages
More complex if PDUs out of order
Ref. Book: Data and Computer Communication by William Stallings
97. PDUS and Fragmentation
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
98. Connection Control
RJEs: Remote job entry points
Connectionless data transfer
Each PDU treated independently
E.g. datagram
Connection-oriented data transfer
E.g. virtual circuit
Connection-oriented preferred (even required) for lengthy exchange of data
Or if protocol details must be worked out dynamically
Logical association, or connection, established between entities
Three phases occur
Connection establishment
Data transfer
Connection termination
May be interrupt and recovery phases to handle errors
Ref. Book: Data and Computer Communication by William Stallings
99. Sequencing
RJEs: Remote job entry points
Many connection-oriented protocols use sequencing
e.g. HDLC, IEEE 802.11
PDUs numbered sequentially
Each side keeps track of outgoing and incoming
numbers
Supports three main functions
Ordered delivery
Flow control
Error control
Not found in all connection-oriented protocols
E.g.frame relay and ATM
All connection-oriented protocols include some way of
identifying connection
Unique connection identifier
Combination of source and destination addresses
Ref. Book: Data and Computer Communication by William Stallings
100. Ordered Delivery
RJEs: Remote job entry points
PDUs may arrive out of order
Different paths through network
PDU order must be maintained
Number PDUs sequentially
Easy to reorder received PDUs
Finite sequence number field
Use modulo maximum numbering
Maximum sequence number greater than maximum number
of PDUs that could be outstanding
In fact, maximum number may need to be twice of the
maximum number of PDUs that could be outstanding
e.g. selective-repeat ARQ
Ref. Book: Data and Computer Communication by William Stallings
101. Flow Control
RJEs: Remote job entry points
Control the data-rate
Stop-and-wait
Each PDU must be acknowledged before next sent
Credit
Amount of data that can be sent without acknowledgment
E.g. sliding-window
Must be implemented in several protocols
Network traffic control
Buffer space
Application overflow
E.g. waiting for disk access
Ref. Book: Data and Computer Communication by William Stallings
102. Error Control
RJEs: Remote job entry points
Guard against loss or damage
Error detection and retransmission
Sender inserts error-detecting code in PDU
E.g. CRC
Receiver checks code on incoming PDU
If error, discard and request for the retransmission
If transmitter doesn’t get acknowledgment in reasonable time, retransmit
Error-correction code
E.g. Forward Error Correction (FEC)
Enables receiver to detect and possibly correct errors
Error control is performed at various layers of protocol
Between station and network
Inside network
Ref. Book: Data and Computer Communication by William Stallings
103. Addressing
RJEs: Remote job entry points
Addressing level
Addressing scope
Connection identifiers
Addressing mode
Ref. Book: Data and Computer Communication by William Stallings
104. Addressing Level
RJEs: Remote job entry points
Addressing level refers to the level in the communications architecture at
which an entity is named
Unique address for each end system
e.g. workstation or server
And each intermediate system
e.g., router
Network-level address
IP address or internet address
OSI - network service access point (NSAP)
Used to route PDU through network
At destination data must routed to some process
Each process assigned an identifier
TCP/IP port
Service access point (SAP) in OSI
Ref. Book: Data and Computer Communication by William Stallings
105. Addressing Scope
RJEs: Remote job entry points
Global address
Global non-ambiguity
Identifies unique system
Synonyms permitted
System may have more than one global address
Global applicability
Possible at any global address to identify any other global address, in any system, by
means of global address of other system
Enables internet to route data between any two systems
Need unique address for each device interface on network
MAC address on IEEE 802 network and ATM host address
Enables network to route data units through network and deliver to intended system
Network attachment point address
Addressing scope only relevant for network-level addresses
Port or SAP above network level is unique within system
Need not be globally unique
E.g port 80 web server listening port in TCP/IP
Ref. Book: Data and Computer Communication by William Stallings
106. Connection Identifiers
RJEs: Remote job entry points
Entity 1 on system A requests connection to entity 2 on system B,
using global address B.2.
B.2 accepts connection
Connection identifier used by both entities for future transmissions
Reduced overhead
Generally shorter than global identifiers
Routing
Fixed route may be defined
Connection identifier identifies route to intermediate systems
Multiplexing
Entity may wish more than one connection simultaneously
PDUs must be identified by connection identifier
Use of state information
Once connection established, end systems can maintain state
information about connection
Flow and error control using sequence numbers
Ref. Book: Data and Computer Communication by William Stallings
107. Addressing Mode
RJEs: Remote job entry points
Usually address refers to single system or port
Individual or unicast address
Address can refer to more than one entity or port
Multiple simultaneous recipients for data
Broadcast for all entities within domain
Multicast for specific subset of entities
Ref. Book: Data and Computer Communication by William Stallings
108. Mulitplexing
• Network with one central processor but with shared communication links to devices.
RJEs: Remote job entry points
Multiplexers: To collect the traffic from a set of peripheral devices or users in the same area and to send it on a
single link to the control processor/computer
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
109. Advantages of the Multiplexing and Traffic Grooming
RJEs: Remote job entry points
Better capacity utilization
Lower #communication links
Lower space, power and cost per bit
Traffic Grooming: It is a process where small telecommunication services are groomed
in to the larger units and processed as a single entity. (e.g. 10x10 GbE LAN ->
1x100GbE LAN service)
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
110. Transmission Services
RJEs: Remote job entry points
Protocol may provide additional services to entities
Priority
Connection basis
On message basis
E.g. terminate-connection request
Quality of service (QOS)
E.g. minimum throughput or maximum delay threshold
Security
Security mechanisms, restricting access
These services depend on underlying transmission
system and lower-level entities
Ref. Book: Data and Computer Communication by William Stallings
111. Internetworking Terms (1)
RJEs: Remote job entry points
Communications Network
Facility that provides data transfer service
An internet
Collection of communications networks interconnected by
bridges and/or routers
The Internet
The global collection of thousands of individual machines
and networks
Intranet
Corporate internet operating within the organization
Uses Internet (TCP/IP and http) technology to deliver
documents and resources
Ref. Book: Data and Computer Communication by William Stallings
112. Internetworking Terms (2)
RJEs: Remote job entry points
End System (ES)
Device attached to one of the networks of an internet
Supports end-user applications or services
Intermediate System (IS)
Device used to connect two networks
Permits communication between end systems attached to different
networks
Bridge
IS used to connect two LANs using similar LAN protocols
Address filter passing on packets to the required network only
OSI layer 2 (Data Link)
Router
Connects two (possibly dissimilar) networks
Uses internet protocol present in each router and end system
OSI Layer 3 (Network)
Ref. Book: Data and Computer Communication by William Stallings
113. Internet Protocol (IP)
RJEs: Remote job entry points
• IP provides connectionless (datagram) service
• Each packet treated separately
• Network layer protocol common to all routers
– which is the Internet Protocol (IP)
Ref. Book: Data and Computer Communication by William Stallings
114. Connectionless Internetworking
RJEs: Remote job entry points
• Advantages
– Flexible and robust
• e.g. in case of congestion or node failure, packets find their way easier
than connection-oriented services
– No unnecessary overhead for connection setup
– Can work with different network types
• does not demand too much services from the actual network
• Disadvantage: Unreliable
– Best effort: Not guaranteed delivery (no throughput guarantee, no
delay guarantee,…)
– Not guaranteed order of delivery
• Packets can take different routes
– Unreliable: Reliability is responsibility of next layer up (e.g. TCP)
Ref. Book: Data and Computer Communication by William Stallings
115. Internet Protocols
RJEs: Remote job entry points
Application
TCP
IP
Data Link
Application
TCP
IP
Network
Access
Application protocol
TCP protocol
IP protocol IP protocol
Data
Link
Data
Link
IP
Data
Link
Data
Link
IP
Data
Link
Data
Link
Data
Link
IP protocol
Router
Router Host
Host
Ref. Book: Data and Computer Communication by William Stallings
116. IP Operation
RJEs: Remote job entry points
Link Access Procedure for Frame Relay (or LAPF), Logical Link Control (LLC)
Ref. Book: Data and Computer Communication by William Stallings
117. Network Design Issues
RJEs: Remote job entry points
• Routing
• Datagram lifetime
• Fragmentation and re-assembly
• Error control
• Flow control
• Addressing
Ref. Book: Data and Computer Communication by William Stallings
118. Routing
RJEs: Remote job entry points
• End systems and routers maintain routing tables
– Indicate next router to which datagram should be sent
– Static
• Tables do not change but may contain alternative routes
– Dynamic
• If needed, the tables are dynamically updated
• Flexible response to congestion and errors
• status reports issued by neighbors about down routers
• Source routing
– Source specifies route as sequential list of routers to be
followed
– useful, for example, if the data is top secret and should
follow a set of trusted routers.
• Route recording
– routers add their address to datagrams
– good for tracing and debugging purposes
Ref. Book: Data and Computer Communication by William Stallings
119. Datagram Lifetime
RJEs: Remote job entry points
• Datagrams could loop indefinitely
– Not good
• Unnecessary resource consumption
• Transport protocol needs upper bound on datagram life
• Datagram marked with lifetime
– Time To Live (TTL) field in IP
– Once lifetime expires, datagram discarded (not forwarded)
– Hop count
• Decrement time to live on passing through each router
– Time count
• Need to know how long since last router
• global clock is needed
Ref. Book: Data and Computer Communication by William Stallings
120. Fragmentation and Re-assembly
RJEs: Remote job entry points
• Different maximum packet sizes for different
networks
– routers may need to split the datagrams into
smaller fragments
• When to re-assemble
– At destination
– Intermediate reassembly
• Need large buffers at routers
• All fragments must go through same router
– Inhibits dynamic routing
Ref. Book: Data and Computer Communication by William Stallings
121. IP Fragmentation
RJEs: Remote job entry points
• In IP, reassembly is at destination only
• Uses fields in header
– Data Unit Identifier – In order to uniquely
identify datagram
– Source and destination addresses
1. Upper protocol layer (e.g. TCP)
2. Identification supplied by that layer
– Data length
• Length of user data in octets (if fragment,
length of fragment data)
• Actually header contains total length incl.
header but data length can be calculated
– Offset
• Position of fragment of user data in original
datagram (position of the first byte of the
fragment)
• In multiples of 64 bits (8 octets)
– More flag
• Indicates that this is not the last fragment (if
this flag is 1)
Ref. Book: Data and Computer Communication by William Stallings
122. Dealing with Failure
RJEs: Remote job entry points
• Re-assembly may fail if some fragments get
lost
• Need to detect failure
• Re-assembly time out
– Assigned to first fragment to arrive
– If timeout expires before all fragments arrive,
discard partial data
• Use packet lifetime (time to live in IP)
– If time to live runs out, kill partial data
Ref. Book: Data and Computer Communication by William Stallings
123. Error Control
RJEs: Remote job entry points
• In IP, delivery is not guaranteed
• Router may attempt to inform source if packet discarded, if
possible
– specify the reason of drop, e.g. for time to live expiration,
congestion, bad checksum (error detected)
• Datagram identification needed
• When source receives failure notification, it
– may modify transmission strategy
– may inform high layer protocol
• Note that such a failure notification is not guaranteed
Ref. Book: Data and Computer Communication by William Stallings
124. Flow Control (in IP layer)
RJEs: Remote job entry points
• Allows routers and/or stations to limit rate of
incoming data
• Limited in connectionless systems
• Send flow control packets
– Requesting reduced flow
• e.g. ICMP
Ref. Book: Data and Computer Communication by William Stallings
125. Internet Protocol (IP) Version 4
RJEs: Remote job entry points
• Part of TCP/IP
– Used by the Internet
• Specifies interface with higher layer
– e.g. TCP
• Specifies protocol format and mechanisms
• RFC 791
– www.rfc-editor.org
• Replaced or will be replaced by IPv6 (see later)
Ref. Book: Data and Computer Communication by William Stallings
126. Internet Protocol (IP) Version 4
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
127. IP Services
RJEs: Remote job entry points
• Information and commands exchanged across
adjacent layers (e.g. between IP and TCP)
• Primitives (functions to be performed)
– Send
• Request transmission of data unit
– Deliver
• Notify user of arrival of data unit
• Parameters
– Used to pass data and control info
Ref. Book: Data and Computer Communication by William Stallings
128. Parameters (1)
RJEs: Remote job entry points
• Source IP address
• Destination IP address
• Protocol
– Recipient e.g. TCP
• Type of Service Indicators
– Specify treatment of data unit during
transmission through networks
• Identification
– Uniquely identifies PDU together with source,
destination IP addresses and user protocol
– Needed for re-assembly and error reporting
Ref. Book: Data and Computer Communication by William Stallings
129. Parameters (2)
RJEs: Remote job entry points
• Don’t fragment indicator
– Can IP fragment data?
– If not, may not be possible to deliver
• Time to live (initial TTL value)
• Data length
• Options
• Data from/to upper layer
Ref. Book: Data and Computer Communication by William Stallings
130. Options
RJEs: Remote job entry points
• Security
– security label - mostly for military applications
• Source routing
• Route recording
• Stream identification
– identifies reserved resources for stream traffic
(like video)
• Time-stamping
– added by source and routers
Ref. Book: Data and Computer Communication by William Stallings
131. Type of Service Indicators
RJEs: Remote job entry points
• Requests for service quality
– now different QoS (Quality of Service) mechanisms are used,
but this is out of scope of this course
• Precedence
– 8 levels
• Reliability
– Normal or high
• Delay
– Normal or low
• Throughput
– Normal or high
Ref. Book: Data and Computer Communication by William Stallings
132. IPv4 Header
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
Internet Header Length (IHL), Differentiated Services (DS), Explicit congestion notification (ECN)
133. Header Fields (1)
RJEs: Remote job entry points
• Version
– Currently 4 (IP v4)
• Internet header length
– In 32 bit words
– Including options
• Type of service
• Total length
– Of datagram, in octets
Ref. Book: Data and Computer Communication by William Stallings
134. Header Fields (2)
RJEs: Remote job entry points
• Identification
– Sequence number
– Used with addresses and user protocol to identify
datagram uniquely
• Flags
– More bit
– Don’t fragment
• Fragmentation offset
• Time to live
• Protocol
– Next higher layer to receive data field at destination
Ref. Book: Data and Computer Communication by William Stallings
135. Header Fields (3)
RJEs: Remote job entry points
• Header checksum
– Reverified and recomputed at each router
– 16 bit ones complement sum of all 16 bit words in
header
– Set to zero during calculation
• Source address
• Destination address
• Options
• Padding
– To fill to multiple of 32 bits long
Ref. Book: Data and Computer Communication by William Stallings
136. Data Field
RJEs: Remote job entry points
• Carries user data from next layer up
• Integer multiple of 8 bits long (octet)
• Max length of datagram (header plus data)
65,535 octets
Ref. Book: Data and Computer Communication by William Stallings
137. IPv4 Address Formats
RJEs: Remote job entry points
• 32 bit global Internet
address
• Network part and host part
• All-zero host part
identifies the network
• All-one host part means
broadcast (limited to
current network)
Ref. Book: Data and Computer Communication by William Stallings
Class A: Few networks, each with many hosts
Class B: Medium number of networks, each with a medium number of hosts
Class C: Many networks, each with a few hosts
138. IP Addresses - Class A
RJEs: Remote job entry points
• 32 bit global internet address
• Network part and host part
• All zero
– Special meaning (means “this
computer”)
• 01111111 (127) (network part )
reserved for loopback
– Generally 127.0.0.1 is used
• Range 1.x.x.x to 126.x.x.x
– 10.x.x.x is for private networks
• Few networks - many hosts
• All networks have been allocated
Ref. Book: Data and Computer Communication by William Stallings
139. IP Addresses - Class B
RJEs: Remote job entry points
• Starts with binary 10
• Range 128.x.x.x to 191.x.x.x
– Second octet is also part of the
network id.
• 14-bit network, 16-bit host
number
– 214 = 16,384 class B addresses
– 216 = 65,536 hosts per network
• Actually minus 2 due to network and
broadcast addresses
• All networks have been allocated
Ref. Book: Data and Computer Communication by William Stallings
140. IP Addresses - Class C
RJEs: Remote job entry points
• Start binary 110
• Range 192.x.x.x to 223.x.x.x
• Second and third octets are also
part of network address
• 221 = 2,097,152 addresses
(networks)
• 256 – 2 = 254 hosts per network
• Nearly all allocated
Ref. Book: Data and Computer Communication by William Stallings
141. IPv4 Address Formats
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
E.g.10.250.1.1
E.g.150.10.15.0
E.g. 192.14.2.0
Exercise: Identify
the class address
http://172.20.0.20
2/nitw_prm/index.
aspx
142. Special IP address forms
RJEs: Remote job entry points
Prefix
(network)
Suffix (host) Type & Meaning
all zeros all zeros this computer
(used during
bootstrap)
network address all zeros identifies network
network address all ones broadcast on the
specified network
all ones all ones broadcast on local
network
127 any loopback (for
testing purposes)
Ref. Book: Data and Computer Communication by William Stallings
143. Subnets and Subnet Masks
RJEs: Remote job entry points
• Allow arbitrary complexity of internetworked LANs within organization
– By not having one network class for each LAN within the organization
– Each such LAN is called a subnet
• Such a network with several subnets looks like a single network from the
point of view of the rest of internet
• Each subnet is assigned a subnet number
• Host portion of address partitioned into subnet number and host number
• Local routers route within subnetted network
• Subnet mask indicates which bits are network/subnet number and which
are host number. Applying a subnet mask to an IP address separates
network address from host address.
– Subnet mask must be in the form of several 1's followed by several 0's (total 32 bits)
- 111..111000…0
– number of 0's is used to determine the number of hosts in that subnet (see next
example)
Ref. Book: Data and Computer Communication by William Stallings
144. Subnet Mask Calculation (Exercise)
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
145. Routing Using Subnets
RJEs: Remote job entry points
Subnet Mask:
255.255.255.224
Addresses start with
192, so class C
addresses. Last octet is
for Subnet number and
Host number
224 -> 11100000 in
binary last 5 bits are
for Host number,
previous 3 bits are for
Subnet number
Don't forget! All zero
host number identifies
the subnet and all ones
is used for broadcast
Ref. Book: Data and Computer Communication by William Stallings
146. Custom subnet mask (Exercise)
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
Problem statement: Take a single network, which has an IP 193.100.10.0 and distribute it into 16
smaller networks. The external world still sees the network as 193.100.10.0, but the internal
computers and routers see 16 Independent smaller subnets.
IP Address: 193 . 100 . 10 . 0
Custom Subnet Mask: 255.255.255.240
Network Subnet Host
IP Address: 1 1 0 0 0 0 0 1. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 1 0 1 0 1 0 (193 . 100 . 10 . 42)
Custom Subnet Mask: 1 1 1 1 1 1 1 1. 1 1 1 1 1 1 1 1 .1 1 1 1 1 1 1 1. 1 1 1 1 0 0 0 0 (255.255.255.240)
AND operation: 1 1 0 0 0 0 0 1. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 1 0 0 0 0 0 (193 . 100 . 10 . 32)
Network Subnet Host
IP Address: 1 1 0 0 0 0 0 1. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 0 0 0 0 0 0 (193 . 100 . 10 . 0)
Custom Subnet Mask: 1 1 1 1 1 1 1 1. 1 1 1 1 1 1 1 1 .1 1 1 1 1 1 1 1. 1 1 1 1 0 0 0 0 (255. 255. 255. 240)
AND operation: 1 1 0 0 0 0 0 1. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 0 0 0 0 0 0 (193 . 100 . 10 . 0)
Applying a subnet mask to an IP address separates network address from host address. The network
bits are represented by the 1's in the mask, and the host bits are represented by 0's. Performing a
bitwise logical AND operation on the IP address with the subnet mask produces the network address.
Belongs to which subnet, tells the subnet ID
147. Custom subnet mask (Exercise)
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
Problem statement: Take a single network has an IP 193.100.10.0 and distribute it into 16 smaller
networks. The external world still sees the network as 193.100.10.0, but the internal computers and
routers see 16 Independent smaller subnets.
IP Address: 193 . 100 . 10 . 0
Custom Subnet Mask: 255.255.255.240
Address Ranges:
SubNet-1: 193.10.10.0 to 193.100.10.15 (Customer-1)
SubNet-2: 193.100.10.16 to 193.100.10.31 (Customer-2)
SubNet-3: 193.100.10.32 to 193.100.10.47 (Customer-3)
SubNet-4: 193.100.10.48 to 193.100.10.63 (Customer-4)
SubNet-5: 193.100.10.64 to 193.100.10.79 (Customer-5)
SubNet-6: 193.100.10.80 to 193.100.10.95 (Customer-6)
SubNet-7: 193.100.10.96 to 193.100.10.111 (Customer-7)
SubNet-8: 193.100.10.112 to 193.100.10.127 (Customer-8)
SubNet-9: 193.100.10.128 to 193.100.10.143 (Customer-9)
SubNet-10: 193.100.10.144 to 193.100.10.159 (Customer-10)
SubNet-11: 193.100.10.160 to 193.100.10.175 (Customer-11)
SubNet-12: 193.100.10.176 to 193.100.10.191 (Customer-12)
SubNet-13: 193.100.10.192 to 193.100.10.207 (Customer-13)
SubNet-14: 193.100.10.208 to 193.100.10.223 (Customer-14)
SubNet-15: 193.100.10.224 to 193.100.10.239 (Customer-15)
SubNet-16: 193.100.10.240 to 193.100.10.255 (Customer-16)
193 . 100 . 10 . 42
SubNet-1 (Customer-1),
Useful range of addresses:
193.10.10.1 to 193.100.10.14
Q. Why?
148. Classless Inter Domain Routing (CIDR)
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings and online sources
Classless Inter Domain Routing (CIDR) was invented to keep the Internet from running out of IP Addresses.
The IPv4, a 32-bit, addresses have a limit of 4,294,967,296 (232) unique IP addresses. The classful address
scheme (Class A, B and C) of allocating IP addresses in 8-bit increments can be very wasteful. With classful
addressing scheme, a minimum number of IP addresses allocated to an organization is 256 (Class C).
Giving 256 IP addresses to an organization only requiring 15 IP addresses is wasteful.
Also, an organization requiring more than 256 IP addresses (let's say 1,000 IP addresses) is assigned a
Class B, which allocates 65,536 IP addresses. Similarly, an organization requiring more than 65,636 (65,634
usable IPs) is assigned a Class A network, which allocates 16,777,216 (16.7 Million) IP addresses. This type
of address allocation is very wasteful.
With CIDR, a network of IP addresses is allocated in 1-bit increments as opposed to 8-bits in classful
network. The use of a CIDR notated address can easily represent classful addresses (Class A = /8, Class B
= /16, and Class C = /24). The number next to the slash (i.e. /8) represents the number of bits assigned to
the network address. The example shown above can be illustrated with CIDR as follows:
Network Subnet Host
IP Address: 1 1 0 0 0 0 0 1. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 0 0 0 0 0 0 (193 . 100 . 10 . 0/28)
Custom Subnet Mask: 1 1 1 1 1 1 1 1. 1 1 1 1 1 1 1 1 .1 1 1 1 1 1 1 1. 1 1 1 1 0 0 0 0 (255.255.255.240)
AND operation: 1 0 1 0 1 1 0 0. 0 1 1 0 0 1 0 0. 0 0 0 0 1 0 1 0. 0 0 0 0 0 0 0 0 (193 . 100 . 10 . 0/28)
149. Hostel Work
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
18.15 What is the difference between the subnet mask for a Class A address with 16 bits for the
subnet ID and a class B address with 8 bits for the subnet ID?
18.17 Given a network address of 192.168.100.0 and a subnet mask of 255.255.255.192,
a. How many subnets are created?
b. How many hosts are there per subnet?
18.19 In contemporary routing and addressing, the notation commonly used is called classless
interdomain routing or CIDR. With CIDR, the number of bits in the mask is indicated in the following
fashion: 192.168.100.0/24. This corresponds to a mask of 255.255.255.0. If this example would
provide for 256 host addresses on the network, how many addresses are provided with the following?
a. 192.168.100.0/23
b. 192.168.100.0/25
18.21 Using your IP address and your mask, what is your network address? This is determined by
converting the IP address and the mask to binary and then proceeding with a bitwise logical AND
operation. For example, given the address 172.16.45.0 and the mask 255.255.224.0, we would
discover that the network address would be 172.16.32.0.
Practice exercises on IP: http://www.ece.virginia.edu/mv/edu/7457/lectures/IP/IP-exer.pdf
150. IP v6 - Version Number
RJEs: Remote job entry points
• IP v 1-3 defined and replaced
• IP v4 – last version
• IP v5 - stream protocol
– Connection oriented internet layer protocol
• IP v6 - replacement for IP v4
– During the initial development it was called IPng
(Next Generation)
Ref. Book: Data and Computer Communication by William Stallings
151. Driving Motivation to change IP
RJEs: Remote job entry points
• Address space exhaustion
– Two level addressing (network and host) wastes space
– Network addresses used even if not connected to Internet
– Growth of networks and the Internet
– Extended use of TCP/IP
• e.g. for POS terminals
• Wireless nodes
• Vehicles
• Current trend: Internet of Things
– Single address per host
• Requirements for new types of service
Ref. Book: Data and Computer Communication by William Stallings
152. IPv6 Enhancements (1)
RJEs: Remote job entry points
• Expanded address space
– 128 bit
• Improved option mechanism
– Separate optional headers between IPv6 header
and transport layer header
– Most are not examined by intermediate routes
• Improved speed and simplified router processing
• Easier to extend options
• Address auto configuration
– Dynamic assignment of addresses
Ref. Book: Data and Computer Communication by William Stallings
153. IPv6 Enhancements (2)
RJEs: Remote job entry points
• Increased addressing flexibility
– Anycast - delivered to one of a set of nodes
– Improved scalability of multicast addresses
• Support for resource allocation
– Replaces type of service
– Labeling of packets to particular traffic flow
– Allows special handling
– e.g. real time video
Ref. Book: Data and Computer Communication by William Stallings
154. IPv6 PDU (Packet) Structure
RJEs: Remote job entry points
IPv6 header + optional
extension headers
Ref. Book: Data and Computer Communication by William Stallings
155. Extension Headers
RJEs: Remote job entry points
• Hop-by-Hop Options
– special options that require hop-by-hop
processing
• Routing
– Similar to source routing
• Fragment
– fragmentation and reassembly information
• Authentication
– Integrity and Authentication
• Encapsulating security payload
– Privacy and Confidentiality (plus optional
authentication)
• Destination options
– Optional info to be processed at destination
node
Ref. Book: Data and Computer Communication by William Stallings
156. IPv6 Header
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
157. IPv6 Header Fields (1)
RJEs: Remote job entry points
• Version
– 6 (in binary: 0110)
• DS/ECN
– Previously, Traffic Class (Types of
Service)
• Classes or priorities of packet
– Now interpretation is different
as discussed in v4
• Flow Label
– Identifies a sequence of packets
(a flow) that has special
handling requirements
• Payload length
– Length of all extension headers
plus user data
Ref. Book: Data and Computer Communication by William Stallings
Differentiated Services (DS), Explicit congestion notification (ECN)
158. IPv6 Header Fields (2)
RJEs: Remote job entry points
• Next Header
– Identifies type of the following header
• Extension or next layer up
• Hop Limit
– Remaining number of hops
– As in TTL of IPv4, decremented by one
at each router
– Packet discarded if reaches zero
• Source Address
• Destination address
• Longer header but less number of
fields
– simplified processing
Ref. Book: Data and Computer Communication by William Stallings
159. Flow Label
RJEs: Remote job entry points
• Flow
– Sequence of packets from particular source to particular destination
– Source desires special handling by routers
– Uniquely identified by source address, destination address, and 20-bit
flow label
• Router's view
– Sequence of packets that share some attributes affecting how packets
handled
• Path, resource allocation, discard needs, security, etc.
– Handling must somehow be arranged a priority
• Negotiate handling ahead of time using a control protocol
Ref. Book: Data and Computer Communication by William Stallings
160. IPv6 Addresses
RJEs: Remote job entry points
• 128 bits long
• Assigned to interface
– An interface may have multiple addresses
• network/host id parts
– arbitrary boundary
– like CIDR addresses in v4
• Multilevel hierarchy
– ISP - Organization - Site - …
– Helps faster routing due to aggregation of IP addresses
• Smaller routing tables and faster lookup
• IPv4 addresses are mapped into v6 addresses
• Three types of address
Ref. Book: Data and Computer Communication by William Stallings
161. Differences Between v4 and v6 Headers
RJEs: Remote job entry points
• No header length (IHL) in v6
– main header is of fixed length in v6
• No Protocol info in v6
– next header field will eventually point to
the transport layer PDU
• No fragmentation related fields in v6
base header
– fragmentation is an extension header
• No checksum in v6
– rely on reliable transmission medium and
checksums of upper and lower layers
• Flow label is part of base header in v6
– it was in the options part in v4
Ref. Book: Data and Computer Communication by William Stallings
Internet Header Length (IHL), Differentiated Services (DS), Explicit congestion notification (ECN)
162. Differences Between v4 and v6 Headers
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
163. IPv6 Extension Headers
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
164. Hop-by-Hop Options
RJEs: Remote job entry points
• Next header
• Header extension length
• Options
– Type (8 bits), length (8 bits) , option data (variable size)
• type also says what should router do if it does not recognize the option
– Pad1 / Pad N
• Insert one/N byte(s) of padding into Options area of header
• Ensure header is multiple of 8 bytes
– Jumbo payload (Jumbogram)
• Option data field (32 bits) gives the actual length of packet in octets
– excluding the base IPv6 header
• For packets over 216 -1 = 65,535 octets, we use this option
– up to 232 octets
– for large video packets
– Router alert
• Tells the router that the content of packet is of interest to the router
• Provides support for Resource Reservation Protocol (RSVP)
Ref. Book: Data and Computer Communication by William Stallings
165. Fragmentation Header
RJEs: Remote job entry points
• Fragmentation only allowed at source
• No fragmentation at intermediate routers
• Node must perform path discovery to find
smallest MTU of intermediate networks
• Source fragments to match MTU
• Otherwise limit to 1280 octets
Ref. Book: Data and Computer Communication by William Stallings
Maximum Transmission Unit (MTU)
166. Fragmentation Header Fields
RJEs: Remote job entry points
• Next Header
• Reserved
• Fragmentation offset
• Reserved
• More flag
• Identification
Ref. Book: Data and Computer Communication by William Stallings
167. Routing Header
RJEs: Remote job entry points
• List of one or more intermediate nodes to be
visited
• Next Header
• Header extension length
• Routing type
• Segments left
– i.e. number of nodes still to be visited
Ref. Book: Data and Computer Communication by William Stallings
168. Destination Options
RJEs: Remote job entry points
• Same format as Hop-by-Hop options header
• RFC 2460 defines Pad 1/Pad N as in hop-by-
hop options header
Ref. Book: Data and Computer Communication by William Stallings
169. Migration to IPv6
RJEs: Remote job entry points
• Not an overnight operation
– lots of investments in v4 networking equipment and software
– currently equipment and software are IPv6 compatible
– however, turning the key on synchronously all around the
world is not easy
• isolated v6 islands
– communicating via tunnels
• eventually those islands will get larger and merge
• Specialized networks of small devices with IPv6 addresses
– e.g. a network of sensors that covers a large area for security
protection
Ref. Book: Data and Computer Communication by William Stallings
170. Internet control protocols
RJEs: Remote job entry points
• Internet control protocols
– Internet Control Message Protocol (ICMP)
– Dynamic Host Configuration Protocol (DHCP)
– Address Resolution Protocol (ARP)
Ref. Online sources
171. Internet Control Message Protocol (ICMP)
RJEs: Remote job entry points
• Internet Control Message Protocol - RFC 792
– Sister protocol of IP
– All IP implementations should also implement ICMP
• ICMP is an error-reporting protocol network devices like routers use
to generate error messages to the source IP address when network
problems prevent delivery of IP packets.
• Feedback about problems
– e.g. datagram discarded, router’s buffer full
• Some simple applications can be implemented using ICMP
– e.g. ping
• ICMP Source Quench packet to slow down the transmission rate.
Ref. Book: Data and Computer Communication by William Stallings
172. ICMP Message Formats
RJEs: Remote job entry points Ref. Book: Data and Computer Communication by William Stallings
174. How to Bootstrap an End Host?
RJEs: Remote job entry points Ref. Online sources
• Bootstrapping: Self-starting process that is supposed to
proceed without external input
• What IP address the host should use?
• What local Domain Name System (DNS) server to use?
– DNS is responsible for translating domain names into IP addresses
• How to send packets to remote destinations?
• How to ensure incoming packets arrive?
host host DNS
...
host host DNS
...
router router
1.2.3.0/24
1.2.3.7 1.2.3.156
???
1.2.3.19
router
175. Avoiding Manual Configuration
RJEs: Remote job entry points Ref. Online sources
host host DNS
...
host host DNS
...
router router
1.2.3.0/24
1.2.3.7 1.2.3.156
???
1.2.3.19
router
• Dynamic Host Configuration Protocol (DHCP)
– End host learns how to send packets
– Learn IP address, DNS servers, and gateway
• Address Resolution Protocol (ARP)
– Others learn how to send packets to the end host
– Learn mapping between IP address and MAC
address
176. Key Ideas in Both Protocols
RJEs: Remote job entry points
• Broadcasting: when in doubt, shout!
– Broadcast query to all hosts in the local-area-network when you
don’t know how to identify the right one
• Caching: remember the past for a while
– Store the information you learn to reduce overhead
– Remember your own address & other host’s addresses
• Soft state: eventually forget the past
– Associate a time-to-live field with the information and either
refresh or discard the information
– Key for robustness in the face of unpredictable change
Ref. Online sources
177. Need Another Kind of Identity
RJEs: Remote job entry points
• LANs are designed for arbitrary network protocols
– Not just for IP and the Internet
• Using IP address would require reconfiguration
– Every time the adapter is rebooted or powered up
• Broadcasting all data to all adapters is expensive
– Requires every host on the LAN to inspect each packet
Motivates separate Medium Access Control (MAC) addresses
Ref. Online sources
178. MAC/Physical Address vs. IP Address
RJEs: Remote job entry points
• MAC/Physical addresses
– Hard-coded in read-only memory when adaptor is built
– Like a social security number
– 48 bits contains six groups of two hexadecimal digits
(e.g., 00-0E-9B-6E-49-76)
– Portable, and can stay the same as the host moves
– Used to get packet between interfaces on same network
• IP addresses
– Configured, or learned dynamically
– Like a postal mailing address
– Hierarchical name space of 32 bits (e.g., 12.178.66.9)
– Not portable, and depends on where the host is attached
– Used to get a packet to destination IP subnet
Ref. Online sources
179. MAC Addresses on a LAN
RJEs: Remote job entry points
1A-2F-BB-76-09-AD
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
71-65-F7-2B-08-53
LAN
Ref. Online sources
181. Bootstrapping Problem
RJEs: Remote job entry points
host host host
...
DHCP server
• Bootstrapping: Self-starting process that is supposed to proceed
without external input
• Host doesn’t have an IP address yet
– So, host doesn’t know what source address to use
• Host doesn’t know who to ask for an IP address
– So, host doesn’t know what destination address to use
• Solution: shout to discover a server who can help
– Broadcast a server-discovery message
– Server sends a reply offering an address
Ref. Online sources
182. Broadcasting
RJEs: Remote job entry points
• Broadcasting: sending to everyone
– Special destination address: FF-FF-FF-FF-FF-FF
– All adapters on the LAN receive the packet
• Delivering a broadcast packet
– Easy on a “shared media”
– Like shouting in a room – everyone can hear you
– E.g., Ethernet, wireless, and satellite links
Ref. Online sources
183. Response from the DHCP Server
RJEs: Remote job entry points
• DHCP “offer message” from the server
– Configuration parameters (proposed IP address, mask, gateway router,
DNS server, ...)
– Lease time (the time during that the information remains valid)
• Multiple servers may respond
– Multiple servers on the same broadcast media
– Each may respond with an offer
– The client can decide which offer to accept
• Accepting one of the offers
– Client sends a DHCP request echoing the parameters
– The DHCP server responds with an ACK to confirm
– The other servers see they were not chosen
Ref. Online sources
186. Deciding What IP Address to Offer
RJEs: Remote job entry points
• Server as centralized configuration: static database
– All parameters are statically configured in the server
– E.g., a dedicated IP address for each MAC address
– Avoids complexity of configuring hosts directly
– … while still having a permanent IP address per host
• Or, dynamic assignment of IP addresses
– Server maintains a pool of available addresses
– … and assigns them to hosts on demand
– Leads to less configuration complexity
– … and more efficient use of the pool of addresses
– Though, it is harder to track the same host over time
Ref. Online sources
187. Soft State: Refresh or Forget
RJEs: Remote job entry points
• Why is a lease time necessary?
– Rrelease the IP address (DHCP RELEASE)
• E.g., “ipconfig /release” at the DOS prompt
• E.g., clean shutdown of the computer
– But, the host might not release the address
• E.g., the host crashes (blue screen of death!)
• E.g., buggy client software
– And you don’t want the address to be allocated forever
• Performance trade-offs
– Short lease time: returns inactive addresses quickly
– Long lease time: avoids overhead of frequent renewals
Ref. Online sources
188. Now the Host Knows Things
RJEs: Remote job entry points
• IP address
• Mask
• Gateway router
• DNS server
• And can send packets to
other IP addresses
– But, how to learn the MAC
address of the destination?
Ref. Online sources
189. Sending Packets Over a Link
RJEs: Remote job entry points
• Adaptors only understand MAC addresses
– Translate the destination IP address to MAC address
– Encapsulate the IP packet inside a link-level frame
host host host
...
1.2.3.156
router
1.2.3.53
1.2.3.53
1.2.3.156
IP packet
Ref. Online sources
190. Address Resolution Protocol (ARP) Table
RJEs: Remote job entry points
• Every node maintains an ARP table
– (IP address, MAC address) pair
• Consult the table when sending a packet
– Map destination IP address to destination MAC address
– Encapsulate and transmit the data packet
• But, what if the IP address is not in the table?
– Sender broadcasts: “Who has IP address 1.2.3.156?”
– Receiver responds: “MAC address 58-23-D7-FA-20-B0”
– Sender caches the result in its ARP table
• No need for network administrator to get involved
host host host
...
1.2.3.156
router
1.2.3.53
Ref. Online sources
191. Example: A Sending a Packet to B
RJEs: Remote job entry points
How does host A send an IP packet to host B?
A sends packet to R, and R sends packet to B.
A
R
B
Ref. Online sources
192. Host A Decides to Send Through R
RJEs: Remote job entry points
• Host A constructs an IP packet to send to B
– Source 111.111.111.111, destination 222.222.222.222
• Host A has a gateway router R
– Used to reach destinations outside of 111.111.111.0/24
– Address 111.111.111.110 for R learned via DHCP
A
R
B
Ref. Online sources
193. Host A Sends Packet Through R
RJEs: Remote job entry points
• Host A learns the MAC address of R’s interface
– ARP request: broadcast request for 111.111.111.110
– ARP response: R responds with E6-E9-00-17-BB-4B
• Host A encapsulates the packet and sends to R
A
R
B
Ref. Online sources
194. R Decides how to Forward Packet
RJEs: Remote job entry points
• Router R’s adaptor receives the packet
– R extracts the IP packet from the Ethernet frame
– R sees the IP packet is destined to 222.222.222.222
• Router R consults its forwarding table
– Packet matches 222.222.222.0/24 via other adaptor
A
R
B
Ref. Online sources
195. R Sends Packet to B
RJEs: Remote job entry points
• Router R’s learns the MAC address of host B
– ARP request: broadcast request for 222.222.222.222
– ARP response: B responds with 49-BD-D2-C7-56-2A
• Router R encapsulates the packet and sends to B
A
R
B
Ref. Online sources
196. Internet control protocols: Summary
RJEs: Remote job entry points
• Important control functions
– Bootstrapping
– Error reporting and monitoring
• Internet control protocols
– Internet Control Message Protocol (ICMP)
– Dynamic Host Configuration Protocol (DHCP)
– Address Resolution Protocol (ARP)
Ref. Online sources
197. Routing algorithms
RJEs: Remote job entry points
Shortest path routing
Distance vector routing
Link state routing
Routing Information Protocol (RIP)
Open Shortest Path First (OSPF)
Inter-domain routing
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
198. Routing algorithms
RJEs: Remote job entry points
The two main functions performed by a routing algorithm are:
The selection of routes for various origin-destination pairs
Delivery of messages to their correct destination
Quality of Service (QoS):
Throughput
Latency or Delay
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
199. Delay-Throughput operating curves
RJEs: Remote job entry points
Delay depends on
The routes chosen by the routing
algorithm
Buffering and Congestion
Processing time
Optimal balance between throughput and
delay (i.e., Rejecting offered load when delay
starts getting excessive).
As the routing algorithm is more successful in
keeping delay low, the flow control algorithm
allows more traffic into the network.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
200. Impact of the route selection on Delay
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
201. Impact of the route selection on Throughput
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
202. Efficient Routing algorithm (Objectives)
RJEs: Remote job entry points
https://www.google.com/search?biw=1366&bih=662&tbm=isch&sa=1&ei=tCKIW_a1ENGoyAOpk72wDg&q=delay+vs+traffic+load&oq=delay+vs+traffic+load&gs_l=img.3...106339.107441.0.108937.5.5.0.0.0.0.212.799.0j4j1.5.0....0...1c.1.64.img..0.0.0....0.7VrGCy8ydzI#imgrc=rlht
VdEspcS25M:
Design objectives of the Routing algorithm:
Increase throughput or maintain the same value of average delay
per packet under high offered load conditions.
Decrease average delay per packet under low and moderate offered
load conditions.
203. Minimum Weighted Spanning Tree construction
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
204. Minimum Weighted Spanning Tree construction
RJEs: Remote job entry points Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager
205. Bellman-Ford algorithm
RJEs: Remote job entry points
Node 1 is the “destination” node
and consider the problem of
finding a shortest path from
every node to node 1.
Same algorithm can be applied
to find the shortest path
between each source and
destination pair
dij =∞ if (i, j) is not an arc of the
graph.
Ref. Book: Data Networks by Dimitri Bertsekas and Robert Gallager