(Kapitel 23: Congestion control and QoS översiktligt.)

Slides:



Advertisements
Similar presentations
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
Intermediate TCP/IP TCP Operation.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Transport Layer PART V.
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
TRANSPORT LAYER  Session multiplexing  Segmentation  Flow control (TCP)  Connection-oriented (TCP)  Reliability (TCP)
UNIT 07 Process – to – Process Delivery: UDP,TCP and SCTP
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Multimedie- och kommunikationssystem Föreläsning 11 Kapitel 12: Transportprotokoll. Flödesstyrning och trafikstocknings­hantering. Sliding window.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 12 Transmission Control Protocol (TCP)
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 12 Transmission Control Protocol (TCP)
1 Kyung Hee University PART 5 Transport Layer. 2 Kyung Hee University Role of position of Transport Layer  Overseeing the delivery of data from a process,
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Introduction to Networks
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Datornätverk A – lektion 13
TCP Lecture 4.
Instructor Materials Chapter 9: Transport Layer
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transmission Control Protocol (TCP)
5. End-to-end protocols (part 1)
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
TCP.
Transport Layer Transport Services Addressing
Process-to-Process Delivery
TCP.
PART 5 Transport Layer Computer Networks.
Net 221D : Computer Networks Fundamentals
TCP.
TCP Transport layer Er. Vikram Dhiman LPU.
Introduction to Networks
TCP - Part I Karim El Defrawy
CCNA 2 v3.1 Module 10 Intermediate TCP/IP
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Process-to-Process Delivery:
NT1210 Introduction to Networking
Datornätverk A – lektion 13
CPEG514 Advanced Computer Networkst
PART V Transport Layer.
PART 5 Transport Layer.
Process-to-process delivery UDP TCP SCTP
CS 1302 Computer Networks — Unit - 4 — — Transport Layer —
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
Lecture 21 and 22 5/29/2019.
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Layer 9/22/2019.
Presentation transcript:

(Kapitel 23: Congestion control and QoS översiktligt.) Kapitel 22: UDP och TCP. (Kapitel 23: Congestion control and QoS översiktligt.)

PART V Transport Layer

Position of transport layer

Transport layer duties

Chapters Chapter 22 Process-to-Process Delivery Chapter 23 Congestion Control and QoS

Process-to-Process Delivery: UDP and TCP Chapter 22 Process-to-Process Delivery: UDP and TCP

The transport layer is responsible for process-to-process delivery. Note: The transport layer is responsible for process-to-process delivery.

Figure 22.1 Types of data deliveries

Virtual Connection at the Transport Layer Router Router Server Host Client Host TCP, UDP IP Application Physical TCP, UDP IP Application Physical IP Physical IP Physical Protocol stack in the host Protocol stack in the host Protocol stack in the router

Client-Server Paradigm Used most often in Internet process-to-process communication, for example, email, web, file transfer, etc. The client process initiates the communication. The server process waits for the client to initiate communication, and responds by sending the information required. Example: Web server, email server, ftp server, etc. A firewall often stops external clients from accessing internal servers, except certain web Opposite: Peer-to-peer communication, where a program can act both as client (taking initiative) and server (responding to other).

Multiplexing and Demultiplexing Sender processes Receiver processes Web Email MP3 Web Email MP3 TCP UDP TCP UDP IP IP IP datagrams IP datagrams

22.2 UDP Port Numbers User Datagram Applications

Note: UDP is a connectionless, unreliable protocol that has no flow and error control. It uses port numbers to multiplex data from the application layer.

Table 22.1 Well-known ports used by UDP Protocol Description     7 Echo Echoes a received datagram back to the sender     9 Discard Discards any datagram that is received   11 Users Active users   13 Daytime Returns the date and the time   17 Quote Returns a quote of the day   19 Chargen Returns a string of characters   53 Nameserver Domain Name Service   67 Bootps Server port to download bootstrap information   68 Bootpc Client port to download bootstrap information   69 TFTP Trivial File Transfer Protocol 111 RPC Remote Procedure Call 123 NTP Network Time Protocol 161 SNMP Simple Network Management Protocol 162 Simple Network Management Protocol (trap)

Figure 22.10 User datagram format

Note: The calculation of checksum and its inclusion in the user datagram are optional.

Note: UDP is a convenient transport-layer protocol for applications that provide flow and error control. It is also used by multimedia applications.

22.3 TCP Port Numbers Services Sequence Numbers Segments Connection Transition Diagram Flow and Error Control Silly Window Syndrome

Table 22.2 Well-known ports used by TCP Protocol Description    7 Echo Echoes a received datagram back to the sender     9 Discard Discards any datagram that is received   11 Users Active users   13 Daytime Returns the date and the time   17 Quote Returns a quote of the day   19 Chargen Returns a string of characters   20 FTP, Data File Transfer Protocol (data connection)   21 FTP, Control File Transfer Protocol (control connection)   23 TELNET Terminal Network   25 SMTP Simple Mail Transfer Protocol   53 DNS Domain Name Server   67 BOOTP Bootstrap Protocol   79 Finger   80 HTTP Hypertext Transfer Protocol 111 RPC Remote Procedure Call

Figure 22.7 Connection establishment

Figure 22.8 Connection termination

Connection-oriented vs. Conectionless A connection-oriented service requires both sender and receiver to create a connection before any data is transferred TCP provides connection oriented service to the applications, allowing a byte stream to be delivered in order, allthough IP is a connectionless service. A connectionless service does not create a connection first but simply sends the data UDP provides connectionless service to the applications. UDP packets are called datagrams.

Figure 22.11 Stream delivery

Figure 22.12 Sending and receiving buffers

Figure 22.13 TCP segments

Example: Connection-oriented Service An analogy to the connection-oriented service is telephone conversation

Example: Connectionless Service An analogy to connectionless service is the delivery of the mail

Data-link vs. Transport Layer Data link layer Responsibile for reliability between two directly connected points Transport layer Resposibe for reliability over the internetwork Duties of the data-link layer Network 1 Network 3 Network 2 Internetwork Duties of the data-link layer Duties of the data-link layer Duties of the transport layer

Reliable vs. Unreliable Transport layer can offer Unreliable service (UDP) No guarantee that the packet will be delivered to the destination Useful especially for transmitting audio and video files where waiting for acknowledgement can be annoying for the user Reliable service (TCP) Connection establishment Connection maintenance Connection termination

User Datagram Protocol (UDP) No reliability or connection management! Serves solely as a labeling mechanism for demultiplexing at the receiver end Use predominantly by protocols that do no require the strict service guarantees offered by TCP (e.g. real-time multimedia protocols) Additional intelligence built at the application layer if needed

Transmission Control protocol (TCP) Provides a connection-oriented end-to-end (user-to-user) reliable byte stream service in both directions (full duplex) Divides a byte stream into a sequence of segments and sends them to the destination via IP Uses the destination port, source port to identify the application to which the segment is sent (multiplexing the sessions) Uses sliding window like scheme for flow control and congestion control

Connection Management Two way handshake protocol is not enough because of potential delays in either A’s request or B’s responce, as shown below. Possibility of confusion exists. A B A sends a connection request t1 A sends connection request again t2 B receives connection request B establishes a connection and sends an acknowledgement t3 A receives the acknowledgement and establishes a connection t4 A and B exchange data and eventually disconnect B receives connection request B establishes a connection and sends an acknowledgement t5 time time

Three-way Handshake Protocol for Connection Establishment A sends a connection request with seq. no. x t1 A sends connection request again with seq. no. y t2 t3 B sends acknowledgement y+1 and seq. no. z A receives the acknowledgement y+1 and sends acknowledgement z+1 t4 The connection is established t5 B sends acknowledgement x+1 and seq. no. w A does not send an acknowledgement and no connection is established t6 time time

Connection Establishment and Termination 3-way handshake used for connection establishment Randomly chosen sequence number is conveyed to the other end Similar FIN, FIN+ACK exchange used for connection termination Server does passive open Accept connection request Send acceptance Start connection Active open Send connection request SYN SYN+ACK ACK DATA The three-way handshake TCP segments are labeled with SYN. The length of data in the first two is 0

TCP’s Segments TCP treats data as a sequence of bytes to be divided and sent in segments. The size of the segment depends on the underlying physical network and on the number of bytes the sender is allowed to send (window size) Rather than numbering each segment, TCP stores the sequence number of the data byte in the segment The source and the destination each have separate sequence numbers The acknowledgement numbers are equal to the next expected sequence number

Window Management in TCP Sliding window scheme is used with variable window The window can change depending on the traffic in the network (TCP provides congestion control) The size of the window is expressed in bytes instead of packets The window size depends on the receiver’s capabilites and the congestion in the network

TCP Sliding Window segment 1 100 bytes of data numbered from 1 to 100 100 bytes of data numbered from 701 to 800, ack 101 acknowledge 801 segment 2 acknowledge 101 segment 1 100 bytes of data numbered from 101 to 200, ack 801 acknowledge 901 segment 3 100 bytes of data numbered from 801 to 900, ack 201 acknowledge 201 segment 2

Example 1 Imagine a TCP connection is transferring a file of 6000 bytes. The first byte is numbered 10010. What are the sequence numbers for each segment if data are sent in five segments with the first four segments carrying 1000 bytes and the last segment carrying 2000 bytes? Solution The following shows the sequence number for each segment: Segment 1 ==> sequence number: 10,010 (range: 10,010 to 11,009) Segment 2 ==> sequence number: 11,010 (range: 11,010 to 12,009) Segment 3 ==> sequence number: 12,010 (range: 12,010 to 13,009) Segment 4 ==> sequence number: 13,010 (range: 13,010 to 14,009) Segment 5 ==> sequence number: 14,010 (range: 14,010 to 16,009)

Note: The bytes of data being transferred in each connection are numbered by TCP. The numbering starts with a randomly generated number.

Note: The value of the sequence number field in a segment defines the number of the first data byte contained in that segment.

Note: The value of the acknowledgment field in a segment defines the number of the next byte a party expects to receive. The acknowledgment number is cumulative.

Figure 22.14 TCP segment format

Figure 22.15 Control field

Table 22.3 Description of flags in the control field URG The value of the urgent pointer field is valid. ACK The value of the acknowledgment field is valid. PSH Push the data. RST The connection must be reset. SYN Synchronize sequence numbers during connection. FIN Terminate the connection.

Figure 22.16 Three-step connection establishment

Figure 22.17 Four-step connection termination

Table 22.4 States for TCP State Description CLOSED There is no connection. LISTEN The server is waiting for calls from the client. SYN-SENT A connection request is sent; waiting for acknowledgment. SYN-RCVD A connection request is received. ESTABLISHED Connection is established. FIN-WAIT-1 The application has requested the closing of the connection. FIN-WAIT-2 The other side has accepted the closing of the connection. TIME-WAIT Waiting for retransmitted segments to die. CLOSE-WAIT The server is waiting for the application to close. LAST-ACK The server is waiting for the last acknowledgment.

Figure 22.18 State transition diagram

Note: A sliding window is used to make transmission more efficient as well as to control the flow of data so that the destination does not become overwhelmed with data. TCP’s sliding windows are byte-oriented.

Figure 22.19 Sender buffer

Figure 22.20 Receiver window

Figure 22.21 Sender buffer and sender window

Figure 22.22 Sliding the sender window

Figure 22.23 Expanding the sender window

Figure 22.24 Shrinking the sender window

Note: In TCP, the sender window size is totally controlled by the receiver window value (the number of empty locations in the receiver buffer). However, the actual window size can be smaller if there is congestion in the network.

Figure 22.25 Lost segment

Figure 22.26 Lost acknowledgment

Congestion Control and Quality of Service Chapter 23 Congestion Control and Quality of Service

23.1 Data Traffic Traffic Descriptor Traffic Profiles

Figure 23.1 Traffic descriptors

Figure 23.2 Constant-bit-rate traffic

Figure 23.3 Variable-bit-rate traffic

Figure 23.4 Bursty traffic

23.2 Congestion Network Performance

Figure 23.5 Incoming packet

Figure 23.6 Packet delay and network load

Figure 23.7 Throughput versus network load

23.3 Congestion Control Open Loop Open Loop Closed Loop

23.4 Two Examples Congestion Control in TCP Congestion Control in Frame Relay

Note: TCP assumes that the cause of a lost segment is due to congestion in the network.

Note: If the cause of the lost segment is congestion, retransmission of the segment does not remove the cause—it aggravates it.

Figure 23.8 Multiplicative decrease

23.5 Quality of Service Flow Characteristics Flow Classes

Figure 23.12 Flow characteristics

Figure 23.24 Traffic conditioner

23.6 Techniques to Improve QoS Scheduling Traffic Shaping Resource Reservation Admission Control

Figure 23.13 FIFO queue

Figure 23.14 Priority queuing

Figure 23.15 Weighted fair queuing

Figure 23.16 Leaky bucket

Figure 23.17 Leaky bucket implementation

Note: A leaky bucket algorithm shapes bursty traffic into fixed-rate traffic by averaging the data rate. It may drop the packets if the bucket is full.

Figure 23.18 Token bucket

The token bucket allows bursty traffic at a regulated maximum rate. Note: The token bucket allows bursty traffic at a regulated maximum rate.