CST 311 Week 6 Journal Entry

Network Layer: Control Plane

This week, we learned more about the control plane and its role in the network layer. The control plane is in charge of determining the route a packet takes to get from the source to the destination. Two approaches are used to determine the routing path: per-router control and logically centralized control. 

In a per-router control panel, the routers interact with each other to find a packet's routing path. Each router has a local forwarding table that contains output links for each packet. The router reads the packet header and determines which link to send the packet to. In a logically centralized control plane (software-defined network), a remote controller interacts with local control agents in routers. The controller communicates with local control agents to compute forwarding tables, which then determine the appropriate route for each packet using the packet's header bits. 

A routing path needs to be "good" if it has certain characteristics such as least cost, least congestion, and fastest route. It can be represented by a graph abstract of the network showing the routers, links, and cost of each link. The algorithm in which routing is computed can be global or decentralized, as well as static or dynamic. Today's routing algorithms are load-sensitive, meaning the traffic load is taken into consideration when determining link costs. 

Dijkstra's Algorithm
Dijkstra's algorithm can compute the routing path with the least cost. This algorithm computes the least-cost path from one node to all other nodes and gives a forwarding table for the node we started at to any node in the network. In addition to the forwarding table, we can also create a shortest path tree to visually represent the shortest path from
one node to all other nodes. Once computed, each node can then broadcast the information in its forwarding table based on the information from its neighbors. In addition to Dijkstra's algorithm, we can also use the Bellman-Ford equation to calculate the shortest path. This algorithm allows us to calculate the distance vector or the cost of the least-cost path from one node to another. When a change is detected, a node updates routing information and recalculates the distance vector. Then, it broadcasts this information to its neighbors. Once all nodes update their distances, the routing tables will eventually converge. 

While we can calculate routing paths within a network, we can also calculate routing paths between different autonomous systems (AS) by using intra-AS routing and inter-AS routing. Some protocols that intra-AS routing uses are the Routing Information Protocol, Open Shortest Path First Protocol, and Interior Gateway Routing Protocol. Protocols that inter-AS routing uses are external and internal Border Gateways Protocols. Internal Border Gateway Protocol (iBGP) is used for routing inside an AS, while external Border Gateway Protocols (eBGP) allow ASs to share routing information with each other. Each network uses an eBGP to connect two networks that may have different routing protocols. The eBGP can allow different ASs to share routing information, regardless of what intra-AS protocol each AS may be using. 

This week's topic was tedious but interesting. I really enjoyed calculating the forwarding table using Dijkstra's algorithm. It reminded me of graph theory from a previous discrete math class and knot theory from my previous capstone class. I wonder if there is a connection between knot theory and network efficiency. Given time, it would be an interesting topic to research.

Comments

Popular posts from this blog

CST 300 - Week 8

CST 300 - Week 5

CST 300 - Week 6