SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Transport Layer
1. Process-to-Process delivery
Real communication takes place between two processes (application programs). However, at any
moment, several processes may be running on the source host and several on the destination
host. To complete the delivery, we need a mechanism to deliver data from one of these processes
running on the source host to the corresponding process running on the destination host. The
transport layer is responsible for process-to-process delivery-the delivery of a packet, part of a
message, from one process to another (fig. 1.1.1). Two processes communicate in a client/server
relationship.
Fig. 1.1.1 Process-to-Process delivery
Client/Server Paradigm
Although there are several ways to achieve process-to-process communication, the most
common one is through the client/server paradigm. A process on the local host, called a client,
needs services from a process usually on the remote host, called a server. Both processes (client
and server) have the same name. For example, to get the day and time from a remote machine,
we need a Daytime client process running on the local host and a Daytime server process running
on a remote machine.
1.1 Addressing in transport layer
Whenever we need to deliver something to one specific destination among many, we need an
address. A frame in the data link layer needs a destination MAC address for delivery and a
source address for the next node's reply.
At the network layer, we need an IP address to choose one host among millions. A datagram in
the network layer needs a destination IP address for delivery and a source IP address for the
destination's reply.
At the transport layer, we need a transport layer address, called a port number, to choose among
multiple processes running on the destination host. The destination port number is needed for
delivery; the source port number is needed for the reply.
In the Internet model, the port numbers are 16-bit integers between 0 and 65,535. The client
program defines itself with a port number, chosen randomly by the transport layer software
running on the client host. This is the ephemeral port number. Internet Assigned Number
Authority (IANA) has divided the addresses in three ranges:
Well-known ports: The ports in the range from 0 to 1023 are assigned and controlled by
IANA. These port numbers are commonly used as universal port numbers in the servers for
the convenience of many clients the servers serve.
Registered ports: Registered ports in the range from 1024 to 49151 are not assigned or
controlled by IANA. However, they can only be registered with IANA to avoid duplication.
Dynamic ports: Dynamic ports (49152 to 65535) are neither controlled by IANA nor need to
be registered. They can be defined at the client site and chosen randomly by the transport
layer software.
Well-known ports used by UDP
1.1.1 Socket Addresses
Process-to-process delivery needs two identifiers, IP address and the port number, at each end to
make a connection. The combination of an IP address and a port number is called a socket
address. The client socket address defines the client process uniquely just as the server socket
address defines the server process uniquely (see Figure 1.1.2). A transport layer protocol needs a
pair of socket addresses: the client socket address and the server socket address. These four
pieces of information are part of the IP header and the transport layer protocol header. The IP
header contains the IP addresses; the UDP or TCP header contains the port numbers.
Figure 1.1.2 Socket address
1.1.2 Connectionless Versus Connection-Oriented Service
A transport layer protocol can either be connectionless or connection-oriented.
Connectionless Service
In a connectionless service, the packets are sent from one party to another with no need for
connection establishment or connection release. The packets are not numbered; they may be
delayed or lost or may arrive out of sequence. There is no acknowledgment either. We will see
shortly that one of the transport layer protocols in the Internet model, UDP, is connectionless.
Connection-Oriented Service
In a connection-oriented service, a connection is first established between the sender and the
receiver. Data are transferred. At the end, the connection is released.
1.1.3 Reliable Versus Unreliable
The transport layer service can be reliable or unreliable. If the application layer program needs
reliability, we use a reliable transport layer protocol by implementing flow and error control at
the transport layer. This means a slower and more complex service. On the other hand, if the
application program does not need reliability because it uses its own flow and error control
mechanism or it needs fast service or the nature of the service does not demand flow and error
control (real-time applications), then an unreliable protocol can be used.
Reliability at the data link layer is between two nodes; we need reliability between two ends.
Because the network layer in the Internet is unreliable (best-effort delivery), we need to
implement reliability at the transport layer. To understand that error control at the data link layer
does not guarantee error control at the transport layer, see the Figure 1.1.3.
Figure 1.1.3
1.2 Protocols Transport Layer
The original TCP/IP protocol suite specifies two protocols for the transport layer: UDP and TCP.
1.2.1 User Datagram Protocol (UDP)
The User Datagram Protocol (UDP) is called a connectionless, unreliable transport protocol. It
does not add anything to the services of IP except to provide process-to-process communication
instead of host-to-host communication. Also, it performs very limited error checking. UDP is a
very simple protocol using a minimum of overhead. If a process wants to send a small message
and does not care much about reliability, it can use UDP.
In UNIX, the well-known ports are stored in a file called /etc/services. Each line in this file gives
the name of the server and the well-known port number. We can use the grep utility to extract
the line corresponding to the desired application.
UDP Datagram
The UDP datagram format is shown in Fig. 1.2.1. A brief description of different fields of the
datagram are given below:
Fig. 1.2.1 UDP Datagram Format
Source port (16 bits): It defines the port number of the application program in the host of
the sender
Destination port (16 bits): It defines the port number of the application program in the host
of the receiver
Length: This is a 16-bit field that defines the total length of the user datagram, header plus
data. The 16 bits can define a total length of 0 to 65,535 bytes. However, the total length
needs to be much less because a UDP user datagram is stored in an IP datagram with a total
length of 65,535 bytes.
UDP length = IP length - IP header's length
Checksum: This field is used to detect errors over the entire user datagram (header plus
data). It is optional, 0 in case it is not in use
Characteristics of the UDP
Key characteristics of UDP are given below:
UDP provides an unreliable connectionless delivery service using IP to transport messages
between two processes
UDP messages can be lost, duplicated, delayed and can be delivered out of order
UDP is a thin protocol, which does not add significantly to the functionality of IP
It cannot provide reliable stream transport service
Use of UDP
The following lists some uses of the UDP protocol:
UDP is suitable for a process that requires simple request-response communication with little
concern for flow and error control. It is not usually used for a process such as FTP that needs
to send bulk data .
UDP is suitable for a process with internal flow and error control mechanisms. For example,
the Trivial File Transfer Protocol (TFTP) process includes flow and error control. It can
easily use UDP.
UDP is a suitable transport protocol for multicasting. Multicasting capability is embedded in
the UDP software but not in the TCP software.
UDP is used for management processes such as SNMP.
UDP is used for some route updating protocols such as Routing Information Protocol (RIP)
The limitations can be overcome by using connection-oriented transport layer protocol known as
Transmission Control Protocol (TCP), which is presented in the following section.
1.3 Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) like UDP is a process-to-process (program-to-program)
protocol. TCP, therefore, like UDP, uses port numbers. Unlike UDP, TCP is a connection
oriented protocol; it creates a virtual connection between two TCPs to send data. In addition,
TCP uses flow and error control mechanisms at the transport level.
In brief, TCP is called a connection-oriented, reliable transport protocol. It adds connection-
oriented and reliability features to the services of IP.
TCP Services
Process-to-Process Communication
TCP provides process-to-process communication using port numbers.
Stream Delivery Service
TCP is a stream-oriented protocol. TCP allows the sending process to deliver data as a stream of
bytes and allows the receiving process to obtain data as a stream of bytes. TCP creates an
environment in which the two processes seem to be connected by an imaginary "tube" that
carries their data across the Internet.
Sending and Receiving Buffers
The receiving processes may not write or read data at the same speed, TCP needs buffers for
storage. There are two buffers, the sending buffer and the receiving buffer, one for each
direction.
Segments
TCP groups a number of bytes together into a packet called a segment. TCP adds a header to
each segment (for control purposes) and delivers the segment to the IP layer for transmission.
The segments are encapsulated in IP datagrams and transmitted.
Full-Duplex Communication
TCP offers full-duplex service, in which data can flow in both directions at the same time. Each
TCP then has a sending and receiving buffer, and segments move in both directions.
Connection-Oriented Service
TCP, unlike UDP, is a connection-oriented protocol. When a process at site A wants to send and
receive data from another process at site B, the following occurs:
1. The two TCPs establish a connection between them.
2. Data are exchanged in both directions.
3. The connection is terminated.
This is a virtual connection, not a physical connection. The TCP segment is encapsulated in an IP
datagram and can be sent out of order, or lost, or corrupted, and then resent. Each may use a different
path to reach the destination.
Reliable Service
TCP is a reliable transport protocol. It uses an acknowledgment mechanism to check the safe and
sound arrival of data.
TCP Datagram format
The TCP datagram format is shown in Fig. 1.3.1. A brief explanation of the functions of different
fields are given below:
Source port (16 bits): It defines the port number of the application program in the host of the
sender
Destination port (16 bits): It defines the port number of the application program in the host of
the receiver
Sequence number (32 bits): It conveys the receiving host which octet in this sequence
comprises the first byte in the segment
Acknowledgement number (32 bits): This specifies the sequence number of the next octet that
receiver expects to receive
HLEN (4 bits): This field specifies the number of 32-bit words present in the TCP header
Control flag bits (6 bits): URG: Urgent pointer
ACK: Indicates whether acknowledge field is valid
PSH: Push the data without buffering
RST: Resent the connection
SYN: Synchronize sequence numbers during connection establishment
FIN: Terminate the connection
Window (16 bits): Specifies the size of window
Checksum (16 bits): Checksum used for error detection.
User pointer (16 bits): Used only when URG flag is valid
Options: Optional 40 bytes of information
Fig. 1.3.1 TCP Datagram format
The well-known ports used by TCP are given in Table 1.3.2 and the three types of addresses
used in TCP/IP are shown in Fig. 1.3.3.
Table 1.3.2 Well-known ports used by TCP
Fig. 1.3.3 Three types of addresses used in TCP/IP
Connection Establishment
The connection establishment in TCP is called three way handshaking. An application program,
called the client, wants to make a connection with another application program, called the server,
using TCP as the transport layer protocol.
The server program tells its TCP that it is ready to accept a connection. This is called a request
for a passive open.
The client program issues a request for an active open. A client that wishes to connect to an open
server tells its TCP that it needs to be connected to that particular server. TCP can now start the
three-way handshaking process as shown in Figure 1.3.4
The client sends the first segment, a SYN segment, in which only the SYN flag is set. This
segment is for synchronization of sequence numbers. It consumes one sequence number.
When the data transfer starts, the sequence number is incremented by 1.
The server sends the second segment, a SYN +ACK segment, with 2 flag bits set: SYN and
ACK. This segment has a dual purpose. It is a SYN segment for communication in the other
direction and serves as the acknowledgment for the SYN segment. It consumes one sequence
number.
The client sends the third segment. This is just an ACK segment. It acknowledges the receipt
of the second segment with the ACK flag and acknowledgment number field. Note that the
sequence number in this segment is the same as the one in the SYN segment; the ACK
segment does not consume any sequence numbers.
Figure 1.3.4 Connection establishment using three-way handshaking
Connection Termination
Similarly for connection termination, a three-way handshaking protocol is necessary for
termination of connection in both directions as shown in Fig. 1.3.5.
The client TCP, after receiving a close command from the client process, sends the first
segment, a FIN segment in which the FIN flag is set.
The server TCP, after receiving the FIN segment, informs its process of the situation and
sends the second segment, a FIN +ACK segment, to confirm the receipt of the FIN segment
from the client and at the same time to announce the closing of the connection in the other
direction.
The client TCP sends the last segment, an ACK segment, to confirm the receipt of the FIN
segment from the TCP server. This segment contains the acknowledgment number, which is
1 plus the sequence number received in the FIN segment from the server. This segment
cannot carry data and consumes no sequence numbers.
Fig. 1.3.5 Connection termination using three-way handshaking
2. Congestion Control
As Internet can be considered as a Queue of packets, where transmitting nodes are constantly
adding packets and some of them (receiving nodes) are removing packets from the queue. So,
consider a situation where too many packets are present in this queue (or internet or a part of
internet), such that constantly transmitting nodes are pouring packets at a higher rate than
receiving nodes are removing them. This degrades the performance, and such a situation is
termed as Congestion. Main reason of congestion is more number of packets into the network
than it can handle. So, the objective of congestion control can be summarized as to maintain the
number of packets in the network below the level at which performance falls off dramatically.
2.1 Causes of Congestion
Congestion can occur due to several reasons.
If there is insufficient memory to hold these packets, then packets will be lost (dropped).
Adding more memory also may not help in certain situations. If router have an infinite
amount of memory even then instead of congestion being reduced, it gets worse; because by
the time packets gets at the head of the queue, to be dispatched out to the output line, they
have already timed-out (repeatedly), and duplicates may also be present.
Slow processors also cause Congestion. If the router CPU is slow at performing the task
required for them (Queuing buffers, updating tables, reporting any exceptions etc.), queue
can build up even if there is excess of line capacity.
Low-Bandwidth lines can also cause congestion.
The major cause of congestion is often the bursty nature of traffic.
2.2 Effects of Congestion
Congestion affects two vital parameters of the network performance, namely throughput and
delay. In simple terms, the throughput can be defined as the percentage utilization of the network
capacity. Figure 2.1.1(a) shows how throughput is affected as offered load increases. Initially
throughput increases linearly with offered load, because utilization of the network increases.
However, as the offered load increases beyond certain limit, say 60% of the capacity of the
network, the throughput drops. If the offered load increases further, a point is reached when not a
single packet is delivered to any destination, which is commonly known as deadlock situation.
The delay also increases with offered load, as shown in Fig. 2.1.1 (b). And no matter what
technique is used for congestion control, the delay grows without bound as the load approaches
the capacity of the system. It may be noted that initially there is longer delay when congestion
control policy is applied. However, the network without any congestion control will saturate at a
lower offered load.
(a) (b)
Figure 2.1.1 (a) Effect of congestion on throughput (b) Effect of congestion on delay
2.3 Congestion Control Techniques
Congestion control refers to the mechanisms and techniques used to control congestion and keep the
traffic below the capacity of the network. As shown in Fig. 2.1.2, the congestion control techniques
can be broadly classified two broad categories:
Open loop: Protocols to prevent or avoid congestion, ensuring that the system (or network under
consideration) never enters a Congested State.
Close loop: Protocols that allow system to enter congested state, detect it, and remove it.
Fig. 2.1.2 Congestion control categories
Open-Loop Congestion Control
In open-loop congestion control, policies are applied to prevent congestion before it happens. In
these mechanisms, congestion control is handled by either the source or the destination.
Retransmission Policy
Retransmission is sometimes unavoidable. If the sender feels that a sent packet is lost or
corrupted, the packet needs to be retransmitted. Retransmission in general may increase
congestion in the network.
Window Policy
The type of window at the sender may also affect congestion. The Selective Repeat window is
better than the Go-Back-N window for congestion control.
Acknowledgment Policy
The acknowledgment policy imposed by the receiver may also affect congestion. If the receiver
does not acknowledge every packet it receives, it may slow down the sender and help prevent
congestion.
Discarding Policy
A good discarding policy by the routers may prevent congestion and at the same time may not
harm the integrity of the transmission.
Admission Policy
An admission policy, which is a quality-of-service mechanism, can also prevent congestion in
virtual-circuit networks. Switches in a flow first check the resource requirement of a flow before
admitting it to the network. A router can deny establishing a virtual circuit connection if there is
congestion in the network or if there is a possibility of future congestion.
Closed-Loop Congestion Control
Closed-loop congestion control mechanisms try to alleviate congestion after it happens. Several
mechanisms have been used by different protocols.
Backpressure
The technique of backpressure refers to a congestion control mechanism in which a congested
node stops receiving data from the immediate upstream node or nodes. This may cause the
upstream node or nodes to become congested, and they, in turn, reject data from their upstream
nodes or nodes. And so on.
Choke Packet
A choke packet is a packet sent by a node to the source to inform it of congestion. In
backpressure, the warning is from one node to its upstream node, although the warning may
eventually reach the source station. In the choke packet method, the warning is from the router,
which has encountered congestion, to the source station directly. The intermediate nodes through
which the packet has traveled are not warned.
Explicit and implicit Signaling
In the explicit approach, special packets are sent back to the sources to curtail down the
congestion. While in implicit approach, the source itself acts pro-actively and tries to deduce the
existence of congestion by making local observations.
3. QUALITY OF SERVICE
Quality of service (QoS) is an internetworking issue.
3.1 Techniques to improve the quality of service
A. Scheduling
Packets from different flows arrive at a switch or router for processing. A good scheduling
technique treats the different flows in a fair and appropriate manner. Several scheduling
techniques are designed to improve the quality of service. We discuss three of them here: FIFO
queuing, priority queuing, and weighted fair queuing.
FIFO Queuing
In first-in, first-out (FIFO) queuing, packets wait in a buffer (queue) until the node (router or
switch) is ready to process them. If the average arrival rate is higher than the average
processing rate, the queue will fill up and new packets will be discarded.
Priority Queuing
In priority queuing, packets are first assigned to a priority class. Each priority class has its
own queue. The packets in the highest-priority queue are processed first. Packets in the
lowest- priority queue are processed last. A priority queue can provide better QoS than the
FIFO queue because higher priority traffic, such as multimedia, can reach the destination
with less delay.
Weighted Fair Queuing
In this technique, the packets are still assigned to different classes and admitted to different
queues. The queues, however, are weighted based on the priority of the queues; higher
priority means a higher weight. The system processes packets in each queue in a round-robin
fashion with the number of packets selected from each queue based on the corresponding
weight.
B. Traffic Shaping
Traffic shaping is a mechanism to control the amount and the rate of the traffic sent to the
network. Two techniques can shape traffic: leaky bucket and token bucket.
Leaky Bucket Algorithm
Consider a Bucket with a small hole at the bottom, whatever may be the rate of water pouring
into the bucket, the rate at which water comes out from that small hole is constant. Once the
bucket is full, any additional water entering it spills over the sides and is lost (i.e. it doesn’t
appear in the output stream through the hole underneath).
The same idea of leaky bucket can be applied to packets, as shown in Fig. 3.1.1. Conceptually
each network interface contains a leaky bucket. And the following steps are performed:
When the host has to send a packet, the packet is thrown into the bucket.
The bucket leaks at a constant rate, meaning the network interface transmits packets at a
constant rate.
Bursty traffic is converted to a uniform traffic by the leaky bucket.
In practice the bucket is a finite queue that outputs at a finite rate.
This arrangement can be simulated in the operating system or can be built into the hardware.
Implementation of this algorithm is easy and consists of a finite queue. Whenever a packet
arrives, if there is room in the queue it is queued up and if there is no room then the packet is
discarded.
Fig. 3.1.1 Leaky bucket
Token Bucket Algorithm
The leaky bucket algorithm described above, enforces a rigid pattern at the output stream,
irrespective of the pattern of the input. For many applications it is better to allow the output to
speed up somewhat when a larger burst arrives than to loose the data. Token Bucket algorithm
provides such a solution. In this algorithm leaky bucket holds token, generated at regular
intervals. Main steps of this algorithm can be described as follows:
In regular intervals tokens are thrown into the bucket.
The bucket has a maximum capacity.
If there is a ready packet, a token is removed from the bucket, and the packet is send.
If there is no token in the bucket, the packet cannot be send.
Figure 3.1.2 shows the two scenarios before and after the tokens present in the bucket have been
consumed. In Fig. 3.1.2(a) the bucket holds two tokens, and three packets are waiting to be sent
out of the interface, in Fig. 3.1.2(b) two packets have been sent out by consuming two tokens,
and 1 packet is still left.
The token bucket algorithm is less restrictive than the leaky bucket algorithm, in a sense that it
allows bursty traffic. However, the limit of burst is restricted by the number of tokens available
in the bucket at a particular instant of time.
Figure 3.1.2(a) Token bucket holding two tokens, before packets are send out, (b) Token bucket
after two packets are send, one packet still remains as no token is left
The implementation of basic token bucket algorithm is simple; a variable is used just to count the
tokens. This counter is incremented every t seconds and is decremented whenever a packet is
sent. Whenever this counter reaches zero, no further packet is sent out as shown in Fig. 3.1.3.
Figure 3.1.3 Implementation of the Token bucket algorithm
C. Resource Reservation
A flow of data needs resources such as a buffer, bandwidth, CPU time, and so on. The quality of
service is improved if these resources are reserved beforehand.
D. Admission Control
Admission control refers to the mechanism used by a router, or a switch, to accept or reject a
flow based on predefined parameters called flow specifications. Before a router accepts a flow
for processing, it checks the flow specifications to see if its capacity (in terms of bandwidth,
buffer size, CPU speed, etc.) and its previous commitments to other flows can handle the new
flow.
Jitter
Jitter is the variation in delay for packets belonging to the same flow. For example, if four
packets depart at times 0, 1, 2, 3 and arrive at 20, 21, 22, 23, all have the same delay, 20 units of
time. On the other hand, if the above four packets arrive at 21, 23, 21, and 28, they will have
different delays: 21,22, 19, and 24.
Q. In what way token bucket algorithm is superior to leaky bucket algorithm?
Ans : The leaky bucket algorithm controls the rate at which the packets are introduced in the
network, but it is very conservative in nature. Some flexibility is introduced in token bucket
algorithm. In token bucket algorithm tokens are generated at each tick (up to certain limit). For
an incoming packet to be transmitted, it must capture a token and the transmission takes place at
the same rate. Hence some of the busty packets are transmitted at the same rate if tokens are
available and thus introduces some amount of flexibility in the system. This also improves the
performance.

Mais conteúdo relacionado

Mais procurados (20)

Hamming codes
Hamming codesHamming codes
Hamming codes
 
TCP protocol flow control
TCP protocol flow control TCP protocol flow control
TCP protocol flow control
 
The Data Link Layer
The Data Link LayerThe Data Link Layer
The Data Link Layer
 
Routing algorithm network layer
Routing algorithm  network layerRouting algorithm  network layer
Routing algorithm network layer
 
Error control
Error controlError control
Error control
 
Congestion control in TCP
Congestion control in TCPCongestion control in TCP
Congestion control in TCP
 
Cs8591 u4
Cs8591 u4Cs8591 u4
Cs8591 u4
 
Icmp
IcmpIcmp
Icmp
 
Computer networks unit iii
Computer networks    unit iiiComputer networks    unit iii
Computer networks unit iii
 
RTCP
RTCPRTCP
RTCP
 
Error detection correction (CRC)
Error detection correction  (CRC)Error detection correction  (CRC)
Error detection correction (CRC)
 
Leaky bucket A
Leaky bucket ALeaky bucket A
Leaky bucket A
 
Multiple Access Protocal
Multiple Access ProtocalMultiple Access Protocal
Multiple Access Protocal
 
multiplexing
multiplexingmultiplexing
multiplexing
 
Icmp
IcmpIcmp
Icmp
 
Tcp Congestion Avoidance
Tcp Congestion AvoidanceTcp Congestion Avoidance
Tcp Congestion Avoidance
 
TCP congestion control
TCP congestion controlTCP congestion control
TCP congestion control
 
Switching
SwitchingSwitching
Switching
 
Flow control main
Flow control mainFlow control main
Flow control main
 
M.A.C (Medium Access Control)
M.A.C (Medium Access Control)M.A.C (Medium Access Control)
M.A.C (Medium Access Control)
 

Destaque

Transport layer (computer networks)
Transport layer (computer networks)Transport layer (computer networks)
Transport layer (computer networks)Fatbardh Hysa
 
Transport protocols
Transport protocolsTransport protocols
Transport protocolsOnline
 
Network Fundamentals: Ch4 - Transport Layer
Network Fundamentals: Ch4 - Transport LayerNetwork Fundamentals: Ch4 - Transport Layer
Network Fundamentals: Ch4 - Transport LayerAbdelkhalik Mosa
 
transport layer
transport layer transport layer
transport layer usman19
 
Transport layer
Transport layerTransport layer
Transport layersteffy1996
 
CCNAv5 - S1: Chapter 7 - Transport Layer
CCNAv5 - S1: Chapter 7 - Transport LayerCCNAv5 - S1: Chapter 7 - Transport Layer
CCNAv5 - S1: Chapter 7 - Transport LayerVuz Dở Hơi
 
the transport layer
the transport layerthe transport layer
the transport layertumetr1
 
Tcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport LayerTcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport Layertmavroidis
 
Leaky bucket algorithm
Leaky bucket algorithmLeaky bucket algorithm
Leaky bucket algorithmUmesh Gupta
 
Flow & Error Control
Flow & Error ControlFlow & Error Control
Flow & Error Controltameemyousaf
 

Destaque (20)

Transport layer (computer networks)
Transport layer (computer networks)Transport layer (computer networks)
Transport layer (computer networks)
 
Transport Layer
Transport LayerTransport Layer
Transport Layer
 
Transport Layer
Transport LayerTransport Layer
Transport Layer
 
Transport Protocols
Transport ProtocolsTransport Protocols
Transport Protocols
 
Transport layer
Transport layer Transport layer
Transport layer
 
Transport protocols
Transport protocolsTransport protocols
Transport protocols
 
transport layer
transport layertransport layer
transport layer
 
Network Fundamentals: Ch4 - Transport Layer
Network Fundamentals: Ch4 - Transport LayerNetwork Fundamentals: Ch4 - Transport Layer
Network Fundamentals: Ch4 - Transport Layer
 
Quality of Service
Quality of ServiceQuality of Service
Quality of Service
 
transport layer
transport layer transport layer
transport layer
 
Transport layer
Transport layerTransport layer
Transport layer
 
Transport layer
Transport layerTransport layer
Transport layer
 
CCNAv5 - S1: Chapter 7 - Transport Layer
CCNAv5 - S1: Chapter 7 - Transport LayerCCNAv5 - S1: Chapter 7 - Transport Layer
CCNAv5 - S1: Chapter 7 - Transport Layer
 
the transport layer
the transport layerthe transport layer
the transport layer
 
Transport layer
Transport layerTransport layer
Transport layer
 
Tcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport LayerTcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport Layer
 
S.m.t.p
S.m.t.pS.m.t.p
S.m.t.p
 
Leaky bucket algorithm
Leaky bucket algorithmLeaky bucket algorithm
Leaky bucket algorithm
 
Flow & Error Control
Flow & Error ControlFlow & Error Control
Flow & Error Control
 
Smtp
SmtpSmtp
Smtp
 

Semelhante a Transport layer

Chapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxChapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxGirT2
 
UDP and TCP Protocol & Encrytion and its algorithm
UDP and TCP Protocol & Encrytion and its algorithmUDP and TCP Protocol & Encrytion and its algorithm
UDP and TCP Protocol & Encrytion and its algorithmAyesha Tahir
 
UDP and TCP header.ppt
UDP and TCP header.pptUDP and TCP header.ppt
UDP and TCP header.pptnehayarrapothu
 
Mobile computing unit-5
Mobile computing unit-5Mobile computing unit-5
Mobile computing unit-5Ramesh Babu
 
Computer Communication Networks- TRANSPORT LAYER PROTOCOLS
Computer Communication Networks- TRANSPORT LAYER PROTOCOLSComputer Communication Networks- TRANSPORT LAYER PROTOCOLS
Computer Communication Networks- TRANSPORT LAYER PROTOCOLSKrishna Nanda
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer servicesMelvin Cabatuan
 
Group 3 Presen.pptx
Group 3 Presen.pptxGroup 3 Presen.pptx
Group 3 Presen.pptxStudyvAbhi
 
Unit 4-Transport Layer Protocols-3.pptx
Unit 4-Transport Layer Protocols-3.pptxUnit 4-Transport Layer Protocols-3.pptx
Unit 4-Transport Layer Protocols-3.pptxDESTROYER39
 
Unit 4-Transport Layer Protocols.pptx
Unit 4-Transport Layer Protocols.pptxUnit 4-Transport Layer Protocols.pptx
Unit 4-Transport Layer Protocols.pptxsarosh32
 
Web and internet technology notes for BCA students
Web and internet technology notes for BCA studentsWeb and internet technology notes for BCA students
Web and internet technology notes for BCA studentsnawejakhatar10063
 
Transport Layer [Autosaved]
Transport Layer [Autosaved]Transport Layer [Autosaved]
Transport Layer [Autosaved]Ram Dutt Shukla
 

Semelhante a Transport layer (20)

Chapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxChapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptx
 
UDP and TCP Protocol & Encrytion and its algorithm
UDP and TCP Protocol & Encrytion and its algorithmUDP and TCP Protocol & Encrytion and its algorithm
UDP and TCP Protocol & Encrytion and its algorithm
 
UDP and TCP header.ppt
UDP and TCP header.pptUDP and TCP header.ppt
UDP and TCP header.ppt
 
CN UNIT IV ..pptx
CN UNIT IV ..pptxCN UNIT IV ..pptx
CN UNIT IV ..pptx
 
Week10 transport
Week10 transportWeek10 transport
Week10 transport
 
Unit 5.Transport Layer.pptx
Unit 5.Transport Layer.pptxUnit 5.Transport Layer.pptx
Unit 5.Transport Layer.pptx
 
Transport layer protocol
Transport layer protocolTransport layer protocol
Transport layer protocol
 
Mobile computing unit-5
Mobile computing unit-5Mobile computing unit-5
Mobile computing unit-5
 
Computer Communication Networks- TRANSPORT LAYER PROTOCOLS
Computer Communication Networks- TRANSPORT LAYER PROTOCOLSComputer Communication Networks- TRANSPORT LAYER PROTOCOLS
Computer Communication Networks- TRANSPORT LAYER PROTOCOLS
 
TCP Vs UDP
TCP Vs UDP TCP Vs UDP
TCP Vs UDP
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer services
 
07 coms 525 tcpip - udp
07    coms 525 tcpip - udp07    coms 525 tcpip - udp
07 coms 525 tcpip - udp
 
Group 3 Presen.pptx
Group 3 Presen.pptxGroup 3 Presen.pptx
Group 3 Presen.pptx
 
計概
計概計概
計概
 
Unit 4-Transport Layer Protocols-3.pptx
Unit 4-Transport Layer Protocols-3.pptxUnit 4-Transport Layer Protocols-3.pptx
Unit 4-Transport Layer Protocols-3.pptx
 
Unit 4-Transport Layer Protocols.pptx
Unit 4-Transport Layer Protocols.pptxUnit 4-Transport Layer Protocols.pptx
Unit 4-Transport Layer Protocols.pptx
 
Tcp3 wayhandshakeprocess
Tcp3 wayhandshakeprocessTcp3 wayhandshakeprocess
Tcp3 wayhandshakeprocess
 
TCP/IP Basics
TCP/IP BasicsTCP/IP Basics
TCP/IP Basics
 
Web and internet technology notes for BCA students
Web and internet technology notes for BCA studentsWeb and internet technology notes for BCA students
Web and internet technology notes for BCA students
 
Transport Layer [Autosaved]
Transport Layer [Autosaved]Transport Layer [Autosaved]
Transport Layer [Autosaved]
 

Mais de Sisir Ghosh

ASP.NET Session 2
ASP.NET Session 2ASP.NET Session 2
ASP.NET Session 2Sisir Ghosh
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3Sisir Ghosh
 
ASP.NET Session 4
ASP.NET Session 4ASP.NET Session 4
ASP.NET Session 4Sisir Ghosh
 
ASP.NET Session 5
ASP.NET Session 5ASP.NET Session 5
ASP.NET Session 5Sisir Ghosh
 
ASP.NET Session 6
ASP.NET Session 6ASP.NET Session 6
ASP.NET Session 6Sisir Ghosh
 
ASP.NET Session 7
ASP.NET Session 7ASP.NET Session 7
ASP.NET Session 7Sisir Ghosh
 
ASP.NET Session 8
ASP.NET Session 8ASP.NET Session 8
ASP.NET Session 8Sisir Ghosh
 
ASP.NET Session 9
ASP.NET Session 9ASP.NET Session 9
ASP.NET Session 9Sisir Ghosh
 
ASP.NET Session 10
ASP.NET Session 10ASP.NET Session 10
ASP.NET Session 10Sisir Ghosh
 
ASP.NET Session 11 12
ASP.NET Session 11 12ASP.NET Session 11 12
ASP.NET Session 11 12Sisir Ghosh
 
ASP.NET Session 13 14
ASP.NET Session 13 14ASP.NET Session 13 14
ASP.NET Session 13 14Sisir Ghosh
 
ASP.NET Session 16
ASP.NET Session 16ASP.NET Session 16
ASP.NET Session 16Sisir Ghosh
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2Sisir Ghosh
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1Sisir Ghosh
 
Network security
Network securityNetwork security
Network securitySisir Ghosh
 
Module ii physical layer
Module ii physical layerModule ii physical layer
Module ii physical layerSisir Ghosh
 
Error detection and correction
Error detection and correctionError detection and correction
Error detection and correctionSisir Ghosh
 
Overview of data communication and networking
Overview of data communication and networkingOverview of data communication and networking
Overview of data communication and networkingSisir Ghosh
 
Application layer
Application layerApplication layer
Application layerSisir Ghosh
 

Mais de Sisir Ghosh (20)

ASP.NET Session 2
ASP.NET Session 2ASP.NET Session 2
ASP.NET Session 2
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3
 
ASP.NET Session 4
ASP.NET Session 4ASP.NET Session 4
ASP.NET Session 4
 
ASP.NET Session 5
ASP.NET Session 5ASP.NET Session 5
ASP.NET Session 5
 
ASP.NET Session 6
ASP.NET Session 6ASP.NET Session 6
ASP.NET Session 6
 
ASP.NET Session 7
ASP.NET Session 7ASP.NET Session 7
ASP.NET Session 7
 
ASP.NET Session 8
ASP.NET Session 8ASP.NET Session 8
ASP.NET Session 8
 
ASP.NET Session 9
ASP.NET Session 9ASP.NET Session 9
ASP.NET Session 9
 
ASP.NET Session 10
ASP.NET Session 10ASP.NET Session 10
ASP.NET Session 10
 
ASP.NET Session 11 12
ASP.NET Session 11 12ASP.NET Session 11 12
ASP.NET Session 11 12
 
ASP.NET Session 13 14
ASP.NET Session 13 14ASP.NET Session 13 14
ASP.NET Session 13 14
 
ASP.NET Session 16
ASP.NET Session 16ASP.NET Session 16
ASP.NET Session 16
 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
Routing
RoutingRouting
Routing
 
Network security
Network securityNetwork security
Network security
 
Module ii physical layer
Module ii physical layerModule ii physical layer
Module ii physical layer
 
Error detection and correction
Error detection and correctionError detection and correction
Error detection and correction
 
Overview of data communication and networking
Overview of data communication and networkingOverview of data communication and networking
Overview of data communication and networking
 
Application layer
Application layerApplication layer
Application layer
 

Último

INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...DhatriParmar
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17Celine George
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research DiscourseAnita GoswamiGiri
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 

Último (20)

INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
 
How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research Discourse
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 

Transport layer

  • 1. Transport Layer 1. Process-to-Process delivery Real communication takes place between two processes (application programs). However, at any moment, several processes may be running on the source host and several on the destination host. To complete the delivery, we need a mechanism to deliver data from one of these processes running on the source host to the corresponding process running on the destination host. The transport layer is responsible for process-to-process delivery-the delivery of a packet, part of a message, from one process to another (fig. 1.1.1). Two processes communicate in a client/server relationship. Fig. 1.1.1 Process-to-Process delivery Client/Server Paradigm Although there are several ways to achieve process-to-process communication, the most common one is through the client/server paradigm. A process on the local host, called a client, needs services from a process usually on the remote host, called a server. Both processes (client and server) have the same name. For example, to get the day and time from a remote machine, we need a Daytime client process running on the local host and a Daytime server process running on a remote machine. 1.1 Addressing in transport layer Whenever we need to deliver something to one specific destination among many, we need an address. A frame in the data link layer needs a destination MAC address for delivery and a source address for the next node's reply. At the network layer, we need an IP address to choose one host among millions. A datagram in the network layer needs a destination IP address for delivery and a source IP address for the destination's reply. At the transport layer, we need a transport layer address, called a port number, to choose among multiple processes running on the destination host. The destination port number is needed for delivery; the source port number is needed for the reply. In the Internet model, the port numbers are 16-bit integers between 0 and 65,535. The client program defines itself with a port number, chosen randomly by the transport layer software running on the client host. This is the ephemeral port number. Internet Assigned Number Authority (IANA) has divided the addresses in three ranges:
  • 2. Well-known ports: The ports in the range from 0 to 1023 are assigned and controlled by IANA. These port numbers are commonly used as universal port numbers in the servers for the convenience of many clients the servers serve. Registered ports: Registered ports in the range from 1024 to 49151 are not assigned or controlled by IANA. However, they can only be registered with IANA to avoid duplication. Dynamic ports: Dynamic ports (49152 to 65535) are neither controlled by IANA nor need to be registered. They can be defined at the client site and chosen randomly by the transport layer software. Well-known ports used by UDP
  • 3. 1.1.1 Socket Addresses Process-to-process delivery needs two identifiers, IP address and the port number, at each end to make a connection. The combination of an IP address and a port number is called a socket address. The client socket address defines the client process uniquely just as the server socket address defines the server process uniquely (see Figure 1.1.2). A transport layer protocol needs a pair of socket addresses: the client socket address and the server socket address. These four pieces of information are part of the IP header and the transport layer protocol header. The IP header contains the IP addresses; the UDP or TCP header contains the port numbers. Figure 1.1.2 Socket address 1.1.2 Connectionless Versus Connection-Oriented Service A transport layer protocol can either be connectionless or connection-oriented. Connectionless Service In a connectionless service, the packets are sent from one party to another with no need for connection establishment or connection release. The packets are not numbered; they may be delayed or lost or may arrive out of sequence. There is no acknowledgment either. We will see shortly that one of the transport layer protocols in the Internet model, UDP, is connectionless. Connection-Oriented Service In a connection-oriented service, a connection is first established between the sender and the receiver. Data are transferred. At the end, the connection is released. 1.1.3 Reliable Versus Unreliable The transport layer service can be reliable or unreliable. If the application layer program needs reliability, we use a reliable transport layer protocol by implementing flow and error control at the transport layer. This means a slower and more complex service. On the other hand, if the application program does not need reliability because it uses its own flow and error control mechanism or it needs fast service or the nature of the service does not demand flow and error control (real-time applications), then an unreliable protocol can be used. Reliability at the data link layer is between two nodes; we need reliability between two ends. Because the network layer in the Internet is unreliable (best-effort delivery), we need to implement reliability at the transport layer. To understand that error control at the data link layer does not guarantee error control at the transport layer, see the Figure 1.1.3. Figure 1.1.3
  • 4. 1.2 Protocols Transport Layer The original TCP/IP protocol suite specifies two protocols for the transport layer: UDP and TCP. 1.2.1 User Datagram Protocol (UDP) The User Datagram Protocol (UDP) is called a connectionless, unreliable transport protocol. It does not add anything to the services of IP except to provide process-to-process communication instead of host-to-host communication. Also, it performs very limited error checking. UDP is a very simple protocol using a minimum of overhead. If a process wants to send a small message and does not care much about reliability, it can use UDP. In UNIX, the well-known ports are stored in a file called /etc/services. Each line in this file gives the name of the server and the well-known port number. We can use the grep utility to extract the line corresponding to the desired application. UDP Datagram The UDP datagram format is shown in Fig. 1.2.1. A brief description of different fields of the datagram are given below: Fig. 1.2.1 UDP Datagram Format Source port (16 bits): It defines the port number of the application program in the host of the sender Destination port (16 bits): It defines the port number of the application program in the host of the receiver Length: This is a 16-bit field that defines the total length of the user datagram, header plus data. The 16 bits can define a total length of 0 to 65,535 bytes. However, the total length needs to be much less because a UDP user datagram is stored in an IP datagram with a total length of 65,535 bytes. UDP length = IP length - IP header's length Checksum: This field is used to detect errors over the entire user datagram (header plus data). It is optional, 0 in case it is not in use Characteristics of the UDP Key characteristics of UDP are given below: UDP provides an unreliable connectionless delivery service using IP to transport messages between two processes UDP messages can be lost, duplicated, delayed and can be delivered out of order UDP is a thin protocol, which does not add significantly to the functionality of IP It cannot provide reliable stream transport service
  • 5. Use of UDP The following lists some uses of the UDP protocol: UDP is suitable for a process that requires simple request-response communication with little concern for flow and error control. It is not usually used for a process such as FTP that needs to send bulk data . UDP is suitable for a process with internal flow and error control mechanisms. For example, the Trivial File Transfer Protocol (TFTP) process includes flow and error control. It can easily use UDP. UDP is a suitable transport protocol for multicasting. Multicasting capability is embedded in the UDP software but not in the TCP software. UDP is used for management processes such as SNMP. UDP is used for some route updating protocols such as Routing Information Protocol (RIP) The limitations can be overcome by using connection-oriented transport layer protocol known as Transmission Control Protocol (TCP), which is presented in the following section. 1.3 Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) like UDP is a process-to-process (program-to-program) protocol. TCP, therefore, like UDP, uses port numbers. Unlike UDP, TCP is a connection oriented protocol; it creates a virtual connection between two TCPs to send data. In addition, TCP uses flow and error control mechanisms at the transport level. In brief, TCP is called a connection-oriented, reliable transport protocol. It adds connection- oriented and reliability features to the services of IP. TCP Services Process-to-Process Communication TCP provides process-to-process communication using port numbers. Stream Delivery Service TCP is a stream-oriented protocol. TCP allows the sending process to deliver data as a stream of bytes and allows the receiving process to obtain data as a stream of bytes. TCP creates an environment in which the two processes seem to be connected by an imaginary "tube" that carries their data across the Internet. Sending and Receiving Buffers The receiving processes may not write or read data at the same speed, TCP needs buffers for storage. There are two buffers, the sending buffer and the receiving buffer, one for each direction. Segments TCP groups a number of bytes together into a packet called a segment. TCP adds a header to each segment (for control purposes) and delivers the segment to the IP layer for transmission. The segments are encapsulated in IP datagrams and transmitted. Full-Duplex Communication TCP offers full-duplex service, in which data can flow in both directions at the same time. Each TCP then has a sending and receiving buffer, and segments move in both directions. Connection-Oriented Service TCP, unlike UDP, is a connection-oriented protocol. When a process at site A wants to send and receive data from another process at site B, the following occurs: 1. The two TCPs establish a connection between them.
  • 6. 2. Data are exchanged in both directions. 3. The connection is terminated. This is a virtual connection, not a physical connection. The TCP segment is encapsulated in an IP datagram and can be sent out of order, or lost, or corrupted, and then resent. Each may use a different path to reach the destination. Reliable Service TCP is a reliable transport protocol. It uses an acknowledgment mechanism to check the safe and sound arrival of data. TCP Datagram format The TCP datagram format is shown in Fig. 1.3.1. A brief explanation of the functions of different fields are given below: Source port (16 bits): It defines the port number of the application program in the host of the sender Destination port (16 bits): It defines the port number of the application program in the host of the receiver Sequence number (32 bits): It conveys the receiving host which octet in this sequence comprises the first byte in the segment Acknowledgement number (32 bits): This specifies the sequence number of the next octet that receiver expects to receive HLEN (4 bits): This field specifies the number of 32-bit words present in the TCP header Control flag bits (6 bits): URG: Urgent pointer ACK: Indicates whether acknowledge field is valid PSH: Push the data without buffering RST: Resent the connection SYN: Synchronize sequence numbers during connection establishment FIN: Terminate the connection Window (16 bits): Specifies the size of window Checksum (16 bits): Checksum used for error detection. User pointer (16 bits): Used only when URG flag is valid Options: Optional 40 bytes of information Fig. 1.3.1 TCP Datagram format
  • 7. The well-known ports used by TCP are given in Table 1.3.2 and the three types of addresses used in TCP/IP are shown in Fig. 1.3.3. Table 1.3.2 Well-known ports used by TCP Fig. 1.3.3 Three types of addresses used in TCP/IP Connection Establishment The connection establishment in TCP is called three way handshaking. An application program, called the client, wants to make a connection with another application program, called the server, using TCP as the transport layer protocol. The server program tells its TCP that it is ready to accept a connection. This is called a request for a passive open. The client program issues a request for an active open. A client that wishes to connect to an open server tells its TCP that it needs to be connected to that particular server. TCP can now start the three-way handshaking process as shown in Figure 1.3.4 The client sends the first segment, a SYN segment, in which only the SYN flag is set. This segment is for synchronization of sequence numbers. It consumes one sequence number. When the data transfer starts, the sequence number is incremented by 1.
  • 8. The server sends the second segment, a SYN +ACK segment, with 2 flag bits set: SYN and ACK. This segment has a dual purpose. It is a SYN segment for communication in the other direction and serves as the acknowledgment for the SYN segment. It consumes one sequence number. The client sends the third segment. This is just an ACK segment. It acknowledges the receipt of the second segment with the ACK flag and acknowledgment number field. Note that the sequence number in this segment is the same as the one in the SYN segment; the ACK segment does not consume any sequence numbers. Figure 1.3.4 Connection establishment using three-way handshaking Connection Termination Similarly for connection termination, a three-way handshaking protocol is necessary for termination of connection in both directions as shown in Fig. 1.3.5. The client TCP, after receiving a close command from the client process, sends the first segment, a FIN segment in which the FIN flag is set. The server TCP, after receiving the FIN segment, informs its process of the situation and sends the second segment, a FIN +ACK segment, to confirm the receipt of the FIN segment from the client and at the same time to announce the closing of the connection in the other direction. The client TCP sends the last segment, an ACK segment, to confirm the receipt of the FIN segment from the TCP server. This segment contains the acknowledgment number, which is 1 plus the sequence number received in the FIN segment from the server. This segment cannot carry data and consumes no sequence numbers. Fig. 1.3.5 Connection termination using three-way handshaking
  • 9. 2. Congestion Control As Internet can be considered as a Queue of packets, where transmitting nodes are constantly adding packets and some of them (receiving nodes) are removing packets from the queue. So, consider a situation where too many packets are present in this queue (or internet or a part of internet), such that constantly transmitting nodes are pouring packets at a higher rate than receiving nodes are removing them. This degrades the performance, and such a situation is termed as Congestion. Main reason of congestion is more number of packets into the network than it can handle. So, the objective of congestion control can be summarized as to maintain the number of packets in the network below the level at which performance falls off dramatically. 2.1 Causes of Congestion Congestion can occur due to several reasons. If there is insufficient memory to hold these packets, then packets will be lost (dropped). Adding more memory also may not help in certain situations. If router have an infinite amount of memory even then instead of congestion being reduced, it gets worse; because by the time packets gets at the head of the queue, to be dispatched out to the output line, they have already timed-out (repeatedly), and duplicates may also be present. Slow processors also cause Congestion. If the router CPU is slow at performing the task required for them (Queuing buffers, updating tables, reporting any exceptions etc.), queue can build up even if there is excess of line capacity. Low-Bandwidth lines can also cause congestion. The major cause of congestion is often the bursty nature of traffic. 2.2 Effects of Congestion Congestion affects two vital parameters of the network performance, namely throughput and delay. In simple terms, the throughput can be defined as the percentage utilization of the network capacity. Figure 2.1.1(a) shows how throughput is affected as offered load increases. Initially throughput increases linearly with offered load, because utilization of the network increases. However, as the offered load increases beyond certain limit, say 60% of the capacity of the network, the throughput drops. If the offered load increases further, a point is reached when not a single packet is delivered to any destination, which is commonly known as deadlock situation. The delay also increases with offered load, as shown in Fig. 2.1.1 (b). And no matter what technique is used for congestion control, the delay grows without bound as the load approaches the capacity of the system. It may be noted that initially there is longer delay when congestion control policy is applied. However, the network without any congestion control will saturate at a lower offered load.
  • 10. (a) (b) Figure 2.1.1 (a) Effect of congestion on throughput (b) Effect of congestion on delay 2.3 Congestion Control Techniques Congestion control refers to the mechanisms and techniques used to control congestion and keep the traffic below the capacity of the network. As shown in Fig. 2.1.2, the congestion control techniques can be broadly classified two broad categories: Open loop: Protocols to prevent or avoid congestion, ensuring that the system (or network under consideration) never enters a Congested State. Close loop: Protocols that allow system to enter congested state, detect it, and remove it. Fig. 2.1.2 Congestion control categories Open-Loop Congestion Control In open-loop congestion control, policies are applied to prevent congestion before it happens. In these mechanisms, congestion control is handled by either the source or the destination. Retransmission Policy Retransmission is sometimes unavoidable. If the sender feels that a sent packet is lost or corrupted, the packet needs to be retransmitted. Retransmission in general may increase congestion in the network. Window Policy The type of window at the sender may also affect congestion. The Selective Repeat window is better than the Go-Back-N window for congestion control. Acknowledgment Policy
  • 11. The acknowledgment policy imposed by the receiver may also affect congestion. If the receiver does not acknowledge every packet it receives, it may slow down the sender and help prevent congestion. Discarding Policy A good discarding policy by the routers may prevent congestion and at the same time may not harm the integrity of the transmission. Admission Policy An admission policy, which is a quality-of-service mechanism, can also prevent congestion in virtual-circuit networks. Switches in a flow first check the resource requirement of a flow before admitting it to the network. A router can deny establishing a virtual circuit connection if there is congestion in the network or if there is a possibility of future congestion. Closed-Loop Congestion Control Closed-loop congestion control mechanisms try to alleviate congestion after it happens. Several mechanisms have been used by different protocols. Backpressure The technique of backpressure refers to a congestion control mechanism in which a congested node stops receiving data from the immediate upstream node or nodes. This may cause the upstream node or nodes to become congested, and they, in turn, reject data from their upstream nodes or nodes. And so on. Choke Packet A choke packet is a packet sent by a node to the source to inform it of congestion. In backpressure, the warning is from one node to its upstream node, although the warning may eventually reach the source station. In the choke packet method, the warning is from the router, which has encountered congestion, to the source station directly. The intermediate nodes through which the packet has traveled are not warned. Explicit and implicit Signaling In the explicit approach, special packets are sent back to the sources to curtail down the congestion. While in implicit approach, the source itself acts pro-actively and tries to deduce the existence of congestion by making local observations. 3. QUALITY OF SERVICE Quality of service (QoS) is an internetworking issue. 3.1 Techniques to improve the quality of service A. Scheduling Packets from different flows arrive at a switch or router for processing. A good scheduling technique treats the different flows in a fair and appropriate manner. Several scheduling techniques are designed to improve the quality of service. We discuss three of them here: FIFO queuing, priority queuing, and weighted fair queuing. FIFO Queuing In first-in, first-out (FIFO) queuing, packets wait in a buffer (queue) until the node (router or switch) is ready to process them. If the average arrival rate is higher than the average processing rate, the queue will fill up and new packets will be discarded. Priority Queuing In priority queuing, packets are first assigned to a priority class. Each priority class has its own queue. The packets in the highest-priority queue are processed first. Packets in the lowest- priority queue are processed last. A priority queue can provide better QoS than the
  • 12. FIFO queue because higher priority traffic, such as multimedia, can reach the destination with less delay. Weighted Fair Queuing In this technique, the packets are still assigned to different classes and admitted to different queues. The queues, however, are weighted based on the priority of the queues; higher priority means a higher weight. The system processes packets in each queue in a round-robin fashion with the number of packets selected from each queue based on the corresponding weight. B. Traffic Shaping Traffic shaping is a mechanism to control the amount and the rate of the traffic sent to the network. Two techniques can shape traffic: leaky bucket and token bucket. Leaky Bucket Algorithm Consider a Bucket with a small hole at the bottom, whatever may be the rate of water pouring into the bucket, the rate at which water comes out from that small hole is constant. Once the bucket is full, any additional water entering it spills over the sides and is lost (i.e. it doesn’t appear in the output stream through the hole underneath). The same idea of leaky bucket can be applied to packets, as shown in Fig. 3.1.1. Conceptually each network interface contains a leaky bucket. And the following steps are performed: When the host has to send a packet, the packet is thrown into the bucket. The bucket leaks at a constant rate, meaning the network interface transmits packets at a constant rate. Bursty traffic is converted to a uniform traffic by the leaky bucket. In practice the bucket is a finite queue that outputs at a finite rate. This arrangement can be simulated in the operating system or can be built into the hardware. Implementation of this algorithm is easy and consists of a finite queue. Whenever a packet arrives, if there is room in the queue it is queued up and if there is no room then the packet is discarded. Fig. 3.1.1 Leaky bucket
  • 13. Token Bucket Algorithm The leaky bucket algorithm described above, enforces a rigid pattern at the output stream, irrespective of the pattern of the input. For many applications it is better to allow the output to speed up somewhat when a larger burst arrives than to loose the data. Token Bucket algorithm provides such a solution. In this algorithm leaky bucket holds token, generated at regular intervals. Main steps of this algorithm can be described as follows: In regular intervals tokens are thrown into the bucket. The bucket has a maximum capacity. If there is a ready packet, a token is removed from the bucket, and the packet is send. If there is no token in the bucket, the packet cannot be send. Figure 3.1.2 shows the two scenarios before and after the tokens present in the bucket have been consumed. In Fig. 3.1.2(a) the bucket holds two tokens, and three packets are waiting to be sent out of the interface, in Fig. 3.1.2(b) two packets have been sent out by consuming two tokens, and 1 packet is still left. The token bucket algorithm is less restrictive than the leaky bucket algorithm, in a sense that it allows bursty traffic. However, the limit of burst is restricted by the number of tokens available in the bucket at a particular instant of time. Figure 3.1.2(a) Token bucket holding two tokens, before packets are send out, (b) Token bucket after two packets are send, one packet still remains as no token is left The implementation of basic token bucket algorithm is simple; a variable is used just to count the tokens. This counter is incremented every t seconds and is decremented whenever a packet is sent. Whenever this counter reaches zero, no further packet is sent out as shown in Fig. 3.1.3.
  • 14. Figure 3.1.3 Implementation of the Token bucket algorithm C. Resource Reservation A flow of data needs resources such as a buffer, bandwidth, CPU time, and so on. The quality of service is improved if these resources are reserved beforehand. D. Admission Control Admission control refers to the mechanism used by a router, or a switch, to accept or reject a flow based on predefined parameters called flow specifications. Before a router accepts a flow for processing, it checks the flow specifications to see if its capacity (in terms of bandwidth, buffer size, CPU speed, etc.) and its previous commitments to other flows can handle the new flow. Jitter Jitter is the variation in delay for packets belonging to the same flow. For example, if four packets depart at times 0, 1, 2, 3 and arrive at 20, 21, 22, 23, all have the same delay, 20 units of time. On the other hand, if the above four packets arrive at 21, 23, 21, and 28, they will have different delays: 21,22, 19, and 24. Q. In what way token bucket algorithm is superior to leaky bucket algorithm? Ans : The leaky bucket algorithm controls the rate at which the packets are introduced in the network, but it is very conservative in nature. Some flexibility is introduced in token bucket algorithm. In token bucket algorithm tokens are generated at each tick (up to certain limit). For an incoming packet to be transmitted, it must capture a token and the transmission takes place at the same rate. Hence some of the busty packets are transmitted at the same rate if tokens are available and thus introduces some amount of flexibility in the system. This also improves the performance.