Permalink
Browse files

all references are now clickable

git-svn-id: https://scm.info.ucl.ac.be/svn/cnp3@244 14dccba5-582d-4002-99b7-ff2b615b05c3
  • Loading branch information...
obo
obo committed Jul 27, 2011
1 parent c276a0e commit 2ea437a3cbae58bc2982c2cb110c704c45c2de43
Showing with 211 additions and 159 deletions.
  1. +5 −0 book/Makefile
  2. BIN book/application/svg/app-fig-001-c.png
  3. BIN book/application/svg/app-fig-002-c.png
  4. BIN book/application/svg/app-fig-003-c.png
  5. BIN book/application/svg/app-fig-004-c.png
  6. BIN book/application/svg/app-fig-005-c.png
  7. BIN book/application/svg/app-fig-006-c.png
  8. BIN book/application/svg/app-fig-007-c.png
  9. BIN book/application/svg/app-fig-008-c.png
  10. BIN book/application/svg/email-arch.png
  11. BIN book/application/svg/email-delivery.png
  12. BIN book/application/svg/http-cookies.png
  13. BIN book/application/svg/http-persistent.png
  14. BIN book/application/svg/http-requests-responses.png
  15. BIN book/application/svg/www-basics.png
  16. +145 −145 book/bibliography.rst
  17. +50 −4 book/conf.py
  18. +2 −2 book/intro/introduction.rst
  19. BIN book/intro/svg/anycast.png
  20. BIN book/intro/svg/bus.png
  21. BIN book/intro/svg/fullmesh.png
  22. BIN book/intro/svg/internetwork.png
  23. BIN book/intro/svg/intro-figures-001-c.png
  24. BIN book/intro/svg/intro-figures-002-c.png
  25. BIN book/intro/svg/intro-figures-003-c.png
  26. BIN book/intro/svg/intro-figures-004-c.png
  27. BIN book/intro/svg/intro-figures-005-c.png
  28. BIN book/intro/svg/intro-figures-006-c.png
  29. BIN book/intro/svg/intro-figures-007-c.png
  30. BIN book/intro/svg/intro-figures-008-c.png
  31. BIN book/intro/svg/intro-figures-009-c.png
  32. BIN book/intro/svg/intro-figures-011.png
  33. BIN book/intro/svg/multicast.png
  34. BIN book/intro/svg/ring.png
  35. BIN book/intro/svg/star.png
  36. BIN book/intro/svg/tree.png
  37. BIN book/intro/svg/unicast.png
  38. +1 −1 book/lan/principles.rst
  39. +3 −3 book/links.rst
  40. +1 −1 book/network/exercises/cha-network.rst
  41. BIN book/transport/svg/congestion-problem.png
  42. BIN book/transport/svg/tcp-2mbps.png
  43. BIN book/transport/svg/tcp-ports.png
  44. BIN book/transport/svg/tcp-self-clocking.png
  45. BIN book/transport/svg/transport-fig-001-c.png
  46. BIN book/transport/svg/transport-fig-002-c.png
  47. BIN book/transport/svg/transport-fig-003-c.png
  48. BIN book/transport/svg/transport-fig-004-c.png
  49. +4 −3 book/util/convert.sh
View
@@ -130,3 +130,8 @@ doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
pdf:
$(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) _build/pdf
@echo
@echo "Build finished. The PDF files are in _build/pdf."
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -22,7 +22,10 @@
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.#
extensions = ['sphinx.ext.todo', 'sphinx.ext.pngmath']
extensions = ['sphinx.ext.todo', 'sphinx.ext.pngmath']
#'rst2pdf.pdfbuilder', 'rst2pdf.pdfmath', 'sphinx.ext.pngmath' ]
#,
# 'sphinx.ext.autodoc','rst2pdf.pdfbuilder']
#extensions = ['sphinx.ext.pngmath', 'rst2pdf.pdfbuilder']
# Add any paths that contain templates here, relative to this directory.
@@ -248,8 +251,7 @@
# Grouping the document tree into PDF files. List of tuples # (source start file, target name, title, author, options). # # If there is more than one author, separate them with \\. # For example: r'Guido van Rossum\\Fred L. Drake, Jr., editor' #
# The options element is a dictionary that lets you override # this config per-document. # For example, # ('index', u'MyProject', u'My Project', u'Author Name',
# dict(pdf_compressed = True)) # would mean that specific document would be compressed # regardless of the global pdf_compressed setting.
pdf_documents = [ ('index', u'MyProject', u'My Project', u'Author Name'),
]
#pdf_documents = [ ('index', u'MyProject', u'My Project', u'Author Name'),]
# A comma-separated list of custom stylesheets. Example: pdf_stylesheets = ['sphinx','kerning','a4']
# Create a compressed PDF # Use True/False or 1/0 # Example: compressed=True #pdf_compressed = False
# A colon-separated list of folders to search for fonts. Example: # pdf_font_path = ['/usr/share/fonts', '/usr/share/texmf-dist/fonts/']
@@ -267,6 +269,50 @@
# Enable experimental feature to split table cells. Use it # if you get "DelayedTable too big" errors #pdf_splittables = False
# ----- pdf options for rst2pdf -----
#
#
#pdf_documents = [
# ('index', project, project, u'Computer networking : Principles, Protocols and Practice', u'Computer networking : Principles, Protocols and Practice', u'Olivier Bonaventure'),
# ]
# A comma-separated list of custom stylesheets. Example:
#pdf_stylesheets = ['sphinx','kerning','a4']
# Language to be used for hyphenation support
#pdf_language = "en_US"
# Mode for literal blocks wider than the frame. Can be
# overflow, shrink or truncate
#pdf_fit_mode = "shrink"
# Section level that forces a break page.
# For example: 1 means top-level sections start in a new page
# 0 means disabled
#pdf_break_level = 0
# When a section starts in a new page, force it to be 'even', 'odd',
# or just use 'any'
#pdf_breakside = 'any'
# Insert footnotes where they are defined instead of
# at the end.
#pdf_inline_footnotes = True
# verbosity level. 0 1 or 2
#pdf_verbosity = 0
# If false, no index is generated.
#pdf_use_index = True
# If false, no modindex is generated.
#pdf_use_modindex = True
# If false, no coverpage is generated.
#pdf_use_coverpage = True
# Name of the cover page template to use
#pdf_cover_template = 'sphinxcover.tmpl'
# ----- Options for epub output ----------
#
#epub_basename
@@ -296,7 +342,7 @@
epub_scheme="URL"
#The publication scheme for the epub_identifier. This is put in the Dublin Core metadata. For published books the scheme is 'ISBN'. If you use the project homepage, 'URL' seems reasonable. The default value is 'unknown'.
epub_uid="CNP3_"+version
#epub_uid="CNP3_"+version
#A unique identifier for the document. This is put in the Dublin Core metadata. You may use a random string. The default value is 'unknown'.
#epub_pre_files
@@ -5,7 +5,7 @@
Introduction
============
When the first computers were built during the second world war, they were expensive and isolated. However, after about twenty years, as their prices were decreasing, the first experiments began to connect computers together. In the early 1960s researchers including `Paul Baran`_, `Donald Davies`_ or `Joseph Licklider`_ published independently the first papers describing the idea of building computer networks [Baran]_ [Licklider1963]_ . Given the cost of computers, sharing them over a long distance was an interesting idea. In the US, the :term:`ARPANET` started in 1969 and continued until the mid 1980s [LCCD09]_. In France, `Louis Pouzin`_ developed the Cyclades network [Pouzin1975]_. More other research networks were built during the 1970s [Moore]_. At the same time, the telecommunication and the computer industry became interested in computer networks. The telecommunication industry bet on the X25_. The computer industry took a completely different approach by designing Local Area Networks (LAN). Many LAN technologies such as Ethernet or Token Ring were designed at that time. During the 1980s, the need to interconnect more and more computers led most computer vendors to develop their own suite of networking protocols. Xerox developed [XNS]_, DEC chose DECNet[Malamud1991]_, IBM developed SNA [McFadyen1976]_, Microsoft introduced NetBIOS [Winston2003]_, Apple bet on Appletalk [SAO1990]_, ... In the research community, ARPANET was decommissioned and replaced by TCP/IP [LCCD09]_ and the reference implementation was developed inside BSD Unix [McKusick1999]_. Universities who were already running Unix could thus adopt TCP/IP easily and vendors of Unix workstations such as Sun or Silicon Graphics included TCP/IP in their variant of Unix. In parallel, the :term:`ISO`, with support from the governments, worked on developing an open [#fopen]_ suite of networking protocols. In the end, TCP/IP became the de facto standard that is used not only within the research community. During the 1990s and the early 2000s, the growth of the usage of TCP/IP continued and today proprietary protocols are seldom used. As shown by the figure below that provides the estimation of the number of hosts attached to the Internet, the Internet sustained a huge growth during the last 20+ years.
When the first computers were built during the second world war, they were expensive and isolated. However, after about twenty years, as their prices were decreasing, the first experiments began to connect computers together. In the early 1960s researchers including `Paul Baran`_, `Donald Davies`_ or `Joseph Licklider`_ published independently the first papers describing the idea of building computer networks [Baran]_ [Licklider1963]_ . Given the cost of computers, sharing them over a long distance was an interesting idea. In the US, the :term:`ARPANET` started in 1969 and continued until the mid 1980s [LCCD09]_. In France, `Louis Pouzin`_ developed the Cyclades network [Pouzin1975]_. More other research networks were built during the 1970s [Moore]_. At the same time, the telecommunication and the computer industry became interested in computer networks. The telecommunication industry bet on the X25_. The computer industry took a completely different approach by designing Local Area Networks (LAN). Many LAN technologies such as Ethernet or Token Ring were designed at that time. During the 1980s, the need to interconnect more and more computers led most computer vendors to develop their own suite of networking protocols. Xerox developed [XNS]_ , DEC chose DECNet [Malamud1991]_ , IBM developed SNA [McFadyen1976]_ , Microsoft introduced NetBIOS [Winston2003]_ , Apple bet on Appletalk [SAO1990]_ . In the research community, ARPANET was decommissioned and replaced by TCP/IP [LCCD09]_ and the reference implementation was developed inside BSD Unix [McKusick1999]_. Universities who were already running Unix could thus adopt TCP/IP easily and vendors of Unix workstations such as Sun or Silicon Graphics included TCP/IP in their variant of Unix. In parallel, the :term:`ISO`, with support from the governments, worked on developing an open [#fopen]_ suite of networking protocols. In the end, TCP/IP became the de facto standard that is used not only within the research community. During the 1990s and the early 2000s, the growth of the usage of TCP/IP continued and today proprietary protocols are seldom used. As shown by the figure below that provides the estimation of the number of hosts attached to the Internet, the Internet sustained a huge growth during the last 20+ years.
.. figure:: png/intro-figures-006-c.png
:align: center
@@ -37,7 +37,7 @@ Computer networks are used to allow several hosts to exchange information betwee
.. figure:: svg/fullmesh.png
:align: center
:scale: 50
:scale: 100
A Full mesh network
View
BIN +111 KB (250%) book/intro/svg/anycast.png
Binary file not shown.
View
BIN +39.3 KB (250%) book/intro/svg/bus.png
Binary file not shown.
View
BIN +79.3 KB (240%) book/intro/svg/fullmesh.png
Binary file not shown.
View
BIN +128 KB (260%) book/intro/svg/internetwork.png
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Binary file not shown.
View
Diff not rendered.
View
Diff not rendered.
View
Diff not rendered.
View
BIN +112 KB (250%) book/intro/svg/multicast.png
Diff not rendered.
View
BIN +73.6 KB (250%) book/intro/svg/ring.png
Diff not rendered.
View
BIN +84.3 KB (250%) book/intro/svg/star.png
Diff not rendered.
View
BIN +73.5 KB (250%) book/intro/svg/tree.png
Diff not rendered.
View
BIN +106 KB (250%) book/intro/svg/unicast.png
Diff not rendered.
View
@@ -492,7 +492,7 @@ Deterministic Medium Access Control algorithms
During the 1970s and 1980s, there were huge debates in the networking community about the Medium Access Control algorithms that were the best suited for Local Area Networks. The optimistic algorithms that we have described until now were relatively easy to implement when they were designed. From a performance viewpoint, mathematical models and simulations showed the ability of these optimistic techniques to sustain load. However, none of the optimistic technique is able to guarantee that a frame will be delivered within a given delay bound and some applications required predictable transmission delays. The deterministic MAC algorithms were considered by a fraction of the networking community as the best solution to fulfill the needs of Local Area Networks.
Both the proponents of the deterministic and the opportunistic techniques lobbied to develop standards for Local Area networks that would incorporate their solution. Instead of trying to find an impossible compromise between these diverging views, the IEEE 802 committee that was chartered to develop Local Area Network standards chose to work in parallel on three different LAN technologies and created three working groups. The `IEEE 802.3 working group <http://www.ieee802.org/3/>`_ became responsible for CSMA/CD. The proponents of deterministic MAC algorithms agreed on the basic principle of exchanging special frames called tokens between devices to regulate the access to the transmission medium. However, they did not agree on the most suitable physical layout for the network. IBM argued in favor of Ring-shaped networks while the manufacturing industry, led by General Motors, argued in favor of a bus-shaped network. This led to the creation of the `IEEE 802.4 working group <http://www.ieee802.org/4/>`_ to standardise Token Bus networks and the `IEEE 802.5 working group <http://www.ieee802.org/5/>`_ to standardise Token Ring networks. Although these techniques are not widely used anymore today, the principles behind a token-based protocol are still important.
Both the proponents of the deterministic and the opportunistic techniques lobbied to develop standards for Local Area networks that would incorporate their solution. Instead of trying to find an impossible compromise between these diverging views, the IEEE 802 committee that was chartered to develop Local Area Network standards chose to work in parallel on three different LAN technologies and created three working groups. The `IEEE 802.3 working group <http://www.ieee802.org/3/>`_ became responsible for CSMA/CD. The proponents of deterministic MAC algorithms agreed on the basic principle of exchanging special frames called tokens between devices to regulate the access to the transmission medium. However, they did not agree on the most suitable physical layout for the network. IBM argued in favor of Ring-shaped networks while the manufacturing industry, led by General Motors, argued in favor of a bus-shaped network. This led to the creation of the `IEEE 802.4 working group` to standardise Token Bus networks and the `IEEE 802.5 working group <http://www.ieee802.org/5/>`_ to standardise Token Ring networks. Although these techniques are not widely used anymore today, the principles behind a token-based protocol are still important.
The IEEE 802.5 Token Ring technology is defined in [802.5]_. We use Token Ring as an example to explain the principles of the token-based MAC algorithms in ring-shaped networks. Other ring-shaped networks include the almost defunct FDDI [Ross1989]_ or the more recent Resilient Pack Ring [DYGU2004]_ . A good survey of the token ring networks may be found in [Bux1989]_ .
View
@@ -52,7 +52,7 @@
.. _xorp: http://www.xorp.org
.. _quagga: http://www.quagga.org
.. _quagga: http://www.quagga.net
.. _uIP: http://www.sics.se/~adam/uip/index.php/Main_Page
@@ -174,7 +174,7 @@
.. _facebook: http://www.facebook.com
.. _akamai: http://www.akamai.net
.. _akamai: http://www.akamai.com
.. _sprint: https://www.sprint.net/
@@ -248,7 +248,7 @@
.. _inkscape: http://www.inkscape.org
.. _email clients: http://en.wikipedia.org/wiki/Comparison_of_email_client
.. _email clients: http://en.wikipedia.org/wiki/Comparison_of_email_clients
.. _ISP: http://en.wikipedia.org/wiki/Internet_service_provider
@@ -234,7 +234,7 @@ Practice
!
log file /var/log/zebra/zebra.log
In the zebra configuration file, lines beginning with `!` are comments. This configuration defines the hostname as `zebra` and two passwords. The default password (`password zebra`) is the one that must be given when connecting to the :manpage:`zebra(8)` management console over a TCP connection. This management console can be use like a shell on a Unix host to specify commands to the :manpage:`zebra(8)` daemons. The second one (`enable password zebra`) specifies the password to be provided before giving commands that change the configuration of the daemon. It is also possible to specify static routes in this configuration file, but we do not use this facility in this exercise. The last parameter that is specified is the log file where :manpage:`zebra(8)` writes debugging information. Additional information about quagga_ are available from http://http://www.quagga.net/docs/docs-info.php
In the zebra configuration file, lines beginning with `!` are comments. This configuration defines the hostname as `zebra` and two passwords. The default password (`password zebra`) is the one that must be given when connecting to the :manpage:`zebra(8)` management console over a TCP connection. This management console can be use like a shell on a Unix host to specify commands to the :manpage:`zebra(8)` daemons. The second one (`enable password zebra`) specifies the password to be provided before giving commands that change the configuration of the daemon. It is also possible to specify static routes in this configuration file, but we do not use this facility in this exercise. The last parameter that is specified is the log file where :manpage:`zebra(8)` writes debugging information. Additional information about quagga_ are available from http://www.quagga.net/docs/docs-info.php
The most interesting configuration file for this exercise is the `/etc/zebra/ripd.conf` file. It contains all the parameters that are specific to the operation of the RIP protocol. A sample :manpage:`ripd(8)` configuration file is shown below.
View
Diff not rendered.
View
BIN +42.5 KB (240%) book/transport/svg/tcp-2mbps.png
Diff not rendered.
View
BIN +47.9 KB (230%) book/transport/svg/tcp-ports.png
Diff not rendered.
View
Diff not rendered.
View
Diff not rendered.
View
Diff not rendered.
View
Diff not rendered.
View
Diff not rendered.
View
@@ -11,14 +11,15 @@ then
W=`${INKSCAPE} -W ${1}`
H=`${INKSCAPE} -H ${1}`
# ${INKSCAPE} ${1} --export-area-drawing --export-area-snap --export-dpi=30 --export-png=${DIRNAME}/${BASENAME}.png
# FILESIZE=`stat -f %z ${DIRNAME}/${BASENAME}.png`
# if [ ${FILESIZE} -ge 100000 ]
# then
NEWH=`echo "600*${H}/${W}" | bc -lq`
${INKSCAPE} ${1} --export-area-drawing --export-area-snap --export-width=600 --export-height=${NEWH} --export-png=${DIRNAME}/${BASENAME}.png
NEWH=`echo "1200*${H}/${W}" | bc -lq`
${INKSCAPE} ${1} --export-area-drawing --export-area-snap --export-width=1200 --export-height=${NEWH} --export-png=${DIRNAME}/${BASENAME}.png
# ${INKSCAPE} ${1} --export-area-drawing --export-area-snap --export-png=${DIRNAME}/${BASENAME}.png
# fi
else

0 comments on commit 2ea437a

Please sign in to comment.