560 likes | 756 Views
Lecture, November 27, 2002. TCP Other Internet Protocols; Internet Traffic Scalability of Virtual Circuit Networks QoS. IPv6. UDP. TCP. Supports: Error control. For each segment: Sequence numbers. Acknowledgment. Timeout Example – stop and wait protocol. Very inefficient.
E N D
Lecture, November 27, 2002 • TCP • Other Internet Protocols; Internet Traffic • Scalability of Virtual Circuit Networks • QoS
TCP • Supports: • Error control. For each segment: • Sequence numbers. • Acknowledgment. • Timeout • Example – stop and wait protocol. Very inefficient. • Window based • Flow Control • Congestion Control
TCP 1 bit flags • ACK – when set the ack value is valid • SYN, RST, FIN – used for connection establishment and tear-down • PUSH – data should be passed to the upper layer immediately. • URG – there is urgent information in the data
TCP is a connection-oriented protocol for client-server communication
TCP congestion control • Host centric, feedback-based resource allocation policy. • The congestion control window is affected by the timing of the acknowledgments. A late or missing acknowledgment signals that the network is congested.
Other Internet protocols • ICMP – used by hosts and routers to exchange network layer information, e.g., error reporting • RIP – Routing Information Protocol • OSPF – Open Shortest Path First Protocol
Internet traffic • TCP 90 – 95 % of the Internet traffic • 65-75 % of TCP traffic is Web related • 10 % of TCP traffic is due to News • 5 % of TCP traffic is due to Email • 5 % of TCP traffic is due to FTP • 1 % of TCP traffic is due to Napster • UDP 5 – 10 % of the Internet traffic • DNS • Realaudio • games
Scalability issues with VCs • Assume a router with • n input and n output lines of b Gbps • average packet size l bytes • determine the size of the routing table
Original Algorithm for Adaptive Retransmission • MeasureSampleRTTfor each segment/ACK pair • Compute weighted average of RTT • EstimatedRTT = ax EstimatedRTT + (1- a)x SampleRTT • where 0.8 < a < 0.9 • Set timeout based onEstimatedRTT • TimeOut = 2 x EstimatedRTT
Karn/Partridge Algorithm • Do not sample RTT when re-transmitting • Double timeout after each retransmission
Jacobson/Karels Algorithm • New calculation for average RTT Diff = SampleRTT - EstimatedRTT EstimatedRTT = EstimatedRTT + (dx Deviation = Deviation + d(|Diff|- Deviation) • where d is a fraction between 0 and 1 • Consider variance when setting timeout value • TimeOut = m x EstimatedRTT + f x Deviation • where m = 1 and f = 4 • Notes • algorithm only as good as granularity of clock (500 microseconds on Unix) • accurate timeout mechanism important to congestion control (later)
Congestion Control Mechanisms • The sender must perform retransmissions to compensate for lost packets due to buffer overflow. • Unneeded retransmissions by the sender due to large delays causes a router to use link bandwidth to forward unneeded copies of a packet. • When a packet is dropped along a path the capacity used used at each upstream routers to forward packets to the point where it was dropped was wasted.
Flows and resource allocation • Flow: sequence of packets with a common characteristics • A layer-N flow the common attribute a layer-N attribute • All packets exchanged between two hosts network layer flow • All packets exchanged between two processes transport layer flow
Min-max fair bandwidth allocation • Goal: fairness in a best-effort network. • Consider: • Unidirectional flows • Routers with infinite buffer space • Link capacity is the only limiting factor.
Algorithm • Start with an allocation of zero Mbps for each flow. • Increment equally the allocation for each flow until one of the links of the network becomes saturated. Now all the flows passing through the saturated link get an equal fraction of the link capacity. • Increment equally the allocation for each flow that does not pass through the first saturated link until a second link becomes saturated. Now all the flows passing through the saturated link get an equal fraction of the link capacity. • Continue by incrementing equally the allocations of all flows that do not use a saturated link until all flows use at least one saturated link.
QoS in a datagram network? • Packet Classification. • Buffer acceptance algorithms. • Explicit Congestion Notification. • Flow measurements
Packet classification • Identify the flow the packet belongs to. • The edge routers may be able to do that. • MPLS – multi protocol label switch. Add an extra header in front of the IP header. Now a router decides the output link based upon the input link and the MPLS header.
Buffer acceptance algorithms • Tail Drop. • RED – Random Early Detection • RIO – Random Early Detection with In and Out packet dropping strategies.
Explicit Congestion Notification (ECN) • Routers could prevent congestion by informing the source of the packets when they become lightly congested, but before they start dropping packets. • This strategy is called source quench.
Source quench • A router sets a congestion notification flag in the IP header to inform the destination that signs of congestion are visible. • The destination informs the source by setting a flag in the TCP header of segments carrying acknowledgments.
Problems with ECN (1) TCP must be modified to support the new flag. (2) Routers must be modified to distinguish between ECN-capable flows and those who do not support ECN. (3) IP must be modified to support the congestion notification flag. (4) TCP should allow the sender to confirm the congestion notification to the receiver, because acknowledgments could be lost.
Flow measurements • How to choose the measurement interval to accommodate bursty traffic? • Token bucket
The token bucket filter • Characterized by : (1) A token rate R, and (2) The depth of the bucket, B • Basic idea the sender is allocated tokens at a given rate and can accumulate tokens in the bucket until the bucket is filled. To send a byte the sender must have a token. The maximum burst can be of size B because at most B token can be accumulated.
Example • Flow A: generates data at a constant rate of 1 Mbps. Its filter will support a rate of 1 Mbps and a bucket depth of 1 byte, • Flow B: alternates between 0.5 and 2.0 Mbps. Its filter will support a rate of 1 Mbps and a bucket depth of 1 Mbps • Note: a single flow can be described by many token buckets.
Token bucket L = packet length C = # of tokens in the bucket --------------------------------------------------- if ( L <= C ) { accept the packet; C = C - L; } else drop the packet;
A shaping buffer delays packets that do not confirm to the traffic shape if ( L <= C ) { accept the packet; C = C - L;} else { /* the packet arrived early, delay it */ while ( C < L ) { wait; } transmit the packet; C = C - L;}
Packet Scheduling • PS and GPS – Processor Sharing & Generalized Processor Sharing • Round Robin, Weighted Round Robin • Priority Scheduling • Weighted Fair Queuing – practical version of GPS. Transmits packets in the order of their finishing time.
RSVP- Resource Reservation Protocol • Used to establish a path for a flow and reserve resources along the path. • Requirements: • Accommodate faults – soft state. • Support unicast as well as multicast. • PATH messages issued by sender includes TSpec • RESV messages issued by the receiver includes RSpec