nt1210 introduction to networking - ypw€¦ · nt1210 introduction to networking unit 10 chapter...
TRANSCRIPT
NT1210 Introduction to Networking
Unit 10Chapter 10, TCP/IP TransportChapter 10, TCP/IP Transport
ObjectivesObjectives
Id tif th j d d t k h ld f tIdentify the major needs and stakeholders for computer networks and network applications.
Compare and contrast the OSI and TCP/IP models andCompare and contrast the OSI and TCP/IP models and their applications to actual networks.
Explain the functionality and use of typical networkExplain the functionality and use of typical network protocols.
Differentiate among major types of LAN and WAN technologies and specifications and determine how each is used in a data network.
2
ObjectivesObjectives
U t k t l t it t l d t ffiUse network tools to monitor protocols and traffic characteristics.
Define how data logically moves through networksDefine how data logically moves through networks.
Compare and contrast TCP and UDP transportation techniques.techniques.
3
Transport and Application Protocols
TCP/IP T t TCP/IP d l’ t lTCP/IP Transport: TCP/IP model’s two upper layers (Application and Transport) define how applications communicate and other important pfeatures of what applications can do on network
Transport and Application Layers focus on hosts
Figure 10-1Scope of Impact for TCP/IP Layers4
Transport and Application Protocols
H t ti l U lHost perspectives on upper layers: Upper layer protocols exist in both application and OS
Application developers include Application layerApplication developers include Application layer protocol in application (e.g., Telnet)
OS vendor includes Transport protocol inside OS (e.g.,OS vendor includes Transport protocol inside OS (e.g., IE in Windows)
Figure 10-2Software Architecture of Application and Transport Layers5
Transport and Application Protocols
S i d f t hi h L O h t hServing needs of next higher Layer: On hosts, each function has needs and supplies answer to needs of other functions
Example: Web browserApplication needs to get web page; pp g p gApplication protocol takes care of it using browser application and HTTP does that by using HTTP GET command
Figure 10-3Needing and Supplying Services in TCP/IP Upper Layers6
Transport and Application Protocols
E l ti d h d A li ti d T tEncapsulation and headers: Application and Transport layer protocols use headers to do their work
Application protocol on sending host adds ApplicationApplication protocol on sending host adds Application protocol header that destination host’s Application layer protocol reads
Transport layer adds headers based on protocol used: TCP or UDP
7
Transport and Application Protocols
UDPUDP header format
TCP header format
Figure 10-4,5UDP/TCP Header Reference8
Transport and Application Protocols
S di h t dd i i l A li ti d T tSending host adds original Application and Transport layer header to data to create message; upper layer messages remain mostly unchanged as they pass through networkExample: Message from web server going the web browser; message shows TCP HTTP Data Link andbrowser; message shows TCP, HTTP, Data Link, and IP headers plus data going through route from host to host
Figure 10-6Encapsulation with Web Traffic, All Layers9
Transport and Application Protocols
IP T t l ti lIP vs. Transport encapsulation examples
Top: Purely IP view shows each LAN andshows each LAN and WAN as line with packet moving from source to destination as three steps (three hops in route)p )
Bottom: LAN switches and Telco leased line with all headers shown
Figure 10-7IP Versus Transport Perspective on Encapsulation10
Transport and Application Protocols
A li ti d th i f d T t t lApplications and their preferred Transport protocols
Figure 10-8Some Applications Using TCP, and Some Using UDP11
Transport Layer Concepts
El t f T t P t lElements of Transport ProtocolsAddressing
Connection EstablishmentConnection Establishment
Connection Release
Flow Control and BufferingFlow Control and Buffering
Multiplexing
Crash Recovery
Figure 10-3Needing and Supplying Services in TCP/IP Upper Layers12
Transport Layer Concepts
TCP R li bl i d d liTCP: Reliable, in-order deliveryCongestion control
Flow controlFlow control
Connection setup
UDP: Unreliable unordered deliveryUDP: Unreliable, unordered deliveryNo-frills, “best-effort” delivery
Delay guaranteesDelay guarantees
Bandwidth guarantees
Figure 10-3Needing and Supplying Services in TCP/IP Upper Layers13
Transport Layer Concepts
C ti t bli h t i th h d h kConnection establishment using three-way handshakeCR = CONNECTION REQUEST (a) Normal operation(a) Normal operation(b) Old CONNECTION REQUEST appearing out of nowhere(c) Duplicate CONNECTION REQUEST and duplicate ACK
14
Transport Layer Concepts
C ti lConnection release(a) Normal case of three-way handshake release
(b) Error(b) Errorcase: Final ACK lost
15
Transport Layer Concepts
Fl t l “Wi d ” d i ll iFlow control: “Window” can dynamically resize According to network conditions
According to sender’s capacityAccording to sender’s capacity
According to receiver’s capacity
http://wiki.treck.com/File:Fig1.40_Using_a_Sliding_Window_Protocol.gif16
Transport Layer Concepts
B ff iBuffering(a) Chained fixed-size buffers
(b) Chained variable-sized buffers.
(c) One large circular buffer per connection
17
Transport Layer Concepts
M lti l iMultiplexingMultiplexing at sender: Handles data from multiple sockets, adds transport header (later used for demultiplexing)Demultiplexing at receiver: Uses header info to deliver received segments to correct socket
18
Transport Layer Concepts
C h R Diff t bi ti f li t dCrash Recovery: Different combinations of client and server strategies
19
Short Break
Take 15
20
Transport Layer Port Numbers
Most host OSs allow multiprocessing which allows more than one program to be active at same time
Each active program gets share of CPU and RAM withEach active program gets share of CPU and RAM with all programs taking turns
Transport ofTransport of data packets similar
Protocol identifies correct application process on destination host and uses port to identify communication session
Figure 10-9Concept of Application-to-Application Flows Between Two Apps21
Transport Layer Port Numbers
P t b id tif li tiPort numbers identify application processes
Example: 3 TCP communication sessions with TCP port numbers; Both hosts are using TCP port 1024 so havenumbers; Both hosts are using TCP port 1024 so have to use different TCP port numbers to identify separate communication sessions
Figure 10-10Three TCP Flows with Unique TCP Ports per Host22
Transport Layer Port Numbers
P t b d t b i h h tPort numbers need to be unique on each source host because of how TCP uses destination port numberExample: Right shows destination host’s TCP software;Example: Right shows destination host s TCP software; when top segment arrives (destination port 80), Host2 looks at its list of active TCP ports to find port 80port 80
Figure 10-11Destination Host Chooses Right Destination Application Based on Destination Port23
Transport Layer Port Numbers
I iti li i ith ll k t l TInitializing servers with well known ports example: Two server software processes (web server and email server))
Web server uses HTTP (Application protocol) which uses default port of 80
Email server uses POP3 (Application protocol) which uses port 110
Figure 10-12Two Servers with Well-Known Ports Open and Listening for New Connections24
Transport Layer Port Numbers
Wh t h h ftWhat happens on server when server software registered to use specific port number?
Example using web server: Software uses its defaultExample using web server: Software uses its default setting to use port for HTTP: TCP port 80
Figure 10-13Server Initializing Well-Known Port 80 for HTTP25
Transport Layer Port Numbers
W b b ft k b h ldWeb browser software knows web servers should use port 80 by default
Email client software knows that POP3 servers useEmail client software knows that POP3 servers use TCP port 110 by default
Figure 10-14Clients Send TCP Segments to Correct Well-Known Port Numbers26
Transport Layer Port Numbers
Application Transport PortApplication Protocol
Transport Protocol
Port Number
Description
HTTP TCP 80 Used by web browsers and web servers Telnet TCP 23 Used for terminal emulation SSH TCP 22 Used for secure terminal emulation FTP TCP 20, 21 Used for file transfer DNS UDP 53 Used for name-to-IP resolution SMTP TCP 25 Used to send Email POP3 TCP 110 Used to receive EmailPOP3 TCP 110 Used to receive EmailIMAP TCP 143 Used to receive EmailSSL TCP 443 Used to encrypt data for secure transactions SNMP UDP 161 162 U d t TCP/IP t k
Table 10-1Common Application Protocols and Their Well-known Port Numbers
SNMP UDP 161, 162 Used to manage TCP/IP networks
27
Transport Layer Port Numbers
D i ll ll t d tDynamically allocated port
Figure 10-15Client Initializing a Dynamic Port Number Assigned by OS (TCP)28
Transport Layer Port Numbers
D i t i t li t t hDynamic port assignment on client computer when user opens web browser
Figure 10-16Client Initializing a Dynamic Port Number Assigned by OS (TCP)29
Transport Layer Port Numbers
IANA l t f b f ll k tIANA regulates range of numbers for well known ports, dynamic ports, and registered ports
Ranges apply to both TCP and UDPRanges apply to both TCP and UDP
Type Port Number RangeWell-known 0 - 1023R i t d 1 024 49 151Registered 1,024 – 49,151Dynamic 49,153 – 65,535
Table 10-2Well-known, Registered, and Dynamic Port Numbers30
Transport Layer Port Numbers
To deliver data TCP encapsulates data inside TCPTo deliver data, TCP encapsulates data inside TCP segmentSegment lists gsource port and destination portT b iTo begin communication process, servers initialize and start listening for new sessions fromsessions from clients
Figure 10-17Email and Web Servers Waiting for Flows31
Transport Layer Port Numbers
E l Cli t b b t t t bExample: Client opens web browser to connect to web server which creates multiple TCP sessions
Client needs three TCP port numbers one per sessionClient needs three TCP port numbers, one per session
User also checks his email which createsemail which creates fourth TCP session
Figure 10-18Four Flows with (Dynamic) Source Ports and Well-Known Destination Ports32
Transport Layer Port Numbers
F t i ith th i ti tFour returning messages with their respective port numbers
Figure 10-19Port Numbers Reversed for TCP Segments in the Opposite Direction33
Other Transport Functions: Segmentation
P k t t i t d f i i TCP/IP t kPackets restricted for size in TCP/IP network so use segmentation to break large data packages into smaller piecespMaximum Transmission Unit (MTU): Maximum size of IP packet that can be sent out network device interface (e g ro ter)(e.g., router)
Based on interface’s Data Link protocol; example: Ethernet has MTU of 1500 bytes for TCP
Figure 10-20IP MTU Concept on Ethernet Links34
Other Transport Functions: Segmentation
IP f t ti d TCP t ti l i t tIP fragmentation and TCP segmentation play important roles in TCP/IP networks
TCP on sending host breaks large data “chunks” into smallerTCP on sending host breaks large data chunks into smaller pieces when creating original TCP segments
TCP segmentation example: Web server needs to send web bj t ( i t j ) hi h i 14 600 b tobject (picture.jpg) which is 14,600 bytes
File size exactly 10 times MSS on server’s Ethernet interface so divided into 10 segments for transport
Figure 10-21Web Server Sends Web Object; TCP Segments35
Other Transport Functions: Segmentation
UDP d t UDP th t i l d UDPUDP datagram: UDP messages that include UDP header and its encapsulated data
UDP also needs to segment data: Limited to maximumUDP also needs to segment data: Limited to maximum size of each link
Example: UDP datagram MTU 1472 bytes on EthernetExample: UDP datagram MTU 1472 bytes on Ethernet link
Figure 10-22UDP Datagram Maximum Data Size on Ethernet Links36
Other Transport Functions: ConnectionOther Transport Functions: Connection Management
TCP guarantees delivery and has error recovery built inTCP guarantees delivery and has error recovery built in (connection-oriented)
To confirm destination received data, TCP usesTo confirm destination received data, TCP uses acknowledgments for each segment received with no errors
Example: Web server sends three TCP segments to web browser with sequence numbers (SEQ); client sends message back to server (ACK) stating all three segments
i d d d freceived and to send next set of segments
37
Other Transport Functions: ConnectionOther Transport Functions: Connection Management
When using TCP sender/receiver perform “handshake”When using TCP, sender/receiver perform handshakebefore exchanging data
Agree to establish connection (each knowing other willing to establish connection)
Agree on connection parameters
Figure 10-23TCP Sequence Numbers and Acknowledgement Concepts38
Other Transport Functions: ConnectionOther Transport Functions: Connection Management
Three-way handshakeThree way handshake
h i it
client state
LISTEN
server state
LISTEN
SYNbit=1, Seq=x
choose init seq num, xsend TCP SYN msg
choose init seq num, ysend TCP SYNACK
SYNSENT
SYN RCVDSYNbit=1, Seq=yACKbit=1; ACKnum=x+1
msg, acking SYN
received SYNACK(x) indicates server is live;ESTAB
SYN RCVD
ESTAB
ACKbit=1, ACKnum=y+1send ACK for SYNACK;
this segment may contain client-to-server data received ACK(y)
indicates client is live
ESTAB
39
Other Transport Functions: ConnectionOther Transport Functions: Connection Management
Congestion control: Too many sources sending too much data too fast for network to handle
Different from flow control!Different from flow control!
ManifestationsL t k t (b ff fl t t )Lost packets (buffer overflow at routers)
Long delays (queuing in router buffers)
40
Other Transport Functions: ConnectionOther Transport Functions: Connection Management
UDP: Connectionless protocolDoes not use acknowledgements
D t iDoes not use sequencing
Will not retransmit missing datagrams
Considered less reliable than TCPConsidered less reliable than TCP
Has much less overhead than TCP
M h f h TCPMuch faster than TCP
41
Other Transport Functions: Error Recovery
TCP SEQ d ACK k tTCP error recovery uses SEQ and ACK packets1. Data sent from source in TCP segments with sequence numbers
2 S t t i ACK f d ti ti ith t2. Source expects to receive ACK from destination with next sequence number
3. If source does not receive ACK with expected value or receives no ACK at all in reasonable time, retransmits TCP segments
42
Other Transport Functions: Error Recovery
Wh i i h t t b t t ll tWhen receiving host gets some, but not all segments, can send back ACK but with value that tells sender to retransmit some data
Example: Second TCP segment has bit errors that occurred during its trip through network so destination router discards TCP segment
Figure 10-24An Example with an Error; the Recovery Happens Later43
Comparing TCP and UDP
TCP RFC 793 1122 1323 2018 2581TCP RFCs: 793,1122,1323, 2018, 2581Point-to-point: One sender, one receiver Reliable, in-order byte steam: No “message boundaries”Reliable, in order byte steam: No message boundariesPipelined: TCP congestion and flow control set window size
Full duplex dataBi-directional data flow in same connectionMSS: Maximum segment size
Connection-oriented: Uses handshakingConnection oriented: Uses handshakingFlow controlled: Sender will not overwhelm receiver
44
Comparing TCP and UDP
UDP d NOT t d d li ( ti l )UDP does NOT guaranteed delivery (connectionless) so Application protocols that do not need guaranteed delivery use UDPy
Gives Application protocol designers option for less overhead
UDP header smaller than TCP headers
UDP also faster as it does not stop and wait for acknowledgements of delivery
45
Comparing TCP and UDP
C f tCommon featuresBoth connect applications
B th id i li ti d d t t tBoth provide service so application can send data to correct application on destination host
Both use port numbers in their headers
DifferencesTCP has more functions, but slower because of them
UDP faster due to less overhead, but fewer functions including no error recovery
46
Comparing TCP and UDP
Feature TCP UDPDelivering data between two applications Yes YesDelivering data between two applications Yes Yes Identifying servers using well-known ports Yes Yes Segmenting data Yes No Guaranteed delivery through error recovery Yes No In-order delivery Yes No Flow control Yes No
Table 10-3TCP and UDP Comparisons47
Summary, This Chapter…Explained the relationship between network applicationsExplained the relationship between network applications, application protocols, and transport protocols.
Gave examples of where Application and Transport layer p pp p yprotocols are implemented in a typical TCP/IP host.
Sketched the concept of an application flow occurring over a TCP/IP network.
Explained why servers often use well-known ports.
Gave examples of TCP flows using port numbers, listing the source and destination ports used.
48
Summary, This Chapter…Explained why clients often use dynamic portsExplained why clients often use dynamic ports.
Sketched the concepts of IP MTU and TCP MSS and their relationship.p
Explained how a sending TCP host segments data.
Described the basics of how TCP acknowledges dataDescribed the basics of how TCP acknowledges data and performs error recovery.
49
Questions? Comments?
50