Computer Networks 20APC0516 Min
Computer Networks 20APC0516 Min
Prepared By
Course Outcomes:
CO1: understand the basics of data communications and networking
CO2: classify the functionalities of two sub layers of Data link Layer
CO3: know briefly about Network Layer through algorithms and protocols
CO4: distinguish the services provided by Transport Layer
CO5: recognize the services offered by Application Layer to the user
UNIT - I 9 Hrs
Introduction: Data Communications, Networks, Network Types, Internet History, Standards and Administration.
Network Models: Protocol Layering, TCP/IP Protocol Suite, The OSI Model
Introduction to Physical Layer: Data and Signals, Transmission Impairment, Data Rate Limits, Performance.
Transmission Media: Introduction, Guided Media, Unguided Media, Switching: Introduction, Circuit Switched Networks,
Packet Switching
UNIT - II 9Hrs
The Data Link Layer: Introduction, Link layer addressing, Error detection and Correction: Cyclic codes, Checksum,
Forward error correction, Data link control: DLC Services, Data link layer protocols, HDLC, Point to Point Protocol.
Media Access control: Random Access, Controlled Access, Channelization, Connecting devices and virtual LANs:
Connecting Devices.
UNIT - III 9 Hrs
The Network Layer: Network layer design issues, Routing algorithms, Congestion control algorithms, Quality of service,
Internetworking.
The network layer in the Internet: IPV4 Addresses, IPV6, Internet Control protocol, OSPF, BGP, IP, ICMPv4, IGMP.
UNIT - IV 9 Hrs
The Transport Layer: The Transport Service, Elements of Transport Protocols, Congestion Control, The internet transport
protocols: UDP, TCP, Performance problems in computer networks, Network performance measurement.
UNIT - V 9 Hrs
The Application Layer: Introduction, Client-Server Programming, WWW and HTTP, FTP, e-mail, TELNET, Secure Shell,
Domain Name System, SNMP.
Textbooks:
1. “Data communications and networking”, Behrouz A. Forouzan, Mc Graw Hill Education, 5th edition, 2012.
2. “Computer Networks”, Andrew S. Tanenbaum, Wetherall, Pearson, 5th edition, 2010.
Reference Books:
1. Data Communication and Networks, Bhushan Trivedi, Oxford
2. “Internetworking with TCP/IP – Principles, protocols, and architecture - Volume 1, Douglas E. Comer, 5th edition, PHI
3. “Computer Networks”, 5E, Peterson, Davie, Elsevier.
4. “Introduction to Computer Networks and Cyber Security”, Chawan- Hwa Wu, Irwin, CRC Publications.
5. “Computer Networks and Internets with Internet Applications”, Comer.
Online Learning Resources:
https://www.youtube.com/watch?v=O--rkQNKqls&list=PLbRMhDVUMngf-peFloB7kyiA40EptH1up
DATA COMMUNICATIONS
The process of exchanging data or information between a source and receiver is called data
communication.
Ex: When we communicate, we are sharing information. This sharing can be local or remote.
Between individuals, local communication usually occurs face to face, while remote communication
takes place over distance.
Data Representation:
Information today comes in different forms such as text, numbers, images, audio, and video.
Text: In data communications, text is represented as a bit pattern, a sequence of bits (Os or Is).
Different sets of bit patterns have been designed to represent text symbols. Each set is called a code,
and the process of representing symbols is called coding. Today, the prevalent coding system is called
Unicode, which uses 32 bits to represent a symbol or character used in any language in the world. The
American Standard Code for Information Interchange (ASCII), developed some decades ago in the
United States, now constitutes the first 127 characters in Unicode and is also referred to as Basic
Latin.
Data Flow : Communication between two devices can be simplex, half-duplex, or full-duplex as shown
in the Figure.
Simplex:
In simplex mode, the communication is unidirectional, as on a one-way street. Only one of the
two devices on a link can transmit; the other can only receive. Keyboards and traditional monitors are
examples of simplex devices. The keyboard can only introduce input; the monitor can only accept
output. The simplex mode can use the entire capacity of the channel to send data in one direction.
Half-Duplex:
In half-duplex mode, each station can both transmit and receive, but not at the same time.
When one device is sending, the other can only receive, and vice versa . The half-duplex mode is like a
one-lane road with traffic allowed in both directions.
In a half-duplex transmission, the entire capacity of a channel is taken over by whichever of the two
devices is transmitting at the time. Walkie-talkies and CB (citizens band) radios are both half-duplex
systems.
NETWORKS
A Computer network to mean a collection of autonomous computers interconnected by a single
technology. Two computers are said to be interconnected if they are able to exchange information.
The connection need not be via a copper wire; fiber optics, microwaves, infrared, and
communication satellites can also be used. The computers are autonomous, which are not forcibly
started or controlled by other one. A system with one control unit and many slaves is not a computer
network.
A computer network consists of end systems (or) nodes which are capable of transmitting of
information, and which communicate through transit system interconnecting them. The transit
system is also called an interconnection subsystem or simply a subnetwork. An end system
comprises of terminals, software and peripherally forming an autonomous system capable of
performing information processing.
The old model of a single computer serving all of the organization's computational
needs has been replaced by one in which a large number of separate but
interconnected computers do the job. These systems are called computer networks.
Network Criteria:
A network must be able to meet a certain number of criteria. The most important of these are
performance, reliability, and security.
Performance: It can be measured in many ways, including transit time and response time.
o Transit time is the amount of time required for a message to travel from one device to another.
o Response time is the elapsed time between an inquiry and a response.
The performance of a network depends on a number of factors, including the number of users, the type
of transmission medium, the capabilities of the connected hardware, and the efficiency of the
software.
Performance is often evaluated by two networking metrics: throughput and delay.
Reliability:
Network reliability is measured by the frequency of failure, the time it takes a link to recover from a
failure, and the network’s robustness in a catastrophe.
Security:
Network security issues include protecting data from unauthorized access, protecting data from
damage. Developing and implementing policies and procedures for recovery from breaches and data
losses.
Physical Topology
The term physical topology refers to the way in which a network is laid out physically. A network
topology is the arrangement of a network, including its nodes and connecting lines. There are two
ways of defining network geometry: the physical topology and the logical (or signal) topology.
There are four basic topologies possible: mesh, star, bus, and ring.
Mesh Topology
In a mesh topology, every device has a dedicated point-to-point link to every other device. The
term dedicated means that the link carries traffic only between the two devices it connects.
CN lecture notes Page 5
In a mesh topology, we need n (n – 1) / 2 duplex-mode links.
Every device on the network must have n – 1 input/output (I/O) ports to be connected to the other n
– 1 station.
Advantages:
The use of dedicated links guarantees that each connection can carry its own data load, thus
eliminating the traffic problems that can occur when links must be shared by multiple devices.
A mesh topology is robust. If one link becomes unusable, it does not incapacitate the entire
system.
There is the advantage of privacy or security. When every message travels along a dedicated
line, only the intended recipient sees it. Physical boundaries prevent other users from gaining
access to messages.
Finally, point-to-point links make fault identification and fault isolation easy.
Disadvantages:
Installation and reconnection are difficult.
The sheer bulk of the wiring can be greater than the available space can accommodate.
The hardware required to connect each link (I/O ports and cable) can be prohibitively expensive.
Ex: connection of telephone regional offices.
Star Topology
In a star topology, each device has a dedicated point-to-point link only to a central controller, usually
called a hub. The devices are not directly linked to one another. A star topology does not allow direct
traffic between devices.
The controller acts as an exchange: If one device wants to send data to another, it sends the data to the
controller, which then relays the data to the other connected device.
Advantages:
Less expensive than a mesh topology.
Easy to install and reconfigure.
Additions, moves, and deletions involve only one connection: between that device and the hub.
Bus Topology
A bus topology is example of multipoint Link. One long cable acts as a backbone to link all the
devices in a network.
Nodes are connected to the bus cable by drop lines and taps. A drop line is a connection running
between the device and the main cable. A tap is a connector that either splices into the main cable
or punctures the sheathing of a cable to create a contact w ith the metallic core.
Advantages:
Ease of installation.
A bus uses less cabling than mesh or star topologies.
Only the backbone cable stretches through the entire facility
Disadvantages:
It includes difficult reconnection and fault isolation.
Difficult to add new devices.
Signal reflection at the taps can cause degradation in quality.
Fault or break in the bus cable stops all transmission, even between devices on the same side of
the problem. The damaged area reflects signals back in the direction of origin, creating noise in
both directions.
Ring Topology
In a ring topology, each device has a dedicated point-to-point connection with only the two
devices on either side of it. A signal is passed along the ring in one direction, from device to device,
until it reaches its destination. Each device in the ring incorporates a repeater.
NETWORK TYPES
One network can be distinguished from another network based on few criteria such as size, Geographical
area, and ownership. There are 3 basic types of Networks. They are Local area networks and Wide Area
Networks
. Local Area Network (LAN): LAN’s, are privately-owned networks within a single building or campus
of up to a few kilometers in size. They are widely used to connect personal computers and workstations
in company offices and factories to share resources (e.g., printers) and exchange information.
Each host in a LAN has an identifier, an address that uniquely defines the host in the LAN.
A packet sent by a host to another host carries both the source host’s and the destination host’s
addresses.
LANs are distinguished from other kinds of networks b y three characteristics:
1) Their size
2) Their transmission technology, and
3) Their topology.
I. Size: LANs are restricted in size, which means that the worst-case transmission time is bounded
and known in advance.
II. Transmission technology: LANs consisting of a cable to which all the machines are attached.
Traditional LANs run at speeds of 10 Mbps to 100 Mbps, have low delay (microseconds or
nanoseconds), and make very few errors. NewerLANs operate at up to 10 Gbps. [(1 Mbps is
1,000,000 bits/sec) and gigabits/sec (1 Gbps is 1,000,000,000 bits/sec)].
Topology: Various topologies are possible for broadcast
Transmission lines: move bits between machines. They can be made of copper wire,
optical fiber, or even radio links.
Switching elements: These are specialized computers that connect three or more
transmission lines. When data arrive on an incoming line, the switching element must
choose an outgoing line on which to forward them. These switching computers have
been called as Router.
The collection of communication lines and routers (but not the hosts) form the subnet.
i. Point-to-Point WAN:
A point-to-point WAN is a network that connects two communicating devices through a
Internetwork:
When two or more networks are connected, they make an internetwork, or internet.
A collection of interconnected networks is called an internetwork or internet.
Internet is a collection of LANs connected by a WAN.
The Internet
Internet is composed of thousands of interconnected networks. The figure shows the Internet as
several backbones, provider networks, and customer networks.
The backbones are large networks are connected through some complex switching systems,
called peering points.
Provider networks are smaller networks that use the services of the backbones for a fee.
The customer networks use the services provided by the Internet
Backbones and provider networks are also called Internet Service Providers (ISPs). The
backbones are often referred to as international ISPs; the provider networks are often referred
to as national or regional ISPs.
INTERNET HISTORY
Early History
Before 1960, there were telegraph and telephone networks, suitable for constant-rate communication
at that time, which means that after a connection was made between two users, the encoded message
(telegraphy) or voice (telephony) could be exchanged. To handle bursty data we needed to invent
packet-switched network. Birth of Packet-Switched Networks
TCP/IP
In 1973 Cerf and Kahn outlined the protocols transmission control protocol (TCP) included
concepts such as encapsulation, the datagram, and the functions of a gateway.
A radical idea was the transfer of responsibility for error correction from the IMP to the host
machine. In TCP/IP, IP would handle datagram routing while TCP would be responsible for higher
level functions such as segmentation, reassembly, and error detection
In 1981, under a Defence Department contract, UC Berkeley modified the UNIX operating system to
include TCP/IP but it did much for the popularity of internetworking.
In 1983, TCP/IP became the official protocol for the ARPANET.
MILNET
In 1983, ARPANET split into two networks: Military Network (MILNET) for military users and
ARPANET for nonmilitary users.
CSNET
Computer Science Network (CSNET) was created in 1981 and it was sponsored by National
Science Foundation (NSF).
NSFNET
With the success of CSNET, the NSF in 1986 sponsored the National Science Foundation
Network (NSFNET), a backbone that connected five supercomputer centers located throughout the
United States.
ANSNET
In 1991, the U.S. government decided that NSFNET was not capable of supporting the rapidly
increasing Internet traffic. Three companies, IBM, Merit, and Verizon, filled the void by forming a
nonprofit organization called Advanced Network & Services (ANS) to build a new, high-speed
CN lecture notes Page 12
Internet backbone called Advanced Network Services Network (ANSNET).
Internet Today
The Internet today is a set of pier networks that provide services to the whole world.
World Wide Web
The Web was invented at CERN by Tim Berners-Lee. This invention has added the commercial
applications to the Internet.
Multimedia
Recent developments in the multimedia applications such as voice over IP (telephony), video over
IP (Skype), view sharing (YouTube), and television over IP (PPLive) has increased the number of
users and the amount of time each user spends on the network.
Peer-to-Peer Applications
Peer-to-peer networking is also a new area of communication with a lot of potential.
Maturity Levels
An RFC, during its lifetime, falls into one of six maturity levels: proposed standard, draft standard,
Internet standard, historic, experimental, and informational.
Proposed Standard: A proposed standard is a specification that is stable, well understood, and
of sufficient interest to the Internet community. At this level, the specification is usually tested
and implemented by several different groups.
Draft Standard: A proposed standard is elevated to draft standard status after at least two
successful independent and interoperable implementations. Barring difficulties, a draft
standard, with modifications if specific problems are encountered, normally becomes an
Internet standard.
Requirement Levels
RFCs are classified into five requirement levels: required, recommended, elective, limited use, and not
recommended.
Required: An RFC is labeled required if it must be implemented by all Internet systems to achieve
minimum conformance. For example, IP and ICMP (Chapter 19) are req uired protocols
Recommended: An RFC labeled recommended is not required for minimum conformance; it is
recommended because of its usefulness. For example, FTP and TELNET.
Elective: An RFC labeled elective is not required and not recommended. However, a system
can use it for its own benefit.
Limited Use: An RFC labeled limited use should be used only in limited situations.
Not Recommended. An RFC labeled not recommended is inappropriate for general use.
Normally a historic (deprecated) RFC may fall under this category
Internet Administration
General organization of Internet administration is:
ISOC
The Internet Society (ISOC) is an international, nonprofit organization formed in 1992 to provide
support for the Internet standards process. ISOC accomplishes this through maintaining and
supporting other Internet administrative bodies such as IAB, IETF, IRTF, and IANA. ISOC also
promotes research and other scholarly activities relating to the Internet.
IAB
The Internet Architecture Board (IAB) is the technical advisor to the ISOC. The main purposes
of the IAB are to oversee the continuing development of the TCP/IP Protocol Suite and to serve in a
technical advisory capacity to research members of the Internet community. IAB accomplishes this
through its two primary components, the Internet Engineering Task Force (IETF) and the Internet
Research Task Force (IRTF).
IETF
The Internet Engineering Task Force (IETF) is a forum of working groups managed by the
Internet Engineering Steering Group (IESG). IETF is responsible for identifying operational
problems and proposing solutions to these problems. IETF also develops and reviews specifications
NETWORK MODELS
Protocol Hierarchies
To reduce their design complexity, most networks are organized as a stack of layers or levels, each one
built upon the one below it. The name of each layer, the contents of each layer, and the function of each
layer differ from network to network. The purpose of each layer is to offer certain services to the higher
layers while shielding those layers from the details of how the offered services are actually implemented.
In a sense, each layer is a kind of virtual machine, offering certain services to the layer above it. This
concept is actually a familiar one and is used throughout computer science, where it is variously known
as information hiding, abstract data types, data encapsulation, and object-oriented programming. The
fundamental idea is that a particular piece of software (or hardware) provides a service to its users but
keeps the details of its internal state and algorithms hidden from them.
When layer ‘n’ on one machine carries on a conversation with layer ‘n’ on another machine, the
rules and conventions used in this conversation are collectively known as the layer n protocol. Basically,
a protocol is an agreement between the communicating parties on how communication is to proceed.
Violating the protocol will make communication more difficult, if not completely impossible.
A five-layer network is illustrated.
The entities comprising the corresponding layers on different machines are called peers.
The peers may be software processes, hardware devices, or even human beings.
In other words, it is the peers that communicate by using the protocol to talk to each other.
In reality, no data are directly transferred from layer n on one machine to layer n on another machine.
Instead, each layer passes data and control information to the layer immediately below it, until the
When network designers decide how many layers to include in a network and what each one should do,
one of the most important considerations is defining clean interfaces between the layers. Doing so, in
turn, requires that each layer perform a specific collection of well -understood functions.
In addition to minimizing the amount of information that must be passed between layers, clear cut
interfaces also make it simpler to replace one layer with a completely different protocol or
implementation (e.g., replacing all the telephone lines by satellite channels) because all that is required
of the new protocol or implementation is that it offer exactly the same set of services to its upstairs
neighbor as the old one did. It is common that different hosts use different implementations of the same
protocol (often written by different companies). In fact, the protocol itself can change in some layer
without the layers above and below it even noticing.
A set of layers and protocols is called network architecture.
The specification of architecture must contain enough information to allow an implementer to write the
program or build the hardware for each layer so that it will correctly obey the appropriate protocol.
Neither the details of the implementation nor the specification of the interfaces is part of the architecture
because these are hidden away inside the machines and not visible from the outside.It is not even
necessary that the interfaces on all machines in a network be the same, provided that each machine can
correctly use all the protocols.
A list of the protocols used by a certain system, one protocol per layer, is called a protocol stack.
4. Security: The last major design issue is to secure the network by defending it against different kinds
of threats. One of the threats we have mentioned previously is that of eavesdropping on
communications. Mechanisms that provide confidentiality defend against this threat, and they are used
in multiple layers. Mechanisms for authentication prevent someone from impersonating someone else.
They might be used to tell fake banking Web sites from the real one, or to let the cellular network check
that a call is really coming from your phone so that you will pay the bill. Other mechanisms for integrity
prevent surreptitious changes to messages, such as altering ‘‘debit my account $10’’ to ‘‘debit my
account $1000.’’
First, the server executes LISTEN to indicate that it is prepared to accept incoming connections. A
common way to implement LISTEN is to make it a blocking system call. After executing the primitive,
the server process is blocked until a request for connection appears.
Next, the client process executes CONNECT to establish a connection with the server. The CONNECT
call needs to specify who to connect to, so it might have a parameter giving the server’s address. The
operating system then typically sends a packet to the peer asking it to connect (1). The client process is
suspended until there is a response. When the packet arrives at the server, the operating system sees that
the packet is requesting a connection. It checks to see if there is a listener, and if so it unblocks the
listener.
Reference Models
The OSI Model
This model is based on a proposal developed by the International Standards Organization (ISO) as a
first step toward international standardization of the protocols used in the various layers (Day and
Zimmermann, 1983). It was revised in 1995(Day, 1995). The model is called the ISO-OSI (Open
Systems Interconnection) Reference Model because it deals with connecting open systems—that is,
systems that are open for communication with other systems.
The OSI model has seven layers. Each layer has specific functions. All layers work together in the
correct order to move data around a network
Deals with all aspects of physically moving data from one computer to the next
Converts data from the upper layers into 1s and 0s for transmission over media
Defines how data is encoded onto the media to transmit the data
Defined on this layer: Cable standards, wireless standards, and fiber optic standards.. Copper
wiring, fiber optic cable, radio frequencies, anything that can be used to transmit data is
defined on the Physical layer of the OSI Model
Encapsulation = frame
Requires MAC address or physical address
Two sublayers: Logical Link Control (LLC) and the Media Access Control (MAC)
Logical Link Control (LLC)–Data Link layer addressing, flow control, address notification,
error control
Media Access Control (MAC)–Determines which computer has access to the network
media at any given time, determines where one frame ends and the next one starts, called
frame Synchronization
Network Layer
Responsible for moving packets (data) from one end of the network to the other, called end-to-
end communications
May use a connection-oriented protocol such as TCP to ensure destination received segments
May use a connectionless protocol such as UDP to send segments without assurance of
delivery
Application Layer
Contains all services or protocols needed by application software or operating system to
communicate on the network
Examples
Firefox web browser uses HTTP (Hyper-Text Transport Protocol)
E-mail program may use POP3 (Post Office Protocol version 3) to read e-mails and
SMTP (Simple Mail Transport Protocol) to send e-mails
Summary:
The OSI model appeared after the TCP/IP protocol suite. TCP/IP protocol cannot be fully replaced
by the OSI for three reasons:
First, OSI was completed when TCP/IP was fully in place and a lot of time and money had been
spent on the suite; changing it would cost a lot.
Second, some layers in the OSI model were never fully defined.
Third, when OSI was implemented by an organization in a different application, it did not show a
high enough level of performance to entice the Internet authority to switch from the TCP/IP
protocol suite to the OSI model.
Transport Layer
Internet Layer
The network layer, also called the internet layer, deals with packets and connects independent
networks to transport the packets across network boundaries. The network layer protocols are
CN lecture notes Page 28
the Internet Protocol (IP) and the Internet Control Message Protocol (ICMP), which is used
for error reporting.
Host-to-network layer
The Host-to-network layer is the lowest layer of the TCP/IP reference model. It combines
the link layer and the physical layer of the ISO/OSI model. At this layer, data is transferred
between adjacent network nodes in a WAN or between nodes on the same LAN.
3. The data-link layer of the next link encapsulates the datagram in a frame and passes it to the
physical layer for transmission.
Addressing
It is worth mentioning another concept related to protocol layering in the Internet, addressing. As
we discussed before, we have logical communication between pairs of layers in this model. Any
communication that involves two parties needs two addresses: source address and destination
address. Although it looks as if we need five pairs of addresses, one pair per layer, we normally
have only four because the physical layer does not need addresses; the unit of data exchange at the
To be able to multiplex and demultiplex, a protocol needs to have a field in its header to identify to
which protocol the encapsulated packets belong. At the transport layer, either UDP or TCP can accept a
message from several application-layer protocols. At the network layer, IP can accept a segment from
TCP or a user datagram from UDP. IP can also accept a packet from other protocols such as ICMP,
IGMP, and so on. At the data-link layer, a frame may carry the payload coming from IP or other
protocols such as ARP.
Physical layer provides its services to Data-link layer. Data-link layer hands over frames to physical
layer. Physical layer converts them to electrical pulses, which represent binary data.The binary data is
then sent over the wired or wireless media.
Signals
Analog and Digital Signals: Like the data they represent, signals can be either analog or digital.
An analog signal has infinitely many levels of intensity (meaning strength/power) over a period of
time. As the wave moves from value A to value B, it passes through and includes an infinite number
of values along its path.
A digital signal, on the other hand, can have only a limited number of defined values. Although
each value can be any number, it is often as simple as 1 and 0.
The simplest way to show signals is by plotting them on a pair of perpendicular axes. The vertical
axis represents the value or strength of a signal. The horizontal axis represents time.
Figure 1.29 illustrates an analog signal and a digital signal. The curve representing the analog signal
passes through an infinite number of points. The vertical lines of the digital signal, however,
demonstrate the sudden jump that the signal makes from value to
Periodic and Non-periodic: Both analog and digital signals can take one of two forms: Periodic or
Non-periodic A periodic signal completes a pattern within a measurable time frame, called a period,
and repeats that pattern over subsequent identical periods. The completion of one full pattern is called
a cycle. A non-periodic signal changes without exhibiting a pattern or cycle that repeats over time.
Both analog and digital signals can be periodic or non-periodic.
In data communications, we commonly use periodic analog signals and non-periodic digital
signals.
Signals travel through transmission media, which are not perfect. The imperfection causes signal
impairment. This means that the signal at the beginning of the medium is not the same as the signal
at the end of the medium. What is sent is not what is received. Three causes of impairment are
attenuation, distortion, and noise.
Attenuation means a loss of energy. When a signal, simple or composite, travels through a
medium, it loses some of its energy in overcoming the resistance of the medium. That is why a wire
carrying electric signals gets warm, if not hot, after a while. Some of the electrical energy in the
signal is converted to heat. To compensate for this loss, amplifiers are used to amplify (meaning
enlarge on/go into detail/develop/expand/clarify/add details to) the signal.
Decibel: To show that a signal has lost or gained strength, engineers use the unit of the decibel. The
decibel (dB) measures the relative strengths of two signals or one signal at two different points. Note
that the decibel is negative if a signal is attenuated and positive if a signal is amplified.
Distortion means that the signal changes its form or shape. Distortion can occur in a composite signal
made of different frequencies. Each signal component has its own propagation speed through a
medium and, therefore, its own delay in arriving at the final destination. Differences in delay may
create a difference in phase if the delay is not exactly the same as the period duration.
Noise is another cause of impairment. Several types of noise, such as thermal noise, induced noise,
crosstalk, and impulse noise, may corrupt the signal.
Thermal noise is the random motion of electrons in a wire, which creates an extra signal not
originally sent by the transmitter.
Induced noise comes from sources such as motors and appliances. These devices act as a sending
antenna, and the transmission medium acts as the receiving antenna.
Crosstalk is the effect of one wire on the other. One wire acts as a sending antenna and the other as
the receiving antenna.
Impulse noise is a spike (a signal with high energy in a very short time) that comes from power
lines, lightning, and so on.
A very important consideration in data communications is how fast we can send data, in bits per
CN lecture notes Page 34
second, over a channel. Data rate depends on three factors:
Two theoretical formulas were developed to calculate the data rate: one by Nyquist for a noiseless
channel, another by Shannon for a noisy channel.
For a noiseless channel, the Nyquist bit rate formula defines the theoretical maximum bit rate
BitRate = 2 x bandwidth x log2L
In this formula, bandwidth is the bandwidth of the channel, L is the number of signal levels used to
represent data, and BitRate is the bit rate in bits per second. According to the formula, we might
think that, given a specific bandwidth, we can have any bit rate we want by increasing the number
of signal levels.
Although the idea is theoretically correct, practically there is a limit. When we increase the number
of signal levels, we impose a burden on the receiver.
Increasing the levels of a signal may reduce the reliability of the system .
In reality, we cannot have a noiseless channel; the channel is always noisy. In 1944, Claude
Shannon introduced a formula, called the Shannon capacity, to determine the theoretical highest
data rate for a noisy channel: Capacity = bandwidth x log 2 (1 + SNR)
In this formula, bandwidth is the bandwidth of the channel, SNR is the signal-to-noise ratio, and
capacity is the capacity of the channel in bits per second.
The Shannon capacity gives us the upper limit; the Nyquist formula tells us how many signal levels
we need.
PERFORMANCE:
One important issue in networking is the performance of the network—how good is it? There are
certain characteristics that measure the network performance which are given as follows:
Bandwidth in Bits per Seconds: The term bandwidth can also refer to the number of bits per second
that a channel, a link, or even a network can transmit. For example, one can say the bandwidth of a
Fast Ethernet network (or the links in this network) is a maximum of 100 Mbps. This means that
this network can send 100 Mbps.
Relationship: There is an explicit relationship between the bandwidth in hertz and bandwidth in bits
per second. Basically, an increase in bandwidth in hertz means an increase in bandwidth in bits per
second.
Throughput:
The throughput is a measure of how fast we can actually send data through a network. Although, at
first glance, bandwidth in bits per second and throughput seem the same, they are different. A link
may have a bandwidth of B bps, but we can only send T bps through this link with T always less
than B.
For example, we may have a link with a bandwidth of 1 Mbps, but the devices connected to the end
of the link may handle only 200 kbps. This means that we cannot send more than 200 kbps through
this link.
Imagine a highway designed to transmit 1000 cars per minute from one point to another. However,
if there is congestion on the road, this figure may be reduced to 100 cars per minute. The bandwidth
is 1000 cars per minute; the throughput is 100 cars per minute.
Latency (Delay):
The latency or delay defines how long it takes for an entire message to completely arrive at the
destination from the time the first bit is sent out from the source. We can say that latency is made of
four components: propagation time, transmission time, queuing time and processing delay.
Transmission Time: In data communications we don’t send just 1 bit, we send a message. The first
The first bit leaves earlier and arrives earlier; the last bit leaves later and arrives later. The
transmission time
of a message depends on the size of the message and the bandwidth of the channel.
Queuing Time: The third component in latency is the queuing time, the time needed for each
intermediate or end device to hold the message before it can be processed. The queuing time is not a
fixed factor; it changes with the load imposed on the network.
When there is heavy traffic on the network, the queuing time increases. An intermediate device,
such as a router, queues they arrived messages and processes them one by one. If there are many
messages, each message will have to wait.
Bandwidth-Delay Product
Bandwidth and delay are two performance metrics of a link. The bandwidth-delay product defines
the number of bits that can fill the link.
JITTER:
Another performance issue that is related to delay is jitter. We can roughly say that jitter is a
problem if different packets of data encounter different delays and the application using the data at
the receiver site is time-sensitive (audio and video data, for example). If the delay for the first
packet is 20 ms, for the second is 45 ms, and for the third is 40 ms, then the real-time application
that uses the packets endures jitter.
TRANSMISSION MEDIA
The media over which the information between two computer systems is sent, called transmission
media. Transmission media comes in two forms.
Guided Media
All communication wires/cables are guided media, such as UTP, coaxial cables, and fiber Optics. In this
media, the sender and receiver are directly connected and the information is send (guided) through it.
Unguided Media
Wireless or open air space is said to be unguided media, because there is no connectivity between the
sender and receiver. Information is spread over the air, and anyone including the actual recipient may
collect the information.
For example, a bank has to handle and transfer huge data of its customer, which stores a backup of it at
some geographically far-away place for security reasons and to keep it from uncertain calamities. If the
bank needs to store its huge backup data then its, transfer through internet is not feasible. The WAN
links may not support such high speed. Even if they do; the cost too high to afford.
In these cases, data backup is stored onto magnetic tapes or magnetic discs, and then shifted physically
at remote places.
Guided Media
STP cables comes with twisted wire pair covered in metal foil.
This makes it more indifferent to noise and crosstalk.
Coaxial Cable
Coaxial cable has two wires of copper. The core wire lies in the center and it is made of solid conductor.
The core is enclosed in an insulating sheath. The second wire is wrapped around over the sheath and that
too in turn encased by insulator sheath. This all is covered by plastic cover.
Narrow band PLC provides lower data rates up to 100s of kbps, as they work at lower frequencies (3-
5000 kHz).They can be spread over several kilometers.
Broadband PLC provides higher data rates up to 100s of Mbps and works at higher frequencies (1.8 –
250 MHz).They cannot be as much extended as Narrowband PLC.
Fiber Optics
Fiber Optic works on the properties of light. When light ray hits at critical angle it tends to refracts at 90
degree. This property has been used in fiber optic. The core of fiber optic cable is made of high quality
glass or plastic. From one end of it light is emitted, it travels through it and at the other end light detector
detects light stream and converts it to electric data.
Fiber Optic provides the highest mode of speed. It comes in two modes, one is
single mode fiber and second is multimode fiber. Single mode fiber can
carry a single ray of light whereas multimode is capable of carrying
multiple beams of light.
Unguided Media
Wireless transmission is a form of unguided media. Wireless communication involves no physical link
established between two or more devices, communicating wirelessly. Wireless signals are spread over in
the air and are received and interpreted by appropriate antennas.
When an antenna is attached to electrical circuit of a computer or wireless device, it converts the digital
data into wireless signals and spread all over within its frequency range. The receptor on the other end
receives these signals and converts them back to digital data.
Radio Transmission
Radio frequency is easier to generate and because of its large wavelength it can penetrate through walls
and structures alike. Radio waves can have wavelength from 1 mm – 100,000 km and have frequency
ranging from 3 Hz (Extremely Low Frequency) to 300 GHz (Extremely High Frequency). Radio
frequencies are sub-divided into six bands.
Radio waves at lower frequencies can travel through walls whereas higher RF can travel in straight line
and bounce back. The power of low frequency waves decreases sharply as they cover long distance.
High frequency radio waves have more power.
Lower frequencies such as VLF, LF, MF bands can travel on the ground up to 1000 kilometers, over the
earth’s surface.
Radio waves of high frequencies are prone to be absorbed by rain and other obstacles. They use
Ionosphere of earth atmosphere. High frequency radio waves such as HF and VHF bands are spread
upwards. When they reach Ionosphere, they are refracted back to the earth.
Microwave Transmission
Electromagnetic waves above 100 MHz tend to travel in a straight line and signals over them can be sent
by beaming those waves towards one particular station. Because Microwaves travels in straight lines,
both sender and receiver must be aligned to be strictly in line-of-sight.
Microwaves can have wavelength ranging from 1 mm – 1 meter and frequency ranging from 300 MHz
to 300 GHz.
Infrared Transmission
Infrared wave lies in between visible light spectrum and microwaves. It has wavelength of 700-nm to 1-
mm and frequency ranges from 300-GHz to 430-THz.
Infrared wave is used for very short range communication purposes such as television and it’s remote.
Infrared travels in a straight line hence it is directional by nature. Because of high frequency range,
Infrared cannot cross wall-like obstacles.
Light Transmission
Highest most electromagnetic spectrum which can be used for data transmission is light or optical
signaling. This is achieved by means of LASER.
Because of frequency light uses, it tends to travel strictly in straight line. Hence the sender and receiver
must be in the line-of-sight. Because laser transmission is unidirectional, at both ends of communication
the laser and the photo-detector need to be installed. Laser beam is generally 1mm wide hence it is a
work of precision to align two far receptors each pointing to lasers source.
We have switching at the physical layer, at the data-link layer, at the network layer, and even
logically at the application layer (message switching).
Introduction:
A network is a set of connected devices. Whenever we have multiple devices, we have the problem
of how to connect them to make one-to-one communication possible. One solution is to make a
point-to-point connection between each pair of devices (a mesh topology) or between a central
device and every other device (a star topology). These methods, however, are impractical and
wasteful when applied to very large networks.
The number and length of the links require too much infrastructure to be cost-efficient, and the
majority of those links would be idle most of the time. Other topologies employing multipoint
connections, such as a bus, are ruled out because the distances between devices and the total
number of devices increase beyond the capacities of the media and equipment.
A better solution is switching. A switched network consists of a series of interlinked nodes, called
switches. Switches are devices capable of creating temporary connections between two or more
devices linked to the switch. In a switched network, some of these nodes are connected to the end
systems (computers or telephones, for example). Others are used only for routing. Figure 1.50
shows a switched network.
The end systems (communicating devices) are labeled A, B, C, D, and so on, and the switches are
labeled I, II, III, IV, and V. Each switch is connected to multiple links.
we discuss only circuit switching and packet switching; message switching is more conceptual than
practical.
Switching at Data-Link Layer: At the data-link layer, we can have packet switching. However, the
term packet in this case means frames or cells. Packet switching at the data-link layer is normally
done using a virtual-circuit approach.
Switching at Network Layer: At the network layer, we can have packet switching. In this case,
either a virtual-circuit approach or a datagram approach can be used. Currently the Internet uses a
datagram approach, but the tendency is to move to a virtual -circuit approach.
Switching at Application Layer: At the application layer, we can have only message switching. The
communication at the application layer occurs by exchanging messages.
Figure shows a trivial circuit-switched network with four switches and four links. Each link
isdivided into n (n is 3 in the figure) channels by using FDM or TDM.
We have explicitly shown the multiplexing symbols to emphasize the division of the link into
channels even though multiplexing can be implicitly included in the switch fabric.
The end systems, such as computers or telephones, are directly connected to a switch. We have
shown only two end systems for simplicity. When end system A needs to communicate with end
system M, system A needs to request a connection to M that must be accepted by all switches as
well as by M itself. This is called the setup phase; a circuit (channel) is reserved on each link, and
the combination of circuits or channels defines the dedicated path. After the dedicated path made of
connected circuits (channels) is established, the data-transfer phase can take place. After all data
have been transferred, the circuits are torn down.
Before starting communication, the stations must make a reservation for the resources to
be used during the communication. These resources, such as channels (bandwidth in
FDM and time slots in TDM), switch buffers, switch processing time, and switch
input/output ports, must remain dedicated during the entire duration of data transfer until
CN lecture notes Page 44
the teardown phase.
Data transferred between the two stations are not packetized (physical layer transfer of
the signal). The data are a continuous flow sent by the source station and received by the
destination station, although there may be periods of silence.
There is no addressing involved during data transfer. The switches route the data based
on their occupied band (FDM) or time slot (TDM). Of course, there is end-to-end
addressing used during the setup phase.
THREE PHASES:
The actual communication in a circuit-switched network requires three phases: connection setup,
data transfer, and connection teardown.
SETUP PHASE: Before the two parties (or multiple parties in a conference call) can communicate,
a dedicated circuit (combination of channels in links) needs to be established. The end systems are
normally connected through dedicated lines to the switches, so connection setup means creating
dedicated channels between the switches.
DATA TRANSFER PHASE: After the establishment of the dedicated circuit (channels), the two
parties can transfer data.
TEARDOWN PHASE: When one of the parties needs to disconnect, a signal is sent to each switch
to release the resources.
Efficiency:
It can be argued that circuit-switched networks are not as efficient as the other two types of
networks because resources are allocated during the entire duration of the connection. These
resources are unavailable to other connections. In a telephone network, people normally terminate
the communication when they have finished their conversation.
However, in computer networks, a computer can be connected to another computer even if there is
no activity for a long time. In this case, allowing resources to be dedicated means that other
connections are deprived.
Delay:
Although a circuit-switched network normally has low efficiency, the delay in this type of network
is minimal. During data transfer the data are not delayed at each switch; the resources are allocated
for the duration of the connection. Figure shows the idea of delay in a circuit-switched network
when only two switches are involved.
The delay due to data transfer is the sum of two parts: the propagation time (slope of the colored
box) and data transfer time (height of the colored box), which can be very long. The third box
shows the time needed to tear down the circuit. We have shown the case in which the receiver
requests disconnection, which creates the maximum delay.
PACKET SWITCHING:
In data communications, we need to send messages from one end system to another. If the message
is going to pass through a packet-switched network, it needs to be divided into packets of fixed or
variable size. The size of the packet is determined by the n etwork and the governing protocol.
In packet switching, there is no resource allocation for a packet. This means that there is no
reserved bandwidth on the links, and there is no scheduled processing time for each packet.
Resources are allocated on demand. The allocation is done on a first come, first-served basis.
When a switch receives a packet, no matter what the source or destination is, the packet must wait if
there are other packets being processed. As with other systems in our daily life, this lack of
reservation may create delay. For example, if we do not have a reservation at a restaurant, we might
have to wait.
We can have two types of packet-switched networks: datagram networks and virtual circuit networks.
In a datagram network, each packet is treated independently of all others. Even if a packet is part
of a multipacket transmission, the network treats it as though it existed alone. Packets in this
approach are referred to as datagrams. Datagram switching is normally done at the network layer.
Figure shows how the datagram approach is used to deliver four packets from station A to station X.
The switches in a datagram network are traditionally referred to as routers. That is why we use a
different symbol for the switches in the figure.
In this example, all four packets (or datagrams) belong to the same message, but may travel different
paths to reach their destination. This is so because the links may be involved in carrying packets from
other sources and do not have the necessary bandwidth available to carry all the packets from A to X.
This approach can cause the datagrams of a transmission to arrive at their destination out of order with
different delays between the packets.
Packets may also be lost or dropped because of a lack of resources. In most protocols, it is the
responsibility of an upper-layer protocol to reorder the datagrams or ask for lost datagrams before
passing them on to the application.
The datagram networks are sometimes referred to as connectionless networks. The term connectionless
here means that the switch (packet switch) does not keep information about the connection state. There
are no setup or teardown phases. Each packet is treated the same by a switch regardless of its source or
destination.
ROUTING TABLE:
If there are no setup or teardown phases, how are the packets routed to their destinations in a datagram
network? In this type of network, each switch (or packet switch) has a routing table which is based on
the destination address. The routing tables are dynamic and are updated periodically. The destination
addresses and the corresponding forwarding output ports are recorded in the tables. Figure shows the
routing table for a switch.
The packet travels through two switches. There are three transmission times (3T), three
propagation delays (slopes 3τ of the lines), and two waiting times (w1 + w2). We ignore the
processing time in each switch. The total delay is
Total delay = 3T + 3τ + w1 + w2
As in a circuit-switched network, there are setup and teardown phases in addition to the data transfer
phase.
As in a datagram network, data are packetized and each packet carries an address in the header.
However, the address in the header has local jurisdiction (it defines what the next switch should be
and the channel on which the packet is being carried), not end-to-end jurisdiction.
As in a circuit-switched network, all packets follow the same path established during the
connection. A virtual-circuit network is normally implemented in the data-link layer, while a circuit-
switched network is implemented in the physical layer and a datagram network in the network
layer. But this may change in the future.
Figure 1.57 is an example of a virtual-circuit network. The network has switches that allow traffic
from sources to destinations. A source or destination can be a computer, packet switch, bridge, or
any other device that connects other networks.
VIRTUAL-CIRCUIT NETWORK
Addressing: In a virtual-circuit network, two types of addressing are involved: global and local
(virtual- circuit identifier).
Global Addressing: A source or a destination needs to have a global address—an address that
can be unique in the scope of the network or internationally if the network is part of an international
network.
However, we will see that a global address in virtual-circuit networks is used only to create a
virtual-circuit identifier.
Virtual-Circuit Identifier:
The identifier that is actually used for data transfer is called the virtual-circuit identifier (VCI) or
the label. A VCI, unlike a global address, is a small number that has only switch scope; it is used
by a frame between two switches. When a frame arrives at a switch, it has a VCI; when it leaves, it
has a different VCI.
Figure 1.58 shows how the VCI in a data frame changes from one switch to another. Note that a
VCI does not need to be a large number since each switch can use its own unique set of VCIs.
Three Phases:
As in a circuit-switched network, a source and destination need to go through three phases in a
virtual-circuit network: setup, data transfer, and teardown. In the setup phase, the source and
destination use their global addresses to help switches make table entries for the connection. In
the teardown phase, the source and destination inform the switches to delete the corresponding
entry. Data transfer occurs between these two phases.
Data-Transfer Phase: To transfer a frame from a source to its destination, all switches need to
have a table entry for this virtual circuit. The table, in its simplest form, has four columns. This
means that the switch holds four pieces of information for each virtual circuit that is already set up.
Figure 1.59 shows such a switch and its corresponding table.
Figure 1.59 shows a frame arriving at port 1 with a VCI of 14. When the frame arrives, the switch
looks in its table to find port 1 and a VCI of 14. When it is found, the switch knows to change the
VCI to 22 and send out the frame from port 3.
Setup Phase:
In the setup phase, a switch creates an entry for a virtual circuit. For example, suppose source A
needs to create a virtual circuit to B. Two steps are required: the setup request and the
acknowledgment.
FIGURE 1.59: SWITCH AND TABLES IN A VIRTUAL -CIRCUIT
NETWORK
Setup Request: A setup request frame is sent from the source to the destination. Figure 1.60
shows the process.
Acknowledgment:
A special frame, called the acknowledgment frame, completes the entries in the switching tables.
Figure 1.61 shows the process.
Teardown Phase:
In this phase, source A, after sending all frames to B, sends a special frame called a teardown
request. Destination B responds with a teardown confirmation frame. All switches delete the
corresponding entry from their tables.
FIGURE 1.61: SETUP ACKNOWLEDGMENT IN A VIRTUAL-CIRCUIT
NETWORK
Efficiency:
As we said before, resource reservation in a virtual-circuit network can be made during the setup
or can be on demand during the data-transfer phase.
In the first case, the delay for each packet is the same; in the second case, each packet may
encounter different delays.
There is one big advantage in a virtual-circuit network even if resource allocation is on demand.
The source can check the availability of the resources, without actually reserving it. Consider a
family that wants to dine at a restaurant.
Although the restaurant may not accept reservations (allocation of the tables is on demand), the
family can call and find out the waiting time. This can save the family time and effort.
The packet is traveling through two switches (routers). There are three transmission times (3 T ),
three propagation times (3τ), data transfer depicted by the sloping lines, a setup delay (which
includes transmission and propagation in two directions), and a teardown delay (which includes
transmission and propagation in one direction).
We ignore the processing time in each switch. The total delay time is Total delay + 3T + 3τ +
setup delay + teardown delay
Circuit-Switched Technology in WANs: virtual-circuit networks are used in switched WANs such as
ATM networks. The data-link layer of these technologies is well suited to the virtual circuit technology.
Switching at the data-link layer in a switched WAN is normally implemented by using virtual -circuit techniques.
UNIT 2
INTRODUCTION TO DATALINK LAYER
INTRODUCTION:
The Internet is a combination of networks glued together by connecting devices (routers
or switches). If a packet is to travel from a host to another host, it needs to pass through these
networks. Figure shows the same scenario. Communication at the data-link layer is made up of
five separate logical connections between the data-link layers in the path.
COMMUNICATION AT THE DATA-LINK LAYER
SERVICES:
The data-link layer is located between the physical and the network layers. The data link layer
provides services to the network layer; it receives services from the physical layer. The duty
scope of the data-link layer is node-to-node. When a packet is travelling in the Internet, the data-
link layer of a node (host or router) is responsible for delivering a datagram to the next node in
the path. For this purpose, the data-link
layer of the sending node needs to encapsulate the datagram received from the network in a frame,
and the data-link layer of the receiving node needs to decapsulate the datagram from the frame.
FRAMING: Definitely, the first service provided by the data-link layer is framing. The data-
link layer at each node needs to encapsulate the datagram (packet received from the network
layer) in a frame before sending it to the next node. The node also needs to decapsulate the
datagram from the frame received on the logical channel. Alt hough we have shown only a header
for a frame.
FLOW CONTROL: The sending data-link layer at the end of a link is a producer of frames; the
receiving data-link layer at the other end of a link is a consumer. If the rate of produced frames is
higher than the rate of consumed frames, frames at the receiving end need to be buffered while
waiting to be consumed (processed). Definitely, we cannot have an unlimited buffer size at the
receiving side. We have two choices. The first choice is to let the receiving data-link layer drop
the frames if its buffer is full. The second choice is to let the receiving data-link layer send a
feedback to the sending data-link layer to ask it to stop or slow down. Different data-link-layer
protocols use different strategies for fl ow control.
ERROR CONTROL: At the sending node, a frame in a data-link layer needs to be changed to
bits, transformed to electromagnetic signals, and transmitted through the transmission media. At
the receiving node, electromagnetic signals are received, transformed to bits, and put together to
create a frame. Since electromagnetic signals are susceptible to error, a frame is susceptible to
error. The error needs first to be detected. After detection, it needs to be either corrected at the
receiver node or discarded and retransmitted by the sending node.
CONGESTION CONTROL: Although a link may be congested with frames, which may result
in frame loss, most data-link-layer protocols do not directly use a congestion control to alleviate
congestion, although some wide-area networks do. In general, congestion control is considered
an issue in the network layer or the transport layer because of its end -to-end nature.
Two Sub layers: To better understand the functionality of and the services provided by the link
layer, we can divide the data-link layer into two sub layers: data link control (DLC) and media
access control (MAC). The data link control sub layer deals with all issues common to both
point-to-point and broadcast links; the media access control sub layer deals only with issues
specific to broadcast links.
LINK-LAYER ADDRESSING:
A link-layer address is sometimes called a link address, sometimes a physical address,
and sometimes a MAC address.
Since a link is controlled at the data-link layer, the addresses need to belong to the data-
link layer. When a datagram passes from the network layer to the data-link layer, the datagram
will be encapsulated in a frame and two data-link addresses are added to the frame header. These
two addresses are changed every time the frame moves from one link to another. Figure
demonstrates the concept in a small internet.
In the internet in Figure, we have three links and two routers. We also have shown only two
hosts: Alice (source) and Bob (destination). For each host, we have shown two addresses, the IP
addresses (N) and the link-layer addresses (L).
Note that a router has as many pairs of addresses as the number of links the router is
connected to. We have shown three frames, one in each link. Each frame carries the same
datagram with the same source and destination addresses (N1 and N8), but the link-layer
addresses of the frame change from link to link.
In link 1, the link-layer addresses are L1 and L2. In link 2, they are L4 and L5. In link 3,
they are L7 and L8.
Note that the IP addresses and the link-layer addresses are not in the same order. For IP
addresses, the source address comes before the destination address; for link-layer addresses, the
destination address comes before the source.
Every host or router on the network receives and processes the ARP request packet, but
only the intended recipient recognizes its IP address and sends back an ARP response packet.
The response packet contains the recipient’s IP and link-layer addresses. The packet is unicast
directly to the node that sent the request packet.
In Figure (a), the system on the left (A) has a packet that needs to be delivered to another
system
(B) with IP address N2. System A needs to pass the packet to its data-link layer for the actual
delivery, but it does not know the physical address of the recipient.
It uses the services of ARP by asking the ARP protocol to send a broadcast ARP request
packet to ask for the physical address of a system with an IP address of N2. This packet is
received by every system on the physical network, but only system B will answer it, as shown in
Figure (b).
System B sends an ARP reply packet that includes its physical address. Now system A
can send all the packets it has for this destination using the physical address it received.
Packet Format:
Figure shows the format of an ARP packet. The names of the fields are self-explanatory.
The
Types of Errors:
Whenever bits flow from one point to another, they are subject to unpredictable changes
because of interference. This interference can change the shape of the signal. The term single-
bit error means that only 1 bit of a given data unit (such as a byte, character, or packet) is
changed from 1 to 0 or from 0 to 1.
The term burst error means that 2 or more bits in the data unit have changed from 1 to 0
or from 0 to 1. Figure 2.8 shows the effect of a single -bit and a burst error on a data unit.
The correction of errors is more difficult than the detection. In error detection, we are
only looking to see if any error has occurred. The answer is a simple yes or no. We are not even
interested in the number of corrupted bits. A single -bit error is the same for us as a burst error.
In error correction, we need to know the exact number of bits that are corrupted and,
more importantly, their location in the message. The number of errors and the size of the
message are important factors.
If we need to correct a single error in an 8-bit data unit, we need to consider eight
possible error locations; if we need to correct two errors in a data unit of the same size, we need
to consider 28 (permutation of 8 by 2) possibilities. You can imagine the receiver’s difficulty in
finding 10 errors in a data unit of 1000 bits.
Error Detection:
Cyclic Redundancy Check:
Decoder: The codeword can change during transmission. The decoder does the same division
process as the encoder. The remainder of the division is the syndrome. If the syndrome is all 0s,
there is no error with a high probability; the dataword is separated from the received codeword
and accepted. Otherwise, everything is discarded.
CHECKSUM:
Checksum is an error-detecting technique that can be applied to a message of any length.
In the Internet, the checksum technique is mostly used at the network and transport layer rather
than the data- link layer.
At the source, the message is first divided into m-bit units. The generator then creates an
extra m- bit unit called the checksum, which is sent with the message. At the destination, the
checker creates a new checksum from the combination of the message and sent checksum. If the
new checksum is all 0s, the message is accepted; otherwise, the message is discarded (Figure).
Note that in the real implementation, the checksum unit is not necessarily added at the end of the
message; it can be inserted in the middle of the message.
FIGURE: CHECKSUM
Suppose the message is a list of five 4-bit numbers that we want to send to a destination. In
addition to sending these numbers, we send the sum of the numbers. For example, if the set of
numbers is (7, 11, 12, 0, 6), we send (7, 11, 12, 0, 6, 36), where 36 is the sum of the original
numbers.
The receiver adds the five numbers and compares the result with the sum. If the two are the
same, the receiver assumes no error, accepts the five numbers, and discards the sum. Otherwise,
there is an error somewhere and the message is not accepted.
Instead of sending 36 as the sum, we can send 6 as the sum (7, 11, 12, 0, 6, 6). The
receiver can add the first five numbers in one’s complement arithmetic. If the result is 6, the
numbers are accepted; otherwise, they are rejected.
We need to correct the error or reproduce the packet immediately. Several schemes have been
designed and used in this case that is collectively referred to as forward error correction (FEC)
techniques.
HAMMING DISTANCE:
To detect s errors, the minimum Hamming distance should be dmin = s + 1. For error detection,
we definitely need more distance. It can be shown that to detect t errors, we need to have dmin =
2t + 1. In other words, if we want to correct 10 bits in a packet, we need to make the minimum
hamming distance 21 bits, which means a lot of redundant bits, need to be sent with the data.
To give an example, consider the famous BCH code. In this code, if data is 99 bits, we
need to send 255 bits (extra 156 bits) to correct just 23 possible bit errors. Most of the time we
cannot afford such a redundancy.
We can then create data chunk by chunk (horizontally), but combine the chunks into packets
vertically. In this case, each packet sent carries a chunk from several original packets. If the
packet is lost, we miss only one chunk in each packet, which is normally acceptable in
multimedia communication.
Hamming distance and interleaving can be combined. We can first create n-bit packets that can
correct t- bit errors. Then we interleave m rows and send the bits column by column. In this way,
we can automatically correct burst errors up to m × t-bit errors.
Still another solution is to create a duplicate of each packet with a low -resolution redundancy and
combine the redundant version with the next packet. For example, we can create four low-
resolution packets out of five high-resolution packets and send them as shown in Figure. If a
packet is lost, we can use the low-resolution version from the next packet. Note that the low-
resolution section in the first packet is empty.
In this method, if the last packet is lost, it cannot be recovered, but we use the low-
resolution version of a packet if the lost packet is not the last one. The audio and video
reproduction does not have the same quality, but the lack of quality is not recognized most of the
time.
DLC SERVICES:
The data link control (DLC) deals with procedures for communication between two adjacent
nodes— node-to-node communication—no matter whether the link is dedicated or broadcast.
Data link control functions include framing and flow and error control.
FRAMING: The data-link layer, needs to pack bits into frames, so that each frame is
distinguishable from another. Framing in the data-link layer separates a message from one
source to a destination by adding a sender address and a destination address. The destination
address defines where the packet is to go; the sender address helps the recipient acknowledge the
receipt.
Although the whole message could be packed in one frame, which is not normally done;
one reason is that a frame can be very large, making flow and error control very inefficient.
When a message is carried in one very large frame, even a single-bit error would require the
retransmission of the whole frame. When a message is divided into smaller frames, a single-bit
error affects only that small frame.
Character-Oriented Framing:
To separate one frame from the next, an 8-bit (1-byte) flag is added at the beginning and
the end of a frame. The flag, composed of protocol-dependent special characters, signals the start
or end of a frame. Figure 2.17 shows the format of a frame in a character -oriented protocol.
FIGURE: A FRAME IN A CHARACTER-ORIENTED PROTOCOL
Byte stuffing by the escape character allows the presence of the flag in the data section of
the frame, but it creates another problem. What happens if the text contains one or more escape
characters followed by a byte with the same pattern as the flag? To solve this problem, the
escape characters that are part of the text must also be marked by another escape character. In
other words, if the escape character is part of the text, an extra one is added to show that the
second one is part of the text.
Figure shows bit stuffing at the sender and bit removal at the receiver. Note that even if
we have a 0 after five 1s, we still stuff a 0. The 0 will be removed by the receiver. This means
that if the flag like pattern 01111110 appears in the data, it will change to 011111010 (stuffed)
and is not mistaken for a flag by the receiver. The real flag 01111110 is not stuffed by the sender
and is recognized by the receiver.
Buffers: Although flow control can be implemented in several ways, one of the solutions is
normally to use two buffers; one at the sending data-link layer and the other at the receiving data-
link layer. A buffer is a set of memory locations that can hold packets at the sender and receiver.
The flow control communication can occur by sending signals from the consumer to the
producer. When the buffer of the receiving data-link layer is full, it informs the sending data-link
layer to stop pushing frames.
Error Control: Since the underlying technology at the physical layer is not fully reliable, we
need to implement error control at the data-link layer to prevent the receiving node from
delivering corrupted packets to its network layer.
Error control at the data-link layer is normally very simple and implemented using one of
the following two methods. In both methods, a CRC is added to the frame header by the sender
and checked by the receiver.
The data-link layer at the sender gets a packet from its network layer, makes a frame out
of it, and sends the frame. The data-link layer at the receiver receives a frame from the link,
extracts the packet from the frame, and delivers the packet to its network layer. The data -link
layers of the sender and receiver provide transmission services for their network layers.
STOP-AND-WAIT PROTOCOL:
Stop-and-Wait protocol uses both flow and error control. In this protocol, the sender sends one
frame at a time and waits for an acknowledgment before sending the next one. To detect
corrupted frames, we need to add a CRC to each data frame.
When a frame arrives at the receiver site, it is checked. If its CRC is incorrect, the frame
is corrupted and silently discarded. The silence of the receiver is a signal for the sender that a
frame was either corrupted or lost.
Every time the sender sends a frame, it starts a timer. If an acknowledgment arrives
before the timer expires, the timer is stopped and the sender sends the next frame (if it has one to
send). If the timer expires, the sender resends the previous frame, assuming that the frame was
either lost or corrupted.
Piggybacking: The two protocols we discussed in this section are designed for unidirectional
communication, in which data is flowing only in one direction although the acknowledgment
may travel in the other direction. Protocols have been designed in the past to allow data to flow
in both directions. However, to make the communication more efficient, the data in one direction
is piggybacked with the acknowledgment in the other direction. In other words, when node A is
sending data to node B, Node A also acknowledges the data received from node B. Because
piggybacking makes communication at the data link layer more complicated, it is not a common
practice.
HDLC:
High-level Data Link Control (HDLC) is a bit-oriented protocol for communication over
point-to-point and multipoint links. It implements the Stop-and-Wait protocol.
Configurations and Transfer Modes: HDLC provides two common transfer modes that can be
used in different configurations: normal response mode (NRM) and asynchronous balanced
CN lecture notes Page 15
mode (ABM). In normal response mode (NRM), the station configuration is unbalanced.
We have one primary station and multiple secondary stations. A primary station can send
commands; a secondary station can only respond. The NRM is used for both point-to-point and
multipoint links, as shown in Figure.
In ABM, the configuration is balanced. The link is point-to-point, and each station can
function as a primary and a secondary (acting as peers), as shown in Figure. This is the common
mode today.
Framing: To provide the flexibility necessary to support all the options possible in the modes
and configurations just described, HDLC defines three types of frames: information frames (I-
frames), supervisory frames (S-frames), and unnumbered frames (U-frames).
Each type of frame serves as an envelope for the transmission of a different type of
message. I- frames are used to data-link user data and control information relating to user data
(piggybacking).
S-frames are used only to transport control information. U-frames are reserved for system
management. Information carried by U-frames is intended for managing the link itself. Each
frame in HDLC may contain up to six fields, as shown in Figure: a beginning flag field, an
address field, a control field, an information field, a frame check sequence (FCS) field, and an
ending flag field. In multiple- frame transmissions, the ending flag of one frame can serve as the
beginning flag of the next frame.
Flag field. This field contains synchronization pattern 01111110, which identifies
both the beginning and the end of a frame.
Address field. This field contains the address of the secondary station. If a primary
station created the frame, it contains to address. If a secondary station creates the
frame, it contains from address. The address field can be one byte or several bytes
long, depending on the needs of the network.
Control field. The control field is one or two bytes used for flow and error control.
Information field. The information field contains the user’s data from the network
layer or management information. Its length can vary from one network to another.
FCS field. The frame check sequence (FCS) is the HDLC error detection field. It can
contain either a 2- or 4-byte CRC.
The control field determines the type of frame and defines its functionality. The format is
specific for the type of frame, as shown in Figure.
Services Provided by PPP: PPP defines the format of the frame to be exchanged between
devices. It also defines how two devices can negotiate the establishment of the link and the
exchange of data. PPP is designed to accept payloads from several network layers (not only IP).
Authentication is also provided in the protocol, but it is optional. The new version of
PPP, called Multilink PPP, provides connections over multiple links. One interesting feature of
PPP is that it provides network address configuration. This is particularly useful when a home
user needs a temporary network address to connect to the Internet.
Services Not Provided by PPP: PPP does not provide flow control. A sender can send several
frames one after another with no concern about overwhelming the receiver. PPP has a very
simple mechanism for error control. A CRC field is used to detect errors.
If the frame is corrupted, it is silently discarded; the upper-layer protocol needs to take
care of the problem. Lack of error control and sequence numbering may cause a packet to be
received out of order. PPP does not provide a sophisticated addressing mechanism to handle
frames in a multipoint configuration.
Framing:
PPP uses a character-oriented (or byte-oriented) frame. Figure shows the format of a PPP
frame.
The description of each field follows:
Flag. A PPP frame starts and ends with a 1-byte flag with the bit pattern 01111110.
Control. This field is set to the constant value 00000011 (imitating unnumbered
frames in HDLC). As we will discuss later, PPP does not provide any flow control.
Error control is also limited to error detection.
Protocol. The protocol field defines what is being carried in the data field: either user
data or other information. This field is by default 2 bytes long, but the two parties can
agree to use only 1 byte.
Payload field. The data field is a sequence of bytes with the default of a maximum of
1500 bytes; but this can be changed during negotiation.
o The data field is byte-stuffed if the flag byte pattern appears in this field.
o Because there is no field defining the size of the data fie ld, padding is needed
if the size is less than the maximum default value or the maximum negotiated
value.
FCS. The frame check sequence (FCS) is simply a 2-byte or 4-byte standard CRC.
(ii)Authentication Protocols:
Authentication plays a very important role in PPP because PPP is designed for use over
dial-up links where verification of user identity is necessary. Authentication means validating the
identity of a user who needs to access a set of resources. PPP has created two protocols for
authentication: Password Authentication Protocol and Challenge Handshake Authentication
Protocol. Note that these protocols are used during the authentication phase.
PAP:
The Password Authentication Protocol (PAP) is a simple authentication procedure with
a two- step process:
a. The user who wants to access a system sends authentication identification (usually the
user name) and a password.
b. The system checks the validity of the identification and password and either accepts
or denies connection.
CHAP:
The Challenge Handshake Authentication Protocol (CHAP) is a three-way
handshaking authentication protocol that provides greater security than PAP. In this method, the
password is kept secret; it is never sent online.
b. The user applies a predefined function that takes the challenge value and the user’s
own password and creates a result. The user sends the result in the response packet to
the system.
c. The system does the same. It applies the same function to the password of the user
(known to the system) and the challenge value to create a result. If the result created
is the same as the result sent in the response packet, access is granted; otherwise, it is
denied. CHAP is more secure than PAP, especially if the system continuously
changes the challenge value. Even if the intruder learns the challenge value and the
result, the password is still secret.
IPCP:
One NCP protocol is the Internet Protocol Control Protocol (IPCP). This protocol
configures the link used to carry IP packets in the Internet. IPCP is especially of interest to us.
The format of an IPCP packet is shown in Figure 2.30. IPCP defines seven packets, distinguished
by their code values, as shown in Table.
Other Protocols: There are other NCP protocols for other network-layer protocols. The
OSI Network Layer Control Protocol has a protocol field value of 8023; the Xerox NS IDP
Control Protocol has a protocol field value of 8025; and so on.
Multilink PPP:
PPP was originally designed for a single-channel point-to-point physical link. The
availability of multiple channels in a single point-to-point link motivated the development of
Multilink PPP. In this case, a logical PPP frame is divided into several actual PPP frames. A
segment of the logical frame is carried in the payload of an actual PPP frame, as shown in
Figure.
FIGURE: MULTILINK PPP
When nodes or stations are connected and use a common link, called a multipoint or
broadcast link, we need a multiple-access protocol to coordinate access to the link. The problem
of controlling the access to the medium is similar to the rules of speaking in an assembly.
Many protocols have been devised to handle access to a shared link. All of these
protocols belong to a sublayer in the data-link layer called media access control (MAC). We
categorize them into three groups, as shown in Figure.
RANDOM ACCESS:
In random-access or contention methods, no station is superior to another station and
none is assigned control over another. At each instance, a station that has data to send uses a
procedure defined by the protocol to make a decision on whether or not to send.
This decision depends on the state of the medium (idle or busy). In other words, each
station can transmit when it desires on the condition that it follows the predefined procedure,
including testing the state of the medium.
Two features give this method its name. First, there is no scheduled time for a station to
transmit. Transmission is random among the stations. That is why these methods are called
random access. Second, no rules specify which station should send next. Stations compete with
one another to access the medium. That is why these methods are also called contention methods.
In a random-access method, each station has the right to the medium without being
controlled by any other station. However, if more than one station tries to send, there is an access
conflict—collision— and the frames will be either destroyed or modified.
ALOHA:
Pure ALOHA:
The original ALOHA protocol is called pure ALOHA. This is a simple but elegant
protocol. The idea is that each station sends a frame whenever it has a frame to send (multiple
access). However, since there is only one channel to share, there is the possibility of collision
between frames from different stations.
A collision involves two or more stations. If all these stations try to resend their frames
after the time-out, the frames will collide again. Pure ALOHA dictates that when the time-out
period passes, each station waits a random amount of time before resending its frame. The
randomness will help avoid more collisions. We call this time the backoff time TB.
Pure ALOHA has a second method to prevent congesting the channel with retransmitted
frames.
After a maximum number of retransmission attempts Kmax, a station must give up and try later.
Vulnerable time
Let us find the vulnerable time, the length of time in which there is a possibility of collision.
We assume that the stations send fixed-length frames with each frame taking Tfr seconds to
send.
Slotted ALOHA
Pure ALOHA has a vulnerable time of 2 × Tfr. This is so because there is no rule that defines
when the station can send. A station may send soon after another station has started or just before
another station has finished. Slotted ALOHA was invented to improve the efficiency of pure
ALOHA. In slotted ALOHA we divide the time into slots of Tfr seconds and force the station to
send only at the beginning of the time slot. The following Figure shows an example of frame
collisions in slotted ALOHA.
Throughput
It can be proven that the average number of successful transmissions for slotted ALOHA is S =
G × e−G. The maximum throughput Smax is 0.368, when G = 1. In other words, if one frame is
generated during one frame transmission time, then 36.8 percent of these frames reach their
destination successfully. We expect G = 1 to produce maximum throughput because the
vulnerable time is equal to the frame transmission time. Therefore, if a station generates only
one frame in this vulnerable time (and no other station generates a frame during this time), the
frame will reach its destination successfully.
CSMA:
To minimize the chance of collision and, therefore, increase the performance, the CSMA
method was developed. The chance of collision can be reduced if a station senses the medium
before trying to use it. Carrier sense multiple access (CSMA) requires that each station first
listen to the medium (or check the state of the medium) before sending. In other words, CSMA is
based on the principle “sense before transmit” or “listen before talk.” CSMA can reduce the
possibility of collision, but it cannot eliminate it.
Persistence Methods: What should a station do if the channel is busy? What should a
station do if the channel is idle? Three methods have been devised to answer these questions: the
1-persistent method, the nonpersistent method, and the p-persistent method
At time t1, station A has executed its persistence procedure and starts sending the bits of
its frame. At time t2, station C has not yet sensed the first bit sent by A. Station C executes its
persistence procedure and starts sending the bits in its frame, which propagate both to the left and
to the right. The collision occurs sometime after time t2. Station C detects a collision at time t3
when it receives the first bit of A’s frame. Station C immediately (or after a short time, but we
assume immediately) aborts transmission. Station A detects collision at time t4 when it receives
the first bit of C’s frame; it also immediately aborts transmission. Looking at the figure, we see
that A transmits for the duration t4 − t1; C transmits for the duration t3 − t2.
Minimum Frame Size: For CSMA/CD to work, we need a restriction on the frame size. Before
sending the last bit of the frame, the sending station must detect a collision, if any, and abort the
transmission. This is so because the station, once the entire frame is sent, does not keep a copy of
the frame and does not monitor the line for collision detection. Therefore, the frame transmission
time Tfr must be at least two times the maximum propagation time Tp. To understand the reason,
let us think about the worst-case scenario. If the two stations involved in a collision are the
maximum distance apart, the signal from the first takes time Tp to reach the second, and the
effect of the collision takes another time TP to reach the first. So the requirement is that the first
station must still be transmitting after 2Tp.
CSMA/CA:
Carrier sense multiple access with collision avoidance (CSMA/CA) was invented for wireless
networks. Collisions are avoided through the use of CSMA/CA’s three strategies: the interframe
space, the contention window, and acknowledgments.
CN lecture notes Page 28
Interframe Space (IFS). First, collisions are avoided by deferring transmission even if the
channel is found idle. When an idle channel is found, the station does not send immediately.
It waits for a period of time called the interframe space or IFS. Even though the channel
may appear idle when it is sensed, a distant station may have already started transmitting.
The distant station’s signal has not yet reached this station. The IFS time allows the front of
the transmitted signal by the distant station to reach this station. After waiting an IFS time, if
the channel is still idle, the station can send, but it still needs to wait a time equal to the
contention window (described next). The IFS variable can also be used to prioritize stations
or frame types. For example, a station that is assigned a shorter IFS has a higher priority.
Contention Window. The contention window is an amount of time divided into slots. A
station that is ready to send chooses a random number of slots as its wait time. The number
of slots in the window changes according to the binary exponential backoff strategy. This
means that it is set to one slot the first time and then doubles each time the station cannot
detect an idle channel after the IFS time. This is very similar to the p-persistent method
except that a random outcome defines the number of slots taken by the waiting station. One
interesting point about the contention window is that the station needs to sense the channel
after each time slot. However, if the station finds the channel busy, it does not restart the
process; it just stops the timer and restarts it when the channel is sensed as idle. This gives
priority to the station with the longest waiting time.
Acknowledgment. With all these precautions, there still may be a collision resulting in
destroyed data. In addition, the data may be corrupted during the transmission. The positive
acknowledgment and the time-out timer can help guarantee that the receiver has received the
frame.
operate in the first layer of the Internet model. Link-layer switches operate in the first two layers.
Routers operate in the first three layers.
Hubs
A hub is a device that operates only in the physical layer. A repeater receives a signal and,
before it becomes too weak or corrupted, regenerates and retimes the original bit pattern. The
repeater then sends the refreshed signal. In a star topology, a repeater is a multiport device, often
called a hub, that can be used to serve as the connecting point and at the same time function as a
repeater. Figure shows that when a packet sends from station A to station B arrives at the hub,
the signal representing the frame is regenerated to remove any possible corrupting noise, but the
hub forwards the packet from all outgoing ports except the one from which the signal was
received. In other words, the frame is broadcast. All stations in the LAN receive the frame, but
only station B keeps it. The rest of the stations discard it. Figure shows the role of a repeater or a
hub in a switched LAN. The figure definitely shows that a hub does not have a filtering
capability. It does not have the intelligence to find from which port the frame should be sent out.
A hub or a repeater is a physical-layer device. They do not have a link-layer address and they do
not check the link-layer address of the received frame. They just regenerate the corrupted bits
and send them out from every port.
Link-Layer Switches
A link-layer switch (or switch) operates in both the physical and the data-link layers. As a link-
layer device, the link-layer switch can check the MAC addresses (source and destination)
contained in the frame.
Filtering
The difference in functionality is between a link-layer switch and a hub is a link-layer switch has
filtering capability. It can check the destination address of a frame and can decide from which
outgoing port the frame should be sent. For example in Figure, we have a LAN with four stations
that are connected to a link-layer switch. If a frame destined for station 71:2B:13:45:61:42
arrives at port 1, the link-layer switch consults its table to find the departing port. According to
its table, frames for 71:2B:13:45:61:42 should be sent out only through port 2; therefore, there is
no need for forwarding the frame through other ports.
1. When station A sends a frame to station D, the switch does not have an entry for either D or
A. The frame goes out from all three ports; the frame floods the netwo rk. However, by
looking at the source address, the switch learns that station A must be connected to port 1.
This means that frames destined for A, in the future, must be sent out through port 1. The
switch adds this entry to its table. The table has its first entry now.
2. When station D sends a frame to station B, the switch has no entry for B, so it floods the
network again. However, it adds one more entry to the table related to station D.
3. The learning process continues until the table has information abou t every port. However,
note that the learning process may take a long time. For example, if a station does not send
out a frame (a rare situation), the station will never have an entry in the table.
Routers
A router is a three-layer device; it operates in the physical, data-link, and network layers. As a
physical- layer device, it regenerates the signal it receives. As a link-layer device, the router
checks the physical addresses (source and destination) contained in the packet. As a network -
layer device, a router checks the network-layer addresses. A router can connect networks. In
other words, a router is an internetworking device; it connects independent networks to form an
internetwork. According to this definition, two networks connected by a router become an
internetwork or an internet. There are three major differences between a router and a repeater or
a switch.
1. A router has a physical and logical (IP) address for each of its interfaces.
2. A router acts only on those packets in which the link-layer destination address matches the
address of the interface at which the packet arrives.
3. A router changes the link-layer address of the packet (both source and destination) when it
forwards the packet.
Here, a host with a packet to send transmits it to the nearest router, either on its own LAN or over a
point-to-point link to the carrier. The packet is stored there until it has fully arrived so the checksum
can be verified. Then it is forwarded to the next router along the path until it reaches the destination
host, where it is delivered. This mechanism is store-and-forward packet switching.
Routing Algorithms:
Characteristics of routing algorithms:
Correctness: it could able to deliver packets from source to destination without failure or
without other nodes.
Simplicity: the function should be simple in operation.
Robustness: if the network is delivering packets via some route, if any failures or overloads
occur, the function should react to such contingencies without the loss of packets or the
breaking of virtual circuits.
Stability: The outing function should react to contingencies slowly that are neither fast nor
too slow. Why means, for example, if the network may react to congestion in one area by
shifting most of load to second area. Now the second area is overloaded and the first is
under-utilized, causing a second shift. During these shifts, packets may travel in loops
through the network.
Fairness and Optimality: some performance criteria may give higher priority to the
exchange of packets between neighbor stations compared to an exchange between distant
stations. This policy may maximize average throughput but will appear unfair to the station
that primarily needs to communicate with distant stations.
Adaptive algorithms on the contrary are dynamic and online. They collect their information
about the state of the network and make routing decisions based on the latest information,
for example, Distance vector routing and link state routing.
Several algorithms for computing the shortest path between two nodes of a graph are known.
This one is due to Dijkstra (1959). Each node is labeled (in parentheses) with its distance from the
source node along the best known path. Initially, no paths are known, so all nodes are labeled with
infinity. As the algorithm proceeds and paths are found, the labels may change, reflecting better
paths. A label may be either tentative or permanent.
Initially, all labels are tentative. When it is discovered that a label represents the shortest
possible path from the source to that node, it is made permanent and never changed
thereafter.
To illustrate how the labeling algorithm works, look at the weighted, undirected graph of Fig. 5-
7(a), where the weights represent, for example, distance. We want to find the shortest path from A
to D. We start out by marking node A as permanent, indicated by a filled-in circle. Then we
examine, in turn, each of the nodes adjacent to A (the working node), relabeling each one with the
distance to A. Whenever a node is relabeled, we also label it with the node from which the probe
was made so that we can reconstruct the final path later. Having examined each of the nodes
adjacent to A, we examine all the tentatively labeled nodes in the whole graph and make the one
with the smallest label permanent, as shown in Fig. 5-7(b). This one becomes the new working
node.
We now start at B and examine all nodes adjacent to it. If the sum of the label on B and the
distance from B to the node being considered is less than the label on that node, we have a shorter
path, so the node is relabeled.
After all the nodes adjacent to the working node have been inspected and the tentative labels
changed if possible, the entire graph is searched for the tentatively-labeled node with the smallest
value. This node is made permanent and becomes the working node for the next round. Figure 5-7
shows the first five steps of the algorithm.
Flooding:
Flooding is a static algorithm, in which in which “every incoming packet is sent out on every
outgoing line except the one it arrived on”. Flooding obviously generates vast numbers of duplicate
packets, in fact, an infinite number unless some measures are taken to damp (Discourage) the
process.
Flooding is very effective routing approach, when, the information in the routing tables is not
available, such as during system start up.
Flooding is also effective when the source needs to send a packet to all hosts connected to the
network for example in military applications.
In distributed data base applications, it is sometimes necessary to update the entire database
concurrently; in such cases flooding is used.
Flooding always chooses the shortest path, because it chooses every possible path in parallel.
In wireless networks, all messages transmitted by a station can be received by all other
stations within its radio range, which is, in fact, flooding, and some algorithms utilize this
property.
This can be explained in Fig. Part (a) shows a subnet. The first four columns of part (b) show the
delay vectors received from the neighbors of router J. Suppose that J has measured or estimated its
delay to its neighbors, A, I, H, and K as 8, 10, 12, and 6 msec, respectively.
Consider how J computes its new route to router G. It knows that it can get to A in 8 msec, and A
claims to be able to get to G in 18 msec, so J knows it can count on a delay of 26 msec to G if it
forwards packets bound for G to A. Similarly, it computes the delay to G via I, H, and K as 41 (31 +
10), 18 (6 + 12), and 37 (31 + 6) msec, respectively. The best of these values is 18, so it makes an
entry in its routing table that the delay to G is 18 msec and that the route to use is via ‘H’.
When A comes up, the other routers learn about it via the vector exchanges. At the time of the
first exchange, B learns that its left neighbor has zero delay to A. B now makes an entry in its
routing table that A is one hop away to the left. All the other routers still think that A is down. At
this point, the routing table entries for A are as shown in the second row of Fig. 5-10(a). Clearly, the
good news is spreading at the rate of one hop per exchange, then, C,D,E routers are updated as 2,3,4
respectively.
Now let us consider the situation of Fig. (b), in which all the lines and routers are initially up.
Routers B, C, D, and E have distances to A of 1, 2, 3, and 4, respectively. Suddenly A goes down, or
In above table, the link state packet from A arrives directly, so it must be sent to C and F and
acknowledged to A, as indicated by the flag bits. Similarly, the packet from F has to be forwarded
to A and C and acknowledged to F.
Hierarchical Routing:
Hierarchical routing is an algorithm for routing packets hierarchically. It is used due to the
following reasons.
As networks grow in size, the router routing tables grow proportionall y.
Router memory consumed by ever-increasing tables.
More CPU time is needed to scan them and more bandwidth is needed to send status reports
about them.
At a certain point the network may grow to the point where it is no longer feasible for every
router to have an entry for every other router.
When hierarchical routing is used, the routers are divided into regions, with each router knowing
all the details about how to route packets to destinations within its own region, but knowing nothing
CN Lecture Note Page 9
about the internal structure of other regions. When different networks are interconnected, then each
one can be treated as a separate region in order to free the routers in one network from having to
know the topological structure of the other ones.
Figure : Hierarchical routing.
Figure gives a quantitative example of routing in a two-level hierarchy with five regions. The
full routing table for router 1A has 17 entries, as shown in Fig.(b). When routing is done
hierarchically, as in Fig(c), there are entries for all the local routers as before, but all other regions
have been condensed into a single router, so all traffic for region 2 goes via the “1B -2A” line, but
the rest of the remote traffic goes via the “1C -3B” line. Hierarchical routing has reduced the table
from 17 to 7 entries. “As the ratio of the number of regions to the number of routers per region
grows, the savings in table space increase”.
Broadcast Routing:
Sending a packet to all destinations simultaneously is called broadcasting; the algorithms used
for broadcasting are called broadcast routing. Various methods have been proposed for doing it.
They are,
1) Distinct point-to-point routing
2) Flooding
3) Multi-destination routing
4) Use of spanning tree
5) Reverse path forwarding
Flooding:
Flooding is another obvious candidate. This algorithm sends a packet on every outgoing line
except the line on which it arrived. The problem with flooding as a broadcast technique is the same
problem it has as a point-to-point routing algorithm: “it generates too many packets and consumes
too much bandwidth”.
Advantages:
The reverse path forwarding is that it is both reasonably efficient and easy to imple ment.
It does not require routers to know about spanning trees.
It does not have the overhead of a destination list or bit map in each broadcast packet as does
multi-destination addressing.
It does not require any special mechanism to stop the process.
Multicast Routing:
For some applications such as tele conferencing, a source may want to send packets to multiple
destinations simultaneously or a group of processes implementing a distributed database systems. It
is frequently necessary for one process to send a message to all the other members of the group.
When a process sends a multicast packet to a group, the first router examines its spanning tree
and prunes it, removing all lines that do not lead to hosts that are members of the group. In our
example, Fig.(c) shows the pruned spanning tree for group 1. Similarly, Fig. (d) shows the pruned
spanning tree for group 2. Multicast packets are forwarded only along the appropriate s panning tree.
Various ways of pruning the spanning tree are possible. The simplest one can be used if link
state routing is used and each router is aware of the complete topology, including which hosts
belong to which groups. Then the spanning tree can be pruned, starting at the end of each path,
working toward the root, and removing all routers that do not belong to the group in question.
In the model of Fig, the world is divided up (geographically) into small units. Let us call them
areas, where an area is typically a LAN or wireless cell. Each area has one or more foreign agents,
which are processes that keep track of all mobile hosts visiting the area. In addition, each area has a
home agent, which keeps track of hosts whose home is in the area, but who are currently visiting
another area.
When a new host enters an area, either by connecting to it (e.g., plugging into the LAN) or just
wandering (travelling) into the cell, his computer must register itself with the foreign agent there.
The registration procedure typically works like this:
1) Periodically, each foreign agent broadcasts a packet announcing its existence and address. A
newly-arrived mobile host may wait for one of these messages, but if none arrives quickly
enough, the mobile host can broadcast a packet saying: Are there any for eign agents around?
2) The mobile host registers with the foreign agent, giving its home address, current data link
layer address, and some security information.
3) The foreign agent contacts the mobile host's home agent and says: One of your hosts is over
here. The message from the foreign agent to the home agent contains the foreign agent's
network address. It also includes the security information to convince the home agent that the
mobile host is really there.
4) The home agent examines the security information, which contains a timestamp, to prove that
it was generated within the past few seconds. If it is happy, it tells the foreign agent to
proceed.
5) When the foreign agent gets the acknowledgement from the home agent, it makes an entry in
its tables and informs the mobile host that it is now registered.
Figure: Packet routing for mobile hosts.
Ideally, when a host leaves an area, that, too, should be announced to allow deregistration, but
many users abruptly turn off their computers when done.
When a packet is sent to a mobile host, it is routed to the host's home LAN because that is what
the address says should be done, as illustrated in step 1 of Fig.
The home agent then does two things.
Route Discovery:
Consider the ad hoc network of Fig., in which a process at node A wants to send a packet to node
I. The AODV algorithm maintains a table at each node, keyed (enetered) by destination, giving
information about that destination, including which neighbor to send packets to in order to reach the
destination. Suppose that A looks in its table and does not find an entry for I. It now has to discover
a route to I. This property of discovering routes only when they are needed is what makes this
algorithm ''on demand.''
Figure: (a) Range of A's broadcast. (b) After B and D have received A's broadcast
(c) After C, F, and G have received A's broadcast.
(d) After E, H, and I have received A's broadcast.
The shaded nodes are new recipients. The arrows show the possible reverse routes.
To locate I, A constructs a special ROUTE REQUEST packet and broadcasts it. The packet
reaches B and D, as illustrated in Fig. (a). In fact, the reason B and D are connected to A in the
graph is that they can receive communication from A. F, for example, is not shown with an arc to A
because it cannot receive A's radio signal. Thus, F is not connected to A.
CN Lecture Note Page 14
Route Maintenance:
Because nodes can move or be switched off, the topology can change spontaneously.
Periodically, each node broadcasts a Hello message. Each of its neighbors is expected to respond to
it. If no response is forthcoming, the broadcaster knows that that neighbor has moved out of range
and is no longer connected to it. Similarly, if it tries to send a packet to a neighbor that does not
respond, it learns that the neighbor is no longer available.
This information is used to purge (remove) routes that no longer work. For each possible
destination, each node, N, keeps track of its neighbors that have fed it a packet for that destination
during the last ΔT seconds. These are called N's active neighbors for that destination.
Figure depicts the onset of congestion. When the number of packets hosts send into the network is
well within its carrying capacity, the number delivered is proportional to the number sent. If twice
as many are sent, twice as many are delivered. However, as the offered load approaches the
carrying capacity, bursts of traffic occasionally fill up the buffers inside routers and some packets
are lost. These lost packets consume some of the capacity, so the number of delivered packets falls
below the ideal curve. The network is now congested.
If all of a sudden, streams of packets begin arriving on three or four input lines and all need the
same output line, a queue will build up. If there is insufficient memory to hold all of them, packets
will be lost. Adding more memory may help up to a point that if routers have an infinite amount of
memory, congestion gets worse, not better. This is because by the time packets get to the front of
the queue, they have already timed out (repeatedly) and duplicates have been sent. This makes
matters worse, not better—it leads to congestion collapse.
Low-bandwidth links or routers that process packets more slowly than the line rate can also become
congested. In this case, the situation can be improved by directing some of the traffic away from the
bottleneck to other parts of the network. Eventually, however, all regions of the network will be
congested.
The most basic way to avoid congestion is to build a network that is well matched to the traffic that
it carries. If there is a low-bandwidth link on the path along which most traffic is directed,
congestion is likely. Sometimes resources can be added dynamically when there is serious
congestion, for example, turning on spare routers or enabling lines that are normally used only as
Some local radio stations have helicopters flying around their cities to report on road congestion to
make it possible for their mobile listeners to route their packets (cars) around hotspots. This is
called traffic-aware routing. Splitting traffic across multiple paths is also helpful.
Sometimes it is not possible to increase capacity. The only way then to beat back the congestion is
to decrease the load. In a virtual-circuit network, new connections can be refused if they would
cause the network to become congested. This is called admission control.
At a finer granularity, when congestion is imminent the network can deliver feedback to the sources
whose traffic flows are responsible for the problem. The network can request these sources to
throttle their traffic, or it can slow down the traffic itself. Two difficulties with this approach are
how to identify the onset of congestion, and how to inform the source that needs to slow down.
To tackle the first issue, routers can monitor the average load, queueing delay, or packet loss. In
all cases, rising numbers indicate growing congestion. To tackle the second issue, routers must
participate in a feedback loop with the sources.
Finally, when all else fails, the network is forced to discard packets that it cannot deliver. The
general name for this is load shedding. A good policy for choosing which packets to discard can
help to prevent congestion collapse.
Traffic-Aware Routing
The goal in taking load into account when computing routes is to shift traffic away from hotspots
that will be
the first places in the network to experience congestion. The most direct way to do this is to set the
link weight to be a function of the (fixed) link bandwidth and propagation delay plus the (variable)
measured load or average queuing delay. Least-weight paths will then favour paths that are more
lightly loaded, all else being equal.
Consider the network of Fig. which is divided into two parts, East and West, connected by two
links, CF and EI. Suppose that most of the traffic between East and West is using link CF, and, as a
result, this link is heavily loaded with long delays. Including queuing delay in the weight used for
the shortest path calculation will make EI more attractive. After the new routing tables have been
installed, most of the East-West traffic will now go over EI, loading this link. Consequently, in the
next update, CF will appear to be the shortest path. As a result, the routing tables may oscillate
wildly, leading to erratic routing and many potential problems.
Admission Control
By analogy, in the telephone system, when a switch gets overloaded it practices admission control
by not giving dial tones. The task is straightforward in the telephone network because of the fixed
bandwidth of calls (64 kbps for uncompressed audio). However, virtual circuits in computer
For example, consider the network illustrated in Fig(a). in which two routers are congested, as
indicated. Suppose that a host attached to router A wants to set up a connection to a host attached to
router B. Normally, this connection would pass through one of the congested routers. To avoid this
situation, we can redraw the network as shown in Fig(b). omitting the congested routers and all of
their lines. The dashed line shows a possible route for the virtual circuit that avoids the congested
routers.
Traffic Throttling
When congestion is imminent, it must tell the senders to throttle back their transmissions and slow
down. The term congestion avoidance is sometimes used to contrast this operating point with the
one in which the network has become (overly) congested.
Choke Packets
The most direct way to notify a sender of congestion is to tell it directly. In this approach, the router
selects a congested packet and sends a choke packet back to the source host, giving it the
destination found in the packet. The original packet may be tagged (a header bit is turned on) so that
it will not generate any
more choke packets farther along the path and then forwarded in the usual way. To avoid increasing
load on the network during a time of congestion, the router may only send choke packets at a low
rate.
When the source host gets the choke packet, it is required to reduce the traffic sent to the specified
destination, for example, by 50%. In a datagram network, choke packets to be sent to fast senders,
because they will have the most packets in the queue. The host should ignore these additional
chokes for the fixed time interval until its reduction in traffic takes effect. After that period, further
choke packets indicate
that the network is still congested.
QUALITY OF SERVICE:
An easy solution to provide good quality of service is to build a network with enough capacity for
whatever traffic will be thrown at it. The name for this solution is over provisioning. The resulting
network will carry application traffic without significant loss and, assuming a decent routing
scheme, will deliver packets with low latency. Performance doesn’t get any better than thi s.
To some extent, the telephone system is over provisioned because it is rare to pick up a telephone
and not get a dial tone instantly. There is simply so much capacity available that demand can almost
always be met. The trouble with this solution is that it is expensive.
Four issues must be addressed to ensure quality of service:
1. What applications need from the network?
2. How to regulate the traffic that enters the network.
3. How to reserve resources at routers to guarantee performance.
4. Whether the network can safely accept more traffic.
No single technique deals efficiently with all these issues. Instead, a variety of techniques have been
developed for use at the network (and transport) layer. Practical quality-of-service solutions
combine multiple techniques. To this end, we will describe two versions of quality of service for the
Internet called Integrated Services and Differentiated Services.
APPLICATION REQUIREMENTS:
A stream of packets from a source to a destination is called a flow. A flow might be all the packets
of a connection in a connection-oriented network, or all the packets sent from one process to
another process in a connectionless network. The needs of each flow can be characterized by four
primary parameters: bandwidth, delay, jitter, and loss. Together, these determine the QoS (Quality
of Service) the flow requires.
Here, we will focus on internetworking in the network layer. To see how that differs from switching
in the data link layer, examine Fig. In Fig.(a), the source machine, S, wants to send a packet to the
destination machine, D. These machines are on different Ethernets, connected by a switch. S
encapsulates the packet in a frame and sends it on its way. The frame arrives at the switch, which
then determines that the frame has to go to LAN 2 by looking at its MAC address. The switch just
removes the frame from LAN 1 and deposits it on LAN 2.
INTERNETWORKING:
HOW NETWORKS DIFFER:
Networks can differ in many ways. Some of the differences, such as different modulation
techniques or frame formats, are internal to the physical and data link layers. These differences will
not concern us here. Instead, in Fig. 3.12 we list some of the differences that can be exposed to the
network layer. It is papering over these differences that makes internetworking more difficult than
operating within a single network.
When packets sent by a source on one network must transit one or more foreign networks
before reaching the destination network, many problems can occur at the interfaces between
networks. To start with, the source needs to be able to address th e destination.
What do we do if the source is on an Ethernet network and the destination is on a WiMAX
network? Assuming we can even specify a WiMAX destination from an Ethernet network, packets
would cross from a connectionless network to a connection-oriented one.
This may require that a new connection be set up on short notice, which injects a delay, and
much overhead if the connection is not used for many more packets. Many specific differences may
have to be accommodated as well. How do we multicast a packet to a group with some members on
a network that does not support multicast?
The differing max packet sizes used by different networks can be a major nuisance, too.
How do you pass an 8000-byte packet through a network whose maximum size is 1500 bytes? If
packets on a connection-oriented network transit a connectionless network, they may arrive in a
different order than they were sent. That is something the sender likely did not expect, and it might
come as an (unpleasant) surprise to the receiver as well.
INTERNETWORK ROUTING:
Routing through an internet poses the same basic problem as routing within a single
network, but with some added complications. To start, the networks may internally use different
routing algorithms. For example, one network may use link state routing and another distance
vector routing. Since link state algorithms need to know the topology but distance vector algorithms
CN Lecture Note Page 23
do not, this difference alone would make it unclear how to find the shortest paths across the
internet.
Networks run by different operators lead to bigger problems. First, the operators may have
different ideas about what is a good path through the network. One operator may want the route
with the least delay, while another may want the most inexpensive route. This will lead the
operators to use different quantities to set the shortest-path costs.
Finally, the internet may be much larger than any of the networks that comprise it. It may
therefore require routing algorithms that scale well by using a hierarchy, even if none of the
individual networks need to use a hierarchy.
All of these considerations lead to a two-level routing algorithm. Within each network, an
intradomain or interior gateway protocol is used for routing. (‘‘Gateway’’ is an older term for
‘‘router.’’) It might be a link state protocol of the Kind .
Across the networks that make up the internet, an interdomain or exterior gateway
protocol is used. The networks may all use different intradomain protocols, but they must use the
same interdomain protocol.
In the Internet, the interdomain routing protocol is called BGP (Border Gateway Protocol).
There is one more important term to introduce. Since each network is operated
independently of all the others, it is often referred to as an AS (Autonomous System). A good
mental model for an AS is an ISP network. In fact, an ISP network may be comprised of more than
one AS, if it is managed, or, has been acquired, as multiple networks. But the difference is usually
not significant.
PACKET FRAGMENTATION: Each network or link imposes some maximum size on its
packets. These limits have various causes, among them:
1. Hardware (e.g., the size of an Ethernet frame).
6. Desire to prevent one packet from occupying the channel too long.
The result of all these factors is that the network designers are not free to choose any old
maximum packet size they wish. Maximum payloads for some common technologies are 1500
bytes for Ethernet and 2272 bytes for 802.11. IP is more generous, allows for packets as big as
65,515 bytes.
Hosts usually prefer to transmit large packets because this reduces packet overheads such as
bandwidth wasted on header bytes. An obvious internetworking problem appears when a large
packet wants to travel through a network whose maximum packet size is too small. This nuisance
has been a persistent issue, and solutions to it have evolved along with much experience gained on
the Internet.
One solution is to make sure the problem does not occur in the first place. However, this is
easier said than done. A source does not usually know the path a packet will take through the
network to a destination, so it certainly does not know how small packets must be to get there. This
packet size is called the Path MTU (Path Maximum Transmission Unit).
The alternative solution to the problem is to allow routers to break up packets into
fragments, sending each fragment as a separate network layer packet. However, as every parent of
a small child knows, converting a large object into small fragments is considerably easier than the
reverse process.
2. To find the first address, we keep the n leftmost bits and set the (32 − n) rightmost bits
all to 0s.
3. To find the last address, we keep the n leftmost bits and set the (32 − n) rightmost bits all
to 1s.
5. Pay more attention to the type of service, particularly for real-time data.
The design of IPv6 presented a major opportunity to improve all of the features in IPv4 that
fall short of what is now wanted. One proposal was to run TCP over CLNP, the network layer
protocol designed for OSI. With its 160-bit addresses, CLNP would have provided enough address
space forever.
IPv6 meets IETF’s goals fairly well. It maintains the good features of IP, discards or
deemphasizes the bad ones, and adds new ones where needed. In general, IPv6 is not compatible
with IPv4, but it is compatible with the other auxiliary Internet protocols, including TCP, UDP,
ICMP, IGMP, OSPF, BGP, and DNS, with small modifications being required to deal with longer
addresses.
The main features of IPv6 are discussed below.
The third major improvement is better support for options. This change was essential
with the new header because fields that previously were required are now optional
(because they are not used so often).
o In addition, the way options are represented is different, making it simple for
routers to skip over options not intended for them. This feature speeds up
packet processing time.
Header Length. The 4-bit header length (HLEN) field defines the total length of the datagram
header in 4-byte words. The IPv4 datagram has a variable-length header.
Service Type. In the original design of the IP header, this field was referred to as type of service
(TOS), which defined how the datagram should be handle d.
FIGURE : IP DATAGRAM
Total Length. This 16-bit field defines the total length (header plus data) of the IP datagram in
bytes. A 16-bit number can define a total length of up to 65,535 (when all bits are 1s).
Identification, Flags, and Fragmentation Offset. These three fields are related to the
fragmentation of the IP datagram when the size of the datagram is larger than the underlying
network can carry.
Time-to-live. The time-to-live (TTL) field is used to control the maximum number of hops
(routers) visited by the datagram. When a source host sends the datagram, it stores a number in
this field. This value is approximately two times the maximum number of routers between any
Protocol. In TCP/IP, the data section of a packet, called the payload, carries the whole packet
from another protocol. A datagram, for example, can carry a packet belonging to any transport-
layer protocol such as UDP or TCP. A datagram can also carry a packet from other protocols
that directly use the service of the IP, such as some routing protocols or some auxiliary
protocols.
Header checksum. IP is not a reliable protocol; it does not check whether the payload carried by
a datagram is corrupted during the transmission. IP puts the burden of error checking of the
payload on the protocol that owns the payload, such as UDP or TCP. The datagram header,
however, is added by IP, and its error-checking is the responsibility of IP.
Source and Destination Addresses. These 32-bit source and destination address fields define the
IP address of the source and destination respectively. The source host should know its IP
address. The destination IP address is either known by the protocol that uses the service of IP or
is provided by the DNS.
Options. A datagram header can have up to 40 bytes of options. Options can be used for network
testing and debugging. Although options are not a required part of the IP header, option
processing is required of the IP software.
Payload. Payload, or data, is the main reason for creating a datagram. Payload is the packet
coming from other protocols that use the service of IP. Comparing a datagram to a postal
package, payload is the content of the package; the header is only the information written on the
package.
ICMPv4:
The IPv4 has no error-reporting or error-correcting mechanism. The IP protocol also lacks a
mechanism for host and management queries. A host sometimes needs to determine if a router or
another host is alive. And sometimes a network manager needs information from another host or
router.
The Internet Control Message Protocol version 4 (ICMPv4) has been designed to
compensate for the above two deficiencies. It is a companion to the IP protocol. ICMP itself is a
network-layer protocol.
However, its messages are not passed directly to the data-link layer as would be expected.
Instead, the messages are first encapsulated inside IP datagrams before going to the lower layer.
When an IP datagram encapsulates an ICMP message, the value of the protocol field in the IP
datagram is set to 1 to indicate that the IP payroll is an ICMP message.
MESSAGES:
ICMP messages are divided into two broad categories: error-reporting messages and query
messages.
The error-reporting messages report problems that a router or a host (destination) may
encounter when it processes an IP packet.
The query messages, which occur in pairs, help a host or a network manager get specific
information from a router or another host. For example, nodes can discover their neighbors. Also,
hosts can discover and learn about routers on their network and routers can help a node redirect its
messages.
Third, no ICMP error message will be generated for a fragmented datagram that is not
the first fragment.
Destination Unreachable: The most widely used error message is the destination
unreachable (type 3). This message uses different codes (0 to 15) to define the type of error message
and the reason why a datagram has not reached its final destination.
Source Quench: Another error message is called the source quench (type 4) message, which
informs the sender that the network has encountered congestion and the datagram has been dropped;
the source needs to slow down sending more datagrams.
IGMP:
The protocol that is used today for collecting information about group membership is the
Internet Group Management Protocol (IGMP). IGMP is a protocol defined at the network layer;
it is one of the auxiliary protocols, like ICMP, which is considered part of the IP. IGMP messages,
like ICMP messages, are encapsulated in an IP datagram.
Messages:
There are only two types of messages in IGMP version 3, query and report messages, as
shown in Figure. A query message is periodically sent by a router to all hosts attached to it to ask
them to report their interests about membership in groups. A report message is sent by a host as a
response to a query message.
b. A group-specific query message is sent from a router to ask about the membership
related to a specific group. This is sent when a router does not receive a response about a
specific group and wants to be sure that there is no active member of that group in the
network. The group identifier (multicast address) is mentioned in the message. The
message is encapsulated in a datagram with the destination address set to the
corresponding multicast address. Although all hosts receive this message, those not
interested drop it.
Report Message
A report message is sent by a host as a response to a query message. The message contains a
list of records in which each record gives the identifier of the corresponding group (multicast
address) and the addresses of all sources that the host is interested in receiving messages from
(inclusion).
The record can also mention the source addresses from which the host does not desire to
receive a group message (exclusion). The message is encapsulated in a datagram with the multicast
address 224.0.0.22 (multicast address assigned to IGMPv3).
In IGMPv3, if a host needs to join a group, it waits until it receives a query message and
then sends a report message. If a host needs to leave a group, it does not respond to a query
message. If no other host responds to the corresponding message, the group is purged from the
router database.
Propagation of Membership Information:
After a router has collected membership information from the hosts and other routers at its
own level in the tree, it can propagate it to the router located in a higher level of the tree. Finally,
the router at the tree root can get the membership information to build the multicast tree. The
process, however, is more complex than what we can explain in one paragraph. Interested readers
can check the book website for the complete description of this protocol.
Encapsulation: The IGMP message is encapsulated in an IP datagram with the value of the
protocol field set to 2 and the TTL field set to 1. The destination IP address of the datagram,
however, depends on the type of message, as shown in figure.
UNIT-III
NETWORK LAYER
OBJECTIVE QUESTIONS
5. Which one of the following routing algorithm can be used for network layer design?
a) shortest path algorithm b) distance vector routing
c) link state routing d) all the above
6. 6. Multidestination routing
a) is same as broadcast routing b) contains the list of all destinations
c) data is not sent by packets d) none
7. A subset of a network that includes all the routers but contains no loops is call ed
a) spanning tree b) spider structure
c) spider tree d) none
8. Which one of the following algorithm is not used for congest ion control?
a) traffic aware routing b) admission control
c) load shedding d) none of the mentioned
13.______ deals with the issues of creating and maintaining routing tables.
a. Forwarding b. Routing
c. Directing d. None directing
a. Static b. Dynamic
c. Hierarchical d. Non static
16. Which of the following is/are the uses of static routing methods?
a. To manually define a default route. b. To provide more secure network environment.
c. To provide more efficient resource utilization. d. All of the above
17. A ____routing table is updated periodically using one of the dynamic routing protocols.
a. static b. dynamic
c. hierarchical d. non static
19. In ________ forwarding, the full IP address of a destination is given in the routing table.
a. next-hop b. network-specific
c. host-specific d. default
20. To build the routing table, _________algorithms allow routers to automatically discover and
maintain awareness or the paths through the network.
a. Static routing b. dynamic routing
c. Hybrid routing d. automatic routing
21. In ______ forwarding, the mask and destination addresses are both 0.0.0.0 in the routing table.
a. next-hop b. network-specific
c. host-specific d. default
22).To build the routing table, _______method use preprogrammed definitions representing paths
through the network.
a. Static routing b. dynamic routing
c. Hybrid routing d. automatic routing
23).In ______forwarding, the destination addresses is a network address in the routing table.
a. next-hop b. network-specific
c. host-specific d. default
25. In _____forwarding, the routing table holds the address of just the next hop instead of complete
route information.
a. next-hop b. network-specific
c. host-specific d. default
27. A one-to-all communication between one source and all hosts on a network is classified as
a____.
a. unicast b. multicast
c. broadcast d. point to point
29).A robust routing protocol provides the ability to ......... buil d and manage the information in the
IP routing table.
a. Dynamically b. Statically
c. Hierarchically d. All of the above
32. ________ are the limitations that cause different networks have different pack et size.
a) hardware b) operating system
c) protocols d) all
37. Which class of IP address is used for used for more networks and less hosts.
a) class-A b) class-B c)class-C d) class-E
40.To indicate a sender that,it has no data,to the receiver bit is set
a)PSH b)RST c)FIN d) ACK
48.RARP is used to map the data link layer address onto _______________address.
a)network b)port c)IP d)None
1. What are the Services provided by Network layer to the Transport layer ?
8. Explain flooding
TRANSPORT LAYER
The transport layer in the TCP/IP suite is located between the application layer and the network
layer. It provides services to the application layer and receives services from the network layer.
The transport layer acts as a liaison between a client program and a server program, a process-to-
process connection. The transport layer is the heart of the TCP/IP protocol suite; it is the end-to-
end logical vehicle for transferring data from one point to another in the Internet.
Introduction:
The transport layer is located between the application layer and the network layer. It provides a
process-to-process communication between two application layers, one at the local host and the
other at the remote host. Communication is provided using a logical connection, which means
that the two application layers, which can be located in different parts of the globe, assume that
there is an imaginary direct connection through which they can send and receive messages.
The ultimate goal of the transport layer is to provide efficient, reliable, and cost-effective data
transmission service to its users, normally processes in the application layer. To achieve this, the
transport layer makes use of the services provided by the network layer. The software and/or
hardware within the transport layer that does the work is called the transport entity.
The transport entity can be located in the operating system kernel, in a library package bound
into network applications, in a separate user process, or even on the network interface card. The
first two options are most common on the Internet. The (logical) relationship of the network,
transport, and application layers is illustrated in Fig. 4.1. Just as there are two types of network
service, connection-oriented and connectionless, there are also two types of transport service.
The connection-oriented transport service is similar to the connection-oriented network service
in many ways. In both cases, connections have three phases: establishment, data transfer, and
release. Addressing and flow control are also similar in both layers.
Furthermore, the connectionless transport service is also very similar to the connectionless
network service. However, note that it can be difficult to provide a connectionless transport
service on top of a connection-oriented network service, since it is inefficient to set up a
connection to send a single packet and then tear (meaning run/rip/rush) it down immediately
afterwards.
To allow users to access the transport service, the transport layer must provide some
operations to application programs, that is, a transport service interface. Each transport service
has its own interface. The transport service is similar to the network service, but there are also
some important differences. The main difference is that the network service is intended to model
the service offered by real networks and all. Real networks can lose packets, so the network
service is generally unreliable. The connection-oriented transport service, in contrast, is reliable.
Of course, real networks are not error-free, but that is precisely the purpose of the transport
layer—to provide a reliable service on top of an unreliable network.
A second difference between the network service and transport service is whom the
services are intended for. The network service is used only by the transport entities. Few users
write their own transport entities, and thus few users or programs ever (meaning
always/forever/still) see the bare network service.
Berkeley sockets:
Let us now briefly inspect another set of transport primitives, the socket primitives as they are
used for TCP. Sockets were first released as part of the Berkeley UNIX 4.2BSD software
distribution in 1983. They quickly became popular.
The primitives are now widely used for Internet programming on many operating systems,
especially UNIX-based systems, and there is a socket-style API for Windows called ‘‘winsock.’’
The primitives are listed in Fig. 4.2.
The transport service is implemented by a transport protocol used between the two transport
entities. In some ways, transport protocols resemble the data link protocols. Both have to deal
with error control, sequencing, and flow control, among other issues. However, significant
differences between the two also exist. These differences are due to major dissimilarities
between the environments in which the two protocols operate, as shown in Fig. 4.3.
Figure 4.3: Environment of the (a) data link layer (b) transport layer
At the data link layer, two routers communicate directly via a physical channel, whether wired or
wireless, whereas at the transport layer, this physical channel is replaced by the entire network.
For one thing, over point-to-point links such as wires or optical fiber, it is usually not necessary
for a router to specify which router it wants to talk to—each outgoing line leads directly to a
particular router. In the transport layer, explicit addressing of destinations is required.
For another thing, the process of establishing a connection over the wire of Fig. 4.3(a) is
simple: the other end is always there (unless it has crashed, in which case it is not there). Either
way, there is not much to do.
Addressing:
Figure 4.4 illustrates the relationship between the NSAPs, the TSAPs, and a transport
connection.
1. A mail server process attaches itself to TSAP 1522 on host 2 to wait for an
incoming call. A call such as our LISTEN might be used, for example.
4. The mail server responds to say that it will deliver the message.
Connection Establishment:
Some of the packets might get stuck in a traffic jam inside the network and take a long time to
arrive. That is, they may be delayed in the network and pop out much later, when the sender
thought that they had been lost. The worst possible nightmare is as follows. A user establishes a
connection with a bank, sends messages telling the bank to transfer a large amount of money to
the account of a not-entirely-trustworthy person. Unfortunately, the packets decide to take the
scenic route to the destination and go off exploring a remote corner of the network.
The sender then times out and sends them all again. This time the packets take the
shortest route and are delivered quickly so the sender releases the connection.
Unfortunately, eventually the initial batch of packets finally come out of hiding and
arrive at the destination in order, asking the bank to establish a new connection and transfer
money (again). The bank has no way of telling that these are duplicates. It must assume that this
is a second, independent transaction, and transfers the money again.
Note: However, this approach makes it more difficult to connect with a process in the first place.
Another possibility is to give each connection a unique identifier (i.e., a sequence number
incremented for each connection established) chosen by the initiating party and put in each
segment, including the one requesting the connection. After each connection is released, each
transport entity can update a table listing obsolete connections as (peer transport entity,
connection identifier) pairs. Whenever a connection request comes in, it can be checked against
the table to see if it belongs to a previously released connection.
Unfortunately, this scheme has a basic flaw: it requires each transport entity to maintain a certain
amount of history information indefinitely. This history must persist at both the source and
destination machines. Otherwise, if a machine crashes and loses its memory, it will no longer
know which connection identifiers have already been used by its peers.
Instead, we need to take a different tack to simplify the problem. Rather than allowing packets to
live forever within the network, we devise a mechanism to kill off aged packets that are still
hobbling about.
Packet lifetime can be restricted to a known maximum using one (or more) of the
following techniques:
Releasing a connection is easier than establishing one. There are two styles of terminating a
connection: asymmetric release and symmetric release. Asymmetric release is the way the
telephone system works: when one party hangs up, the connection is broken. Symmetric release
treats the connection as two separate unidirectional connections and requires each one to be
released separately.
Asymmetric release is abrupt and may result in data loss. Consider the scenario of Fig. 4.6. After
the connection is established, host 1 sends a segment that arrives properly at host 2. Then host 1
sends another segment.
Unfortunately, host 2 issues a DISCONNECT before the second segment arrives. The result is
that the connection is released and data are lost.
Symmetric release does the job when each process has a fixed amount of data to send and clearly
knows when it has sent it. In other situations, determining that all the work has been done and the
connection should be terminated is not so obvious. One can envision a protocol in which host 1
says ‘‘I am done. Are you done too?’’ If host 2 responds: ‘‘I am done too. Goodbye, the
connection can be safely released.’’
In practice, we can avoid this quandary (meaning dilemma/difficulty) by foregoing the need for
agreement and pushing the problem up to the transport user, letting each side independently
decide when it is done. This is an easier problem to solve. Figure 4.7 illustrates four scenarios of
releasing using a three-way handshake. While this protocol is not infallible, it is usually
adequate. In Fig. 4.7(a), we see the normal case in which one of the users sends a DR
(DISCONNECTION REQUEST) segment to initiate the connection release.
When it arrives, the recipient sends back a DR segment and starts a timer, just in case its DR is
lost. When this DR arrives, the original sender sends back an ACK segment and releases the
connection.
Finally, when the ACK segment arrives, the receiver also releases the connection. Releasing a
connection means that the transport entity removes the information about the connection from its
table of currently open connections and signals the connection’s owner (the transport user)
somehow. If the final ACK segment is lost, as shown in Fig. 4.7(b), the situation is saved by the
timer. When the timer expires, the connection is released anyway. Now consider the case of the
second DR being lost.
The user initiating the disconnection will not receive the expected response, will time out,
and will start all over again. In Fig. 4.7(c), we see how this works, assuming that the second time
no segments are lost and all segments are delivered correctly and on time.
Our last scenario, Fig. 4.7(d), is the same as Fig. 4.7(c) except that now we assume all the
repeated attempts to retransmit the DR also fail due to lost segments. After N retries, the sender
just gives up and releases the connection. Meanwhile, the receiver times out and also exits.
Error control is ensuring that the data is delivered with the desired level of reliability, usually
that all of the data is delivered without any errors. Flow control is keeping a fast transmitter from
overrunning a slow receiver.
MULTIPLEXING:
Multiplexing, or sharing several conversations over connections, virtual circuits, and physical
links plays a role in several layers of the network architecture. In the transport layer, the need for
multiplexing can arise in a number of ways. For example, if only one network address is
available on a host, all transport connections on that machine have to use it.
When a segment comes in, some way is needed to tell which process to give it to. This situation,
called multiplexing, is shown in Fig. 4.8(a). In this figure, four distinct transport connections all
use the same network connection (e.g., IP address) to the remote host.
Multiplexing can also be useful in the transport layer for another reason. Suppose, for example,
that a host has multiple network paths that it can use. If a user needs more bandwidth or more
reliability than one of the network paths can provide, a way out is to have a connection that
distributes the traffic among multiple network paths on a round-robin basis, as indicated in Fig.
4.8(b).
If hosts and routers are subject to crashes or connections are long-lived (e.g., large software or
media downloads), recovery from these crashes becomes an issue. If the transport entity is
entirely within the hosts, recovery from network and router crashes is straightforward. The
transport entities expect lost segments all the time and know how to cope with them by using
retransmissions. A more troublesome problem is how to recover from host crashes. In particular,
it may be desirable for clients to be able to continue working when servers crash and quickly
reboot.
CONGESTION CONTROL:
If the transport entities on many machines send too many packets into the network too quickly,
the network will become congested, with performance degraded as packets are delayed and lost.
Controlling congestion to avoid this problem is the combined responsibility of the network and
transport layers. Congestion occurs at routers, so it is detected at the network layer. However,
congestion is ultimately caused by traffic sent into the network by the transport layer. The only
effective way to control congestion is for the transport protocols to send packets into the network
more slowly.
Before we describe how to regulate traffic, we must understand what we are trying to achieve by
running a congestion control algorithm. That is, we must specify the state in which a good
congestion control algorithm will operate the network. The goal is more than to simply avoid
congestion. It is to find a good allocation of bandwidth to the transport entities that are using the
network. A good allocation will deliver good performance because it uses all the available
bandwidth but avoids congestion, it will be fair across competing transport entities, and it will
quickly track changes in traffic demands.
An efficient allocation of bandwidth across transport entities will use all of the network capacity
that is available. However, it is not quite right to think that if there is a 100-Mbps link, five
transport entities should get 20 Mbps each. They should usually get less than 20 Mbps for good
performance.
In the preceding discussion, we did not talk about how to divide bandwidth between different
transport senders. This sounds like a simple question to answer— give all the senders an equal
fraction of the bandwidth—but it involves several considerations. Perhaps the first consideration
is to ask what this problem has to do with congestion control. A second consideration is what a
fair portion means for flows in a network. It is simple enough if N flows use a single link, in
which case they can all have 1/N of the bandwidth (although efficiency will dictate that they use
slightly less if the traffic is bursty).
But what happens if the flows have different, but overlapping, network paths? For
example, one flow may cross three links, and the other flows may cross one link. The three-link
flow consumes more network resources. It might be fairer in some sense to give it less
bandwidth than the one-link flows. The form of fairness that is often desired for network usage is
max-min fairness. An allocation is max-min fair if the bandwidth given to one flow cannot be
increased without decreasing the bandwidth given to another flow with an allocation that is no
larger.
Convergence:
A final criterion is that the congestion control algorithm converge quickly to a fair and efficient
allocation of bandwidth. The discussion of the desirable operating point above assumes a static
network environment. However, connections are always coming and going in a network, and the
bandwidth needed by a given connection will vary over time too. Because of the variation in
demand, the ideal operating point for the network varies over time.
A good congestion control algorithm should rapidly converge to the ideal operating point,
and it should track that point as it changes over time. If the convergence is too slow, the
algorithm will never be close to the changing operating point. If the algorithm is not stable, it
may fail to converge to the right point in some cases, or even oscillate around the right point.
The second is congestion, in the case that there is insufficient capacity in the network.
In Fig. 4.9, we see this problem illustrated hydraulically. In Fig. 4.9(a), we see a thick pipe
leading to a small-capacity receiver. This is a flow-control limited situation. As long as the
sender does not send more water than the bucket can contain, no water will be lost.
In Fig. 4.9(b), the limiting factor is not the bucket capacity, but the internal carrying capacity of
the network. If too much water comes in too fast, it will back up and some will be lost (in this
case, by overflowing the funnel).
CN Lecture notes Page 12
The way that a transport protocol should regulate the sending rate depends on the form of the
feedback returned by the network. Different network layers may return different kinds of
feedback. The feedback may be explicit or implicit, and it may be precise or imprecise.
Figure 4.9: (a) a fast network feeding a low -capacity receiver. (b) a slow network
feeding a high-capacity receiver.
Wireless issues:
Transport protocols such as TCP that implement congestion control should be independent of the
underlying network and link layer technologies. That is a good theory, but in practice there are
issues with wireless networks. The main issue is that packet loss is often used as a congestion
signal, including by TCP.
Wireless networks lose packets all the time due to transmission errors. To function well, the only
packet losses that the congestion control algorithm should observe are losses due to insufficient
bandwidth, not losses due to transmission errors. One solution to this problem is to mask the
wireless losses by using retransmissions over the wireless link.
UDP:
The Internet has two main protocols in the transport layer, a connectionless protocol and a
connection-oriented one. The protocols complement each other.The connectionless protocol is
UDP. It does almost nothing beyond sending packets between applications, letting applications
build their own protocols on top as needed.The connection-oriented protocol is TCP. It does
almost everything. It makes connections and adds reliability with retransmissions, along with
flow control and congestion control, all on behalf of the applications that use it.
The Internet protocol suite supports a connectionless transport protocol called UDP (User
Datagram Protocol).UDP provides a way for applications to send encapsulated IP datagrams
without having to establish a connection. UDP is described in RFC 768. UDP transmits
segments consisting of an 8-byte header followed by the payload. The header is shown in Fig.
4.10. The two ports serve to identify the endpoints within the source and destination machines.
When a UDP packet arrives, its payload is handed to the process attached to the destination port.
This attachment occurs when the BIND primitive or something similar is used.
Think of ports as mailboxes that applications can rent to receive packets. In fact, the main value
of UDP over just using raw IP is the addition of the source and destination ports.
Without the port fields, the transport layer would not know what to do with each incoming
packet. With them, it delivers the embedded segment to the correct applica tion.
The source port is primarily needed when a reply must be sent back to the source. By copying
the Source port field from the incoming segment into the Destination port field of the outgoing
segment, the process sending the reply can specify which process on the sending machine is to
get it.
The UDP length field includes the 8-byte header and the data. The minimum length is 8 bytes, to
cover the header. The maximum length is 65,515 bytes, which is lower than the largest number
that will fit in 16 bits because of the size limit on IP packets.
An optional Checksum is also provided for extra reliability. It checksums the header, the data,
and a conceptual IP pseudoheader. When performing this computation, the Checksum field is set
to zero and the data field is padded out with an additional zero byte if its length is an odd
number. The checksum algorithm is simply to add up all the 16-bit words in one’s complement
and to take the one’s complement of the sum.
Step 4 is the operating system passing the incoming packet to the server stub.
Finally, step 5 is the server stub calling the server procedure with the unmarshaled
parameters.
The reply traces the same path in the other direction.The key item to note here is that the
client procedure, written by the user, just makes a normal (i.e., local) procedure call to the
client stub, which has the same name as the server procedure. Since the client procedure
and client stub are in the same address space, the parameters are passed in the usual way.
Similarly, the server procedure is called by a procedure in its address space with the
parameters it expects. To the server procedure, nothing is unusual.
Client-server RPC is one area in which UDP is widely used. Another one is for real-time
multimedia applications. In particular, as Internet radio, Internet telephony, music-on-demand,
videoconferencing, video-on-demand, and other multimedia applications became more
commonplace, people have discovered that each application was reinventing more or less the
same real-time transport protocol. Thus was RTP (Real-time Transport Protocol) born.
It is described in RFC 3550 and is now in widespread use for multimedia applications. There are
two aspects of real-time transport . The first is the RTP protocol for transporting audio and video
data in packets. The second is the processing that takes place, mostly at the receiver, to play out
the audio and video at the right time.
The basic function of RTP is to multiplex several real-time data streams onto a single
stream of UDP packets. The UDP stream can be sent to a single destination (unicasting) or to
multiple destinations (multicasting).
The first word contains the Version field, which is already at 2. The P bit indicates that the
packet has been padded to a multiple of 4 bytes. The X bit indicates that an extension header is
present. The CC field tells how many contributing sources are present, from 0 to 15. The M bit is
an application-specific marker bit. It can be used to mark the start of a video frame, the start of a
word in an audio channel, or something else that the application understands. The Payload type
field tells which encoding algorithm has been used (e.g., uncompress ed 8-bit audio, MP3, etc.).
The Sequence number is just a counter that is incremented on each RTP packet sent. It is used to
detect lost packets. The Timestamp is produced by the stream’s source to note when the first
sample in the packet was made. The Synchronization source identifier tells which stream the
packet belongs to. It is the method used to multiplex and demultiplex multiple data streams onto
a single stream of UDP packets.
Finally, the Contributing source identifiers, if any, are used when mi xers are present.
RTP has a little sister protocol (little sibling protocol?) called RTCP (Realtime Transport
Control Protocol). It is defined along with RTP in RFC 3550 and handles feedback,
synchronization, and the user interface. It does not transport any media samples.
TCP
UDP is a simple protocol and it has some very important uses, such as clientserver interactions
and multimedia, but for most Internet applications, reliable, sequenced delivery is needed. UDP
cannot provide this, so another protocol is required. It is called TCP and is the main workhorse
of the Internet.
TCP (Transmission Control Protocol) was specifically designed to provide a reliable end-to-
end byte stream over an unreliable internetwork. An internetwork differs from a single network
because different parts may have wildly different topologies, bandwidths, delays, packet sizes,
and other parameters. TCP was designed to dynamically adapt to properties of the internetwork
and to be robust in the face of many kinds of failures. TCP was formally defined in RFC 793 in
September 1981.
As time went on, many improvements have been made, and various errors and
inconsistencies have been fixed. To give you a sense of the extent of TCP, the important RFCs
are now RFC 793 plus: clarifications and bug fixes in RFC 1122; extensions for high-
performance in RFC 1323. Selective acknowledgements in RFC 2018; congestion control in
RFC 2581; repurposing of header fields for quality of service in RFC 2873; improved
retransmission timers in RFC 2988; and explicit congestion notification in RFC 3168. The IP
layer gives no guarantee that datagrams will be delivered properly, nor any indication of how fa st
datagrams may be sent.
It is up to TCP to send datagrams fast enough to make use of the capacity but not cause
congestion, and to time out and retransmit any datagrams that are not delivered. Datagrams that
do arrive may well do so in the wrong order; it is also up to TCP to reassemble them into
messages in the proper sequence.
TCP service is obtained by both the sender and the receiver creating end points, called
sockets. Each socket has a socket number (address) consisting of the IP address of the host and a
16-bit number local to that host, called a port. A port is the TCP name for a TSAP.
All TCP connections are full duplex and point-to-point. Full duplex means that traffic can go in
both directions at the same time. Point-to-point means that each connection has exactly two end
points. TCP does not support multicasting or broadcasting. A TCP connection is a byte stream,
not a message stream. Message boundaries are not preserved end to end.
A key feature of TCP, and one that dominates the protocol design, is that every byte on a TCP
connection has its own 32-bit sequence number. When the Internet began, the lines between
routers were mostly 56-kbps leased lines, so a host blasting away at full speed took over 1 week
to cycle through the sequence numbers.
The sending and receiving TCP entities exchange data in the form of segments. A TCP segment
consists of a fixed 20-byte header (plus an optional part) followed by zero or more data bytes.
The TCP software decides how big segments should be.
It can accumulate data from several writes into one segment or can split data from one write over
multiple segments. Two limits restrict the segment size. First, each segment, including the TCP
header, must fit in the 65,515- byte IP payload. Second, each link has an MTU (Maximum
Transfer Unit).
The basic protocol used by TCP entities is the sliding window protocol with a dynamic window
size. When a sender transmits a segment, it also starts a timer. When the segment arrives at the
destination, the receiving TCP entity sends back a segment (with data if any exist, and otherwise
without) bearing an acknowledgement number equal to the next sequence number it expects to
receive and the remaining window size. If the sender’s timer goes off before the
acknowledgement is received, the sender transmits the segment again.
Figure 4.15 shows the layout of a TCP segment. Every segment begins with a fixed-format, 20-
byte header. The fixed header may be followed by header options.
After the options, if any, up to 65,535 − 20 − 20 = 65,495 data bytes may follow, where the first
20 refer to the IP header and the second to the TCP h eader.
Segments without any data are legal and are commonly used for acknowledgements and
control message
The Sequence number and Acknowledgement number fields perform their usual functions.
The Sequence number and Acknowledgement number fields perform their usual functions.
The TCP header length tells how many 32-bit words are contained in the TCP header. This
information is needed because the Options field is of variable length, so the header is, too.
Now come eight 1-bit flags. CWR and ECE are used to signal congestion when ECN (Explicit
Congestion Notification) is used. CWR is set to signal Congestion Window Reduced from the
TCP sender to the TCP receiver so that it knows the sender has slowed down and can stop
sending the ECN-Echo.
URG is set to 1 if the Urgent pointer is in use. The Urgent pointer is used to indicate a byte
offset from the current sequence number at which urgent data are to be found.
The ACK bit is set to 1 to indicate that the Acknowledgement number is valid. This is the case for
nearly all packets. If ACK is 0, the segment does not contain an acknowledgement, so the
Acknowledgement number field is ignored.
The PSH bit indicates PUSHed data. The receiver is hereby kindly requested to deliver the data
to the application upon arrival and not buffer it until a full buffer has been received (which it
might otherwise do for efficiency).
The RST bit is used to abruptly reset a connection that has become confused due to a host crash
or some other reason.
The SYN bit is used to establish connections. The FIN bit is used to release a connection.
The Window size field tells how many bytes may be sent starting at the byte acknowledged.
A Checksum is also provided for extra reliability. The Options field provides a way to add extra
facilities not covered by the regular header.
The other side, say, the client, executes a CONNECT primitive, specifying the IP address and
port to which it wants to connect, the maximum TCP segment size it is willing to accept, and
optionally some user data (e.g., a password). The CONNECT primitive sends a TCP segment
with the SYN bit on and ACK bit off and waits for a response.
When this segment arrives at the destination, the TCP entity there checks to see if there is a
process that has done a LISTEN on the port given in the Destination port field. If not, it sends a
reply with the RST bit on to reject the connection.
Although TCP connections are full duplex, to understand how connections are released it is best
to think of them as a pair of simplex connections. Each simplex connection is released
independently of its sibling.
To release a connection, either party can send a TCP segment with the FIN bit set, which means
that it has no more data to transmit. When the FIN is acknowledged, that direction is shut down
for new data.
Data may continue to flow indefinitely in the other direction, however. When both directions
have been shut down, the connection is released.
The network layer detects congestion when queues grow large at routers and tries to manage it, if
only by dropping packets. It is up to the transport layer to receive congestion feedback from the
network layer and slow down the rate of traffic that it is sending into the network.
In the Internet, TCP plays the main role in controlling congestion, as well as the main role in
reliable transport. That is why it is such a special protocol.
Some performance problems, such as congestion, are caused by temporary resource overloads. If
more traffic suddenly arrives at a router than the router can handle, congestion will build up and
performance will suffer.
Performance also degrades when there is a structural resource imbalance. For example, if a
gigabit communication line is attached to a low-end PC, the poor host will not be able to process
the incoming packets fast enough and some will be lost. These packets will eventually be
retransmitted, adding delay, wasting bandwidth, and generally reducing performance.
Another tuning issue is setting timeouts. When a segment is sent, a timer is set to guard against
loss of the segment. If the timeout is set too short, unnecessary retransmissions will occur,
clogging the wires. If the timeout is set too long, unnecessary delays will occur after a segment is
lost.
When a network performs poorly, its users often complain to the folks running it,
demanding improvements. To improve the performance, the operators must first determine
exactly what is going on. To find out what is really happening, the operators must make
measurements.
CN Lecture notes Page 22
Measurements can be made in different ways and at many locations (both in the protocol stack
and physically). The most basic kind of measurement is to start a timer when beginning some
activity and see how long that activity takes.
Other measurements are made with counters that record how often some event has happened
(e.g., number of lost segments). Measuring network performance and parameters has many
potential pitfalls. We list a few of them here. Any systematic attempt to measure network
performance should be careful to avoid these.
Do not measure the time to send one segment, but repeat the measurement, say, one million
times and take the average.
Ideally, the whole sequence of one million measurements should be repeated at different times of
the day and the week to see the effect of different network conditions on the measured quantity.
Repeating a measurement many times will return an unexpectedly fast answer if the protocols
use caching mechanisms.
Making measurements at the same time that some user has decided to run a video conference
over your network will often give different results than if there is no video conference.
Suppose that you make measurements with simulated network loads running from 0 (idle) to 0.4
(40% of capacity).
INTRODUCTION:
The application layer provides services to the user. Communication is provided using a logical
connection, which means that the two application layers assume that there is an imaginary direct
connection through which they can send and receive messages.
Providing Services:
All communication networks that started before the Internet were designed to provide services to
network users. Most of these networks, however, were originally designed to provide one
specific service. For example, the telephone network was originally designed to provide voice
service: to allow people all over the world to talk to each other. This network, however, was later
used for some other services, such as facsimile (fax), enabled by users adding some extra
hardware at both ends.
The Internet was originally designed for the same purpose: to provide service to users around the
world. The layered architecture of the TCP/IP protocol suite, however, makes the Internet more
flexible than other communication networks such as postal or telephone networks.
Each layer in the suite was originally made up of one or more protocols, but new protocols can
be added or some protocols can be removed or replaced by the Internet authorities. However, if a
protocol is added to each layer, it should be designed in such a way that it uses the services
provided by one of the protocols at the lower layer.
If a protocol is removed from a layer, care should be taken to change the protocol at the next
higher layer that supposedly uses the services of the removed protocol. The application layer,
however, is somewhat different from other layers in that it is the highest layer in the suite.
The protocols in this layer do not provide services to any other protocol in the suite; they only
receive services from the protocols in the transport layer. This means that protocols can be
removed from this layer easily. New protocols can be also added to this layer as long as the new
protocols can use the services provided by one of the transport -layer protocols.
There are several application-layer protocols that have been standardized and documented by the
Internet authority, and we are using them in our daily interaction with the Internet.
Each standard protocol is a pair of computer programs that interact with the user and the
transport layer to provide a specific service to the user.
CN Lecture notes Page 24
Nonstandard Application-Layer Protocols:
A programmer can create a nonstandard application-layer program if she can write two programs
that provide service to the user by interacting with the transport layer.
Application-Layer Paradigms
It should be clear that to use the Internet we need two application programs to interact with each
other: one running on a computer somewhere in the world, the other running on another
computer somewhere else in the world. The two programs need to send messages to each other
through the Internet infrastructure.
However, we have not discussed what the relationship should be between these programs.
Should both application programs be able to request services and provide services, or should the
application programs just do one or the other?
Two paradigms have been developed during the lifetime of the Internet to answer this question:
the client-server paradigm and the peer-to-peer paradigm.
The traditional paradigm is called the client-server paradigm. It was the most popular paradigm
until a few years ago. In this paradigm, the service provider is an application program, called the
server process; it runs continuously, waiting for another application program, called the client
process, to make a connection through the Internet and ask for service.
There are normally some server processes that can provide a specific type of service, but there
are many clients that request service from any of these server processes. The server process must
be running all the time; the client process is started when the client needs to receive service.
A new paradigm, called the peer-to-peer paradigm (often abbreviated P2P paradigm) has
emerged to respond to the needs of some new applications.
In this paradigm, there is no need for a server process to be running all the time and waiting for
the client processes to connect. The responsibility is shared between peers.
A computer connected to the Internet can provide service at one time and receive service at
another time. A computer can even provide and receive services at the same time.
CLIENT-SERVER PROGRAMMING:
In a client-server paradigm, communication at the application layer is between two running
application programs called processes: a client and a server.
A client is a running program that initializes the communication by sending a request; a server is
another application program that waits for a request from a client.
The server handles the request received from a client, prepares a result, and sends the result back
to the client. This definition of a server implies that a server must be running when a request
from a client arrives, but the client needs to be run only when it is needed.
A client process communicate with a server process with the help of a computer program which
is normally written in a computer language with a predefined set of instructions that tells the
computer what to do. A computer language has a set of instructions for mathematical operations,
a set of instructions for string manipulation, a set of instructions for input/output access, and so
on. If we need a process to be able to communicate with another process, we need a new set of
instructions to tell the lowest four layers of the TCP/IP suite to open the connection, send and
receive data from the other end, and close the connection. A set of instructions of this kind is
normally referred to as an application programming interface (API).
An interface in programming is a set of instructions between two entities. In this case, one of the
entities is the process at the application layer and the other is the operating system that
encapsulates the first four layers of the TCP/IP protocol sui te.
Several APIs have been designed for communication. One of the most common one is: socket
interface. The socket interface is a set of instructions that provide communication between the
application layer and the operating system, as shown in Figure 5.1.
Sockets:
Although a socket is supposed to behave like a terminal or a file, it is not a physical entity like
them; it is an abstraction. It is an object that is created and used by the application program.
A socket address should first define the computer on which a client or a server is running. Socket
address should be a combination of an IP address (32 bit) and a port number (16 bit). Since a
socket defines the end-point of the communication, we can say that a socket is identified by a
pair of socket addresses, a local and a remote.
Finding Socket Addresses: How can a client or a server find a pair of socket addresses for
communication? The situation is different for each site.
Server Site: The server needs a local (server) and a remote (client) socket address for
communication.
Local Socket Address The local (server) socket address is provided by the operating system. The
operating system knows the IP address of the computer on which the server process is running.
The port number of a server process, however, needs to be assigned.
If the server process is a standard one defined by the Internet authority, a port number is already
assigned to it. For example, the assigned port number for a Hypertext Transfer Protocol (HTTP)
is the integer 80, which cannot be used by any other process.
Remote Socket Address The remote socket address for a server is the socket address of the client
that makes the connection. Since the server can serve many clients, it does not know beforehand
the remote socket address for communication.
The server can find this socket address when a client tries to connect to the server. The client
socket address, which is contained in the request packet sent to the server, becomes the remote
socket address that is used for responding to the client.
Client Site: The client also needs a local (client) and a remote (server) socket address for
communication.
Local Socket Address The local (client) socket address is also provided by the operating system.
The operating system knows the IP address of the computer on which the client is running. The
port number, however, is a 16-bit temporary integer that is assigned to a client process each time
the process needs to start the communication. The port number, however, needs to be assigned
from a set of integers defined by the Internet authority and called the ephemeral (temporary) port
numbers. The operating system, however, needs to guarantee that the new port number is not
used by any other running client process.
World Wide Web: The idea of the Web was first proposed by Tim Berners -Lee in 1989. The
Web today is a repository of information in which the documents, called web pages, are
distributed all over the world and related documents are linked together.
The popularity and growth of the Web can be related to two terms in the above statement:
distributed and linked. Distribution allows the growth of the Web. Each web server in the world
can add a new web page to the repository and announce it to all Internet users without
overloading a few servers. Linking allows one web page to refer to another web page stored in
another server somewhere else in the world. The linking of web pages was achieved using a
concept called hypertext, which was introduced many years before the advent of the Internet.
The idea was to use a machine that automatically retrieved another document stored in the
system when a link to it appeared in the document. The Web implemented this idea
electronically to allow the linked document to be retrieved when the link was clicked by the user.
Today, the term hypertext, coined to mean linked text documents, has been changed to
hypermedia, to show that a web pagecan be a text document, an image, an audio file, or a video
file.
Architecture:
The WWW today is a distributed client-server service, in which a client using a browser can
access a service using a server. However, the service provided is distributed over many locations
called sites. Each site holds one or more web pages. Each web page, however, can contain some
links to other web pages in the same or other sites. In other words, a web page can be simple or
composite. A simple web page has no links to other web pages; a composite web page has one or
more links to other web pages. Each web page is a file with a name and address.
Web Client (Browser): A variety of vendors offer commercial browsers that interpret and
display a web page, and all of them use nearly the same architecture. Each browser usually
consists of three parts: a controller, client protocols, and interpreters (figure 5.2).
Web Server: The web page is stored at the server. Each time a request arrives, the
corresponding document is sent to the client. To improve efficiency, servers normally store
requested files in a cache in memory; memory is faster to access than a disk. A server can also
become more efficient through multithreading or multiprocessing. In this case, a server can
answer more than one request at a time. Some popular web servers include Apache and
Microsoft Internet Information Server.
A web page, as a file, needs to have a unique identifier to distinguish it from other web pages. To
define a web page, we need three identifiers: host, port, and path. However, before defining the
web page, we need to tell the browser what client server application we want to use, which is
called the protocol. This means we need four identifiers to define the web page.
The first is the type of vehicle to be used to fetch the web page; the last three make up the
combination that defines the destination object (web page).
Protocol. The first identifier is the abbreviation for the client-server program that we need in
order to access the web page.
Although most of the time the protocol is HTTP (HyperText Transfer Protocol), we can also use
other protocols such as FTP (File Transfer Protocol).
Host. The host identifier can be the IP address of the server or the unique name given to the
server. IP addresses can be defined in dotted decimal notation.
Port. The port, a 16-bit integer, is normally predefined for the client-server application.
Path. The path identifies the location and the name of the file in the underlying operating system.
The format of this identifier normally depends on the operating system.
To combine these four pieces together, the uniform resource locator (URL) has been designed;
it uses three different separators between the four pieces as shown below:
Static Documents:
Static documents are fixed-content documents that are created and stored in a server. The client
can get a copy of the document only. In other words, the contents of the file are determined when
the file is created, not when it is used. Static documents are prepared using one of several
languages: HyperText Markup Language (HTML), Extensible Markup Language (XML),
Extensible Style Language (XSL), and Extensible Hypertext Markup Language (XHTML).
Dynamic Documents:
A dynamic document is created by a web server whenever a browser requests the document.
When a request arrives, the web server runs an application program or a script that creates the
dynamic document. The server returns the result of the program or script as a response to the
browser that requested the document. Because a fresh document is created for each request, the
contents of a dynamic document may vary from one request to another. A very simple example
of a dynamic document is the retrieval of the time and date from a server.
Active Documents:
For many applications, we need a program or a script to be run at the client site. These are called
active documents. For example, suppose we want to run a program that creates animated
graphics on the screen or a program that interacts with the user.
Nonpersistent Connections
In a nonpersistent connection, one TCP connection is made for each request/response.
The following lists the steps in this strategy:
3. The client reads the data until it encounters an end-of-file marker; it then closes the
connection.
CN Lecture notes Page 30
Persistent Connections
HTTP version 1.1 specifies a persistent connection by default. In a persistent connection, the
server leaves the connection open for more requests after sending a response. The server can
close the connection at the request of a client or if a time-out has been reached. The sender
usually sends the length of the data with each response. However, there are some occasions when
the sender does not know the length of the data.
This is the case when a document is created dynamically or actively. In these cases, the server
informs the client that the length is not known and closes the connection after sending the data so
the client knows that the end of the data has been reached. Time and resources are saved using
persistent connections.
Only one set of buffers and variables needs to be set for the connection at each site. The round
trip time for connection establishment and connection termination is saved.
Message Formats:
The HTTP protocol defines the format of the request and response messages. Each message is
made of four sections. The first section in the request message is called the request line; the first
section in the response message is called the status line. The other three sections have the same
names in the request and response messages. However, the similarities between these sections
are only in the names; they may have different contents. We discuss each message type
separately.
Request Message:
There are three fields in this line separated by one space and terminated by two characters
(carriage return and line feed). The fields are called method, URL, and version.
The method field defines the request types. Several methods are defined like GET, PUT, HEAD,
POST, TRACE, DELETE, etc. The URL defines the address and name of the corresponding web
page. The version field gives the version of the protocol; the most current version of HTTP is
1.1.
Response Message:
A response message consists of a status line, header lines, a blank line, and sometimes a body.
The first line in a response message is called the status line. There are three fields in this line
separated by spaces and terminated by a carriage return and line feed.
The first field defines the version of HTTP protocol, currently 1.1. The status code field defines
the status of the request. It consists of three digits. Whereas the codes in the 100 range are only
informational, the codes in the 200 range indicate a successful request. The codes in the 300
range redirect the client to another URL, and the codes in the 400 range indicate an error at the
client site. Finally, the codes in the 500 range indicate an error at the server site.
The status phrase explains the status code in text form. After the status line, we can have zero or
more response header lines. Each header line sends additional information from the server to the
client.
HTTP Security:
HTTP per se does not provide security. HTTP can be run over the Secure Socket Layer (SSL). In
this case, HTTP is referred to as HTTPS. HTTPS provides confidentiality, client and server
authentication, and data integrity.
FTP:
File Transfer Protocol (FTP) is the standard protocol provided by TCP/IP for copying a file
from one host to another. Although transferring files from one system to another seems simple
and straightforward, some problems must be dealt with first.
Although we can transfer files using HTTP, FTP is a better choice to transfer large files or to
transfer files using different formats. Figure 5.3 shows the basic model of FTP. The client has
three components: the user interface, the client control process, and the client data transfer
process. The server has two components: the server control process and the server data transfer
process.
The control connection is made between the control processes. The data connection is made
between the data transfer processes. Separation of commands and data transfer makes FTP more
efficient. The control connection uses very simple rules of communication. We need to transfer
only a line of command or a line of response at a time. The data connection, on the other hand,
needs more complex rules due to the variety of data types transfe rred.
Two Connections
The two connections in FTP have different lifetimes. The control connection remains connected
during the entire interactive FTP session. The data connection is opened and then closed for each
file transfer activity.
Control Connection:
During this control connection, commands are sent from the client to the server and responses
are sent from the server to the client. Commands, which are sent from the FTP client control
process, are in the form of ASCII uppercase, which may or may not be followed by an argument.
Some of the most common commands are shown in table below:
Every FTP command generates at least one response. A response has two parts: a three-digit
number followed by text. The numeric part defines the code; the text part defines needed
parameters or further explanations. The first digit defines the status of the command. The second
digit defines the area in which the status applies. The third digit provides additional information.
ELECTRONIC MAIL:Electronic mail (or e-mail) allows users to exchange messages. The
nature of this application, however, is different from other applications discussed so far. In an
application such as HTTP or FTP, the server program is running all the time, waiting for a
request from a client. When the request arrives, the server provides the service. There is a request
and there is a response.
In the case of electronic mail, the situation is different. First, e-mail is considered a one-way
transaction. When Alice sends an email to Bob, she may expect a response, but this is not a
mandate. Bob may or may not respond. If he does respond, it is another one -way transaction.
Second, it is neither feasible nor logical for Bob to run a server program and wait until someone
sends an e-mail to him. Bob may turn off his computer when he is not using it.
This means that the idea of client/server programming should be implemented in another way:
using some intermediate computers (servers). The users run only client programs when they want
and the intermediate servers apply the client/server paradigm
CN Lecture notes Page 33
Architecture:
To explain the architecture of e-mail, we give a common scenario as shown in Figure 5.4.
In the common scenario, the sender and the receiver of the e-mail, Alice and Bob respectively,
are connected via a LAN or a WAN to two mail servers. The administrator has created one
mailbox for each user where the received messages are stored. A mailbox is part of a server hard
drive, a special file with permission restrictions. Only the owner of the mailbox has access to it.
The administrator has also created a queue (spool) to store messages waiting to be sent.
A simple e-mail from Alice to Bob takes nine different steps. Alice and Bob use three different
agents: a user agent (UA), a message transfer agent (MTA), and a message access agent
(MAA). When Alice needs to send a message to Bob, she runs a UA program to prepare the
message and send it to her mail server.
The mail server at her site uses a queue (spool) to store messages waiting to be sent. The
message, however, needs to be sent through the Internet from Alice’s site to Bob’s site using an
MTA. Here two message transfer agents are needed: one client and one server.
Like most client-server programs on the Internet, the server needs to run all the time because it
does not know when a client will ask for a connection. The client, on the other hand, can be
triggered by the system when there is a message in the queue to be sent.
The user agent at the Bob site allows Bob to read the received message. Bob later uses an MAA
client to retrieve the message from an MAA server running on the second server.
User Agent: The first component of an electronic mail system is the user agent (UA). It
provides service to the user to make the process of sending and receiving a message easier. A
user agent is a software package (program) that composes, reads, replies to, and forwards
messages. It also handles local mailboxes on the user computers.
Message Transfer Agent: SMTP: Based on the common scenario, we can say that the e-mail is
one of those applications that needs three uses of client-server paradigms to accomplish its task.
It is important that we distinguish these three when we are dealing with e-mail. The formal
protocol that defines the MTA client and server in the Internet is called Simple Mail Transfer
Protocol (SMTP). SMTP is used two times, between the sender and the sender’s mail server and
between the two mail servers. SMTP simply defines how commands and responses must be sent
back and forth.
CN Lecture notes Page 34
Message Access Agent: POP and IMAP: The first and second stages of mail delivery use
SMTP. However, SMTP is not involved in the third stage because SMTP is a push protocol; it
pushes the message from the client to the server.On the other hand, the third stage needs a pull
protocol; the client must pull messages from the server. The direction of the bulk data is from the
server to the client. The third stage uses a message access agent.
Currently two message access protocols are available: Post Office Protocol, version 3 (POP3)
and Internet Mail Access Protocol, version 4 (IMAP4).
POP3: Post Office Protocol, version 3 (POP3) is simple but limited in functionality. The client
POP3 software is installed on the recipient computer; the server POP3 software is installed on
the mail server. Mail access starts with the client when the user needs to download its e -mail
from the mailbox on the mail server. The client opens a connection to the server on TCP port
110. It then sends its user name and password to access the mailbox. The user can then list and
retrieve the mail messages, one by one. POP3 has two modes: the delete mode and the keep
mode. In the delete mode, the mail is deleted from the mailbox after each retrieval. In the keep
mode, the mail remains in the mailbox after retrieval.
IMAP4: Another mail access protocol is Internet Mail Access Protocol, version 4 (IMAP4).
IMAP4 is similar to POP3, but it has more features; IMAP4 is more powerful and more complex.
POP3 is deficient in several ways. It does not allow the user to organize her mail on the server;
the user cannot have different folders on the server. In addition, POP3 does not allow the user to
partially check the contents of the mail before downloading. IMAP4 provides the following extra
functions:
A user can check the e-mail header prior to downloading.
A user can search the contents of the e-mail for a specific string of characters prior to
downloading.
A user can partially download e-mail. This is especially useful if bandwidth is limited
and the e-mail contains multimedia with high bandwidth requirements.
A user can create, delete, or rename mailboxes on the mail server.
TELNET:
A server program can provide a specific service to its corresponding client program. For
example, the FTP server is designed to let the FTP client store or retrieve files on the server site.
However, it is impossible to have a client/server pair for each type of service we need; the
number of servers soon becomes intractable which is not scalable. Another solution is to have a
specific client/server program for a set of common scenarios, but to have some generic
client/server programs that allow a user on the client site to log into the computer at the server
site and use the services available there.
1. The simple plaintext architecture of TELNET allows us to explain the issues and challenges
related to the concept of remote logging, which is also used in SSH when it serves as a
remote logging protocol.
2. Network administrators often use TELNET for diagnostic and debugging purposes.
However, when a user wants to access an application program or utility located on a remote
machine, she performs remote logging. Here the TELNET client and server programs come into
use. The user sends the keystrokes to the terminal driver where the local operating system
accepts the characters but does not interpret them.
The characters are sent to the TELNET client, which transforms the characters into a universal
character set called Network Virtual Terminal (NVT) characters and delivers them to the local
TCP/IP stack. The commands or text, in NVT form, travel through the Internet and arrive at the
TCP/IP stack at the remote machine. Here the characters are delivered to the operating system
and passed to the TELNET server, which changes the characters to the corresponding characters
understandable by the remote computer. However, the characters cannot be passed directly to the
operating system because the remote operating system is not designed to receive characters from
a TELNET server; it is designed to receive characters from a terminal driver.
The solution is to add a piece of software called a pseudoterminal driver, which pretends
that the characters are coming from a terminal. The operating system then passes the characters
to the appropriate application program.
To send control characters between computers (from client to server or vice versa), NVT uses an
8-bit character set in which the highest order bit is set to 1.
Options: TELNET lets the client and server negotiate options before or during the use of the
service.
User Interface:
The operating system (UNIX, for example) defines an interface with user-friendly commands.
An example of such a set of commands can be found in Table beow:
2. Data integrity, which means that it is guaranteed that the messages exchanged between the
client and server are not changed by an intruder.
3. Server authentication, which means that the client is now sure that the server is the one that it
claims to be.
4. Compression of the messages, which improves the efficiency of the system and makes attack
more difficult.
SSH for Remote Logging: Several free and commercial applications use SSH for remote
logging. Among them, we can mention PuTTy, by Simon Tatham, which is a client SSH
program that can be used for remote logging. Another application program is Tectia, which can
be used on several platforms.
SSH for File Transfer: One of the application programs that is built on top of SSH for file
transfer is the Secure File Transfer Program (sftp). The sftp application program uses one of the
channels provided by the SSH to transfer files. Another common application is called Secure
Copy (scp). This application uses the same format as the UNIX copy command, cp, to copy files.
DOMAIN NAME SYSTEM (DNS): Since the Internet is so huge today, a central directory
system cannot hold all the mapping. In addition, if the central computer fails, the whole
communication network will collapse. A better solution is to distribute the information among
many computers in the world. In this method, the host that needs mapping can contact the closest
computer holding the needed information. This method is used by the Domain Name System
(DNS).
Figure 5.5 shows how TCP/IP uses a DNS client and a DNS server to map a name to an address.
A user wants to use a file transfer client to access the corresponding file transfer server running
on a remote host. The user knows only the file transfer server n ame, such as afilesource.com.
A name in this space is a sequence of characters without structure. The names may or may not
have a common section; if they do, it has no meaning. The main disadvantage of a flat name
space is that it cannot be used in a large system such as the Internet because it must be centrally
controlled to avoid ambiguity and duplication. In a hierarchical name space, each name is made
of several parts. The first part can define the nature of the organization, the second part can
define the name of an organization, the third part can define departments in the organization, and
so on. In this case, the authority to assign and control the name spaces can be decentralized.
A central authority can assign the part of the name that defines the nature of the organization and
the name of the organization. The responsibility for the rest of the name can be given to the
organization itself. The organization can add suffixes (or prefixes) to the name to define its host
or resources. The management of the organization need not worry that the prefix chosen for a
host is taken by another organization because, even if part of an address is the same, the whole
address is different.
Each node in the tree has a label, which is a string with a maximum of 63 characters. The
root label is a null string (empty string). DNS requires that children of a node (nodes that branch
from the same node) have different labels, which guarantees the uniqueness of the domain
names.
Domain Name:
Each node in the tree has a domain name. A full domain name is a sequence of labels separated
by dots (.). The domain names are always read from the node up to the root.
The last label is the label of the root (null). This means that a full domain name always ends in a
null label, which means the last character is a dot because the null string is nothing. Figure 5.7
shows some domain names.
Domain:
A domain is a subtree of the domain name space. The name of the domain is the name of the
node at the top of the subtree. Figure 5.8 shows some domains. Note that a domain may itself be
divided into domains.
SNMP:
Several network management standards have been devised during the last few decades. The most
important one is Simple Network Management Protocol (SNMP), used by the Internet. SNMP
is a framework for managing devices in an internet using the TCP/IP protocol suite. It provides a
set of fundamental operations for monitoring and maintaining an internet. SNMP uses the
concept of manager and agent. That is, a manager, usually a host, controls and monitors a set of
agents, usually routers or servers (see Figure 5.9).
Managers and Agents: A management station, called a manager, is a host that runs the SNMP
client program. A managed station, called an agent, is a router (or a host) that runs the SNMP
server program. Management is achieved through simple interaction between a manager and an
agent. The agent keeps performance information in a database. The manager has access to the
values in the database.
For example, a router can store in appropriate variables the number of packets received
and forwarded. The manager can fetch and compare the values of these two variables to see if the
router is congested or not.
1. A manager checks an agent by requesting information that reflects the behavior of the
agent.
2. A manager forces an agent to perform a task by resetting values in the agent database.
Role of SNMP: SNMP has some very specific roles in network management. It defines the
format of the packet to be sent from a manager to an agent and vice versa. It also interprets the
result and creates statistics (often with the help of other management software).
Role of SMI: To use SNMP, we need rules for naming objects. This is particularly important
because the objects in SNMP form a hierarchical structure. Part of a name can be inherited from
the parent. We also need rules to define the types of objects.
Role of MIB: MIB creates a set of objects defined for each entit y in a manner similar to that of a
database (mostly metadata in a database, names & types without values).