Computer Networking : Principles, Protocols and Practice
Fri, 06/18/2010 - 22:38 by Olivier Bonaventure • Categories:
Computer Networking : Principles, Protocols and Practice (aka CNP3) is an ongoing effort to develop an open-source networking textbook that could be used for an in-depth undergraduate or graduate networking courses.
The first edition of the textbook uses the top-down approach initially proposed by Jim Kurose and Keith Ross for their Computer Networks textbook published by Addison Wesley. CNP3 is distributed under a creative commons license.
A second edition is being developed on https://github.com/obonaventure/cnp3/tree/master/book-2nd and http://cnp3book.info.ucl.ac.be
First edition of the textbook
The book contains the following chapters :
- The Introduction explains the importance of services in computer networks and the OSI and TCP/IP reference models.
- The Application layer chapter explains the application layer and describes the operation of the Domain Name System, Internet email and the worldwide web
- The Transport layer chapter provides first a detailed explanation of the mechanisms that are used to provide a reliable transport service above an unreliable network service. Then, it discusses in details the operations of the UDP and TCP protocols including the TCP congestion control scheme.
- The Network layer chapter describes first the principles of the network layer, including link state routing and distance vector routing. Then, the operation of the RIP, OSPF and BGP protocols is discussed in details.
- The Datalink layer and Local Area Networks describes first the basic principles of Local Area Networks with the main Medium Access Control algorithms. Then, Ethernet and WiFi are explained in more details.
- A detailed Bibliography with links to relevant networking books, papers and RFCs.
A online bibliography that contains the bibtex references of the citations from the book is being developed on mendeley at
The bibliography is being e expanded through the CNP3 blog that presents recent articles and documents that could be of interest to students who have studied networking by using the textbook.
A set of slides with animations has been developed for CNP3. The slides were designed by using Apple's Keynote (version 2008). The slides have been exported in powerpoint and pdf formats for non-Keynote users.
- Introduction : Keynote, pdf, powerpoint, slideshare
- Application layer : Keynote, pdf, powerpoint, slideshare
- Transport layer : Keynote, pdf, powerpoint, slideshare
- Network layer : Keynote, pdf, powerpoint, slideshare
- Datalink layer and Local Area Networks : Keynote, pdf, powerpoint, slideshare
Two discussion groups have been created for students having questions about the content of the textbook.
- Discussion group in English : http://groups.google.com/group/cnp3
- Discussion group in French : http://groups.google.com/group/cnp3-fr
The textbook is already used as a reference for the following courses:
- LINGI2141 : Computer networks : Information Transfert at Université catholique de Louvain (Prof. O. Bonaventure)
- CS471 : Computer Networks: Principles and Practices at Lahore University in Pakistan (Prof. Zartash Afzal Uzmi)
- Grundlagen des Internets at University of Tuebingen (Prof. M. Menth)
- Redes de Computadores II at Universidad de Castilla La Mancha
Computer Networking : Principles, Protocols and Practice is lead by Olivier Bonaventure. Mickael Hoerdt, Laurent Vanbever and Virginie van den Schriek contributed to the exercices. Pierre Reinbold created the icons and Nipaul Long redraw some of the figures in SVG format.
How to contribute ?
Like any open-source project, the future of Computer Networking Principles, Protocols and Practice will depend on its contributors. The development of the textbook is managed at https://github.com/obonaventure/cnp3 . You can contribute to the project by :
- sending reviews, comments, suggestions or bug reports by filing ticketsor via the CNP3 mailing list
- proposing new exercices or sending patches on https://github.com/obonaventure/cnp3/
The source code of the entire code is managed by subversion. You can browse it from https://github.com/obonaventure/cnp3
You can follow the update of the book on its dedicated facebook page.
This work is licensed under a Creative Commons Attribution 3.0 Unported License.