Top Banner
31

5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

Jan 19, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.
Page 2: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.3 CONGESTION CONTROL ALGORITHMS

• Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

• The network and transport layers share the responsibility for handling congestion.

• Since congestion occurs within the network, it is the network layer that directly experiences it and must ultimately determine what to do with the excess packets.

• However, the most effective way to control congestion is to reduce the load that the transport layer is placing on the network. This requires the network and transport layers to work together.

Page 3: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.3.1 Approaches to Congestion Control

• The presence of congestion means that the load is (temporarily) greater than the resources (in a part of the network) can handle.

• Two solutions come to mind:– increase the resources – or decrease the load.

• these solutions are usually applied on different time scales to either prevent congestion or react to it once it has occurred.(Figure 5-22.)

Page 4: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.3.1 Approaches to Congestion Control (Figure 5-22)

Page 5: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

Provisioning

• The most basic way to avoid congestion is to build a network that is well matched to the traffic that it carries.

• Sometimes resources can be added dynamically when there is serious congestion,– for example, turning on spare routers or enabling lines that

are normally used only as backups (to make the system fault tolerant)

– or purchasing bandwidth on the open market.• Provisioning happens on a time scale of months, driven

by long-term traffic trends.

Page 6: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

traffic-aware routing

• To make the most of the existing network capacity, routes can be tailored to traffic patterns that change during the day as network users wake and sleep in different time zones.– For example, routes may be changed to shift traffic

away from heavily used paths by changing the shortest path weights.

Page 7: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

admission control

• sometimes it is not possible to increase capacity;

• The only way then to beat back the congestion is to decrease the load.– For example In a virtual-circuit network, new

connections can be refused if they would cause the network to become congested.

Page 8: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

Traffic Throttling

• The network can deliver feedback to the sources whose traffic flows are responsible for the problem; The network can request these sources to throttle their traffic, or it can slow down the traffic itself.

• Two difficulties with this approach are:– how to identify the onset of congestion, – and how to inform the source that needs to slow

down.

Page 9: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

Traffic Throttling (2)

• To tackle the first issue, routers can monitor the average load, queuing delay, or packet loss. In all cases, rising numbers indicate growing congestion.

• To tackle the second issue, routers must participate in a feedback loop with the sources. For a scheme to work correctly, the time scale must be adjusted carefully.– If every time two packets arrive in a row, a router yells

STOP and every time a router is idle for 20 μsec, it yells GO,

Page 10: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

load shedding

• when all else fails, the network is forced to discard packets that it cannot deliver.

• A good policy for choosing which packets to discard can help to prevent congestion collapse.

Page 11: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4 QUALITY OF SERVICE

• An easy solution to provide good quality of service is to build a network with enough capacity for whatever traffic will be thrown at it.

• The resulting network will carry application traffic without significant loss and, assuming a decent routing scheme, will deliver packets with low latency.

• The trouble with this solution is that it is expensive• Quality of service mechanisms let a network with less

capacity meet application requirements just as well at a lower cost.

Page 12: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4 QUALITY OF SERVICE (2)

• No single technique deals efficiently with all these issues. Instead, a variety of techniques have been developed for use at the network (and transport) layer.

Page 13: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements

• A stream of packets from a source to a destination is called a flow.

• The needs of each flow can be characterized by four primary parameters: – bandwidth, – delay, – jitter, – and loss.

• these parameters determine the QoS (Quality of Service) the flow requires.

Page 14: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements (Figure 5-27)

Page 15: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements (Bandwidth )

• Bandwidth (signal processing): a measure of the width of a range of frequencies, measured in hertz

• Bandwidth (computing): the rate of data transfer, bit rate or throughput, measured in bits per second (bit/s)

• The applications differ in their bandwidth needs, • with email, audio in all forms, and remote login not

needing much, • but file sharing and video in all forms needing a great

deal.

Page 16: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements (Delay )

• File transfer applications, including email and video, are not delay sensitive. If all packets are delayed uniformly by a few seconds, no harm is done.

• Interactive applications, such as Web surfing and remote login, are more delay sensitive.

• Real-time applications, such as telephony and videoconferencing, have strict delay requirements. If all the words in a telephone call are each delayed by too long, the users will find the connection unacceptable.

• On the other hand, playing audio or video files from a server does not require low delay.

Page 17: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements (Jitter)

• Jitter: The variation in the delay or packet arrival times• The first three applications in Fig. 5-27 are not sensitive to the

packets arriving with irregular time intervals between them.• Remote login is somewhat sensitive to jitter, since updates on

the screen will appear in little bursts if the connection suffers much jitter.

• Video and especially audio are extremely sensitive to jitter.– If a user is watching a video over the network and the frames are all

delayed by exactly 2.000 seconds, no harm is done. But if the transmission time varies randomly between 1 and 2 seconds, the result will be terrible unless the application hides the jitter.

– For audio, a jitter of even a few milliseconds is clearly audible.

Page 18: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.4.1 Application Requirements (Loss)

• The first four applications have more stringent requirements on loss than audio and video because all bits must be delivered correctly.

• This goal is usually achieved with retransmissions of packets that are lost in the network by the transport layer. This is wasted work; it would be better if the network refused packets it was likely to lose in the first place.

• Audio and video applications can tolerate some lost packets without retransmission because people do not notice short pauses or occasional skipped frames.

Page 19: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5 INTERNETWORKING

• when two or more different networks are connected, they form an internetwork, or more simply an internet

• The purpose of joining all these networks is to allow users on any of them to communicate with users on all the other ones.

• It would be much simpler to join networks together if everyone used a single networking technology

Page 20: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5 INTERNETWORKING

• Many different networks exist, including PANs, LANs, MANs, and WANs. We have described Ethernet, Internet over cable, the fixed and mobile telephone networks, 802.11, 802.16, and more.

• Numerous protocols are in widespread use across these networks in every layer.

Page 21: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.1 How Networks Differ

• Networks can differ in many ways. Some of the differences, such as different modulation techniques or frame formats, are internal to the physical and data link layers. These differences will not concern us here.

Page 22: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.1 How Networks Differ

Figure 5-38. Some of the many ways networks can differ.

Page 23: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.2 How Networks Can Be Connected

Figure 5-39. (a) A packet crossing different networks. (b) Network and linklayer protocol processing.

Page 24: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.3 Tunneling• Tunneling is a technique used to send an IP packet

containing an IPv6 address through IPv4 network to a multiprotocol router that connects an IPv6 network to the IPv4 network.

• When this router gets the IPv6 packet, it encapsulates the packet with an IPv4 header addressed to the multiprotocol router that connects to the IPv6 network.

• When this IPv4 packet arrives, the router removes the original IPv6 packet and sends it onward to the destination host.

Page 25: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.3 Tunneling

Figure 5-40. Tunneling a packet from Paris to London.

Page 26: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.3 Tunneling (2)

• The path through the IPv4 Internet can be seen as a big tunnel extending from one multiprotocol router to the other.

• The multiprotocol routers have to understand both IPv4 and IPv6 packets.

• The disadvantage of tunneling is that none of the hosts on the network that is tunneled over can be reached because the packets cannot escape in the middle of the tunnel.

Page 27: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.5 Packet Fragmentation

• Maximum payloads (packets) for some common technologies are 1500 bytes for Ethernet and 2272 bytes for 802.11. IP allows for packets as big as 65,515 bytes.

• Hosts usually prefer to transmit large packets because this reduces packet overheads such as bandwidth wasted on header bytes.

• An obvious internetworking problem appears when a large packet wants to travel through a network whose maximum packet size is too small.

Page 28: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.5 Packet Fragmentation (2)

• The solution to the problem is to allow routers to break up packets into fragments, sending each fragment as a separate network layer packet.

• the destination simply uses the packet number and fragment offset to place the data in the right position, and the end-of-packet flag to determine when it has the complete packet.

• Two opposing strategies exist for recombining the fragments back into the original packet:– Transparent fragmentation– Nontransparent fragmentation

Page 29: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.5 Packet Fragmentation

Figure 5-42. (a) Transparent fragmentation. (b) Nontransparent fragmentation.

Page 30: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.5 Packet Fragmentation (3)

• The Disadvantage of Transparent fragmentation: Some of the work that needed may be wasteful, as the packet may pass through a series of small packet networks and need to be repeatedly fragmented and reassembled.

• The main advantage of nontransparent fragmentation: it requires routers to do less work.

• The Disadvantage of nontransparent fragmentation: The overhead can be higher than with transparent fragmentation because fragment headers are now carried over some links where they may not be needed.

Page 31: 5.3 CONGESTION CONTROL ALGORITHMS Congestion: Too many packets present in (a part of) the network causes packet delay and loss that degrades performance.

5.5.5 Packet Fragmentation

Figure 5-43. Fragmentation when the elementary data size is 1 byte. (a) Original packet, containing 10 data bytes. (b) Fragments after passing through a network with maximum packet size of 8 payload bytes plus header. (c) Fragments after passing through a size 5 gateway.