JNTUA Computer Networks Notes - R20
JNTUA Computer Networks Notes - R20
me/jntua
LECTURE NOTES ON
COMPUTER NETWORKS
Computer Networks
UNIT-I
Physical Structures:
Type of Connection
A network is two or more devices connected through links. A link is a communications pathway that
transfers data from one device to another. There are two possible types of connections: point-to-point and
multipoint.
Point-to-Point:
A point-to-point connection provides a dedicated link between two devices. The entire capacity of the link
is reserved for transmission between those two devices.
Multipoint:
A multipoint (also called multidrop) connection is one in which more than two specific devices share a
single link.
Computer Networks
In a multipoint environment, the capacity of the channel is shared, either spatially or temporally. If several
devices can use the link simultaneously, it is a spatially shared connection. If users must take turns, it is a
timeshared connection.
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.
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
Computer Networks
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.
Computer Networks
Advantages:
A ring is relatively easy to install and reconfigure.
To add or delete a device requires changing only two connections.
Fault isolation is simplified.
Disadvantages:
Unidirectional traffic can be a disadvantage.
A break in the ring (such as a disabled station) can disable the entire network.
Network Types:
One network can be distinguished from another network based on few criteria such as size, Geographical
area, and ownership. There are 2 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 by 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)].
III. Topology: Various topologies are possible for broadcast LANs. Ex: Bus and Ring.
Computer Networks
It contains a collection of machines intended for running user (i.e., application) programs.
A WAN interconnects connecting devices such as switches, routers, or modems.
A WAN is normally created and run by communication companies and leased by an organization that
uses it.
Ex: point-to-point WANs and switched WANs.
The collections of machines called as hosts. The hosts are connected by a communication subnet, or just
subnet for short.
The job of the subnet is to carry messages from host to host.
In most wide area networks, the subnet consists of two distinct components: transmission lines and
switching elements.
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 transmission media
(cable or air).
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.
Computer Networks
An internet is a switched network in which a switch connects at least two links together. The two most
common types of switched networks are circuit-switched and packet-switched networks.
i. Circuit-Switched Network
In a circuit-switched network, a dedicated connection, called a circuit, is always available between the two
end systems; the switch can only make it active or inactive.
In Figure, the four telephones at each side are connected to a switch. The switch connects a telephone set at
one side to a telephone set at the other side. The thick line connecting two switches is a high-capacity
communication line that can handle four voice communications at the same time; the capacity can be shared
between all pairs of telephone sets.
The Internet
Internet is composed of thousands of interconnected networks. The figure shows the Internet as several
backbones, provider networks, and customer networks.
Computer Networks
o The backbones are large networks are connected through some complex switching systems, called
peering points.
o Provider networks are smaller networks that use the services of the backbones for a fee.
o 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.
Accessing the Internet
Using Telephone Networks:
One option for residences and small businesses to connect to the Internet is to change the voice line between
the residence or business and the telephone center to a point-to-point WAN. This can be done in two ways.
Dial-up service: The first solution is to add to the telephone line a modem that converts data to
voice.
DSL Service: The DSL service also allows the line to be used simultaneously for voice and data
communication.
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
The theory of packet switching for bursty traffic was first presented by Leonard Kleinrock in 1961 at MIT.
Computer Networks
ARPANET
In 1967, at an Association for Computing Machinery (ACM) meeting, ARPA presented its ideas for the
Advanced Research Projects Agency Network (ARPANET), a small network of connected computers.
The idea was that
Each host computer would be attached to a specialized computer, called an interface message
processor (IMP).
The IMPs, in turn, would be connected to each other.
Each IMP had to be able to communicate with other IMPs as well as with its own attached host.
By 1969, ARPANET was a reality.
Network Control Protocol (NCP) provided communication between the hosts.
Birth of the Internet
To link dissimilar networks, there were many problems to overcome: diverse packet sizes, diverse interfaces,
and diverse transmission rates, as well as differing reliability requirements. Cerf and Kahn devised the idea
of a device called a gateway to serve as the intermediary hardware to transfer data from one network to
another.
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 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.
Computer Networks
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.
Internet Standard: A draft standard reaches Internet standard status after demonstrations of successful
implementation.
Historic: The historic RFCs are significant from a historical perspective. They either have been
superseded by later specifications or have never passed the necessary maturity levels to become an
Internet standard.
Experimental: An RFC classified as experimental describes work related to an experimental situation
that does not affect the operation of the Internet. Such an RFC should not be implemented in any
functional Internet service.
Informational: An RFC classified as informational contains general, historical, or tutorial information
related to the Internet. It is usually written by someone in a non-Internet organization, such as a vendor.
Requirement Levels
Computer Networks
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 required 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 intended as Internet standards.
IRTF
The Internet Research Task Force (IRTF) is a forum of working groups managed by the Internet Research
Steering Group (IRSG). IRTF focuses on long-term research topics related to Internet protocols,
applications, architecture, and technology.
PROTOCOL LAYERING
Protocol defines the rules that both the sender and receiver and all intermediate devices need to follow to be
able to communicate effectively. When communication is simple, we may need only one simple protocol;
when the communication is complex, we may need to divide the task between different layers, in which case
we need a protocol at each layer, or protocol layering.
Scenarios
First Scenario
In the first scenario, communication is so simple that it can occur in only one layer. Assume Maria and Ann
is neighbors with a lot of common ideas. Communication between Maria and Ann takes place in one layer,
face to face, in the same language.
Computer Networks
Second Scenario
In this scenario communication between Sender and Receiver takes place in three layers, as shown in Figure.
We assume that Ann and Maria each have three machines that can perform the task at each layer.
Let us assume that Maria sends the first letter to Ann. Maria talks to the machine at the third layer as though
the machine is Ann and is listening to her. The third layer machine listens to what Maria says and creates the
plaintext (a letter in English), which is passed to the second layer machine. The second layer machine takes
the plaintext, encrypts it, and creates the ciphertext, which is passed to the first layer machine. The first layer
machine, presumably a robot, takes the ciphertext, puts it in an envelope, adds the sender and receiver
addresses, and mails it.
Protocol layering enables us to divide a complex task into several smaller and simpler tasks.
Advantages of protocol layering:
It allows us to separate the services from the implementation.
which cannot be seen in our simple examples but reveals itself when we discuss protocol layering in
the Internet, is that communication does not always use only two end systems; there are intermediate
systems that need only some layers, but not all layers.
Principles of Protocol Layering
There are two principles of protocol layering.
First Principle
If we want bidirectional communication, we need to make each layer so that it is able to perform two
opposite tasks, one in each direction.
For example, the third layer task is to listen (in one direction) and talk (in the other direction). The second
layer needs to be able to encrypt and decrypt. The first layer needs to send and receive mail.
Second Principle
The two objects under each layer at both sites should be identical.
For example, the object under layer 3 at both sites should be a plaintext letter. The object under layer 2 at
both sites should be a ciphertext letter. The object under layer 1 at both sites should be a piece of mail.
Logical Connections
Computer Networks
Logical connection means that we have layer-to-layer communication. The concept of logical connection
will help us better understand the task of layering.
Computer Networks
Computer Networks
One widely-used application protocol is HTTP (HyperText Transfer Protocol), which is the basis for
the World Wide Web.
Other application protocols are used for file transfer, electronic mail, and network news.
OSI vs TCP/IP:
Session and Presentation layers were not added to the TCP/IP protocol suite after the publication of the OSI
model. The application layer in the suite is usually considered to be the combination of three layers in the
OSI model.
Computer Networks
As the figure shows, the duty of the application, transport, and network layers is end-to-end. However, the
duty of the data-link and physical layers is hop-to-hop, in which a hop is a host. In other words, the domain
of duty of the top three layers is the internet, and the domain of duty of the two lower layers is the link.
Figure shows the second principle discussed previously for protocol layering. We show the identical objects
below each layer related to each device.
Physical Layer
Physical layer is responsible for carrying individual bits in a frame across the link. Although the physical
layer is the lowest level in the TCP/IP protocol suite, the communication between two devices at the physical
layer is still a logical communication because there is another, hidden layer, the transmission media, under
the physical layer. Two devices are connected by a transmission medium (cable or air).
Data-link Layer
The data-link layer is responsible for taking the datagram and moving it across the link. The link can be a
wired LAN with a link-layer switch, a wireless LAN, a wired WAN, or a wireless WAN. The data-link layer
takes a datagram and encapsulates it in a packet called a frame. Each link-layer protocol may provide a
different service. Some link-layer protocols provide complete error detection and correction, some provide
only error correction.
Network Layer
The network layer is responsible for creating a connection between the source computer and the destination
computer. The communication at the network layer is host-to-host. However, since there can be several
routers from the source to the destination, the routers in the path are responsible for choosing the best route
for each packet. Network layer is responsible for host-to-host communication and routing the packet through
possible routes.
The network layer in the Internet includes the main protocol, Internet Protocol (IP), that defines the format of
the packet, called a datagram at the network layer. IP also defines the format and the structure of addresses
used in this layer. IP is also responsible for routing a packet from its source to its destination, which is
achieved by each router forwarding the datagram to the next router in its path.
Transport Layer
The logical connection at the transport layer is also end-to-end. The transport layer at the source host gets the
message from the application layer, encapsulates it in a transport layer packet (called a segment or a user
datagram in different protocols) and sends it, through the logical (imaginary) connection, to the transport
layer at the destination host. In other words, the transport layer is responsible for giving services to the
application layer: to get a message from an application program running on the source host and deliver it to
the corresponding application program on the destination host.
Transmission Control Protocol (TCP), is a connection-oriented protocol that first establishes a logical
connection between transport layers at two hosts before transferring data. It creates a logical pipe between
two TCPs for transferring a stream of bytes. TCP provides flow control (matching the sending data rate of
the source host with the receiving data rate of the destination host to prevent overwhelming the destination),
error control (to guarantee that the segments arrive at the destination without error and resending the
corrupted ones), and congestion control to reduce the loss of segments due to congestion in the network.
The other common protocol, User Datagram Protocol (UDP), is a connectionless protocol that transmits user
datagrams without first creating a logical connection. In UDP, each user datagram is an independent entity
without being related to the previous or the next one (the meaning of the term connectionless). UDP is a
simple protocol that does not provide flow, error, or congestion control. Its simplicity, which means small
overhead, is attractive to an application program that needs to send short messages and cannot afford the
retransmission of the packets involved in TCP, when a packet is corrupted or lost. A new protocol, Stream
Control Transmission Protocol (SCTP) is designed to respond to new applications that are emerging in the
multimedia.
Application Layer
As Figure shows, the logical connection between the two application layers is end to end. The two
application layers exchange messages between each other as though there were a bridge between the two
layers. Communication at the application layer is between two processes (two programs running at this
Computer Networks
layer). To communicate, a process sends a request to the other process and receives a response. Process-to-
process communication is the duty of the application layer. The application layer in the Internet includes
many predefined protocols, but a user can also create a pair of processes to be run at the two hosts.
The Hypertext Transfer Protocol (HTTP) is a vehicle for accessing the World Wide Web (WWW). The
Simple Mail Transfer Protocol (SMTP) is the main protocol used in electronic mail (e-mail) service.
Encapsulation and Decapsulation
2. The transport layer takes the message as the payload, the load that the transport layer should take care of.
It adds the transport layer header to the payload, which contains the identifiers of the source and
destination application programs that want to communicate plus some more information that is needed for
the end-toend delivery of the message, such as information needed for flow, error control, or congestion
control. The result is the transport-layer packet, which is called the segment (in TCP) and the user
datagram (in UDP). The transport layer then passes the packet to the network layer.
3. The network layer takes the transport-layer packet as data or payload and adds its own header to the
payload. The header contains the addresses of the source and destination hosts and some more
information used for error checking of the header, fragmentation information, and so on. The result is the
network-layer packet, called a datagram. The network layer then passes the packet to the data-link layer.
4. The data-link layer takes the network-layer packet as data or payload and adds its own header, which
contains the link-layer addresses of the host or the next hop (the router). The result is the link-layer
packet, which is called a frame. The frame is passed to the physical layer for transmission.
Decapsulation and Encapsulation at the Router
At the router, we have both decapsulation and encapsulation because the router is connected to two or more
links.
1. After the set of bits are delivered to the data-link layer, this layer decapsulates the datagram from the
frame and passes it to the network layer.
2. The network layer only inspects the source and destination addresses in the datagram header and consults
its forwarding table to find the next hop to which the datagram is to be delivered. The contents of the
datagram should not be changed by the network layer in the router unless there is a need to fragment the
datagram if it is too big to be passed through the next link. The datagram is then passed to the data-link
layer of the next link.
Computer Networks
3. The data-link layer of the next link encapsulates the datagram in a frame and passes it to the physical layer
for transmission.
Decapsulation at the Destination Host
At the destination host, each layer only decapsulates the packet received, removes the payload, and delivers
the payload to the next-higher layer protocol until the message reaches the application layer. It is necessary
to say that decapsulation in the host involves error checking.
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 physical layer is a bit, which definitely cannot have
an address. Figure shows the addressing at each layer. As the figure shows, there is a relationship between
the layer, the address used in that layer, and the packet name at that layer. At the application layer, we
normally use names to define the site that provides services, such as someorg.com, or the e-mail
address, such as [email protected]. At the transport layer, addresses are called port numbers, and
these define the application-layer programs at the source and destination. Port numbers are local addresses
that distinguish between several programs running at the same time. At the network-layer, the addresses are
global, with the whole Internet as the scope. A network-layer address uniquely defines the connection of a
device to the Internet. The link-layer addresses, sometimes called MAC addresses, are locally defined
addresses, each of which defines a specific host or router in a network (LAN or WAN). We will come back
to these addresses in future chapters.
Multiplexing and Demultiplexing
Since the TCP/IP protocol suite uses several protocols at some layers, we can say that we have multiplexing
at the source and demultiplexing at the destination. Multiplexing in this case means that a protocol at a layer
can encapsulate a packet from several next-higher layer protocols (one at a time); demultiplexing means that
a protocol can decapsulate and deliver a packet to several next-higher layer protocols (one at a time). Figure
shows the concept of multiplexing and demultiplexing at the three upper layers.
Computer Networks
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.
INTRODUCTION TO PHYSICAL LAYER
Figure 1.28 shows a scenario in which a scientist working in a research company, Sky Research, needs to
order a book related to her research from an online bookseller, Scientific Books.
We can think of five different levels of communication between Alice, the computer on which our scientist is
working, and Bob, the computer that provides online service. Communication at application, transport,
network, or data-link is logical; communication at the physical layer is physical.
For simplicity, we have shown only host-to-router, router-to-router, and router-to-host, but the switches are
also involved in the physical communication.
Although Alice and Bob need to exchange data, communication at the physical layer means exchanging
signals. Data need to be transmitted and received, but the media have to change data to signals. Both data
and the signals that represent them can be either analog or digital in form.
Data can be analog or digital. The term analog data refers to information that is continuous; digital data
refers to information that has discrete states.
For example, an analog clock that has hour, minute, and second hands gives information in a continuous
form; the movements of the hands are continuous. On the other hand, a digital clock that reports the hours
and the minutes will change suddenly from 8:05 to 8:06.
Analog data, such as the sounds made by a human voice, take on continuous values. When someone speaks,
an analog wave is created in the air. This can be captured by a microphone and converted to an analog signal
or sampled and converted to a digital signal.
Digital data take on discrete values. For example, data are stored in computer memory in the form of 0s and
1s. They can be converted to a digital signal or modulated into an analog signal for transmission across a
medium.
Computer Networks
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 value.
Computer Networks
Periodic and Nonperiodic: Both analog and digital signals can take one of two forms: periodic or
nonperiodic (Sometimes referred to as aperiodic; the prefix a in Greek means “non”).
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
nonperiodic signal changes without exhibiting a pattern or cycle that repeats over time. Both analog and
digital signals can be periodic or nonperiodic.
In data communications, we commonly use periodic analog signals and nonperiodic digital signals.
TRANSMISSION IMPAIRMENT:
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 (see Figure 1.32).
Attenuation:
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:
Computer Networks
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:
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 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 log2 (1 + SNR)
Computer Networks
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:
One characteristic that measures network performance is bandwidth. However, the term can be used in two
different contexts with two different measuring values: bandwidth in hertz and bandwidth in bits per second.
Bandwidth in Hertz: Bandwidth in hertz is the range of frequencies contained in a composite signal or the
range of frequencies a channel can pass. For example, we can say the bandwidth of a subscriber telephone
line is 4 kHz.
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.
Propagation Time: Propagation time measures the time required for a bit to travel from the source to the
destination. The propagation time is calculated by dividing the distance by the propagation speed.
Computer Networks
Transmission Time: In data communications we don’t send just 1 bit, we send a message. The first bit may
take a time equal to the propagation time to reach its destination; the last bit also may take the same amount
of time. However, there is a time between the first bit leaving the sender and the last bit arriving at the
receiver.
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
INTRODUCTION:
Transmission media are actually located below the physical layer and are directly controlled by the physical
layer. We could say that transmission media belong to layer zero. Figure 1.33 shows the position of
transmission media in relation to the physical layer.
A transmission medium can be broadly defined as anything that can carry information from a
source to a destination. For example, the transmission medium for two people having a dinner
conversation is the air.
The air can also be used to convey the message in a smoke signal or semaphore.
For a written message, the transmission medium might be a mail carrier, a truck, or an airplane.
Computer Networks
In data communications the definition of the information and the transmission medium is more
specific. The transmission medium is usually free space, metallic cable, or fiber-optic cable.
The information is usually a signal that is the result of a conversion of data from another form.
The use of long-distance communication using electric signals started with the invention of the
telegraph by Morse in the 19th century.
Communication by telegraph was slow and dependent on a metallic medium. Extending the
range of the human voice became possible when the telephone was invented in 1869.
Telephone communication at that time also needed a metallic medium to carry the electric
signals that were the result of a conversion from the human voice.
The communication was, however, unreliable due to the poor quality of the wires. The lines
were often noisy and the technology was unsophisticated.
Wireless communication started in 1895 when Hertz was able to send high frequency signals.
Later, Marconi devised a method to send telegraph-type messages over the Atlantic Ocean.
We have come a long way. Better metallic media have been invented (twisted-pair and coaxial
cables, for example).
The use of optical fibers has increased the data rate incredibly. Free space (air, vacuum, and water) is used
more efficiently, in part due to the technologies (such as modulation and multiplexing).
Electromagnetic energy, a combination of electric and magnetic fields vibrating in relation to each other,
includes power, radio waves, infrared light, visible light, and ultraviolet light, and X, gamma, and cosmic
rays. Each of these constitutes a portion of the electromagnetic spectrum.
In telecommunications, transmission media can be divided into two broad categories: guided and unguided.
Guided media include twisted-pair cable, coaxial cable, and fiber-optic cable.
GUIDED MEDIA:
Computer Networks
Guided media, which are those that provide a conduit (meaning medium) from one device to another,
include twisted-pair cable, coaxial cable, and fiber-optic cable.
A signal traveling along any of these media is directed and contained by the physical limits of the medium.
Twisted-pair and coaxial cable use metallic (copper) conductors that accept and transport signals in the form
of electric current. Optical fiber is a cable that accepts and transports signals in the form of light.
TWISTED-PAIR CABLE:
A twisted pair consists of two conductors (normally copper), each with its own plastic insulation, twisted
together, as shown in Figure 1.35.
One of the wires is used to carry signals to the receiver, and the other is used only as a ground reference. The
receiver uses the difference between the two.
In addition to the signal sent by the sender on one of the wires, interference (noise) and crosstalk may affect
both wires and create unwanted signals.
If the two wires are parallel, the effect of these unwanted signals is not the same in both wires because they
are at different locations relative to the noise or crosstalk sources (e.g., one is closer and the other is farther).
This results in a difference at the receiver.
By twisting the pairs, a balance is maintained. For example, suppose in one twist, one wire is closer to the
noise source and the other is farther; in the next twist, the reverse is true. Twisting makes it probable that
both wires are equally affected by external influences (noise or crosstalk). This means that the receiver,
which calculates the difference between the two, receives no unwanted signals.
Unshielded Versus Shielded Twisted-Pair Cable The most common twisted-pair cable used in
communications is referred to as unshielded twisted-pair (UTP). IBM has also produced a version of
twisted-pair cable for its use, called shielded twisted-pair (STP); STP cable has a metal foil or braided mesh
covering that encases each pair of insulated conductors.
Although metal casing improves the quality of cable by preventing the penetration of noise or crosstalk, it is
bulkier and more expensive. Figure 1.36 shows the difference between UTP and STP.
Computer Networks
Categories: The Electronic Industries Association (EIA) has developed standards to classify unshielded
twisted-pair cable into seven categories. Categories are determined by cable quality, with 1 as the lowest and
7 as the highest. Each EIA category is suitable for specific uses. Table 1.1 shows these categories.
DATA
CATEGORY SPECIFICATION RATE USE
(Mbps)
Connectors: The most common UTP connector is RJ45 (RJ stands for registered jack), as shown in Figure
1.37. The RJ45 is a keyed connector, meaning the connector can be inserted in only one way.
Performance: One way to measure the performance of twisted-pair cable is to compare attenuation versus
frequency and distance. A twisted-pair cable can pass a wide range of frequencies.
Applications: Twisted-pair cables are used in telephone lines to provide voice and data channels. The local
loop—the line that connects subscribers to the central telephone office— commonly consists of unshielded
twisted-pair cables.
Computer Networks
The DSL lines that are used by the telephone companies to provide high-data-rate connections also use the
high-bandwidth capability of unshielded twisted-pair cables.
COAXIAL CABLE:
Coaxial cable (or coax) carries signals of higher frequency ranges than those in twisted pair cable, in part
because the two media are constructed quite differently. Instead of having two wires, coax has a central core
conductor of solid or stranded wire (usually copper) enclosed in an insulating sheath, which is, in turn,
encased in an outer conductor of metal foil, braid, or a combination of the two. The outer metallic wrapping
serves both as a shield against noise and as the second conductor, which completes the circuit; this outer
conductor is also enclosed in an insulating sheath, and the whole cable is protected by a plastic cover (see
Figure 1.38).
Coaxial Cable Standards: Coaxial cables are categorized by their Radio Government (RG) ratings. Each
RG number denotes a unique set of physical specifications, including the wire gauge of the inner conductor,
the thickness and type of the inner insulator, the construction of the shield, and the size and type of the outer
casing. Each cable defined by an RG rating is adapted for a specialized function, as shown in Table 1.2.
RG-59 75 Ω Cable TV
To connect coaxial cable to devices, we need coaxial connectors. The most common type of connector used
today is the Bayonet Neill-Concelman (BNC) connector. Figure 1.39 shows three popular types of these
connectors: the BNC connector, the BNC T connector, and the BNC terminator.
Computer Networks
The BNC connector is used to connect the end of the cable to a device, such as a TV set. The BNC T
connector is used in Ethernet networks to branch out to a connection to a computer or other device. The BNC
terminator is used at the end of the cable to prevent the reflection of the signal.
FIBER-OPTIC CABLE:
A fiber-optic cable is made of glass or plastic and transmits signals in the form of light. To understand
optical fiber, we first need to explore several aspects of the nature of light. Light travels in a straight line as
long as it is moving through a single uniform substance. If a ray of light is traveling through one substance
suddenly enters another substance (of a different density), the ray changes direction.
Figure 1.40 shows how a ray of light changes direction when going from a more dense to a less dense
substance.
As the figure shows, if the angle of incidence I (the angle the ray makes with the line perpendicular to the
interface between the two substances) is less than the critical angle, the ray refracts and moves closer to the
surface. If the angle of incidence is equal to the critical angle, the light bends along the interface. If the angle
is greater than the critical angle, the ray reflects (makes a turn) and travels again in the denser substance.
Optical fibers use reflection to guide light through a channel. A glass or plastic core is surrounded by a
cladding of less dense glass or plastic. The difference in density of the two materials must be such that a
beam of light moving through the core is reflected off the cladding instead of being refracted into it. See
Figure 1.41.
Propagation Modes: Current technology supports two modes (multimode and single mode) for propagating
light along optical channels, each requiring fiber with different physical characteristics. Multimode can be
implemented in two forms: step-index or graded-index (see Figure 1.42).
Computer Networks
FIGURE 1.42: PROPAGATION MODES
Multimode: Multimode is so named because multiple beams from a light source move through the core in
different paths. How these beams move within the cable depends on the structure of the core, as shown in
Figure 1.43.
In multimode step-index fiber, the density of the core remains constant from the center to the edges. A
beam of light moves through this constant density in a straight line until it reaches the interface of the core
and the cladding. At the interface, there is an abrupt change due to a lower density; this alters the angle of the
beam’s motion. The term step-index refers to the suddenness of this change, which contributes to the
distortion of the signal as it passes through the fiber.
A second type of fiber, called multimode graded-index fiber, decreases this distortion of the signal through
the cable. The word index here refers to the index of refraction. As we saw above, the index of refraction is
related to density. A graded-index fiber, therefore, is one with varying densities. Density is highest at the
center of the core and decreases gradually to its lowest at the edge. Figure 1.43 shows the impact of this
variable density on the propagation of light beams.
Single-Mode: Single-mode uses step-index fiber and a highly focused source of light that limits beams to a
small range of angles, all close to the horizontal.
The single-mode fibers itself is manufactured with a much smaller diameter than that of multimode fiber
and with substantially lower density (index of refraction). The decrease in density results in a critical angle
that is close enough to 90° to make the propagation of beams almost horizontal. In this case, propagation of
different beams is almost identical, and delays are negligible. All the beams arrive at the destination
“together” and can be recombined with little distortion to the signal (see Figure 1.43).
Fiber Sizes:
Computer Networks
Optical fibers are defined by the ratio of the diameter of their core to the diameter of their cladding, both
expressed in micrometers. The common sizes are shown in Table 1.3. Note that the last size listed is for
single-mode only.
Cable Composition
Figure 1.44 shows the composition of a typical fiber-optic cable. The outer jacket is made of either PVC or
Teflon. Inside the jacket are Kevlar strands to strengthen the cable.
Kevlar is a strong material used in the fabrication of bulletproof vests. Below the Kevlar is another plastic
coating to cushion the fiber. The fiber is at the center of the cable, and it consists of cladding and core.
There are three types of connectors for fiber-optic cables, as shown in Figure 1.45. The subscriber channel
(SC) connector is used for cable TV. It uses a push/pull locking system. The straight-tip (ST) connector is
used for connecting cable to networking devices. It uses a bayonet locking system and is more reliable than
SC. MT-RJ is a connector that is the same size as RJ45.
Computer Networks
Performance
The plot of attenuation versus wavelength in Figure 1.46 shows a very interesting phenomenon in fiber-optic
cable. Attenuation is flatter than in the case of twisted-pair cable and coaxial cable. The performance is such
that we need fewer (actually one tenth as many) repeaters when we use fiber-optic cable.
Applications:
Fiber-optic cable is often found in backbone networks because its wide bandwidth is cost-effective. Today,
with wavelength-division multiplexing (WDM), we can transfer data at a rate of 1600 Gbps.
Some cable TV companies use a combination of optical fiber and coaxial cable, thus creating a hybrid
network. Optical fiber provides the backbone structure while coaxial cable provides the connection to the
user premises. This is a cost-effective configuration since the narrow bandwidth requirement at the user end
does not justify the use of optical fiber.
Local-area networks such as 100Base-FX network (Fast Ethernet) and 1000Base-X also use fiber-optic
cable.
Computer Networks
ADVANTAGES: Fiber-optic cable has several advantages over metallic cable (twisted-pair or coaxial).
Higher bandwidth. Fiber-optic cable can support dramatically higher bandwidths (and hence
data rates) than either twisted-pair or coaxial cable. Currently, data rates and bandwidth
utilization over fiber-optic cable are limited not by the medium but by the signal generation and
reception technology available.
Less signal attenuation. Fiber-optic transmission distance is significantly greater than that of
other guided media. A signal can run for 50 km without requiring regeneration. We need
repeaters every 5 km for coaxial or twisted-pair cable.
Resistance to corrosive materials. Glass is more resistant to corrosive materials than copper.
Light weight. Fiber-optic cables are much lighter than copper cables.
Greater immunity to tapping. Fiber-optic cables are more immune to tapping than copper
cables. Copper cables create antenna effects that can easily be tapped.
Disadvantages: There are some disadvantages in the use of optical fiber.Installation and maintenance.
Fiber-optic cable is a relatively new technology. Its installation and maintenance require expertise that is not
yet available everywhere.
Cost. The cable and the interfaces are relatively more expensive than those of other guided
media. If the demand for bandwidth is not high, often the use of optical fiber cannot be justified.
Unguided medium transport electromagnetic waves without using a physical conductor. This type of
communication is often referred to as wireless communication. Signals are normally broadcast through free
space and thus are available to anyone who has a device capable of receiving them.
Unguided signals can travel from the source to the destination in several ways: ground propagation, sky
propagation, and line-of-sight propagation, as shown in Figure 1.47.
Computer Networks
In ground propagation, radio waves travel through the lowest portion of the atmosphere, hugging the earth.
These low-frequency signals emanate in all directions from the transmitting antenna and follow the curvature
of the planet. Distance depends on the amount of power in the signal: The greater the power, the greater the
distance.
In sky propagation, higher-frequency radio waves radiate upward into the ionosphere (the layer of
atmosphere where particles exist as ions) where they are reflected back to earth. This type of transmission
allows for greater distances with lower output power.
In line-of-sight propagation, very high-frequency signals are transmitted in straight lines directly from
antenna to antenna. Antennas must be directional, facing each other and either tall enough or close enough
together not to be affected by the curvature of the earth. Line-of-sight propagation is tricky because radio
transmissions cannot be completely focused.
The section of the electromagnetic spectrum defined as radio waves and microwaves is divided into eight
ranges, called bands, each regulated by government authorities. These bands are rated from very low
frequency (VLF) to extremely high frequency (EHF). Table 1.4 lists these bands, their ranges, propagation
methods, and some applications.
navigation
navigational locators
ship/aircraft
Very high frequency (VHF) 30–300 MHz Sky and line-of- VHF TV, FM radio
sight
Ultrahigh frequency (UHF) 300 MHz–3 Line-of-sight UHF TV, cellular phones, paging,
GHz satellite
We can divide wireless transmission into three broad groups: radio waves, microwaves, and infrared waves.
RADIO WAVES:
Computer Networks
Although there is no clear-cut demarcation between radio waves and microwaves, electromagnetic waves
ranging in frequencies between 3 kHz and 1 GHz are normally called radio waves; waves ranging in
frequencies between 1 and 300 GHz are called microwaves.
However, the behavior of the waves, rather than the frequencies, is a better criterion for classification. Radio
waves, for the most part, are omnidirectional. When an antenna transmits radio waves, they are propagated in
all directions.
This means that the sending and receiving antennas do not have to be aligned. A sending antenna sends
waves that can be received by any receiving antenna. The omnidirectional property has a disadvantage, too.
The radio waves transmitted by one antenna are susceptible to interference by another antenna that may send
signals using the same frequency or band.
Radio waves, particularly those waves that propagate in the sky mode, can travel long distances. This makes
radio waves a good candidate for long-distance broadcasting such as AM radio.
Radio waves, particularly those of low and medium frequencies, can penetrate walls. This characteristic can
be both an advantage and a disadvantage.
It is an advantage because, for example, an AM radio can receive signals inside a building.
The radio wave band is relatively narrow, just under 1 GHz, compared to the microwave band. When this
band is divided into subbands, the subbands are also narrow, leading to a low data rate for digital
communications.
Omnidirectional Antenna: Radio waves use omnidirectional antennas that send out signals in all
directions. Based on the wavelength, strength, and the purpose of transmission, we can have several types of
antennas. Figure 1.48 shows an omnidirectional antenna.
Applications: The omnidirectional characteristics of radio waves make them useful for multicasting, in
which there is one sender but many receivers. AM and FM radio, television, maritime radio, cordless phones,
and paging are examples of multicasting.
Microwaves: Electromagnetic waves having frequencies between 1 and 300 GHz are called microwaves.
Microwaves are unidirectional. When an antenna transmits microwaves, they can be narrowly focused. This
means that the sending and receiving antennas need to be aligned. The unidirectional property has an obvious
advantage. A pair of antennas can be aligned without interfering with another pair of aligned antennas.
Computer Networks
Unidirectional Antenna: Microwaves need unidirectional antennas that send out signals in one direction.
Two types of antennas are used for microwave communications: the parabolic dish and the horn (see Figure
1.49).
Applications:
Microwaves, due to their unidirectional properties, are very useful when unicast (one-to- one)
communication is needed between the sender and the receiver. They are used in cellular phones, satellite
networks and wireless LANs.
Infrared:
Infrared waves, with frequencies from 300 GHz to 400 THz (wavelengths from 1 mm to 770 nm), can be
used for short-range communication. Infrared waves, having high frequencies, cannot penetrate walls. This
advantageous characteristic prevents interference between one system and another; a short-range
communication system in one room cannot be affected by another system in the next room.
When we use our infrared remote control, we do not interfere with the use of the remote by our neighbors.
However, this same characteristic makes infrared signals useless for long-range communication. In addition,
we cannot use infrared waves outside a building because the sun’s rays contain infrared waves that can
interfere with the communication.
Applications: The infrared band, almost 400 THz, has an excellent potential for data transmission. Such a
wide bandwidth can be used to transmit digital data with a very high data rate.
SWITCHING:
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
Computer Networks
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.
Traditionally, three methods of switching have been discussed: circuit switching, packet switching, and
message switching. The first two are commonly used today. The third has been phased out in general
communications but still has networking applications. Packet switching can further be divided into two
subcategories—virtual circuit approach and datagram approach—as shown in Figure 1.51.
Note: we discuss only circuit switching and packet switching; message switching is more conceptual than
practical.
Computer Networks
Switching at Physical Layer: At the physical layer, we can have only circuit switching. There are no packets
exchanged at the physical layer. The switches at the physical layer allow signals to travel in one path or
another.
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.
Conceptually, we can say that communication using e-mail is a kind of message-switched communication,
but we do not see any network that actually can be called a message-switched network.
CIRCUIT-SWITCHED NETWORKS:
A circuit-switched network consists of a set of switches connected by physical links. A connection between
two stations is a dedicated path made of one or more links. However, each connection uses only one
dedicated channel on each link. Each link is normally divided into n channels by using FDM or TDM.
Figure 1.52 shows a trivial circuit-switched network with four switches and four links. Each link is divided
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.
Computer Networks
Circuit switching takes place at the physical layer.
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 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 1.53 shows the idea of delay in a circuit-switched network when only two
switches are involved.
Computer Networks
As Figure 1.53 shows, there is no waiting time at each switch. The total delay is due to the time needed to
create the connection, transfer data, and disconnect the circuit. The delay caused by the setup is the sum of
four parts: the propagation time of the source computer request (slope of the first gray box), the request
signal transfer time (height of the first gray box), the propagation time of the acknowledgment from the
destination computer (slope of the second gray box), and the signal transfer time of the acknowledgment
(height of the second gray box).
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 network 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.
DATAGRAM 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.
Computer Networks
Figure 1.54 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 1.55 shows the routing table
for a switch.
Computer Networks
A switch in a datagram network uses a routing table that is based on the destination address.
Destination Address: Every packet in a datagram network carries a header that contains, among other
information, the destination address of the packet. When the switch receives the packet, this destination
address is examined; the routing table is consulted to find the corresponding port through which the packet
should be forwarded. This address, unlike the address in a virtual-circuit network, remains the same during
the entire journey of the packet.
The destination address in the header of a packet in a datagram network remains the same during the
entire journey of the packet.
Efficiency:
The efficiency of a datagram network is better than that of a circuit-switched network; resources are
allocated only when there are packets to be transferred. If a source sends a packet and there is a delay of a
few minutes before another packet can be sent, the resources can be reallocated during these minutes for
other packets from other sources.
Delay:
There may be greater delay in a datagram network than in a virtual-circuit network. Although there are no
setup and teardown phases, each packet may experience a wait at a switch before it is forwarded. Figure 1.56
gives an example of delay in a datagram network for one packet.
Computer Networks
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
VIRTUAL-CIRCUIT NETWORKS:
A virtual-circuit network is a cross between a circuit-switched network and a datagram network. It has
some characteristics of both.
As in a circuit-switched network, there are setup and teardown phases in addition to the data transfer phase.
Resources can be allocated during the setup phase, as in a circuit-switched network, or on demand, as in a
datagram network.
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.
Computer Networks
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.
Computer Networks
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.
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:
Computer Networks
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.
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.
In a virtual-circuit network, there is a one-time delay for setup and a one-time delay for teardown. If
resources are allocated during the setup phase, there is no wait time for individual packets. Figure 1.62
shows the delay for a packet traveling through two switches in a virtual-circuit network.
The packet is traveling through two switches (routers). There are three transmission times (3T ), 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
Computer Networks
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.
Q: What is the difference between a hub and a switch? Ans: Hub – Broadcasts data it receives to all devices
connected to its ports. Switch – Establishes a direct connection from the sender to the destination without
passing the data traffic to other networking devices.
Q: Cite the three advantages of a wired network. Ans: 1) Faster network data transfer speeds (within the
LAN), 2) Relatively inexpensive to setup & 3) the network is not susceptible to outside interference.
Q: Cite three advantages of a wireless network. Ans: 1) User mobility 2) Simple installations & 3) No
cables
Q: What does it mean for a wireless networking device to be Wi-Fi compliant? Ans: That the device has
been tested by the Wi-Fi Alliance (Wireless Fidelity) and is certified for compliance with 802.11x wireless
standards.
Q: List five steps that can be used to protect the home network. Ans: 1) Change the default factory
passwords. 2) Change the default SSID. “Service Set Identifier” 3) turn on encryption. 4) Turn off the SSID
broadcast. & 5) Enable MAC address filtering.
Q: What is Stateful Packet Inspection “SPI”? Ans: A type of firewall protection that inspects incoming data
packets to make sure they correspond to an outgoing request.
Computer Networks
Above questions link: http://pcr-tech-sc.2302233.n4.nabble.com/Chapter-1-Introduction-to-Computer-
Networks-Questions-Answers-td3891566.html
UNIT –I
Objective questions
A) Protocol B) Medium
A) Medium B) Protocol
C) Message D) Transmission
3. Frequency of failure and network recovery time after a failure is measures of the of network.
A) Performance B) Reliability
C) Security D) Feasibility
A) Mesh B) Star
C) Bus D) Ring
A) Mesh B) Star
C) Bus D) Ring
A) Simplex B) half-duplex
C) full-duplex D) automatic
A) Simplex B) half-duplex
C) full-duplex D) automatic
Computer Networks
9. A connection provides a dedicated link between two devices.
A) Point-to-point B) multipoint
C) Primary D) secondary
10. In a connection, more than two devices can share a single link.
A) Point-to-point B) multipoint
C) Primary D) secondary
11. In transmission, the channel capacity is shared by both communicating devices at all times.
A) Simplex B) half-duplex
C) full-duplex D) half-simplex
C) Networks D) routers
A) CSNET B) NSFNET
C) ANSNET D) ARPANET
14. Which organization has authority over interstate and international commerce in the
Communications field?
A) ITU-T B) IEEE
C) FCC D) ISOC
15. is special-interest groups that quickly test, evaluate, and standardize new technologies.
16. Which agency developed standards for physical connection interfaces and electronic signalling a
specification?
A) EIA B) ITU-T
C) ANSI D) ISO
A) TCP/IP B) NCP
C) UNIX D) ACM
Computer Networks
18. refers to the structure or format of the data, meaning the order in which they are
Presented.
A) Semantics B) Syntax
19. defines how a particular pattern to be interpreted, and what action is to be taken
A) Semantics B) Syntax
20. refers to two characteristics: when data should be sent and how fast it can be sent.
A) Semantics B) Syntax
A) Radio-specific B) Satellite
C) FDM D) DSS
C) Switching D) ALL
24) In the OSI model, as a data packet moves from the lower to the upper layers, headers are
A) Added B) removed
C) Rearranged D) modified
25. Which transmission media has the highest transmission speed in a network?
A) Coaxial cable B) twisted pair cable
Computer Networks
27. A single channel is shared by multiple signals by
A) analogy modulation B) digital modulation
29. The physical layer translates logical communication requests from the into hardware specific
operations.
A) Data link layer B) network layer
UNIT –I
DESCRIPTIVE QUESTIONS
7. List out the advantages and disadvantages of OSI Reference model compare with TCP/IP model.
8. Difference between the datagram packet switching and virtual circuit switching.
9. Write the advantages of optical fiber over twisted pair and coaxial cable.
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.
The data-link layer at Alice’s computer communicates with the data-link layer at router R2. The data-link
layer at router R2 communicates with the data-link layer at router R4, and so on. Finally, the data-link
layer at router R7 communicates with the data-link layer at Bob’s computer. Only one data-link layer is
involved at the source or the destination, but two data-link layers are involved at each router.
The reason is that Alice’s and Bob’s computers are each connected to a single network, but each router
takes input from one network and sends output to another network. Note that although switches are also
involved in the data-link-layer communication, for simplicity we have not shown them in the figure.
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. Although 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 flow 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 CATEGORIES OF LINKS: Although two nodes are physically connected by a transmission
medium such as cable or air, we need to remember that the data-link layer controls how the medium is
used. We can have a data-link layer that uses the whole capacity of the medium; we can also have a data-
link layer that uses only part of the capacity of the link. In other words, we can have a point-to-point link
or a broadcast link. In a point-to-point link, the link is dedicated to the two devices; in a broadcast link,
the link is shared between several pairs of devices.
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.
Anytime a host or a router needs to find the link-layer address of another host or router in its
network, it sends an ARP request packet. The packet includes the link-layer and IP addresses of the
sender and the IP address of the receiver. Because the sender does not know the link-layer address of the
receiver, the query is broadcast over the link using the link-layer broadcast address.
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
hardware type field defines the type of the link-layer protocol; Ethernet is given the type 1.
The protocol type field defines the network-layer protocol: IPv4 protocol is (0800)16. The source
hardware and source protocol addresses are variable-length fields defining the link-layer and network-
layer addresses of the sender.
The destination hardware address and destination protocol address fields define the receiver link-
layer and network-layer addresses. An ARP packet is encapsulated directly into a data-link frame. The
frame needs to have a field to show that the payload belongs to the ARP and not to the network-layer
datagram.
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.
Redundancy:
The central concept in detecting or correcting errors is redundancy. To be able to detect or
correct errors, we need to send some extra bits with our data. These redundant bits are added by the
sender and removed by the receiver. Their presence allows the receiver to detect or correct corrupted bits.
Detection versus Correction:
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:
Encoder: Let us take a closer look at the encoder. The encoder takes a dataword and augments it with n −
k number of 0s. It then divides the augmented dataword by the divisor, as shown in Figure.
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.
The above Figure shows two cases: The left-hand figure shows the value of the syndrome when no error
has occurred; the syndrome is 000. The right-hand part of the figure shows the case in which there is a
single error. The syndrome is not all 0s (it is 011).
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.
CHUNK INTERLEAVING: Another way to achieve FEC in multimedia is to allow some small chunks
to be missing at the receiver. We cannot afford to let all the chunks belonging to the same packet be
missing; however, we can afford to let one chunk be missing in each packet. Figure shows that we can
divide each packet into 5 chunks (normally the number is much larger).
FIGURE: INTERLEAVING
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.
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.
Byte stuffing (or character stuffing), a special byte is added to the data section of the frame when there is
a character with the same pattern as the flag. The data section is stuffed with an extra byte. This byte is
usually called the escape character (ESC) and has a predefined bit pattern. Whenever the receiver
encounters the ESC character, it removes it from the data section and treats the next character as data, not
as a delimiting flag. Figure shows the situation.
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.
10
Bit-Oriented Framing:
Bit stuffing is the process of adding one extra 0 whenever five consecutive 1s follow a 0 in the data,
so that the receiver does not mistake the pattern 0111110 for a flag.
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.
11
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.
In the first method, if the frame is corrupted, it is silently discarded; if it is not corrupted, the
packet is delivered to the network layer. This method is used mostly in wired LANs such as
Ethernet.
In the second method, if the frame is corrupted, it is silently discarded; if it is not corrupted,
an acknowledgment is sent (for the purpose of both flow and error control) to the sender.
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.
12
Figure shows the outline for the Stop-and-Wait protocol. Note that only one frame and one
acknowledgment can be in the channels at any time.
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 mode (ABM). In
normal response mode (NRM), the station configuration is unbalanced.
13
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
14
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.
15
expires, that the last frame is lost or damaged. The value of N(R) is the negative
acknowledgment number.
Selective reject (SREJ). If the value of the code subfield is 11, it is an SREJ Sframe. This is a
NAK frame used in Selective Repeat ARQ. Note that the HDLC Protocol uses the term selective
reject instead of selective repeat. The value of N(R) is the negative acknowledgment number.
Control Field for U-Frames
Unnumbered frames are used to exchange session management and control information between
connected devices. Unlike S-frames, U-frames contain an information field, but one used for system
management information, not user data. As with S-frames, however, much of the information carried by
U-frames is contained in codes included in the control field. U-frame codes are divided into two sections:
a 2-bit prefix before the P/F bit and a 3-bit suffix after the P/F bit. Together, these two segments (5 bits)
can be used to create up to 32 different types of U-frames.
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.
16
Address. The address field in this protocol is a constant value and set to 11111111 (broadcast
address).
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 field, 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.
a. The system sends the user a challenge packet containing a challenge value, usually a few
bytes.
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.
17
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.
18
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.
The pure ALOHA protocol relies on acknowledgments from the receiver. When a station sends a
frame, it expects the receiver to send an acknowledgment. If the acknowledgment does not arrive after a
time-out period, the station assumes that the frame (or the acknowledgment) has been destroyed and
resends the frame.
19
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.
Station B starts to send a frame at time t. Now imagine station A has started to send its frame after t − Tfr.
This leads to a collision between the frames from station B and station A. On the other hand, suppose that
station C starts to send a frame before time t + Tfr. Here, there is also a collision between frames from
station B and station C. Looking at Figure , we see that the vulnerable time during which a collision may
occur in pure ALOHA is 2 times the frame transmission time.
20
Throughput
Let us call G the average number of frames generated by the system during one frame transmission time.
Then it can be proven that the average number of successfully transmitted frames for pure ALOHA is S =
G × e−2G. The maximum throughput Smax is 0.184, for G = 1/2. In other words, if one-half a frame is
generated during one frame transmission time (one frame during two frame transmission times), then 18.4
percent of these frames reach their destination successfully. We expect G = 1/2 to produce the maximum
throughput because the vulnerable time is 2 times the frame transmission time. Therefore, if a station
generates only one frame in this vulnerable time (and no other stations generate a frame during this time),
the frame will reach its destination successfully.
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.
Because a station is allowed to send only at the beginning of the synchronized time slot, if a station
misses this moment, it must wait until the beginning of the next time slot. This means that the station
which started at the beginning of this slot has already finished sending its frame. Of course, there is still
the possibility of collision if two stations try to send at the beginning of the same time slot. However, the
vulnerable time is now reduced to one-half, equal to Tfr. The following Figure shows the situation.
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
21
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
1-Persistent: The 1-persistent method is simple and straightforward. In this method, after the
station finds the line idle, it sends its frame immediately (with probability 1). This method has the highest
chance of collision because two or more stations may find the line idle and send their frames immediately.
We will see later that Ethernet uses this method.
Nonpersistent: In the nonpersistent method, a station that has a frame to send senses the line. If
the line is idle, it sends immediately. If the line is not idle, it waits a random amount of time and then
senses the line again. The nonpersistent approach reduces the chance of collision because it is unlikely
that two or more stations will wait the same amount of time and retry to send simultaneously. However,
this method reduces the efficiency of the network because the medium remains idle when there may be
stations with frames to send.
p-Persistent: The p-persistent method is used if the channel has time slots with a slot duration
equal to or greater than the maximum propagation time. The p-persistent approach combines the
advantages of the other two strategies. It reduces the chance of collision and improves efficiency. In this
method, after the station finds the line idle it follows these steps:
1. With probability p, the station sends its frame.
2. With probability q = 1 − p, the station waits for the beginning of the next
time slot and checks the line again.
a. If the line is idle, it goes to step 1.
b. If the line is busy, it acts as though a collision has occurred and uses the
backoff procedure.
CSMA/CD:
The CSMA method does not specify the procedure following a collision. Carrier sense multiple access
with collision detection (CSMA/CD) augments the algorithm to handle the collision.
In this method, a station monitors the medium after it sends a frame to see if the transmission was
successful. If so, the station is finished. If, however, there is a collision, the frame is sent again.
22
To better understand CSMA/CD, let us look at the first bits transmitted by the two stations
involved in the collision. Although each station continues to send bits in the frame until it detects the
collision, we show what happens as the first bits collide. In the Figure , stations A and C are involved in
the collision
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.
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
23
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.
24
CONNECTING DEVICES
connecting devices are used to connect hosts together to make a network or to connect networks together
to make an internet. Connecting devices can operate in different layers of the Internet model. Three kinds
of connecting devices: hubs, link-layer switches, and routers. Hubs today 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.
25
Transparent Switches
A transparent switch is a switch in which the stations are completely unaware of the switch’s existence.
If a switch is added or deleted from the system, reconfiguration of the stations is unnecessary. According
to the IEEE 802.1d specification, a system equipped with transparent switches must meet three criteria:
Frames must be forwarded from one station to another.
The forwarding table is automatically made by learning frame movements in the network.
Loops in the system must be prevented.
Forwarding
A transparent switch must correctly forward the frames, as discussed in the previous section.
Learning
The earliest switches had switching tables that were static. The system administrator would manually
enter each table entry during switch setup. Although the process was simple, it was not practical. If a
station was added or deleted, the table had to be modified manually. The same was true if a station’s
MAC address changed, which is not a rare event. For example, putting in a new network card means a
new MAC address. A better solution to the static table is a dynamic table that maps addresses to ports
(interfaces) automatically. To make a table dynamic, we need a switch that gradually learns from the
frames’ movements. To do this, the switch inspects both the destination and the source addresses in each
frame that passes through the switch. The destination address is used for the forwarding decision (table
lookup); the source address is used for adding entries to the table and for updating purposes. Let us
elaborate on this process using Figure.
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 network. 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 about 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.
26
Loop Problem:
Transparent switches work fine as long as there are no redundant switches in the system. Systems
administrators, however, like to have redundant switches (more than one switch between a pair of LANs)
to make the system more reliable. If a switch fails, another switch takes over until the failed one is
repaired or replaced. Redundancy can create loops in the system, which is very undesirable. Loops can be
created only when two or more broadcasting LANs (those using hubs, for example) are connected by
more than one switch.
Figure shows a very simple example of a loop created in a system with two LANs connected by two
switches.
1. Station A sends a frame to station D. The tables of both switches are empty. Both forward the frame
and update their tables based on the source address A.
2. Now there are two copies of the frame on LAN 2. The copy sent out by the left switch is received by
the right switch, which does not have any information about the destination address D; it forwards the
frame. The copy sent out by the right switch is received by the left switch and is sent out for lack of
information about D.
3. Now there are two copies of the frame on LAN 1. Step 2 is repeated, and both copies are sent to LAN2.
4. The process continues on and on. Note that switches are also repeaters and regenerate frames. So in
each iteration, there are newly generated fresh copies of the frames.
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.
27
Computer Networks
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.
Services Provided to the Transport Layer:
The network layer provides services to the transport layer at the network layer/transport layer interface.
The network layer services have been designed with the following goals in mind.
1. The services should be independent of the router technology.
2. The transport layer should be shielded from the number, type, and topology of the routers present.
3. The network addresses made available to the transport layer should use a uniform numbering plan,
even across LANs and WANs.
Implementation of Connectionless Service:
Figure 5-2. Routing within a datagram subnet.
Computer Networks
In connectionless service, packets are injected into the subnet individually and routed independently of each
other. No advance setup is needed. In this context, the packets are frequently called datagrams and the
subnet is called a datagram subnet.
Every router has an internal table telling it where to send packets for each possible destination. Each table
entry is a pair consisting of a destination and the outgoing line to use for that destination. Only directly-
connected lines can be used.
As they arrived at A, packets 1, 2, and 3 were stored briefly (to verify their checksums). Then each was
forwarded to C according to A's table. Packet 1 was then forwarded to E and then to F. When it got to F, it
was encapsulated in a data link layer frame and sent to H2 over the LAN. Packets 2 and 3 follow the same
route However, something different happened to packet 4. When it got to A it was sent to router B, even
though it is also destined for F. The algorithm that manages the tables and makes the routing decisions is
called the routing algorithm.
Implementation of Connection-Oriented Service:
If connection-oriented service is used, a path from the source router to the destination router must be
established before any data packets can be sent. This connection is called a VC (virtual circuit), in analogy
with the physical circuits set up by the telephone system, and the subnet is called a virtual-circuit subnet.
As an example, consider the situation of Fig. 5-3. Here, host H1 has established connection 1 with host
H2. It is remembered as the first entry in each of the routing tables. The first line of A's table says that if a
packet bearing connection identifier 1 comes in from H1, it is to be sent to router C and given connection
identifier 1. Similarly, the first entry at C routes the packet to E, also with connection identifier 1.
Figure 5-3. Routing within a virtual-circuit subnet.
Computer Networks
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.
Efficiency: The efficiency routing function involves the processing overhead at each node and often a
transmission overhead.
Classification of routing algorithms:
Routing algorithms can be grouped into two major classes:
Nonadaptive algorithms do not base their routing decisions on measurements or estimates of the
current traffic and topology. Instead, the choice of the route to use to get from I to J (for all I and J)
is computed in advance, off-line, and downloaded to the routers when the network is booted. This
procedure is sometimes called “static routing”.
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.
Computer Networks
As the result of optimality principle the set of optimal routes from all sources to a given destination form
a tree rooted at the destination. Such a tree is called a sink tree and is illustrated in Fig. 5-6, where the
distance metric is the number of hops. The goal of all routing algorithms is to discover and use the sink trees
for all routers. Since a sink tree is indeed a tree, it does not contain any loops, so each packet will be
delivered within a finite and bounded number of hops.
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.
Computer Networks
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.
One such measure is to have a hop counter contained in the header of each packet, which is
decremented at each hop, with the packet being discarded when the counter reaches zero.
o Ideally, the hop counter should be initialized to the length of the path from source to
destination. If the sender does not know how long the path is, it can initialize the counter to the
worst case, namely, the full diameter of the subnet.
An alternative technique for damming the flood is to keep track of which packets have been flooded,
to avoid sending them out a second time. Achieve this goal is to have the source router put a sequence
number in each packet it receives from its hosts. Each router then needs a list per source router telling
which sequence numbers originating at that source have already been seen. If an incoming packet is
on the list, it is not flooded.
Applications and Advantages:
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.
Computer Networks
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’.
The Count-to-Infinity Problem:
consider the five-node (linear) subnet of Fig. 5-10, where the delay metric is the number of hops.
Suppose A is down initially and all the other routers know this. In other words, they have all recorded the
delay to A as infinity.
Figure 5-10. The count-to-infinity problem.
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. 5-10(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
alternatively, the line between A and B is cut, which is effectively the same thing from B's point of view.
When A goes down, line between A and B is out.
B does not hear anything from A.
C informs B, I Have Path to A, of length 2.
If metric used is Time Delay, there is no well-defined upper bound. So, high value is needed to prevent
a path with a long delay from being treated as down. This problem is known as count-to-infinity.
Computer Networks
Computer Networks
Figure 5-14. The packet buffer for router B in Fig. 5-13.
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 proportionally.
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 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 5-15. Hierarchical routing.
Computer Networks
Figure 5-15 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. 5-15(b). When routing is done hierarchically, as in
Fig. 5-15(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”.
Multi-destination routing:
A third algorithm is multi-destination routing. If this method is used, each packet contains either a list
of destinations or a bit map indicating the desired destinations. When a packet arrives at a router, the router
checks all the destinations to determine the set of output lines that will be needed. The router generates a new
copy of the packet for each output line to be used and includes in each packet only those destinations that are
to use the line. In effect, the destination set is partitioned among the output lines. After a sufficient number of
hops, each packet will carry only one destination and can be treated as a normal packet.
Use of spanning tree:
A spanning tree is a subset of the subnet that includes all the routers but contains no loops.
Computer Networks
If each router knows which of its lines belong to the spanning tree, it can copy an incoming broadcast
packet onto all the spanning tree lines except the one it arrived on. This method makes excellent use of
bandwidth, generating the absolute minimum number of packets necessary to do the job.
Advantages:
The reverse path forwarding is that it is both reasonably efficient and easy to implement.
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.
If the group is small, it can just send each other member a point-to-point message.
If the group is large, this strategy is expensive.
Thus, we need a way to send messages to well defined groups that are numerically large in size but small
compared to the network as a whole.
Sending a message to such a group is called multicasting, and its routing algorithm is called multicast
routing.
Multicasting requires group management.
To create and destroy groups and
To allow processes to join and leave groups.
The routing algorithm does not know how these tasks are accomplished but when a process joins a group;
it informs its host of this fact. It is important that routers know which of their hosts belong to which groups.
Either host must inform their routers about changes in group membership, or routers must query their hosts
periodically. Either way, routers learn about which of their hosts are in which groups. Routers tell their
neighbors, so the information propagates through the subnet.
To do multicast routing, each router computes a spanning tree covering all other routers. For example, in
Fig. 5-17(a) we have two groups, 1 and 2. Some routers are attached to hosts that belong to one or both of
these groups, as indicated in the figure. A spanning tree for the leftmost router is shown in Fig. 5-17(b).
Computer Networks
Figure 5-17. (a) A network. (b) A spanning tree for the leftmost
router. (c) A multicast tree for group 1. (d) A multicast tree for group 2
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. 5-17(c)
shows the pruned spanning tree for group 1. Similarly, Fig. 5- 17(d) shows the pruned spanning tree for
group 2. Multicast packets are forwarded only along the appropriate spanning 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. 5-18, 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 foreign agents around?
2) The mobile host registers with the foreign agent, giving its home address, current data link layer
address, and some security information.
Computer Networks
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 5-19. 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. 5-19.
The home agent then does two things.
First, it encapsulates the packet in the payload field of an outer packet and sends the latter to the
foreign agent (step 2 in Fig. 5-19). This mechanism is called tunneling;
Second, the home agent tells the sender to henceforth send packets to the mobile host by
encapsulating them in the payload of packets explicitly addressed to the foreign agent instead of just
sending them to the mobile host's home address (step 3). Subsequent packets can now be routed
directly to the host via the foreign agent (step 4), bypassing the home location entirely.
Computer Networks
(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. 5-20(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.
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.
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.
Computer Networks
Approaches to Congestion Control
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 backups (to make the system fault tolerant) or
purchasing bandwidth on the open market. This is called provisioning and happens on a time scale of
months, driven by long-term traffic trends.
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
Computer Networks
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 networks come in all shapes
and sizes. Thus, the circuit must come with some characterization of its traffic if we are to apply admission
control.
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.
Hop-by-Hop Backpressure
Computer Networks
At high speeds or over long distances, many new packets may be transmitted after congestion has been
signalled because of the delay before the signal takes effect. Consider, for example, a host in San Francisco
(router A in Fig.) that is sending traffic to a host in New York (router D in Fig.) at the speed of 155 Mbps. If
the New York host begins to run out of buffers, it will take about 40 msec for a choke packet to get back to
San Francisco to tell it to slow down. An ECN indication will take even longer because it is delivered via the
destination.
Load Shedding
Load shedding is a fancy way of saying that when routers are being inundated by packets that they cannot
handle, they just throw them away. The key question for a router drowning in packets is which packets to
drop. The preferred choice may depend on the type of applications that use the network. For a file transfer,
an old packet is worth more than a new one. This is because dropping packet 6 and keeping packets 7
through 10, for example, will only force the receiver to do more work to buffer data that it cannot yet use. In
Computer Networks
contrast, for real-time media, a new packet is worth more than an old one. This is because packets become
useless if they are delayed and miss the time at which they must be played out to the user.
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 this.
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.
Several common applications and the stringency (meaning toughness/flexibility) of their network
requirements are listed in Fig. 3.11. The applications differ in their bandwidth needs, with email, audio in all
forms, and remote login not needing much, but file sharing and video in all forms needing a great deal.
More interesting are the delay requirements. File transfer applications, including email and video, are not
delay sensitive. If all packets are delayed uniformly by a few seconds, no harm is done.
Interactive applications, such as Web surfing and remote login, are more delay sensitive. Real-time
applications, such as telephony and videoconferencing, have strict delay requirements. If all the words in a
telephone call are each delayed by too long, the users will find the connection unacceptable. On the other
hand, playing audio or video files from a server does not require low delay.
The variation (i.e., standard deviation) in the delay or packet arrival times is called jitter. The first three
applications in Fig. 3.11 are not sensitive to the packets arriving with irregular time intervals between them.
Remote login is somewhat sensitive to that, since updates on the screen will appear in little bursts if the
connection suffers much jitter.
Video and especially audio are extremely sensitive to jitter. If a user is watching a video over the network
and the frames are all delayed by exactly 2.000 seconds, no harm is done. But if the transmission time varies
randomly between 1 and 2 seconds, the result will be terrible unless the application hides the jitter. For
audio, a jitter of even a few milliseconds is clearly audible.
Computer Networks
Computer Networks
A second resource that is often in short supply is buffer space. When a packet arrives, it is buffered inside the
router until it can be transmitted on the chosen outgoing line. The purpose of the buffer is to absorb small
bursts of traffic as the flows contend with each other.
If no buffer is available, the packet has to be discarded since there is no place to put it. For good quality of
service, some buffers might be reserved for a specific flow so that flow does not have to compete for buffers
with other flows. Up to some maximum value, there will always be a buffer available when the flow needs
one.
Finally, CPU cycles may also be a scarce resource. It takes router CPU time to process a packet, so a router
can process only a certain number of packets per second. While modern routers are able to process most
packets quickly, some kinds of packets require greater CPU processing, such as the ICMP packets. Making
sure that the CPU is not overloaded is needed to ensure timely processing of these packets.
Here, we will focus on internetworking in the network layer. To see how that differs from switching
in the data link layer, examine Fig. 5-44. In Fig. 5-44(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:
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 the destination.
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.
1
COMPUTER NETWORKS
There are two basic choices for connecting different networks: we can build
devices that translate or convert packets from each kind of network into packets for
each other network, or, like good computer scientists, we can try to solve the
problem by adding a layer of indirection and building a common layer on top of the
different networks. In either case, the devices are placed at the boundaries
between networks.
TUNNELING:
2
COMPUTER NETWORKS
containing an IPv6 address in London, and sends it to the multiprotocol router that
connects the Paris IPv6 network to the IPv4 Internet.
When this router gets the IPv6 packet, it encapsulates the packet with an
IPv4 header addressed to the IPv4 side of the multiprotocol router that connects to
the London IPv6 network.
That is, the router puts a (IPv6) packet inside a (IPv4) packet. When this
wrapped packet arrives, the London router removes the original IPv6 packet and
sends it onward to the destination host. The path through the IPv4 Internet can be
seen as a big tunnel extending from one multiprotocol router to the other.
The IPv6 packet just travels from one end of the tunnel to the other, snug in
its nice box. It does not have to worry about dealing with IPv4 at all. Neither do the
hosts in Paris or London. Only the multiprotocol routers have to understand both
IPv4 and IPv6 packets.
In effect, the entire trip from one multiprotocol router to the other is like a
hop over a single link. Tunneling is widely used to connect isolated hosts and
networks using other networks.
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 do not, this difference alone
would make it unclear how to find the shortest paths across the internet.
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.
3
COMPUTER NETWORKS
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).
4
COMPUTER NETWORKS
packet. However, as every parent of a small child knows, converting a large object
into small fragments is considerably easier than the reverse process.
An appropriate place to start our study of the network layer in the Internet is
with the format of the IP datagrams themselves. An IPv4 datagram consists of a
header part and a body or payload part. The header has a 20-byte fixed part and a
variable-length optional part. The header format is shown in Fig. 3.14. The bits are
transmitted from left to right and top to bottom, with the high-order bit of the
Version field going first. (This is a ‘‘big-endian’’ network byte order.
The Version field keeps track of which version of the protocol the datagram
belongs to.
Since the header length is not constant, a field in the header, IHL, is
provided to tell how long the header is, in 32-bit words. The minimum value is 5,
which applies when no options are present. The maximum value of this 4-bit field is
15, which limits the header to 60 bytes, and thus the Options field to 40 bytes.
The Differentiated services field is one of the few fields that have changed its
meaning (slightly) over the years. Originally, it was called the Type of service field.
Various combinations of reliability and speed are possible. For digitized voice, fast
delivery beats accurate delivery.
5
COMPUTER NETWORKS
The Total length includes everything in the datagram—both header and data.
The maximum length is 65,535 bytes. At present, this upper limit is tolerable, but
with future networks, larger datagrams may be needed.
MF stands for More Fragments. All fragments except the last one have this
bit set. It is needed to know when all fragments of a datagram have arrived.
The Fragment offset tells where in the current packet this fragment belongs.
All fragments except the last one in a datagram must be a multiple of 8 bytes, the
elementary fragment unit. Since 13 bits are provided, there is a maximum of 8192
fragments per datagram, supporting a maximum packet length up to the limit of
the Total length field. Working together, the Identification, MF, and Fragment offset
fields are used to implement fragmentation.
The TtL (Time to live) field is a counter used to limit packet lifetimes. It was
originally supposed to count time in seconds, allowing a maximum lifetime of 255
sec.
When the network layer has assembled a complete packet, it needs to know
what to do with it. The Protocol field tells it which transport process to give the
packet to. TCP is one possibility, but so are UDP and some others.
Since the header carries vital information such as addresses, it rates its own
checksum for protection, the Header checksum. The algorithm is to add up all the
16-bit halfwords of the header as they arrive, using one’s complement arithmetic,
and then take the one’s complement of the result. For purposes of this algorithm,
the Header checksum is assumed to be zero upon arrival. Such a checksum is
useful for detecting errors while the packet travels through the network.
The Source address and Destination address indicate the IP address of the
source and destination network interfaces.
6
COMPUTER NETWORKS
information that is rarely needed. The options are of variable length. The Options
field is padded out to a multiple of 4 bytes. Originally, the five options listed in Fig.
3.15.
IPV4 ADDRESSES:
The identifier used in the IP layer of the TCP/IP protocol suite to identify the
connection of each device to the Internet is called the Internet address or IP
address. An IPv4 address is a 32-bit address that uniquely and universally defines
the connection of a host or a router to the Internet. The IP address is the address
of the connection, not the host or the router, because if the device is moved to
another network, the IP address may be changed.
IPv4 addresses are unique in the sense that each address defines one, and
only one, connection to the Internet. If a device has two connections to the
Internet, via two networks, it has two IPv4 addresses. IPv4 addresses are universal
in the sense that the addressing system must be accepted by any host that wants
to be connected to the Internet.
Address Space
Notation
There are three common notations to show an IPv4 address: binary notation
(base 2), dotted-decimal notation (base 256), and hexadecimal notation (base 16).
In binary notation, an IPv4 address is displayed as 32 bits. To make the address
more readable, one or more spaces are usually inserted between each octet (8
bits). Each octet is often referred to as a byte. To make the IPv4 address more
compact and easier to read, it is usually written in decimal form with a decimal
point (dot) separating the bytes.
7
COMPUTER NETWORKS
Figure 3.17 shows the prefix and suffix of a 32-bit IPv4 address. The prefix
length is n bits and the suffix length is (32 − n) bits.
A prefix can be fixed length or variable length. The network identifier in the
IPv4 was first designed as a fixed-length prefix. This scheme, which is now
obsolete, is referred to as classful addressing. The new scheme, which is referred to
as classless addressing, uses a variable-length network prefix. First, we briefly
discuss Classful addressing; then we concentrate on classless addressing.
Classful Addressing:
When the Internet started, an IPv4 address was designed with a fixed-length
prefix, but to accommodate both small and large networks, three fixed-length
8
COMPUTER NETWORKS
prefixes were designed instead of one (n = 8, n = 16, and n = 24). The whole
address space was divided into five classes (class A, B, C, D, and E), as shown in
Figure 3.18. This scheme is referred to as classful addressing.
In class A, the network length is 8 bits, but since the first bit, which is 0,
defines the class, we can have only seven bits as the network identifier. This means
there are only 27 = 128 networks in the world that can have a class A address.
In class B, the network length is 16 bits, but since the first two bits, which
are (10)2, define the class, we can have only 14 bits as the network identifier. This
means there are only 214 = 16,384 networks in the world that can have a class B
address.
All addresses that start with (110)2 belong to class C. In class C, the network
length is 24 bits, but since three bits define the class, we can have only 21 bits as
the network identifier. This means there are 221 = 2,097,152 networks in the world
that can have a class C address.
Class D is not divided into prefix and suffix. It is used for multicast
addresses. All addresses that start with 1111 in binary belong to class E. As in Class
D, Class E is not divided into prefix and suffix and is used as reserve.
9
COMPUTER NETWORKS
the Internet was faced with the problem of the addresses being rapidly used up,
resulting in no more addresses available for organizations and individuals that
needed to be connected to the Internet.
Each subnet has a larger prefix length than the original network. While
subnetting was devised to divide a large block into smaller ones, Supernetting was
devised to combine several class C blocks into a larger block to be attractive to
organizations that need more than the 256 addresses available in a class C block.
This idea did not work either because it makes the routing of packets more difficult.
Classless Addressing:
Subnetting and Supernetting in classful addressing did not really solve the
address depletion problem. With the growth of the Internet, it was clear that a
larger address space was needed as a long-term solution. The larger address space,
however, requires that the length of IP addresses also be increased, which means
the format of the IP packets needs to be changed.
Although the long-range solution has already been devised and is called
IPv6, a short-term solution was also devised to use the same address space but to
change the distribution of addresses to provide a fair share to each organization.
The short-term solution still uses IPv4 addresses, but it is called classless
addressing. In other words, the class privilege was removed from the distribution to
compensate for the address depletion.
10
COMPUTER NETWORKS
network is inversely proportional to the length of the prefix. A small prefix means a
larger network; a large prefix means a smaller network.
Given any address in the block, we normally like to know three pieces of
information about the block to which the address belongs: the number of
addresses, the first address in the block, and the last address. Since the value of
prefix length, n, is given, we can easily find these three pieces of information, as
shown in Figure 3.21.
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.
11
COMPUTER NETWORKS
Example:
The first address can be found by keeping the first 27 bits and changing the
rest of the bits to 0s.
The last address can be found by keeping the first 27 bits and changing the
rest of the bits to 1s.
IP VERSION 6:
IP has been in heavy use for decades. It has worked extremely well, as
demonstrated by the exponential growth of the Internet. Unfortunately, IP has
become a victim of its own popularity: it is close to running out of addresses. Even
with CIDR and NAT using addresses more sparingly, the last IPv4 addresses are
expected to be assigned by ICANN before the end of 2012.
IPv6 (IP version 6) is a replacement design that does just that. It uses
128-bit addresses; a shortage of these addresses is not likely any time in the
foreseeable future. However, IPv6 has proved very difficult to deploy. It is a
different network layer protocol that does not really interwork with IPv4, despite
12
COMPUTER NETWORKS
many similarities. Also, companies and users are not really sure why they should
want IPv6 in any case.
In 1990 IETF started work on a new version of IP, one that would never run
out of addresses, would solve a variety of other problems, and be more flexible and
efficient as well. Its major goals were:
5. Pay more attention to the type of service, particularly for real-time data.
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.
First and foremost, IPv6 has longer addresses than IPv4. They are 128
bits long, which solves the problem that IPv6 set out to solve:
providing an effectively unlimited supply of Internet addresses.
13
COMPUTER NETWORKS
previously were required are now optional (because they are not used
so often).
The IPv6 header is shown in Fig. 3.22. The Version field is always 6 for IPv6
(and 4 for IPv4). During the transition period from IPv4, which has already taken
more than a decade, routers will be able to examine this field to tell what kind of
packet they have.
As an aside, making this test wastes a few instructions in the critical path,
given that the data link header usually indicates the network protocol for
demultiplexing, so some routers may skip the check.
The Flow label field provides a way for a source and destination to mark
groups of packets that have the same requirements and should be treated in the
same way by the network, forming a pseudo connection.
The Payload length field tells how many bytes follow the 40-byte header of
Fig. 3.22. The name was changed from the IPv4 Total length field because the
meaning was changed slightly: the 40 header bytes are no longer counted as part
of the length (as they used to be). This change means the payload can now be
65,535 bytes instead of a mere 65,515 bytes.
14
COMPUTER NETWORKS
The Next header field tells which transport protocol handler (e.g., TCP, UDP)
to pass the packet to.
The Hop limit field is used to keep packets from living forever. It is, in
practice, the same as the Time to live field in IPv4, namely, a field that is
decremented on each hop. In
Next come the Source address and Destination address fields. A new notation
has been devised for writing 16-byte addresses. They are written as eight groups of
four hexadecimal digits with colons between the groups, like this:
8000:0000:0000:0000:0123:4567:89AB:CDEF
Since many addresses will have many zeros inside them, three optimizations
have been authorized. First, leading zeros within a group can be omitted, so 0123
can be written as 123. Second, one or more groups of 16 zero bits can be replaced
by a pair of colons. Thus, the above address now becomes
8000::123:4567:89AB:CDEF
In addition to IP, which is used for data transfer, the Internet has several
companion control protocols that are used in the network layer. They include ICMP,
ARP, and DHCP.
defined. Each ICMP message type is carried encapsulated in an IP packet. The most
important ones are listed in Fig. 3.23.
The TIME EXCEEDED message is sent when a packet is dropped because its
TtL (Time to live) counter has reached zero. This event is a symptom that packets
are looping, or that the counter values are being set too low.
The PARAMETER PROBLEM message indicates that an illegal value has been
detected in a header field. This problem indicates a bug in the sending host’s IP
software or possibly in the software of a router transited.
The SOURCE QUENCH message was long ago used to throttle hosts that were
sending too many packets. When a host received this message, it was expected to
slow down.
The REDIRECT message is used when a router notices that a packet seems to
be routed incorrectly. It is used by the router to tell the sending host to update to a
better route.
16
COMPUTER NETWORKS
The ARPANET switched over to a link state protocol in May 1979 because of
these problems, and in 1988 IETF began work on a link state protocol for
intradomain routing. That protocol, called OSPF (Open Shortest Path First),
became a standard in 1990. It drew on a protocol called IS-IS (Intermediate-
System to Intermediate-System), which became an ISO standard.
Given the long experience with other routing protocols, the group designing
OSPF had a long list of requirements that had to be met. First, the algorithm had to
be published in the open literature, hence the ‘‘O’’ in OSPF.
Fourth, and new for OSPF, it had to support routing based on type of service.
The new protocol had to be able to route real-time traffic one way and other traffic
a different way. At the time, IP had a Type of service field, but no existing routing
protocol used it. This field was included in OSPF but still nobody used it, and it was
eventually removed.
Fifth, and related to the above, OSPF had to do load balancing, splitting the
load over multiple lines. Most previous protocols sent all packets over a single best
route, even if there were two routes that were equally good. The other route was
not used at all. In many cases, splitting the load over multiple routes gives better
performance.
Sixth, support for hierarchical systems was needed. By 1988, some networks
had grown so large that no router could be expected to know the entire topology.
OSPF had to be designed so that no router would have to.
17
COMPUTER NETWORKS
In effect, it is acting as the single node that represents the LAN. Neighboring
routers that are not adjacent do not exchange information with each other. A
backup designated router is always kept up to date to ease the transition should
the primary designated router crash and need to be replaced immediately.
During normal operation, each router periodically floods LINK STATE UPDATE
messages to each of its adjacent routers. These messages gives its state and
provide the costs used in the topological database. The flooding messages are
acknowledged, to make them reliable.
All these messages are sent directly in IP packets. The five kinds of
messages are summarized in Fig. 3.24.
Within a single AS, OSPF and IS-IS are the protocols that are commonly
used. Between ASes, a different protocol, called BGP (Border Gateway Protocol),
is used. A different protocol is needed because the goals of an intradomain protocol
and an interdomain protocol are not the same. All an intradomain protocol has to
do is move packets as efficiently as possible from the source to the destination.
18
COMPUTER NETWORKS
The path consists of the next hop router (which may be on the other side of
the ISP, not adjacent) and the sequence of ASes, or AS path, that the route has
followed (given in reverse order). Finally, pairs of BGP routers communicate with
each other by establishing TCP connections. Operating this way provides reliable
communication and also hides all the details of the network being passed through.
An example of how BGP routes are advertised is shown in Fig. 3.25. There
are three ASes and the middle one is providing transit to the left and right ISPs. A
route advertisement to prefix C starts in AS3. When it is propagated across the link
to R2c at the top of the figure, it has the AS path of simply AS3 and the next hop
router of R3a.
At the bottom, it has the same AS path but a different next hop because it
came across a different link. This advertisement continues to propagate and crosses
the boundary into AS1. At router R1a, at the top of the figure, the AS path is AS2,
AS3 and the next hop is R2a.
Carrying the complete path with the route makes it easy for the receiving
router to detect and break routing loops. The rule is that each router that sends a
route outside of the AS prepends its own AS number to the route. (This is why the
list is in reverse order.)
19
COMPUTER NETWORKS
The network layer in version 4 can be thought of as one main protocol and
three auxiliary ones. The main protocol, Internet Protocol version 4 (IPv4), is
responsible for packetizing, forwarding, and delivery of a packet at the network
layer.
IPv4 is also a connectionless protocol that uses the datagram approach. This
means that each datagram is handled independently, and each datagram can follow
a different route to the destination. This implies that datagrams sent by the same
source to the same destination could arrive out of order. Again, IPv4 relies on a
higher-level protocol to take care of all these problems.
DATAGRAM FORMAT:
Packets used by the IP are called datagrams. Figure 3.27 shows the IPv4
datagram format. A datagram is a variable-length packet consisting of two parts:
20
COMPUTER NETWORKS
header and payload (data). The header is 20 to 60 bytes in length and contains
information essential to routing and delivery. It is customary in TCP/IP to show the
header in 4-byte sections.
Version Number. The 4-bit version number (VER) field defines the version of
the IPv4 protocol, which, obviously, has the value of 4.
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 handled.
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).
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.
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:
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:
22
COMPUTER NETWORKS
As Figure 3.28 shows, the first field, ICMP type, defines the type of the
message. The code field specifies the reason for the particular message type. The
last common field is the checksum field (to be discussed later in the chapter). The
rest of the header is specific for each message type.
The data section in error messages carries information for finding the original
packet that had the error. In query messages, the data section carries extra
information based on the type of query.
ICMP uses the source IP address to send the error message to the source
(originator) of the datagram. To make the error-reporting process simple, ICMP
follows some rules in reporting messages:
23
COMPUTER NETWORKS
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.
Query messages are used to probe or test the liveliness of hosts or routers in
the Internet, find the one-way or the round-trip time for an IP datagram between
two devices, or even find out whether the clocks in two devices are synchronized.
Naturally, query messages come in pairs: request and reply.
IGMP:
The protocol that is used today for collecting information about group
membership is the Internet Group Management Protocol (IGMP). IGMP is a
24
COMPUTER NETWORKS
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 3.29. 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.
Query Message:
The query message is sent by a router to all hosts in each interface to collect
information about their membership. There are three versions of query messages,
as described below:
Report Message
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).
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.
26
COMPUTER NETWORKS
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
called
a) spanning tree b) spider structure
c) spider tree d) none
8. Which one of the following algorithm is not used for congestion control?
a) traffic aware routing b) admission control
c) load shedding d) none of the mentioned
27
COMPUTER NETWORKS
13. deals with the issues of creating and maintaining routing tables.
a. Forwarding b. Routing
c. Directing d. None directing
14. During an adverse condition, the length of time for every device in the network
to produce an accurate routing table is called the .
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
28
COMPUTER NETWORKS
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
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
29
COMPUTER NETWORKS
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 .......... build 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
packet 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.
30
COMPUTER NETWORKS
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
50. Which class of IP addressing provide more number of hosts in each network
a)class-A b)class-B c)class-c d)class-D
31
COMPUTER NETWORKS
UNIT-III
Descriptive Questions
1. What are the Services provided by Network layer to the Transport layer ?
8. Explain flooding
32
COMPUTER NETWORKS
Computer Networks
UNIT-IV
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.
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.
Computer Networks
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.
Computer Networks
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.
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.
Computer Networks
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.
Even on wireless links, the process is not much different. Just sending a
message is sufficient to have it reach all other destinations. If the message is not
acknowledged due to an error, it can be resent. In the transport layer, initial
connection establishment is complicated.
Addressing:
In the Internet, these endpoints are called ports. We will use the generic
term TSAP (Transport Service Access Point) to mean a specific endpoint in the
transport layer. The analogous endpoints in the network layer (i.e., network layer
addresses) are naturally called NSAPs (Network Service Access Points). IP
addresses are examples of NSAPs.
Figure 4.4 illustrates the relationship between the NSAPs, the TSAPs, and a
transport connection.
Computer Networks
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.
Computer Networks
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.
The crux (meaning root) of the problem is that the delayed duplicates are
thought to be new packets. We cannot prevent packets from being duplicated and
delayed. But if and when this happens, the packets must be rejected as duplicates
and not processed as fresh packets.
Note: However, this approach makes it more difficult to connect with a process in
the first place.
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.
Computer Networks
Packet lifetime can be restricted to a known maximum using one (or more)
of the following techniques:
Connection Release:
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.
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.
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.’’
Computer Networks
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.
Computer Networks
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:
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).
Computer Networks
Figure 4.7: Four protocol scenarios for releasing a connection. (a) normal
case of three-way handshake. (b) final ACK lost. (c) response lost. (d) response
lost and subsequent DRs lost.
Computer Networks
CRASH RECOVERY:
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.
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.
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.
Computer Networks
Max-Min Fairness:
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.
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:
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.
Computer Networks
The first is flow control, in the case that there is insufficient buffering at
the receiver.
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).
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.
Wireless issues:
Computer Networks
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.
INTRODUCTION TO UDP:
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.
Computer Networks
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
application.
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.
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.
In the simplest form, to call a remote procedure, the client program must be
bound with a small library procedure, called the client stub, that represents the
server procedure in the client’s address space.
Similarly, the server is bound with a procedure called the server stub.
These procedures hide the fact that the procedure call from the client to the server
is not local. The actual steps in making an RPC are shown in Fig. 4.12.
Step 1 is the client calling the client stub. This call is a local procedure call, with
the parameters pushed onto the stack in the normal way.
Step 2 is the client stub packing the parameters into a message and
making a system call to send the message. Packing the parameters is
called marshaling.
Step 3 is the operating system sending the message from the client machine to
the server machine.
Computer Networks
Figure 4.12: Steps in making a remote procedure call, the stubs are
shaded
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 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.
Client-server RPC is one area in which UDP is widely used. Another one is for
real-time multimedia applications.
Computer Networks
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).
Because RTP just uses normal UDP, its packets are not treated specially by
the routers unless some normal IP quality-of-service features are enabled. In
particular, there are no special guarantees about delivery, and packets may be lost,
delayed, corrupted, etc.
The RTP format contains several features to help receivers work with
multimedia information. The RTP header is illustrated in Fig. 4.13. It consists of
three 32-bit words and potentially some extensions.
The P bit indicates that the packet has been padded to a multiple of 4 bytes.
The CC field tells how many contributing sources are present, from 0 to 15.
The Payload type field tells which encoding algorithm has been used (e.g.,
uncompressed 8-bit audio, MP3, etc.).
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
Computer Networks
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 mixers 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.
Introduction to TCP:
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.
Computer Networks
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.
Port numbers below 1024 are reserved for standard services that can usually
only be started by privileged users (e.g., root in UNIX systems). They are called
well-known ports.
For example, any process wishing to remotely retrieve mail from a host can
connect to the destination host’s port 143 to contact its IMAP daemon. The list of
well-known ports is given at www.iana.org. Over 700 have been assigned. A few of
the better-known ones are listed in Fig. 4.14.
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
oundaries are not preserved end to end.
Computer Networks
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).
Each segment must fit in the MTU at the sender and receiver so that it can
be sent and received in a single, unfragmented packet. However, it is still possible
for IP packets carrying TCP segments to be fragmented when passing over a
network path for which some link has a small MTU.
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 header.
Computer Networks
Segments without any data are legal and are commonly used for
acknowledgements and control messages.
The Source port and Destination port fields identify the local end points of
the connection. The source and destination end points together identify the
connection. This connection identifier is called a 5 tuple because it consists of five
pieces of information: the protocol (TCP), source IP and source port, and
destination IP and destination port.
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.
Computer Networks
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.
Computer Networks
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.
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.
Other measurements are made with counters that record how often some
event has happened (e.g., number of lost segments).
Computer Networks
Do not measure the time to send one segment, but repeat the measurement,
say, one million times and take the average.
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).
Computer Networks
UNIT-V
INTRODUCTION:
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.
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.
To provide smooth operation of the Internet, the protocols used in the first
four layers of the TCP/IP suite need to be standardized and documented.
Computer Networks
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.
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.
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.
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.
Computer Networks
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:
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.
Computer Networks
suite.
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:
Socket Addresses:
Computer Networks
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.
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.
Remote Socket Address Finding the remote (server) socket address for a
client, however, needs more work. When a client process starts, it should know the
socket address of the server it wants to connect to.
Using Services of the Transport Layer:
Computer Networks
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.
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:
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.
Computer Networks
The client protocol can be one of the protocols described later, such as HTTP
or FTP. The interpreter can be HTML, Java, or JavaScript, depending on the type of
document. Some commercial browsers include Internet Explorer, Netscape
Navigator, and Firefox.
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.
However, before defining the web page, we need to tell the browser what
clientserver 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.
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.
Computer Networks
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.
Web Documents:
The documents in the WWW can be grouped into three broad categories:
static, dynamic, and active.
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.
Dynamic Documents:
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:
Computer Networks
The HyperText Transfer Protocol (HTTP) is used to define how the client-
server programs can be written to retrieve web pages from the Web. An HTTP client
sends a request; an HTTP server returns a response. The server uses the port
number 80; the client uses a temporary port number. HTTP uses the services of
TCP, which, as discussed before, is a connection-oriented and reliable protocol.
Nonpersistent Connections
3. The client reads the data until it encounters an end-of-file marker; it then
closes the connection.
Persistent Connections
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.
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.
Computer Networks
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.
If the response is not stored in the cache, the proxy server sends the request
Computer Networks
to the corresponding server. Incoming responses are sent to the proxy server and
stored for future requests from other clients.
The proxy server reduces the load on the original server, decreases traffic,
and improves latency. However, to use the proxy server, the client must be
configured to access the proxy instead of the target server.
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:
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 transferred.
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.
Computer Networks
FTP uses two well-known TCP ports: port 21 is used for the control
connection, and port 20 is used for the data connection.
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:
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.
Computer Networks
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
Architecture:
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 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
Computer Networks
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.
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.
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:
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:
Computer Networks
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.
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.
Computer Networks
TELNET:
For example, if a student needs to use the Java compiler program at her
university lab, there is no need for a Java compiler client and a Java compiler
server. The student can use a client logging program to log into the university
server and use the compiler program at the university. We refer to these generic
client/server pairs as remote logging applications.
A hacker can eavesdrop and obtain the logging name and password. Because
of this security issue, the use of TELNET has diminished in favor of another
protocol, Secure Shell (SSH).
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.
When a user logs into a local system, it is called local logging. As a user
types at a terminal or at a workstation running a terminal emulator, the keystrokes
are accepted by the terminal driver.
The terminal driver passes the characters to the operating system. The
operating system, in turn, interprets the combination of characters and invokes the
desired application program or utility.
Computer Networks
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.
NVT uses two sets of characters, one for data and one for control. Both are
8-bit bytes. For data, NVT normally uses what is called NVT ASCII. This is an 8-bit
character set in which the seven lowest order bits are the same as US ASCII and
the highest order bit is 0.
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:
Computer Networks
There are two versions of SSH: SSH-1 and SSH-2, which are totally
incompatible. The first version, SSH-1, is now deprecated because of security flaws
in it. In this section, we discuss only SSH-2.
Since TCP is not a secured transport-layer protocol, SSH first uses a protocol
that creates a secured channel on top of the TCP. This new layer is an independent
protocol referred to as SSH-TRANS.
When the procedure implementing this protocol is called, the client and
server first use the TCP protocol to establish an insecure connection. Then they
exchange several security parameters to establish a secure channel on top of the
TCP. The services provided by this protocol are:
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.
After a secure channel is established between the client and the server and
the server is authenticated for the client, SSH can call another procedure that can
authenticate the client for the server. The client authentication process in SSH is
very similar to what is done in Secure Socket Layer (SSL).
This layer defines a number of authentication tools similar to the ones used
in SSL. Authentication starts with the client, which sends a request message to the
server. The request includes the user name, server name, the method of
authentication, and the required data. The server responds with either a success
message, which confirms that the client is authenticated, or a failed message,
which means that the process needs to be repeated with a new request message.
Computer Networks
After the secured channel is established and both server and client are
authenticated for each other, SSH can call a piece of software that implements the
third protocol, SSHCONN.
Applications:
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.
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.
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.
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 name, such as afilesource.com.
Computer Networks
Name Space:
A name space that maps each address to a unique name can be organized
in two ways: flat or hierarchical. In a flat name space, a name is assigned to an
address.
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.
Computer Networks
Label:
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.
Computer Networks
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.
In other words, SNMP frees management tasks from both the physical
characteristics of the managed devices and the underlying networking technology.
It can be used in a heterogeneous internet made of different LANs and WANs
connected by routers made by different manufacturers.
Computer Networks
The manager can also make the router perform certain actions. For example,
a router periodically checks the value of a reboot counter to see when it should
reboot itself. It reboots itself, for example, if the value of the counter is 0. The
manager can use this feature to reboot the agent remotely at any time. It simply
sends a packet to force a 0 value in the counter.
Agents can also contribute to the management process. The server program
running on the agent can check the environment and, if it notices something
unusual, it can send a warning message (called a Trap) to the manager. In other
words, management with SNMP is based on three basic ideas:
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 entity in a
manner similar to that of a database (mostly metadata in a database, names &
types without values).