Current SituationProblem ConstraintsObjective to be Achieved
Scope of the Project
1.1 Problem Definition
1.1.1 Current Situation
As a packet of connectionless network layer protocol travels from one router to the next, each router makes an independent forwarding decision for that packet. That is, each router analyzes the packet's header, runs a network layer algorithm and independently chooses a next hop for that packet, based on it's analysis of the packet's header and the results of running the routing algorithm. Packet headers contain considerably more information than is needed, simply to choose the next hop. As the packet traverses the network, hopping from router to router, each router in turn re-examines the packet’s header, and chooses the next hop for the packet based on it’s analysis. This implies a redundant mechanism.
As the Internet grows, routing table entries are also growing, leading to complex routing algorithms, which aid in making faster routing decisions. As network speeds increase, the processing requirements for network processors keep increasing. Also emerging new applications have driven the demand for increased and guaranteed bandwidth requirements in the backbone of the network. In addition to the traditional data services currently provided over the Internet, new voice and multimedia services are developed and deployed. The Internet has emerged as the network of choice for providing these converged services. However, the demands placed on the network by these applications and services, in terms of speed and bandwidth have strained the resources of the existing Internet infrastructure.
In addition to the issue of resource constraints, another challenge relates to the transport of bits and bytes over the backbone to provide differentiated classes of service to users. The exponential growth in the number of users and the volume of traffic adds another dimension to this problem. Class of Service (CoS) and Quality of Service (QoS) issues must be addressed to in order to support the diverse requirements of the wide range of network users.
As the demand for higher speed and the ability to support higher bandwidth transmission rates emerged, devices with the capabilities to switch at the Layer 2 (data link) and Layer 3 (network) in hardware had to be deployed. Layer 2 switching devices addressed the problem of bottlenecks within the subnets of a local area network (LAN) environment.
1.1.2 Problem Constraints
These early solutions addressed the need for wire speed transfer of packets as they traversed the network, but did not address the service requirements of the information contained in the packets. Also, most of the routing protocols deployed today are based on the algorithms designed to obtain the shortest path in the network for packet traversal and do not take into account additional metrics (such as delay, jitter and traffic congestion), which can further diminish network performance.
A new protocol, namely, Multi Protocol Label Switching (MPLS) protocol has been proposed to overcome certain limitations, drawbacks and problems associated with the network model currently in use on the Internet. This protocol makes use of labels and attaches them to packets. These labels then assist next hop routers to make their own routing decision without deep packet inspection or running of complicated routing algorithms.
MPLS is not a replacement to any of the architectures in use today, but is a superset so as to provide an efficient core routing. Other advantages of MPLS are inherently bound to it’s architecture. MPLS makes use of Layer 3 protocols so as to propagate and update any route specific information and just provides an additional routing (switching) table through which all packets are switched. After the initial latency of table creation, which is bounded to Layer 3 protocols, the packet switching is done through the new switching tables and requires only few operations to be performed at each hop.
1.1.3 Objective to be achieved
The project will aim at a restricted implementation of MPLS in the core of the IP domain over a simulated network. We will show the flow of packets through the core of the network using MPLS and thus show the routing of packets within a network using labels instead of the conventional IP addresses used.
1.2 Scope of the Project
New applications have driven the demand for increased and guaranteed bandwidth requirements in the backbone of the network. In addition to the traditional data services currently provided over the Internet, new voice and multimedia services are developed and deployed. The Internet has emerged as the network of choice for providing these converged services. However, the demands placed on the network by these new applications and services, in terms of speed and bandwidth, have strained the resources of the existing Internet infrastructure. This transformation of the network toward a packet and cell based infrastructure has introduced uncertainty into what has traditionally been a fair deterministic network.
In addition to the issue of resource constraints, another challenge relates to the transport of bits and bytes over the backbone to provide differentiated classes of service to users. The exponential growth in the number of users and the volume of traffic adds another dimension to this problem. Class of service (CoS) and QoS issues must be addressed to in order to support the diverse requirements of the wide range of network users.
As the demand for higher speed and the ability to support higher bandwidth transmission rates emerged, devices with capabilities to switch at the level-2 (data link) and the level-3 (network layer) in hardware had to be deployed. Layer-2 switching devices addressed the switching bottlenecks within the subnets of a local area network (LAN) environment.
These early solutions addressed the need for wire-speed transfer of packets as they traversed the network, but did not address the service requirements of the information contained in the packets. Also, most of the routing protocols deployed today are based on the algorithms designed to obtain the shortest path in the network for packet traversal and do not take into account additional metrics (such as delay, jitter, and traffic congestion), which can further diminish network performance.
The project will aim at a limited implementation of MPLS protocol where we will show the working of MPLS over a simulated network. The simulated network will be created using socket calls and assuming the socket connections between different computers to be the physical connection.
Due to this assumption, we will not be able to achieve all the benefits that MPLS has over conventional IP Routing. What we will achieve though will be the implementation of a label switching technology for packet forwarding.
Thus, we will implement label switching and show effectively the simplicity of the technique over the conventional IP Routing technology used for packet forwarding.
Sometimes it is desirable to force a packet to follow a particular route which is explicitly chosen at or before the time the packet enters the network, rather than being chosen by the normal dynamic routing algorithm as the packet travels through the network. This may be done as a matter of policy, this requires the packet to carry an encoding of its route along with it (“source routing”). In MPLS, a label can be used to represent the route, so that the identity of the explicit route need not be carried with the packet.
Complicated policy bindings:
The considerations that determine how a packet is assigned to a FEC can become ever more and more complicated, without any impact at all on the routers that merely forward labeled packets.
MPLS abstracts the media specific qualities away from more complex network engineering (QoS, CoS, DiffServ). MPLS forwarding can be used to make VPN service more flexible and deployable without compromising the performance of the edge routers (switches).
The methodology adopted for the project work is broadly divided into four phases:
4) Deployment and Testing
This phase included an in-depth study of Network model currently in use on the Internet. Also an in-depth study of Internet Protocol, IP routing algorithms such as RIP, OSPF and BGP.
Further, the concept of Edge router, Core Router, Unicast and Multicast Routing, Classless Interdomain Routing (CIDR) needs to be thoroughly understood.
All the essential components that will be required by the project need to be estimated at this phase and should be configured accordingly and maintained throughout life cycle of the project.
Moreover, study regarding MPLS and one method of distributing labels i.e. (LDP) and LSRs and their functionality should be understood properly.
Software development under C should be done and on Linux platform. After this we have to learn how to do network programming using TCP/IP sockets.
This includes following:
Ø Using Vim/Emacs as editor
Ø Compilation using GCC. Concepts of relocatable object files, loading and linking.
Ø Using GDB for program debugging
Ø Using Makefiles and GNU Make-Header Dependencies. Hierarchical Compilation
Ø Basics of scripting tools:sed, awk, shell script
Ø Client Server Programming using sockets
We have to develop architecture for the actual implementation of MPLS. This will include development of a basic “Simulated Network” using TCP/IP sockets on Linux and the implementation of routers on top of this basic environment. This will also involve the definition of API on how this environment will effectively simulate an actual network on which packets can be transmitted between a fixed set of end hosts and routers.
Splitting of MPLS routing into Control and Data Plane. APIs for these planes. The Control Plane manages MPLS tables, while Data Plane uses these tables to make actual forwarding decisions for the packet it encounters.
Architecture for LDP implementation and its API and how it will integrate into the Control Plane.
Initial task of development is further broadly divided into two phases that consists of :
1) Developing MPLS for manual LSP setup:
In this the label assignment is done manually by configuring each and every LSR for its expected functionality. This phase provides us with a working MPLS setup i.e. all the platform related operations for example, configuring the Linux kernel for MPLS, using IOCTLs etc. is done. Thus the basic operation of MPLS becomes stable at this point.
2) Adding LDP support:
Once the initial skeleton of MPLS is ready another set of procedures can be developed which adds dynamic label binding functionality while retaining the existing manual mode. This dynamic label binding functionality can be developed by conforming to the LDP.
Deployment & Testing
The project will be deployed for the Core IP network. Three multihomed computers will act as routers. Two terminals (non MPLS) will be connected to the two of the routers. Thus the following scenario will be used:
In this every block of the project will be tested for its proposed functionality and even for its behaviour in unknown conditions.
The project will be atleast tested for its behaviour under following circumstances:
Ø If any intermediate routers goes down
Ø For any route change propagation on the run
Ø Under varying system and network load
1.4 Project Resources
Four networked computers with any type of physical connections within themselves. An instance can be given as:
ü IBM PC or compatible
ü A Network card (NIC)
ü 1MB of disk space
ü 10KB of physical memory
ü Red Hat Linux 6.0
ü gcc ver 2.96
ü BSD socket interface
ü Emacs text editor
ü TCP/IP stack
ü Four or more IP addresses for different computers.
Prev TOP NEXT