CSCI-1680 Transport Layer I

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

TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
© 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)
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
TCP 與 UDP 協定分析 第 22 組 b 陳贊羽 b 馬家驤 b 林怡賢 b 王奕棠.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
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.
Transmission Control Protocol (TCP) Basics
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.
CSCI-1680 Transport Layer I Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
CSCI-1680 Transport Layer I Based partly on lecture notes by Rodrigro Foncesa, David Mazières, Phil Levis, John Jannotti Theophilus Benson.
TCP© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transport Layer TCP and UDP IS250 Spring 2010
Gursharan Singh Tatla Transport Layer 16-May
CSCI-1680 Transport Layer I Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
TCP Lecture 13 November 13, TCP Background Transmission Control Protocol (TCP) TCP provides much of the functionality that IP lacks: reliable service.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
Transport Protocols.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
Two Transport Protocols Available Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Provides unreliable transfer Requires minimal – Overhead.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Chapter 5 Transport Layer Introduction
Introduction to Networks
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Introduction to TCP/IP networking
Chapter 3 outline 3.1 Transport-layer services
5. End-to-end protocols (part 1)
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Process-to-Process Delivery
06- Transport Layer Transport Layer.
TCP.
© 2003, Cisco Systems, Inc. All rights reserved.
PART 5 Transport Layer Computer Networks.
TCP Transport layer Er. Vikram Dhiman LPU.
Introduction to Networks
TCP - Part I Karim El Defrawy
Transport Layer Our goals:
CSCI-1680 Transport Layer I
September 19th, 2013 CS1652 Jack Lange University of Pittsburgh
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Advanced Computer Networks
CPEG514 Advanced Computer Networkst
Ilam University Dr. Mozafar Bag-Mohammadi
Chapter 5 Transport Layer Introduction
PART V Transport Layer.
PART 5 Transport Layer.
CSCI-1680 Transport Layer I
Transportation 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
Chapter 5 Transport Layer Introduction
Introduction to Computer Networks
Introduction to Computer Networks
Introduction to Computer Networks
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Transport Layer 9/22/2019.
Transport Layer Our goals:
Presentation transcript:

CSCI-1680 Transport Layer I Rodrigo Fonseca Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti

Today Transport Layer UDP TCP Intro Connection Establishment

From Lec 2: OSI Reference Model Application Protocol Transport Protocol Network Protocol Open Systems Interconnect, ISO Link-Layer Protocol

Transport Layer Transport protocols sit on top of network layer Problem solved: communication among processes Application-level multiplexing (“ports”) Error detection, reliability, etc.

UDP – User Datagram Protocol Unreliable, unordered datagram service Adds multiplexing, checksum End points identified by ports Scope is an IP address (interface) Checksum aids in error detection

UDP Header

UDP Checksum Uses the same algorithm as the IP checksum Set Checksum field to 0 Sum all 16-bit words, adding any carry bits to the LSB Flip bits to get checksum (except 0xffff->0xffff) To check: sum whole packet, including sum, should get 0xffff How many errors? Catches any 1-bit error Not all 2-bit errors Optional in IPv4: not checked if value is 0

Pseudo Header 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | source address | | destination address | | zero |protocol| UDP length | UDP Checksum is computer over pseudo-header prepended to the UDP header For IPv4: IP Source, IP Dest, Protocol (=17), plus UDP length What does this give us? What is a problem with this? Is UDP a layer on top of IP? Check that the destination is correct. It’s kind of useless, actually.

Next Problem: Reliability Review: reliability on the link layer Problem Mechanism Dropped Packets Acknowledgments + Timeout Duplicate Packets Sequence Numbers Packets out of order Receiver Window Keeping the pipe full Sliding Window (Pipelining) Single link: things were easy… 

Transport Layer Reliability Extra difficulties Multiple hosts Multiple hops Multiple potential paths Need for connection establishment, tear down Analogy: dialing a number versus a direct line Varying RTTs Both across connections and during a connection Why do they vary? What do they influence? RTT influences the potential window size (delay X bandwidth), the values for timeouts.

Extra Difficulties (cont.) Out of order packets Not only because of drops/retransmissions Can get very old packets (up to 120s), must not get confused Unknown resources at other end Must be able to discover receiver buffer: flow control Unknown resources in the network Should not overload the network But should use as much as safely possible Congestion Control (next class)

TCP – Transmission Control Protocol Service model: “reliable, connection oriented, full duplex ordered byte stream” Endpoints: <IP Address, Port> Flow control If one end stops reading, writes at other eventually stop/fail Congestion control Keeps sender from overloading the network

TCP Specification Was born coupled with IP, later factored out RFC 793 (1981), RFC 1222 (1989, some corrections), RFC 5681 (2009, congestion control), … Was born coupled with IP, later factored out We talked about this, don’t always need everything! End-to-end protocol Minimal assumptions on the network All mechanisms run on the end points Alternative idea: Provide reliability, flow control, etc, link-by-link Does it work?

Not the only options… UDP TCP SCTP DCCP Multiplexing ✔ Connection Reliablity In-order optional Message Stream Flow Control Congestion Control Multiple Streams * Multiple Paths *MPTCP adds multiple streams and multiple paths This table is not exhaustive!

Why not provide (*) on the network layer? Cost These functionalities are not free: don’t burden those who don’t need them Conflicting Timeliness and in-order delivery, for example Insufficient Example: reliability * may be security, reliability, ordering guarantees, …

End-to-end argument Functions placed at lower levels of a system may be redundant or of little value They may need to be performed at a higher layer anyway But they may be justified for performance reasons Or just because they provide most of what is needed Example: retransmissions Lesson: weigh the costs and benefits at each layer Also: the end also varies from case to case Example: Bit-torrent file transfer Example performance enhancement o-----o-----o----o 0.1 chance of drop End-to-end ack: (0.9^4)^2 = 0.43 (~2.3X) 2 Retransmissions per hop: Failure: fails two retransmissions = ((1-(0.1+0.1*0.9)^2)^4)^2 = 0.74

TCP Header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | | Sequence Number | | Acknowledgment Number | | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | | Checksum | Urgent Pointer | | Options | Padding | | data |

Header Fields Ports: multiplexing Sequence number Correspond to bytes, not packets! Acknowledgment Number Next expected sequence number Window: willing to receive Lets receiver limit SWS (even to 0) for flow control Data Offset: # of 4 byte (header + option bytes) Flags, Checksum, Urgent Pointer

Header Flags URG: whether there is urgent data ACK: ack no. valid (all but first segment) PSH: push data to the application immediately RST: reset connection SYN: synchronize, establishes connection FIN: close connection

Establishing a Connection Listen, Accept… Accept returns Three-way handshake Two sides agree on respective initial sequence nums If no one is listening on port: server sends RST If server is overloaded: ignore SYN If no SYN-ACK: retry, timeout

Connection Termination FIN bit says no more data to send Caused by close or shutdown Both sides must send FIN to close a connection Typical close FIN ACK Close FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_2 LAST_ACK TIME_WAIT CLOSED … 2MSL

Summary of TCP States Unsynchronized Connection Establishment Passive close: Can still send! Active close: Can still receive

TIME_WAIT Why do you have to wait for 2MSL in TIME_WAIT? What if last ack is severely delayed, AND Same port pair is immediately reused for a new connection? Solution: active closer goes into TIME_WAIT Waits for 2MSL (Maximum Segment Lifetime) Can be problematic for active servers OS has too many sockets in TIME_WAIT, can accept less connections Hack: send RST and delete socket, SO_LINGER = 0 OS won’t let you re-start server because port in use SO_REUSEADDR lets you rebind

From: The TIME−WAIT state in TCP and Its Effect on Busy Servers, Faber and Touch Infocom 1999

Next class Sending data over TCP