CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010.

Slides:



Advertisements
Similar presentations
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
Advertisements

COT 4600 Operating Systems Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM.
Courtesy: Nick McKeown, Stanford Umar Kalim, NIIT Robin Kravets, UIUC 1 Transmission Control Protocol (TCP), Tahir Azim.
CSCI 4550/8556 Computer Networks
Slide Set 13: TCP. In this set.... TCP Connection Termination TCP State Transition Diagram Flow Control How does TCP control its sliding window ?
CS 6401 Transport Control Protocol Outline TCP objectives revisited TCP basics New algorithms for RTO calculation.
Computer Networks Chapter 5: End-to-End Protocols
1 Chapter 5 End-to-End Protocols Outline 5.1 UDP 5.2 TCP 5.3 Remote Procedure Call.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
8. Transport Protocol and UDP 8.1 Transport protocol : End-to-end protocol –IP: Host to host packet delivery –Transport: Process to process communication.
CSE331: Introduction to Networks and Security Lecture 10 Fall 2002.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
6-May-154/598N: Computer Networks End-to-End Protocols Underlying best-effort network –drop messages –re-orders messages –delivers duplicate copies of.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010.
TCP 4/15/2017.
Fundamentals of Computer Networks ECE 478/578 Lecture #21: TCP Window Mechanism Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
CSE 124 Networked Services Fall 2009 B. S. Manoj, Ph.D 10/20/20091CSE 124 Networked Services Fall 2009 Some.
CSE 461: Sliding Windows & ARQ. Next Topic  We begin on the Transport layer  Focus  How do we send information reliably?  Topics  The Transport layer.
TDC561 Network Programming Camelia Zlatea, PhD Week 10: Performance Aspects of End-to-End (Transport)
Spring 2003CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Spring 2002CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
1 Transport Layer Computer Networks. 2 Where are we?
1 #6 in Mid-Term  Most answered:  many users thru the same bottleneck -> increased queueing delay -> increased e2e latency  Possible reasons behind.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
1 Internet Engineering University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
1 Lecture 14 High-speed TCP connections Wraparound Keeping the pipeline full Estimating RTT Fairness of TCP congestion control Internet resource allocation.
Chapter 12 Transmission Control Protocol (TCP)
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Spring 2008CPE Computer Networks1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Ilam University Dr. Mozafar Bag-Mohammadi 1 Transport Layer.
CSE/EE 461 Sliding Windows and ARQ. 2 Last Time We finished up the Network layer –Internetworks (IP) –Routing (DV/RIP, LS/OSPF) It was all about routing:
EE 122: Transport Protocols Kevin Lai October 16, 2002.
Transmission Control Protocol (TCP) connection-oriented stream data transfer data sent as an unstructured stream of bytes reliability acknowledgements.
1 End-to-End Protocols UDP TCP –Connection Establishment/Termination –Sliding Window Revisited –Flow Control –Congestion Control –Adaptive Timeout.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Univ. of TehranIntroduction to Computer Network1 An Introduction Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE.
Advanced Computer Networks
3. END-TO-END PROTOCOLS (PART 2) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Transport Control Protocol
5. End-to-end protocols (part 1)
Internet routing Problem: Route from any node to any other node
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
TCP Overview Connection-oriented Byte-stream Full duplex
Transport Control Protocol
5. End-to-end protocols (part 2)
Advanced Computer Networks
Reliable Byte-Stream (TCP)
Ilam University Dr. Mozafar Bag-Mohammadi
Transmission Control Protocol (TCP) Part II Neil Tang 11/21/2008
State Transition Diagram
Advanced Computer Networks
The University of Adelaide, School of Computer Science
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
Introduction to Computer Networks
Introduction to Computer Networks
Transport Protocols: TCP Segments, Flow control and Connection Setup
Presentation transcript:

CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010

Today’s Lecture Advanced Routing –Multicast –MPLS Transport –UDP –TCP Spring 2010CSE Physical Data Network Transport Application

Spring 2009CSE Multicast & MPLS Outline Multicast for LS Multicast for DV Protocol Independent Multicast MPLS Lecture notes  unplugged

Spring 2009CSE Process Groups Any set of processes that want to cooperate Processes can join/leave a group A process can belong to many groups Groups can be either open or closed Use multicast rather than point-to-point messages –group name (address) provides a useful level of indirection Example uses –data dissemination (e.g., news) –replicated servers

Spring 2009CSE Multicast Addresses Subrange of IP address space reserved for MC (class D for IPv4) IPv4: 28 bits of possible MC addresses Ethernet: uses 23 bits for multicast Mapping 28 bits onto 23 bits: 32 IP addresses map into each one of the Ethernet addresses Ethernet host joins IP MC group by configuring device to receive Ethernet MC address. IP at host must inspect packet if actually directed to this host

Spring 2009CSE Multicast Routing: LS Each host on a LAN periodically announces the groups it belongs to using IGMP Augment update message (LSP) to include set of groups that have members on a particular LAN Each router uses Dijkstra’s algorithm to compute shortest-path spanning tree for each source/group pair Each router caches tree for currently active source/group pairs

Spring 2009CSE Multicast Routing: DV Reverse Path Broadcast –Each router already knows that shortest path to S goes through router N –When receive multicast packet from S, forward on all outgoing links (except one it arrived on), iff packet arrived from N –Eliminate duplicate broadcast packets by letting only “parent” for LAN (relative to S) forward shortest path to S (learn from distance vector) smallest address to break ties

Spring 2009CSE DV (cont) Reverse Path Multicast –Goal: prune networks that have no hosts in group G –Step 1: determine if LAN is a leaf w/o members in G leaf if parent is only router on the LAN determine if any hosts are members of G using IGMP –Step 2: propagate “no members of G here” information augment (destination, cost) update sent to neighbors with set of groups for which this network is interested in receiving multicast packets only happens when multicast address becomes active

Spring 2009CSE Protocol Independent Multicast PIM: sparse mode (PIM-SM) and dense mode Routers join/leave groups: Join/Prune messages Rendezvous Point (RP) for each group Shared trees and source-specific trees

Spring 2009CSE PIM

Spring 2009CSE Multiprotocol Label Switching MPLS: –enable IP capabilities on devices that do not have capability to forward IP datagrams in normal manner. –forward IP packets along ‘explicit routes’. –support certain types of virtual private network services.

Spring 2009CSE Destination-Based Forwarding / / ■ ■ ■ PrefixInterface ■ ■ ■ PrefixInterface 1 R2R1 R4 R3

Spring 2009CSE Label Distribution Protocol

Spring 2009CSE Label Distribution Protocol / / R2R1 R4 R ■ ■ ■ LabelPrefixInterface ■ ■ ■ PrefixInterface Remote Label Remote Label Label = 24, Prefix =

Spring 2009CSE Label Switching Routers Label headerPPP headerLayer 3 header “Shim “ header (for PPP, Ethernet, etc.) ATM cell header HEC Label DATACLPPTIVCIGFCVPI (a) (b)

Spring 2009CSE Benefits

Spring 2009CSE Explicit Routing “Fish” network Resource Reservation Protocol (RSVP)

Mid-Term Exam Everything through multicast / MPLS on first exam Exam brief discussion –Shift  two page notes, front / back –Key points from Wiki could be very helpful Take home quiz –Short answer –Computation / work –Discussion / ponder Spring 2010CSE

Spring 2009CSE Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout

Spring 2009CSE End-to-End Protocols Underlying best-effort network –drop messages –re-orders messages –delivers duplicate copies of a given message –limits messages to some finite size –delivers messages after an arbitrarily long delay Common end-to-end services –guarantee message delivery –deliver messages in the same order they are sent –deliver at most one copy of each message –support arbitrarily large messages –support synchronization –allow the receiver to flow control the sender –support multiple application processes on each host

Spring 2009CSE Simple Demultiplexor (UDP) Unreliable and unordered datagram service Adds multiplexing No flow control Endpoints identified by ports –servers have well-known ports –see /etc/services on Unix Header format Optional checksum –pseudo header + UDP header + data

Spring 2009CSE UDP

Spring 2009CSE TCP Overview Connection-oriented Byte-stream –app writes bytes –TCP sends segments –app reads bytes Full duplex Flow control: keep sender from overrunning receiver Congestion control: keep sender from overrunning network Application process Write bytes TCP Send buffer Segment Transmit segments Application process Read bytes TCP Receive buffer ■ ■ ■

Spring 2009CSE Segment Format

Spring 2009CSE Segment Format (cont) Each connection identified with 4-tuple: –(SrcPort, SrcIPAddr, DstPort, DstIPAddr) Sliding window + flow control –ACK, SequenceNum, AdvertisedWindow Flags –SYN, FIN, RESET, PUSH, URG, ACK Checksum –pseudo header + TCP header + data

Spring 2009CSE Connection Establishment Active participant (client) Passive participant (server) SYN, SequenceNum = x ACK, Acknowledgment =y+1 Acknowledgment =x+1 SYN+ACK, SequenceNum=y,

Spring 2009CSE Connection Termination First participantSecond participant FIN, SequenceNum = x ACK, Acknowledgment =y+1 ACK, Acknowledgment=x+1, FIN, SequenceNum = y, Acknowledgment = x+1

Spring 2009CSE State Transition Diagram

Spring 2009CSE Sliding Window Revisited Sending side –LastByteAcked < = LastByteSent –LastByteSent < = LastByteWritten –buffer bytes between LastByteAcked and LastByteWritten Receiving side –LastByteRead < NextByteExpected –NextByteExpected < = LastByteRcvd +1 –buffer bytes between LastByteRead and LastByteRcvd

Spring 2009CSE Flow Control Send buffer size: MaxSendBuffer Receive buffer size: MaxRcvBuffer Receiving side –LastByteRcvd - LastByteRead < = MaxRcvBuffer –AdvertisedWindow = MaxRcvBuffer - (( NextByteExpected - 1) - LastByteRead ) Sending side –LastByteSent - LastByteAcked < = AdvertisedWindow –EffectiveWindow = AdvertisedWindow - ( LastByteSent - LastByteAcked ) –LastByteWritten - LastByteAcked < = MaxSendBuffer –block sender if ( LastByteWritten - LastByteAcked ) + y > MaxSenderBuffer Always send ACK in response to arriving data segment Persist when AdvertisedWindow = 0

Spring 2009CSE Protection Against Wrap Around 32-bit SequenceNum BandwidthTime Until Wrap Around T1 (1.5 Mbps)6.4 hours Ethernet (10 Mbps)57 minutes T3 (45 Mbps)13 minutes FDDI (100 Mbps)6 minutes STS-3 (155 Mbps)4 minutes STS-12 (622 Mbps)55 seconds STS-24 (1.2 Gbps)28 seconds

Spring 2009CSE Silly Window Syndrome How aggressively does sender exploit open window? Receiver-side solutions –after advertising zero window, wait for space equal to a maximum segment size (MSS) –delayed acknowledgements SenderReceiver

Spring 2009CSE Nagle’s Algorithm How long does sender delay sending data? –too long: hurts interactive applications –too short: poor network utilization –strategies: timer-based vs self-clocking when application produces data to send if both the available data and the window >= MSS send a full segment else if there is unACKed data in flight buffer the new data until an ACK arrives else send all the new data now

Spring 2009CSE Adaptive Retransmission Round-Trip Time Estimation: –wait at least one RTT before retransmitting –importance of accurate RTT estimators: Low RTT -> unneeded retransmissions High RTT -> poor throughput –RTT estimator must adapt to change in RTT But not too fast, or too slow! –problem: If the instantaneously calculated RTT is 10, 20, 5, 12, 3, 5, 6; what RTT should we use for calculations? –EstimatedRTT =  * EstimatedRTT + (1 -  ) SampleRTT –recommended value for  : –retransmit timer set to  RTT, where  = 2

Spring 2009CSE Retransmission Ambiguity AB ACK AB Original transmission retransmission Sample RTT Original transmission retransmission ACK

Spring 2009CSE Karn/Partridge Algorithm Accounts for retransmission ambiguity If a segment has been retransmitted: –don’t count RTT sample on ACKs for this segment –reuse RTT estimate only after one successful transmission –double timeout after each retransmission

Spring 2009CSE Jacobson/Karels Algorithm Key observation: –using  RTT for timeout doesn’t work –at high loads round trip variance is high Solution: –if D denotes mean variation –timeout = RTT + 4D

Spring 2009CSE Jacobson/Karels Algorithm New Calculations for average RTT Diff = SampleRTT - EstimatedRTT EstimatedRTT = EstimatedRTT + (d * Diff) Dev = Dev + d * (|Diff| - Dev) –where d is a factor between 0 and 1 Consider variance when setting timeout value TimeOut = m * EstimatedRTT + f * Dev –where m = 1 and f = 4

Spring 2009CSE Record Boundaries Byte-stream protocol: write bytes and read (loop). TCP offers two features to insert record boundaries: –URG flag –push operation

Spring 2009CSE TCP Extensions Implemented as header options Better way to measure RTT (use actual system clock for sending time and add timestamp to segment). 64-bit sequence numbers: 32-bit sequence number in low-order 32 bits, timestamp in high-order 32 bits. Shift (scale) advertised window.