Internet Networking Spring 2002 Tutorial 11 T/TCP (TCP extension for Transactions)

Slides:



Advertisements
Similar presentations
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Advertisements

1 Transport Protocols & TCP CSE 3213 Fall April 2015.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transmission Control Protocol (TCP)
Lecture 7 Transport Layer
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
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.
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Chapter 7 – Transport Layer Protocols
EECC694 - Shaaban #1 lec #12 Spring Internet Transport Protocols Transmission Control Protocol (TCP):Transmission Control Protocol (TCP):
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
Process-to-Process Delivery:
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.
1 Chapter Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
1 Transport Layer Computer Networks. 2 Where are we?
Networking Basics TCP/IP TRANSPORT and APPLICATION LAYER Version 3.0 Cisco Regional Networking Academy.
Copyright 2003 CCNA 1 Chapter 9 TCP/IP Transport and Application Layers By Your Name.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 3 Transport Layer.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Transport Layer: UDP, TCP
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
11 TRANSPORT LAYER PROTOCOLS Chapter 6 TCP and UDP SPX and NCP.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Process-to-Process Delivery:
Two Transport Protocols Available Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Provides unreliable transfer Requires minimal – Overhead.
Chapter 9 The Transport Layer The Internet Protocol has three main protocols that run on top of IP: two are for data, one for control.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
The Transport Layer Implementation Services Functions Protocols
5. End-to-end protocols (part 1)
Process-to-Process Delivery
TCP.
TCP Transport layer Er. Vikram Dhiman LPU.
TCP - Part I Karim El Defrawy
Transport Layer Unit 5.
Process-to-Process Delivery:
PART V Transport Layer.
PART 5 Transport Layer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Introduction to Computer Networks
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Layer 9/22/2019.
Presentation transcript:

Internet Networking Spring 2002 Tutorial 11 T/TCP (TCP extension for Transactions)

2 T/TCP - TCP for Transactions. Defined in RFC 1644 (and RFC 1379). Not a standard.

3 Transactions The current Internet protocol suit contains 2 alternative transport service protocols: –TCP - provides virtual circuit service. –UDP - provides datagram service. There is a gap between these two transport protocols and some applications like transactions fall into it. What is a transaction? –A transaction is a request sent by a client to a server along with the server reply.

4 Transactions (cont.) There are many transaction applications, where one side sends the question and the other side replies back with an answer. Some of them are as follows: –Domain Name Server (DNS). –World Wide Web: Hypertext Transfer Protocol. –Remote Procedure Call (RPC). There is the listing of the characteristics of the communication patterns typical in "transaction processing" applications: –Unsymmetrical Model –Simplex Transfers –Short Duration –Low Delay –Few Data Packets –Message Orientation

5 Transactions (cont.) IP was designed to support a variety of transport protocols. –Currently we mostly use TCP and UDP These two protocols provide very different kind of services –UDP provides unreliable datagrams –TCP provides reliable data stream –Applications using TCP are stream orientated. These applications need the ability to reliably send a stream of data between the two cooperating hosts. Telnet, FTP, Rlogin, SMTP are some examples. –Applications using UDP, many times have only a short term relationship between hosts. They send a short burst of data and require a short reply. They are transaction based. NFS,DNS,TFTP,BOOTP, SNMP are some examples.

6 Transactions with UDP A UDP transaction is a very simple transaction as seen in the figure. –The client sends a request datagram to server in 1/2 RTT time. –The server process the request in SPT time and sends back a reply datagram in 1/2 RTT time. The total transaction time is: –RTT + SPT The total number of packets for each transaction is: – 2 (request and reply). Figure: Time line of UDP Transaction

7 Transactions with UDP (cont.) Advantage: –The RTT+SPT transaction time and 2 number of packets are the possible minimum values for a transaction, in other words they are ideal and required properties for a transaction. Disadvantages: UDP has many disadvantages, which are not good for transactions –Datagrams can be lost –reordered –duplicated in other words UDP doesn't provide any reliability. Thus, each application running on UDP has to make a reliable UDP by providing sequence numbers, timeouts, retransmissions, etc. and this causes repetitions in application implementations and also it is as expensive as TCP.

8 Transactions with TCP (cont.) The total number of packets for each transaction is: 9 The transaction time is: 2*RTT+SPT. Figure: Time line for TCP transaction

9 Transactions with TCP (cont.) Advantages: TCP provides – reliable – connection-oriented –ordered –full-duplex byte stream service. Disadvantages: it has many overheads like three way handshake connection establishment (3WHS), four way handshake closing (4WHS), time-wait state and also it has to provide acknowledgments, which increases the number of packets, flow control and connection control.

10 Improved TCP To enhance the performance of TCP some alterations are done to TCP: –It is to piggyback the request with the control segments. As seen from the figure, in the first segment of the 3WHS the request and FIN are send with SYN and in the third segment the FIN is send with the ACK of SYN to the server and so on. However, although the total number of segments reduces to: 5 The total transaction time stays the same as the time for TCP. ( The reason is that still the 3WHS has to be done to prevent old duplicate segments and to initialize the SYN numbers. ) Figure: Time line for improved TCP

11 Transactions with T/TCP: T/TCP solves the problems by providing both a reliable and quick transport for transactions: As seen in the figure, –T/TCP Bypasses the 3WHS connection establishment in TCP by using the information of the old connection. –Requires only 3 segments for each transaction by piggybacking the SYN, FIN and data in the first segment and piggybacking the SYN, FIN, ACK and data in the second segment. –Bypasses the 4WHS closing in TCP (actually T/TCP does not close the connections and use the old connections). –Provides a reliable transfer only in RTT+SPT time. Figure. Time line of T/TCP transaction 1/2 RTP

12 How T/TCP establishes this improvements ? T/TCP bypasses the 3WHS by using the concept TCP Accelerated Open (TAO): –A TCP uses the cached information of the last established connection to immediately validate the new SYN segments. –If this validation fails, because there is no current cached state or the segment is an old duplicate, the 3WHS is done. Thus T/TCP does NOT eliminate the 3WHS, but does it when it is the first time when a connection is established between the hosts. –It uses 32-bit values (Connection Count), that increase monotonically with each transaction between given host pair, as the cached information.

13 New T/TCP Options T/TCP is implemented by adding three new options to the TCP header: –CC (Connection Count) – the CC option can be sent in an initial SYN segment or in other segments only if the other end send a CC or CCnew in its SYN. –Ccnew - the CCnew option can only appear in an initial SYN segment. It is sent when the client needs to perform the normal 3WHS. –Ccecho - the CCecho option can only appear in the second segment of a 3WHS. It echoes the client's CC or CCnew value and tells the client that it supports T/TCP.

14 TAO Test: For each connection, the cache contains the variables in the special tables: –CCsend = CC of data sent –CCrecv = CC of data received Each T/TCP segment carries CCsend value in CC option in TCP header Each T/TCP caches the largest valid CCrecv and CCsend for each connection. If SYN segment's CC > Cache.CCrecv, the segment is valid and accepted else normal 3WHS is done.

15 T/TCP Implementation Variables: T/TCP requires some new information to be maintained by the kernel. As seen before there is a list of variables stored by the kernel as the information of the old established connections. These variables are kept by the kernel: –tcp_ccgen: It is a 32-bit global integer containing the next CC value to use. –Per-host Cache (TAO Cache): tao_cc: Last CC received from this host in a valid SYN. tao_ccsent: The last CC sent to this host in a SYN tao_mssopt: The last MSS received from this host –Per-Connection: cc_send: CC to send with every segment on this connection. cc_recv: CC to receive from the other end in every segment t_duration: How long the connection is established (clock ticks).

16 T/TCP Implementation Variables There are three kind of tables as seen in the figure. The per-host table is kept in the cache, even if there is no current connection to that host, until the timer times out, namely they are permanent tables created when the first time a connection is established with that host. However, a per-connection table is kept as long as the connection is alive, namely they are temporary tables containing information related to the current connection. Figure: Implementation variables of T/TCP

17 T/TCP examples: Client Reboot Time line for transaction after Client Reboot

18 T/TCP examples: Next normal transaction Time line for normal T/TCP transaction

19 T/TCP examples: Server receives an old duplicate SYN Time line for a transaction where server receives an old duplicate SYN

20 T/TCP examples: Next Normal Transaction Time line for the next normal transaction after the server receives an old duplicate syn

21 T/TCP examples: S erver reboots Time line showing the transaction after the server reboots

22 Client forces a 3WHS by sending a CCnew option with its active open if –The client loses state information about the server like client reboot Server forces a 3WHS if –Server receives a SYN with a CC value that is less than the expected value - Old duplicates OR –Server loses state information about client - Server reboot OR –Server doesn't support T/TCP - backward compatibility Server echoes client's CC or CCnew option with CCecho only if the server wants to use T/TCP. Minimal T/TCP transaction of 3 segments and minimum latency RTT+SPT occurs if –Client and Server both support T/TCP AND –Have state information about each other Conclusions from the examples