5.3 CONGESTION CONTROL ALGORITHMS • Congestion means that the load is (temporarily) greater than the resources. • Congestion causes packet delay and loss that degrades Quality of Service. • Two solutions come to mind: – increase the resources (routers, lines) – or decrease the load. 5.3.1 Approaches to Congestion Control (Figure 5-22) Provisioning • Provisioning: increases the resources by adding resources dynamically when there is serious congestion, – for example, turning on spare routers or enabling lines that are normally used only as backups traffic-aware routing • traffic-aware routing: makes the most of the existing network capacity, – For example, routes may be changed to shift traffic away from heavily used paths by changing the shortest path weights admission control • admission control: decrease the load – For example, In a virtual-circuit network, new connections can be refused if they would cause the network to become congested. Traffic Throttling • Traffic Throttling: decrease the load by delivering feedback to the sources whose traffic flows are responsible for the congestion; – For example, the network can request these sources to stop their traffic, or it can slow down the traffic itself. load shedding • load shedding: decrease the load by discarding packets that it cannot be delivered. 5.4 QUALITY OF SERVICE • The parameters determine the QoS (Quality of Service) – bandwidth : the rate of data transfer, measured in bits per second (bit/s) – delay, – jitter: The variation in the delay or packet arrival times – loss. 5.4.1 Application Requirements (Figure 5-27) 5.5 INTERNETWORKING • an internetwork is two or more different networks are connected • How Networks Differ – e.g. different modulation techniques or frame formats – e.g. different packets format (IPv4 or IPv6) – e.g. different maximum packets size. 5.5.1 How Networks Differ Figure 5-38. Some of the many ways networks can differ. 5.5.2 How Networks Can Be Connected Figure 5-39. (a) A packet crossing different networks. (b) Network and linklayer protocol processing. 5.5.3 Tunneling • Tunneling is a technique used to send an IP packet containing an IPv6 address through IPv4 network, by encapsulation the IPv6 packet in an IPv4 packet 5.5.3 Tunneling Figure 5-40. Tunneling a packet from Paris to London. 5.5.5 Packet Fragmentation • Fragmentation is to allow routers to break up packets into fragments when a large packet wants to travel through a network whose maximum packet size is too small. • 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. • the destination simply uses three fields of packet header: – 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. 5.5.5 Packet Fragmentation (2) • Two fragmentation strategies: – Transparent fragmentation: the fragments are reassembled in the receiver router. – Nontransparent fragmentation: the fragments not reassembled until the final destination • The Disadvantage of Transparent fragmentation: packet is needed to be repeatedly fragmented and reassembled which leads to more processing work. • The Disadvantage of nontransparent fragmentation: The overhead can be higher than with transparent fragmentation 5.5.5 Packet Fragmentation Figure 5-42. (a) Transparent fragmentation. (b) Nontransparent fragmentation. 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.