CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim 03.01.2010.
-
date post
20-Dec-2015 -
Category
Documents
-
view
215 -
download
1
Transcript of CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim 03.01.2010.
Maximum Transmission Unit Maximum size of IP datagram is 65535, but the data link layer protocol generally
imposes a limit that is much smaller
For example: Ethernet frames have a maximum payload of 1500 bytes
IP datagrams encapsulated in Ethernet frame cannot be longer than 1500 bytes
The limit on the maximum IP datagram size, imposed by the data link protocol is called maximum transmission unit (MTU)
What if the size of an IP datagram exceeds the MTU?IP datagram is fragmented into smaller units.
What if the route contains networks with different MTUs?
MTUs for various data link layers: Ethernet: 1500 FDDI: 4352802.3: 1492 ATM AAL5: 9180802.5: 4464 PPP: 296
Maximum Transmission Unit Maximum size of IP datagram is 65535, but the data link layer
protocol generally imposes a limit that is much smaller
Example: Ethernet frames have a maximum payload of 1500 bytes
IP datagrams encapsulated in Ethernet frame cannot be longer than 1500 bytes
The limit on the maximum IP datagram size, imposed by the data link protocol is called maximum transmission unit (MTU)
MTUs for various data link protocols: Ethernet: 1500 FDDI: 4352802.3: 1492 ATM AAL5: 9180802.5: 4464 PPP: negotiated
IP Fragmentation
FDDIRing
RouterHost A Host B
Ethernet
MTUs: FDDI: 4352 Ethernet: 1500
• Fragmentation: • IP router splits the datagram into several datagram• Fragments are reassembled at receiver
What if the size of an IP datagram exceeds the MTU?IP datagram is fragmented into smaller units.
What if the route contains networks with different MTUs?
Where is Fragmentation done?
Fragmentation can be done at the sender or at intermediate routers
The same datagram can be fragmented several times.
Reassembly of original datagram is only done at destination hosts !!
Router
IP datagram H Fragment 1 H1Fragment 2 H2
What’s involved in Fragmentation? The following fields in the IP header are involved:
Identification When a datagram is fragmented, the identification is the same in all fragments
Flags DF bit is set: Datagram cannot be fragmented and must
be discarded if MTU is too smallMF bit set: This datagram is part of a fragment and an
additional fragment follows this one
ECNversionheaderlength
DS total length (in bytes)
Identification Fragment offset
time-to-live (TTL) protocol header checksum
0MF
DF
What’s involved in Fragmentation?
Fragment offset Offset of the payload of the current fragment in the original datagram
Total length Total length of the current fragment
ECNversionheaderlength
DS total length (in bytes)
Identification Fragment offset
time-to-live (TTL) protocol header checksum
0MF
DF
The following fields in the IP header are involved:
Example of Fragmentation A datagram with size 2400 bytes must be
fragmented according to an MTU limit of 1000 bytes
IP datagram
Router
Fragment 2Fragment 3
MTU: 1000MTU: 4000
Fragment 1
Header length: 20
Total length: 2400
Identification: 0xa428
DF flag: 0
MF flag: 0
Fragment offset: 0
Header length: 20
Total length: 996
Identification: 0xa428
DF flag: 0
MF flag: 1
fragment offset: 0
Header length: 20
Total length: 996
Identification: 0xa428
DF flag: 0
MF flag: 1
Fragment offset: 122
Header length: 20
Total length: 448
Identification: 0xa428
DF flag: 0
MF flag: 0
Fragment offset: 244
Today’s topics We move one layer up and look at the transport layer.
ApplicationLayer
NetworkLayer
Link Layer
IP
ARPHardwareInterface
RARP
Media
ICMP IGMP
TransportLayer
TCP UDP
UserProcess
UserProcess
UserProcess
UserProcess
UDP - User Datagram Protocol UDP supports unreliable transmissions of datagrams UDP merely extends the host-to-to-host delivery
service of IP datagram to an application-to-application service
The only thing that UDP adds is multiplexing and demultiplexing
UDP
IP IPIP IP IP
UDP
Applications Applications
UDP FormatIP header UDP header UDP data
UDP message length Checksum
DATA
20 bytes 8 bytes
0 15 16 31
Source Port Number Destination Port Number
• Port numbers identify sending and receiving applications (processes). Maximum port number is 216-1= 65,535
• Message Length is at least 8 bytes (I.e., Data field can be empty) and at most 65,535
• Checksum is for header (of UDP and some of the IP header fields)
Port Numbers UDP (and TCP) use port numbers to identify
applications A globally unique address at the transport layer (for
both UDP and TCP) is a tuple <IP address, port number>
There are 65,535 UDP ports per host.
IP
TCP UDP
UserProcess
Demultiplex
based on
Protocol field in IP
header
UserProcess
UserProcess
UserProcess
UserProcess
UserProcess
Demultiplex
based on
port number
TCP - Transmission Control Protocol
Reliable and in-order byte-stream service
TCP format Connection establishment Flow control Reaction to congestion
Next Lecture
TCP Format
IP header TCP header TCP data
Sequence number (32 bits)
DATA
20 bytes 20 bytes
0 15 16 31
Source Port Number Destination Port Number
Acknowledgement number (32 bits)
window sizeheaderlength
0 Flags
Options (if any)
TCP checksum urgent pointer
20 bytes• TCP segments have a 20 byte header with >= 0 bytes of data.
TCP header fields
Sequence Number (SeqNo): Sequence number is 32 bits long. So the range of SeqNo is
0 <= SeqNo <= 232 -1 4.3 Gbyte
Each sequence number identifies a byte in the byte stream
Initial Sequence Number (ISN) of a connection is set during connection establishmentQ: What are possible requirements for ISN ?
TCP header fields Acknowledgement Number (AckNo):
The AckNo contains the next SeqNo that a hosts wants to receive Example:
The acknowledgement for a segment with
sequence numbers 0-1500 is AckNo=1501
A hosts uses the Acknowlegement Number field to send acknowledgements. (If a host sends an AckNo in a segment it sets the “ACK flag”)
Acknowledgements are piggybacked, i.e.,a segment from A -> B can contain an acknowledgement for a data sent in the B -> A direction
Q: Why is piggybacking good ?
TCP header fields
Header Length ( 4bits): Length of header in 32-bit words Note that TCP header has variable length
(with minimum 20 bytes)
TCP header fields Flag bits:
URG: Urgent pointer is valid If the bit is set, the following bytes contain an
urgent message in the range:SeqNo <= urgent message <= SeqNo+urgent pointer
ACK: Acknowledgement Number is valid PSH: PUSH Flag
Notification from sender to the receiver that the receiver should pass all data that it has to the application.
Normally set by sender when the sender’s buffer is empty
TCP header fields Flag bits:
RST: Reset the connection The flag causes the receiver to reset the connection Receiver of a RST terminates the connection and
indicates higher layer application about the reset SYN: Synchronize sequence numbers
Sent in the first packet when initiating a connection FIN: Sender is finished with sending
Used for closing a connection Both sides of a connection must send a FIN
TCP header fields Window Size:
Each side of the connection advertises the window size Window size is the maximum number of bytes that a
receiver can accept. Maximum window size is 216-1= 65535 bytes
TCP Checksum: TCP checksum covers over both TCP header and TCP
data (also covers some parts of the IP header) 16-bit one’s complement
Urgent Pointer: Only valid if URG flag is set
TCP States in “Normal” Connection Lifetime
SYN (SeqNo = x)
SYN (SeqNo = y, AckNo = x + 1 )
(AckNo = y + 1 )
SYN_SENT(active open)
SYN_RCVD
ESTABLISHED
ESTABLISHED
FIN_WAIT_1(active close)
LISTEN(passive open)
FIN (SeqNo = m)
CLOSE_WAIT(passive close)
(AckNo = m+ 1 )
FIN (SeqNo = n )
(AckNo = n+1)LAST_ACK
FIN_WAIT_2
TIME_WAIT
CLOSED
Resetting Connections
Resetting connections is done by setting the RST flag
When is the RST flag set? Connection request arrives and no server
process is waiting on the destination port Abort (Terminate) a connection
Causes the receiver to throw away buffered data. Receiver does not acknowledge the RST segment