CSCD 330 Network Programming

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transportation Layer. Very similar to the data link layer. – two hosts connected by a link or two hosts connected by a network differences: – When two.
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.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Chapter 3 outline 3.1 transport-layer services
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
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 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
Chapter 3 Transport Layer
The Future r Let’s look at the homework r The next test is coming the 19 th (just before turkey day!) r Monday will finish TCP canned slides r Wednesday.
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
Announcement Homework 1 graded Homework 2 out –Due in a week, 1/30 Project 2 problems –Minet can only compile w/ old version of gcc (2.96). –Only tlab-login.
Transport Layer session 1 TELE3118: Network Technologies Week 9: Transport Layer Basics Some slides have been taken from: r Computer Networking:
2: Application Layer 1 1DT066 Distributed Information System Chapter 3 Transport Layer.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Network LayerII-1 RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part.
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
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.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
1 CSCD 330 Network Programming Some Material in these slides from J.F Kurose and K.W. Ross All material copyright Lecture 10 Transport Layer.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
September 26 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these.
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
09-Transport Layer: TCP Transport Layer.
Chapter 3 Transport Layer
COMP 431 Internet Services & Protocols
Chapter 3 outline 3.1 Transport-layer services
DMET 602: Networks and Media Lab
Chapter 3 outline 3.1 transport-layer services
CS 1652 Jack Lange University of Pittsburgh
Slides have been adapted from:
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
Introduction to Networks
TCP.
CS1652 TCP Jack Lange University of Pittsburgh
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Chapter 3 Transport Layer
Transport Layer Goals: Overview:
TCP - Part I Karim El Defrawy
Chapter 5 TCP Transmission Control
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Chapter 3 outline 3.1 Transport-layer services
Transmission Control Protocol (TCP)
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 3 Transport Layer
Chapter 3 Transport Layer
Lecture 5 – Chapter 3 CIS 5617, Spring2019 Anduo Wang
Presentation transcript:

CSCD 330 Network Programming Lecture 10 Transport Layer Continued Spring 2018 Reading: Chapter 3 Some Material in these slides from J.F Kurose and K.W. Ross All material copyright 1996-2007 1 1

Last Time …. Started to build a generic reliable protocol Covered the case where underlying medium was absolutely reliable Added the case where there are bit errors 0101110101010001110101010 Packet 2

Rdt3.0: Now Have Channels with Errors and Loss Added this Assumption Underlying channel can also lose packets Data or ACKs Sender doesn’t know if data packet or ACK was lost, or just delayed Checksum, Sequence numbers, ACKs, Retransmissions Will be of help, but not enough Transport Layer 3-3

Rdt3.0: Now Have Channels with Errors and Loss Approach Sender waits “reasonable” amount of time for ACK Retransmits if no ACK received in this time If packet (or ACK) just delayed ... not lost Retransmission will be duplicate, but use of Sequence numbers to handle this Receiver must specify sequence number of packet being ACKed Loss, however, Requires countdown timer!!! 4

Rdt3.0 Stop and Wait with Timer Waiting for each packet to get sent or timeout via Stop and Wait is very slow … 5

Performance of Rdt3.0 rdt3.0 works, but performance is bad Example: 1 Gbps link, 15 msec end-to-end propagation delay, 100,000 byte message, RTT = 30 msec, cross country dtrans L (message length in bits)‏ 800000 bits = = = 8 millisec 10**9 b/sec R (transmission rate, bps)‏ U sender: Utilization is fraction of time sender busy sending 100 K byte mesg every 30 msec -> 276 kbs thruput of 1 Gbps link Example of how network protocol limits use of physical resources! Transport Layer 3-6

rdt3.0: Stop-and-wait Operation sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R

Solution to Slowness: Pipelined protocols!!! Pipelining: Sender allows multiple, “in-flight”, yet-to-be-acknowledged packets without waiting for ACK’s What now needs to change from our Stop and Wait protocol? Buffering of packets - establish queues Increase sequence numbers 8

Solution to Slowness: Pipelined protocols!!! Changes as Result of Pipelining Range of sequence numbers must be increased Buffering at sender and/or receiver Two generic forms of pipelined protocols: Go-Back-N, Selective Repeat Elements of both these are used in TCP Transport Layer 3-9

Pipelining: increased utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Increase utilization by a factor of 3!

Go-Back-N (sliding window protocol) Sender k-bit seq # in pkt header “window” of up to N, consecutive unack’ed pkts allowed ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK” Sender may receive duplicate ACKs Timer for each in-flight pkt Timeout(n): retransmit pkt n and all higher seq # pkts in window Do not buffer packets after a loss!

GBN in action Window size=N=4 What determines size of window? RTT Buffer at the receiver(flow control) Network congestion Q: GBN has poor performance. How? Sender sends pkt 1,2,3,4,5,6,7,8,9.. pkt 1 got lost, receiver got pkt 2,3,4,5,… but will discard them!

Selective Repeat (improvement of the GBN Protocol) Receiver individually acknowledges all correctly received pkts Buffers pkts, as needed, for in-order delivery to upper layer E.g., sender: pkt 1,2,3,4,….,10; receiver got 2,4,6,8,10. Sender resends 1,3,5,7,9. Sender only resends pkts for which ACK not received Sender has timer for EACH unACKed pkt Sender window N consecutive seq #’s Again limits seq #s of sent, unACKed pkts

Selective Repeat: Sender, Receiver Windows What is different? Ack is lost or ack is on its way

Why bother study reliable data transfer? We know it is provided by TCP, so why bother to study? Sometimes, we may need to implement “some form” of reliable transfer without the heavy duty TCP A good example is multimedia streaming Even though application is loss tolerant, if too many packets got lost, it affects visual quality So we may want to implement some form of reliable transfer How will you do that if you don't understand how Reliability works …..

+ Who is this? Who is this? Vint Cerf Bob Kahn = TCP 16

TCP Overview RFCs: 793, 1122, 1323, 2018, 2581 and others Point-to-point One sender, one receiver Reliable, in-order byte stream Streams are reassembled at receiver Pipelined TCP congestion and flow control set window size Send & receive buffers

TCP Overview Full Duplex Data Bi-directional data flow in same connection Connection-oriented Handshaking, exchange of control messages Sender, receiver establish state before data exchange One-to-one, no multicast allowed Multicast recall is ... One sender, many receivers Flow controlled Sender will not overwhelm receiver 18

TCP Overview TCP is a sliding window protocol Sender has Window of bytes in flight Operates with cumulative ACK's It includes control for sending rate Flow control: Receiver sets sending rate Between Sender/Reciver Congestion control: Network-aware sending rate Includes all TCP users Congwin

TCP Header Control Flags source port # dest port # application data 32 bits application data (variable length)‏ sequence number acknowledgement number Receive window URG data pointer checksum F S R P A U head len not used Options (variable length)‏ Control Flags URG: urgent data SEQ and Ack #’s Count by bytes of data (not segments!)‏ ACK: ACK # valid PSH: push data Pass data to application right away # bytes receiver willing to accept RST, SYN, FIN: connection estab (setup, teardown commands)‏ Internet checksum (as in UDP)‏ Transport Layer 3-20

Recall UDP Header 32 bits Length, in bytes of UDP segment, including 21

TCP header fields Port Numbers Port Numbers - Source and Destination Port number identifies endpoint of a connection A pair <IP address, port number> identifies one endpoint of a connection Recall, we need two pairs of Identifiers <client IP address, client port number> <server IP address, server port number> Identify a TCP connection!!

TCP header fields Sequence Number Sequence Number - SeqNo Sequence number is 32 bits long So the range of SeqNo is 0 <= SeqNo <= 232 -1 What is the Maximum amount of data? 4294967296 - 1 Each sequence number identifies a byte in the byte stream Initial Sequence Number (ISN) of a connection is set during connection establishment Used to be consecutive numbers Now, its a long random number Why the random number?

TCP header fields ACK Number Acknowledgement Number (AckNo)‏ A hosts uses AckNo field to send acknowledgements of bytes received If a host sends an AckNo in segment it sets “ACK flag” AckNo contains next SeqNo that hosts wants to receive

TCP Header Fields Flag Bits URG: Urgent If the bit is set, bytes contain an urgent message ACK: Acknowledgment Flag When set, segment contains an acknowledgment for a segment that was successfully received PSH: PUSH Flag From sender to receiver, that receiver should pass all data that it has to application Set by sender when sender’s buffer is empty

TCP Header Fields Flag Bits RST: Reset the connection Flag causes receiver to reset connection Receiver of a RST terminates connection and indicates to higher layer application, is a reset SYN: Synchronize sequence numbers Sent in first packet when initiating a connection FIN: Sender is finished with sending Used for closing a connection Both sides of a connection must send a FIN

TCP Header Fields Flag Bits Window Size Each side of connection advertises window size Window size is maximum number of bytes that receiver can accept. Maximum window size is 216-1= 65535 bytes TCP Checksum TCP checksum covers both TCP header and TCP data Urgent Pointer Only valid if URG flag is set

TCP Sequence and ACK Numbers Max Segment Size – MSS Maximum amount of data that can be grabbed and placed in a TCP segment, doesn’t include headers Depends on MTU – Maximum Transmission Unit Largest Link layer frame that can be sent by the sending host Common values are 1460, 536 and 512 bytes 28

TCP Byte Stream Idea Review concept Application pumps bytes to TCP TCP responsible for packaging bytes and sending them Divides byte stream into segments Means Each byte has an identifier Keeps track of What was sent, What was Ack'd by receiver What still needs to be sent Space available in buffer on receiver side

TCP Sequence and ACK Numbers TCP divides data up into ordered stream Sequence number is byte-stream number of first byte in segment Example: File of 500,000 bytes and MSS = 1000 Assume first byte = 0, Segment 1 Seq # = 0, Segment 2 Seq # = 1000 Segment 3 Seq # = 2000, etc 30

Relationship Between Sequence and ACK Numbers ACK field in TCP header for receiver to indicate acknowledgment of data received In bytes! Not segments Acknowledges number of bytes of data received What happens when TCP segments arrive out of order? What gets sent back to the sender? (We'll Draw this) Example: Receiver got 0-535 and 900-1000, but is waiting for 536-899 Receiver will send ACK 536 to sender Keeps a cumulative ACK count, Buffers out of order bytes, waits for missing bytes 31

TCP Sequence Numbers/Acks Byte stream “number” of first byte in a segment’s data ACKs Seq number of next byte expected from other side “Cumulative” ACK Question- How receiver handles out-of-order segments Answer - TCP spec doesn’t say, Up to implementer

TCP Sequence and ACK Numbers Telnet Example Beg Seq # 42 Beg Seq # 79 Host A Host B User types ‘C’ Seq=42, ACK=79, data = ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ Seq=79, ACK=43, data = ‘C’ host ACKs receipt of echoed ‘C’ Seq=43, ACK=80 time Simple telnet scenario Transport Layer 3-33

TCP TimeOuts

How Long for TCP Time-out Remember, TCP has to ensure reliability So bytes need to be resent if there is no “timely” Acknowledgment How long should the sender wait ? It should be adaptive -- fluctuation in network load If too short, false time-outs If too long, then poor rate of sending Depends on round trip time estimation

Setting the Timeout Interval TCP must re-transmit segments that get lost Uses RTT – Round Trip Time Time from when segment sent until it is ACK’d … does this for every packet sent TCP updates this value continuously, calls it SampleRTT 36

TCP Round Trip Time and Timeout For SampleRTT Why might it Fluctuate? Transport Layer 3-37

TCP Round Trip Time and Timeout SampleRTT Why does it Fluctuate? Congestion in routers Network outages Load on hosts Mis-configured devices Transport Layer 3-38

TCP Round Trip Time and Timeout What do you do to smooth out fluctuations? Take an average of SampleRTT values Smooths low and high values to something more reasonable for long term Transport Layer 3-39

TCP Round Trip Time and Timeout When get new SampleRTT TCP Calculates a running EstimatedRTT with new sample EstimatedRTT = (1- α)*EstimatedRTT + α *SampleRTT Exponential weighted moving average Influence of past sample decreases exponentially fast Typical value: α = 0.125 EstimatedRTT = .875*EstimatedRTT + .125*SampleRTT Transport Layer 3-40

Example RTT Estimation Transport Layer 3-41

TCP Round Trip Time and Timeout Setting the timeout EstimtedRTT plus “safety margin” Large variation in EstimatedRTT -> larger safety margin Because larger variation means more unpredictable First, get estimate of how much SampleRTT deviates from EstimatedRTT, DevRTT = (1-∆) * DevRTT + ∆ * |SampleRTT-EstimatedRTT| (typically, ∆ = 0.25)‏ Then set timeout interval TimeoutInterval = EstimatedRTT + 4*DevRTT Transport Layer 3-42

TCP Reliable Data Transfer TCP creates reliable service on top of IP’s unreliable service What does that mean? Pipelined segments Cumulative Acks of received segments TCP uses single retransmission timer Transport Layer 3-43

TCP Reliable Data Transfer (rdt)‏ Retransmissions are triggered by Timeout events Duplicate Acks First, just look at a simplified version .... Initially consider simplified TCP sender Ignore duplicate Acks Ignore flow control Ignore congestion control Point is to understand how byte flow happens

TCP Sender Events Data received from Application Create segment with seq number Seq number is byte-stream number of first data byte in segment Start timer if not already running Timer is for oldest un-Acked segment Expiration interval: TimeOutInterval Transport Layer 3-45

TCP Sender Events Timeout Ack Rcvd Retransmit segment that caused timeout Restart timer Ack Rcvd If acknowledgment is for previously un-Acked segments Update what is known to be Acked Variable SendBase = Oldest unAcked byte Start timer if there are outstanding segments

TCP: Retransmission Scenarios Host A Seq=92, 8 bytes data ACK=100 loss timeout Lost ACK scenario Host B X time Host A Host B Seq=92 timeout Seq=92, 8 bytes data Sendbase = Seq num Oldest UnAcked Byte Seq=100, 20 bytes data ACK=100 ACK=120 Sendbase = 100 Seq=92, 8 bytes data Seq=92 timeout SendBase = 120 ACK=120 SendBase = 100 SendBase = 120 Premature timeout time Transport Layer 3-47 47

TCP retransmission scenarios (more)‏ Host A Seq=92, 8 bytes data ACK=100 loss timeout Cumulative ACK scenario Host B X Seq=100, 20 bytes data ACK=120 time SendBase = 120 Transport Layer 3-48

TCP Sender Events Data received from Application Create segment with seq number Seq number is byte-stream number of first data byte in segment Start timer if not already running Timer is for oldest un-Acked segment Expiration interval: TimeOutInterval Transport Layer 3-49

Timeout Modifications TCP uses other mechanisms than simple timeout to manage retransmissions Each time TCP retransmits segment, doubles the time- out interval instead of deriving it, we assume congestion Why? Say timeout is .75 secs, sends segment First time, timeout doubled to 1.5 secs Second time, timeout doubled to 3.0 secs Intervals grow exponentially, provides limited form of congestion control 50

Fast Retransmit Another TCP Modification One problem with time-out period, can be long ... Long delay before resending lost packet! How could you detect lost packets? Transport Layer 3-51

Fast Retransmit Detect lost segments before timeout happens Duplicate ACKs Sender often sends many segments back-to-back If segment is lost, there will likely be many duplicate ACKs If sender receives 3 ACKs for the same data, it supposes that segment after ACKd data was lost Fast Retransmit resend segment before timer expires

Transport Protocol 53