# Principles of Network Algorithms

## Presentation on theme: "Principles of Network Algorithms"— Presentation transcript:

Principles of Network Algorithms
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

The University California, San Diego Computer Science and Engineering
Resource: The University California, San Diego Computer Science and Engineering Lecture Notes of Professor George Varghese /~varghese

Introduction and Principles of Network Algorithms
Lecture1: Introduction and Principles of Network Algorithms Contents: 1. Algorithm (Definition) 2. Computer Network (Definition) 3. Network Components (NIC, Access Point, Repeater, HUB, Bridge, Switch, Router, BRouter, GATEWAY) 4. Network Bandwidth (Definition) 5. Network Algorithms 6. Routing (Routing Protocols, Routing Table, Routing Configuration) 7. Capacity of Router 8. History of big Routers (Short History)

Lookup and Router Architecture
Lecture 2: Lookup and Router Architecture Contents: 1. Short Review 2. Routing Table Lookup 3. Router Architecture (Input Port Processing, Switching Fabrics, Routing Processing, Output Port Processing)

Searching Routing-Table Algorithms
Lecture 3: Searching Routing-Table Algorithms Contents: 1. Searching Algorithm (Definition) 2. Searching Routing Table (Definition) 3. Searching Routing Table Algorithms 3.1. Binary Search. 3.2. Hash Table. 3.3. Tire based Algorithms: Bit Trie (BMP) Algorithm Multi-Bit Tire (VST) Algorithm Compressed Tries 4. Tire based Algorithm for Strings

Searching Routing-Table Algorithms
Lecture 4: Searching Routing-Table Algorithms Contents: 1. Searching Algorithm 2. Searching Routing Table 3. Searching Routing Table Algorithms 3.1. Binary Search. 3.2. Hash Table. 3.3. Tire based Algorithms: Bit Trie (BMP) Algorithm Multi-Bit Tire (VST) Algorithm Compressed Tries 4. Tire based Algorithm for Strings

Packet Classification
Lecture 5: Packet Classification Contents: 1. Network Reference Models 2. TCP/IP Reference Model (IP Protocol Stack) 2.1. The Application Layer 2.2. The Transport Layer (Host-to-Host) (End-to-End) 2.3. Internet Layer 2.4. Network Layer (Host-To-Network) (Link) 3. ICMP and OSPF Core Protocols 4. IP v4 and IP v6 Packets 5. TCP and UDP Packets 6. Simplified Network Packet Format 7. Screening Router

Packet Classification (Cont.)
Lecture 6: Packet Classification (Cont.) Contents: 1. Network Reference Models 2. TCP/IP Reference Model (IP Protocol Stack) 2.1. The Application Layer 2.2. The Transport Layer (Host-to-Host) (End-to-End) 2.3. Internet Layer 2.4. Network Layer (Host-To-Network) (Link) 3. ICMP and OSPF Core Protocols 4. IP v4 and IP v6 Packets 5. TCP and UDP Packets 6. Simplified Network Packet Format 7. Screening Router

Lecture 7: Switching Theory Contents: 1. Short Reviewing 2. Switching Theory 3. Crossbar Switch Architecture 4. Crossbar Switch Models IQ Switch OQ Switch CIOQ Switch

Switching Theory (Cont.)
Lecture 8: Switching Theory (Cont.) Contents: 1. Review 2. Speed Up and Delay Control in CIOQ 3. Stable Marriage Algorithms for CIOQ Gale-Shapley Algorithm (GSA) 4. Scheduling Algorithms for CIOQ First In First Out Scheduling Algorithm (FIFO) Most Urgent Cell First Scheduling Algorithm (MUCF) Randomized Switch Scheduling

Bandwidth Partitioning
Lecture 9: Bandwidth Partitioning Contents: 1. Review 2. Network Bandwidth 2.1. Network Bandwidth – Network Centric Approach 2.2. Network Bandwidth – User Centric Approach

Lecture 1: Introduction and Principles of Network Algorithms
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 1: Introduction and Principles of Network Algorithms available at:

Introduction and Principles of Network Algorithms
Lecture1: Introduction and Principles of Network Algorithms Contents: 1. Algorithm (Definition) 2. Computer Network (Definition) 3. Network Components (NIC, Access Point, Repeater, HUB, Bridge, Switch, Router, BRouter, GATEWAY) 4. Network Bandwidth (Definition) 5. Network Algorithms 6. Routing (Routing Protocols, Routing Table, Routing Configuration) 7. Capacity of Router 8. History of big Routers (Short History)

1. Algorithm (from Algoritmi, the Latin form of Al-Khwārizmī) in computer science is a step-by-step procedure for calculations, data processing, and automated reasoning to solve a specific problem. The algorithm should be starting from an initial state and initial input, then should be transition from one state to the next to execute the instructions (which describe a computation that), eventually producing "output" and terminating at a final ending state. initial state exec. state final state

2. Computer Network, often simply referred to as a network, is an interconnected collection of hardware components and autonomous computers interconnected by communication channels that allow to exchange information and share the resources. A network consists of a set of devices like: Hosts , host is individual computer connected to the computer network, which can offer information resources, services, and applications to users or other nodes on the network. Nodes , node is any device that is attached to a network, either a redistribution point (capable of sending, receiving or forwarding information over a communications channel), or a communication endpoint (some terminal equipment).

3. Network Components are used to connect computing devices together in different networks, and to connect multiple networks or subnets together, these includes: NIC: (Network Interface Card) is network device used to enable a network device (such as a computer or other network equipment) to connect to a network. wired network Access Point: is a network device that allows wireless devices to connect to a wired network. Access Point Segment A Segment B Repeater: is a network device that connects two or more network segments and retransmits any incoming signal to all other segments. Repeater

HUB / Switch: is a central network device that connects all nodes in a star topology. Also it is concentrator (a device that can have multiple inputs and outputs all active at one time). HUB Switch Difference between HUB and Switch

Bridge: is a network device that sends information between two LANs.

NIC , Access Point , Repeater , HUB , Bridge ,
Router: is a network device that direct traffic between hosts. A router is connects two or more different networks. BRouter: is a network device that acts as a Bridge in one circumstance and as a Router in another. GATEWAY: The term gateway refers to a software or hardware interface that enables two different types of networked systems or software to communicate. Network Components: NIC , Access Point , Repeater , HUB , Bridge , Switch , Router , BRouter , GATEWAY

The difference between Switch and Router
Connection to other Networks

4. Network Bandwidth Network Bandwidth (bit rate, channel capacity, or throughput) is a measure of communication channel usage (available or consumed of communication path) in bits/second “pbs” or multiples of it (kilobits/s “Kbps”, megabits/s “Mbps”, etc.).

5. Network Algorithms are the algorithms to select the paths in network along which (network traffic routes) to send network traffic “also called Routing”, and to process the network bottlenecks at servers, routers, or other networking devices. There are many network algorithms like Trie based Algorithm, Multibit Trie Algorithm, etc.

6. Routing is the process of selecting paths in network along which (network traffic routes) to send network traffic. There are two main routing protocols: Distance-Vector (DV) Routing Protocol (Simple and efficient in small networks and require little management, but it have count-to-infinity problem). Link-State (LS) Routing Protocol (More scalable for use in large networks, but more complex). There are other protocols like; Optimized Link State Routing Protocol (OLSR) (which used for routing mobile ad-hoc networks), and Path Vector Routing Protocol (PV) (which used for routing between autonomous network systems).

The routing table consists of at least three information fields:
Each of these routing protocols are applying a “Routing Table” to multiple routes to select the best route. The routing table (routing metrics, or routing distances) contains information about the topology of the network immediately around the router. The routing table consists of at least three information fields: Network ID. Cost (cost or length of path through). Next Hop (the address of the next station to which the packet is to be sent). Next Hop Cost Network ID

There are two main routing configuration ways:
Static Routing: The network administrator adds the routes (fixed paths) to the routing table manually. But when there is a change in the network or a failure occurs between two nodes, traffic will waiting for repairing the failure (not be rerouted), or the static route to be updated by the administrator before restarting its journey. Dynamic Routing (Adaptive Routing): The system adds routs to the routing table automatically, the adaptation is allow to rerouting the routing table when automatically.

7. Capacity of Router Capacity of Router = N x R (measured by packets per second) N = number of linecards (Typically per chassis) R = line-rate (1Gb/s, 2.5Gb/s, 10Gb/s, 40Gb/s, 100Gb/s)

8. History of big Routers In the original 1960s, the general-purpose computers served as routers. The general-purpose computers with extra hardware added to accelerate both common routing functions and specialized functions such as encryption functions. Other changes also improve reliability, such as using battery rather than mains power, and using solid storage (hard disk) rather than magnetic storage. The first modern (dedicated, standalone) router were the Fuzzball router (with capacity: 56kbps).

Cisco GSR 12816 Capacity: 640Gb/s Juniper T640 Capacity: 320Gb/s

Cisco Series Cisco 2811

There are several manufacturers of routers including:
3Com ( Cisco Systems ( D-Link Systems ( Juniper Networks ( Linksys ( Mikrotik ( NETGEAR (

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 2: Lookup and Router Architecture
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 2: Lookup and Router Architecture available at:

Lookup and Router Architecture
Lecture 2: Lookup and Router Architecture Contents: 1. Short Review 2. Routing Table Lookup 3. Router Architecture (Input Port Processing, Switching Fabrics, Routing Processing, Output Port Processing)

1. Review: Router: (as sown in the pervious lecture) is a network device that direct traffic between hosts. A router is connects two or more different networks. GATEWAY: The term gateway refers to a software or hardware interface that enables two different types of networked systems or software to communicate. Routing Table: (Routing Metrics, or Routing Distances) contains information about the topology of the network immediately around the router, the router are applying a “Routing Table” to multiple routes to select the best route.

2. Routing Table Lookup: The Routing Table Lookup is search through the routing table, looking for a destination entry that best matches the destination network address of the packet, or a default route if the destination entry is missing The most important complicating factor is that backbone routers must operate at high speeds, being capable of performing millions of lookups per second. It is best for the input port processing to be able to proceed at line speed, that is, that a lookup can be done in less than the amount of time needed to receive a packet at the input port. In this case, input processing of a received packet can be completed before the next receive operation is complete.

A high-level view of Router Architecture is shown below.
Input Ports: Terminating an incoming link to a router, data link processing, and performs a lookup and forwarding functions Input Ports Output Ports Output ports: Stores the packets (that have been forwarded to it through the switching fabric) and then transmits the packets on the outgoing link Switching Fabric Routing Processor Switching Fabric: Connects the router's input ports to its output ports Routing Processor: Executes the Routing Protocols, Maintains the Routing Tables, and performs Network Management functions, within the router

Switching Fabric 3.A. Input Port Processing
Terminating an incoming link to a router, data link processing, and performs a lookup and forwarding functions. Switching Fabric Input Port Lookup, Forwarding, Queuing Data Link Processing Line Termination Function

Decentralized Switching
3.A. Input Port Processing Inside Input Port… the router determines the output port to which an arriving packet will be forwarded via the switching fabric. ((The choice of the output port is made using the information contained in the routing table)). A shadow copy (local copy) of the routing table is stored at each input port and updated (as needed) by the routing processor. With shadow copies (local copies) of the routing table, the switching decision can be made locally, at each input port, without invoking the centralized routing processor. Decentralized Switching

Centralized Switching
3.A. Input Port Processing As an old fashioned: When a computer works as a router; Here, the input port is just a NIC (with limited processing capabilities), so the input port simply forward the packet to the centralized routing processor (the computer's CPU) which will perform the routing table lookup and forward the packet to the appropriate output port. Centralized Switching

3.B. Switching Fabrics The switching fabric is at the heart of a router. Through it the packets are actually moved from an input port to an output port. Switching can be accomplished in a number of ways:

3.B. Switching Fabrics / Switching via Memory
The input port receives the packets. The packet was copied from the input port into memory of the routing processor (on the input port). The routing processor extracted the destination address from the header, looked up the appropriate output port in the routing table, and copied the packet to the output port's buffers.

3.B. Switching Fabrics / Switching via Bus
The input ports transfer a packet directly to the output port over a shared bus, without intervention by the routing processor. But only one packet at a time can be transferred over the bus. A packet arriving at an input port (and finding the bus busy with the transfer of another packet) is blocked from passing through the switching fabric and is queued at the input port. Because every packet must cross the single bus, the switching bandwidth of the router is limited to the bus speed.

3.B. Switching Fabrics / Switching via Crossbar
One way to overcome the bandwidth limitation of a single, shared bus is to use a crossbar. A crossbar switch is an interconnection network consisting of 2N busses that connect N input ports to N output ports. A packet arriving at an input port travels along the horizontal bus attached to the input port until it intersects with the vertical bus leading to the desired output port. If the vertical bus is free, the packet is transferred to the output port. If the vertical bus is being used to transfer a packet from another input port to this same output port, the arriving packet is blocked and must be queued at the input port.

3.C. Routing Processing Routing Processing is the “Routing Table Lookup” for search through the routing table, looking for a destination entry that best matches the destination network address of the packet, or a default route if the destination entry is missing The most important complicating factor is that backbone routers must operate at high speeds, being capable of performing millions of lookups per second, so we have several algorithms to accomplish that, like: Tire based Algorithm, Multibit Tire Algorithm, Compressed Tries, Binary Search.

Switching Fabric 3.D. Output Ports Processing
It takes the packets which stored in the output port's memory and transmits them over the outgoing link. The data link processing and line termination are interact with the input port on the other end of the outgoing link. The queuing and buffer management functionality are needed when the switch fabric delivers packets to the output port at a rate that exceeds the output link rate. Switching Fabric Output Port Queuing Data Link Processing Line Termination Function

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 3: Searching Routing-Table Algorithms
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 3: Searching Routing-Table Algorithms available at:

Searching Routing-Table Algorithms
Lecture 3: Searching Routing-Table Algorithms Contents: 1. Searching Algorithm (Definition) 2. Searching Routing Table (Definition) 3. Searching Routing Table Algorithms 3.1. Binary Search. 3.2. Hash Table. 3.3. Tire based Algorithms: Bit Trie (BMP) Algorithm Multi-Bit Tire (VST) Algorithm Compressed Tries 4. Tire based Algorithm for Strings

Linear Search 1. Searching Algorithm:
“Sequential Search” 1. Searching Algorithm: Search Algorithm: is an algorithm for finding a specific item among a collection of items. Search Example: 5 3 8 2 4 6 9 1 - 7 10 To find item(5) “search key” we need to only 1 step to find it, to find item(10) we need to 15 steps to find it, to find other item like item(9) we need to 7 steps to find it, and so on. So.. The best case is when we find the item at the first location (1 time), while worst case is when we find the item at the last location (n times), and the average case is (best-case + worst-case)/2.

2. Searching Routing Table:
The most important complicating factor is that “backbone routers“ must operate at high speeds, being capable of performing millions of lookups per second. So the lookup operations should be searching a destination through the Routing Table at high speeds. The linear search suffered from a problem with its worst case cost, its proportional to the number of items in the list. So the linear search is not suitable for lookups routing table, and we need to the faster searching algorithm.

3. Searching Routing Table Algorithms:
The worst case cost of Linear Search is proportional to the number of items in the list … this is the big problem with linear search algorithm. Therefore, there are other algorithms will be faster, but they also impose additional requirements. There are several Searching Algorithms to optimize the work of lookup inside routing table like:- Binary Search Tree Tire based Algorithm, Multibit Tire Algorithm, Compressed Trie Algorithms.

3.1. Binary Search: Binary Tree: is a tree that is characterized by that any node can have at most two branches. A binary may be empty or consist of a root and two disjoint binary tree called the left subtree and the right subtree . Binary Tree Search: is a binary tree in which the left child (if there is) of any node contains a smaller value than does the parent node and the right child (if there is) contains a larger value than the parent node. Its a fast way to search a list of items.

3.1. Binary Search (cont.): The idea is to look at the item in the middle. If the key is equal to that, the search is finished. If the key is less than the middle element, do a binary search on the left half. If it's greater, do a binary search of the right half. 5 3 8 2 4 6 9 1 7 10

3.1. Binary Search (cont.): The advantage of a binary search over a linear search is a very good for large-number of items.

3.2. Hash Table: Hash Table: is a random access data structure (like an array), and uses a mapping function (called a hash function), to allow for O(1) searches or constant searching time. The Hash Function provides a way for assigning numbers to the input data such that the data can then be stored at the array index corresponding to the assigned number.

Example: We has a hash table array of strings with size=11.
3.2. Hash Table (cont.): Example: We has a hash table array of strings with size=11. 1 2 3 4 5 6 7 8 9 10 Steve Steve Simple Hash Function hash(“ “,11) :yields 3

3.2. Hash Table (cont.): 1 Spark 2 3 4 5 6 Steve 7
1 2 3 4 5 6 7 8 9 10 Spark Steve Simple Hash Function hash(“ “,11) :yields 6 Spark

3.2. Hash Table (cont.): 1 Notes 2 3 4 5 6 Steve 7
1 2 3 4 5 6 7 8 9 10 Notes Steve Simple Hash Function hash(“ “,11) :yields 10 Spark Notes

A collision occurs when two data items are hashed to the same value.
3.2. Hash Table (cont.): 1 2 3 4 5 6 7 8 9 10 Pad A collision occurs when two data items are hashed to the same value. Collision Steve Pad Simple Hash Function hash(“ “,11) :yields 3 Spark Notes

Separate chaining is a method for dealing with collisions.
3.2. Hash Table (cont.): Array of Linked Lists Separate chaining is a method for dealing with collisions. The hash table is an array of linked lists. Data items that hash to the same value are stored in a linked list originating from the index equivalent of their hash value. 1 2 3 4 5 6 7 8 9 10

Hash Table with Separate Chaining to avoid the collision.
3.2. Hash Table (cont.): Hash Table with Separate Chaining to avoid the collision. 1 2 3 4 5 6 7 8 9 10 Steve Pad Simple Hash Function hash(“ “,11) :yields Spark Steve : 3 Spark : 6 Notes: 10 Pad: 3 Notes

A search follows the same steps as doing an insertion.
3.2. Hash Table (cont.): A search follows the same steps as doing an insertion. i.e. the search key is “Notes” 1 2 3 4 5 6 7 8 9 10 Notes Steve Pad Simple Hash Function hash(“ “,11) :yields 10 Spark The number of steps is O(1) Notes

3.2. Hash Table (cont.): Separate Chaining allows us to solve the problem of collision. The drawback is, all items inserted at the same place in the array (and this is impossible). In that case, we'd really be doing a straight linear search on a linked list, which means that our search operation is back to being O(n) . The worst case search time for a hash table is O(n).

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 4: Searching Routing-Table Algorithms (Cont.)
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 4: Searching Routing-Table Algorithms (Cont.) available at:

Searching Routing-Table Algorithms
Lecture 4: Searching Routing-Table Algorithms Contents: 1. Searching Algorithm 2. Searching Routing Table 3. Searching Routing Table Algorithms 3.1. Binary Search. 3.2. Hash Table. 3.3. Tire based Algorithms: Bit Trie (BMP) Algorithm Multi-Bit Tire (VST) Algorithm Compressed Tries 4. Tire based Algorithm for Strings

3.3. Tire based Algorithms:
“The term trie comes from retrieval”. In general, a trie tree (or prefix tree), is an ordered tree data structure that is used to store a list (where the keys are usually strings). No node in the trie tree stores the key associated with that node; instead, its position in the tree defines the key with which it is associated. The root is associated with the empty string, and the values are normally not associated with every node, only with leaves.

3.3. Tire based Algorithms (Cont.):
Bit Trie Algorithm (Tire based Algorithm): 1-Bit Trie (or Best Matching Prefix (BMP)) is a binary tree-based data structure that uses prefix bits to direct branching, the search guided by bits. At each level, proceed left or right based on the next address bit, on visiting a node marked as prefix, the search ends when there are no more branches to take. The search guided by bits, these means that the sequential prefix search by length (Look at length-1 prefixes first, then length-2 prefixes, …). Note that each step reduces the search space.

Each step reduces the search space
3.3. Tire based Algorithms (Cont.): Bit Trie Algorithm(Cont.): Example 1: Prefixes: a : 0* b : 01000* c : 011* d : 1* e : 100* f : 1100* g : 1101* h : 1110* i : 1111* a d c e f g h i Each step reduces the search space b

3.3. Tire based Algorithms (Cont.):
Bit Trie Algorithm(Cont.): Example 2: P5 P1 P2 P6 P3 P4

drawback 3.3. Tire based Algorithms (Cont.):
Bit Trie Algorithm (Cont.): The 1-Bit Trie algorithm is a classical solution to allow a good representation of length prefixes, but these way may involve long sequences of one-child nodes. These requires bit inspection and these allow to increase lookup time. drawback have long sequences of one-child nodes

3.3. Tire based Algorithms (Cont.):
Multi-Bit Trie Algorithm (VST): The basic idea is to speedup search by examining multiple bits at a time, for example, examine 4 bits. The number of bits examined in each step called “Stride”, so the algorithm also called Variable-Stride Trie (VST). Its complex algorithm to calculate, but should notes that, the nodes at the same level may have different strides. For example; the stride for the root of some tree is 2; that for the left child of the root is 5; and that for the root’s right child is 3.

3.3. Tire based Algorithms (Cont.):
Multi-Bit Trie Algorithm (VST) (Cont.): Example: Prefixes: P1 : 10* P2 : 11* P3 : 11001* P4 : 1* P5 : 0* P6 : * 00 01 10 11 P5 P4 P1 00000 00001 00010 00011 11111 : 000 001 010 011 100 101 110 111 P2 P6 P3 Assume that the stride for the root of some tree is 2; And that for the root’s left child is 5; And that for the root’s right child is 3.

3.3. Tire based Algorithms (Cont.):
Compressed Tries: The “Compressed Tries” (or Path Compressed Tries) attempt to reduce space and time performance of the tow Trie algorithms: 1-Bit Trie algorithm (BMP), and Mulit-Bit Trie algorithm.

3.3. Tire based Algorithms (Cont.):
3.3.3.A. Compressed Tries with 1-Bit Trie Algorithm: The “Path Compressed Tries” attempt to reduce space and time performance of 1-Bit Trie algorithm (BMP), by the following: 1- Collapse one-way branch nodes. 2- Jump directly to the bit used for decision.

Collapse Jump Prefixes: a : 0* b : 01000* c : 011* d : 1* e : 100*
g : 1101* h : 1110* i : 1111* a d c e f g h i b

a d Collapse Jump c b e f g h i

a d c Collapse e Jump b f g h i

a d Collapse c Jump b e f g h i

a d b Collapse c Jump e f g h i

a d b e c f g h i

a d b c e 1-Bit Trie / Prefixes: a : 0* b : 01000* c : 011* d : 1* e : 100* f : 1100* g : 1101* h : 1110* i : 1111* Compressed 1-Bit Trie/ Prefixes: a : 0* b : 01000* c : 011* d : 1* e : 100* f : 1100* g : 1101* h : 1110* i : 1111* 00* 01* f g h i 10*

Each step reduces the search space
1-Bit Trie Prefixes: a : 0* b : 01000* c : 011* d : 1* e : 100* f : 1100* g : 1101* h : 1110* i : 1111* Compressed 1-Bit Trie Prefixes: a : 0* b : 00* c : 01* d : 1* e : 10* f : 1100* g : 1101* h : 1110* i : 1111* 1-Bit Trie Algorithm Path Compressed Tries ( Collapse and Jump ) Compressed 1-Bit Trie Algorithm Each step reduces the search space

3.3. Tire based Algorithms (Cont.):
3.3.3.B. Compressed Tries with Multi-Bit Trie Algorithm: The Compression Scheme is: Compress repeated occurrences of BMPs. Compression is same across sub-trie. Compression is not optimal – but access is simpler and efficient.

4. Tire based Algorithm for Strings:
Example 1: A 1-Bit Trie tree for keys "A", "to", "tea", "ted", "ten", "i", "in", and "inn“ is display here: t A i e n o a d n n

4. Tire based Algorithm for Strings (Cont.):
Example 1 (Cont.): A Compressed tree for the 1-Bit Trie tree is display here: t A i Collapse n n o e Jump n a d n

4. Tire based Algorithm for Strings (Cont.):
Example 1 (Cont.): A Compressed tree for the 1-Bit Trie tree is display here: t A i nn o e a d n

4. Tire based Algorithm for Strings (Cont.):
Example 1 (Cont.): A Compressed tree for the 1-Bit Trie tree is display here: t A i nn nn o e a d n

4. Tire based Algorithm for Strings (Cont.):
Example 1 (Cont.): A Compressed tree for the 1-Bit Trie tree is display here: t A inn o e a d n

Compressed 1-Bit Trie Tree
4. Tire based Algorithm for Strings (Cont.): Example 2: Construct the 1-Bit Trie tree for the following keys: “bear", “bell", “bid", "ted", “bull", “buy", “sell", “stock", and “stop“. Then construct the Compressed 1-Bit Trie tree for it. Solution: Compressed 1-Bit Trie Tree 1-Bit Trie Tree

Compressed 1-Bit Trie Tree
4. Tire based Algorithm for Strings (Cont.): Example 3: Construct the 1-Bit Trie tree for the following keys: “yahoo", “yamal", “google", “gomee", “gomer", “facebook", “facetime", “fact", and “facetik“. Then construct the Compressed 1-Bit Trie tree for it. Solution: ? 1-Bit Trie Tree Compressed 1-Bit Trie Tree

Must be remember that …

Router Switch Processor Input Links Output Links a a b b c c
Forwarding Table Prefix Output Link a b c d e f g h i f f i i

Router Prefix Output Link 0 a 00 b 01 c 1 d 10 e 1100 f 1101 g 1110 h
Compressed 1-Bit Trie Algorithm

f Router Switch Processor 1100 1100 Input Links Output Links a a b b c
Compressed 1-Bit Trie Algorithm 1100 Forwarding Table f Prefix Output Link a b c d e f g h i f f i i

Centralized Switching
Router Switch Input Links Output Links 1100 a a b b c Processor c Forwarding Table Prefix Output Link a b c d e f g h i Centralized Switching f f i i

Decentralized Switching
Router Switch Input Links Output Links a a b b c Processor c Forwarding Table Prefix Output Link a b c d e f g h i Decentralized Switching f 00 f i i

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 5: Packet Classification
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 5: Packet Classification available at:

Packet Classification
Lecture 5: Packet Classification Contents: 1. Network Reference Models 2. TCP/IP Reference Model (IP Protocol Stack) 2.1. The Application Layer 2.2. The Transport Layer (Host-to-Host) (End-to-End) 2.3. Internet Layer 2.4. Network Layer (Host-To-Network) (Link) 3. ICMP and OSPF Core Protocols 4. IP v4 and IP v6 Packets 5. TCP and UDP Packets 6. Simplified Network Packet Format 7. Screening Router

1. Network Reference Models:
With “1st Class - Principles of Network & Application Subject”, we have discussed the two important network reference models, the OSI reference model and the TCP/IP reference model. But with “1st Class - Principles of Network Algorithms Subject“, we focusing only on ‘TCP/IP Reference Model’ from Routing side of view. TCP : Transmission Control Protocol IP : Internet Protocol

2. TCP/IP Reference Model :
TCP/IP protocol (also called IP Protocol Stack) is a set of communication protocols used for the Internet and other similar networks. It is commonly known as TCP/IP, because of its most important protocols TCP and IP, which were the first networking protocols defined in this standard. TCP/IP protocol have 4 layers: Application Layer Transport Layer Internet Layer Network Interface Layer

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP ICMP OSPF IP Network Interface
ping Web Browsing Multimedia VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer ICMP OSPF IP Internet Layer Network Layer Network Interface

2. TCP/IP Reference Model (Cont.):
2.1. The Application Layer: The Application Layer is a top TCP/IP layer, it’s contains all the higher-level protocols which involve user interaction, like HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , and other protocols. HTTP FTP SMTP RTP DNS BGP RIP FTP (File Transfer Protocol): It’s an application protocol which provides a way to move data efficiently from one machine to another. RTP (Realtime Transport Protocol): It’s an application protocol to delivering audio and video over networks BGP (Border Gateway Protocol): It’s an application protocol to backing the core routing decisions on the Internet HTTP (Hyper Text Transfer Protocol): It’s an application protocol for transfer hypertext, hypermedia, over web information systems SMTP (Simple Mail Transfer Protocol): It’s an application protocol for transmission between devices. DNS (Domain Name System): It’s an application protocol to translates domain name to IP address RIP (Routing Information Protocol): It’s an application protocol to adds routs to the routing table automatically (based Distance-Vector Routing Algorithm)

HTTP FTP SMTP RTP DNS BGP RIP Web Browsing E-Mail Multimedia nslookup
VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP

Router Command Line Interface
Network Certification Router Command Line Interface

HTTP FTP SMTP RTP DNS DNS BGP BGP RIP RIP ICMP OSPF ping Web Browsing
Multimedia VoIP , Video nslookup nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS DNS BGP BGP RIP RIP ICMP OSPF

2. TCP/IP Reference Model (Cont.):
2.2. The Transport Layer (Host-to-Host) (End-to-End): The Transport Layer is located above the Internet Layer in the TCP/IP model, it’s allow peer entities on the source and destination hosts to carryon a conversation, and provides the port number. It’s used to exchange data between systems. There are two Transport Layer (Host-to-Host) (End-to-End) core protocols: TCP (Transmission Control Protocol) UDP (User Datagram Protocol)

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Web Browsing E-Mail Multimedia
VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer TCP is a reliable connection-oriented protocol, that offers error correction when deliver the stream originating on one machine to the other machine in the network. UDP is an unreliable connectionless protocol, that deliver stream originating on one machine to the other machine in the network based one-shot philosophy.

2. TCP/IP Reference Model (Cont.):
2.2. The Transport Layer (Host-to-Host) (End-to-End): TCP (Transmission Control Protocol) is a reliable connection-oriented protocol, that offers error correction when deliver the stream originating on one machine to the other machine in the network. It used to send important data such as webpages, database information, etc; UDP (User Datagram Protocol) is an unreliable connectionless protocol, that deliver stream originating on one machine to the other machine in the network based one-shot philosophy. It used to send streaming audio and video (like Windows Media audio files (.WMA) , Real Player (.RM)).

2. TCP/IP Reference Model (Cont.):
2.2. The Transport Layer (Host-to-Host) (End-to-End): The UDP is faster than TCP (UDP offers speed). The reason UDP is faster than TCP is because there is no traffic-of ‘flow control’ or ‘error correction’ used (unreliable connectionless protocol). The data sent over the network is affected by collisions, and errors will be present. So the TCP uses ‘flow control’ or ‘error correction’ traffic (reliable connection-oriented protocol) which need more time to finish the data sending, while UDP not doing that. UDP is only concerned with speed. This is the main reason why streaming media is not high quality.

Packet Classification
2. TCP/IP Reference Model (Cont.): 2.3. Internet Layer: The Internet Layer is located above the Transport Layer in the TCP/IP model, it’s defines an official packet format and provides the IP Addressing (using core IP Protocol), to deliver after that independently through the network between the sender and receiver. The Internet Layer delivers “IP packets” (where they are supposed here) as is avoiding congestion. For these reasons… The TCP/IP Internet Layer is very similar in functionality to the OSI Network Layer. Remember that the Lecture Title is Packet Classification

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP IP Web Browsing E-Mail
Multimedia VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer IP Internet Layer IP defines an official packet format and provides IP Addresses

2. TCP/IP Reference Model (Cont.):
2.4. Network Layer (Host-To-Network) (Link): The Host-to-Network Layer interfaces the TCP/IP protocol stack to the physical network. It’s a point out connect to the network using TCP/IP protocol, so it can send IP packets over it.

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP IP Network Interface
Web Browsing Multimedia VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer IP Internet Layer Network Layer Network Interface

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 6: Packet Classification
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 6: Packet Classification (Cont.) available at:

Packet Classification (Cont.)
Lecture 6: Packet Classification (Cont.) Contents: 1. Network Reference Models 2. TCP/IP Reference Model (IP Protocol Stack) 2.1. The Application Layer 2.2. The Transport Layer (Host-to-Host) (End-to-End) 2.3. Internet Layer 2.4. Network Layer (Host-To-Network) (Link) 3. ICMP and OSPF Core Protocols 4. IP v4 and IP v6 Packets 5. TCP and UDP Packets 6. Simplified Network Packet Format 7. Screening Router

3. ICMP and OSPF Core Protocols:
There are another important core protocols (which works inside TCP/IP protocol) like: ICMP (Internet Control Message Protocol) OSPF (Open Shortest Path First ) ICMP is used by the computer operating systems to send error messages indicating, for example, that a requested service is not available or that a host or router could not be reached. OSPF is one of group of interior routing protocols, it’s an adaptive network routing protocol which operating within a single autonomous system .

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP ICMP OSPF IP Network Interface
ping Web Browsing Multimedia VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer ICMP OSPF IP Internet Layer It’s used by the computer Oss to send error messages indicating It’s an adaptive network routing protocol which operating within a single autonomous system Network Layer Network Interface

Ping is a useful tool for testing, it’s dealing with ICMP to test the reachability of a host on a network and to measure the round-trip time for messages sent from the host to a destination computer. ping Application Layer Transport Layer ICMP IP Internet Layer Network Layer Network Interface

On any machines running Windows x, ping can be accessed via a DOS prompt.
Select "Run..." from the Start menu and type command "cmd". Once you're at the DOS prompt, type "ping Host-Address". Your PC Yahoo Server ping yahoo.com # ping yahoo.com PING yahoo.com ( ): 56 data bytes 64 bytes from : icmp_seq=0 ttl=246 time=108.0 ms 64 bytes from : icmp_seq=1 ttl=246 time=102.3 ms 64 bytes from : icmp_seq=2 ttl=246 time=102.6 ms 64 bytes from : icmp_seq=3 ttl=246 time=105.5 ms 64 bytes from : icmp_seq=4 ttl=246 time=103.9 ms --- yahoo.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 102.3/104.4/108.0 ms

Utility-Application Protocols
ping ping Web Browsing Multimedia VoIP , Video nslookup nslookup Router Command Line Interface Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS DNS BGP BGP RIP RIP TCP UDP Transport Layer ICMP ICMP OSPF OSPF IP Internet Layer 2 Well-Known Utility-Application Protocols DNS , ICMP 3 Well-Known Routing Protocols BGP , RIP , OSPF Network Layer Network Interface

HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , …
4. IP v4 and IP v6: The Internet Layer defines an official packet format (using core IP Protocol), to deliver after that independently through the network between the sender and receiver. There are two types of core IP protocol, IP v4 (version 4) (32 bits) and IP v6 (version 6) (128 bits). Application Layer HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , … Transport Layer TCP , UDP Internet Layer IP v bits , OSPF , ICMP , … Internet Layer IP v bits , OSPF , ICMP , … Internet Layer IP , OSPF , ICMP , … Network Layer

HTTP FTP SMTP RTP DNS BGP RIP TCP UDP ICMP OSPF IP Network Interface
ping Web Browsing Multimedia VoIP , Video nslookup Router Command Line Interface Upload Files between Devices Application Layer HTTP FTP SMTP RTP DNS BGP RIP TCP UDP Transport Layer ICMP OSPF IP Internet Layer There are 2 Types: IP v bits IP v bits IP defines an official packet format and provides IP Addresses Network Layer Network Interface

4. IP v4 and IP v6 (Cont.): IP v4 Packet Format: Consists of 32 bits, so can distribute approximately 4.2 billion IPs around the world. Its developed in 1970s.

4. IP v4 and IP v6 (Cont.): Since the 4.2 billion IPs of IPv4 will not be enough in the near future with the development and the rapid increase of users of computer, phones, gaming consoles and many other devices which connected to Internet. This has been the development of the IPv6, which can distribute approximately 6 trillion IPs.

4. IP v4 and IP v6 (Cont.): IP v6 Packet Format: Consists of 128 bits, so can distribute approximately 6 trillion IPs around the world. Its developed in 1993.

HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , …
4. IP v4 and IP v6 (Cont.): While IPv6 use and management is similar to IPv4, but its not backwards compatible. It will eventually replace IPv4, but the transition could take long time to complete. Full IPv6 adoption has been slower than anticipated. In the meantime, all of Servers must be available over both IPv4 and IPv6, and much of Internet devices will run IPv4 and IPv6 simultaneously (this called Dual-Stack approach). Application Layer HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , … Transport Layer TCP , UDP Internet Layer IPv4 / IPv6 , OSPF , ICMP , … Network Layer

4. IP v4 and IP v6 (Cont.):

IP v4 Packet Format: IP v6 Packet Format: X

5. TCP and UDP Packets: TCP and UDP protocols are most communication over the Internet. TCP Packet Format:

5. TCP and UDP Packets (Cont.):
TCP and UDP protocols are most communication over the Internet. UDP Packet Format:

6. Simplified Network Packet Format:
In simply, each network packet consist of the 5 important parts, which used as a keys for packet classification. Data IP Destination 32 bits IP Source Sour. Port 16 bits Des. Port Protocol 8 bits According to “IP Des/Sou” we can classify the packet either IP v4/ v6, and the addressing schema. According to “Des/Sou Port” we can classify the packet based on Application Layer Protocols (HTTP , FTP , SMTP , RTP , DNS , BGP , RIP , …). According to “Protocol Type” we can classify the packet either unreliable / reliable protocol (UDP / TCP).

Each router do packet classification, when the packet addressed to it.
7. Screening Router: Screening Router: it’s a router that performs packet filtering to see whether a packet is part of an existing stream of traffic. Also, it can filters each packet based only on information contained in the packet itself. Screening Router A B C Each router do packet classification, when the packet addressed to it.

7. Screening Router (Cont.):
Screening Router: it’s a router that performs packet filtering to see whether a packet is part of an existing stream of traffic. Also, it can filters each packet based only on information contained in the packet itself. TO: C UDP: VoP Screening Router A B C TO: B TCP: Web TO: C TCP: TO: A UDP: Video TO: A UDP: #bxsa?t^q1 In some cases a screening router may be used as perimeter protection for the internal network as a filtering solution

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 7: Switching Theory and Architecture
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 7: Switching Theory and Architecture available at:

Lecture 7: Switching Theory Contents: 1. Short Reviewing 2. Switching Theory 3. Crossbar Switch Architecture 4. Crossbar Switch Models IQ Switch OQ Switch CIOQ Switch

1. Short Reviewing: Switch Device: is a central network device that connects all nodes in a star topology. Also it is concentrator (a device that can have multiple inputs and outputs all active at one time). Review Interconnection Switching Fabric: is a fabric which connects the router's input ports to its output ports. Review Router - Switching can be accomplished in a number of ways (Switching via Memory , Switching via Bus , and Switching via Crossbar). Review

Router Switch Processor Input Links Output Links a a b b c c
Forwarding Table Prefix Output Link a b c d e f g h i f f i i

Router Prefix Output Link 0 a 00 b 01 c 1 d 10 e 1100 f 1101 g 1110 h
Compressed 1-Bit Trie Algorithm

f Router Switch Processor 1100 1100 Input Links Output Links a a b b c
Compressed 1-Bit Trie Algorithm 1100 Forwarding Table f Prefix Output Link a b c d e f g h i f f i i

Centralized Switching
Router Switch Input Links Output Links 1100 a a b b c Processor c Forwarding Table Prefix Output Link a b c d e f g h i Centralized Switching f f i i

Decentralized Switching
Router Switch Input Links Output Links a a b b c Processor c Forwarding Table Prefix Output Link a b c d e f g h i Decentralized Switching f 00 f i i

Router Switch Switch Processor 111110 1010 001100 101100 1000100
011001 11010 110011 101010 11100 110100 1100 11010 110011 Processor Forwarding Table 01 Prefix Output Link a b c d e f g h i 110011 100 101100 010100 101100 110010

Switching Switch 111110 1010 001100 101100 011001 11010 110100 101010 11100 1100 110011 01 110011 100 101100 010100 101100 110010

2. Switching Theory: Switching theory is the mathematical study of the properties of networks of idealized switches. Switch design is mainly influenced by “Cost” and “Heat”. Key technological factors affecting cost and heat Memory bandwidth (not the size of memory, but its speed) Complexity of algorithms Number of off-chip operations (this affects speed)

3. Crossbar Switch Architecture
One way to overcome the bandwidth limitation of a single, shared bus is to use a crossbar. A crossbar switch is an interconnection network consisting of 2N busses that connect N input ports to N output ports. A packet arriving at an input port travels along the horizontal bus attached to the input port until it intersects with the vertical bus leading to the desired output port.

4. Crossbar Switch Models
There are three Crossbar Switch Models, these are: IQ Switch Model OQ Switch Model CIOQ Switch Model

Switching Fabric 4. Crossbar Switch Models (Cont.)
If the vertical bus is free, the packet is transferred to the output port. If the vertical bus is being used to transfer a packet from another input port to this same output port, the arriving packet is blocked and must be queued at the input port, to enhance the performance. Switching Fabric Line Termination Function Data Link Processing Lookup, Forwarding, Input Port Queuing

Input Queued (IQ) Switches
4. Crossbar Switch Models (Cont.) If the vertical bus is free, the packet is transferred to the output port. If the vertical bus is being used to transfer a packet from another input port to this same output port, the arriving packet is blocked and must be queued at the input port, to enhance the performance.  Switching Fabric Line Termination Function Data Link Processing Lookup, Forwarding, Input Port Queuing

Output Queued (OQ) Switches
4. Crossbar Switch Models (Cont.) Also we can use the same strategy at the output port, so we can queued at the output port, to enhance the performance.  Line Termination Function Data Link Processing Queuing Output Port Output Queued (OQ) Switches

Combined Input and Output Queued (CIOQ) Crossbar Switches
4. Crossbar Switch Models (Cont.) Input Ports Output Ports Switching Fabric Routing Processor Queuing IQ Queuing OQ Combined Input and Output Queued (CIOQ) Crossbar Switches

Combined Input and Output Queued (CIOQ) Crossbar Switch Model
4. Crossbar Switch Architecture (Cont.) We use Combined Input and Output Queued (CIOQ) Crossbar Switches to get great performance. When the vertical bus (in switch fabric) is being used to transfer a packet. It’s not free it’s busy. We will useful from IQ Crossbar Switch model When the backbound network traffic was slower than the traffic on the switch fabric. We will useful from OQ Crossbar Switch model Combined Input and Output Queued (CIOQ) Crossbar Switch Model

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 8: Switching Theory and Architecture (Cont.)
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 8: Switching Theory and Architecture (Cont.) available at:

Switching Theory (Cont.)
Lecture 8: Switching Theory (Cont.) Contents: 1. Review 2. Speed Up and Delay Control in CIOQ 3. Stable Marriage Algorithms for CIOQ Gale-Shapley Algorithm (GSA) 4. Scheduling Algorithms for CIOQ First In First Out Scheduling Algorithm (FIFO) Most Urgent Cell First Scheduling Algorithm (MUCF) Randomized Switch Scheduling

1. Review Switch Processor Input Links Output Links a a b b c c
Forwarding Table Prefix Output Link a b c d e f g h i f f i i

Router Prefix Output Link 0 a 00 b 01 c 1 d 10 e 1100 f 1101 g 1110 h
Compressed 1-Bit Trie Algorithm

Decentralized Switching
Router Switch Input Links Output Links a a b b c Processor c Forwarding Table Prefix Output Link a b c d e f g h i Decentralized Switching f 00 f i i

2. Speed Up and Delay Control in CIOQ Switch:
The fabric speedup for an I Q switch equals 1 The fabric speedup for an OQ switch equals N Suppose we consider switches with fabric speedup of S, so the fabric speedup for CIOQ equles 1 < S ≪ N The Probabilisitc Analyses (Assume trafic model) and the Numerical Methods (Use simulated and actual traffic traces) approaches showed that switches which use a speedup of between 2 and 5 achieve the same mean delay and throughput.

IQ CIOQ OQ 1. Speed Up and Delay Control in CIOQ Switch:
The fabric speedup for an I Q switch equals 1 The fabric speedup for an OQ switch equals N Suppose we consider switches with fabric speedup of S, so the fabric speedup for CIOQ equles 1 < S ≪ N IQ CIOQ OQ Speedup = 1 Inexpensive Poor performance Speedup = 2--5 ? Good performance Speedup = N Expensive Great performance

3. Stable Marriage Algorithms for CIOQ:
Most, if not all, switch scheduling algorithms use stable marriage algorithms (SMAs) like “Gale-Shapley Algorithm (GSA)”. This is because of the following equivalence:- - request = proposal - grant and accept = engagement - final matching = marriage

3. Scheduling Algorithms for CIOQ:
The CIOQ schedule his queued work by the scheduling algorithm like: Queuing the packets as packet-by-packet under a stable FIFO (First In First Out) schedule algorithm. Queuing the packets based their most urgent packets under a unstable MUCF (Most Urgent Cell First) schedule algorithm.

3. Scheduling Algorithms for CIOQ:
The CIOQ schedule his queued work by the scheduling algorithm like: Queuing the packets as packet-by-packet under a stable FIFO (First In First Out) schedule algorithm. Queuing the packets based their most urgent packets under a unstable MUCF (Most Urgent Cell First) schedule algorithm. Randomized Switch schedule algorithm, base decisions upon a small, randomly chosen sample of the inputs, instead of the complete inputs.

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

Lecture 9: Bandwidth Partitioning
University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 9: Bandwidth Partitioning available at:

Bandwidth Partitioning
Lecture 9: Bandwidth Partitioning Contents: 1. Review 2. Network Bandwidth 2.1. Network Bandwidth – Network Centric Approach 2.2. Network Bandwidth – User Centric Approach

1. Review: Network Bandwidth (bit rate, channel capacity, or throughput) is a measure of communication channel usage (available or consumed of communication path) in bits/second “pbs” or multiples of it (kilobits/s “Kbps”, megabits/s “Mbps”, etc.).

How to congested network with many users?

2. Network Bandwidth: The basic idea is how to congested network with many users. So there are 2 problems will be appears: How can allocate bandwidth fairly between the users How can control queue size and hence delay To solve the problems we need to partitioning the bandwidth, however we have 2 approaches, can select any one of them: Approach 1: Network-Centric Approach 2: User-Centric Bandwidth Partitioning

S1 D1 D1 S1 D1 S1 D1 D1 S1 2. Network Bandwidth (Cont.):
The basic idea is how to congested network with many users. S1 D1 10Mpbs 10Mpbs D1 S1 1Mpbs D1 S1 : D1 D1 S1

2.1. Network Bandwidth – Network Centric Approach
We can divide the bandwidth depending on number of users (frequency division). Switch

2.1. Network Bandwidth – Network Centric Approach
We can divide the bandwidth depending on number of users (frequency division). Switch In this approach we partitioning the bandwidth depend on the number of users. This approach perfect fairness, but its responsive to number of users.

2.1. Network Bandwidth – User Centric Approach
We can divide the bandwidth depending on time (time division). Switch In this approach we partitioning the bandwidth depend on the time of packet arrival, as a FIFO. This approach also fairness, but its responsive to congestion.

Q & A Principles of Network Algorithms Second Semester – 2012
University of Technology Computer Science Department Network Administration Branch First Class Q & A Principles of Network Algorithms Second Semester – 2012 Prepare by: Dr. Mazin S. Ali available at:

University of Technology Computer Science Department Network Administration Branch First Class Principles of Network Algorithms Lecture 10: IPv4 Addressing available at:

1. IPv4 Addresses: IP Address (Internet Protocol address) is a numerical. label assigned to each device (e.g., computer, printer) participating in a computer network. With IPv4, it's 32bits long and unique; and with IPv6, it’s 128bits long and also unique. The IPv4 Address has two parts: The Network Part(netid)(also called IP prefix) and Host Part(hostid) to identify the host on that network to identify the network to which host is attached

1. IPv4 Addresses (Cont.): 192 . 168 . 0 . x 192 . 168 . 0 . 0
x

32bits IP address divides into 4 group of 8bits.
1. IPv4 Addresses (Cont.): 32bits IP address divides into 4 group of 8bits. 0 … 255 0 … 255 0 … 255 0 … 255 2 = 8 256 (0 … 255) To provide the flexibility to support different sized networks, with each network containing different number of hosts. IP address space of 2 addresses was divided into three different classes for networks and hosts, as Class A, Class B, Class C, and Class D. 32

2. Classful IPv4 Addressing Scheme (Cont.):
Classful IP Addressing Scheme Class A 2 7 2 = 24 = 128 Class B 1 2 14 2 = 16 = 2 21 Class C 1 1 = 2 = 256 8 Class D 1 1 1 Multicast Address A host can use a , multicast address as the destination address for packet generated to indicate the packet is meant for any hosts on the Interne

2. Classful IPv4 Addressing Scheme (Cont.):
Classful IP Addressing Scheme Class A 128 netid hostid Class B 16 384 1 65 536 netid 1 hostid Class C 1 1 256 netid 1 1 hostid

3. Public and Private IP Addresses:
Imagine, if we had a company has 1000 Computers, It is illogical to buy 1000 IP addresses, this exploitation of the amount of IP addresses. So we can buy 1 or 2 IP addresses (as a Public IP Addresses) and distributed them (using NAT) between the computers (as a Private IP Addresses). Private IP Addresses Class A Class B Class C These addresses are commonly used for homes, offices, and enterprise LANs.

192.168.0.3 Class C 3. Public and Private IP Addresses (Cont.):
Class A Class B Class C Just for speed observation (for Private or Public IP Addresses): each class started with specific range as shown Class A : Class B: Class C: Class C

There are certain IP addresses are reserved by the IANA for special use. Reserved for IP broadcast messages to the current network the "limited broadcast" destination address loopback addresses to the local host (troubleshooting) Network ID Host : All 0’s broadcast Host: All 255’s future use Started

5. Subnetting / Netmask: A Subnet is a logically subdivision of an IP network. The practice of dividing a network into two or more networks is called Subnetting. Class C For example: IP Address Subnet Mask (/24) AND Gateway