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 used 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. The second edition takes a different approach. The new features of the second edition are :
- The second edition of the ebook is now divided in two main parts
- The first part of the ebook uses a bottom-up approach and focuses on the principles of the computer networks without entering into protocol and practical details. It can be used as the first part of an undergraduate network course or as an introduction to computer networks for students who do not need to understand all the protocol details. This first part explains concepts such as the basic principles of the physical layer, the go-back-n and selective repeat mechanisms in the datalink layer, the key principles of the control and the data planes of the network layer, the principles of the transport layer and how resources are shared in a network
- The second part describes the operation of real protocols that use the principles explained in the first part. Given that most IPv4 addressed have been allocated, more and more networks are moving to IPv6 and this ebook makes no exception. From a pedagogical viewpoint, the principles behind IPv6 and IPv4 are very similar and the ebook has chosen to only explain IPv6. Experience with the students shows that they easily understand the difference with IPv4. In the application layer, DNS, email, HTTP and RPC are discussed. In the transport layer, the ebook covers UDP and both TCP and SCTP. SCTP was added to show to the students that there are other designs than TCP for a reliable transport protocol. In the network layer, both the data and the control planes are described. The BGP description has been shortened to focus only on eBGP. Finally, in the datalink layer, the focus has been placed on Ethernet and WiFi
Numerous exercises are also provided as well as interactive quizzes that enable the students to verify their understanding of the different chapters and lab experiments with netkit and other software tools. The detailed bibliography encourages students to deepen their knowledge of the different topics by reading the hyperlinked references.
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.
The book can also be downloaded in pdfand epub format suitable for a tablet reader or ipad. It is also available on iTunes.
Bibliography
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.
Slides
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
Discussion groups
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
Textbook adoption
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
Contributors
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.