TCP/IP Revisited. IP s Transport Layer UDP and TCP. Computer Science 742 S2C, 2010 TCP UDP

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "TCP/IP Revisited. IP s Transport Layer UDP and TCP. Computer Science 742 S2C, 2010 TCP UDP"

Transcription

1 TCP/IP, COMPSCI 742, 2010 p. 3/29 IP s Transport Layer UDP and TCP TCP/IP, COMPSCI 742, 2010 p. 4/29 TCP/IP Revisited Computer Science 742 S2C, 2010 Nevil Brownlee, with acknowledgements to Ulrich Speidel You should be familiar with IP from 314 or equivalent experience Buzzwords to look up: IP addresses, IP routing, best effort, fragmentation, time-to-live TCP or UDP comes in packets (frames, datagrams) that are encapsulated as payload inside an IP datagram There are many other Transport Protocols, e.g. DCCP provides various types of congestion management over IP, for applications that don t need reliability SCTP carries sequenced streams of datagrams RTP carries multimedia streams UDP TCP/IP, COMPSCI 742, 2010 p. 1/29 TCP TCP/IP, COMPSCI 742, 2010 p. 2/29 UDP is used to send individual datagrams from an application on one computer to another application on a different computer across the network Applications are identified by 16-bit port numbers on either side Delivery is best effort, not guaranteed Applications that require recovery from lost transmissions must implement their own detection and recovery protocol TCP: Transmission Control Protocol, RFC 793 Provides a reliable bi-directional byte stream channel between an application on one computer and another application on a different computer across the network Applications identified by 16-bit port numbers at each end Delivery is guaranteed, i.e. TCP handles error detection and recovery TCP is usually described as connection oriented sender and receiver establish initial state they maintain that state during the connection lifetime state is forgotten when the connection ends contrast that with virtual circuit networking, where connection state is stored in switches throughout the network

2 TCP datagram format TCP/IP, COMPSCI 742, 2010 p. 7/29 TCP port assignment TCP/IP, COMPSCI 742, 2010 p. 8/ Source Port Dest Port U A P R S F Hdr Len R C S S Y IN Advertised Window G K H T N TCP Checksum Sequence Number Acknowledgement Number Urgent Pointer Options (variable length) Port numbers are the first two 16-bit fields in the TCP header TCP is a symmetric protocol, both ends can send and receive streams of data bytes A client machine connecting to a server will usually attempt to open a TCP connecton to a well-known port. It will use a random high-numbered port as its SrcPort. Many applications these days use port numbers 1024 Note that SrcPort and DestPort do not depend on who is client and who is server, but on the direction in which the datagram travels TCP payload (variable length) TCP Sequence number TCP/IP, COMPSCI 742, 2010 p. 5/29 TCP acknowledgements TCP/IP, COMPSCI 742, 2010 p. 6/29 A TCP connection may carry thousands of datagrams in each direction Must have a way to ensure they arrive in sequence and that we can detect missing ones SeqNum header field carries 32 bit sequence number of first byte in datagram. Sequence numbers apply to their datagram s respective direction Are supposed to start at a random value but may just start at 0; i.e. they may not be particularly random Can also be used as SYN cookies, allowing a TCP server to time out an attacker s half-open connections Wrap-around: sequence number is followed by sequence number 0 (assuming one-byte datagrams) TCP sequence numbers use unsigned 32-bit arithmetic The Acknowledgement field contains the sequence number of the next byte that the machine expects to receive The sending machine can use it to determine how many of its transmitted datagrams have been successfully received Field is only valid if flag in flags field is set Timing issues (see later)! Ack packets can carry data bytes, but they usually do not. Many protocols carry most of their data in one direction; can you think of some which carry data in both directions?

3 TCP header length TCP/IP, COMPSCI 742, 2010 p. 11/29 TCP flags (1) TCP/IP, COMPSCI 742, 2010 p. 12/29 TCP header is not fixed in length can get different size headers depending on use of Options field HdrLen field gives the total size of the TCP header in four-byte units, i.e. length = HdrLen 4 Everything following the header is payload (data that is to be delivered to the application) Six bits in the TCP header are used for flags: SYN: Set when the client sends its first datagram to the server, and in the server s acknowledgement of that datagram. Basically, it marks the connection request/confirmation : Indicates that the Acknowledgement field contains a valid segment number. Remember that we can t set no value in a 32 bit field! SYN and flags are enough to get a connection established TCP flags (2) TCP/IP, COMPSCI 742, 2010 p. 9/29 TCP connection handshake (simplest case) TCP/IP, COMPSCI 742, 2010 p. 10/29 Flags which terminate a connection: FIN: Signals that a host has finished with a connection. The other host should finish too RESET: Shuts down the connection immediately. Used in case of errors should not see this in proper implementations! Other flags: PUSH: Indicates receiver should pass all data in its buffer to application. Not very useful these days URG: Indicates that UrgPtr points to last byte of urgent data, but there s no way to indicate the first byte of such data not often used Host A sends datagram with SYN flag set and an initial sequence number, say 382 in its Sequence field Host B responds with datagram that has SYN+ set, Ack field contains 383, Sequence field is, say, Host A sends datagram that has set, Ack field contains Client now regards the connection as established, sequence number is 383 Note that: The SYN flag counts as one byte Host A s second datagram completes the connection handshake. It can also carry data, e.g. an HTTP GET request

4 TCP acknowledgement TCP/IP, COMPSCI 742, 2010 p. 15/29 TCP flow control: sliding window TCP/IP, COMPSCI 742, 2010 p. 16/29 One side (host A) sends one-byte datagram with sequence number, say 387 Other side (host B) responds with datagram that has set. Acknowledgement field contains number 388, its own sequence number is, say, Host A now knows that host B has received all bytes from host A up to and including number 387 note: carries the sequence number of the next byte B expects to recieive If a datagram is lost on the way from A to B, next from B contains an earlier sequence number After an appropriate timeout, A resends the missing datagram(s) Problem: What is an appropriate waiting time? Receiver advertises a window in its datagrams that have the flag set: the number of bytes left in its receive buffer for the connection this is the number of bytes it can still receive Sender must ensure that there is at most this amount of unacknowledged data on the connection Problem: If receiver advertises window size 0, the sender will not know when the window size increases again Solution: sender sends small (ack) frame every so often; that evokes a response from receiver advertising the current window size Adaptive retransmission (1) TCP/IP, COMPSCI 742, 2010 p. 13/29 Adaptive retransmission (2) TCP/IP, COMPSCI 742, 2010 p. 14/29 Problem: datagrams in transit between sender and receiver are not included in the advertised window. By the time the advertised window size arrives at the sender, it is out of date How big is the problem? Depends on bandwidth-delay product. On a connection between NZ and the US that terminates in 100 Mb/s Ethernet either side and has 100 ms latency, it s no less than 10 Mb, i.e., about 1 MB of payload data! A big problem indeed, especially for people in NZ! Need some sort of algorithm that can handle this data in transit Time each frame: measure time between transmission of the datagram and arrival of its corresponding. Use that as estimate of round-trip time (RTT) Sending side computes capacity of receiver buffers plus channel and can (conservatively) transmit data until this capacity is reached Problem: s are not associated with a particular copy of a datagram is it for the original or the resend? Can t compute RTT values for such cases Karn/Partridge: double RTT timeout every time a datagram needs to be resent ( exponential backoff ). Only do calculation for packets that are not resent Karels/Jacobson: compute RTT timeout more closely based on RTT statistics

5 TCP in more detail [p 378 / 384] TCP/IP, COMPSCI 742, 2010 p. 19/29 TCP state diagram (RFC 793) TCP/IP, COMPSCI 742, 2010 p. 20/29 Ordered delivery Each end has a buffer for the max window size Max receive window sent in each segment Sequence number = nbr of first byte Acknowledgement number = nbr of next expected byte Seq + TCP length = Ack (when Acking a single segment) Out-of-sequence segments re-send earlier Ack Sequence numbers are 32-bit unsigned, and will wrap Flow control Don t send more data than will fit in the receive window Receive window size changes as data removed from buffer Active Open SYN CLOSED Legend: CLOSE Active SEND SYN CLOSE Passive Open COMMAND from application FLAG received FLAG sent SYN_SENT LISTEN SYN SYN+ SYN SYN+ SYN_RECV (of SYN) FIN Normal operation CLOSEFIN CLOSEFIN CLOSE_WAIT LAST_ CLOSED Send remaining data in buffer ESTABLISHED CLOSE FIN FINWAIT_1 CLOSING FIN+ (of FIN) (of FIN) (of FIN) Receive remaining data from other side s buffer TIMEOUT (2x MSL) FINWAIT_2 TIME_WAIT FIN TCP Congestion Management [p 468 / 474] TCP/IP, COMPSCI 742, 2010 p. 17/29 TCP Congestion Management (2) TCP/IP, COMPSCI 742, 2010 p. 18/29 Feedback scheme Idea is to use Acks to clock packets onto link RFC 2581 Sender maintains congestion window, never sends more than min(cwin, rwin) bytes Slow Start Begin by sending 1..3 packets Increment cwin each Ack segment until a segment is lost Halve cwin, switch to AI/MD Additive increase / multiplicative decrease (AI/MD) Increment cwin once per RTT until a segment is lost Halve cwin and repeat Note that packet loss is required for TCP congestion management RFC 2309 Recommendations on Queue Management and Congestion Avoidance in the Internet

6 TCP errors, etc. TCP/IP, COMPSCI 742, 2010 p. 23/29 Algorithms used in TCP Implementation TCP/IP, COMPSCI 742, 2010 p. 24/29 Error handling Lost segment detected by timeout, or by receiving three duplicate Acks Fast retransmit: re-send segment starting with Ack byte (only re-send one segment) Half-open connections From host which crashed (without sending FINs) Keepalive packets Some implementations send these, and close connections if no data bytes are sent during the timeout interval This is not part of the TCP protocol, sessions stay open until they are closed by FIN or RST When to send data Nagle: if (< mss bytes and unacked bytes) wait else send Measuring RTT Karn/Partridge: don t time retransmitted segments Jacobson/Karels: allow for variance in RTTs Congestion Management Slow Start: set cwind = IW (usually 1 or 2 segments), increment by SMSS each up to ssthresh (init 65535) Congestion Avoidance: AI/MD Fast Retransmit: resend after third duplicate Fast Recovery: don t Slow Start after Fast Retransmit Congestive collapse TCP/IP, COMPSCI 742, 2010 p. 21/29 Flavours of TCP (1) TCP/IP, COMPSCI 742, 2010 p. 22/29 In case of congestion on data networks, there is a condition called congestive collapse Under TCP, when datagrams do not get through, TCP s RTT will back off exponentially can reach total inactivity pretty quickly! Back-off is designed to relieve pressure on resources Only works fairly if everyone keeps to the rules (no DoS attacks). Even so, retries create extra traffic Congestive collapse occurs when almost the entire traffic consists of retransmissions that don t get through as a result of the congestion, in turn generating retries No back-off in other protocols, e.g. UDP P&D [494] say that TCP is defined by an implementation We look (briefly) at the best-known implementations: Tahoe: the original BSD implementation of TCP (BNR1) begins in slow start, reaches ssthresh then switches to congestion avoidance detects loss by timeout before getting an set cwin to one and switch back to slow start Reno: added more algorithms to improve data transfer rate fast retransmit: three duplicate acks indicate packet loss; resend the missing segment, halve cwin, switch to fast recovery fast recovery: if no for resent segment, switch to slow start delayed s: only send an for every second packet the most widely-deployed TCP implementation

7 Flavours of TCP (2) TCP/IP, COMPSCI 742, 2010 p. 27/29 Further reading TCP/IP, COMPSCI 742, 2010 p. 28/29 Vegas: mid-90 s[495] observe data rate using RTTs for recent packets, detect changes in rate adjust cwin up or down, attempting to match the observed rate to the expected rate idea is to keep enough bits on the wire, without getting lots of bits (packets) backed up in router buffers, i.e. use queueing delay instead of loss probability to detect congestion not widely deployed FAST TCP: 2005 tries to maintain constant number of packets on the wire variable-sized adjustments to cwin proprietary (patented), i.e. not following a standard RFCs covering TCP implementation RFC 2581: TCP Congestion Control READ THIS ONE! It s quite short, it explains TCP s four intertwined algorithms (for congestion control) very clearly RFC 3390: Increasing TCP s Initial Window Congestion in the Internet RFC 2309: Recommendations on Queue Management and Congestion Avoidance Simulation-based comparisons of Tahoe, Reno and S TCP, Kevin Fall, Sally Floyd, CACM, vol 26, pp5-21, All these are on the 742 Resources web page Note: new implementations of TCP must interwork properly with existing ones! TCP Throughput Formula TCP/IP, COMPSCI 742, 2010 p. 25/29 TCP Throughput Formula (2) TCP/IP, COMPSCI 742, 2010 p. 26/29 Matthew Mathis, Jeffrey Semke, Jamshid Mahdavi, Teunis Ott, The Macroscopic Behaviour of the TCP Congestion Avoidance Algorithm, SIGCOMM, July 1997 Data delivered = area under sawtooth, i.e. 3/8 W 2 Each cycle delivers 1/p packets (p is the packet loss rate) data per cycle BW = time per cycle = MSS RT T C p, and C = p 3/2 Note that BW is inversely proportional to p i.e. need low loss rates to get high bandwidth This is a very simple model of TCP behaviour, many other papers about TCP behaviour have been published Some authors suggest that a TCP sender sends packets in flights, and use those flights to measure RT T

8 A different model of TCP In 2003, Allen Downey (Boston University) published a paper summarising his observations of TCP behaviour, and presented a Markov Model based on them Allen s work was published as: (D96) An Empirical model of TCP transfers, Allen B. Downey, Olin College Technical Report, January 14, 2003 That paper is on the 742 resources web page TCP/IP, COMPSCI 742, 2010 p. 29/29

TCP/IP Revisited Computer Science 742 S2C, 2014

TCP/IP Revisited Computer Science 742 S2C, 2014 TCP/IP, COMPSCI 742, 2014 p. 1/33 TCP/IP Revisited Computer Science 742 S2C, 2014 Nevil Brownlee, with acknowledgements to Ulrich Speidel UDP TCP/IP, COMPSCI 742, 2014 p. 2/33 UDP is used to send individual

More information

TCP transmission control protocol

TCP transmission control protocol TCP transmission control protocol Suguru Yamaguchi 2014 Information Network 1 Functions that transport layer provides! Model: inter-process communication Identification of process Communication pair of

More information

Guide to TCP/IP, Third Edition. Chapter 5: Transport Layer TCP/IP Protocols

Guide to TCP/IP, Third Edition. Chapter 5: Transport Layer TCP/IP Protocols Guide to TCP/IP, Third Edition Chapter 5: Transport Layer TCP/IP Protocols Objectives Understand the key features and functions of the User Datagram Protocol Explain the mechanisms that drive segmentation,

More information

Transport Layer Protocols

Transport Layer Protocols Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements

More information

Outline. Lecture 4: TCP TCP TCP. TCP Segment. How TCP Provides Reliability. Internetworking. TCP Transmission Control Protocol.

Outline. Lecture 4: TCP TCP TCP. TCP Segment. How TCP Provides Reliability. Internetworking. TCP Transmission Control Protocol. Internetworking Outline TCP Transmission Control Protocol RFC 793 (and several follow-ups) Literature: Lecture 4: TCP Forouzan, TCP/IP Protocol Suite: Ch 12 Connection Management Reliability Flow control

More information

TCP: Reliable, In-Order Delivery

TCP: Reliable, In-Order Delivery TCP: Reliable, In-Order Delivery EE 122: Intro to Communication Networks Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim http://inst.eecs.berkeley.edu/~ee122/ Materials

More information

CHAPTER 24. Questions PRACTICE SET

CHAPTER 24. Questions PRACTICE SET CHAPTER 24 PRACTICE SET Questions Q24-1. The protocol field of the datagram defines the transport-layer protocol that should receive the transport-layer packet. If the value is 06, the protocol is TCP;

More information

Guide to TCP/IP Fourth Edition. Chapter 9: TCP/IP Transport Layer Protocols

Guide to TCP/IP Fourth Edition. Chapter 9: TCP/IP Transport Layer Protocols Guide to TCP/IP Fourth Edition Chapter 9: TCP/IP Transport Layer Protocols Objectives Explain the key features and functions of the User Datagram Protocol and the Transmission Control Protocol Explain,

More information

Transmission Control Protocol (TCP) A brief summary

Transmission Control Protocol (TCP) A brief summary Transmission Control Protocol (TCP) A brief summary TCP Basics TCP (RFC 793) is a connection-oriented transport protocol TCP entities only present at hosts (end-end) retain state of each open connection

More information

Lecture 6: Congestion Control

Lecture 6: Congestion Control Lecture 6: Congestion Control Overview Internet is a network of networks Narrow waist of IP: unreliable, best-effort datagram delivery Packet forwarding: input port to output port Routing protocols: computing

More information

- TCP and UDP - Transport Layer Protocols

- TCP and UDP - Transport Layer Protocols 1 Transport Layer Protocols - TCP and UDP - The Transport layer (OSI Layer-4) does not actually transport data, despite its name. Instead, this layer is responsible for the reliable transfer of data, by

More information

TCP (Transmission Control Protocol)

TCP (Transmission Control Protocol) TCP (Transmission Control Protocol) Originally defined in RFC 793 (September 1981) UDP features: multiplexing + protection against bit errors Ports, checksum Connection-oriented Establishment and teardown

More information

Process-to. to-process Communication. Transports and TCP. A Brief Internet History UDP. TCP Timeline. TCP: After 1990

Process-to. to-process Communication. Transports and TCP. A Brief Internet History UDP. TCP Timeline. TCP: After 1990 Transports and TCP Adolfo Rodriguez CPS 214 Host-to to-host vs. Process-to to-process Communication Until now, we have focused on delivering packets between arbitrary hosts connected to Internet Routing

More information

Transports and TCP. Adolfo Rodriguez CPS 214

Transports and TCP. Adolfo Rodriguez CPS 214 Transports and TCP Adolfo Rodriguez CPS 214 Host-to to-host vs. Process-to to-process Communication Until now, we have focused on delivering packets between arbitrary hosts connected to Internet Routing

More information

TCP Service Model. Announcements. TCP: Reliable, In-Order Delivery. Today s Lecture. TCP Header. TCP Support for Reliable Delivery

TCP Service Model. Announcements. TCP: Reliable, In-Order Delivery. Today s Lecture. TCP Header. TCP Support for Reliable Delivery Announcements Sukun is away this week. Dilip will cover his section and office hours. TCP: Reliable, In-Order Delivery EE 122: Intro to Communication Networks Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson

More information

Overview. Lecture 4: Congestion Control TCP. Transport. A Bit of History TCP. Internet is a network of networks

Overview. Lecture 4: Congestion Control TCP. Transport. A Bit of History TCP. Internet is a network of networks Overview Internet is a network of networks Lecture 4: Congestion Control Narrow waist of IP: unreliable, best-effort datagram delivery Packet forwarding: input port to output port Routing protocols: computing

More information

Internet Transport Protocols

Internet Transport Protocols Internet Transport Protocols Transmission Control Protocol (TCP): TCP Socket Primitives. The TCP Segment Header. Establishing & Terminating TCP Connections: TCP Three-way Handshake. TCP Connection Management

More information

Due for Week Group of 3 (max) Percentage awarded for comments, coding practice, layout style, naming convention, completed task.

Due for Week Group of 3 (max) Percentage awarded for comments, coding practice, layout style, naming convention, completed task. EE4607 Project Goals Details Due for Week 11-12. Group of 3 (max) Percentage awarded for comments, coding practice, layout style, naming convention, completed task. Task Create a SDL implementation of

More information

Transport Layer: UDP vs. TCP

Transport Layer: UDP vs. TCP EEC 189Q: Computer Networks Transport Layer: UDP vs. TCP Reading: 8.4 & 8.5 Review: Internet Protocol Stack Application Telnet FTP HTTP Transport Network Link Physical bits on wire TCP LAN IP UDP Packet

More information

Chapter 8 TCP/IP. Chapter Figures

Chapter 8 TCP/IP. Chapter Figures Chapter 8 TCP/IP Chapter Figures Application Application TCP UDP ICMP IP ARP RARP Network interface Figure 8. HTTP Request Header contains source & destination port numbers TCP header Header contains source

More information

Lecture 3: The Transport Layer: UDP and TCP

Lecture 3: The Transport Layer: UDP and TCP Lecture 3: The Transport Layer: UDP and TCP Prof. Shervin Shirmohammadi SITE, University of Ottawa Prof. Shervin Shirmohammadi CEG 4185 3-1 The Transport Layer Provides efficient and robust end-to-end

More information

CS640: Introduction to Computer Networks. Transport Protocols. Functionality Split

CS640: Introduction to Computer Networks. Transport Protocols. Functionality Split CS640: Introduction to Computer Networks Aditya Akella Lecture 14 TCP I - Transport Protocols: TCP Segments, Flow control and Connection Setup Transport Protocols Lowest level endto-end protocol. Header

More information

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 socket door point-to-point: one sender, one receiver reliable, in-order byte steam: no message boundaries pipelined: TCP congestion and flow control set

More information

Overview of TCP. Overview of TCP. Overview of TCP. Overview of TCP. Connection-oriented, byte-stream

Overview of TCP. Overview of TCP. Overview of TCP. Overview of TCP. Connection-oriented, byte-stream Overview of TCP Overview of TCP Connection-oriented, byte-stream sending process writes some number of bytes TCP breaks into segments and sends via IP receiving process reads some number of bytes Full

More information

Chapter 15. Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1

Chapter 15. Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1 Chapter 15 Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Outline TCP/IP Protocol Suite 2

More information

Chapter 3 Transport Layer

Chapter 3 Transport Layer Chapter 3 Transport Layer All material copyright 1996-2009 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April

More information

TCP. Raj Jain. Professor of CIS The Ohio State University Columbus, OH 43210 Raj Jain 20-1

TCP. Raj Jain. Professor of CIS The Ohio State University Columbus, OH 43210  Raj Jain 20-1 TCP Professor of CIS Columbus, OH 43210 Jain@ACM.Org http://www.cis.ohio-state.edu/~jain/ 20-1 Overview Key features, Header format Mechanisms, Implementation choices Slow start congestion avoidance, Fast

More information

Computer Networks. Chapter 5 Transport Protocols

Computer Networks. Chapter 5 Transport Protocols Computer Networks Chapter 5 Transport Protocols Transport Protocol Provides end-to-end transport Hides the network details Transport protocol or service (TS) offers: Different types of services QoS Data

More information

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

TCP - Part I. Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management. TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management. 1 Overview TCP = Transmission Control Protocol Connection-oriented protocol Provides

More information

Final for ECE374 05/06/13 Solution!!

Final for ECE374 05/06/13 Solution!! 1 Final for ECE374 05/06/13 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam taker -

More information

The Transmission Control Protocol (TCP): Lecture 1

The Transmission Control Protocol (TCP): Lecture 1 Today s Lecture The Transmission Control Protocol (TCP): Lecture 1 I. TCP overview II. The TCP Header III. Connection establishment and termination Internet Protocols CSC / ECE 573 Fall, 2005 N. C. State

More information

CIS 551 / TCOM 401 Computer and Network Security

CIS 551 / TCOM 401 Computer and Network Security CIS 551 / TCOM 401 Computer and Network Security Spring 2008 Lecture 11 2/26/08 CIS/TCOM 551 1 Wireless (802.11) Spread spectrum radio 2.4GHz frequency band Bandwidth ranges 1, 2, 5.5, 11, 22, 54, 248

More information

TCP/IP. IPv4 packet layout. IPv4 packet layout. Emin Gun Sirer

TCP/IP. IPv4 packet layout. IPv4 packet layout. Emin Gun Sirer IP TCP/IP Emin Gun Sirer Internetworking protocol Network layer Common packet format for the Internet Specifies what packets look like Fragments long packets into shorter packets Reassembles fragments

More information

Transport Layer INF3190 / INF4190. Foreleser: Carsten Griwodz

Transport Layer INF3190 / INF4190. Foreleser: Carsten Griwodz Transport Layer INF3190 / INF4190 Foreleser: Carsten Griwodz Email: griff@ifi.uio.no Transport layer Flow Control: Generic approaches Flow Control on Transport Layer Fast sender shall not flood slow receiver

More information

Chapter 15. Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1

Chapter 15. Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1 Chapter 15 Transmission Control Protocol (TCP) TCP/IP Protocol Suite 1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. OBJECTIVES: To introduce TCP as a protocol

More information

CSCE 463/612 Networks and Distributed Processing Spring 2016

CSCE 463/612 Networks and Distributed Processing Spring 2016 CSCE 463/612 Networks and Distributed Processing Spring 2016 Transport Layer IV Dmitri Loguinov Texas A&M University March 10, 2016 Original slides copyright 1996-2004 J.F Kurose and K.W. Ross 1 Chapter

More information

Transport Control Protocol (TCP)

Transport Control Protocol (TCP) Transport Control Protocol (TCP) Richard T. B. Ma School of Computing National University of Singapore CS 3103: Compute Networks and Protocols Transport services and protocols provide logical communication

More information

Slides from TCP/IP - Forouzan. Chapter 12 TCP

Slides from TCP/IP - Forouzan. Chapter 12 TCP Chapter 12 Services Segments and Options Flow Control and Error Control rs Connections State Transition Diagram Congestion Control Operation and Design Figure Application layer Position of in /IP protocol

More information

Ch 14 Understanding. Magda El Zarki Prof. of CS Univ. of CA, Irvine

Ch 14 Understanding. Magda El Zarki Prof. of CS Univ. of CA, Irvine Ch 14 Understanding Transport Protocols Magda El Zarki Prof. of CS Univ. of CA, Irvine Email:elzarki@uci.edu http://www.ics.uci.edu/~magda Overview The most common end-to-end transport protocols today

More information

Data Communication & Networks G22.2262-001. Session 9 - Main Theme The Internet Transport Protocols: TCP, UDP. Dr. Jean-Claude Franchitti

Data Communication & Networks G22.2262-001. Session 9 - Main Theme The Internet Transport Protocols: TCP, UDP. Dr. Jean-Claude Franchitti Data Communication & Networks G22.2262-001 Session 9 - Main Theme The Internet Transport Protocols: TCP, UDP Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute

More information

Fall & Walrand Lecture 22. n A > Seq k, SYN > B. n A <--- Seq j, ACK k+1, SYN+ACK <-- B

Fall & Walrand Lecture 22. n A > Seq k, SYN > B. n A <--- Seq j, ACK k+1, SYN+ACK <-- B Steady State Operation, Lecture 22 Kevin Fall kfall@cs.berkeley.edu Jean Walrand wlr@eecs.berkeley.edu Typical operation looks like this: Seq CK Win Seq CK Win - Fall & Walrand 783 TCP Sequence Numbers

More information

TCP: Transmission Control Protocol RFC 793,1122,1223. Prof. Lin Weiguo Copyleft 2009~2015, College of Computing, CUC

TCP: Transmission Control Protocol RFC 793,1122,1223. Prof. Lin Weiguo Copyleft 2009~2015, College of Computing, CUC TCP: Transmission Control Protocol RFC 793,1122,1223 Prof. Lin Weiguo Copyleft 2009~2015, College of Computing, CUC Nov. 2015 TCP/IP Protocol Stack Application Layer FTP, Telnet, HTTP, Transport Layer

More information

Outline. TCP connection setup/data transfer. 15-441 Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics

Outline. TCP connection setup/data transfer. 15-441 Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics Outline 15-441 Computer Networking Lecture 8 TCP & Congestion Control TCP connection setup/data transfer TCP Reliability Congestion sources and collapse Congestion control basics Lecture 8: 09-23-2002

More information

TCP and UDP. Raj Jain. Professor of CIS The Ohio State University Columbus, OH

TCP and UDP. Raj Jain. Professor of CIS The Ohio State University Columbus, OH TCP and UDP Professor of CIS Columbus, OH 43210 Jain@ACM.Org http://www.cis.ohio-state.edu/~jain/ 12-1 Overview Key features Header format Mechanisms Implementation choices Slow start congestion avoidance

More information

Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation

Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation Improving the Performance of TCP Using Window Adjustment Procedure and Bandwidth Estimation R.Navaneethakrishnan Assistant Professor (SG) Bharathiyar College of Engineering and Technology, Karaikal, India.

More information

Transmission Control Protocol (TCP) Reliable Connection-oriented Point-to-point Full-duplex Streams, not messages

Transmission Control Protocol (TCP) Reliable Connection-oriented Point-to-point Full-duplex Streams, not messages Transmission Control Protocol (TCP) Reliable Connection-oriented Point-to-point Full-duplex Streams, not messages Initialization: 3 Way Handshake Initiator SYN (Synchronization Sequence Number) SYN = ISN

More information

ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM

ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM ICOM 5026-090: Computer Networks Chapter 6: The Transport Layer By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 Outline The transport service Elements of transport protocols A

More information

Computer Networks UDP and TCP

Computer Networks UDP and TCP Computer Networks UDP and TCP Saad Mneimneh Computer Science Hunter College of CUNY New York I m a system programmer specializing in TCP/IP communication protocol on UNIX systems. How can I explain a thing

More information

TCP - Introduction. Features of TCP

TCP - Introduction. Features of TCP TCP - Introduction The Internet Protocol (IP) provides unreliable datagram service between hosts The Transmission Control Protocol (TCP) provides reliable data delivery It uses IP for datagram delivery

More information

[Prof. Rupesh G Vaishnav] Page 1

[Prof. Rupesh G Vaishnav] Page 1 Basics The function of transport layer is to provide a reliable end-to-end communications service. It also provides data transfer service for the user layers above and shield the upper layers from the

More information

RSC Part III: Transport Layer 3. TCP

RSC Part III: Transport Layer 3. TCP RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the companion slides to the book Computer Networking: A Top Down

More information

Topics. Computer Networks. Introduction. Transport Entity. Quality of Service. Transport Protocol

Topics. Computer Networks. Introduction. Transport Entity. Quality of Service. Transport Protocol Topics Introduction (6.1) Connection Issues (6. - 6..3) TCP (6.4) Computer Networks Transport Layer Introduction Efficient, reliable and cost-effective service to users (application layer) despite limitations

More information

TCP/IP Optimization for Wide Area Storage Networks. Dr. Joseph L White Juniper Networks

TCP/IP Optimization for Wide Area Storage Networks. Dr. Joseph L White Juniper Networks TCP/IP Optimization for Wide Area Storage Networks Dr. Joseph L White Juniper Networks SNIA Legal Notice The material contained in this tutorial is copyrighted by the SNIA. Member companies and individuals

More information

Good Ideas So Far Computer Networking. Outline. Sequence Number Space. Lecture 18 More TCP & Congestion Control. The devilish details of TCP

Good Ideas So Far Computer Networking. Outline. Sequence Number Space. Lecture 18 More TCP & Congestion Control. The devilish details of TCP Good Ideas So Far 15-441 Computer Networking Lecture 18 More TCP & Congestion Control Flow control Stop & wait Parallel stop & wait Sliding window (e.g., advertised windows) Loss recovery outs Acknowledgement-driven

More information

Prefix AggregaNon. Company X and Company Y connect to the same ISP, and they are assigned the prefixes:

Prefix AggregaNon. Company X and Company Y connect to the same ISP, and they are assigned the prefixes: Data Transfer Consider transferring an enormous file of L bytes from Host A to B using a MSS of 1460 bytes and a 66 byte header. What is the maximum value of L such that TCP sequence numbers are not exhausted?

More information

B-2 Analyzing TCP/IP Networks with Wireshark. Ray Tompkins Founder of Gearbit www.gearbit.com

B-2 Analyzing TCP/IP Networks with Wireshark. Ray Tompkins Founder of Gearbit www.gearbit.com B-2 Analyzing TCP/IP Networks with Wireshark June 15, 2010 Ray Tompkins Founder of Gearbit www.gearbit.com SHARKFEST 10 Stanford University June 14-17, 2010 TCP In this session we will examine the details

More information

6.263/16.37: Lectures 3 & 4. The Data Link Layer: ARQ Protocols

6.263/16.37: Lectures 3 & 4. The Data Link Layer: ARQ Protocols 6.263/16.37: Lectures 3 & 4 The Data Link Layer: ARQ Protocols MIT 1 Automatic Repeat ReQuest (ARQ) When the receiver detects errors in a packet, how does it let the transmitter know to re-send the corresponding

More information

Tutorial 1 Solutions (Week 5)

Tutorial 1 Solutions (Week 5) COMP 333/933 Computer Networks and Applications Tutorial Solutions (Week 5) Introduction Suppose two hosts, A and B are separated by, kms and are connected by a direct link of R = Mbps. Suppose the propagation

More information

Computer Networking. TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Computer Networking. TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 Computer Networking Connec1on- Oriented Transport: : Overview RFCs: 793, 1122, 1323, 2018, 2581 point- to- point: one sender, one receiver reliable, in- order byte steam: no message boundaries pipelined:

More information

Transportation Protocols: UDP, TCP & RTP

Transportation Protocols: UDP, TCP & RTP Transportation Protocols: UDP, TCP & RTP Transportation Functions UDP (User Datagram Protocol) Port Number to Identify Different Applications Server and Client as well as Port TCP (Transmission Control

More information

Module 11: TCP/IP Transport and Application Layers

Module 11: TCP/IP Transport and Application Layers Module 11: TCP/IP Transport and Application Layers 11.1 TCP/IP Transport Layer 11.1.1 Introduction to the TCP/IP transport layer The primary duties of the transport layer are to transport and regulate

More information

TCP/IP Tutorial. Transmission Control Protocol Internet Protocol

TCP/IP Tutorial. Transmission Control Protocol Internet Protocol TCP/IP Tutorial Transmission Control Protocol Internet Protocol 1 TCP/IP & OSI In OSI reference model terminology -the TCP/IP protocol suite covers the network and transport layers. TCP/IP can be used

More information

Internet Protocol Stack. TCP: Transmission Control Protocol

Internet Protocol Stack. TCP: Transmission Control Protocol Internet Protocol tack application: supporting network applications HTTP, MTP, FTP, etc transport: endhost-endhost data transfer TCP, UP network: routing of datagrams from source to destination IP, routing

More information

CSE 123: Computer Networks

CSE 123: Computer Networks CSE 123: Computer Networks Homework 2 Out: 4/20, Due: 4/27 Instructions 1. Turn in a physical copy at the beginning of the class on 4/27 2. Ensure the HW cover page has the following information clearly

More information

Transport Layer. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross

Transport Layer. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross Transport Layer Abusayeed Saifullah CS 5600 Computer Networks These slides are adapted from Kurose and Ross Transport Layer our goals: v understand principles behind transport layer services: multiplexing,

More information

OSI Transport layer. Dr. Luca Allodi - Network Security - University of Trento, DISI (AA 2015/2016)

OSI Transport layer. Dr. Luca Allodi - Network Security - University of Trento, DISI (AA 2015/2016) OSI Transport layer Dr. Luca Allodi - Network Security - University of Trento, DISI (AA 2015/2016) 1 Transmission Control Protocol (TCP) IP can only be used to send datagrams chunks or streams of information

More information

10/27/2014. Transport Service. The Transport Layer. Services Provided to the Upper Layers. Transport Service Primitives (1) Berkeley Sockets (1)

10/27/2014. Transport Service. The Transport Layer. Services Provided to the Upper Layers. Transport Service Primitives (1) Berkeley Sockets (1) Transport Service The Transport Layer Chapter 6 Upper Layer Services Transport Service Primitives Berkeley Sockets Example of Socket Programming: Internet File Server Services Provided to the Upper Layers

More information

TCP Flow Controls. Matthew Roughan. Adelaide-Melbourne Grampians Workshop. Copyright, 1996 Dale Carnegie & Associates, Inc.

TCP Flow Controls. Matthew Roughan. Adelaide-Melbourne Grampians Workshop. Copyright, 1996 Dale Carnegie & Associates, Inc. TCP Flow Controls Matthew Roughan Adelaide-Melbourne Grampians Workshop 1999 Copyright, 1996 Dale Carnegie & Associates, Inc. TCP/IP Primary protocols used in the Internet IP (Internet Protocol) Transmission

More information

Transport Layer Outline

Transport Layer Outline Transport Layer Outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP

More information

Ethernet. Ethernet. Network Devices

Ethernet. Ethernet. Network Devices Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking

More information

Livello di trasporto TCP

Livello di trasporto TCP Livello di trasporto TCP TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 point-to-point: one sender, one receiver reliable, in-order byte stream: pipelined: no message boundaries TCP congestion and flow

More information

G.Bianchi, G.Neglia, V.Mancuso. Understanding TCP connection management

G.Bianchi, G.Neglia, V.Mancuso. Understanding TCP connection management Understanding TCP connection management TCP connection Application (client) Socket TCP software State variables: - conn status -MSS -windows - buffer space normally 4 to 16 Kbytes 64+ Kbytes possible Logical

More information

TCP Performance Management for Dummies

TCP Performance Management for Dummies TCP Performance Management for Dummies Nalini Elkins Inside Products, Inc. Monday, August 8, 2011 Session Number 9285 Our SHARE Sessions Orlando 9285: TCP/IP Performance Management for Dummies Monday,

More information

Sliding Window Protocol and TCP Congestion Control

Sliding Window Protocol and TCP Congestion Control Sliding Window Protocol and TCP Congestion Control Simon S. Lam Department of Computer Science The University it of Texas at Austin 2/25/2014 1 1 2 Sliding Window Protocol Consider an infinite array, Source,

More information

TCP/IP and OSI model. TCP/IP Protocol (2) B.2

TCP/IP and OSI model. TCP/IP Protocol (2) B.2 TCP/IP Protocol TCP/IP Transmission Control Protocol/Internetworking Protocol (TCP/IP) standard for the Internet five layers = physical = data link = network = transport = application B.1 TCP/IP and OSI

More information

I. Internet Control Message Protocol (ICMP) Week 10

I. Internet Control Message Protocol (ICMP) Week 10 I. Internet Control Message Protocol (ICMP) Week 10 described in RFC 792 helper protocol for IP, but more like a 3 ½ layer protocol (like ARP as a 2 ½ layer protocol) since a helper protocol for IP, uses

More information

TCP "Real" Reliable Transport

TCP Real Reliable Transport TCP "Real" Reliable Transport CS 356 University of Texas at Austin Dr. David A. Bryan VERY SIGNIFICANT content used or adapted from Computer Networking: A Top- Down Approach, 6e, Kurose and Ross, Addisson-

More information

TCP Header - Sequence Number

TCP Header - Sequence Number Introduction to TCP RFC 793 (+ RFC1122) (+ others) Transmission Control Protocol The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in

More information

Tutorial 1 (Week 6) Introduction

Tutorial 1 (Week 6) Introduction COMP 333/933 Computer Networks and Applications Tutorial (Week 6) Introduction Problem Set, Question 7 Suppose two hosts, A and B are separated by, kms and are connected by a direct link of R = Mbps. Suppose

More information

Administrivia CSC458. Sliding Windows, ARQ Connections. This Time. Last Time

Administrivia CSC458. Sliding Windows, ARQ Connections. This Time. Last Time CSC458 Sliding Windows, ARQ Connections Administrivia Projects Project #3 due on Wednesday at 2pm Project #4 out today -- last project Homework Homework #4 out last week, due in two weeks This is our last

More information

CS 421: Computer Networks FALL MIDTERM I November 22, minutes

CS 421: Computer Networks FALL MIDTERM I November 22, minutes CS 421: Computer Networks FALL 2004 MIDTERM I November 22, 2004 120 minutes Name: Student No: Show all your work very clearly. Partial credits will only be given if you carefully state your answer with

More information

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio).

This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). Client App Network Server App 25-May-13 15:32 (Page 1) This sequence diagram was generated with EventStudio System Designer (http://www.eventhelix.com/eventstudio). TCP is an end to end protocol which

More information

A Survey on Congestion Control Mechanisms for Performance Improvement of TCP

A Survey on Congestion Control Mechanisms for Performance Improvement of TCP A Survey on Congestion Control Mechanisms for Performance Improvement of TCP Shital N. Karande Department of Computer Science Engineering, VIT, Pune, Maharashtra, India Sanjesh S. Pawale Department of

More information

To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet.

To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet. Lab Exercise TCP Objective To see the details of TCP (Transmission Control Protocol). TCP is the main transport layer protocol used in the Internet. The trace file is here: http://scisweb.ulster.ac.uk/~kevin/com320/labs/wireshark/trace-tcp.pcap

More information

La couche transport dans l'internet (la suite TCP/IP)

La couche transport dans l'internet (la suite TCP/IP) La couche transport dans l'internet (la suite TCP/IP) C. Pham Université de Pau et des Pays de l Adour Département Informatique http://www.univ-pau.fr/~cpham Congduc.Pham@univ-pau.fr Cours de C. Pham,

More information

First Midterm for ECE374 03/09/12 Solution!!

First Midterm for ECE374 03/09/12 Solution!! 1 First Midterm for ECE374 03/09/12 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam

More information

q Connection establishment (if connection-oriented) q Data transfer q Connection release (if conn-oriented) q Addressing the transport user

q Connection establishment (if connection-oriented) q Data transfer q Connection release (if conn-oriented) q Addressing the transport user Transport service characterization The Transport Layer End-to-End Protocols: UDP and TCP Connection establishment (if connection-oriented) Data transfer Reliable ( TCP) Unreliable / best effort ( UDP)

More information

Chapter 5. Transport layer protocols

Chapter 5. Transport layer protocols Chapter 5. Transport layer protocols This chapter provides an overview of the most important and common protocols of the TCP/IP transport layer. These include: User Datagram Protocol (UDP) Transmission

More information

Data Networks Summer 2007 Homework #3

Data Networks Summer 2007 Homework #3 Data Networks Summer Homework # Assigned June 8, Due June in class Name: Email: Student ID: Problem Total Points Problem ( points) Host A is transferring a file of size L to host B using a TCP connection.

More information

Lecture 15: Congestion Control. CSE 123: Computer Networks Stefan Savage

Lecture 15: Congestion Control. CSE 123: Computer Networks Stefan Savage Lecture 15: Congestion Control CSE 123: Computer Networks Stefan Savage Overview Yesterday: TCP & UDP overview Connection setup Flow control: resource exhaustion at end node Today: Congestion control Resource

More information

An Overview and Comparison of Analytical TCP Models

An Overview and Comparison of Analytical TCP Models An Overview and Comparison of Analytical TCP Models Inas Khalifa and Ljiljana Trajkovic Communication Networks Laboratory http://www.ensc.sfu.ca/research/cnl School of Engineering Science Simon Fraser

More information

CS 268: Lecture 5 (TCP/IP Architecture)

CS 268: Lecture 5 (TCP/IP Architecture) CS 268: Lecture 5 (TCP/IP Architecture) Ion Stoica February 1, 2006 The Problem Before Internet: different packet-switching networks (e.g., ARPANET, ARPA packet radio) - only nodes on the same network

More information

CSE 123: Computer Networks

CSE 123: Computer Networks Total Points = 28 CSE 123: Computer Networks Homework 2 Solutions Out: 4/20, Due: 4/27 Problems 1. High Frequency Trading [5 pts] Companies like Goldman Sachs put a high value on using very low latency

More information

Understand the OSI Model

Understand the OSI Model Understand the OSI Model Part 2 Lesson Overview In this lesson, you will learn information about: Frames Packets Segments TCP TCP/IP Model Well-known ports for most-used purposes Anticipatory Set Review

More information

TCP in Wireless Mobile Networks

TCP in Wireless Mobile Networks TCP in Wireless Mobile Networks 1 Outline Introduction to transport layer Introduction to TCP (Internet) congestion control Congestion control in wireless networks 2 Transport Layer v.s. Network Layer

More information

TCP context and interfaces

TCP context and interfaces Linux Networking: tcp David Morgan TCP context and interfaces Computer A Computer B application process application process data data data data TCP process TCP process a network 1 TCP purposes and features

More information

La couche transport dans l'internet (la suite TCP/IP)

La couche transport dans l'internet (la suite TCP/IP) La couche transport dans l'internet (la suite TCP/IP) C. Pham RESO-LIP/INRIA Université Lyon 1 http://www.ens-lyon.fr/~cpham Basé sur les transparent de Shivkumar Kalyanaraman La couche transport dans

More information

How do I get to www.randomsite.com?

How do I get to www.randomsite.com? Networking Primer* *caveat: this is just a brief and incomplete introduction to networking to help students without a networking background learn Network Security. How do I get to www.randomsite.com? Local

More information

Lecture 19 Overview. Last Lecture. This Lecture. Next Lecture. Internet Protocol (2) Transport Control Protocol (1) Source: chapters 23, 24

Lecture 19 Overview. Last Lecture. This Lecture. Next Lecture. Internet Protocol (2) Transport Control Protocol (1) Source: chapters 23, 24 Lecture 19 Overview Last Lecture Internet Protocol (2) This Lecture Transport Control Protocol (1) Generic transport layer Connection management Source: chapters 23, 24 Next Lecture Transport Control Protocol

More information

Second Midterm for ECE374 04/08/15 Solution!!

Second Midterm for ECE374 04/08/15 Solution!! ECE374: First Midterm 1 Second Midterm for ECE374 04/08/15 Solution!! Instructions: a. Put your name and student number on each sheet of paper! b. The exam is closed book. c. You have 90 minutes to complete

More information