tcp udp basics v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/f09_tcp_udp.pdf · file...
TRANSCRIPT
![Page 1: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/1.jpg)
TCP/UDP BasicsTCP/UDP Basics
By: Chunyan Fu, PhD, Ericsson Canada
![Page 2: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/2.jpg)
Internet Model
Application
TCP/UDP
IP
Link layer
Physical layer
![Page 3: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/3.jpg)
Transport Service Overview
� Provide service to application layer by using the
service provided by network layer
� Hide physical network
� Hide processing complexity� Hide processing complexity
� Hide different network technologies and architectures
� Provide reliable, host-to-host transport
![Page 4: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/4.jpg)
Transport layer design issues
• Addressing
• Connection Establishment
• Connection Release
• Flow Control
• Error Detection and Crash Recovery
![Page 5: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/5.jpg)
Agenda
� TCP: Transmission control protocol (RFC 793)� Addressing
� Connection Establishment
� Connection Release
� Flow Control
� Error Handling� Error Handling
� Interface and State Machine
� TCP application examples
� UDP: User datagram protocol (RFC 768)
� TCP vs. UDP
![Page 6: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/6.jpg)
TCP -- Addressing
� There are many network applications running on a host. When a packet arrive at network layer, how to know which application to send to?� Port: there are 216 = 65536 ports (0-65535) on one machine
� One port is linked to only one application
� One application may use many ports for different purposes
� e.g. FTP: 20, 21� e.g. FTP: 20, 21
� How a client knows which service uses which port? � Permanent, well-known: often used service
� 0-1023: well-known ports
� 1024-49151: registered ports
� 49152-65535: private ports
� Process server proxy and create service on-the-fly: temporary service
� Name server: for file service
![Page 7: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/7.jpg)
TCP Addressing Header Fields
![Page 8: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/8.jpg)
TCP Connection Establishment – design issue
� Connection establishment becomes tricky when the network
lose, delay and duplicate packets
� Bank example
� How to differentiate a new packet from a delayed, duplicated
packet packet
� Sequence number
� Sequence number increase for each packet
� Sequence number space issue:
� Sequence number wrap back
� A packet should avoid using a sequence number that another packet is
using
� A duplicated or delayed packet should die after a while
� IP layer already handles this issue by ‘Time To Live’ header field
![Page 9: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/9.jpg)
TCP Connection Related Header Fields
![Page 10: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/10.jpg)
TCP Connection Establishment – solution three way handshake
6-31
(a) TCP connection establishment in the normal case.
(b) Call collision.
6-31
![Page 11: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/11.jpg)
TCP Connection Release – design
options and issue (1)
� Two release method: asymmetric and symmetric
� Asymmetric release issue: possibility of losing
datadata
![Page 12: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/12.jpg)
TCP Connection Release – design
options and issue (2)
� Two army issue� No protocol can work
� One side should always take more risk
![Page 13: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/13.jpg)
TCP Connection Release – solutionThree way handshake + timeout
Host 1 Host 2
Start Timer
Start TimerStart Timer
![Page 14: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/14.jpg)
TCP Flow Control – design issue
� Speed of data sending is critical
� Too slow – type example
� waste of network resource or receiving memory
� Too fast:
� network congestion or
� receiving side overload
![Page 15: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/15.jpg)
TCP Flow Control – solution (1)
� Windows maintained by both sending and receiving hosts� Receiving side window size is decided by the available capability of
receiving host’s� Sender maintains two windows
� receiver window (got from receiving host), congestion window (to calculate)
![Page 16: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/16.jpg)
TCP Flow Control – congestion window size calculation
� slow start, reaching threshold, linear increment till timeout, recalculate threshold, slow start… till reaching receiver window size or timeout…
![Page 17: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/17.jpg)
TCP Error Handling
� Host crash and recovery
� Data error during transmission
![Page 18: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/18.jpg)
TCP Error Handling – TCP checksum
![Page 19: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/19.jpg)
TCP service primitives
![Page 20: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/20.jpg)
TCP Finite State Machine
![Page 21: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/21.jpg)
TCP application examples
� When to use TCP:
� When an application need a reliable transport
� Examples� Examples
� File Transfer Protocol : FTP (21)
� Secure Shell: SSH (22)
� Teletype Network: TELNET (23)
� Simple Mail Transfer Protocol: SMTP (25)
� Hypertext Transfer Protocol: HTTP (80)
![Page 22: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/22.jpg)
Agenda
� TCP: Transmission control protocol (RFC 793)
� UDP: User datagram protocol (RFC 768)
� UDP header
� UDP properties� UDP properties
� UDP application examples
� TCP vs. UDP
![Page 23: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/23.jpg)
UDP Header
� UDP Destination Port: identifies destination process� UDP Destination Port: identifies destination process
� UDP Source Port: optional – identifies source process
for replies, or zero
� Message Length: length of datagram in bytes, including
header and data
� Checksum: optional -- 16-bit checksum over header and
data, or zero
![Page 24: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/24.jpg)
UDP Properties
� UDP provides an unreliable datagram service
� Packets may be lost or delivered out of order
� Message split into datagrams, user sends datagrams
as packets on network layer
No buffer at either sending or receiving side � No buffer at either sending or receiving side
� Unreliable but fast
� Full duplex
� Application must deal with lost packets
![Page 25: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/25.jpg)
UDP Application Examples
� When to use UDP
� Reduce the requirement of computer resources
� The checking scheme has provided completely by the application program
� When using the Multicast or Broadcast to transfer
� The transmission of Real-time packets
� Examples
� Trivial File Transfer Protocol,TFTP
� Simple Network Management Protocol,SNMP
� Dynamic Host Configuration Protocol,DHCP
� Domain Name System,DNS
� Routing Information Protocol,RIP
� Real-Time Transport Protocol,RTP
![Page 26: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/26.jpg)
TCP vs. UDP
TCP UDP
connection-oriented connectionless
confirmed service unconfirmed service
high overhead low overheadhigh overhead low overhead(header 20 bytes) (header 8 bytes)
flow control no flow control
![Page 27: TCP UDP BASICS v1 - users.encs.concordia.causers.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf · File Transfer Protocol : FTP (21) Secure Shell: SSH (22) ... TCP UDP connection-oriented](https://reader033.vdocuments.mx/reader033/viewer/2022051105/5aad5be17f8b9a8d678e06b1/html5/thumbnails/27.jpg)
References
� A. Tanenbaum, Computer Networks, Fourth
Edition, Prentice Hall, 2003