Actually I wanted to write a seperate article for this but than felt that it's better if I keep everything in the previous OSI question so I put everything here Enjoy.