Basics of OSPF

No Comments

OSPF is by far the most popular and important protocol in use today.

Most important features of OSPF:

  1. Its open source !
  2. Very fast convergence time, ( a tad close to even EIGRP )
  3. Link-state routing protocol
  4. Supports multiple, equal cost routes to the same destination
  5. Supports both IPv4 and IPv6
  6. Uses Dijkstra’s algorithm to find the shortest path tree and follows that by populating the routing table with resulting best path.
  7. Allows creation of areas and autonomous system
  8. Minimizes routing update traffic
  9. Supports VLSM/CIDR
  10. Unlimited hop count (unlike RIP)
  11. Supports Multi-vendor deployment.

Lets get familiar with few terms related to OSPF:

  • Router ID: In OSPF this is a unique 32-bit number assigned to each router. This is chosen as the highest IP address on a router, and can be set large by configuring an address on a loopback interface of the chosen router.
  • Neighbor Routers: two routers with a common link that can talk to each other.
  • Adjacency: a two-way relationship between two neighbor routers. Neighbors don’t always form adjacencies.
  • LSA: Link State Advertisements are flooded; they describe routes within a given link.
  • Hello Protocol: this is how routers on a network determine their neighbors and form LSAs.
  • Area: a hierarchy. A set of routers that exchange LSAs, with others in the same area. Areas limit LSAs and encourage aggregate routes.

OSPF protocol builds and maintains three separate tables:

  1. A neighbor table – contains a list of all neighboring routers.
  2. A topology table – contains a list of all possible routes to all known networks within an area. ( and finally.. drum rolls)
  3. A routing table – contains the best route for each known network.

Different types of routers :

  1. ABR : An Area Border Router is a router that is in area zero, and one or more other areas.
  2. DR, BDR : A Designated Router, as we said, is the router that keeps the database for the subnet. It sends and receives updates (via multicast) from the other routers in the same network.
  3. ASBR : The Autonomous System Boundary Router is very special, but confusing. The ASBR connects one or more AS, and exchanges routes between them. The ASBR’s purpose is to redistribute routes from another AS into its own AS.

OSPF states – The device operating OSPF goes through certain states. These states are:

  1. Down – In this state, no hello packet have been received on the interface.
    Note – The Down state doesn’t mean that the interface is physically down. Her, it means that OSPF adjacency process has not started yet.
  2. INIT – In this state, hello packet have been received from the other router.
  3. 2WAY – In the 2WAY state, both the routers have received the hello packets from other routers. Bidirectional connectivity has been established.
    Note – In between the 2WAY state and Exstart state, the DR and BDR election takes place.
  4. Exstart – In this state, NULL DBD are exchanged.In this state, master and slave election take place. The router having the higher router I’d becomes the master while other becomes the slave. This election decides Which router will send it’s DBD first (routers who have formed neighbourship will take part in this election).
  5. Exchange – In this state, the actual DBDs are exchanged.
  6. Loading – In this sate, LSR, LSU and LSA (Link State Acknowledgement) are exchanged.
    Important – When a router receives DBD from other router, it compares it’s own DBD with the other router DBD. If the received DBD is more updated than its own DBD then the router will send LSR to the other router stating what links are needed. The other router replies with the LSU containing the updates that are needed. In return to this, the router replies with the Link State Acknowledgement.
  7. Full – In this state, synchronization of all the information takes place. OSPF routing can begin only after the Full state.

Categories: Programming

Euler Problem 4: Largest palindrome product : C Programming Solution

Problem 4: 

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

Find the largest palindrome made from the product of two 3-digit numbers.

Solution Approach:

Brute force method:

  1. Create a function that checks a number for being a palindrome.
  2. keep multiplying the numbers from 999 X 999 decretmenting one at a time.
  3. Find the multiplication and get the highest product and  print

Read More…

Categories: Programming

Euler Problem 3: Largest prime factor : C Programming Solution

No Comments

Problem :

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

Solution Approach :

Simple approach would be to identify all the prime numbers under the square root of the number 600851475143 which divide the the number 600851475143. When you find a prime factor using this method, keep the track of largest such number to get our result. Read More…

Categories: Programming

Euler Problem 2: Even Fibonacci numbers : C Programming Solution

No Comments

Problem 2:

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

Solution Approach:

Question starts of with introduction to Fibonacci sequence, which by the way, is a very interesting topic and highly encourage you guys to read about it in web whenever you get time.

Idea is to get the “next” element of Fibonacci series by adding the “present” and “previous” element.  When the element is an even number, add to the “sum” variable. Very simple indeed. Give it a try for yourself before checking the problem solution below. Read More…

Categories: Programming

Euler Problem 1: Multiples of 3 and 5 : C programming solution

No Comments

Problem Statement :

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

Solution Approach:

Being the first problem of the series, its quite a simple one. there are many ways to approach this problem.

Most simplest one is  to iterate through all the numbers from 3 to 1000 and check if its divisible by 3 or 5. If they are, just add them to the sum. Read More…

Categories: Programming Tags: Tags: , , ,


Are you getting started with PHP ? Then you gotta know these facts about php. It will help to generate interest in yourself and encourage others to learn php.
Many of these facts are reason for PHP being so popular. I can across these ones while learning the stuff online, doing some research. These may seem basic stuff, but you should know it any case. Its always to make your foundation strong every time, no matter what you are learning. Right ? So, here we go ! Read More…