Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CSE 30264 Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010."— Presentation transcript:

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

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

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

4 Spring 2009CSE302644 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

5 Spring 2009CSE302645 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

6 Spring 2009CSE302646 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

7 Spring 2009CSE302647 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

8 Spring 2009CSE302648 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

9 Spring 2009CSE302649 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

10 Spring 2009CSE3026410 PIM

11 Spring 2009CSE3026411 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.

12 Spring 2009CSE3026412 Destination-Based Forwarding 10.1.1/24 10.3.3/24 0 0 1 10.1.10 10.3.30 ■ ■ ■ PrefixInterface 10.1.1 10.3.30 ■ ■ ■ PrefixInterface 1 R2R1 R4 R3

13 Spring 2009CSE3026413 Label Distribution Protocol

14 Spring 2009CSE3026414 Label Distribution Protocol 10.1.1/24 10.3.3/24 0 0 1 R2R1 R4 R3 1510.1.1124 1610.3.30 ■ ■ ■ LabelPrefixInterface 10.1.1 0 10.3.3 0 ■ ■ ■ PrefixInterface Remote Label 15 16 Remote Label Label = 24, Prefix = 10.1.1

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

16 Spring 2009CSE3026416 Benefits

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

18 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 3026418

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

20 Spring 2009CSE3026420 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

21 Spring 2009CSE3026421 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

22 Spring 2009CSE3026422 UDP

23 Spring 2009CSE3026423 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 ■ ■ ■

24 Spring 2009CSE3026424 Segment Format

25 Spring 2009CSE3026425 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

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

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

28 Spring 2009CSE3026428 State Transition Diagram

29 Spring 2009CSE3026429 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

30 Spring 2009CSE3026430 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

31 Spring 2009CSE3026431 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

32 Spring 2009CSE3026432 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

33 Spring 2009CSE3026433 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

34 Spring 2009CSE3026434 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  : 0.8 - 0.9 –retransmit timer set to  RTT, where  = 2

35 Spring 2009CSE3026435 Retransmission Ambiguity AB ACK AB Original transmission retransmission Sample RTT Original transmission retransmission ACK

36 Spring 2009CSE3026436 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

37 Spring 2009CSE3026437 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

38 Spring 2009CSE3026438 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

39 Spring 2009CSE3026439 Record Boundaries Byte-stream protocol: write 8+2+20 bytes and read 5+5+5+5+5+5 (loop). TCP offers two features to insert record boundaries: –URG flag –push operation

40 Spring 2009CSE3026440 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.


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

Similar presentations


Ads by Google