Transport Layer
Transport Layer
23.2
Figure 23.1 Types of data deliveries
23.3
Figure 23.2 Port numbers
23.4
Figure 23.3 IP addresses versus port numbers
23.5
Figure 23.4 IANA ranges
23.6
Figure 23.5 Socket address
23.7
Figure 23.6 Multiplexing and demultiplexing
23.8
Figure 23.7 Error control
23.9
Figure 23.8 Position of UDP, TCP, and SCTP in TCP/IP suite
23.10
23-2 USER DATAGRAM PROTOCOL (UDP)
23.12
Example 23.1
23.13
Example 23.1 (continued)
SNMP uses two port numbers (161 and 162), each for a
different purpose, as we will see in Chapter 28.
23.14
Figure 23.9 User datagram format
23.15
Note
UDP length
= IP length – IP header’s length
23.16
Figure 23.10 Pseudoheader for checksum calculation
23.17
Example 23.2
23.18
Figure 23.11 Checksum calculation of a simple UDP user datagram
23.19
Example 23.2.1
22.20
Example 23.2.3
22.21
Example 23.2.3
A UDP header in hexadecimal format
06 32 00 0D 00 1C E2 17
•What is the source port number?
•1586
•What is the destination port number?
•13
•What is the total length of the user datagram?
•28 Bytes
•What is the length of the data? 20 Bytes
•(28-20)
•Is packet directed from a client to server or vice versa?
Client to Server
•What is the client process?
•Daytime
22.22
Figure 23.12 Queues in UDP
23.23
UDP features
Ex. 1: Connectionless service
Suitable for very small messages i.e. 1 message in one user datagram
A client-server application such as DNS uses the services of UDP
because a client needs to send a short request to a server
and to receive a quick response from it.
The request and response can each fit in one user datagram.
Since only one message is exchanged in each direction,
the connectionless feature is not an issue; the client or server does not
worry that messages are delivered out of order.
Ex. 2: Connectionless service (not suitable for long messages)
A client-server application such as SMTP, cannot use the services of
UDP because a user can send a long e-mail message, which may
include multimedia (images, audio, or video).
If the application uses UDP and the message does not fit in one
single user datagram, the message must be split by the application
into different user datagram’s.
Here the connectionless service may create problems. The user
datagram’s may arrive and be delivered to the receiver application
out of order.
The receiver application may not be able to reorder the pieces. This
means the connectionless service has a disadvantage for an
application program that sends long messages.
23.25
Ex. 3: Lack of error control
Assume we are downloading a very large text file from the Internet.
And we don’t want the part of the file to be missing or corrupted
when we open the file (reliable service)
The delay occurred between the delivery of the parts is not a concern
for us;
We can wait until the whole file is composed before looking at it.
In this case, UDP is not a suitable transport layer protocol.
23.26
Ex. 4: Lack of error control (suitable for real time video streaming)
Assume we are watching a real-time stream video on our computer. Such
a program is considered a long file; it is divided into many small parts and
broadcast in real time.
The parts of the message are sent one after another. If the transport layer
is supposed to resend a corrupted or lost frame, the synchronizing of the
whole transmission may be lost. The viewer suddenly sees a blank screen
and needs to wait until the second transmission arrives. This is not
tolerable.
However, if each small part of the screen is sent using one single user
datagram, the receiving UDP can easily ignore the corrupted or lost packet
and deliver the rest to the application program.
That part of the screen is blank for a very short period of the time, which
most viewers do not even notice. However, video cannot be viewed out of
order, so streaming audio, video, and voice applications that run over UDP
must reorder or drop frames that are out of sequence.
23.27
23-3 TCP
23.29
Figure 23.13 Stream delivery
23.30
Figure 23.14 Sending and receiving buffers
23.31
Figure 23.15 TCP segments
23.32
Figure 23.16 TCP segment format
23.33
Note
23.34
Example 23.3
23.35
Note
23.36
Note
23.37
Figure 23.17 Control field
23.38
Table 23.3 Description of flags in the control field
23.39
Example 23.2.4
22.40
TCP header itself is of 10 feilds as below and size may vary between 20 to 60bytes
1.Source port - 2 bytes, 2.destination port - 2 bytes, 3.SEQ NUM-4 bytes 4.ACK
NUM- 4 bytes, 5.HLEN-1 word, 6.RESERVED-6bits
7.CONTROL-6bits,8.WINDOW SIZE-2 bytes,9.CHECKSUM-2 bytes
10.URGENT POINTERS-2bytes
TCP header
05 32 00 17 00 00 00 01 00 00 00 00 50 02 07 FF 00 00 00 00
source port is 2 bytes take 05 32 = 1330
next 2 bytes as destination address 00 17 == 23 (default TCP port)
next 4 bytes as sequence number 00 00 00 01 ==1
next 4 bytes as ack 00 00 00 00 == 0
next 4 bits as HLEN 5 ==5 -- this indicates number of sets of 4 bytes which
makes the header lenght = 20bytes..
next 6 bits are reserved i.e.0 =0000and 2 bits from hex 0
next 6 bits are control bits = remaining 2 bits from hex 0 and 4 bits of 2
next 2 bytes indicate the window length 07 FF == 2047 bytes
Checksum 2 bytes 00 00 = 0
Urgent pointer 2bytes 00 00 =0
Figure 23.18 Connection establishment using three-way handshaking
23.42
Note
23.43
Note
23.44
Note
23.45
•Simultaneous Open
•SYN Flooding Attack
•Denial of Service Attack
•Solutions:
•Limit on Connection Request
•Filter request from unwanted sources
•Postpone resource allocation until the
entire connection is setup
23.46
Figure 23.19 Data transfer
23.47
Figure 23.20 Connection termination using three-way handshaking
23.48
Note
23.49
Note
23.50
Note
23.51
Figure 23.21 Half-close
23.52
TCP Datalink
Sliding Window Type Byte Oriented Frame Oriented
Sliding Window Size Variable Size Fix Size
23.53
Figure 23.22 Sliding window
23.54
Example 23.4
Solution
The value of rwnd = 5000 − 1000 = 4000. Host B can
receive only 4000 bytes of data before overflowing its
buffer. Host B advertises this value in its next segment to
A.
23.55
Example 23.5
Solution
The size of the window is the smaller of rwnd and cwnd,
which is 3000 bytes.
23.56
Example 23.6
23.57
Figure 23.23 Example 23.6
23.58
Example 24
22.59
A TCP connection is using a window size of
10,000 bytes, and the previous acknowledgement
number was 22,001.
23.60
Note
In modern implementations, a
retransmission occurs if the
retransmission timer expires or three
duplicate ACK segments have arrived.
23.62
Figure 23.24 Normal operation
23.65
Figure 23.25 Lost segment
23.66
Figure 23.26 Fast retransmission
23.67
Connection Release (2)
23.74
Table 23.4 Some SCTP applications
23.75
Figure 23.27 Multiple-stream concept
23.76
Note
23.77
Figure 23.28 Multihoming concept
23.78
Note
23.79
Note
23.80
Note
23.81
Note
23.82
Note
23.83
Figure 23.29 Comparison between a TCP segment and an SCTP packet
23.84
Note
23.85
Figure 23.30 Packet, data chunks, and streams
23.86
Note
23.87
Note
23.88
Figure 23.31 SCTP packet format
23.89
Note
23.90
Figure 23.32 General header
23.91
Table 23.5 Chunks
23.92
Note
23.93
Note
23.94
Figure 23.33 Four-way handshaking
23.95
Note
23.96
Figure 23.34 Simple data transfer
23.97
Note
23.98
Figure 23.35 Association termination
23.99
– Connection establishment delay:
Amount of time elapsing between a transport connection being
requested and its confirmation being recd.
– Connection establishment failure probability:
Probability of a connection not being established within the
maximum establishment delay time.
– Throughput:
Parameter measures the number of bytes of user data transferred
per second
– Transit delay
Measures the time between a message being sent by the transport
user on the source machine and its being received by the
transport user on the destination machine.
– Residual error ratio
Measures the number of lost of garbled messages as a fraction of
total sent
– Protection:
Transport user can specify protection against wiretappers.
– Priority:
Indicate some connections are more important than others - in case of
congestion make sure that the higher-priority connections get
serviced before the low priority ones.
– Resilience:
Probability of the transport layer itself spontaneously terminating a
connection due to internal problems or congestion.
Error Control and Flow Control (1)