Chapter Three Part - 1
Chapter Three Part - 1
1
Transport Services and Protocols
2
Transport Layer cont. ..
• The transport layer is responsible for the delivery of a message from one
process to another.
Other responsibilities of the transport layer include the following:
Service-point addressing
• Computers often run several programs at the same time.
• For this reason, source-to-destination delivery means delivery not only
from one computer to the next but also from a specific process (running
program) on one computer to a specific process (running program) on the
other.
• The transport layer header must therefore include a type of address
called a service-point address (or port address).
• The network layer gets each packet to the correct computer; the transport
layer gets the entire message to the correct process on that computer.
3
Segmentation and reassembly.
• A message is divided into transmittable segments, with each segment
containing a sequence number.
• These numbers enable the transport layer to reassemble the message
correctly upon arriving at the destination and to identify and replace
packets that were lost in transmission.
Connection control.
• The transport layer can be either connectionless or connection
oriented.
• A connectionless transport layer treats each segment as an
independent packet and delivers it to the transport layer at the
destination machine.
• A connection oriented transport layer makes a connection with the
transport layer at the destination machine first before delivering the
packets. After all the data are transferred, the connection is
terminated.
4
Flow control
• Like the data link layer, the transport layer is responsible for flow
control.
• However, flow control at this layer is performed end to end rather
than across a single link.
Error control
• Like the data link layer, the transport layer is responsible for error
control.
• However, error control at this layer is performed process-to-
process rather than across a single link.
• The sending transport layer makes sure that the entire message
arrives at the receiving transport layer without error (damage, loss,
or duplication).
• Error correction is usually achieved through retransmission.
5
Multiplexing/demultiplexing
6
7
Transport layer protocols
• The two most common Transport layer protocols of TCP/IP protocol suite are
10
Fields belonging to a TCP segment
• Source port—Indicates the port number at the source node. One example
is port 80, which is typically used to accept Web page requests from the
HTTP protocol.
• Destination port—Indicates the port number at the destination node. The
Destination port field is 16 bits long.
• Sequence number —Identifies the data segment’s position in the stream
of data segments already sent. The Sequence number field is 32 bits long.
• Acknowledgment number (ACK)—Confirms receipt of the data via a
return message to the sender. The Acknowledgment number field is 32
bits long.
• TCP header length —Indicates the length of the TCP header. This field is
four bits long.
11
• Checksum —Allows the receiving node to determine whether
the TCP segment became corrupted during transmission. The
Checksum field is 16 bits long.
• Options —Specifies special options, such as the maximum
segment size a network can handle. The size of this field can vary
between 0 and 32 bits
• Data —Contains data originally sent by the source node.
• Reserved —A 6-bit field reserved for later use
• Window —Indicates how many bytes the sender can issue to a
receiver while acknowledgment for this segment is outstanding
• Urgent pointer —Indicates a location in the data field where
urgent data resides. This field is 16 bits long.
12
Port Addressing (>netstat)
Role of Port Numbers in the TCP and UDP protocols
keep track of the various apps that are communicating
differentiate segments and datagram for each apps
How Port Numbers are assigned
Depending on whether the message is a request or a response
While server processes have static port numbers assigned to them, clients
dynamically choose a port number for each conversation
Port Addressing
Server Side /Statically assigned/
Client Side /Dynamically assigned/
When a client application sends a request to a server application, the
destination port contained in the header is the port number that is assigned to
the service daemon running on the remote host
E.g: HTTP request to a server uses
Destination port 80 / 8080
Source randomly generated 49152
13
The Internet Assigned Numbers Authority (IANA) assigns port numbers
IANA is responsible for assigning various addressing standards
14
Port Addressing: Types
Well Known Ports (0 to 1023)
reserved for services and apps
Registered Ports (1024 to 49151)
assigned to user processes or apps
Dynamic or Private/Ephemeral Ports (49152 to 65535)
assigned dynamically to client apps when initiating a connection
Some applications may use both TCP and UDP.
For example, the low overhead of UDP enables DNS to serve many
client requests very quickly.
Sometimes, however, sending the requested information may require the
reliability of TCP. In this case, the well known port number of 53 is
used by both protocols with this 15
16
Server process in TCP
Role of port numbers in establishing TCP sessions and directing
segments to destination & source
17
• UDP characteristics & types of communication for which it is
best suited
18
• Datagram Reassembly
19