From 7f3e7ece42fc81b7b6be6cb276ab29947c684f29 Mon Sep 17 00:00:00 2001 From: Marcel Waldvogel Date: Thu, 12 Apr 2018 08:52:21 +0200 Subject: [PATCH 1/5] Introduce binary prefixes for clarification --- book-2nd/principles/reliability.rst | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/book-2nd/principles/reliability.rst b/book-2nd/principles/reliability.rst index 6c9e73e..cd0a213 100644 --- a/book-2nd/principles/reliability.rst +++ b/book-2nd/principles/reliability.rst @@ -38,16 +38,19 @@ information over a physical link. We are only interested in techniques that allo .. note:: Bit rate - In computer networks, the bit rate of the physical layer is always expressed in bits per second. One Mbps is one million bits per second and one Gbps is one billion bits per second. This is in contrast with memory specifications that are usually expressed in bytes (8 bits), KiloBytes ( 1024 bytes) or MegaBytes (1048576 bytes). Thus transferring one MByte through a 1 Mbps link lasts 8.39 seconds. - - ======== =============== - Bit rate Bits per second - ======== =============== - 1 Kbps :math:`10^3` - 1 Mbps :math:`10^6` - 1 Gbps :math:`10^9` - 1 Tbps :math:`10^{12}` - ======== =============== + In computer networks, the bit rate of the physical layer is always expressed in bits per second. One Mbps is one million bits per second and one Gbps is one billion bits per second. When describing file or memory size, early computer scientists found it more convenient to express the information in bytes (8 bits), kilobytes (1024 bytes), megabytes (1048576 bytes) and so on. This led to confusion. For example, transferring one Mbyte through a 1Mbps link lasts 8.39 seconds. For a terabyte, the difference between these `binary` and the `normal`, decimal bases is already about 10%. Confusion can be avoided when using the so-called `binary prefixes `_, naming 1024 bytes a `kibibyte` (kiB), 1048576 bytes a `mebibyte` (MiB), and so on. + + + ======== =============== =========== =============== + Decimal prefixes Binary prefixes + ------------------------------- --------------------------------- + Bit rate Bits per second Memory size Number of bytes + ======== =============== =========== =============== + 1 kbps :math:`10^3` 1 kiB :math:`1024^1=1,024` + 1 Mbps :math:`10^6` 1 MiB :math:`1024^2=1,048,576` + 1 Gbps :math:`10^9` 1 GiB :math:`1024^3=1,073,741,824` + 1 Tbps :math:`10^{12}` 1 TiB :math:`1024^4=1,099,511,627,776` + ======== =============== =========== =============== From 2c7aff1cec1c2b647bc80a739603a89a4fbad7ef Mon Sep 17 00:00:00 2001 From: Marcel Waldvogel Date: Thu, 12 Apr 2018 21:13:02 +0200 Subject: [PATCH 2/5] Fix LaTeX --- book-2nd/exercises/links.rst | 2 +- book-2nd/links.rst | 2 +- book-2nd/protocols/http.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/book-2nd/exercises/links.rst b/book-2nd/exercises/links.rst index 5ae1176..a55401a 100644 --- a/book-2nd/exercises/links.rst +++ b/book-2nd/exercises/links.rst @@ -253,6 +253,6 @@ .. _troff: http://en.wikipedia.org/wiki/Troff -.. _Latex: http://en.wikipedia.org/wiki/Latex +.. _LaTeX: http://en.wikipedia.org/wiki/LaTeX .. _netem: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem diff --git a/book-2nd/links.rst b/book-2nd/links.rst index 5ae1176..a55401a 100644 --- a/book-2nd/links.rst +++ b/book-2nd/links.rst @@ -253,6 +253,6 @@ .. _troff: http://en.wikipedia.org/wiki/Troff -.. _Latex: http://en.wikipedia.org/wiki/Latex +.. _LaTeX: http://en.wikipedia.org/wiki/LaTeX .. _netem: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem diff --git a/book-2nd/protocols/http.rst b/book-2nd/protocols/http.rst index 2e0e462..3857ce9 100644 --- a/book-2nd/protocols/http.rst +++ b/book-2nd/protocols/http.rst @@ -74,7 +74,7 @@ The first URI corresponds to a document named `rfc3986.html` that is stored on t The second component of the `word wide web` is the HyperText Markup Language (HTML). HTML defines the format of the documents that are exchanged on the `web`. The `first version of HTML `_ was derived from the Standard Generalized Markup Language (SGML) that was standardised in 1986 by :term:`ISO`. SGML_ was designed to allow large project documents in industries such as government, law or aerospace to be shared efficiently in a machine-readable manner. These industries require documents to remain readable and editable for tens of years and insisted on a standardised format supported by multiple vendors. Today, SGML_ is no longer widely used beyond specific applications, but its descendants including :term:`HTML` and :term:`XML` are now widespread. -A markup language is a structured way of adding annotations about the formatting of the document within the document itself. Example markup languages include troff_, which is used to write the Unix man pages or Latex_. HTML uses markers to annotate text and a document is composed of `HTML elements`. Each element is usually composed of three items: a start tag that potentially includes some specific attributes, some text (often including other elements), and an end tag. A HTML tag is a keyword enclosed in angle brackets. The generic form of a HTML element is :: +A markup language is a structured way of adding annotations about the formatting of the document within the document itself. Example markup languages include troff_, which is used to write the Unix man pages or LaTeX_. HTML uses markers to annotate text and a document is composed of `HTML elements`. Each element is usually composed of three items: a start tag that potentially includes some specific attributes, some text (often including other elements), and an end tag. A HTML tag is a keyword enclosed in angle brackets. The generic form of a HTML element is :: Some text to be displayed From 78befd82505ce65a92e33d5528d8eca30fd0332a Mon Sep 17 00:00:00 2001 From: Marcel Waldvogel Date: Fri, 13 Apr 2018 11:05:49 +0200 Subject: [PATCH 3/5] Manual link changes --- book-2nd/bibliography.rst | 16 ++++++++-------- book-2nd/exercises/ex-transport.rst | 2 +- book-2nd/exercises/links.rst | 2 +- book-2nd/links.rst | 2 +- book-2nd/principles/security.rst | 1 + book-2nd/principles/sharing.rst | 2 +- book-2nd/protocols/bgp.rst | 4 ++-- book-2nd/protocols/ipv6.rst | 3 +-- book-2nd/protocols/rpc.rst | 2 +- book-2nd/protocols/tcp.rst | 2 +- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/book-2nd/bibliography.rst b/book-2nd/bibliography.rst index 69cb5a8..4774c1c 100644 --- a/book-2nd/bibliography.rst +++ b/book-2nd/bibliography.rst @@ -8,11 +8,11 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [IEEE802.11] LAN/MAN Standards Committee of the IEEE Computer Society. `IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 11 : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications `_. IEEE, 1999. .. [IEEE802.1d] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks Media Access Control (MAC) Bridges `_ , IEEE Std 802.1DTM-2004, 2004, -.. [IEEE802.1q] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks— Virtual Bridged Local Area Networks `_, 2005, +.. [IEEE802.1q] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks— Virtual Bridged Local Area Networks `_, 2014, .. [IEEE802.2] IEEE 802.2-1998 (ISO/IEC 8802-2:1998), IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 2: Logical Link Control. Available from http://standards.ieee.org/getieee802/802.2.html .. [IEEE802.3] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 3 : Carrier Sense multiple access with collision detection (CSMA/CD) access method and physical layer specification. IEEE, 2000. Available from http://standards.ieee.org/getieee802/802.3.html .. [IEEE802.5] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 5: Token Ring Access Method and Physical Layer Specification. IEEE, 1998. available from http://standards.ieee.org/getieee802 -.. [IEEE802] IEEE, Std 802-2001 : IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture, Available from http://standards.ieee.org/getieee802/download/802-2001.pdf +.. [IEEE802] IEEE, Std 802-2014 : IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture, Available from http://standards.ieee.org/getieee802/download/802-2001.pdf .. [ACO+2006] Augustin, B., Cuvellier, X., Orgogozo, B., Viger, F., Friedman, T., Latapy, M., Magnien, C., Teixeira, R., `Avoiding traceroute anomalies with Paris traceroute `_, Internet Measurement Conference, October 2006, See also http://www.paris-traceroute.net/ .. [AS2004] Androutsellis-Theotokis, S. and Spinellis, D.. 2004. `A survey of peer-to-peer content distribution technologies `_. ACM Comput. Surv. 36, 4 (December 2004), 335-371. .. [ATLAS2009] Labovitz, C., Iekel-Johnson, S., McPherson, D., Oberheide, J. and Jahanian, F., `Internet inter-domain traffic `_. In Proceedings of the ACM SIGCOMM 2010 conference on SIGCOMM (SIGCOMM '10). ACM, New York, NY, USA, 75-86. @@ -24,11 +24,9 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [BF1995] Bonomi, F. and Fendick, K.W., `The rate-based flow control framework for the available bit rate ATM service `_, IEEE Network, Mar/Apr 1995, Volume: 9, Issue: 2, pages : 25-39 .. [BG1992] Bertsekas, D., Gallager, G., `Data networks `_, second edition, Prentice Hall, 1992 .. [BMO2006] Bhatia, M., Manral, V., Ohara, Y., `IS-IS and OSPF Difference Discussions `_, work in progress, Internet draft, Jan. 2006 -.. [BMvB2009] Bagnulo, M., Matthews, P., van Beijnum, I., `NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers `_, Internet draft, work in progress, October 2009, .. [BNT1997] Beech, W., Nielsen, D., Taylor, J., `AX.25 Link Access Protocol for Amateur Packet Radio `_, version 2.2, Revision: July 1998 .. [BOP1994] Brakmo, L. S., O'Malley, S. W., and Peterson, L. L., `TCP Vegas: new techniques for congestion detection and avoidance `_. In Proceedings of the Conference on Communications Architectures, Protocols and Applications (London, United Kingdom, August 31 - September 02, 1994). SIGCOMM '94. ACM, New York, NY, 24-35. .. [Benvenuti2005] Benvenuti, C., `Understanding Linux Network Internals `_, O'Reilly Media, 2005 -.. [BH2013] Bormann, C., Hoffman, P., `Concise Binary Object Representation (CBOR) `_, Internet draft, draft-bormann-cbor-09, work in progress, 2013 .. [BS2005] D. Barrett, R. Silverman, R. Byrnes, `SSH: The Secure Shell (The Definitive Guide) `_, O'Reilly 2005 (2nd edition). .. [Bush1945] Bush, V. `As we may think `_ The Atlantic Monthly 176 (July 1945), pp. 101–108 .. [Bush1993] Bush, R., `FidoNet: technology, tools, and history `_. Commun. ACM 36, 8 (Aug. 1993), 31-35. @@ -39,7 +37,7 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [CD2008] Calvert, K., Donahoo, M., `TCP/IP Sockets in Java : Practical Guide for Programmers `_, Morgan Kaufman, 2008 .. [CJ1989] Chiu, D., Jain, R., `Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks `_, Computer Networks and ISDN Systems Vol 17, pp 1-14, 1989 .. [CK74] Cerf, V., Kahn, R., `A Protocol for Packet Network Intercommunication `_, IEEE Transactions on Communications, May 1974 -.. [CNPI09] Gont, F., `Security Assessment of the Transmission Control Protocol (TCP) `_,Security Assessment of the Transmission Control Protocol (TCP), Internet draft, work in progress, Jan. 2011 +.. [CNPI09] Gont, F., `Security Assessment of the Transmission Control Protocol (TCP) `_,Security Assessment of the Transmission Control Protocol (TCP), Internet draft, work in progress, Mar. 2012 .. [COZ2008] Chi, Y., Oliveira, R., Zhang, L., `Cyclops: The Internet AS-level Observatory `_, ACM SIGCOMM Computer Communication Review (CCR), October 2008 .. [CSP2009] Carr, B., Sury, O., Palet Martinez, J., Davidson, A., Evans, R., Yilmaz, F., Wijte, Y., `IPv6 Address Allocation and Assignment Policy `_, RIPE document ripe-481, September 2009 .. [CT1980] Crane, R., Taft, E., `Practical considerations in Ethernet local network design `_, Proc. of the 13th Hawaii International Conference on Systems Sciences, Honolulu, January, 1980, pp. 166--174 @@ -92,7 +90,7 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [ISO10589] ISO, `Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473) `_ , 2002 .. [Jacobson1988] Jacobson, V., `Congestion avoidance and control `_. In Symposium Proceedings on Communications Architectures and Protocols (Stanford, California, United States, August 16 - 18, 1988). V. Cerf, Ed. SIGCOMM '88. ACM, New York, NY, 314-329. .. [Jain1990] Jain, R., `Congestion control in computer networks : Issues and trends `_, IEEE Network Magazine, May 1990, pp. 24-30 -.. [JLT2013] Jesup, R., Loreto, S., Tuexen, M., `RTCWeb Data Channels `_, Internet draft, draft-ietf-rtcweb-data-channel, work in progress, 2013 +.. [JLT2013] Jesup, R., Loreto, S., Tuexen, M., `RTCWeb Data Channels `_, Internet draft, draft-ietf-rtcweb-data-channel, work in progress, 2015 .. [JSBM2002] Jung, J., Sit, E., Balakrishnan, H., and Morris, R. 2002. `DNS performance and the effectiveness of caching `_. IEEE/ACM Trans. Netw. 10, 5 (Oct. 2002), 589-603. .. [JSON-RPC2] JSON-RPC Working group, `JSON-RPC 2.0 Specification `_, available on http://www.jsonrpc.org, 2010 .. [Kerrisk2010] Kerrisk, M., `The Linux Programming Interface `_, No Starch Press, 2010 @@ -299,8 +297,12 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [RFC6077] Papadimitriou, D. and Welzl, M. and Scharf, M. and Briscoe, B., `Open Research Issues in Internet Congestion Control`, :rfc:`6077`, February 2011 .. [RFC6068] Duerst, M., Masinter, L. and Zawinski, J., `The 'mailto' URI Scheme` , :rfc:`6068`, October 2010 .. [RFC6144] Baker, F. and Li, X. and Bao, X. and Yin, K., `Framework for IPv4/IPv6 Translation`, :rfc:`6144`, April 2011 +.. [RFC6146] Bagnulo, M., Matthews, P., van Beijnum, I., `NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers`, :rfc:`6146`, Apr. 2011. .. [RFC6265] Barth, A., `HTTP State Management Mechanism`, :rfc:`6265`, April 2011 +.. [RFC6296] Waserman, M., Baker, F., `IPv6-to-IPv6 Network Prefix Translation`, :rfc:`6296`, June 2011. .. [RFC6274] Gont, F., `Security Assessment of the Internet Protocol Version 4`, :rfc:`6274`, July 2011 +.. [RFC7049] Bormann, C., Hoffman, P., `Concise Binary Object Representation (CBOR)`, :rfc:`7049`, Oct. 2013. +.. [RFC8305] Schinazi, D., Pauly, T., `Happy Eyeballs Version 2: Better Connectivity Using Concurrency`, :rfc:`8305`, Dec. 2017. .. [RG2010] Rhodes, B. and Goerzen, J., `Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python `_, Second Edition, Academic Press, 2004 .. [Ristic2015] Ristic, I., `Bulletproof SSL and TLS: Understanding and Deploying SSL/TLS and PKI to Secure Web Servers and Applications `_, Feisty Duck, 2015 .. [RJ1995] Ramakrishnan, K. K. and Jain, R., `A binary feedback scheme for congestion avoidance in computer networks with a connectionless network layer `_. SIGCOMM Comput. Commun. Rev. 25, 1 (Jan. 1995), 138-156. @@ -340,14 +342,12 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [VPD2004] Vasseur, J., Pickavet, M., and Demeester, P., `Network Recovery: Protection and Restoration of Optical, SONET-SDH, IP, and MPLS `_. Morgan Kaufmann Publishers Inc., 2004 .. [Varghese2005] Varghese, G., `Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices `_, Morgan Kaufmann, 2005 .. [Vyncke2007] Vyncke, E., Paggen, C., `LAN Switch Security: What Hackers Know About Your Switches `_, Cisco Press, 2007 -.. [WB2008] Waserman, M., Baker, F., `IPv6-to-IPv6 Network Address Translation (NAT66)`, Internet draft, November 2008, http://tools.ietf.org/html/draft-mrw-behave-nat66-02 .. [WMH2008] Wilson, P., Michaelson, G., Huston, G., `Redesignation of 240/4 from "Future Use" to "Private Use"`, Internet draft, September 2008, work in progress, http://tools.ietf.org/html/draft-wilson-class-e-02 .. [WMS2004] White, R., Mc Pherson, D., Srihari, S., `Practical BGP `_, Addison-Wesley, 2004 .. [Watson1981] Watson, R., `Timer-Based Mechanisms in Reliable Transport Protocol Connection Management `_. Computer Networks 5: 47-56 (1981) .. [WF2003] Wessels, D., Fomenkov, M., `Wow, That's a lot of packets `_, Passive and Active Network Measurement Workshop (PAM), Apr 2003 .. [Williams1993] Williams, R. `A painless guide to CRC error detection algorithms`, August 1993, unpublished manuscript, http://www.ross.net/crc/download/crc_v3.txt .. [Winston2003] Winston, G., `NetBIOS Specification `_, 2003 -.. [WY2011] Wing, D. and Yourtchenko, A., `Happy Eyeballs: Success with Dual-Stack Hosts`, Internet draft, work in progress, July 2011, http://tools.ietf.org/html/draft-ietf-v6ops-happy-eyeballs-03 .. [X200] ITU-T, recommendation X.200, `Open Systems Interconnection - Model and Notation `_, 1994 .. [X224] ITU-T, recommendation X.224, `Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service `_, 1995 .. [XNS] Xerox, `Xerox Network Systems Architecture `_, XNSG058504, 1985 diff --git a/book-2nd/exercises/ex-transport.rst b/book-2nd/exercises/ex-transport.rst index 303c7f1..c7693b0 100644 --- a/book-2nd/exercises/ex-transport.rst +++ b/book-2nd/exercises/ex-transport.rst @@ -185,7 +185,7 @@ In the example above, ``socket.getaddrinfo`` returns two tuples. The first one c ``socket.getaddrinfo`` can be used to build a simple client that queries the DNS and contact the server by using either IPv4 or IPv6 depending on the addresses returned by the ``socket.getaddrinfo`` method. The client below iterates over the list of addresses returned by the DNS and sends its request to the first destination address for which it can create a ``socket``. Other strategies are of course possible. For example, a host running in an IPv6 network might prefer to always use IPv6 when IPv6 is available [#fipv6pref]_. -.. Another example is the happy eyeballs approach which is being discussed within the IETF_ [WY2011]_. For example, [WY2011]_ mentions that some web browsers try to use the first address returned by ``socket.getaddrinfo``. If there is no answer within some small delay (e.g. 300 milliseconds), the second address is tried. +.. Another example is the happy eyeballs approach which is proposed by the IETF_ [RFC8305]_. For example, [WY2011]_ mentions that some web browsers try to use the first address returned by ``socket.getaddrinfo``. If there is no answer within some small delay (e.g. 300 milliseconds), the second address is tried. .. literalinclude:: python/simpleclientname.py :language: python diff --git a/book-2nd/exercises/links.rst b/book-2nd/exercises/links.rst index a55401a..e5740a2 100644 --- a/book-2nd/exercises/links.rst +++ b/book-2nd/exercises/links.rst @@ -193,7 +193,7 @@ .. _Raj Jain: http://www.cse.wustl.edu/~jain/ -.. _Dah Ming Chiu: http://home.ie.cuhk.edu.hk/~dmchiu/ +.. _Dah Ming Chiu: http://personal.ie.cuhk.edu.hk/~dmchiu/ .. _SRI: http://www.sri.com diff --git a/book-2nd/links.rst b/book-2nd/links.rst index a55401a..e5740a2 100644 --- a/book-2nd/links.rst +++ b/book-2nd/links.rst @@ -193,7 +193,7 @@ .. _Raj Jain: http://www.cse.wustl.edu/~jain/ -.. _Dah Ming Chiu: http://home.ie.cuhk.edu.hk/~dmchiu/ +.. _Dah Ming Chiu: http://personal.ie.cuhk.edu.hk/~dmchiu/ .. _SRI: http://www.sri.com diff --git a/book-2nd/principles/security.rst b/book-2nd/principles/security.rst index 1646e03..17478b0 100644 --- a/book-2nd/principles/security.rst +++ b/book-2nd/principles/security.rst @@ -233,6 +233,7 @@ Gbps of traffic are frequent on the Internet. In 2015, `github.com `_ suffered from a distributed DoS that reached a top bandwidth of 400 Gbps according to some `reports `_. +Since then, `DDoS attacks have risen to over 1 Tbps `_. .. index:: reflection attack, amplification diff --git a/book-2nd/principles/sharing.rst b/book-2nd/principles/sharing.rst index 9ffe3b7..cb3081e 100644 --- a/book-2nd/principles/sharing.rst +++ b/book-2nd/principles/sharing.rst @@ -1023,7 +1023,7 @@ When the connection starts, its congestion window is set to one segment. Segment .. [#fcredit] In this section, we focus on congestion control mechanisms that regulate the transmission rate of the hosts. Other types of mechanisms have been proposed in the literature. For example, `credit-based` flow-control has been proposed to avoid congestion in ATM networks [KR1995]_. With a credit-based mechanism, hosts can only send packets once they have received credits from the routers and the credits depend on the occupancy of the router's buffers. -.. [#fflowslink] For example, the measurements performed in the Sprint network in 2004 reported more than 10k active TCP connections on a link, see https://research.sprintlabs.com/packstat/packetoverview.php. More recent information about backbone links may be obtained from caida_ 's realtime measurements, see e.g. http://www.caida.org/data/realtime/passive/ +.. [#fflowslink] For example, the measurements performed in the Sprint network in 2004 reported more than 10k active TCP connections on a link (no longer available online). More recent information about backbone links may be obtained from caida_ 's realtime measurements, see e.g. http://www.caida.org/data/realtime/passive/ .. include:: /links.rst diff --git a/book-2nd/protocols/bgp.rst b/book-2nd/protocols/bgp.rst index 638a7e7..df7b8fe 100644 --- a/book-2nd/protocols/bgp.rst +++ b/book-2nd/protocols/bgp.rst @@ -20,7 +20,7 @@ Each domain contains a set of routers. From a routing point of view, these domai Transit and stub domains -The stub domains can be further classified by considering whether they mainly send or receive packets. An `access-rich` stub domain is a domain that contains hosts that mainly receive packets. Typical examples include small ADSL- or cable modem-based Internet Service Providers or enterprise networks. On the other hand, a `content-rich` stub domain is a domain that mainly produces packets. Examples of `content-rich` stub domains include google_, yahoo_, microsoft_, facebook_ or content distribution networks such as akamai_ or limelight_ For the last few years, we have seen a rapid growth of these `content-rich` stub domains. Recent measurements [ATLAS2009]_ indicate that a growing fraction of all the packets exchanged on the Internet are produced in the data centers managed by these content providers. +The stub domains can be further classified by considering whether they mainly send or receive packets. An `access-rich` stub domain is a domain that contains hosts that mainly receive packets. Typical examples include small ADSL- or cable modem-based Internet Service Providers or enterprise networks. On the other hand, a `content-rich` stub domain is a domain that mainly produces packets. Examples of `content-rich` stub domains include google_, yahoo_, microsoft_, facebook_ or content distribution networks such as akamai_ or limelight_. For the last few years, we have seen a rapid growth of these `content-rich` stub domains. Recent measurements [ATLAS2009]_ indicate that a growing fraction of all the packets exchanged on the Internet are produced in the data centers managed by these content providers. Domains need to be interconnected to allow a host inside a domain to exchange IP packets with hosts located in other domains. From a physical perspective, domains can be interconnected in two different ways. The first solution is to directly connect a router belonging to the first domain with a router inside the second domain. Such links between domains are called private interdomain links or `private peering links`. In practice, for redundancy or performance reasons, distinct physical links are usually established between different routers in the two domains that are interconnected. @@ -439,7 +439,7 @@ Based on these studies and [ATLAS2009]_, the AS-level Internet topology can be s The domains on the Internet can be divided in about four categories according to their role and their position in the AS-level topology. - - the core of the Internet is composed of a dozen-twenty `Tier-1` ISPs. A `Tier-1` is a domain that has no `provider`. Such an ISP has `shared-cost` peering relationships with all other `Tier-1` ISPs and `provider->customer` relationships with smaller ISPs. Examples of `Tier-1` ISPs include sprint_, level3_ or opentransit_ + - the core of the Internet is composed of a dozen-twenty `Tier-1 `_ ISPs. A `Tier-1` is a domain that has no `provider`. Such an ISP has `shared-cost` peering relationships with all other `Tier-1` ISPs and `provider->customer` relationships with smaller ISPs. Examples of `Tier-1` ISPs include sprint_, level3_ or opentransit_ - the `Tier-2` ISPs are national or continental ISPs that are customers of `Tier-1` ISPs. These `Tier-2` ISPs have smaller customers and `shared-cost` peering relationships with other `Tier-2` ISPs. Example of `Tier-2` ISPs include France Telecom, Belgacom, British Telecom, ... - the `Tier-3` networks are either stub domains such as enterprise or campus networks networks and smaller ISPs. They are customers of Tier-1 and Tier-2 ISPs and have sometimes `shared-cost` peering relationships - the large content providers that are managing large datacenters. These content providers are producing a growing fraction of the packets exchanged on the global Internet [ATLAS2009]_. Some of these content providers are customers of Tier-1 or Tier-2 ISPs, but they often try to establish `shared-cost` peering relationships, e.g. at IXPs, with many Tier-1 and Tier-2 ISPs. diff --git a/book-2nd/protocols/ipv6.rst b/book-2nd/protocols/ipv6.rst index 408ed93..5ffe8ca 100644 --- a/book-2nd/protocols/ipv6.rst +++ b/book-2nd/protocols/ipv6.rst @@ -590,8 +590,7 @@ Another very useful debugging tool is :manpage:`traceroute6(8)`. The traceroute .. [#fianaprotocol] The IANA_ maintains the list of all allocated Next Header types at http://www.iana.org/assignments/protocol-numbers/ -.. [#falert] For a discussion of the issues with the router alert IP option, see http://tools.ietf.org/html/draft-rahman-rtg-router-alert-dangerous-00 or - http://tools.ietf.org/html/draft-rahman-rtg-router-alert-considerations-03 +.. [#falert] For a discussion of the issues with the router alert IP option, see :rfc:`6398` .. [#fprivacy] Using a datalink layer address to derive a 64 bits identifier for each host raises privacy concerns as the host will always use the same identifier. Attackers could use this to track hosts on the Internet. An extension to the Stateless Address Configuration mechanism that does not raise privacy concerns is defined in :rfc:`4941`. These privacy extensions allow a host to generate its 64 bits identifier randomly every time it attaches to a subnet. It then becomes impossible for an attacker to use the 64-bits identifier to track a host. diff --git a/book-2nd/protocols/rpc.rst b/book-2nd/protocols/rpc.rst index bab8a4f..aabd8f1 100644 --- a/book-2nd/protocols/rpc.rst +++ b/book-2nd/protocols/rpc.rst @@ -84,7 +84,7 @@ This object has one field named `Image`. It has five attributes. The first one, "Primes" : [ 2, 3, 5, 7 ] } -Compared with XDR, the main advantage of JSON is that the transfer syntax is easily readable by a human. However, this comes at the expense of a less compact encoding. Some data encoded in JSON will usually take more space than when it is encoded with XDR. More compact encoding schemes have been defined, see e.g. [BH2013]_ and the references therein. +Compared with XDR, the main advantage of JSON is that the transfer syntax is easily readable by a human. However, this comes at the expense of a less compact encoding. Some data encoded in JSON will usually take more space than when it is encoded with XDR. More compact encoding schemes have been defined, see e.g. [RFC7049]_ and the references therein. Reaching the callee diff --git a/book-2nd/protocols/tcp.rst b/book-2nd/protocols/tcp.rst index bcc013f..8cbfd68 100644 --- a/book-2nd/protocols/tcp.rst +++ b/book-2nd/protocols/tcp.rst @@ -536,7 +536,7 @@ The `TIME\_WAIT` state is different from the other states of the TCP FSM. A TCP .. [#ftcpspecs] A detailed presentation of all standardisation documents concerning TCP may be found in :rfc:`4614` -.. [#ftcpusage] Several researchers have analysed the utilisation of TCP and UDP in the global Internet. Most of these studies have been performed by collecting all the packets transmitted over a given link during a period of a few hours or days and then analysing their headers to infer the transport protocol used, the type of application, ... Recent studies include http://www.caida.org/research/traffic-analysis/tcpudpratio/, https://research.sprintlabs.com/packstat/packetoverview.php or http://www.nanog.org/meetings/nanog43/presentations/Labovitz_internetstats_N43.pdf +.. [#ftcpusage] Several researchers have analysed the utilisation of TCP and UDP in the global Internet. Most of these studies have been performed by collecting all the packets transmitted over a given link during a period of a few hours or days and then analysing their headers to infer the transport protocol used, the type of application, ... Recent studies include http://www.caida.org/research/traffic-analysis/tcpudpratio/ or http://www.nanog.org/meetings/nanog43/presentations/Labovitz_internetstats_N43.pdf .. [#ftcpclock] This 32 bits counter was specified in :rfc:`793`. A 32 bits counter that is incremented every 4 microseconds wraps in about 4.5 hours. This period is much larger than the Maximum Segment Lifetime that is fixed at 2 minutes in the Internet (:rfc:`791`, :rfc:`1122`). From a3ab2870558fbaf041edb8259523059a08497b9f Mon Sep 17 00:00:00 2001 From: Marcel Waldvogel Date: Fri, 13 Apr 2018 11:28:38 +0200 Subject: [PATCH 4/5] (Semi-)automated link updates --- book-2nd/README.rst | 2 +- book-2nd/bibliography.rst | 300 +++++++++++------------ book-2nd/exercises/ex-transport.rst | 16 +- book-2nd/exercises/index.rst | 4 +- book-2nd/exercises/links.rst | 208 ++++++++-------- book-2nd/exercises/netkit-app.rst | 4 +- book-2nd/exercises/netkit-congestion.rst | 2 +- book-2nd/exercises/netkit-ipv6-rtg.rst | 2 +- book-2nd/exercises/netkit-ipv6.rst | 2 +- book-2nd/exercises/netkit-tcp.rst | 4 +- book-2nd/exercises/reliable.rst | 10 +- book-2nd/glossary.rst | 24 +- book-2nd/index.rst | 4 +- book-2nd/links.rst | 208 ++++++++-------- book-2nd/preface.rst | 10 +- book-2nd/principles/naming.rst | 8 +- book-2nd/principles/reliability.rst | 12 +- book-2nd/principles/security.rst | 4 +- book-2nd/principles/sharing.rst | 8 +- book-2nd/principles/transport.rst | 2 +- book-2nd/protocols/bgp.rst | 4 +- book-2nd/protocols/dns.rst | 2 +- book-2nd/protocols/dnssec.rst | 2 +- book-2nd/protocols/email.rst | 16 +- book-2nd/protocols/ethernet.rst | 8 +- book-2nd/protocols/http.rst | 26 +- book-2nd/protocols/ipv6.rst | 6 +- book-2nd/protocols/ppp.rst | 4 +- book-2nd/protocols/sctp.rst | 2 +- book-2nd/protocols/ssh.rst | 4 +- book-2nd/protocols/tcp.rst | 10 +- book-2nd/protocols/tls.rst | 2 +- book-2nd/protocols/udp.rst | 4 +- book-2nd/protocols/wifi.rst | 4 +- 34 files changed, 464 insertions(+), 464 deletions(-) diff --git a/book-2nd/README.rst b/book-2nd/README.rst index d157c4f..25f39a1 100644 --- a/book-2nd/README.rst +++ b/book-2nd/README.rst @@ -6,7 +6,7 @@ This is the current draft for the second edition of the Computer Networking : Pr (c) Olivier Bonaventure, Universite catholique de Louvain, Belgium - http://perso.uclouvain.be/olivier.bonaventure + https://perso.uclouvain.be/olivier.bonaventure All the files in this subversion repository are licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. diff --git a/book-2nd/bibliography.rst b/book-2nd/bibliography.rst index 4774c1c..6ea67cf 100644 --- a/book-2nd/bibliography.rst +++ b/book-2nd/bibliography.rst @@ -6,142 +6,142 @@ Bibliography Whenever possible, the bibliography includes stable hypertext links to the references cited. -.. [IEEE802.11] LAN/MAN Standards Committee of the IEEE Computer Society. `IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 11 : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications `_. IEEE, 1999. -.. [IEEE802.1d] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks Media Access Control (MAC) Bridges `_ , IEEE Std 802.1DTM-2004, 2004, -.. [IEEE802.1q] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks— Virtual Bridged Local Area Networks `_, 2014, -.. [IEEE802.2] IEEE 802.2-1998 (ISO/IEC 8802-2:1998), IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 2: Logical Link Control. Available from http://standards.ieee.org/getieee802/802.2.html -.. [IEEE802.3] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 3 : Carrier Sense multiple access with collision detection (CSMA/CD) access method and physical layer specification. IEEE, 2000. Available from http://standards.ieee.org/getieee802/802.3.html -.. [IEEE802.5] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 5: Token Ring Access Method and Physical Layer Specification. IEEE, 1998. available from http://standards.ieee.org/getieee802 -.. [IEEE802] IEEE, Std 802-2014 : IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture, Available from http://standards.ieee.org/getieee802/download/802-2001.pdf -.. [ACO+2006] Augustin, B., Cuvellier, X., Orgogozo, B., Viger, F., Friedman, T., Latapy, M., Magnien, C., Teixeira, R., `Avoiding traceroute anomalies with Paris traceroute `_, Internet Measurement Conference, October 2006, See also http://www.paris-traceroute.net/ -.. [AS2004] Androutsellis-Theotokis, S. and Spinellis, D.. 2004. `A survey of peer-to-peer content distribution technologies `_. ACM Comput. Surv. 36, 4 (December 2004), 335-371. -.. [ATLAS2009] Labovitz, C., Iekel-Johnson, S., McPherson, D., Oberheide, J. and Jahanian, F., `Internet inter-domain traffic `_. In Proceedings of the ACM SIGCOMM 2010 conference on SIGCOMM (SIGCOMM '10). ACM, New York, NY, USA, 75-86. -.. [AW05] Arlitt, M. and Williamson, C. 2005. `An analysis of TCP reset behaviour on the internet `_. SIGCOMM Comput. Commun. Rev. 35, 1 (Jan. 2005), 37-44. -.. [Abramson1970] Abramson, N., `THE ALOHA SYSTEM: another alternative for computer communications `_. In Proceedings of the November 17-19, 1970, Fall Joint Computer Conference (Houston, Texas, November 17 - 19, 1970). AFIPS '70 (Fall). ACM, New York, NY, 281-285. -.. [B1989] Berners-Lee, T., `Information Management: A Proposal `_, March 1989 -.. [Baran] Baran, P., `On distributed communications series`, http://www.rand.org/about/history/baran.list.html, +.. [IEEE802.11] LAN/MAN Standards Committee of the IEEE Computer Society. `IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 11 : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications `_. IEEE, 1999. +.. [IEEE802.1d] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks Media Access Control (MAC) Bridges `_ , IEEE Std 802.1DTM-2004, 2004, +.. [IEEE802.1q] LAN/MAN Standards Committee of the IEEE Computer Society, `IEEE Standard for Local and metropolitan area networks— Virtual Bridged Local Area Networks `_, 2014, +.. [IEEE802.2] IEEE 802.2-1998 (ISO/IEC 8802-2:1998), IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 2: Logical Link Control. Available from https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=68 +.. [IEEE802.3] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information Technology - Telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements - Part 3 : Carrier Sense multiple access with collision detection (CSMA/CD) access method and physical layer specification. IEEE, 2000. Available from https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=68 +.. [IEEE802.5] LAN/MAN Standards Committee of the IEEE Computer Society. IEEE Standard for Information technology--Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements--Part 5: Token Ring Access Method and Physical Layer Specification. IEEE, 1998. available from https://ieeexplore.ieee.org/browse/standards/get-program/page/ +.. [IEEE802] IEEE, Std 802-2014 : IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture, Available from https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6847095 +.. [ACO+2006] Augustin, B., Cuvellier, X., Orgogozo, B., Viger, F., Friedman, T., Latapy, M., Magnien, C., Teixeira, R., `Avoiding traceroute anomalies with Paris traceroute `_, Internet Measurement Conference, October 2006, See also https://paris-traceroute.net/ +.. [AS2004] Androutsellis-Theotokis, S. and Spinellis, D.. 2004. `A survey of peer-to-peer content distribution technologies `_. ACM Comput. Surv. 36, 4 (December 2004), 335-371. +.. [ATLAS2009] Labovitz, C., Iekel-Johnson, S., McPherson, D., Oberheide, J. and Jahanian, F., `Internet inter-domain traffic `_. In Proceedings of the ACM SIGCOMM 2010 conference on SIGCOMM (SIGCOMM '10). ACM, New York, NY, USA, 75-86. +.. [AW05] Arlitt, M. and Williamson, C. 2005. `An analysis of TCP reset behaviour on the internet `_. SIGCOMM Comput. Commun. Rev. 35, 1 (Jan. 2005), 37-44. +.. [Abramson1970] Abramson, N., `THE ALOHA SYSTEM: another alternative for computer communications `_. In Proceedings of the November 17-19, 1970, Fall Joint Computer Conference (Houston, Texas, November 17 - 19, 1970). AFIPS '70 (Fall). ACM, New York, NY, 281-285. +.. [B1989] Berners-Lee, T., `Information Management: A Proposal `_, March 1989 +.. [Baran] Baran, P., `On distributed communications series`, https://www.rand.org/about/history/baran.list.html, .. [BE2007] Biondi, P. and A. Ebalard, `IPv6 Routing Header Security `_, CanSecWest Security Conference 2007, April 2007. -.. [BF1995] Bonomi, F. and Fendick, K.W., `The rate-based flow control framework for the available bit rate ATM service `_, IEEE Network, Mar/Apr 1995, Volume: 9, Issue: 2, pages : 25-39 -.. [BG1992] Bertsekas, D., Gallager, G., `Data networks `_, second edition, Prentice Hall, 1992 -.. [BMO2006] Bhatia, M., Manral, V., Ohara, Y., `IS-IS and OSPF Difference Discussions `_, work in progress, Internet draft, Jan. 2006 +.. [BF1995] Bonomi, F. and Fendick, K.W., `The rate-based flow control framework for the available bit rate ATM service `_, IEEE Network, Mar/Apr 1995, Volume: 9, Issue: 2, pages : 25-39 +.. [BG1992] Bertsekas, D., Gallager, G., `Data networks `_, second edition, Prentice Hall, 1992 +.. [BMO2006] Bhatia, M., Manral, V., Ohara, Y., `IS-IS and OSPF Difference Discussions `_, work in progress, Internet draft, Jan. 2006 .. [BNT1997] Beech, W., Nielsen, D., Taylor, J., `AX.25 Link Access Protocol for Amateur Packet Radio `_, version 2.2, Revision: July 1998 -.. [BOP1994] Brakmo, L. S., O'Malley, S. W., and Peterson, L. L., `TCP Vegas: new techniques for congestion detection and avoidance `_. In Proceedings of the Conference on Communications Architectures, Protocols and Applications (London, United Kingdom, August 31 - September 02, 1994). SIGCOMM '94. ACM, New York, NY, 24-35. -.. [Benvenuti2005] Benvenuti, C., `Understanding Linux Network Internals `_, O'Reilly Media, 2005 +.. [BOP1994] Brakmo, L. S., O'Malley, S. W., and Peterson, L. L., `TCP Vegas: new techniques for congestion detection and avoidance `_. In Proceedings of the Conference on Communications Architectures, Protocols and Applications (London, United Kingdom, August 31 - September 02, 1994). SIGCOMM '94. ACM, New York, NY, 24-35. +.. [Benvenuti2005] Benvenuti, C., `Understanding Linux Network Internals `_, O'Reilly Media, 2005 .. [BS2005] D. Barrett, R. Silverman, R. Byrnes, `SSH: The Secure Shell (The Definitive Guide) `_, O'Reilly 2005 (2nd edition). -.. [Bush1945] Bush, V. `As we may think `_ The Atlantic Monthly 176 (July 1945), pp. 101–108 -.. [Bush1993] Bush, R., `FidoNet: technology, tools, and history `_. Commun. ACM 36, 8 (Aug. 1993), 31-35. -.. [Bux1989] Bux, W., `Token-ring local-area networks and their performance `_, Proceedings of the IEEE, Vol 77, No 2, p. 238-259, Feb. 1989 -.. [BYL2008] Buford, J., Yu, H., Lua, E.K., `P2P Networking and Applications `_, Morgan Kaufmann, 2008 -.. [CB2003] Cheswick, William R., Bellovin, Steven M., Rubin, Aviel D., `Firewalls and internet security - Second edition - Repelling the Wily Hacker `_, Addison-Wesley 2003 -.. [CCB+2013] Cardwell, N., Cheng, Y., Brakmo, L., Mathis, M., Raghavan, B., Dukkipati, N., Chu, H., Terzis, A., and Herbert, T., `packetdrill: scriptable network stack testing, from sockets to packets `_. In Proceedings of the 2013 USENIX conference on Annual Technical Conference (USENIX ATC'13). USENIX Association, Berkeley, CA, USA, 213-218. -.. [CD2008] Calvert, K., Donahoo, M., `TCP/IP Sockets in Java : Practical Guide for Programmers `_, Morgan Kaufman, 2008 -.. [CJ1989] Chiu, D., Jain, R., `Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks `_, Computer Networks and ISDN Systems Vol 17, pp 1-14, 1989 -.. [CK74] Cerf, V., Kahn, R., `A Protocol for Packet Network Intercommunication `_, IEEE Transactions on Communications, May 1974 -.. [CNPI09] Gont, F., `Security Assessment of the Transmission Control Protocol (TCP) `_,Security Assessment of the Transmission Control Protocol (TCP), Internet draft, work in progress, Mar. 2012 -.. [COZ2008] Chi, Y., Oliveira, R., Zhang, L., `Cyclops: The Internet AS-level Observatory `_, ACM SIGCOMM Computer Communication Review (CCR), October 2008 -.. [CSP2009] Carr, B., Sury, O., Palet Martinez, J., Davidson, A., Evans, R., Yilmaz, F., Wijte, Y., `IPv6 Address Allocation and Assignment Policy `_, RIPE document ripe-481, September 2009 +.. [Bush1945] Bush, V. `As we may think `_ The Atlantic Monthly 176 (July 1945), pp. 101–108 +.. [Bush1993] Bush, R., `FidoNet: technology, tools, and history `_. Commun. ACM 36, 8 (Aug. 1993), 31-35. +.. [Bux1989] Bux, W., `Token-ring local-area networks and their performance `_, Proceedings of the IEEE, Vol 77, No 2, p. 238-259, Feb. 1989 +.. [BYL2008] Buford, J., Yu, H., Lua, E.K., `P2P Networking and Applications `_, Morgan Kaufmann, 2008 +.. [CB2003] Cheswick, William R., Bellovin, Steven M., Rubin, Aviel D., `Firewalls and internet security - Second edition - Repelling the Wily Hacker `_, Addison-Wesley 2003 +.. [CCB+2013] Cardwell, N., Cheng, Y., Brakmo, L., Mathis, M., Raghavan, B., Dukkipati, N., Chu, H., Terzis, A., and Herbert, T., `packetdrill: scriptable network stack testing, from sockets to packets `_. In Proceedings of the 2013 USENIX conference on Annual Technical Conference (USENIX ATC'13). USENIX Association, Berkeley, CA, USA, 213-218. +.. [CD2008] Calvert, K., Donahoo, M., `TCP/IP Sockets in Java : Practical Guide for Programmers `_, Morgan Kaufman, 2008 +.. [CJ1989] Chiu, D., Jain, R., `Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks `_, Computer Networks and ISDN Systems Vol 17, pp 1-14, 1989 +.. [CK74] Cerf, V., Kahn, R., `A Protocol for Packet Network Intercommunication `_, IEEE Transactions on Communications, May 1974 +.. [CNPI09] Gont, F., `Security Assessment of the Transmission Control Protocol (TCP) `_,Security Assessment of the Transmission Control Protocol (TCP), Internet draft, work in progress, Mar. 2012 +.. [COZ2008] Chi, Y., Oliveira, R., Zhang, L., `Cyclops: The Internet AS-level Observatory `_, ACM SIGCOMM Computer Communication Review (CCR), October 2008 +.. [CSP2009] Carr, B., Sury, O., Palet Martinez, J., Davidson, A., Evans, R., Yilmaz, F., Wijte, Y., `IPv6 Address Allocation and Assignment Policy `_, RIPE document ripe-481, September 2009 .. [CT1980] Crane, R., Taft, E., `Practical considerations in Ethernet local network design `_, Proc. of the 13th Hawaii International Conference on Systems Sciences, Honolulu, January, 1980, pp. 166--174 -.. [Cheshire2010] Cheshire, S., `Connect-By-Name for IPv6 `_, presentation at IETF 79th, November 2010 +.. [Cheshire2010] Cheshire, S., `Connect-By-Name for IPv6 `_, presentation at IETF 79th, November 2010 .. [Cheswick1990] Cheswick, B., `An Evening with Berferd In Which a Cracker is Lured, Endured, and Studied `_, Proc. Winter USENIX Conference, 1990, pp. 163-174 -.. [Clark88] Clark D., `The Design Philosophy of the DARPA Internet Protocols `_, Computer Communications Review 18:4, August 1988, pp. 106-114 +.. [Clark88] Clark D., `The Design Philosophy of the DARPA Internet Protocols `_, Computer Communications Review 18:4, August 1988, pp. 106-114 .. [Comer1988] Comer, D., `Internetworking with TCP/IP : principles, protocols & architecture`, Prentice Hall, 1988 .. [Comer1991] Comer D., `Internetworking With TCP/IP : Design Implementation and Internals`, Prentice Hall, 1991 -.. [Cohen1980] Cohen, D., `On Holy Wars and a Plea for Peace`, IEN 137, April 1980, http://www.ietf.org/rfc/ien/ien137.txt -.. [DC2009] Donahoo, M., Calvert, K., `TCP/IP Sockets in C: Practical Guide for Programmers `_ , Morgan Kaufman, 2009 -.. [DH1976] Diffie, W., Hellman, M., `New directions in cryptography`, in Information Theory, IEEE Transactions on , vol.22, no.6, pp.644-654, Nov 1976, http://dx.doi.org/10.1109/TIT.1976.1055638 -.. [DIX] Digital, Intel, Xerox, `The Ethernet: a local area network: data link layer and physical layer specifications `_. SIGCOMM Comput. Commun. Rev. 11, 3 (Jul. 1981), 20-66. -.. [DKF+2007] Dimitropoulos, X., Krioukov, D., Fomenkov, M., Huffaker, B., Hyun, Y., Claffy, K., Riley, G., `AS Relationships: Inference and Validation `_, ACM SIGCOMM Computer Communication Review (CCR), Jan. 2007 -.. [DP1981] Dalal, Y. K. and Printis, R. S., `48-bit absolute internet and Ethernet host numbers `_. In Proceedings of the Seventh Symposium on Data Communications (Mexico City, Mexico, October 27 - 29, 1981). SIGCOMM '81. ACM, New York, NY, 240-245. -.. [DRC+2010] Dukkipati, N., Refice, T., Cheng, Y., Chu, J., Herbert, T., Agarwal, A., Jain, A., Sutin, N., `An Argument for Increasing TCP's Initial Congestion Window `_, ACM SIGCOMM Computer Communications Review, vol. 40 (2010), pp. 27-33 +.. [Cohen1980] Cohen, D., `On Holy Wars and a Plea for Peace`, IEN 137, April 1980, https://www.ietf.org/rfc/ien/ien137.txt +.. [DC2009] Donahoo, M., Calvert, K., `TCP/IP Sockets in C: Practical Guide for Programmers `_ , Morgan Kaufman, 2009 +.. [DH1976] Diffie, W., Hellman, M., `New directions in cryptography`, in Information Theory, IEEE Transactions on , vol.22, no.6, pp.644-654, Nov 1976, https://dx.doi.org/10.1109/TIT.1976.1055638 +.. [DIX] Digital, Intel, Xerox, `The Ethernet: a local area network: data link layer and physical layer specifications `_. SIGCOMM Comput. Commun. Rev. 11, 3 (Jul. 1981), 20-66. +.. [DKF+2007] Dimitropoulos, X., Krioukov, D., Fomenkov, M., Huffaker, B., Hyun, Y., Claffy, K., Riley, G., `AS Relationships: Inference and Validation `_, ACM SIGCOMM Computer Communication Review (CCR), Jan. 2007 +.. [DP1981] Dalal, Y. K. and Printis, R. S., `48-bit absolute internet and Ethernet host numbers `_. In Proceedings of the Seventh Symposium on Data Communications (Mexico City, Mexico, October 27 - 29, 1981). SIGCOMM '81. ACM, New York, NY, 240-245. +.. [DRC+2010] Dukkipati, N., Refice, T., Cheng, Y., Chu, J., Herbert, T., Agarwal, A., Jain, A., Sutin, N., `An Argument for Increasing TCP's Initial Congestion Window `_, ACM SIGCOMM Computer Communications Review, vol. 40 (2010), pp. 27-33 .. [Dubuisson2000] O. Dubuisson, `ASN.1 : Communication between Heterogeneous Systems `, Morgan Kauffman, 2000 -.. [Dunkels2003] Dunkels, A., `Full TCP/IP for 8-Bit Architectures `_. In Proceedings of the first international conference on mobile applications, systems and services (MOBISYS 2003), San Francisco, May 2003. -.. [DR2002] Daemen, J., Rijmen, V., `The Design of Rijndael: AES – The Advanced Encryption Standard `_ Springer, 2002. ISBN 3-540-42580-2. -.. [DT2007] Donnet, B. and Friedman, T., `Internet Topology Discovery: a Survey `_. IEEE Communications Surveys and Tutorials, 9(4):2-15, December 2007 -.. [DYGU2004] Davik, F. Yilmaz, M. Gjessing, S. Uzun, N., `IEEE 802.17 resilient packet ring tutorial `_, IEEE Communications Magazine, Mar 2004, Vol 42, N 3, p. 112-118 -.. [Dijkstra1959] Dijkstra, E., `A Note on Two Problems in Connection with Graphs `_. Numerische Mathematik, 1:269- 271, 1959 +.. [Dunkels2003] Dunkels, A., `Full TCP/IP for 8-Bit Architectures `_. In Proceedings of the first international conference on mobile applications, systems and services (MOBISYS 2003), San Francisco, May 2003. +.. [DR2002] Daemen, J., Rijmen, V., `The Design of Rijndael: AES – The Advanced Encryption Standard `_ Springer, 2002. ISBN 3-540-42580-2. +.. [DT2007] Donnet, B. and Friedman, T., `Internet Topology Discovery: a Survey `_. IEEE Communications Surveys and Tutorials, 9(4):2-15, December 2007 +.. [DYGU2004] Davik, F. Yilmaz, M. Gjessing, S. Uzun, N., `IEEE 802.17 resilient packet ring tutorial `_, IEEE Communications Magazine, Mar 2004, Vol 42, N 3, p. 112-118 +.. [Dijkstra1959] Dijkstra, E., `A Note on Two Problems in Connection with Graphs `_. Numerische Mathematik, 1:269- 271, 1959 .. [FDDI] ANSI. `Information systems - Fiber Distributed Data Interface (FDDI) - token ring media access control (MAC)`. ANSI X3.139-1987 (R1997), 1997 -.. [Fletcher1982] Fletcher, J., `An Arithmetic Checksum for Serial Transmissions `_, Communications, IEEE Transactions on, Jan. 1982, Vol. 30, N. 1, pp. 247-252 -.. [FFEB2005] Francois, P., Filsfils, C., Evans, J., and Bonaventure, O., `Achieving sub-second IGP convergence in large IP networks `_. SIGCOMM Comput. Commun. Rev. 35, 3 (Jul. 2005), 35-44. -.. [FJ1993] Sally Floyd and Van Jacobson. 1993. `Random early detection gateways for congestion avoidance `_. IEEE/ACM Trans. Netw. 1, 4 (August 1993), 397-413. -.. [FJ1994] Floyd, S., and Jacobson, V., `The Synchronization of Periodic Routing Messages `_, IEEE/ACM Transactions on Networking, V.2 N.2, p. 122-136, April 1994 +.. [Fletcher1982] Fletcher, J., `An Arithmetic Checksum for Serial Transmissions `_, Communications, IEEE Transactions on, Jan. 1982, Vol. 30, N. 1, pp. 247-252 +.. [FFEB2005] Francois, P., Filsfils, C., Evans, J., and Bonaventure, O., `Achieving sub-second IGP convergence in large IP networks `_. SIGCOMM Comput. Commun. Rev. 35, 3 (Jul. 2005), 35-44. +.. [FJ1993] Sally Floyd and Van Jacobson. 1993. `Random early detection gateways for congestion avoidance `_. IEEE/ACM Trans. Netw. 1, 4 (August 1993), 397-413. +.. [FJ1994] Floyd, S., and Jacobson, V., `The Synchronization of Periodic Routing Messages `_, IEEE/ACM Transactions on Networking, V.2 N.2, p. 122-136, April 1994 .. [FKC1996] Freier, A., Karlton, P., Kocher, C., `The SSL Protocol Version 3.0`, Internet draft, November 1996, https://tools.ietf.org/html/draft-ietf-tls-ssl-version3-00 -.. [FLM2008] Fuller, V., Lear, E., Meyer, D., `Reclassifying 240/4 as usable unicast address space `_, Internet draft, March 2008, workin progress -.. [FRT2002] Fortz, B. Rexford, J. ,Thorup, M., `Traffic engineering with traditional IP routing protocols `_, IEEE Communication Magazine, October 2002 -.. [FTY99] Theodore Faber, Joe Touch, and Wei Yue, `The TIME-WAIT state in TCP and Its Effect on Busy Servers `_, Proc. Infocom '99, pp. 1573 -.. [Feldmeier95] Feldmeier, D. C., `Fast software implementation of error detection codes `_. IEEE/ACM Trans. Netw. 3, 6 (Dec. 1995), 640-651. -.. [GAVE1999] Govindan, R., Alaettinoglu, C., Varadhan, K., Estrin, D., `An Architecture for Stable, Analyzable Internet Routing `_, IEEE Network Magazine, Vol. 13, No. 1, pp. 29--35, January 1999 -.. [GC2000] Grier, D., Campbell, M., `A social history of Bitnet and Listserv `_, 1985-1991, Annals of the History of Computing, IEEE, Volume 22, Issue 2, Apr-Jun 2000, pp. 32 - 41 -.. [Genilloud1990] Genilloud, G., `X.400 MHS: first steps towards an EDI communication standard `_. SIGCOMM Comput. Commun. Rev. 20, 2 (Apr. 1990), 72-86. +.. [FLM2008] Fuller, V., Lear, E., Meyer, D., `Reclassifying 240/4 as usable unicast address space `_, Internet draft, March 2008, workin progress +.. [FRT2002] Fortz, B. Rexford, J. ,Thorup, M., `Traffic engineering with traditional IP routing protocols `_, IEEE Communication Magazine, October 2002 +.. [FTY99] Theodore Faber, Joe Touch, and Wei Yue, `The TIME-WAIT state in TCP and Its Effect on Busy Servers `_, Proc. Infocom '99, pp. 1573 +.. [Feldmeier95] Feldmeier, D. C., `Fast software implementation of error detection codes `_. IEEE/ACM Trans. Netw. 3, 6 (Dec. 1995), 640-651. +.. [GAVE1999] Govindan, R., Alaettinoglu, C., Varadhan, K., Estrin, D., `An Architecture for Stable, Analyzable Internet Routing `_, IEEE Network Magazine, Vol. 13, No. 1, pp. 29--35, January 1999 +.. [GC2000] Grier, D., Campbell, M., `A social history of Bitnet and Listserv `_, 1985-1991, Annals of the History of Computing, IEEE, Volume 22, Issue 2, Apr-Jun 2000, pp. 32 - 41 +.. [Genilloud1990] Genilloud, G., `X.400 MHS: first steps towards an EDI communication standard `_. SIGCOMM Comput. Commun. Rev. 20, 2 (Apr. 1990), 72-86. .. [Greenwald2014] G. Greenwald, `No Place to Hide: Edward Snowden, the NSA, and the U.S. Surveillance State `_, Metropolitan books, 2014 -.. [GGR2001] Gao, L., Griffin, T., Rexford, J., `Inherently safe backup routing with BGP `_, Proc. IEEE INFOCOM, April 2001 -.. [GN2011] Gettys, J., Nichols, K., `Bufferbloat: dark buffers in the internet `_. Communications of the ACM 55, no. 1 (2012): 57-65. -.. [GR2001] Gao, L., Rexford, J., `Stable Internet routing without global coordination `_, IEEE/ACM Transactions on Networking, December 2001, pp. 681-692 -.. [GSW2002] Griffin, T. G., Shepherd, F. B., and Wilfong, G., `The stable paths problem and interdomain routing `_. IEEE/ACM Trans. Netw. 10, 2 (Apr. 2002), 232-243 -.. [GW1999] Griffin, T. G. and Wilfong, G., `An analysis of BGP convergence properties `_. SIGCOMM Comput. Commun. Rev. 29, 4 (Oct. 1999), 277-288. -.. [GW2002] Griffin, T. and Wilfong, G. T., `Analysis of the MED Oscillation Problem in BGP `_. In Proceedings of the 10th IEEE international Conference on Network Protocols (November 12 - 15, 2002). ICNP. IEEE Computer Society, Washington, DC, 90-99 -.. [Garcia1993] Garcia-Lunes-Aceves, J., `Loop-Free Routing Using Diffusing Computations `_, IEEE/ACM Transactions on Networking, Vol. 1, No, 1, Feb. 1993 -.. [Gast2002] Gast, M., `802.11 Wireless Networks : The Definitive Guide `_, O'Reilly, 2002 +.. [GGR2001] Gao, L., Griffin, T., Rexford, J., `Inherently safe backup routing with BGP `_, Proc. IEEE INFOCOM, April 2001 +.. [GN2011] Gettys, J., Nichols, K., `Bufferbloat: dark buffers in the internet `_. Communications of the ACM 55, no. 1 (2012): 57-65. +.. [GR2001] Gao, L., Rexford, J., `Stable Internet routing without global coordination `_, IEEE/ACM Transactions on Networking, December 2001, pp. 681-692 +.. [GSW2002] Griffin, T. G., Shepherd, F. B., and Wilfong, G., `The stable paths problem and interdomain routing `_. IEEE/ACM Trans. Netw. 10, 2 (Apr. 2002), 232-243 +.. [GW1999] Griffin, T. G. and Wilfong, G., `An analysis of BGP convergence properties `_. SIGCOMM Comput. Commun. Rev. 29, 4 (Oct. 1999), 277-288. +.. [GW2002] Griffin, T. and Wilfong, G. T., `Analysis of the MED Oscillation Problem in BGP `_. In Proceedings of the 10th IEEE international Conference on Network Protocols (November 12 - 15, 2002). ICNP. IEEE Computer Society, Washington, DC, 90-99 +.. [Garcia1993] Garcia-Lunes-Aceves, J., `Loop-Free Routing Using Diffusing Computations `_, IEEE/ACM Transactions on Networking, Vol. 1, No, 1, Feb. 1993 +.. [Gast2002] Gast, M., `802.11 Wireless Networks : The Definitive Guide `_, O'Reilly, 2002 .. [Gill2004] Gill, V. , `Lack of Priority Queuing Considered Harmful `_, ACM Queue, December 2004 -.. [Goralski2009] Goralski, W., `The Illustrated network : How TCP/IP works in a modern network `_, Morgan Kaufmann, 2009 -.. [HFPMC2002] Huffaker, B., Fomenkov, M., Plummer, D., Moore, D., Claffy, K., `Distance Metrics in the Internet `_, Presented at the IEEE International Telecommunications Symposium (ITS) in 2002. -.. [HRX2008] Ha, S., Rhee, I., and Xu, L., `CUBIC: a new TCP-friendly high-speed TCP variant `_. SIGOPS Oper. Syst. Rev. 42, 5 (Jul. 2008), 64-74. +.. [Goralski2009] Goralski, W., `The Illustrated network : How TCP/IP works in a modern network `_, Morgan Kaufmann, 2009 +.. [HFPMC2002] Huffaker, B., Fomenkov, M., Plummer, D., Moore, D., Claffy, K., `Distance Metrics in the Internet `_, Presented at the IEEE International Telecommunications Symposium (ITS) in 2002. +.. [HRX2008] Ha, S., Rhee, I., and Xu, L., `CUBIC: a new TCP-friendly high-speed TCP variant `_. SIGOPS Oper. Syst. Rev. 42, 5 (Jul. 2008), 64-74. .. [HV2008] Hogg, S. Vyncke, E., `IPv6 Security `_, Cisco Press, 2008 .. [IMHM2013] Ishihara, K., Mukai, M., Hiromi, R., Mawatari, M., `Packet Filter and Route Filter Recommendation for IPv6 at xSP routers `_, 2013 .. [ISO10589] ISO, `Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473) `_ , 2002 -.. [Jacobson1988] Jacobson, V., `Congestion avoidance and control `_. In Symposium Proceedings on Communications Architectures and Protocols (Stanford, California, United States, August 16 - 18, 1988). V. Cerf, Ed. SIGCOMM '88. ACM, New York, NY, 314-329. -.. [Jain1990] Jain, R., `Congestion control in computer networks : Issues and trends `_, IEEE Network Magazine, May 1990, pp. 24-30 -.. [JLT2013] Jesup, R., Loreto, S., Tuexen, M., `RTCWeb Data Channels `_, Internet draft, draft-ietf-rtcweb-data-channel, work in progress, 2015 -.. [JSBM2002] Jung, J., Sit, E., Balakrishnan, H., and Morris, R. 2002. `DNS performance and the effectiveness of caching `_. IEEE/ACM Trans. Netw. 10, 5 (Oct. 2002), 589-603. +.. [Jacobson1988] Jacobson, V., `Congestion avoidance and control `_. In Symposium Proceedings on Communications Architectures and Protocols (Stanford, California, United States, August 16 - 18, 1988). V. Cerf, Ed. SIGCOMM '88. ACM, New York, NY, 314-329. +.. [Jain1990] Jain, R., `Congestion control in computer networks : Issues and trends `_, IEEE Network Magazine, May 1990, pp. 24-30 +.. [JLT2013] Jesup, R., Loreto, S., Tuexen, M., `RTCWeb Data Channels `_, Internet draft, draft-ietf-rtcweb-data-channel, work in progress, 2015 +.. [JSBM2002] Jung, J., Sit, E., Balakrishnan, H., and Morris, R. 2002. `DNS performance and the effectiveness of caching `_. IEEE/ACM Trans. Netw. 10, 5 (Oct. 2002), 589-603. .. [JSON-RPC2] JSON-RPC Working group, `JSON-RPC 2.0 Specification `_, available on http://www.jsonrpc.org, 2010 .. [Kerrisk2010] Kerrisk, M., `The Linux Programming Interface `_, No Starch Press, 2010 -.. [KM1995] Kent, C. A. and Mogul, J. C., `Fragmentation considered harmful `_. SIGCOMM Comput. Commun. Rev. 25, 1 (Jan. 1995), 75-87. -.. [KNT2013] Kühlewind, M., Neuner, S., Trammell, B., `On the state of ECN and TCP Options on the Internet `_. Proceedings of the 14th Passive and Active Measurement conference (PAM 2013), Hong Kong, March 2013 -.. [KP91] Karn, P. and Partridge, C., `Improving round-trip time estimates in reliable transport protocols `_. ACM Trans. Comput. Syst. 9, 4 (Nov. 1991), 364-373. -.. [KPD1985] Karn, P., Price, H., Diersing, R., `Packet radio in amateur service `_, IEEE Journal on Selected Areas in Communications, 3, May, 1985 -.. [KPS2003] Kaufman, C., Perlman, R., and Sommerfeld, B. `DoS protection for UDP-based protocols `_. In Proceedings of the 10th ACM Conference on Computer and Communications Security (Washington D.C., USA, October 27 - 30, 2003). CCS '03. ACM, New York, NY, 2-7. +.. [KM1995] Kent, C. A. and Mogul, J. C., `Fragmentation considered harmful `_. SIGCOMM Comput. Commun. Rev. 25, 1 (Jan. 1995), 75-87. +.. [KNT2013] Kühlewind, M., Neuner, S., Trammell, B., `On the state of ECN and TCP Options on the Internet `_. Proceedings of the 14th Passive and Active Measurement conference (PAM 2013), Hong Kong, March 2013 +.. [KP91] Karn, P. and Partridge, C., `Improving round-trip time estimates in reliable transport protocols `_. ACM Trans. Comput. Syst. 9, 4 (Nov. 1991), 364-373. +.. [KPD1985] Karn, P., Price, H., Diersing, R., `Packet radio in amateur service `_, IEEE Journal on Selected Areas in Communications, 3, May, 1985 +.. [KPS2003] Kaufman, C., Perlman, R., and Sommerfeld, B. `DoS protection for UDP-based protocols `_. In Proceedings of the 10th ACM Conference on Computer and Communications Security (Washington D.C., USA, October 27 - 30, 2003). CCS '03. ACM, New York, NY, 2-7. .. [KPS2002] Kaufman, C., Perlman, R., Speciner, M., `Network Security : Private communication in a public world `_, 2nd edition, Prentice Hall, 2002 -.. [KR1995] Kung, N.T. Morris, R., `Credit-based flow control for ATM networks `_, IEEE Network, Mar/Apr 1995, Volume: 9, Issue: 2, pages: 40-48 -.. [KT1975] Kleinrock, L., Tobagi, F., `Packet Switching in Radio Channels: Part I--Carrier Sense Multiple-Access Modes and their Throughput-Delay Characteristics `_, IEEE Transactions on Communications, Vol. COM-23, No. 12, pp. 1400-1416, December 1975. +.. [KR1995] Kung, N.T. Morris, R., `Credit-based flow control for ATM networks `_, IEEE Network, Mar/Apr 1995, Volume: 9, Issue: 2, pages: 40-48 +.. [KT1975] Kleinrock, L., Tobagi, F., `Packet Switching in Radio Channels: Part I--Carrier Sense Multiple-Access Modes and their Throughput-Delay Characteristics `_, IEEE Transactions on Communications, Vol. COM-23, No. 12, pp. 1400-1416, December 1975. .. [KW2009] Katz, D., Ward, D., `Bidirectional Forwarding Detection`, :rfc:`5880`, June 2010 -.. [KZ1989] Khanna, A. and Zinky, J. 1989. `The revised ARPANET routing metric `_. SIGCOMM Comput. Commun. Rev. 19, 4 (Aug. 1989), 45-56. +.. [KZ1989] Khanna, A. and Zinky, J. 1989. `The revised ARPANET routing metric `_. SIGCOMM Comput. Commun. Rev. 19, 4 (Aug. 1989), 45-56. .. [KuroseRoss09] Kurose J. and Ross K., `Computer networking : a top-down approach featuring the Internet `_, Addison-Wesley, 2009 -.. [Lamport1981] Lamport, L., `Password authentication with insecure communication `_. Commun. ACM 24, 11 (November 1981), 770-772. -.. [Licklider1963] Licklider, J., `Memorandum For Members and Affiliates of the Intergalactic Computer Network `_, 1963 -.. [LCCD09] Leiner, B. M., Cerf, V. G., Clark, D. D., Kahn, R. E., Kleinrock, L., Lynch, D. C., Postel, J., Roberts, L. G., and Wolff, S., `A brief history of the internet `_. SIGCOMM Comput. Commun. Rev. 39, 5 (Oct. 2009), 22-31. -.. [LCP2005] Eng Keong Lua, Crowcroft, J., Pias, M., Sharma, R., Lim, S., `A survey and comparison of peer-to-peer overlay network schemes `_, Communications Surveys & Tutorials, IEEE, Volume: 7 , Issue: 2, 2005, pp. 72-93 +.. [Lamport1981] Lamport, L., `Password authentication with insecure communication `_. Commun. ACM 24, 11 (November 1981), 770-772. +.. [Licklider1963] Licklider, J., `Memorandum For Members and Affiliates of the Intergalactic Computer Network `_, 1963 +.. [LCCD09] Leiner, B. M., Cerf, V. G., Clark, D. D., Kahn, R. E., Kleinrock, L., Lynch, D. C., Postel, J., Roberts, L. G., and Wolff, S., `A brief history of the internet `_. SIGCOMM Comput. Commun. Rev. 39, 5 (Oct. 2009), 22-31. +.. [LCP2005] Eng Keong Lua, Crowcroft, J., Pias, M., Sharma, R., Lim, S., `A survey and comparison of peer-to-peer overlay network schemes `_, Communications Surveys & Tutorials, IEEE, Volume: 7 , Issue: 2, 2005, pp. 72-93 .. [LeB2009] Leroy, D. and O. Bonaventure, `Preparing network - configurations for IPv6 renumbering `_, International of Network Management, 2009 -.. [LFJLMT] Leffler, S., Fabry, R., Joy, W., Lapsley, P., Miller, S., Torek, C., `An Advanced 4.4BSD Interprocess Communication Tutorial `_, 4.4 BSD Programmer's Supplementary Documentation -.. [LNO1996] T. V. Lakshman, Arnold Neidhardt, and Teunis J. Ott. 1996. `The drop from front strategy in TCP and in TCP over ATM `_. INFOCOM'96, Vol. 3. IEEE Computer Society, Washington, DC, USA, 1242-1250. -.. [LSP1982] Lamport, L., Shostak, R., and Pease, M., `The Byzantine Generals Problem `_. ACM Trans. Program. Lang. Syst. 4, 3 (Jul. 1982), 382-401. + configurations for IPv6 renumbering `_, International of Network Management, 2009 +.. [LFJLMT] Leffler, S., Fabry, R., Joy, W., Lapsley, P., Miller, S., Torek, C., `An Advanced 4.4BSD Interprocess Communication Tutorial `_, 4.4 BSD Programmer's Supplementary Documentation +.. [LNO1996] T. V. Lakshman, Arnold Neidhardt, and Teunis J. Ott. 1996. `The drop from front strategy in TCP and in TCP over ATM `_. INFOCOM'96, Vol. 3. IEEE Computer Society, Washington, DC, USA, 1242-1250. +.. [LSP1982] Lamport, L., Shostak, R., and Pease, M., `The Byzantine Generals Problem `_. ACM Trans. Program. Lang. Syst. 4, 3 (Jul. 1982), 382-401. .. [Leboudec2008] Leboudec, J.-Y., `Rate Adaptation Congestion Control and Fairness : a tutorial `_, Dec. 2008 -.. [Malamud1991] Malamud, C., `Analyzing DECnet/OSI phase V `_, Van Nostrand Reinhold, 1991 -.. [McFadyen1976] McFadyen, J., `Systems Network Architecture: An overview `_, IBM Systems Journal, Vol. 15, N. 1, pp. 4-23, 1976 -.. [McKusick1999] McKusick, M., `Twenty Years of Berkeley Unix : From AT&T-Owned to Freely Redistributable `_, in Open Sources: Voices from the Open Source Revolution, Oreilly, 1999, http://oreilly.com/catalog/opensources/book/toc.html -.. [ML2011] Minei I. and Lucek J. ,`MPLS-Enabled Applications: Emerging Developments and New Technologies `_ (Wiley Series on Communications Networking & Distributed Systems), Wiley, 2011 -.. [MRR1979] McQuillan, J. M., Richer, I., and Rosen, E. C., `An overview of the new routing algorithm for the ARPANET `_. In Proceedings of the Sixth Symposium on Data Communications (Pacific Grove, California, United States, November 27 - 29, 1979). SIGCOMM '79. ACM, New York, NY, 63-68. -.. [MRR1980] McQuillan, J.M., Richer, I., Rosen, E., `The New Routing Algorithm for the ARPANET `_ Communications, IEEE Transactions on , vol.28, no.5, pp.711,719, May 1980 -.. [MSMO1997] Mathis, M., Semke, J., Mahdavi, J., and Ott, T. 1997. `The macroscopic behavior of the TCP congestion avoidance algorithm `_. SIGCOMM Comput. Commun. Rev. 27, 3 (Jul. 1997), 67-82. -.. [MSV1987] Molle, M., Sohraby, K., Venetsanopoulos, A., `Space-Time Models of Asynchronous CSMA Protocols for Local Area Networks `_, IEEE Journal on Selected Areas in Communications, Volume: 5 Issue: 6, Jul 1987 Page(s): 956 -96 -.. [MUF+2007] Mühlbauer, W., Uhlig, S., Fu, B., Meulle, M., and Maennel, O., `In search for an appropriate granularity to model routing policies `_. In Proceedings of the 2007 Conference on Applications, Technologies, Architectures, and Protocols For Computer Communications (Kyoto, Japan, August 27 - 31, 2007). SIGCOMM '07. ACM, New York, NY, 145-156. -.. [Malkin1999] Malkin, G., `RIP: An Intra-Domain Routing Protocol `_, Addison Wesley, 1999 -.. [Metcalfe1976] Metcalfe R., Boggs, D., `Ethernet: Distributed packet-switching for local computer networks `_. Communications of the ACM, 19(7):395--404, 1976. -.. [Mills2006] Mills, D.L., `Computer Network Time Synchronization: the Network Time Protocol `_. CRC Press, March 2006, 304 pp. +.. [Malamud1991] Malamud, C., `Analyzing DECnet/OSI phase V `_, Van Nostrand Reinhold, 1991 +.. [McFadyen1976] McFadyen, J., `Systems Network Architecture: An overview `_, IBM Systems Journal, Vol. 15, N. 1, pp. 4-23, 1976 +.. [McKusick1999] McKusick, M., `Twenty Years of Berkeley Unix : From AT&T-Owned to Freely Redistributable `_, in Open Sources: Voices from the Open Source Revolution, Oreilly, 1999, http://www.oreilly.com/catalog/opensources/book/ +.. [ML2011] Minei I. and Lucek J. ,`MPLS-Enabled Applications: Emerging Developments and New Technologies `_ (Wiley Series on Communications Networking & Distributed Systems), Wiley, 2011 +.. [MRR1979] McQuillan, J. M., Richer, I., and Rosen, E. C., `An overview of the new routing algorithm for the ARPANET `_. In Proceedings of the Sixth Symposium on Data Communications (Pacific Grove, California, United States, November 27 - 29, 1979). SIGCOMM '79. ACM, New York, NY, 63-68. +.. [MRR1980] McQuillan, J.M., Richer, I., Rosen, E., `The New Routing Algorithm for the ARPANET `_ Communications, IEEE Transactions on , vol.28, no.5, pp.711,719, May 1980 +.. [MSMO1997] Mathis, M., Semke, J., Mahdavi, J., and Ott, T. 1997. `The macroscopic behavior of the TCP congestion avoidance algorithm `_. SIGCOMM Comput. Commun. Rev. 27, 3 (Jul. 1997), 67-82. +.. [MSV1987] Molle, M., Sohraby, K., Venetsanopoulos, A., `Space-Time Models of Asynchronous CSMA Protocols for Local Area Networks `_, IEEE Journal on Selected Areas in Communications, Volume: 5 Issue: 6, Jul 1987 Page(s): 956 -96 +.. [MUF+2007] Mühlbauer, W., Uhlig, S., Fu, B., Meulle, M., and Maennel, O., `In search for an appropriate granularity to model routing policies `_. In Proceedings of the 2007 Conference on Applications, Technologies, Architectures, and Protocols For Computer Communications (Kyoto, Japan, August 27 - 31, 2007). SIGCOMM '07. ACM, New York, NY, 145-156. +.. [Malkin1999] Malkin, G., `RIP: An Intra-Domain Routing Protocol `_, Addison Wesley, 1999 +.. [Metcalfe1976] Metcalfe R., Boggs, D., `Ethernet: Distributed packet-switching for local computer networks `_. Communications of the ACM, 19(7):395--404, 1976. +.. [Mills2006] Mills, D.L., `Computer Network Time Synchronization: the Network Time Protocol `_. CRC Press, March 2006, 304 pp. .. [Miyakawa2008] Miyakawa, S., `From IPv4 only To v4/v6 Dual Stack `_, IETF72 IAB Technical Plenary, July 2008 -.. [Mogul1995] Mogul, J. , `The case for persistent-connection HTTP `_. In Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols For Computer Communication (Cambridge, Massachusetts, United States, August 28 - September 01, 1995). D. Oran, Ed. SIGCOMM '95. ACM, New York, NY, 299-313. +.. [Mogul1995] Mogul, J. , `The case for persistent-connection HTTP `_. In Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols For Computer Communication (Cambridge, Massachusetts, United States, August 28 - September 01, 1995). D. Oran, Ed. SIGCOMM '95. ACM, New York, NY, 299-313. .. [Moore] Moore, R., `Packet switching history`, http://rogerdmoore.ca/PS/ -.. [Moy1998] Moy, J., `OSPF: Anatomy of an Internet Routing Protocol `_, Addison Wesley, 1998 +.. [Moy1998] Moy, J., `OSPF: Anatomy of an Internet Routing Protocol `_, Addison Wesley, 1998 .. [MVV2011] Menezes, A., van Oorschot, P. and Vanstone, S. , `Handbook of Applied Cryptography `_ , CRC Press, 2011 -.. [Myers1998] Myers, B. A., `A brief history of human-computer interaction technology `_. interactions 5, 2 (Mar. 1998), 44-54. -.. [Nelson1965] Nelson, T. H., `Complex information processing: a file structure for the complex, the changing and the indeterminate `_. In Proceedings of the 1965 20th National Conference (Cleveland, Ohio, United States, August 24 - 26, 1965). L. Winner, Ed. ACM '65. ACM, New York, NY, 84-100. -.. [NGB+1997] Nielsen, H., Gettys, J., Baird-Smith, A., Prudhommeaux, E., Wium Lie, H., and Lilley, C. `Network performance effects of HTTP/1.1, CSS1, and PNG `_. SIGCOMM Comput. Commun. Rev. 27, 4 (October 1997), 155-166. -.. [Paxson99] Paxson, V. , `End-to-end Internet packet dynamics `_. SIGCOMM Comput. Commun. Rev. 27, 4 (Oct. 1997), 139-152. -.. [Perlman1985] Perlman, R., `An algorithm for distributed computation of a spanning tree in an extended LAN `_. SIGCOMM Comput. Commun. Rev. 15, 4 (Sep. 1985), 44-53. -.. [Perlman2000] Perlman, R., `Interconnections : Bridges, routers, switches and internetworking protocols `_, 2nd edition, Addison Wesley, 2000 -.. [Perlman2004] Perlman, R., `RBridges: Transparent Routing `_, Proc. IEEE Infocom , March 2004. +.. [Myers1998] Myers, B. A., `A brief history of human-computer interaction technology `_. interactions 5, 2 (Mar. 1998), 44-54. +.. [Nelson1965] Nelson, T. H., `Complex information processing: a file structure for the complex, the changing and the indeterminate `_. In Proceedings of the 1965 20th National Conference (Cleveland, Ohio, United States, August 24 - 26, 1965). L. Winner, Ed. ACM '65. ACM, New York, NY, 84-100. +.. [NGB+1997] Nielsen, H., Gettys, J., Baird-Smith, A., Prudhommeaux, E., Wium Lie, H., and Lilley, C. `Network performance effects of HTTP/1.1, CSS1, and PNG `_. SIGCOMM Comput. Commun. Rev. 27, 4 (October 1997), 155-166. +.. [Paxson99] Paxson, V. , `End-to-end Internet packet dynamics `_. SIGCOMM Comput. Commun. Rev. 27, 4 (Oct. 1997), 139-152. +.. [Perlman1985] Perlman, R., `An algorithm for distributed computation of a spanning tree in an extended LAN `_. SIGCOMM Comput. Commun. Rev. 15, 4 (Sep. 1985), 44-53. +.. [Perlman2000] Perlman, R., `Interconnections : Bridges, routers, switches and internetworking protocols `_, 2nd edition, Addison Wesley, 2000 +.. [Perlman2004] Perlman, R., `RBridges: Transparent Routing `_, Proc. IEEE Infocom , March 2004. .. [Pouzin1975] Pouzin, L., `The CYCLADES Network - Present state and development trends `_, Symposium on Computer Networks, 1975 pp 8-13. -.. [Rago1993] Rago, S., `UNIX System V network programming `_, Addison Wesley, 1993 -.. [RE1989] Rochlis, J. A. and Eichin, M. W., `With microscope and tweezers: the worm from MIT's perspective `_. Commun. ACM 32, 6 (Jun. 1989), 689-698. +.. [Rago1993] Rago, S., `UNIX System V network programming `_, Addison Wesley, 1993 +.. [RE1989] Rochlis, J. A. and Eichin, M. W., `With microscope and tweezers: the worm from MIT's perspective `_. Commun. ACM 32, 6 (Jun. 1989), 689-698. .. [RFC20] Cerf, V., `ASCII format for network interchange`, :rfc:`20`, Oct. 1969 .. [RFC768] Postel, J., `User Datagram Protocol`, :rfc:`768`, Aug. 1980 .. [RFC789] Rosen, E., `Vulnerabilities of network control protocols: An example`, :rfc:`789`, July 1981 @@ -303,53 +303,53 @@ Whenever possible, the bibliography includes stable hypertext links to the refer .. [RFC6274] Gont, F., `Security Assessment of the Internet Protocol Version 4`, :rfc:`6274`, July 2011 .. [RFC7049] Bormann, C., Hoffman, P., `Concise Binary Object Representation (CBOR)`, :rfc:`7049`, Oct. 2013. .. [RFC8305] Schinazi, D., Pauly, T., `Happy Eyeballs Version 2: Better Connectivity Using Concurrency`, :rfc:`8305`, Dec. 2017. -.. [RG2010] Rhodes, B. and Goerzen, J., `Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python `_, Second Edition, Academic Press, 2004 +.. [RG2010] Rhodes, B. and Goerzen, J., `Foundations of Python Network Programming: The Comprehensive Guide to Building Network Applications with Python `_, Second Edition, Academic Press, 2004 .. [Ristic2015] Ristic, I., `Bulletproof SSL and TLS: Understanding and Deploying SSL/TLS and PKI to Secure Web Servers and Applications `_, Feisty Duck, 2015 -.. [RJ1995] Ramakrishnan, K. K. and Jain, R., `A binary feedback scheme for congestion avoidance in computer networks with a connectionless network layer `_. SIGCOMM Comput. Commun. Rev. 25, 1 (Jan. 1995), 138-156. -.. [RIB2013] Raiciu, C., Iyengar, J., Bonaventure, O., `Recent Advances in Reliable Transport Protocols `_, in H. Haddadi, O. Bonaventure (Eds.), `Recent Advances in Networking `_, (2013), pp. 59-106. -.. [RSA1978] Rivest, R., Shamir, A. and Adleman, L., `A method for obtaining digital signatures and public-key cryptosystems `_. Commun. ACM 21, 2 (February 1978), 120-126 +.. [RJ1995] Ramakrishnan, K. K. and Jain, R., `A binary feedback scheme for congestion avoidance in computer networks with a connectionless network layer `_. SIGCOMM Comput. Commun. Rev. 25, 1 (Jan. 1995), 138-156. +.. [RIB2013] Raiciu, C., Iyengar, J., Bonaventure, O., `Recent Advances in Reliable Transport Protocols `_, in H. Haddadi, O. Bonaventure (Eds.), `Recent Advances in Networking `_, (2013), pp. 59-106. +.. [RSA1978] Rivest, R., Shamir, A. and Adleman, L., `A method for obtaining digital signatures and public-key cryptosystems `_. Commun. ACM 21, 2 (February 1978), 120-126 .. [RY1994] Ramakrishnan, K.K. and Henry Yang, `The Ethernet Capture Effect: Analysis and Solution `_, Proceedings of IEEE 19th Conference on Local Computer Networks, MN, Oct. 1994. -.. [Roberts1975] Roberts, L., `ALOHA packet system with and without slots and capture `_. SIGCOMM Comput. Commun. Rev. 5, 2 (Apr. 1975), 28-42. -.. [Ross1989] Ross, F., `An overview of FDDI: The fiber distributed data interface `_, IEEE J. Selected Areas in Comm., vol. 7, no. 7, pp. 1043-1051, Sept. 1989 -.. [Russel06] Russell A., `Rough Consensus and Running Code and the Internet-OSI Standards War `_, IEEE Annals of the History of Computing, July-September 2006 +.. [Roberts1975] Roberts, L., `ALOHA packet system with and without slots and capture `_. SIGCOMM Comput. Commun. Rev. 5, 2 (Apr. 1975), 28-42. +.. [Ross1989] Ross, F., `An overview of FDDI: The fiber distributed data interface `_, IEEE J. Selected Areas in Comm., vol. 7, no. 7, pp. 1043-1051, Sept. 1989 +.. [Russel06] Russell A., `Rough Consensus and Running Code and the Internet-OSI Standards War `_, IEEE Annals of the History of Computing, July-September 2006 .. [SAO1990] Sidhu, G., Andrews, R., Oppenheimer, A., `Inside AppleTalk `_, Addison-Wesley, 1990 -.. [SARK2002] Subramanian, L., Agarwal, S., Rexford, J., Katz, R.. `Characterizing the Internet hierarchy from multiple vantage points `_. In IEEE INFOCOM, 2002 -.. [Sechrest] Sechrest, S., `An Introductory 4.4BSD Interprocess Communication Tutorial `_, 4.4BSD Programmer's Supplementary Documentation -.. [SG1990] Scheifler, R., Gettys, J., `X Window System: The Complete Reference to Xlib `_, X Protocol, ICCCM, XLFD, X Version 11, Release 4, Digital Press -.. [SGP98] Stone, J., Greenwald, M., Partridge, C., and Hughes, J., `Performance of checksums and CRC's over real data `_. IEEE/ACM Trans. Netw. 6, 5 (Oct. 1998), 529-543. -.. [SH1980] Shoch, J. F. and Hupp, J. A., `Measured performance of an Ethernet local network `_. Commun. ACM 23, 12 (Dec. 1980), 711-721. +.. [SARK2002] Subramanian, L., Agarwal, S., Rexford, J., Katz, R.. `Characterizing the Internet hierarchy from multiple vantage points `_. In IEEE INFOCOM, 2002 +.. [Sechrest] Sechrest, S., `An Introductory 4.4BSD Interprocess Communication Tutorial `_, 4.4BSD Programmer's Supplementary Documentation +.. [SG1990] Scheifler, R., Gettys, J., `X Window System: The Complete Reference to Xlib `_, X Protocol, ICCCM, XLFD, X Version 11, Release 4, Digital Press +.. [SGP98] Stone, J., Greenwald, M., Partridge, C., and Hughes, J., `Performance of checksums and CRC's over real data `_. IEEE/ACM Trans. Netw. 6, 5 (Oct. 1998), 529-543. +.. [SH1980] Shoch, J. F. and Hupp, J. A., `Measured performance of an Ethernet local network `_. Commun. ACM 23, 12 (Dec. 1980), 711-721. .. [SH2004] Senapathi, S., Hernandez, R., `Introduction to TCP Offload Engines `_, March 2004 -.. [SMKKB2001] Stoica, I., Morris, R., Karger, D., Kaashoek, F., and Balakrishnan, H., `Chord: A scalable peer-to-peer lookup service for internet applications `_. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications (SIGCOMM '01). ACM, New York, NY, USA, 149-160 -.. [SMM1998] Semke, J., Mahdavi, J., and Mathis, M., `Automatic TCP buffer tuning `_. SIGCOMM Comput. Commun. Rev. 28, 4 (Oct. 1998), 315-323. +.. [SMKKB2001] Stoica, I., Morris, R., Karger, D., Kaashoek, F., and Balakrishnan, H., `Chord: A scalable peer-to-peer lookup service for internet applications `_. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications (SIGCOMM '01). ACM, New York, NY, USA, 149-160 +.. [SMM1998] Semke, J., Mahdavi, J., and Mathis, M., `Automatic TCP buffer tuning `_. SIGCOMM Comput. Commun. Rev. 28, 4 (Oct. 1998), 315-323. .. [SPMR09] Stigge, M., Plotz, H., Muller, W., Redlich, J., `Reversing CRC - Theory and Practice `_. Berlin: Humboldt University Berlin. pp. 24. -.. [STBT2009] Sridharan, M., Tan, K., Bansal, D., Thaler, D., `Compound TCP: A New TCP Congestion Control for High-Speed and Long Distance Networks `_, Internet draft, work in progress, April 2009 -.. [STD2013] Stewart, R., Tuexen, M., Dong, X., `ECN for Stream Control Transmission Protocol (SCTP) `_, Internet draft, draft-stewart-tsvwg-sctpecn-04, April 2013, work in progress -.. [Seifert2008] Seifert, R., Edwards, J., `The All-New Switch Book : The complete guide to LAN switching technology `_, Wiley, 2008 +.. [STBT2009] Sridharan, M., Tan, K., Bansal, D., Thaler, D., `Compound TCP: A New TCP Congestion Control for High-Speed and Long Distance Networks `_, Internet draft, work in progress, April 2009 +.. [STD2013] Stewart, R., Tuexen, M., Dong, X., `ECN for Stream Control Transmission Protocol (SCTP) `_, Internet draft, draft-stewart-tsvwg-sctpecn-04, April 2013, work in progress +.. [Seifert2008] Seifert, R., Edwards, J., `The All-New Switch Book : The complete guide to LAN switching technology `_, Wiley, 2008 .. [Selinger] Selinger, P., `MD5 collision demo`, http://www.mscs.dal.ca/~selinger/md5collision/ -.. [SFR2004] Stevens R. and Fenner, and Rudoff, A., `UNIX Network Programming: The sockets networking API `_, Addison Wesley, 2004 -.. [Sklower89] Sklower, K. 1989. `Improving the efficiency of the OSI checksum calculation `_. SIGCOMM Comput. Commun. Rev. 19, 5 (Oct. 1989), 32-43. -.. [SMASU2012] Sarrar, N., Maier, G., Ager, B., Sommer, R. and Uhlig, S., `Investigating IPv6 traffic `_, Passive and Active Measurements, Lecture Notes in Computer Science vol 7192, 2012, pp.11-20 -.. [SMM98] Semke, J., Mahdavi, J., and Mathis, M., `Automatic TCP buffer tuning `_. SIGCOMM Comput. Commun. Rev. 28, 4 (Oct. 1998), 315-323. -.. [Stallings2009] Stallings, W., `Protocol Basics: Secure Shell Protocol `_, Internet Protocol Journal, vol 12, n 4, Dec. 2009 -.. [Stevens1994] Stevens, R., `TCP/IP Illustrated : the Protocols `_, Addison-Wesley, 1994 -.. [Stevens1998] Stevens, R., `UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI `_, Prentice Hall, 1998 -.. [Stewart1998] Stewart, J., `BGP4: Inter-Domain Routing In The Internet `_, Addison-Wesley, 1998 -.. [Stoll1988] Stoll, C., `Stalking the wily hacker `_, Commun. ACM 31, 5 (May. 1988), 484-497. -.. [SV1995] M. Shreedhar and G. Varghese. `Efficient fair queueing using deficit round robin `_ SIGCOMM Comput. Commun. Rev. 25, 4 (October 1995), 231-242. -.. [TE1993] Tsuchiya, P. F. and Eng, T., `Extending the IP internet through address reuse `_. SIGCOMM Comput. Commun. Rev. 23, 1 (Jan. 1993), 16-33. -.. [Thomborson1992] Thomborson, C., `The V.42bis Standard for Data-Compressing Modems `_, IEEE Micro, September/October 1992 (vol. 12 no. 5), pp. 41-53 -.. [Unicode] The Unicode Consortium. `The Unicode Standard `_, Version 5.0.0, defined by: The Unicode Standard, Version 5.0 (Boston, MA, Addison-Wesley, 2007 -.. [VPD2004] Vasseur, J., Pickavet, M., and Demeester, P., `Network Recovery: Protection and Restoration of Optical, SONET-SDH, IP, and MPLS `_. Morgan Kaufmann Publishers Inc., 2004 -.. [Varghese2005] Varghese, G., `Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices `_, Morgan Kaufmann, 2005 -.. [Vyncke2007] Vyncke, E., Paggen, C., `LAN Switch Security: What Hackers Know About Your Switches `_, Cisco Press, 2007 -.. [WMH2008] Wilson, P., Michaelson, G., Huston, G., `Redesignation of 240/4 from "Future Use" to "Private Use"`, Internet draft, September 2008, work in progress, http://tools.ietf.org/html/draft-wilson-class-e-02 -.. [WMS2004] White, R., Mc Pherson, D., Srihari, S., `Practical BGP `_, Addison-Wesley, 2004 -.. [Watson1981] Watson, R., `Timer-Based Mechanisms in Reliable Transport Protocol Connection Management `_. Computer Networks 5: 47-56 (1981) +.. [SFR2004] Stevens R. and Fenner, and Rudoff, A., `UNIX Network Programming: The sockets networking API `_, Addison Wesley, 2004 +.. [Sklower89] Sklower, K. 1989. `Improving the efficiency of the OSI checksum calculation `_. SIGCOMM Comput. Commun. Rev. 19, 5 (Oct. 1989), 32-43. +.. [SMASU2012] Sarrar, N., Maier, G., Ager, B., Sommer, R. and Uhlig, S., `Investigating IPv6 traffic `_, Passive and Active Measurements, Lecture Notes in Computer Science vol 7192, 2012, pp.11-20 +.. [SMM98] Semke, J., Mahdavi, J., and Mathis, M., `Automatic TCP buffer tuning `_. SIGCOMM Comput. Commun. Rev. 28, 4 (Oct. 1998), 315-323. +.. [Stallings2009] Stallings, W., `Protocol Basics: Secure Shell Protocol `_, Internet Protocol Journal, vol 12, n 4, Dec. 2009 +.. [Stevens1994] Stevens, R., `TCP/IP Illustrated : the Protocols `_, Addison-Wesley, 1994 +.. [Stevens1998] Stevens, R., `UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI `_, Prentice Hall, 1998 +.. [Stewart1998] Stewart, J., `BGP4: Inter-Domain Routing In The Internet `_, Addison-Wesley, 1998 +.. [Stoll1988] Stoll, C., `Stalking the wily hacker `_, Commun. ACM 31, 5 (May. 1988), 484-497. +.. [SV1995] M. Shreedhar and G. Varghese. `Efficient fair queueing using deficit round robin `_ SIGCOMM Comput. Commun. Rev. 25, 4 (October 1995), 231-242. +.. [TE1993] Tsuchiya, P. F. and Eng, T., `Extending the IP internet through address reuse `_. SIGCOMM Comput. Commun. Rev. 23, 1 (Jan. 1993), 16-33. +.. [Thomborson1992] Thomborson, C., `The V.42bis Standard for Data-Compressing Modems `_, IEEE Micro, September/October 1992 (vol. 12 no. 5), pp. 41-53 +.. [Unicode] The Unicode Consortium. `The Unicode Standard `_, Version 5.0.0, defined by: The Unicode Standard, Version 5.0 (Boston, MA, Addison-Wesley, 2007 +.. [VPD2004] Vasseur, J., Pickavet, M., and Demeester, P., `Network Recovery: Protection and Restoration of Optical, SONET-SDH, IP, and MPLS `_. Morgan Kaufmann Publishers Inc., 2004 +.. [Varghese2005] Varghese, G., `Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices `_, Morgan Kaufmann, 2005 +.. [Vyncke2007] Vyncke, E., Paggen, C., `LAN Switch Security: What Hackers Know About Your Switches `_, Cisco Press, 2007 +.. [WMH2008] Wilson, P., Michaelson, G., Huston, G., `Redesignation of 240/4 from "Future Use" to "Private Use"`, Internet draft, September 2008, work in progress, https://tools.ietf.org/html/draft-wilson-class-e-02 +.. [WMS2004] White, R., Mc Pherson, D., Srihari, S., `Practical BGP `_, Addison-Wesley, 2004 +.. [Watson1981] Watson, R., `Timer-Based Mechanisms in Reliable Transport Protocol Connection Management `_. Computer Networks 5: 47-56 (1981) .. [WF2003] Wessels, D., Fomenkov, M., `Wow, That's a lot of packets `_, Passive and Active Network Measurement Workshop (PAM), Apr 2003 .. [Williams1993] Williams, R. `A painless guide to CRC error detection algorithms`, August 1993, unpublished manuscript, http://www.ross.net/crc/download/crc_v3.txt .. [Winston2003] Winston, G., `NetBIOS Specification `_, 2003 -.. [X200] ITU-T, recommendation X.200, `Open Systems Interconnection - Model and Notation `_, 1994 -.. [X224] ITU-T, recommendation X.224, `Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service `_, 1995 +.. [X200] ITU-T, recommendation X.200, `Open Systems Interconnection - Model and Notation `_, 1994 +.. [X224] ITU-T, recommendation X.224, `Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service `_, 1995 .. [XNS] Xerox, `Xerox Network Systems Architecture `_, XNSG058504, 1985 -.. [Ylonen1996] Ylonen, T., `SSH — Secure Login Connections over the Internet `_, Usenix Security 1996 -.. [Zimmermann80] Zimmermann, H., `OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection `_, IEEE Transactions on Communications, vol. 28, no. 4, April 1980, pp. 425 - 432. +.. [Ylonen1996] Ylonen, T., `SSH — Secure Login Connections over the Internet `_, Usenix Security 1996 +.. [Zimmermann80] Zimmermann, H., `OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection `_, IEEE Transactions on Communications, vol. 28, no. 4, April 1980, pp. 425 - 432. diff --git a/book-2nd/exercises/ex-transport.rst b/book-2nd/exercises/ex-transport.rst index c7693b0..3ee94e4 100644 --- a/book-2nd/exercises/ex-transport.rst +++ b/book-2nd/exercises/ex-transport.rst @@ -128,7 +128,7 @@ Using the socket API ==================== -Networked applications were usually implemented by using the :term:`socket` :term:`API`. This API was designed when TCP/IP was first implemented in the `Unix BSD`_ operating system [Sechrest]_ [LFJLMT]_, and has served as the model for many APIs between applications and the networking stack in an operating system. Although the socket API is very popular, other APIs have also been developed. For example, the STREAMS API has been added to several Unix System V variants [Rago1993]_. The socket API is supported by most programming languages and several textbooks have been devoted to it. Users of the C language can consult [DC2009]_, [Stevens1998]_, [SFR2004]_ or [Kerrisk2010]_. The Java implementation of the socket API is described in [CD2008]_ and in the `Java tutorial `_. In this section, we will use the python_ implementation of the socket_ API to illustrate the key concepts. Additional information about this API may be found in the `socket section `_ of the `python documentation `_ . +Networked applications were usually implemented by using the :term:`socket` :term:`API`. This API was designed when TCP/IP was first implemented in the `Unix BSD`_ operating system [Sechrest]_ [LFJLMT]_, and has served as the model for many APIs between applications and the networking stack in an operating system. Although the socket API is very popular, other APIs have also been developed. For example, the STREAMS API has been added to several Unix System V variants [Rago1993]_. The socket API is supported by most programming languages and several textbooks have been devoted to it. Users of the C language can consult [DC2009]_, [Stevens1998]_, [SFR2004]_ or [Kerrisk2010]_. The Java implementation of the socket API is described in [CD2008]_ and in the `Java tutorial `_. In this section, we will use the python_ implementation of the socket_ API to illustrate the key concepts. Additional information about this API may be found in the `socket section `_ of the `python documentation `_ . The socket API is quite low-level and should be used only when you need a complete control of the network access. If your application simply needs, for instance, to retrieve data from a web server, there are much simpler and higher-level APIs. @@ -142,7 +142,7 @@ The `DATA` primitives are exchanged through a service access point. In the socke - an `address family` that specifies the type of address family and thus the underlying networking stack that will be used with the socket. This parameter can be either ``socket.AF_INET`` or ``socket.AF_INET6``. ``socket.AF_INET``, which corresponds to the TCP/IPv4 protocol stack is the default. ``socket.AF_INET6`` corresponds to the TCP/IPv6 protocol stack. - a `type` indicates the type of service which is expected from the networking stack. ``socket.STREAM`` (the default) corresponds to the reliable bytestream connection-oriented service. ``socket.DGRAM`` corresponds to the connectionless service. -.. However, it is important to understand the basics and the limitations of this API. We use the `python socket API ` to describe these issues. The socket API allows applications to interact with the transport services offered by the networking stack. The simplest transport service is the connectionless service. The simplest client application that uses this service will issue a `DATA.request` with its request and wait for a `DATA.indication` that contains the response. +.. However, it is important to understand the basics and the limitations of this API. We use the `python socket API ` to describe these issues. The socket API allows applications to interact with the transport services offered by the networking stack. The simplest transport service is the connectionless service. The simplest client application that uses this service will issue a `DATA.request` with its request and wait for a `DATA.indication` that contains the response. .. index:: socket, sendto, AF_INET, AF_INET6, SOCK_DGRAM, SOCK_STREAM @@ -207,13 +207,13 @@ With these methods, it is now possible to write a simple HTTP client. This clien :language: python -.. As mentioned above, the socket API is very low-level. This is the interface to the transport service. For a common and simple task, like retrieving a document from the Web, there are much simpler solutions. For example, the python_ `standard library `_ includes several high-level APIs to implementations of various application layer protocols including HTTP. For example, the `httplib `_ module can be used to easily access documents via HTTP. +.. As mentioned above, the socket API is very low-level. This is the interface to the transport service. For a common and simple task, like retrieving a document from the Web, there are much simpler solutions. For example, the python_ `standard library `_ includes several high-level APIs to implementations of various application layer protocols including HTTP. For example, the `httplib `_ module can be used to easily access documents via HTTP. .. .. literalinclude:: python/http-client-httplib.py .. :language: python -.. Another module, `urllib2 `_ allows the programmer to directly use URLs. This is much more simpler than directly using sockets. +.. Another module, `urllib2 `_ allows the programmer to directly use URLs. This is much more simpler than directly using sockets. .. .. literalinclude:: python/http-client-urllib2.py .. :language: python @@ -244,9 +244,9 @@ This server is far from a production-quality web server. A real web server would Practice ======== -.. 1. Amazon provides the `S3 storage service `_ where companies and researchers can store lots of information and perform computations on the stored information. Amazon allows users to send files through the Internet, but also by sending hard-disks. Assume that a 1 Terabyte hard-disk can be delivered within 24 hours to Amazon by courier service. What is the minimum bandwidth required to match the bandwidth of this courier service ? +.. 1. Amazon provides the `S3 storage service `_ where companies and researchers can store lots of information and perform computations on the stored information. Amazon allows users to send files through the Internet, but also by sending hard-disks. Assume that a 1 Terabyte hard-disk can be delivered within 24 hours to Amazon by courier service. What is the minimum bandwidth required to match the bandwidth of this courier service ? -.. 2. Several large data centers operators (e.g. `Microsoft `_ and `google `_) have announced that they install servers as containers with each container hosting up to 2000 servers. Assuming a container with 2000 servers and each storing 500 GBytes of data, what is the time required to move all the data stored in one container over one 10 Gbps link ? What is the bandwidth of a truck that needs 10 hours to move one container from one data center to another. +.. 2. Several large data centers operators (e.g. `Microsoft `_ and `google `_) have announced that they install servers as containers with each container hosting up to 2000 servers. Assuming a container with 2000 servers and each storing 500 GBytes of data, what is the time required to move all the data stored in one container over one 10 Gbps link ? What is the bandwidth of a truck that needs 10 hours to move one container from one data center to another. 1. The socket_ interface allows you to use the UDP protocol that provides the connectionless service on a Unix host. UDP, in theory, allows you to send SDUs of up to 64 KBytes. @@ -335,7 +335,7 @@ Discussion questions 5. What is piggybacking and what are the benefits of this technique ? -.. To be written : connect by name API is key ! http://www.stuartcheshire.org/IETF72/ +.. To be written : connect by name API is key ! http://stuartcheshire.org/IETF72/ .. [Cheshire2010]_ @@ -346,7 +346,7 @@ Discussion questions .. [#fnumrecv] Experiments with the client indicate that the number of `socket.recv` calls can vary at each run. There are various factors that influence the number of such calls that are required to retrieve some information from a server. We'll discuss some of them after having explained the operation of the underlying transport protocol. -.. [#fapache] There are many `production quality web servers software `_ available. apache_ is a very complex but widely used one. `thttpd `_ and `lighttpd `_ are less complex and their source code is probably easier to understand. +.. [#fapache] There are many `production quality web servers software `_ available. apache_ is a very complex but widely used one. `thttpd `_ and `lighttpd `_ are less complex and their source code is probably easier to understand. .. include:: /links.rst diff --git a/book-2nd/exercises/index.rst b/book-2nd/exercises/index.rst index 1f8e764..10a4c16 100644 --- a/book-2nd/exercises/index.rst +++ b/book-2nd/exercises/index.rst @@ -1,4 +1,4 @@ -.. Copyright |copy| 2013,2014 by `Olivier Bonaventure `_ +.. Copyright |copy| 2013,2014 by `Olivier Bonaventure `_ .. This file is licensed under a `creative commons licence `_ @@ -19,7 +19,7 @@ Computer Networking : Principles, Protocols and Practice, 2nd edition The development of this edition of the textbook is carried out on `github `_ - The source code of the entire textbook is written in `reStructuredText `_ and uses several `sphinx `_ features. You can browse it from `github `_ + The source code of the entire textbook is written in `reStructuredText `_ and uses several `sphinx `_ features. You can browse it from `github `_ .. You can also directly download the current ebook draft in various formats from the links below : diff --git a/book-2nd/exercises/links.rst b/book-2nd/exercises/links.rst index e5740a2..692e946 100644 --- a/book-2nd/exercises/links.rst +++ b/book-2nd/exercises/links.rst @@ -5,31 +5,31 @@ .. _packetdrill: https://code.google.com/p/packetdrill/ -.. _caida: http://www.caida.org +.. _caida: http://www.caida.org/ -.. _linux: http://www.linux.org +.. _linux: https://www.linux.org -.. _minicomputer: http://en.wikipedia.org/wiki/Minicomputer +.. _minicomputer: https://en.wikipedia.org/wiki/Minicomputer -.. _freebsd: http://www.freebsd.org +.. _freebsd: https://www.freebsd.org/ -.. _RFC: http://www.ietf.org/rfc.html +.. _RFC: https://www.ietf.org/standards/rfcs/ -.. _Unicode: http://en.wikipedia.org/wiki/Unicode +.. _Unicode: https://en.wikipedia.org/wiki/Unicode -.. _Internet drafts: http://www.ietf.org/id-info/ +.. _Internet drafts: https://www.ietf.org/id-info/ -.. _telnet: http://en.wikipedia.org/wiki/Telnet +.. _telnet: https://en.wikipedia.org/wiki/Telnet -.. _Paul Baran: http://en.wikipedia.org/wiki/Paul_Baran +.. _Paul Baran: https://en.wikipedia.org/wiki/Paul_Baran -.. _Donald Davies: http://en.wikipedia.org/wiki/Donald_Davies +.. _Donald Davies: https://en.wikipedia.org/wiki/Donald_Davies .. _Louis Pouzin: http://conferences.sigcomm.org/sigcomm/1999/pouzin.html -.. _Joseph Licklider: http://en.wikipedia.org/wiki/J._C._R._Licklider +.. _Joseph Licklider: https://en.wikipedia.org/wiki/J._C._R._Licklider -.. _Douglas Comer: http://www.cs.purdue.edu/people/comer +.. _Douglas Comer: https://www.cs.purdue.edu/people/comer .. _Larry Peterson: http://www.cs.princeton.edu/~llp/ @@ -37,7 +37,7 @@ .. _Richard Stevens: http://www.kohala.com/ -.. _Van Jacobson: http://www.parc.com/about/people/88/van-jacobson.html +.. _Van Jacobson: https://en.wikipedia.org/wiki/Van_Jacobson .. _Sally Floyd: http://www.icir.org/floyd/ @@ -47,212 +47,212 @@ .. _Keith Ross: http://cis.poly.edu/~ross/ -.. _sendmail: http://www.sendmail.org +.. _sendmail: https://www.proofpoint.com/us/sendmail-open-source/ -.. _X25: http://en.wikipedia.org/wiki/X.25 +.. _X25: https://en.wikipedia.org/wiki/X.25 .. _xorp: http://www.xorp.org -.. _quagga: http://www.quagga.net +.. _quagga: https://www.quagga.net/ .. _uIP: http://www.sics.se/~adam/uip/index.php/Main_Page -.. _IETF: http://www.ietf.org +.. _IETF: https://www.ietf.org -.. _IEEE: http://www.ieee.org +.. _IEEE: https://www.ieee.org/ -.. _ISO: http://www.iso.int +.. _ISO: https://www.iso.org -.. _python: http://www.python.org +.. _python: https://www.python.org/ .. _scapy: http://www.secdev.org/projects/scapy/ -.. _tcpdump: http://www.tcpdump.org +.. _tcpdump: https://www.tcpdump.org -.. _libpcap: http://www.tcpdump.org/ +.. _libpcap: https://www.tcpdump.org/ -.. _wireshark: http://www.wireshark.org +.. _wireshark: https://www.wireshark.org/ -.. _iperf: https://code.google.com/p/iperf/ +.. _iperf: https://github.com/esnet/iperf -.. _tcpprobe: http://www.linuxfoundation.org/en/Net:TcpProbe +.. _tcpprobe: https://www.linuxfoundation.org/en/Net:TcpProbe -.. _ASCII: http://en.wikipedia.org/wiki/ASCII +.. _ASCII: https://en.wikipedia.org/wiki/ASCII -.. _dig: http://linux.die.net/man/1/dig +.. _dig: https://linux.die.net/man/1/dig -.. _curl: http://curl.haxx.se/ +.. _curl: https://curl.haxx.se/ -.. _pine: http://en.wikipedia.org/wiki/Pine_(e-mail_client) +.. _pine: https://en.wikipedia.org/wiki/Pine_(email_client) .. _elm: http://www.instinct.org/elm/ -.. _nagios: http://www.nagios.org +.. _nagios: https://www.nagios.org/ -.. _POP: http://en.wikipedia.org/wiki/Post_Office_Protocol +.. _POP: https://en.wikipedia.org/wiki/Post_Office_Protocol -.. _IMAP: http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol +.. _IMAP: https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol .. _IANA: http://www.iana.org -.. _rfc794: http://tools.ietf.org/html/rfc794 +.. _rfc794: https://tools.ietf.org/html/rfc794 -.. _rfc821: http://tools.ietf.org/html/rfc821 +.. _rfc821: https://tools.ietf.org/html/rfc821 -.. _rfc1945: http://tools.ietf.org/html/rfc1945 +.. _rfc1945: https://tools.ietf.org/html/rfc1945 -.. _rfc1939: http://tools.ietf.org/html/rfc1939 +.. _rfc1939: https://tools.ietf.org/html/rfc1939 -.. _rfc2616: http://tools.ietf.org/html/rfc2616 +.. _rfc2616: https://tools.ietf.org/html/rfc2616 -.. _rfc5321: http://tools.ietf.org/html/rfc5321 +.. _rfc5321: https://tools.ietf.org/html/rfc5321 -.. _rfc5646: http://tools.ietf.org/html/rfc5646 +.. _rfc5646: https://tools.ietf.org/html/rfc5646 -.. _rfc1546: http://tools.ietf.org/html/rfc1546 +.. _rfc1546: https://tools.ietf.org/html/rfc1546 -.. _bind: https://www.isc.org/software/bind +.. _bind: https://www.isc.org/downloads/bind -.. _unbound: http://www.unbound.net +.. _unbound: https://www.unbound.net -.. _apache: http://www.apache.org +.. _apache: https://www.apache.org -.. _CRC: http://en.wikipedia.org/wiki/Cyclic_redundancy_check +.. _CRC: https://en.wikipedia.org/wiki/Cyclic_redundancy_check -.. _NFS: http://en.wikipedia.org/wiki/Network_File_System_(protocol) +.. _NFS: https://en.wikipedia.org/wiki/Network_File_System .. _NTP: http://www.ntp.org -.. _RPC: http://en.wikipedia.org/wiki/Remote_procedure_call +.. _RPC: https://en.wikipedia.org/wiki/Remote_procedure_call -.. _spam: http://en.wikipedia.org/wiki/Spam_(electronic) +.. _spam: https://en.wikipedia.org/wiki/Email_spam -.. _datacenter: http://en.wikipedia.org/wiki/Data_center +.. _datacenter: https://en.wikipedia.org/wiki/Data_center -.. _datacenters: http://en.wikipedia.org/wiki/Data_center +.. _datacenters: https://en.wikipedia.org/wiki/Data_center .. _`Philippe Biondi`: http://www.secdev.org/ .. _UML: http://user-mode-linux.sourceforge.net/ -.. _socket: http://en.wikipedia.org/wiki/Berkeley_sockets +.. _socket: https://en.wikipedia.org/wiki/Berkeley_sockets -.. _netfilter: http://www.netfilter.org/ +.. _netfilter: https://netfilter.org/ -.. _RIPE: http://www.ripe.net +.. _RIPE: https://www.ripe.net/ -.. _ARIN: http://www.arin.net +.. _ARIN: https://www.arin.net/ -.. _afrinic: http://www.afrinic.net +.. _afrinic: https://www.afrinic.net/ -.. _snort: http://www.snort.org/ +.. _snort: https://www.snort.org/ -.. _belnet: http://www.belnet.be +.. _belnet: https://www.belnet.be/ -.. _belgacom: http://www.belgacom.be +.. _belgacom: https://www.belgacom.be/ -.. _cisco: http://www.cisco.com +.. _cisco: https://www.cisco.com/ -.. _level3: http://www.level3.com +.. _level3: https://www.level3.com -.. _google: http://www.google.com +.. _google: https://www.google.com -.. _bing: http://www.bing.com +.. _bing: https://www.bing.com -.. _geant: http://www.geant.net +.. _geant: https://geant3plus.archive.geant.net/ -.. _abilene: http://www.internet2.edu +.. _abilene: https://www.internet2.edu/ -.. _youtube: http://www.youtube.com +.. _youtube: https://www.youtube.com/ -.. _yahoo: http://www.yahoo.com +.. _yahoo: https://www.yahoo.com -.. _microsoft: http://www.microsoft.com +.. _microsoft: https://www.microsoft.com/ -.. _facebook: http://www.facebook.com +.. _facebook: https://www.facebook.com -.. _akamai: http://www.akamai.com +.. _akamai: https://www.akamai.com .. _sprint: https://www.sprint.net/ -.. _opentransit: http://www.opentransit.net +.. _opentransit: https://wholesalesolutions.orange.com/open-transit-internet/ -.. _limelight: http://uk.limelightnetworks.com/index.php +.. _limelight: https://www.limelight.com -.. _Olivier Bonaventure: http://inl.info.ucl.ac.be/obo +.. _Olivier Bonaventure: https://inl.info.ucl.ac.be/obo -.. _Mickael Hoerdt: http://inl.info.ucl.ac.be/mhoerdt +.. _Mickael Hoerdt: https://inl.info.ucl.ac.be/mhoerdt -.. _Virginie Van den Schriek: http://inl.info.ucl.ac.be/vvandens +.. _Virginie Van den Schriek: https://inl.info.ucl.ac.be/vvandens -.. _Tim Berners-Lee: http://www.w3.org/People/Berners-Lee/ +.. _Tim Berners-Lee: https://www.w3.org/People/Berners-Lee/ -.. _Laurent Vanbever: http://inl.info.ucl.ac.be/lvanbeve +.. _Laurent Vanbever: https://inl.info.ucl.ac.be/lvanbeve -.. _Damien Saucez: http://inl.info.ucl.ac.be/dsaucez +.. _Damien Saucez: https://inl.info.ucl.ac.be/dsaucez .. _Raj Jain: http://www.cse.wustl.edu/~jain/ .. _Dah Ming Chiu: http://personal.ie.cuhk.edu.hk/~dmchiu/ -.. _SRI: http://www.sri.com +.. _SRI: https://www.sri.com/ -.. _ISO-3166: http://www.iso.org/iso/country_codes.htm +.. _ISO-3166: https://www.iso.org/iso/country_codes.htm -.. _OpenDNS: http://www.opendns.com/ +.. _OpenDNS: https://www.opendns.com/ -.. _GoogleDNS: http://code.google.com/speed/public-dns/docs/using.html +.. _GoogleDNS: http://developers.google.com/speed/public-dns/docs/using -.. _wikipedia: http://en.wikipedia.org +.. _wikipedia: https://en.wikipedia.org/ -.. _ISO-8859: http://en.wikipedia.org/wiki/ISO_8859 +.. _ISO-8859: https://en.wikipedia.org/wiki/ISO_8859 -.. _ENISA: http://www.enisa.europa.eu/ +.. _ENISA: https://www.enisa.europa.eu/ -.. _scp: http://www.openssh.org +.. _scp: https://www.openssh.com/ -.. _sftp: http://www.openssh.org +.. _sftp: https://www.openssh.com/ -.. _ssh: http://en.wikipedia.org/wiki/Secure_Shell +.. _ssh: https://en.wikipedia.org/wiki/Secure_Shell -.. _CERN: http://www.cern.ch +.. _CERN: https://www.cern.ch .. _NCSA: http://www.ncsa.illinois.edu -.. _SGML: http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language +.. _SGML: https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language -.. _W3C: http://www.w3.org +.. _W3C: https://www.w3.org .. _gzip: http://www.gzip.org -.. _Netscape: http://en.wikipedia.org/wiki/Netscape +.. _Netscape: https://en.wikipedia.org/wiki/Netscape -.. _netkit: http://www.netkit.org +.. _netkit: http://wiki.netkit.org/ -.. _netstat: http://en.wikipedia.org/wiki/Netstat +.. _netstat: https://en.wikipedia.org/wiki/Netstat .. _hping: http://www.hping.org -.. _nmap: http://nmap.org +.. _nmap: https://nmap.org/ -.. _ntop: http://www.ntop.org +.. _ntop: https://www.ntop.org/ -.. _x86: http://en.wikipedia.org/wiki/X86 +.. _x86: https://en.wikipedia.org/wiki/X86 -.. _SPARC: http://en.wikipedia.org/wiki/SPARC +.. _SPARC: https://en.wikipedia.org/wiki/SPARC -.. _sphinx: http://sphinx.pocoo.org +.. _sphinx: http://sphinx-doc.org/ -.. _inkscape: http://www.inkscape.org +.. _inkscape: https://www.inkscape.org -.. _email clients: http://en.wikipedia.org/wiki/Comparison_of_email_clients +.. _email clients: https://en.wikipedia.org/wiki/Comparison_of_email_clients -.. _ISP: http://en.wikipedia.org/wiki/Internet_service_provider +.. _ISP: https://en.wikipedia.org/wiki/Internet_service_provider -.. _Unix BSD: http://en.wikipedia.org/wiki/Berkeley_Software_Distribution +.. _Unix BSD: https://en.wikipedia.org/wiki/Berkeley_Software_Distribution -.. _troff: http://en.wikipedia.org/wiki/Troff +.. _troff: https://en.wikipedia.org/wiki/Troff -.. _LaTeX: http://en.wikipedia.org/wiki/LaTeX +.. _LaTeX: https://en.wikipedia.org/wiki/LaTeX -.. _netem: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem +.. _netem: https://www.linuxfoundation.org/collaborate/workgroups/networking/netem diff --git a/book-2nd/exercises/netkit-app.rst b/book-2nd/exercises/netkit-app.rst index 6952b98..7ff0e85 100644 --- a/book-2nd/exercises/netkit-app.rst +++ b/book-2nd/exercises/netkit-app.rst @@ -58,7 +58,7 @@ Starting a lab consists thus simply in unpacking the provided archive, going int Another useful hint is that is it possible to share files between the Netkit_ virtual machines and the local host. Virtual machines can access to the directory of the lab they belong to. This directory is mounted in their filesystem at the path `/hostlab`. -.. Note that capturing network traces can be facilitated by using the `uml_dump` extension available at http://kartoch.msi.unilim.fr/blog/?p=19 . This extension is already installed in the Netkit installation on the student lab. In order to capture the traffic exchanged on a given 'virtual LAN', you simply need to issue the command `vdump ` on the host. If you want to pipe the trace to wireshark, you can use `vdump A | wireshark -i - -k` +.. Note that capturing network traces can be facilitated by using the `uml_dump` extension available at https://netkit-ng.github.io/umldump.html . This extension is already installed in the Netkit installation on the student lab. In order to capture the traffic exchanged on a given 'virtual LAN', you simply need to issue the command `vdump ` on the host. If you want to pipe the trace to wireshark, you can use `vdump A | wireshark -i - -k` @@ -169,7 +169,7 @@ Enjoy ! .. rubric:: Footnotes -.. [#fimage] The image that we use is a custom Netkit_ filesystem with a recent 64 bits Linux kernel. If you wish to test it on your own Linux machine, you can install Netkit_ as explained on http://wiki.netkit.org and download the filesystem and kernel images from http://cnp3book.info.ucl.ac.be/netkit/netkit-images.zip Note that this archive has a compressed size of more than 1 GByte ! +.. [#fimage] The image that we use is a custom Netkit_ filesystem with a recent 64 bits Linux kernel. If you wish to test it on your own Linux machine, you can install Netkit_ as explained on http://wiki.netkit.org/ and download the filesystem and kernel images from http://cnp3book.info.ucl.ac.be/netkit/netkit-images.zip Note that this archive has a compressed size of more than 1 GByte ! .. [#fdnslab] The files used by the DNS lab are available from :download:`/netkit/netkit-lab_dns.zip` if you would like to use them on your laptop. diff --git a/book-2nd/exercises/netkit-congestion.rst b/book-2nd/exercises/netkit-congestion.rst index 82a5020..2cab6ae 100644 --- a/book-2nd/exercises/netkit-congestion.rst +++ b/book-2nd/exercises/netkit-congestion.rst @@ -36,7 +36,7 @@ During this lab, you will use three software packages that are very useful to un iperf_ (version 3) is a frequently used network performance testing tool. It is often used by network administrators who need to test the performance of a network between two hosts. To use iperf_, you first need to start the server process by using ``iperf -s`` on host ``server`` on the lab. The server listens on ``5201`` for measurements requests coming from the server. When a measurement starts, the client sends data to the server. -The `iperf manpage `_ lists all the options of the server and the client. The most interesting ones are : +The `iperf manpage `_ lists all the options of the server and the client. The most interesting ones are : - ``-6`` forces the utilisation of IPv6 - ``--udp`` uses UDP for the measurements instead of TCP which is the default diff --git a/book-2nd/exercises/netkit-ipv6-rtg.rst b/book-2nd/exercises/netkit-ipv6-rtg.rst index 2279f40..189fabe 100644 --- a/book-2nd/exercises/netkit-ipv6-rtg.rst +++ b/book-2nd/exercises/netkit-ipv6-rtg.rst @@ -35,7 +35,7 @@ Some ``tcpdump`` options (for more details and options, check ``man tcpdump``): ``-s`` allows to capture the entire packets (not only the first 68 bytes). -Wireshark_ also allows to capture packets but provides a graphical user interface that is useful to analyse long packet traces. Wireshark is installed on the Linux machines in the lab and can be downloaded from http://www.wireshark.org +Wireshark_ also allows to capture packets but provides a graphical user interface that is useful to analyse long packet traces. Wireshark is installed on the Linux machines in the lab and can be downloaded from https://www.wireshark.org/ .. note:: diff --git a/book-2nd/exercises/netkit-ipv6.rst b/book-2nd/exercises/netkit-ipv6.rst index 0181a00..ad88f4c 100644 --- a/book-2nd/exercises/netkit-ipv6.rst +++ b/book-2nd/exercises/netkit-ipv6.rst @@ -248,7 +248,7 @@ To demonstrate your understanding of ICMPv6, prepare a lab with a few hosts and .. rubric:: Footnotes -.. [#fipcommand] You can use the ``ip`` command instead of :manpage:`ifconfig(8)` or :manpage:`route(8)`. See the `Linux IPv6 Howto `_ for additional information. +.. [#fipcommand] You can use the ``ip`` command instead of :manpage:`ifconfig(8)` or :manpage:`route(8)`. See the `Linux IPv6 Howto `_ for additional information. .. include:: /links.rst diff --git a/book-2nd/exercises/netkit-tcp.rst b/book-2nd/exercises/netkit-tcp.rst index 6e2d96c..29a943c 100644 --- a/book-2nd/exercises/netkit-tcp.rst +++ b/book-2nd/exercises/netkit-tcp.rst @@ -175,7 +175,7 @@ The last three services were popular services installed on all TCP/IP hosts. How ``daytime`` is a very simple protocol that allows to query the current time on the server. The format of the response is described in :rfc:`867`. -Several tools allow to send information over UDP and TCP. :manpage:`telnet` is very useful to interact with TCP servers. :manpage:`nc` (or ``netcat``) is another tool which can be very useful when debugging network problems. It allows to easily contact servers over UDP or TCP, but can also be used to create simple but powerful servers from the command line. Several versions of ``nc`` or ``netcat`` have been written. See http://en.wikipedia.org/wiki/Netcat for additional details. +Several tools allow to send information over UDP and TCP. :manpage:`telnet` is very useful to interact with TCP servers. :manpage:`nc` (or ``netcat``) is another tool which can be very useful when debugging network problems. It allows to easily contact servers over UDP or TCP, but can also be used to create simple but powerful servers from the command line. Several versions of ``nc`` or ``netcat`` have been written. See https://en.wikipedia.org/wiki/Netcat for additional details. Start ``tcpdump`` on ``router`` to capture all UDP segments. The ``tcpdump`` manpage will show you how to only capture UDP segments. @@ -224,7 +224,7 @@ Start by using :manpage:`tcpdump` on `router` to capture all the packets sent on 6. The TCP stack on `Client1` was configured to disable all recent TCP extensions, including Window Scale defined in :rfc:`1323`, Timestamps defined in :rfc:`1323` and Selective acknowledgements defined in :rfc:`2018`. Enable the Timestamp option by setting the configuration variable ``net.ipv4.tcp_timestamps`` to 1 using ``sysctl -w`` and verify with :manpage:`tcpdump(8)` that this extension is actually used. -7. The main benefit of TCP is that it can react to delays, losses and packet duplications. In a netkit lab, there are usually no delay and no losses or duplications. Fortunately, various tools can be used on the Linux kernel to emulate various network properties. `Netem `_ is one of these tools. It can be used on a router to add delay, losses or duplications when a router sends packets. Using the commands described in http://www.linuxfoundation.org/collaborate/workgroups/networking/netem, configure the interface between `router` and `websever` with : +7. The main benefit of TCP is that it can react to delays, losses and packet duplications. In a netkit lab, there are usually no delay and no losses or duplications. Fortunately, various tools can be used on the Linux kernel to emulate various network properties. `Netem `_ is one of these tools. It can be used on a router to add delay, losses or duplications when a router sends packets. Using the commands described in https://www.linuxfoundation.org/collaborate/workgroups/networking/netem, configure the interface between `router` and `websever` with : #. A fixed delay of 100 milliseconds #. Packet losses of 10%, 50% and 95% diff --git a/book-2nd/exercises/reliable.rst b/book-2nd/exercises/reliable.rst index 834d59a..c4ebe63 100644 --- a/book-2nd/exercises/reliable.rst +++ b/book-2nd/exercises/reliable.rst @@ -54,9 +54,9 @@ Reliable protocols depend on error detection algorithms to detect transmission e 1. Reliable protocols rely on different types of checksums to verify whether frames have been affected by transmission errors. The most frequently used checksums are : - - the Internet checksum used by UDP, TCP and other Internet protocols which is defined in :rfc:`1071` and implemented in various libraries. See e.g. http://ilab.cs.byu.edu/cs460/code/ftp/ichecksum.py for a python_ implementation - - the 16 bits or the 32 bits Cyclical Redundancy Checks (CRC) that are often used on disks, in zip archives and in datalink layer protocols. See http://rosettacode.org/wiki/CRC-32 for CRC-32 implementations in various languages. - - the Fletcher checksum [Fletcher1982]_, see http://drdobbs.com/database/184408761 for implementation details + - the Internet checksum used by UDP, TCP and other Internet protocols which is defined in :rfc:`1071` and implemented in various libraries. See e.g. http://www.bitforestinfo.com/2018/01/python-codes-to-calculate-ipv4-checksum.html for a python_ implementation + - the 16 bits or the 32 bits Cyclical Redundancy Checks (CRC) that are often used on disks, in zip archives and in datalink layer protocols. See https://rosettacode.org/wiki/CRC-32 for CRC-32 implementations in various languages. + - the Fletcher checksum [Fletcher1982]_, see http://www.drdobbs.com/database/fletchers-checksum/184408761 for implementation details By using your knowledge of the Internet checksum, can you find a transmission error that will not be detected by this checksum ? @@ -65,9 +65,9 @@ Reliable protocols depend on error detection algorithms to detect transmission e - all errors that affect an odd number of bits - all errors that affect a sequence of bits which is shorter than the length of the CRC - Implement a small software that computes the CRC-32 for a text file. Then, modify the contents of the file to change an even number of bits or an odd number of bits inside the file. When modifying the file, remember that an ASCII file is composed of 8 bits characters that are encoded by using the ASCII table that you can find at : http://en.wikipedia.org/wiki/ASCII . You can also write a small program that produces binary files that are a small variation of each other. + Implement a small software that computes the CRC-32 for a text file. Then, modify the contents of the file to change an even number of bits or an odd number of bits inside the file. When modifying the file, remember that an ASCII file is composed of 8 bits characters that are encoded by using the ASCII table that you can find at : https://en.wikipedia.org/wiki/ASCII . You can also write a small program that produces binary files that are a small variation of each other. -3. Checksums and CRCs should not be confused with secure hash functions such as MD5 defined in :rfc:`1321` or SHA-1 described in :rfc:`4634`. Secure hash functions are used to ensure that files or sometimes packets/segments have not been modified. Secure hash functions aim at detecting malicious changes while checksums and CRCs only detect random transmission errors. Use the `shasum `_ or `md5sum `_ programs on Linux to perform the same tests as above. +3. Checksums and CRCs should not be confused with secure hash functions such as MD5 defined in :rfc:`1321` or SHA-1 described in :rfc:`4634`. Secure hash functions are used to ensure that files or sometimes packets/segments have not been modified. Secure hash functions aim at detecting malicious changes while checksums and CRCs only detect random transmission errors. Use the `shasum `_ or `md5sum `_ programs on Linux to perform the same tests as above. diff --git a/book-2nd/glossary.rst b/book-2nd/glossary.rst index b6dd107..ae57f79 100644 --- a/book-2nd/glossary.rst +++ b/book-2nd/glossary.rst @@ -35,16 +35,16 @@ Glossary Wide Area Network ISO - The International Standardization Organisation is an agency of the United Nations that is based in Geneva and develop standards on various topics. Within ISO, country representatives vote to approve or reject standards. Most of the work on the development of ISO standards is done in expert working groups. Additional information about ISO may be obtained from http://www.iso.int + The International Standardization Organisation is an agency of the United Nations that is based in Geneva and develop standards on various topics. Within ISO, country representatives vote to approve or reject standards. Most of the work on the development of ISO standards is done in expert working groups. Additional information about ISO may be obtained from https://www.iso.org ITU - The International Telecommunication Union is a United Nation's agency whose purpose is to develop standards for the telecommunication industry. It was initially created to standardise the basic telephone system but expanded later towards data networks. The work within ITU is mainly done by network specialists from the telecommunication industry (operators and vendors). See http://www.itu.int for more information + The International Telecommunication Union is a United Nation's agency whose purpose is to develop standards for the telecommunication industry. It was initially created to standardise the basic telephone system but expanded later towards data networks. The work within ITU is mainly done by network specialists from the telecommunication industry (operators and vendors). See https://www.itu.int/ for more information IETF - The Internet Engineering Task Force is a non-profit organisation that develops the standards for the protocols used in the Internet. The IETF mainly covers the transport and network layers. Several application layer protocols are also standardised within the IETF. The work in the IETF is organised in working groups. Most of the work is performed by exchanging emails and there are three IETF meetings every year. Participation is open to anyone. See http://www.ietf.org + The Internet Engineering Task Force is a non-profit organisation that develops the standards for the protocols used in the Internet. The IETF mainly covers the transport and network layers. Several application layer protocols are also standardised within the IETF. The work in the IETF is organised in working groups. Most of the work is performed by exchanging emails and there are three IETF meetings every year. Participation is open to anyone. See https://www.ietf.org W3C - The world wide web consortium was created to standardise the protocols and mechanisms used in the global www. It is thus focused on a subset of the application layer. See http://www.w3c.org + The world wide web consortium was created to standardise the protocols and mechanisms used in the global www. It is thus focused on a subset of the application layer. See https://www.w3.org/ ARPANET The Advanced Research Project Agency (ARPA) Network is a network that was built by network scientists in USA with funding from the ARPA of the US Ministry of Defense. ARPANET is considered as the grandfather of today's Internet. @@ -150,7 +150,7 @@ Glossary Exterior Gateway Protocol. Synonym of interdomain routing protocol IXP - Internet eXchange Point. A location where routers belonging to different domains are attached to the same Local Area Network to establish peering sessions and exchange packets. See http://www.euro-ix.net/ or http://en.wikipedia.org/wiki/List_of_Internet_exchange_points_by_size for a partial list of IXPs. + Internet eXchange Point. A location where routers belonging to different domains are attached to the same Local Area Network to establish peering sessions and exchange packets. See https://www.euro-ix.net/ or https://en.wikipedia.org/wiki/List_of_Internet_exchange_points_by_size for a partial list of IXPs. BGP The Border Gateway Protocol is the interdomain routing protocol used in the global Internet. @@ -262,10 +262,10 @@ Glossary The Internet Message Access Protocol (IMAP), defined in :rfc:`3501`, is an application-level protocol that allows a client to access and manipulate the emails stored on a server. With IMAP, the email messages remain on the server and are not downloaded on the client. HTML - The HyperText Markup Language specifies the structure and the syntax of the documents that are exchanged on the world wide web. HTML is maintained by the `HTML working group `_ of the :term:`W3C` + The HyperText Markup Language specifies the structure and the syntax of the documents that are exchanged on the world wide web. HTML is maintained by the `HTML working group `_ of the :term:`W3C` XML - The eXtensible Markup Language (XML) is a flexible text format derived from SGML. It was originally designed for the electronic publishing industry but is now used by a wide variety of applications that need to exchange structured data. The XML specifications are maintained by `several working groups `_ of the :term:`W3C` + The eXtensible Markup Language (XML) is a flexible text format derived from SGML. It was originally designed for the electronic publishing industry but is now used by a wide variety of applications that need to exchange structured data. The XML specifications are maintained by `several working groups `_ of the :term:`W3C` ARP The Address Resolution Protocol is a protocol used by IPv4 devices to obtain the datalink layer address that corresponds to an IPv4 address on the local area network. ARP is defined in :rfc:`826` @@ -274,13 +274,13 @@ Glossary The International Standardization Organisation minicomputer - A minicomputer is a multi-user system that was typically used in the 1960s/1970s to serve departments. See the corresponding wikipedia article for additional information : http://en.wikipedia.org/wiki/Minicomputer + A minicomputer is a multi-user system that was typically used in the 1960s/1970s to serve departments. See the corresponding wikipedia article for additional information : https://en.wikipedia.org/wiki/Minicomputer MIME document A MIME document is a document, encoded by using the :term:`MIME` format. modem - A modem (modulator-demodulator) is a device that encodes (resp. decodes) digital information by modulating (resp. demodulating) an analog signal. Modems are frequently used to transmit digital information over telephone lines and radio links. See http://en.wikipedia.org/wiki/Modem for a survey of various types of modems + A modem (modulator-demodulator) is a device that encodes (resp. decodes) digital information by modulating (resp. demodulating) an analog signal. Modems are frequently used to transmit digital information over telephone lines and radio links. See https://en.wikipedia.org/wiki/Modem for a survey of various types of modems dial-up line A synonym for a regular telephone line, i.e. a line that can be used to dial any telephone number. @@ -289,19 +289,19 @@ Glossary A telephone line that is permanently available between two endpoints. ISO-3166 - An :term:`ISO` standard that defines codes to represent countries and their subdivisions. See http://www.iso.org/iso/country_codes.htm + An :term:`ISO` standard that defines codes to represent countries and their subdivisions. See https://www.iso.org/iso/country_codes.htm IANA The Internet Assigned Numbers Authority (IANA) is responsible for the coordination of the DNS Root, IP addressing, and other Internet protocol resources vnc - A networked application that allows to remotely access a computer's Graphical User Interface. See http://en.wikipedia.org/wiki/Virtual_Network_Computing + A networked application that allows to remotely access a computer's Graphical User Interface. See https://en.wikipedia.org/wiki/Virtual_Network_Computing ISP An Internet Service Provider, i.e. a network that provides Internet access to its clients. network-byte order - Internet protocol allow to transport sequences of bytes. These sequences of bytes are sufficient to carry ASCII characters. The network-byte order refers to the Big-Endian encoding for 16 and 32 bits integer. See http://en.wikipedia.org/wiki/Endianness + Internet protocol allow to transport sequences of bytes. These sequences of bytes are sufficient to carry ASCII characters. The network-byte order refers to the Big-Endian encoding for 16 and 32 bits integer. See https://en.wikipedia.org/wiki/Endianness standard query For DNS servers and resolvers, a standard query is a query for a `A` or a `AAAA` record. Such a query typically returns an IP address. diff --git a/book-2nd/index.rst b/book-2nd/index.rst index 0bc63a4..078e57e 100644 --- a/book-2nd/index.rst +++ b/book-2nd/index.rst @@ -1,4 +1,4 @@ -.. Copyright |copy| 2013,2014 by `Olivier Bonaventure `_ +.. Copyright |copy| 2013,2014 by `Olivier Bonaventure `_ .. This file is licensed under a `creative commons licence `_ @@ -19,7 +19,7 @@ Computer Networking : Principles, Protocols and Practice, 2nd edition The development of this edition of the textbook is carried out on `github `_ - The source code of the entire textbook is written in `reStructuredText `_ and uses several `sphinx `_ features. You can browse it from `github `_ + The source code of the entire textbook is written in `reStructuredText `_ and uses several `sphinx `_ features. You can browse it from `github `_ .. You can also directly download the current ebook draft in various formats from the links below : diff --git a/book-2nd/links.rst b/book-2nd/links.rst index e5740a2..692e946 100644 --- a/book-2nd/links.rst +++ b/book-2nd/links.rst @@ -5,31 +5,31 @@ .. _packetdrill: https://code.google.com/p/packetdrill/ -.. _caida: http://www.caida.org +.. _caida: http://www.caida.org/ -.. _linux: http://www.linux.org +.. _linux: https://www.linux.org -.. _minicomputer: http://en.wikipedia.org/wiki/Minicomputer +.. _minicomputer: https://en.wikipedia.org/wiki/Minicomputer -.. _freebsd: http://www.freebsd.org +.. _freebsd: https://www.freebsd.org/ -.. _RFC: http://www.ietf.org/rfc.html +.. _RFC: https://www.ietf.org/standards/rfcs/ -.. _Unicode: http://en.wikipedia.org/wiki/Unicode +.. _Unicode: https://en.wikipedia.org/wiki/Unicode -.. _Internet drafts: http://www.ietf.org/id-info/ +.. _Internet drafts: https://www.ietf.org/id-info/ -.. _telnet: http://en.wikipedia.org/wiki/Telnet +.. _telnet: https://en.wikipedia.org/wiki/Telnet -.. _Paul Baran: http://en.wikipedia.org/wiki/Paul_Baran +.. _Paul Baran: https://en.wikipedia.org/wiki/Paul_Baran -.. _Donald Davies: http://en.wikipedia.org/wiki/Donald_Davies +.. _Donald Davies: https://en.wikipedia.org/wiki/Donald_Davies .. _Louis Pouzin: http://conferences.sigcomm.org/sigcomm/1999/pouzin.html -.. _Joseph Licklider: http://en.wikipedia.org/wiki/J._C._R._Licklider +.. _Joseph Licklider: https://en.wikipedia.org/wiki/J._C._R._Licklider -.. _Douglas Comer: http://www.cs.purdue.edu/people/comer +.. _Douglas Comer: https://www.cs.purdue.edu/people/comer .. _Larry Peterson: http://www.cs.princeton.edu/~llp/ @@ -37,7 +37,7 @@ .. _Richard Stevens: http://www.kohala.com/ -.. _Van Jacobson: http://www.parc.com/about/people/88/van-jacobson.html +.. _Van Jacobson: https://en.wikipedia.org/wiki/Van_Jacobson .. _Sally Floyd: http://www.icir.org/floyd/ @@ -47,212 +47,212 @@ .. _Keith Ross: http://cis.poly.edu/~ross/ -.. _sendmail: http://www.sendmail.org +.. _sendmail: https://www.proofpoint.com/us/sendmail-open-source/ -.. _X25: http://en.wikipedia.org/wiki/X.25 +.. _X25: https://en.wikipedia.org/wiki/X.25 .. _xorp: http://www.xorp.org -.. _quagga: http://www.quagga.net +.. _quagga: https://www.quagga.net/ .. _uIP: http://www.sics.se/~adam/uip/index.php/Main_Page -.. _IETF: http://www.ietf.org +.. _IETF: https://www.ietf.org -.. _IEEE: http://www.ieee.org +.. _IEEE: https://www.ieee.org/ -.. _ISO: http://www.iso.int +.. _ISO: https://www.iso.org -.. _python: http://www.python.org +.. _python: https://www.python.org/ .. _scapy: http://www.secdev.org/projects/scapy/ -.. _tcpdump: http://www.tcpdump.org +.. _tcpdump: https://www.tcpdump.org -.. _libpcap: http://www.tcpdump.org/ +.. _libpcap: https://www.tcpdump.org/ -.. _wireshark: http://www.wireshark.org +.. _wireshark: https://www.wireshark.org/ -.. _iperf: https://code.google.com/p/iperf/ +.. _iperf: https://github.com/esnet/iperf -.. _tcpprobe: http://www.linuxfoundation.org/en/Net:TcpProbe +.. _tcpprobe: https://www.linuxfoundation.org/en/Net:TcpProbe -.. _ASCII: http://en.wikipedia.org/wiki/ASCII +.. _ASCII: https://en.wikipedia.org/wiki/ASCII -.. _dig: http://linux.die.net/man/1/dig +.. _dig: https://linux.die.net/man/1/dig -.. _curl: http://curl.haxx.se/ +.. _curl: https://curl.haxx.se/ -.. _pine: http://en.wikipedia.org/wiki/Pine_(e-mail_client) +.. _pine: https://en.wikipedia.org/wiki/Pine_(email_client) .. _elm: http://www.instinct.org/elm/ -.. _nagios: http://www.nagios.org +.. _nagios: https://www.nagios.org/ -.. _POP: http://en.wikipedia.org/wiki/Post_Office_Protocol +.. _POP: https://en.wikipedia.org/wiki/Post_Office_Protocol -.. _IMAP: http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol +.. _IMAP: https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol .. _IANA: http://www.iana.org -.. _rfc794: http://tools.ietf.org/html/rfc794 +.. _rfc794: https://tools.ietf.org/html/rfc794 -.. _rfc821: http://tools.ietf.org/html/rfc821 +.. _rfc821: https://tools.ietf.org/html/rfc821 -.. _rfc1945: http://tools.ietf.org/html/rfc1945 +.. _rfc1945: https://tools.ietf.org/html/rfc1945 -.. _rfc1939: http://tools.ietf.org/html/rfc1939 +.. _rfc1939: https://tools.ietf.org/html/rfc1939 -.. _rfc2616: http://tools.ietf.org/html/rfc2616 +.. _rfc2616: https://tools.ietf.org/html/rfc2616 -.. _rfc5321: http://tools.ietf.org/html/rfc5321 +.. _rfc5321: https://tools.ietf.org/html/rfc5321 -.. _rfc5646: http://tools.ietf.org/html/rfc5646 +.. _rfc5646: https://tools.ietf.org/html/rfc5646 -.. _rfc1546: http://tools.ietf.org/html/rfc1546 +.. _rfc1546: https://tools.ietf.org/html/rfc1546 -.. _bind: https://www.isc.org/software/bind +.. _bind: https://www.isc.org/downloads/bind -.. _unbound: http://www.unbound.net +.. _unbound: https://www.unbound.net -.. _apache: http://www.apache.org +.. _apache: https://www.apache.org -.. _CRC: http://en.wikipedia.org/wiki/Cyclic_redundancy_check +.. _CRC: https://en.wikipedia.org/wiki/Cyclic_redundancy_check -.. _NFS: http://en.wikipedia.org/wiki/Network_File_System_(protocol) +.. _NFS: https://en.wikipedia.org/wiki/Network_File_System .. _NTP: http://www.ntp.org -.. _RPC: http://en.wikipedia.org/wiki/Remote_procedure_call +.. _RPC: https://en.wikipedia.org/wiki/Remote_procedure_call -.. _spam: http://en.wikipedia.org/wiki/Spam_(electronic) +.. _spam: https://en.wikipedia.org/wiki/Email_spam -.. _datacenter: http://en.wikipedia.org/wiki/Data_center +.. _datacenter: https://en.wikipedia.org/wiki/Data_center -.. _datacenters: http://en.wikipedia.org/wiki/Data_center +.. _datacenters: https://en.wikipedia.org/wiki/Data_center .. _`Philippe Biondi`: http://www.secdev.org/ .. _UML: http://user-mode-linux.sourceforge.net/ -.. _socket: http://en.wikipedia.org/wiki/Berkeley_sockets +.. _socket: https://en.wikipedia.org/wiki/Berkeley_sockets -.. _netfilter: http://www.netfilter.org/ +.. _netfilter: https://netfilter.org/ -.. _RIPE: http://www.ripe.net +.. _RIPE: https://www.ripe.net/ -.. _ARIN: http://www.arin.net +.. _ARIN: https://www.arin.net/ -.. _afrinic: http://www.afrinic.net +.. _afrinic: https://www.afrinic.net/ -.. _snort: http://www.snort.org/ +.. _snort: https://www.snort.org/ -.. _belnet: http://www.belnet.be +.. _belnet: https://www.belnet.be/ -.. _belgacom: http://www.belgacom.be +.. _belgacom: https://www.belgacom.be/ -.. _cisco: http://www.cisco.com +.. _cisco: https://www.cisco.com/ -.. _level3: http://www.level3.com +.. _level3: https://www.level3.com -.. _google: http://www.google.com +.. _google: https://www.google.com -.. _bing: http://www.bing.com +.. _bing: https://www.bing.com -.. _geant: http://www.geant.net +.. _geant: https://geant3plus.archive.geant.net/ -.. _abilene: http://www.internet2.edu +.. _abilene: https://www.internet2.edu/ -.. _youtube: http://www.youtube.com +.. _youtube: https://www.youtube.com/ -.. _yahoo: http://www.yahoo.com +.. _yahoo: https://www.yahoo.com -.. _microsoft: http://www.microsoft.com +.. _microsoft: https://www.microsoft.com/ -.. _facebook: http://www.facebook.com +.. _facebook: https://www.facebook.com -.. _akamai: http://www.akamai.com +.. _akamai: https://www.akamai.com .. _sprint: https://www.sprint.net/ -.. _opentransit: http://www.opentransit.net +.. _opentransit: https://wholesalesolutions.orange.com/open-transit-internet/ -.. _limelight: http://uk.limelightnetworks.com/index.php +.. _limelight: https://www.limelight.com -.. _Olivier Bonaventure: http://inl.info.ucl.ac.be/obo +.. _Olivier Bonaventure: https://inl.info.ucl.ac.be/obo -.. _Mickael Hoerdt: http://inl.info.ucl.ac.be/mhoerdt +.. _Mickael Hoerdt: https://inl.info.ucl.ac.be/mhoerdt -.. _Virginie Van den Schriek: http://inl.info.ucl.ac.be/vvandens +.. _Virginie Van den Schriek: https://inl.info.ucl.ac.be/vvandens -.. _Tim Berners-Lee: http://www.w3.org/People/Berners-Lee/ +.. _Tim Berners-Lee: https://www.w3.org/People/Berners-Lee/ -.. _Laurent Vanbever: http://inl.info.ucl.ac.be/lvanbeve +.. _Laurent Vanbever: https://inl.info.ucl.ac.be/lvanbeve -.. _Damien Saucez: http://inl.info.ucl.ac.be/dsaucez +.. _Damien Saucez: https://inl.info.ucl.ac.be/dsaucez .. _Raj Jain: http://www.cse.wustl.edu/~jain/ .. _Dah Ming Chiu: http://personal.ie.cuhk.edu.hk/~dmchiu/ -.. _SRI: http://www.sri.com +.. _SRI: https://www.sri.com/ -.. _ISO-3166: http://www.iso.org/iso/country_codes.htm +.. _ISO-3166: https://www.iso.org/iso/country_codes.htm -.. _OpenDNS: http://www.opendns.com/ +.. _OpenDNS: https://www.opendns.com/ -.. _GoogleDNS: http://code.google.com/speed/public-dns/docs/using.html +.. _GoogleDNS: http://developers.google.com/speed/public-dns/docs/using -.. _wikipedia: http://en.wikipedia.org +.. _wikipedia: https://en.wikipedia.org/ -.. _ISO-8859: http://en.wikipedia.org/wiki/ISO_8859 +.. _ISO-8859: https://en.wikipedia.org/wiki/ISO_8859 -.. _ENISA: http://www.enisa.europa.eu/ +.. _ENISA: https://www.enisa.europa.eu/ -.. _scp: http://www.openssh.org +.. _scp: https://www.openssh.com/ -.. _sftp: http://www.openssh.org +.. _sftp: https://www.openssh.com/ -.. _ssh: http://en.wikipedia.org/wiki/Secure_Shell +.. _ssh: https://en.wikipedia.org/wiki/Secure_Shell -.. _CERN: http://www.cern.ch +.. _CERN: https://www.cern.ch .. _NCSA: http://www.ncsa.illinois.edu -.. _SGML: http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language +.. _SGML: https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language -.. _W3C: http://www.w3.org +.. _W3C: https://www.w3.org .. _gzip: http://www.gzip.org -.. _Netscape: http://en.wikipedia.org/wiki/Netscape +.. _Netscape: https://en.wikipedia.org/wiki/Netscape -.. _netkit: http://www.netkit.org +.. _netkit: http://wiki.netkit.org/ -.. _netstat: http://en.wikipedia.org/wiki/Netstat +.. _netstat: https://en.wikipedia.org/wiki/Netstat .. _hping: http://www.hping.org -.. _nmap: http://nmap.org +.. _nmap: https://nmap.org/ -.. _ntop: http://www.ntop.org +.. _ntop: https://www.ntop.org/ -.. _x86: http://en.wikipedia.org/wiki/X86 +.. _x86: https://en.wikipedia.org/wiki/X86 -.. _SPARC: http://en.wikipedia.org/wiki/SPARC +.. _SPARC: https://en.wikipedia.org/wiki/SPARC -.. _sphinx: http://sphinx.pocoo.org +.. _sphinx: http://sphinx-doc.org/ -.. _inkscape: http://www.inkscape.org +.. _inkscape: https://www.inkscape.org -.. _email clients: http://en.wikipedia.org/wiki/Comparison_of_email_clients +.. _email clients: https://en.wikipedia.org/wiki/Comparison_of_email_clients -.. _ISP: http://en.wikipedia.org/wiki/Internet_service_provider +.. _ISP: https://en.wikipedia.org/wiki/Internet_service_provider -.. _Unix BSD: http://en.wikipedia.org/wiki/Berkeley_Software_Distribution +.. _Unix BSD: https://en.wikipedia.org/wiki/Berkeley_Software_Distribution -.. _troff: http://en.wikipedia.org/wiki/Troff +.. _troff: https://en.wikipedia.org/wiki/Troff -.. _LaTeX: http://en.wikipedia.org/wiki/LaTeX +.. _LaTeX: https://en.wikipedia.org/wiki/LaTeX -.. _netem: http://www.linuxfoundation.org/collaborate/workgroups/networking/netem +.. _netem: https://www.linuxfoundation.org/collaborate/workgroups/networking/netem diff --git a/book-2nd/preface.rst b/book-2nd/preface.rst index d6b5b5c..8d3be00 100644 --- a/book-2nd/preface.rst +++ b/book-2nd/preface.rst @@ -10,13 +10,13 @@ This is the current draft of the second edition of the `Computer Networking : Pr .. This textbook came from a frustration of its main author. Many authors chose to write a textbook because there are no textbooks in their field or because they are not satisfied with the existing textbooks. This frustration has produced several excellent textbooks in the networking community. At a time when networking textbooks were mainly theoretical, `Douglas Comer`_ chose to write a textbook entirely focused on the TCP/IP protocol suite [Comer1988]_, a difficult choice at that time. He later extended his textbook by describing a complete TCP/IP implementation, adding practical considerations to the theoretical descriptions in [Comer1988]_. `Richard Stevens`_ approached the Internet like an explorer and explained the operation of protocols by looking at all the packets that were exchanged on the wire [Stevens1994]_. `Jim Kurose`_ and `Keith Ross`_ reinvented the networking textbooks by starting from the applications that the students use and later explained the Internet protocols by removing one layer after the other [KuroseRoss09]_. -.. The frustrations that motivated this book are different. When I started to teach networking in the late 1990s, students were already Internet users, but their usage was limited. Students were still using reference textbooks and spent time in the library. Today's students are completely different. They are avid and experimented web users who find lots of information on the web. This is a positive attitude since they are probably more curious than their predecessors. Thanks to the information that is available on the Internet, they can check or obtain additional information about the topics explained by their teachers. This abundant information creates several challenges for a teacher. Until the end of the nineteenth century, a teacher was by definition more knowledgeable than his students and it was very difficult for the students to verify the lessons given by their teachers. Today, given the amount of information available at the fingertips of each student through the Internet, verifying a lesson or getting more information about a given topic is sometimes only a few clicks away. Websites such as `wikipedia `_ provide lots of information on various topics and students often consult them. Unfortunately, the organisation of the information on these websites is not well suited to allow students to learn from them. Furthermore, there are huge differences in the quality and depth of the information that is available for different topics. +.. The frustrations that motivated this book are different. When I started to teach networking in the late 1990s, students were already Internet users, but their usage was limited. Students were still using reference textbooks and spent time in the library. Today's students are completely different. They are avid and experimented web users who find lots of information on the web. This is a positive attitude since they are probably more curious than their predecessors. Thanks to the information that is available on the Internet, they can check or obtain additional information about the topics explained by their teachers. This abundant information creates several challenges for a teacher. Until the end of the nineteenth century, a teacher was by definition more knowledgeable than his students and it was very difficult for the students to verify the lessons given by their teachers. Today, given the amount of information available at the fingertips of each student through the Internet, verifying a lesson or getting more information about a given topic is sometimes only a few clicks away. Websites such as `wikipedia `_ provide lots of information on various topics and students often consult them. Unfortunately, the organisation of the information on these websites is not well suited to allow students to learn from them. Furthermore, there are huge differences in the quality and depth of the information that is available for different topics. .. The second reason is that the computer networking community is a strong participant in the open-source movement. Today, there are high-quality and widely used open-source implementations for most networking protocols. This includes the TCP/IP implementations that are part of linux_, freebsd_ or the uIP_ stack running on 8bits controllers, but also servers such as bind_, unbound_, apache_ or sendmail_ and implementations of routing protocols such as xorp_ or quagga_ . Furthermore, the documents that define almost all of the Internet protocols have been developed within the Internet Engineering Task Force (IETF_) using an open process. The IETF publishes its protocol specifications in the publicly available RFC_ and new proposals are described in `Internet drafts`_. .. This open textbook aims to fill the gap between the open-source implementations and the open-source network specifications by providing a detailed but pedagogical description of the key principles that guide the operation of the Internet. The book is released under a `creative commons licence `_. Such an open-source license is motivated by two reasons. The first is that we hope that this will allow many students to use the book to learn computer networks. The second is that I hope that other teachers will reuse, adapt and improve it. Time will tell if it is possible to build a community of contributors to improve and develop the book further. As a starting point, the first release contains all the material for a one-semester first upper undergraduate or a graduate networking course. -The first edition of this ebook has been written by `Olivier Bonaventure`_. `Laurent Vanbever`_, `Virginie Van den Schriek`_, `Damien Saucez`_ and `Mickael Hoerdt`_ have contributed to exercises. Pierre Reinbold designed the icons used to represent switches and Nipaul Long has redrawn many figures in the SVG format. Stephane Bortzmeyer sent many suggestions and corrections to the text. Additional information about the textbook is available at http://inl.info.ucl.ac.be/CNP3 +The first edition of this ebook has been written by `Olivier Bonaventure`_. `Laurent Vanbever`_, `Virginie Van den Schriek`_, `Damien Saucez`_ and `Mickael Hoerdt`_ have contributed to exercises. Pierre Reinbold designed the icons used to represent switches and Nipaul Long has redrawn many figures in the SVG format. Stephane Bortzmeyer sent many suggestions and corrections to the text. Additional information about the textbook is available at https://inl.info.ucl.ac.be/CNP3 .. The overall objective of the book is to explain the principles and the protocols used in computer networks such as the Internet and also provide the students with some intuition about the important practical problems that often arise. The textbook was developed for the .. The course follows a hybrid problem-based learning (:term:`PBL`) approach. During each week, the students follow a 2 hours theoretical course that describes the principles and some of the protocols. They also receive a set of small problems that they need to solve in groups. These problems are designed to reinforce the student's knowledge but also to explore the practical problems that arise in real networks by allowing the students to perform experiments by writing prototype networking code. @@ -24,15 +24,15 @@ The first edition of this ebook has been written by `Olivier Bonaventure`_. `Lau .. note:: - `Computer Networking : Principles, Protocols and Practice`, (c) 2011, `Olivier Bonaventure `_, `Universite catholique de Louvain `_ (Belgium) and the collaborators listed above, used under a Creative Commons Attribution (CC BY) license made possible by funding from The Saylor Foundation's Open Textbook Challenge in order to be incorporated into Saylor.org' collection of open courses available at `http://www.saylor.org `_. Full license terms may be viewed at : `http://creativecommons.org/licenses/by/3.0/ `_ + `Computer Networking : Principles, Protocols and Practice`, (c) 2011, `Olivier Bonaventure `_, `Universite catholique de Louvain `_ (Belgium) and the collaborators listed above, used under a Creative Commons Attribution (CC BY) license made possible by funding from The Saylor Foundation's Open Textbook Challenge in order to be incorporated into Saylor.org' collection of open courses available at `https://www.saylor.org `_. Full license terms may be viewed at : `http://creativecommons.org/licenses/by/3.0/ `_ About the author ################ -`Olivier Bonaventure `_ is currently professor at `Universite catholique de Louvain `_ (Belgium) where he leads the `IP Networking Lab `_ . His research has been focused on Internet protocols for more than twenty years. Together with his Ph.D. students, he has developed traffic engineering techniques, performed various types of Internet measurements, improved the performance of routing protocols such as BGP and IS-IS and participated to the development of new Internet protocols including shim6, LISP and Multipath TCP. He frequently contributes to standardisation within the `IETF `_. +`Olivier Bonaventure `_ is currently professor at `Universite catholique de Louvain `_ (Belgium) where he leads the `IP Networking Lab `_ . His research has been focused on Internet protocols for more than twenty years. Together with his Ph.D. students, he has developed traffic engineering techniques, performed various types of Internet measurements, improved the performance of routing protocols such as BGP and IS-IS and participated to the development of new Internet protocols including shim6, LISP and Multipath TCP. He frequently contributes to standardisation within the `IETF `_. -.. He was on the editorial board of IEEE/ACM Transactions on Networking and is Education Director of `ACM SIGCOMM `_. +.. He was on the editorial board of IEEE/ACM Transactions on Networking and is Education Director of `ACM SIGCOMM `_. diff --git a/book-2nd/principles/naming.rst b/book-2nd/principles/naming.rst index 7343ca8..97c9977 100644 --- a/book-2nd/principles/naming.rst +++ b/book-2nd/principles/naming.rst @@ -23,7 +23,7 @@ A :term:`hosts.txt` file can be used when there are up to a few hundred hosts on However, the limitations of a flat naming scheme became clear before the end of the ARPANet and :rfc:`819` proposed a hierarchical naming scheme. While :rfc:`819` discussed the possibility of organising the names as a directed graph, the Internet opted eventually for a tree structure capable of containing all names. In this tree, the top-level domains are those that are directly attached to the root. The first top-level domain was `.arpa` [#fdnstimeline]_. This top-level name was initially added as a suffix to the names of the hosts attached to the ARPANet and listed in the `hosts.txt` file. In 1984, the `.gov`, `.edu`, `.com`, `.mil` and `.org` generic top-level domain names were added and :rfc:`1032` proposed the utilisation of the two letter :term:`ISO-3166` country codes as top-level domain names. Since :term:`ISO-3166` defines a two letter code for each country recognised by the United Nations, this allowed all countries to automatically have a top-level domain. These domains include `.be` for Belgium, `.fr` for France, `.us` for the USA, `.ie` for Ireland or `.tv` for Tuvalu, a group of small islands in the Pacific and `.tm` for Turkmenistan. Today, the set of top-level domain-names is managed by the Internet Corporation for Assigned Names and Numbers (:term:`ICANN`). Recently, :term:`ICANN` added a dozen of generic top-level domains that are not related to a country and the `.cat` top-level domain has been registered for the Catalan language. There are ongoing discussions within :term:`ICANN` to increase the number of top-level domains. -Each top-level domain is managed by an organisation that decides how sub-domain names can be registered. Most top-level domain names use a first-come first served system, and allow anyone to register domain names, but there are some exceptions. For example, `.gov` is reserved for the US government, `.int` is reserved for international organisations and names in the `.ca` are mainly `reserved `_ for companies or users who are present in Canada. +Each top-level domain is managed by an organisation that decides how sub-domain names can be registered. Most top-level domain names use a first-come first served system, and allow anyone to register domain names, but there are some exceptions. For example, `.gov` is reserved for the US government, `.int` is reserved for international organisations and names in the `.ca` are mainly `reserved `_ for companies or users who are present in Canada. .. figure:: ../../book/application/png/app-fig-007-c.png :align: center @@ -84,17 +84,17 @@ Names provide a lot of flexibility compared to addresses. For the network, they .. rubric:: Footnotes -.. [#fhosts] The :term:`hosts.txt` file is not maintained anymore. A historical snapshot retrieved on April 15th, 1984 is available from http://ftp.univie.ac.at/netinfo/netinfo/hosts.txt +.. [#fhosts] The :term:`hosts.txt` file is not maintained anymore. A historical snapshot retrieved on April 15th, 1984 is available from https://emaillab.jp/dns/hosts/ .. [#fdnstimeline] See http://www.donelan.com/dnstimeline.html for a time line of DNS related developments. .. [#fidn] This specification evolved later to support domain names written by using other character sets than us-ASCII :rfc:`5890`. This extension is important to support languages other than English, but a detailed discussion is outside the scope of this document. -.. [#ftld] The official list of top-level domain names is maintained by :term:`IANA` at http://data.iana.org/TLD/tlds-alpha-by-domain.txt Additional information about these domains may be found at http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains +.. [#ftld] The official list of top-level domain names is maintained by :term:`IANA` at http://data.iana.org/TLD/tlds-alpha-by-domain.txt Additional information about these domains may be found at https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains .. [#froot] A copy of the information maintained by each root nameserver is available at http://www.internic.net/zones/root.zone -.. [#frootv6] Until February 2008, the root DNS servers only had IPv4 addresses. IPv6 addresses were added to the root DNS servers slowly to avoid creating problems as discussed in http://www.icann.org/en/committees/security/sac018.pdf In 2013, several DNS root servers are still not reachable by using IPv6. The full list is available at http://www.root-servers.org/ +.. [#frootv6] Until February 2008, the root DNS servers only had IPv4 addresses. IPv6 addresses were added to the root DNS servers slowly to avoid creating problems as discussed in https://www.icann.org/en/committees/security/sac018.pdf In 2013, several DNS root servers are still not reachable by using IPv6. The full list is available at http://www.root-servers.org/ diff --git a/book-2nd/principles/reliability.rst b/book-2nd/principles/reliability.rst index cd0a213..419916a 100644 --- a/book-2nd/principles/reliability.rst +++ b/book-2nd/principles/reliability.rst @@ -204,7 +204,7 @@ A first solution to this problem is to require the physical layer to remain idle .. note:: Bit rate and bandwidth - Bit rate and bandwidth are often used to characterize the transmission capacity of the physical service. The original definition of `bandwidth `_, as listed in the `Webster dictionary `_ is `a range of radio frequencies which is occupied by a modulated carrier wave, which is assigned to a service, or over which a device can operate`. This definition corresponds to the characteristics of a given transmission medium or receiver. For example, the human ear is able to decode sounds in roughly the 0-20 KHz frequency range. By extension, bandwidth is also used to represent the capacity of a communication system in bits per second. For example, a Gigabit Ethernet link is theoretically capable of transporting one billion bits per second. + Bit rate and bandwidth are often used to characterize the transmission capacity of the physical service. The original definition of `bandwidth `_, as listed in the `Webster dictionary `_ is `a range of radio frequencies which is occupied by a modulated carrier wave, which is assigned to a service, or over which a device can operate`. This definition corresponds to the characteristics of a given transmission medium or receiver. For example, the human ear is able to decode sounds in roughly the 0-20 KHz frequency range. By extension, bandwidth is also used to represent the capacity of a communication system in bits per second. For example, a Gigabit Ethernet link is theoretically capable of transporting one billion bits per second. .. index:: bit stuffing, stuffing (bit) @@ -515,7 +515,7 @@ It is also possible to design a code that allows the receiver to correct transmi 011 1 ==================== ============= -Other more powerful error correction codes have been proposed and are used in some applications. The `Hamming Code `_ is a clever combination of parity bits that provides error detection and correction capabilities. +Other more powerful error correction codes have been proposed and are used in some applications. The `Hamming Code `_ is a clever combination of parity bits that provides error detection and correction capabilities. Reliable protocols use error detection schemes, but none of the widely used reliable protocols rely on error correction schemes. To detect errors, a frame is usually divided into two parts : @@ -537,8 +537,8 @@ The simplest error detection scheme is the checksum. A checksum is basically an .. real checksum http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.8520 .. do not invent your own checksum, use existing ones .. implementations can be optimised by using table lookups -.. crc : http://en.wikipedia.org/wiki/Cyclic_redundancy_check -.. tcp offload engine http://www.10gea.org/tcp-ip-offload-engine-toe.htm +.. crc : https://en.wikipedia.org/wiki/Cyclic_redundancy_check +.. tcp offload engine https://10gea.org/tcp-ip-offload-engine-toe.htm .. stcp used Adler-32 but it now uses CRC :rfc:`3309` .. The second imperfection of the network layer is that segments may be lost. As we will see later, the main cause of packet losses in the network layer is the lack of buffers in intermediate routers. @@ -722,7 +722,7 @@ And the loss of one control frame. note:: Random errors versus malicious modifications The protocols of the transport layer are designed to recover from the random errors and losses that may occur in the underlying layers. There random errors are caused by see [SPMR09]_ for how to recompute a CRC - Checksums and CRCs should not be confused with hash functions such as MD5 defined in :rfc:`1321` or `SHA-1 `_ . + Checksums and CRCs should not be confused with hash functions such as MD5 defined in :rfc:`1321` or `SHA-1 `_ . The Alternating Bit Protocol can recover from transmission errors and frame losses. However, it has one important drawback. Consider two hosts that are directly connected by a 50 Kbits/sec satellite link that has a 250 milliseconds propagation delay. If these hosts send 1000 bits frames, then the maximum throughput that can be achieved by the alternating bit protocol is one frame every :math:`20+250+250=520` milliseconds if we ignore the transmission time of the acknowledgement. This is less than 2 Kbits/sec ! @@ -926,7 +926,7 @@ Reliable protocols often need to send data in both directions. To reduce the ove .. .. [#facklost] Note that if the receive window shrinks, it might happen that the sender has already sent a segment that is not anymore inside its window. This segment will be discarded by the receiver and the sender will retransmit it later. -.. .. [#fmsl] As we will see in the next chapter, the Internet does not strictly enforce this MSL. However, it is reasonable to expect that most packets on the Internet will not remain in the network during more than 2 minutes. There are a few exceptions to this rule, such as :rfc:`1149` whose implementation is described in http://www.blug.linux.no/rfc1149/ but there are few real links supporting :rfc:`1149` in the Internet. +.. .. [#fmsl] As we will see in the next chapter, the Internet does not strictly enforce this MSL. However, it is reasonable to expect that most packets on the Internet will not remain in the network during more than 2 minutes. There are a few exceptions to this rule, such as :rfc:`1149` whose implementation is described in https://www.blug.linux.no/rfc1149/ but there are few real links supporting :rfc:`1149` in the Internet. .. include:: /links.rst diff --git a/book-2nd/principles/security.rst b/book-2nd/principles/security.rst index 17478b0..23c1254 100644 --- a/book-2nd/principles/security.rst +++ b/book-2nd/principles/security.rst @@ -230,9 +230,9 @@ against real DoS attacks can be difficult, especially if the attacker controls a large number of sources that are used to launch the attacks. In terms of bandwidth, DoS attacks composed of a few Gbps to a few tens of Gbps of traffic are frequent on the Internet. In 2015, -`github.com `_ suffered from a distributed DoS that +`github.com `_ suffered from a distributed DoS that reached a top bandwidth of 400 Gbps according to some -`reports `_. +`reports `_. Since then, `DDoS attacks have risen to over 1 Tbps `_. .. index:: reflection attack, amplification diff --git a/book-2nd/principles/sharing.rst b/book-2nd/principles/sharing.rst index cb3081e..b6f6462 100644 --- a/book-2nd/principles/sharing.rst +++ b/book-2nd/principles/sharing.rst @@ -173,7 +173,7 @@ Besides bandwidth and memory, a third resource that needs to be shared inside a When a network node forwards small packets, its performance is usually limited by the number of lookup operations that it can perform every second. This lookup performance is measured in packets per second. The performance may depend on the length of the forwarded packets. The key performance factor is the number of minimal size packets that are forwarded by the node every second. This rate can lead to a capacity in bits per second which is much lower than the sum of the bandwidth of the node's links. .. add something on bisection bandwidth ? -.. http://courses.cs.washington.edu/courses/csep524/99wi/lectures/lecture7/sld006.htm +.. https://courses.cs.washington.edu/courses/csep524/99wi/lectures/lecture7/sld006.htm Let us now try to present a broad overview of the congestion problem in networks. We will assume that the network is composed of dedicated links having a fixed bandwidth [#fadjust]_. A network contains hosts that generate and receive packets and nodes that forward packets. Assuming that each host is connected via a single link to the network, the largest demand is :math:`\sum{Access Links}`. In practice, this largest demand is never reached and the network will be engineered to sustain a much lower traffic demand. The difference between the worst-case traffic demand and the sustainable traffic demand can be large, up to several orders of magnitude. Fortunately, the hosts are not completely dumb and they can adapt their traffic demand to the current state of the network and the available bandwidth. For this, the hosts need to `sense` the current level of congestion and adjust their own traffic demand based on the estimated congestion. Network nodes can react in different ways to network congestion and hosts can sense the level of congestion in different ways. @@ -293,7 +293,7 @@ A first solution to share the available resources among all the devices attached .. index:: Frequency Division Multiplexing, FDM -Limited resources need to be shared in other environments than Local Area Networks. Since the first radio transmissions by `Marconi `_ more than one century ago, many applications that exchange information through radio signals have been developed. Each radio signal is an electromagnetic wave whose power is centered around a given frequency. The radio spectrum corresponds to frequencies ranging between roughly 3 KHz and 300 GHz. Frequency allocation plans negotiated among governments reserve most frequency ranges for specific applications such as broadcast radio, broadcast television, mobile communications, aeronautical radio navigation, amateur radio, satellite, etc. Each frequency range is then subdivided into channels and each channel can be reserved for a given application, e.g. a radio broadcaster in a given region. +Limited resources need to be shared in other environments than Local Area Networks. Since the first radio transmissions by `Marconi `_ more than one century ago, many applications that exchange information through radio signals have been developed. Each radio signal is an electromagnetic wave whose power is centered around a given frequency. The radio spectrum corresponds to frequencies ranging between roughly 3 KHz and 300 GHz. Frequency allocation plans negotiated among governments reserve most frequency ranges for specific applications such as broadcast radio, broadcast television, mobile communications, aeronautical radio navigation, amateur radio, satellite, etc. Each frequency range is then subdivided into channels and each channel can be reserved for a given application, e.g. a radio broadcaster in a given region. .. index:: Wavelength Division Multiplexing, WDM @@ -353,7 +353,7 @@ The pseudo-code below shows the operation of an ALOHANet terminal. We use this p .. note:: Amateur packet radio - Packet radio technologies have evolved in various directions since the first experiments performed at the University of Hawaii. The Amateur packet radio service developed by amateur radio operators is one of the descendants ALOHANet. Many amateur radio operators are very interested in new technologies and they often spend countless hours developing new antennas or transceivers. When the first personal computers appeared, several amateur radio operators designed radio modems and their own datalink layer protocols [KPD1985]_ [BNT1997]_. This network grew and it was possible to connect to servers in several European countries by only using packet radio relays. Some amateur radio operators also developed TCP/IP protocol stacks that were used over the packet radio service. Some parts of the `amateur packet radio network `_ are connected to the global Internet and use the `44.0.0.0/8` prefix. + Packet radio technologies have evolved in various directions since the first experiments performed at the University of Hawaii. The Amateur packet radio service developed by amateur radio operators is one of the descendants ALOHANet. Many amateur radio operators are very interested in new technologies and they often spend countless hours developing new antennas or transceivers. When the first personal computers appeared, several amateur radio operators designed radio modems and their own datalink layer protocols [KPD1985]_ [BNT1997]_. This network grew and it was possible to connect to servers in several European countries by only using packet radio relays. Some amateur radio operators also developed TCP/IP protocol stacks that were used over the packet radio service. Some parts of the `amateur packet radio network `_ are connected to the global Internet and use the `44.0.0.0/8` prefix. .. index:: slotted ALOHA @@ -1017,7 +1017,7 @@ When the connection starts, its congestion window is set to one segment. Segment .. [#fbufferbloat] There are still some vendors that try to put as many buffers as possible on their network nodes. A recent example is the buffer bloat problem that plagues some low-end Internet routers [GN2011]_. -.. [#fpps] Some examples of the performance of various types of commercial networks nodes may be found in http://www.cisco.com/web/partners/downloads/765/tools/quickreference/routerperformance.pdf and http://www.cisco.com/web/partners/downloads/765/tools/quickreference/switchperformance.pdf +.. [#fpps] Some examples of the performance of various types of commercial networks nodes may be found in https://www.cisco.com/web/partners/downloads/765/tools/quickreference/routerperformance.pdf and https://www.cisco.com/web/partners/downloads/765/tools/quickreference/switchperformance.pdf .. [#fadjust] Some networking technologies allow to adjust dynamically the bandwidth of links. For example, some devices can reduce their bandwidth to preserve energy. We ignore these technologies in this basic course and assume that all links used inside the network have a fixed bandwidth. diff --git a/book-2nd/principles/transport.rst b/book-2nd/principles/transport.rst index e25970e..3b2416e 100644 --- a/book-2nd/principles/transport.rst +++ b/book-2nd/principles/transport.rst @@ -595,7 +595,7 @@ The second method to release a transport connection is to release independently .. [#facklost] Note that if the receive window shrinks, it might happen that the sender has already sent a segment that is not anymore inside its window. This segment will be discarded by the receiver and the sender will retransmit it later. -.. [#fmsl] In reality, the Internet does not strictly enforce this MSL. However, it is reasonable to expect that most packets on the Internet will not remain in the network during more than 2 minutes. There are a few exceptions to this rule, such as :rfc:`1149` whose implementation is described in http://www.blug.linux.no/rfc1149/ but there are few real links supporting :rfc:`1149` in the Internet. +.. [#fmsl] In reality, the Internet does not strictly enforce this MSL. However, it is reasonable to expect that most packets on the Internet will not remain in the network during more than 2 minutes. There are a few exceptions to this rule, such as :rfc:`1149` whose implementation is described in https://www.blug.linux.no/rfc1149/ but there are few real links supporting :rfc:`1149` in the Internet. .. include:: /links.rst diff --git a/book-2nd/protocols/bgp.rst b/book-2nd/protocols/bgp.rst index df7b8fe..6ea0fb9 100644 --- a/book-2nd/protocols/bgp.rst +++ b/book-2nd/protocols/bgp.rst @@ -240,7 +240,7 @@ When a BGP message is received, the router first applies the peer's `import filt Another example of frequently used `import filters` are the filters that Internet Service Providers use to ignore bogon routes. In the ISP community, a bogon route is a route that should not be advertised on the global Internet. Typical examples include the documentation IPv6 prefix (`2001:db8::/32` used for most examples in this book), the loopback address (::1/128`) or the IPv6 prefixes that have not yet been allocated by IANA. A well managed BGP router should ensure that it never advertises bogons on the global Internet. Detailed information about these bogons may be found in [IMHM2013]_. -.. http://www.team-cymru.org/Services/Bogons/ +.. http://www.team-cymru.com/bogon-reference.html If the import filter accepts the BGP message, the pseudo-code distinguishes two cases. If this is an `Update message` for prefix `p`, this can be a new route for this prefix or a modification of the route's attributes. The router first retrieves from its `RIB` the best route towards prefix `p`. Then, the new route is inserted in the `RIB` and the `BGP decision process` is run to find whether the best route towards destination `p` changes. A BGP message only needs to be sent to the router's peers if the best route has changed. For each peer, the router applies the `export filter` to verify whether the route can be advertised. If yes, the filtered BGP message is sent. Otherwise, a `Withdraw message` is sent. When the router receives a `Withdraw message`, it also verifies whether the removal of the route from its `RIB` caused its best route towards this prefix to change. It should be noted that, depending on the content of the `RIB` and the `export filters`, a BGP router may need to send a `Withdraw message` to a peer after having received an `Update message` from another peer and conversely. @@ -473,7 +473,7 @@ Due to this organisation of the Internet and due to the BGP decision process, mo .. [#fgranularity] Researchers such as [MUF+2007]_ have shown that modelling the Internet topology at the AS-level requires more than the `shared-cost` and `customer->provider` peering relationships. However, there is no publicly available model that goes beyond these classical peering relationships. -.. [#fbgpdata] BGP data is often collected by establishing BGP sessions between Unix hosts running a BGP daemon and BGP routers in different ASes. The Unix hosts stores all BGP messages received and regular dumps of its BGP routing table. See http://www.routeviews.org, http://www.ripe.net/ris, http://bgp.potaroo.net or http://irl.cs.ucla.edu/topology/ +.. [#fbgpdata] BGP data is often collected by establishing BGP sessions between Unix hosts running a BGP daemon and BGP routers in different ASes. The Unix hosts stores all BGP messages received and regular dumps of its BGP routing table. See http://www.routeviews.org/routeviews/, https://www.ripe.net/ris, http://bgp.potaroo.net or http://irl.cs.ucla.edu/topology/ .. [#fpotaroo] Several web sites collect and analyse data about the evolution of BGP in the global Internet. http://bgp.potaroo.net provides lots of statistics and analyses that are updated daily. diff --git a/book-2nd/protocols/dns.rst b/book-2nd/protocols/dns.rst index d3fe44d..6cf6507 100644 --- a/book-2nd/protocols/dns.rst +++ b/book-2nd/protocols/dns.rst @@ -25,7 +25,7 @@ The `ID` (identifier) is a 16-bits random value chosen by the client. When a cli .. dns attacks http://www.cs.columbia.edu/~smb/papers/dnshack.ps .. http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html -.. http://www.secureworks.com/research/articles/dns-cache-poisoning +.. https://www.secureworks.com/research/articles/dns-cache-poisoning The `QR` flag is set to `0` in DNS queries and `1` in DNS answers. The `Opcode` is used to specify the type of query. For instance, a :term:`standard query` is when a client sends a `name` and the server returns the corresponding `data` and an update request is when the client sends a `name` and new `data` and the server then updates its database. diff --git a/book-2nd/protocols/dnssec.rst b/book-2nd/protocols/dnssec.rst index efe66b4..1e6ba60 100644 --- a/book-2nd/protocols/dnssec.rst +++ b/book-2nd/protocols/dnssec.rst @@ -325,7 +325,7 @@ order, this indicates that `pi.example.org` does not exist. .. rubric:: Footnotes -.. [#fspoof] See http://spoofer.caida.org/summary.php for an ongoing +.. [#fspoof] See https://spoofer.caida.org/summary.php for an ongoing measurement study that analyses the networks where an attacker could send packets with any source IP address. diff --git a/book-2nd/protocols/email.rst b/book-2nd/protocols/email.rst index 0e70a2d..4f3f31e 100644 --- a/book-2nd/protocols/email.rst +++ b/book-2nd/protocols/email.rst @@ -8,7 +8,7 @@ Electronic mail Electronic mail, or email, is a very popular application in computer networks such as the Internet. Email `appeared `_ in the early 1970s and allows users to exchange text based messages. Initially, it was mainly used to exchange short messages, but over the years its usage has grown. It is now not only used to exchange small, but also long messages that can be composed of several parts as we will see later. -Before looking at the details of Internet email, let us consider a simple scenario illustrated in the figure below, where Alice sends an email to Bob. Alice prepares her email by using an `email clients`_ and sends it to her email server. Alice's `email server `_ extracts Bob's address from the email and delivers the message to Bob's server. Bob retrieves Alice's message on his server and reads it by using his favourite email client or through his webmail interface. +Before looking at the details of Internet email, let us consider a simple scenario illustrated in the figure below, where Alice sends an email to Bob. Alice prepares her email by using an `email clients`_ and sends it to her email server. Alice's `email server `_ extracts Bob's address from the email and delivers the message to Bob's server. Bob retrieves Alice's message on his server and reads it by using his favourite email client or through his webmail interface. .. figure:: ../../book/application/svg/email-arch.png :align: center @@ -24,7 +24,7 @@ The email system that we consider in this book is composed of four components : - client software, that allows users to easily create and read email messages - software, that allows servers to efficiently exchange email messages -We will first discuss the format of email messages followed by the protocols that are used on today's Internet to exchange and retrieve emails. Other email systems have been developed in the past [Bush1993]_ [Genilloud1990]_ [GC2000]_, but today most email solutions have migrated to the Internet email. Information about the software that is used to compose and deliver emails may be found on wikipedia_ among others, for both `email clients`_ and `email servers `_. More detailed information about the full Internet Mail Architecture may be found in :rfc:`5598`. +We will first discuss the format of email messages followed by the protocols that are used on today's Internet to exchange and retrieve emails. Other email systems have been developed in the past [Bush1993]_ [Genilloud1990]_ [GC2000]_, but today most email solutions have migrated to the Internet email. Information about the software that is used to compose and deliver emails may be found on wikipedia_ among others, for both `email clients`_ and `email servers `_. More detailed information about the full Internet Mail Architecture may be found in :rfc:`5598`. .. index:: email message format @@ -157,10 +157,10 @@ The email message below, copied from :rfc:`2046` shows a MIME message containing The `Content-Type:` header can also be used inside a MIME part. In this case, it indicates the type of data placed in this part. Each data type is specified as a type followed by a subtype. A detailed description may be found in :rfc:`2046`. Some of the most popular `Content-Type:` header lines are : - - `text`. The message part contains information in textual format. There are several subtypes : `text/plain` for regular ASCII text, `text/html` defined in :rfc:`2854` for documents in :term:`HTML` format or the `text/enriched` format defined in :rfc:`1896`. The `Content-Type:` header line may contain a second parameter that specifies the character set used to encode the text. `charset=us-ascii` is the standard ASCII character table. Other frequent character sets include `charset=UTF8` or `charset=iso-8859-1`. The `list of standard character sets `_ is maintained by :term:`IANA` - - `image`. The message part contains a binary representation of an image. The subtype indicates the format of the image such as `gif `_, `jpg `_ or `png `_. - - `audio`. The message part contains an audio clip. The subtype indicates the format of the audio clip like `wav `_ or `mp3 `_ - - `video`. The message part contains a video clip. The subtype indicates the format of the video clip like `avi `_ or `mp4 `_ + - `text`. The message part contains information in textual format. There are several subtypes : `text/plain` for regular ASCII text, `text/html` defined in :rfc:`2854` for documents in :term:`HTML` format or the `text/enriched` format defined in :rfc:`1896`. The `Content-Type:` header line may contain a second parameter that specifies the character set used to encode the text. `charset=us-ascii` is the standard ASCII character table. Other frequent character sets include `charset=UTF8` or `charset=iso-8859-1`. The `list of standard character sets `_ is maintained by :term:`IANA` + - `image`. The message part contains a binary representation of an image. The subtype indicates the format of the image such as `gif `_, `jpg `_ or `png `_. + - `audio`. The message part contains an audio clip. The subtype indicates the format of the audio clip like `wav `_ or `mp3 `_ + - `video`. The message part contains a video clip. The subtype indicates the format of the video clip like `avi `_ or `mp4 `_ - `application`. The message part contains binary information that was produced by the particular application listed as the subtype. Email clients use the subtype to launch the application that is able to decode the received binary information. .. note:: From ASCII to Unicode @@ -350,7 +350,7 @@ To send an email, the client must first provide the address of the recipient wit .. note:: Open SMTP relays and spam - Since its creation in 1971, email has been a very useful tool that is used by many users to exchange lots of information. In the early days, all SMTP servers were open and anyone could use them to forward emails towards their final destination. Unfortunately, over the years, some unscrupulous users have found ways to use email for marketing purposes or to send malware. The first documented abuse of email for marketing purposes occurred in 1978 when a marketer who worked for a computer vendor sent a `marketing email `_ to many ARPANET users. At that time, the ARPANET could only be used for research purposes and this was an abuse of the acceptable use policy. Unfortunately, given the extremely low cost of sending emails, the problem of unsolicited emails has not stopped. Unsolicited emails are now called spam and a `study `_ carried out by ENISA_ in 2009 reveals that 95% of email was spam and this number seems to continue to grow. This places a burden on the email infrastructure of Internet Service Providers and large companies that need to process many useless messages. + Since its creation in 1971, email has been a very useful tool that is used by many users to exchange lots of information. In the early days, all SMTP servers were open and anyone could use them to forward emails towards their final destination. Unfortunately, over the years, some unscrupulous users have found ways to use email for marketing purposes or to send malware. The first documented abuse of email for marketing purposes occurred in 1978 when a marketer who worked for a computer vendor sent a `marketing email `_ to many ARPANET users. At that time, the ARPANET could only be used for research purposes and this was an abuse of the acceptable use policy. Unfortunately, given the extremely low cost of sending emails, the problem of unsolicited emails has not stopped. Unsolicited emails are now called spam and a `study `_ carried out by ENISA_ in 2009 reveals that 95% of email was spam and this number seems to continue to grow. This places a burden on the email infrastructure of Internet Service Providers and large companies that need to process many useless messages. Given the amount of spam messages, SMTP servers are no longer open :rfc:`5068`. Several extensions to SMTP have been developed in recent years to deal with this problem. For example, the SMTP authentication scheme defined in :rfc:`4954` can be used by an SMTP server to authenticate a client. Several techniques have also been proposed to allow SMTP servers to `authenticate` the messages sent by their users :rfc:`4870` :rfc:`4871` . @@ -408,7 +408,7 @@ In this example, a POP client contacts a POP server on behalf of the user named .. rubric:: Footnotes -.. [#femailheaders] The list of all standard email header lines may be found at http://www.iana.org/assignments/message-headers/message-header-index.html +.. [#femailheaders] The list of all standard email header lines may be found at https://www.iana.org/assignments/message-headers .. [#fto] It could be surprising that the `To:` is not mandatory inside an email message. While most email messages will contain this header line an email that does not contain a `To:` header line and that relies on the `bcc:` to specify the recipient is valid as well. diff --git a/book-2nd/protocols/ethernet.rst b/book-2nd/protocols/ethernet.rst index 8025b75..bb22b5f 100644 --- a/book-2nd/protocols/ethernet.rst +++ b/book-2nd/protocols/ethernet.rst @@ -38,7 +38,7 @@ The fourth part of the Ethernet frame is the payload. The minimum length of the The last field of the Ethernet frame is a 32 bit Cyclical Redundancy Check (CRC). This CRC is able to catch a much larger number of transmission errors than the Internet checksum used by IP, UDP and TCP [SGP98]_. The format of the Ethernet frame is shown below. -.. Ethernet evolution http://www.networkworld.com/slideshows/2009/042009-terabit-ethernet.html?ts0hb#slide14 +.. Ethernet evolution https://www.networkworld.com/article/2869883/lan-wan/evolution-of-ethernet.html .. index:: Ethernet DIX frame format @@ -116,7 +116,7 @@ Computers can directly be attached to Ethernet hubs. Ethernet hubs themselves ca In the late 1980s, 10 Mbps became too slow for some applications and network manufacturers developed several LAN technologies that offered higher bandwidth, such as the 100 Mbps FDDI LAN that used optical fibers. As the development of 10Base5, 10Base2 and 10BaseT had shown that Ethernet could be adapted to different physical layers, several manufacturers started to work on 100 Mbps Ethernet and convinced IEEE to standardise this new technology that was initially called `Fast Ethernet`. `Fast Ethernet` was designed under two constraints. First, `Fast Ethernet` had to support twisted pairs. Although it was easier from a physical layer perspective to support higher bandwidth on coaxial cables than on twisted pairs, coaxial cables were a nightmare from deployment and maintenance perspectives. Second, `Fast Ethernet` had to be perfectly compatible with the existing 10 Mbps Ethernets to allow `Fast Ethernet` technology to be used initially as a backbone technology to interconnect 10 Mbps Ethernet networks. This forced `Fast Ethernet` to use exactly the same frame format as 10 Mbps Ethernet. This implied that the minimum `Fast Ethernet` frame size remained at 512 bits. To preserve CSMA/CD with this minimum frame size and 100 Mbps instead of 10 Mbps, the duration of the `slot time` was decreased to 5.12 microseconds. -The evolution of Ethernet did not stop. In 1998, the IEEE published a first standard to provide Gigabit Ethernet over optical fibers. Several other types of physical layers were added afterwards. The `10 Gigabit Ethernet `_ standard appeared in 2002. Work is ongoing to develop `standards `_ for 40 Gigabit and 100 Gigabit Ethernet and some are thinking about `Terabit Ethernet `_. The table below lists the main Ethernet standards. A more detailed list may be found at http://en.wikipedia.org/wiki/Ethernet_physical_layer +The evolution of Ethernet did not stop. In 1998, the IEEE published a first standard to provide Gigabit Ethernet over optical fibers. Several other types of physical layers were added afterwards. The `10 Gigabit Ethernet `_ standard appeared in 2002. Work is ongoing to develop `standards `_ for 40 Gigabit and 100 Gigabit Ethernet and some are thinking about `Terabit Ethernet `_. The table below lists the main Ethernet standards. A more detailed list may be found at https://en.wikipedia.org/wiki/Ethernet_physical_layer .. In the late 1990s, the first Gigabit Ethernet interfaces had difficulties transmitting and receiving at 1000 Mbps given the performance limitations of the hosts on which they were running. One of the issues was the 1500 bytes maximum Ethernet frame size, as it forces hosts to send relatively small packets. This increases the number of interruptions that a host needs to process. To improve the usability of Gigabit Ethernet without requiring CPU and bus upgrades, several vendors proposed to increase the.... Experience with other networking technologies that support large frames showed limits performed with other networking technologies showed that a larger frame @@ -141,9 +141,9 @@ Standard Comments .. [#fethernethistory] Additional information about the history of the Ethernet technology may be found at http://ethernethistory.typepad.com/ -.. [#foui] Initially, the OUIs were allocated by Xerox [DP1981]_. However, once Ethernet became an IEEE and later an ISO standard, the allocation of the OUIs moved to IEEE. The list of all OUI allocations may be found at http://standards.ieee.org/regauth/oui/index.shtml +.. [#foui] Initially, the OUIs were allocated by Xerox [DP1981]_. However, once Ethernet became an IEEE and later an ISO standard, the allocation of the OUIs moved to IEEE. The list of all OUI allocations may be found at https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries -.. [#fethertype] The official list of all assigned Ethernet type values is available from http://standards.ieee.org/regauth/ethertype/eth.txt +.. [#fethertype] The official list of all assigned Ethernet type values is available from http://standards-oui.ieee.org/ethertype/eth.txt .. [#fipv6ether] The attentive reader may question the need for different `EtherTypes` for IPv4 and IPv6 while the IP header already contains a version field that can be used to distinguish between IPv4 and IPv6 packets. Theoretically, IPv4 and IPv6 could have used the same `EtherType`. Unfortunately, developers of the early IPv6 implementations found that some devices did not check the version field of the IPv4 packets that they received and parsed frames whose `EtherType` was set to `0x0800` as IPv4 packets. Sending IPv6 packets to such devices would have caused disruptions. To avoid this problem, the IETF decided to apply for a distinct `EtherType` value for IPv6. Such a choice is now mandated by :rfc:`6274` (section 3.1), although we can find a funny counter-example in :rfc:`6214`. diff --git a/book-2nd/protocols/http.rst b/book-2nd/protocols/http.rst index 3857ce9..554312b 100644 --- a/book-2nd/protocols/http.rst +++ b/book-2nd/protocols/http.rst @@ -28,13 +28,13 @@ In the late 1980s, high energy physicists working at CERN_ had to efficiently ex A document sharing system such as the `world wide web` is composed of three important parts. 1. A standardised addressing scheme that allows unambiguous identification of documents - 2. A standard document format : the `HyperText Markup Language `_ + 2. A standard document format : the `HyperText Markup Language `_ 3. A standardised protocol that facilitates efficient retrieval of documents stored on a server .. note:: Open standards and open implementations - Open standards have, and are still playing a key role in the success of the `world wide web` as we know it today. Without open standards, the world wide web would never have reached its current size. In addition to open standards, another important factor for the success of the web was the availability of open and efficient implementations of these standards. When CERN started to work on the `web`, their objective was to build a running system that could be used by physicists. They developed open-source implementations of the `first web servers `_ and `web clients `_. These open-source implementations were powerful and could be used as is, by institutions willing to share information on the web. They were also extended by other developers who contributed to new features. For example, NCSA_ added support for images in their `Mosaic browser `_ that was eventually used to create `Netscape Communications `_. + Open standards have, and are still playing a key role in the success of the `world wide web` as we know it today. Without open standards, the world wide web would never have reached its current size. In addition to open standards, another important factor for the success of the web was the availability of open and efficient implementations of these standards. When CERN started to work on the `web`, their objective was to build a running system that could be used by physicists. They developed open-source implementations of the `first web servers `_ and `web clients `_. These open-source implementations were powerful and could be used as is, by institutions willing to share information on the web. They were also extended by other developers who contributed to new features. For example, NCSA_ added support for images in their `Mosaic browser `_ that was eventually used to create `Netscape Communications `_. The first components of the `world wide web` are the Uniform Resource Identifiers (URI), defined in :rfc:`3986`. A URI is a character string that unambiguously identifies a resource on the world wide web. Here is a subset of the BNF for URIs :: @@ -62,9 +62,9 @@ The third part of the URI is the path to the document. This path is structured a .. code-block:: text - http://tools.ietf.org/html/rfc3986.html + https://tools.ietf.org/html/rfc3986 mailto:infobot@example.com?subject=current-issue - http://docs.python.org/library/basehttpserver.html?highlight=http#BaseHTTPServer.BaseHTTPRequestHandler + https://docs.python.org/library/basehttpserver.html?highlight=http#BaseHTTPServer.BaseHTTPRequestHandler telnet://[2001:db8:3080:3::2]:80/ ftp://cnn.example.com&story=breaking_news@10.0.0.1/top_story.htm @@ -72,7 +72,7 @@ The third part of the URI is the path to the document. This path is structured a The first URI corresponds to a document named `rfc3986.html` that is stored on the server named `tools.ietf.org` and can be accessed by using the `http` protocol on its default port. The second URI corresponds to an email message, with subject `current-issue`, that will be sent to user `infobot` in domain `example.com`. The `mailto:` URI scheme is defined in :rfc:`6068`. The third URI references the portion `BaseHTTPServer.BaseHTTPRequestHandler` of the document `basehttpserver.html` that is stored in the `library` directory on server `docs.python.org`. This document can be retrieved by using the `http` protocol. The query `highlight=http` is associated to this URI. The fourth example is a server that operates the telnet_ protocol, uses IPv6 address `2001:db8:3080:3::2` and is reachable on port 80. The last URI is somewhat special. Most users will assume that it corresponds to a document stored on the `cnn.example.com` server. However, to parse this URI, it is important to remember that the `@` character is used to separate the user name from the host name in the authorisation part of a URI. This implies that the URI points to a document named `top_story.htm` on host having IPv4 address `10.0.0.1`. The document will be retrieved by using the `ftp` protocol with the user name set to `cnn.example.com&story=breaking_news`. -The second component of the `word wide web` is the HyperText Markup Language (HTML). HTML defines the format of the documents that are exchanged on the `web`. The `first version of HTML `_ was derived from the Standard Generalized Markup Language (SGML) that was standardised in 1986 by :term:`ISO`. SGML_ was designed to allow large project documents in industries such as government, law or aerospace to be shared efficiently in a machine-readable manner. These industries require documents to remain readable and editable for tens of years and insisted on a standardised format supported by multiple vendors. Today, SGML_ is no longer widely used beyond specific applications, but its descendants including :term:`HTML` and :term:`XML` are now widespread. +The second component of the `word wide web` is the HyperText Markup Language (HTML). HTML defines the format of the documents that are exchanged on the `web`. The `first version of HTML `_ was derived from the Standard Generalized Markup Language (SGML) that was standardised in 1986 by :term:`ISO`. SGML_ was designed to allow large project documents in industries such as government, law or aerospace to be shared efficiently in a machine-readable manner. These industries require documents to remain readable and editable for tens of years and insisted on a standardised format supported by multiple vendors. Today, SGML_ is no longer widely used beyond specific applications, but its descendants including :term:`HTML` and :term:`XML` are now widespread. A markup language is a structured way of adding annotations about the formatting of the document within the document itself. Example markup languages include troff_, which is used to write the Unix man pages or LaTeX_. HTML uses markers to annotate text and a document is composed of `HTML elements`. Each element is usually composed of three items: a start tag that potentially includes some specific attributes, some text (often including other elements), and an end tag. A HTML tag is a keyword enclosed in angle brackets. The generic form of a HTML element is :: @@ -90,7 +90,7 @@ The HTML document shown below is composed of two parts : a header, delineated by A simple HTML page -Additional details about the various extensions to HTML may be found in the `official specifications `_ maintained by W3C_. +Additional details about the various extensions to HTML may be found in the `official specifications `_ maintained by W3C_. The third component of the `world wide web` is the HyperText Transfert Protocol (HTTP). HTTP is a text-based protocol, in which the client sends a request and the server returns a response. HTTP runs above the bytestream service and HTTP servers listen by default on port `80`. The design of HTTP has largely been inspired by the Internet email protocols. Each HTTP request contains three parts : @@ -113,7 +113,7 @@ The response sent by the server also contains three parts : Several types of method can be used in HTTP requests. The three most important ones are : - - the `GET` method is the most popular one. It is used to retrieve a document from a server. The `GET` method is encoded as `GET` followed by the path of the URI of the requested document and the version of HTTP used by the client. For example, to retrieve the http://www.w3.org/MarkUp/ URI, a client must open a TCP on port `80` with host `www.w3.org` and send a HTTP request containing the following line : + - the `GET` method is the most popular one. It is used to retrieve a document from a server. The `GET` method is encoded as `GET` followed by the path of the URI of the requested document and the version of HTTP used by the client. For example, to retrieve the https://www.w3.org/MarkUp/ URI, a client must open a TCP on port `80` with host `www.w3.org` and send a HTTP request containing the following line : .. code-block:: console @@ -150,7 +150,7 @@ Similarly, the following header lines can only appear inside HTTP requests sent GET /index.html HTTP/1.0 - By parsing this line, a server cannot determine which `index.html` file is requested. Thanks to the `Host:` header line, the server knows whether the request is for `http://web.example.com/index.html` or `http://www.dummy.net/index.html`. Without the `Host:` header, this is impossible. The `Host:` header line allowed web hosting companies to develop their business by supporting a large number of independent web servers on the same physical server. + By parsing this line, a server cannot determine which `index.html` file is requested. Thanks to the `Host:` header line, the server knows whether the request is for `http://web.example.com/index.html` or `http://another.example.net/index.html`. Without the `Host:` header, this is impossible. The `Host:` header line allowed web hosting companies to develop their business by supporting a large number of independent web servers on the same physical server. The status line of the HTTP response begins with the version of HTTP used by the server (usually `HTTP/1.0` defined in :rfc:`1945` or `HTTP/1.1` defined in :rfc:`2616`) followed by a three digit status code and additional information in English. HTTP status codes have a similar structure as the reply codes used by SMTP. @@ -161,7 +161,7 @@ The status line of the HTTP response begins with the version of HTTP used by the In both the HTTP request and the HTTP response, the MIME document refers to a representation of the document with the MIME headers indicating the type of document and its size. -As an illustration of HTTP/1.0, the transcript below shows a HTTP request for `http://www.ietf.org `_ and the corresponding HTTP response. The HTTP request was sent using the curl_ command line tool. The `User-Agent:` header line contains more information about this client software. There is no MIME document attached to this HTTP request, and it ends with a blank line. +As an illustration of HTTP/1.0, the transcript below shows a HTTP request for `https://www.ietf.org `_ and the corresponding HTTP response. The HTTP request was sent using the curl_ command line tool. The `User-Agent:` header line contains more information about this client software. There is no MIME document attached to this HTTP request, and it ends with a blank line. .. code-block:: text @@ -296,16 +296,16 @@ The third, and widely adopted, solution are HTTP cookies. HTTP cookies were init .. note:: Privacy issues with HTTP cookies - The HTTP cookies introduced by Netscape_ are key for large e-commerce websites. However, they have also raised many discussions concerning their `potential misuses `_. Consider `ad.com`, a company that delivers lots of advertisements on web sites. A web site that wishes to include `ad.com`'s advertisements next to its content will add links to `ad.com` inside its HTML pages. If `ad.com` is used by many web sites, `ad.com` could be able to track the interests of all the users that visit its client websites and use this information to provide targeted advertisements. Privacy advocates have even `sued `_ online advertisement companies to force them to comply with the privacy regulations. More recent related technologies also raise `privacy concerns `_ + The HTTP cookies introduced by Netscape_ are key for large e-commerce websites. However, they have also raised many discussions concerning their `potential misuses `_. Consider `ad.com`, a company that delivers lots of advertisements on web sites. A web site that wishes to include `ad.com`'s advertisements next to its content will add links to `ad.com` inside its HTML pages. If `ad.com` is used by many web sites, `ad.com` could be able to track the interests of all the users that visit its client websites and use this information to provide targeted advertisements. Privacy advocates have even `sued `_ online advertisement companies to force them to comply with the privacy regulations. More recent related technologies also raise `privacy concerns `_ .. rubric:: Footnotes -.. [#furiretrieve] An example of a non-retrievable URI is `urn:isbn:0-380-81593-1` which is an unique identifier for a book, through the urn scheme (see :rfc:`3187`). Of course, any URI can be made retrievable via a dedicated server or a new protocol but this one has no explicit protocol. Same thing for the scheme tag (see :rfc:`4151`), often used in Web syndication (see :rfc:`4287` about the Atom syndication format). Even when the scheme is retrievable (for instance with http`), it is often used only as an identifier, not as a way to get a resource. See http://norman.walsh.name/2006/07/25/namesAndAddresses for a good explanation. +.. [#furiretrieve] An example of a non-retrievable URI is `urn:isbn:0-380-81593-1` which is an unique identifier for a book, through the urn scheme (see :rfc:`3187`). Of course, any URI can be made retrievable via a dedicated server or a new protocol but this one has no explicit protocol. Same thing for the scheme tag (see :rfc:`4151`), often used in Web syndication (see :rfc:`4287` about the Atom syndication format). Even when the scheme is retrievable (for instance with http`), it is often used only as an identifier, not as a way to get a resource. See https://norman.walsh.name/2006/07/25/namesAndAddresses for a good explanation. -.. [#furilist] The list of standard URI schemes is maintained by IANA_ at http://www.iana.org/assignments/uri-schemes.html +.. [#furilist] The list of standard URI schemes is maintained by IANA_ at https://www.iana.org/assignments/uri-schemes -.. [#ffavicon] Favorite icons are small icons that are used to represent web servers in the toolbar of Internet browsers. Microsoft added this feature in their browsers without taking into account the W3C standards. See http://www.w3.org/2005/10/howto-favicon for a discussion on how to cleanly support such favorite icons. +.. [#ffavicon] Favorite icons are small icons that are used to represent web servers in the toolbar of Internet browsers. Microsoft added this feature in their browsers without taking into account the W3C standards. See https://www.w3.org/2005/10/howto-favicon for a discussion on how to cleanly support such favorite icons. .. include:: /links.rst diff --git a/book-2nd/protocols/ipv6.rst b/book-2nd/protocols/ipv6.rst index 5ffe8ca..adc9d50 100644 --- a/book-2nd/protocols/ipv6.rst +++ b/book-2nd/protocols/ipv6.rst @@ -128,7 +128,7 @@ In today's deployments, interface identifiers are always 64 bits wide. This impl .. index:: Provider Independent address .. index:: Provider Aggregatable address -In practice, there are several types of IPv6 unicast address. Most of the `IPv6 unicast addresses `_ are allocated in blocks under the responsibility of IANA_. The current IPv6 allocations are part of the `2000::/3` address block. Regional Internet Registries (RIR) such as RIPE_ in Europe, ARIN_ in North-America or AfriNIC in Africa have each received a `block of IPv6 addresses `_ that they sub-allocate to Internet Service Providers in their region. The ISPs then sub-allocate addresses to their customers. +In practice, there are several types of IPv6 unicast address. Most of the `IPv6 unicast addresses `_ are allocated in blocks under the responsibility of IANA_. The current IPv6 allocations are part of the `2000::/3` address block. Regional Internet Registries (RIR) such as RIPE_ in Europe, ARIN_ in North-America or AfriNIC in Africa have each received a `block of IPv6 addresses `_ that they sub-allocate to Internet Service Providers in their region. The ISPs then sub-allocate addresses to their customers. When considering the allocation of IPv6 addresses, two types of address allocations are often distinguished. The RIRs allocate `provider-independent (PI)` addresses. PI addresses are usually allocated to Internet Service Providers and large companies that are connected to at least two different ISPs [CSP2009]_. Once a PI address block has been allocated to a company, this company can use its address block with the provider of its choice and change its provider at will. Internet Service Providers allocate `provider-aggregatable (PA)` address blocks from their own PI address block to their customers. A company that is connected to only one ISP should only use PA addresses. The drawback of PA addresses is that when a company using a PA address block changes its provider, it needs to change all the addresses that it uses. This can be a nightmare from an operational perspective and many companies are lobbying to obtain `PI` address blocks even if they are small and connected to a single provider. The typical size of the IPv6 address blocks are : @@ -586,9 +586,9 @@ Another very useful debugging tool is :manpage:`traceroute6(8)`. The traceroute -.. [#fmultiiana] The full list of allocated IPv6 multicast addresses is available at http://www.iana.org/assignments/ipv6-multicast-addresses +.. [#fmultiiana] The full list of allocated IPv6 multicast addresses is available at https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml -.. [#fianaprotocol] The IANA_ maintains the list of all allocated Next Header types at http://www.iana.org/assignments/protocol-numbers/ +.. [#fianaprotocol] The IANA_ maintains the list of all allocated Next Header types at https://www.iana.org/assignments/protocol-numbers .. [#falert] For a discussion of the issues with the router alert IP option, see :rfc:`6398` diff --git a/book-2nd/protocols/ppp.rst b/book-2nd/protocols/ppp.rst index 4aeecbe..4c6c9c5 100644 --- a/book-2nd/protocols/ppp.rst +++ b/book-2nd/protocols/ppp.rst @@ -32,6 +32,6 @@ PPP played a key role in allowing Internet Service Providers to provide dial-up .. rubric:: Footnotes -.. [#flapb] `LAPB `_ and `HDLC `_ were widely used datalink layer protocols. +.. [#flapb] `LAPB `_ and `HDLC `_ were widely used datalink layer protocols. -.. [#fpppid] The IANA maintains the registry of all assigned PPP protocol fields at : http://www.iana.org/assignments/ppp-numbers +.. [#fpppid] The IANA maintains the registry of all assigned PPP protocol fields at : https://www.iana.org/assignments/ppp-numbers/ppp-numbers.xhtml diff --git a/book-2nd/protocols/sctp.rst b/book-2nd/protocols/sctp.rst index 627aec7..a6d91cf 100644 --- a/book-2nd/protocols/sctp.rst +++ b/book-2nd/protocols/sctp.rst @@ -1,6 +1,6 @@ .. Copyright |copy| 2013 by Olivier Bonaventure .. This file is licensed under a `creative commons licence `_ -.. Part of this text has been extracted from . Recent Advances in Reliable Transport Protocols (Costin Raiciu , Olivier Bonaventure, Janardhan Iyengar), http://www.sigcomm.org/content/ebook +.. Part of this text has been extracted from . Recent Advances in Reliable Transport Protocols (Costin Raiciu , Olivier Bonaventure, Janardhan Iyengar), https://www.sigcomm.org/content/ebook .. index:: SCTP .. _SCTP: diff --git a/book-2nd/protocols/ssh.rst b/book-2nd/protocols/ssh.rst index cba41c8..104c5c3 100644 --- a/book-2nd/protocols/ssh.rst +++ b/book-2nd/protocols/ssh.rst @@ -46,7 +46,7 @@ administrators encouraged its usage. The original version of :term:`ssh` was freely available. After a few years, his author created a company to distribute it commercially, but other programmers continued to develop an open-source version of :term`ssh` called -`OpenSSH `_. +`OpenSSH `_. Over the years, :term:`ssh` evolved and became a flexible applicable whose usage extends beyond remote login to support features such as file transfers, protocol tunnelling, .. @@ -82,7 +82,7 @@ cryptographic algorithms : - Message Authentication Code (MAC) - compression -The IANA_ maintains a `list of the cryptographic algorithms `_ +The IANA_ maintains a `list of the cryptographic algorithms `_ that can be used by ``ssh`` implementations. For each type of algorithm, the client provides an ordered list of the algorithms that it supports and agrees to use. The server compares the received list with its own list. diff --git a/book-2nd/protocols/tcp.rst b/book-2nd/protocols/tcp.rst index 8cbfd68..b9460a9 100644 --- a/book-2nd/protocols/tcp.rst +++ b/book-2nd/protocols/tcp.rst @@ -67,7 +67,7 @@ A TCP header contains the following fields : The rest of this section is organised as follows. We first explain the establishment and the release of a TCP connection, then we discuss the mechanisms that are used by TCP to provide a reliable bytestream service. We end the section with a discussion of network congestion and explain the mechanisms that TCP uses to avoid congestion collapse. -.. Urgent pointer not discussed, rarely used, see http://www.ietf.org/id/draft-ietf-tcpm-urgent-data-00.txt for discussion, defined in :rfc:`793` and updated in :rfc:`1122` +.. Urgent pointer not discussed, rarely used, see https://tools.ietf.org/html/rfc6093 for discussion, defined in :rfc:`793` and updated in :rfc:`1122` .. _TCPOpen: @@ -524,7 +524,7 @@ The `TIME\_WAIT` state is different from the other states of the TCP FSM. A TCP The :math:`2*MSL` seconds delay in the `TIME\_WAIT` state is an important operational problem on servers having thousands of simultaneously opened TCP connections [FTY99]_. Consider for example a busy web server that processes 10.000 TCP connections every second. If each of these connections remain in the `TIME\_WAIT` state for 4 minutes, this implies that the server would have to maintain more than 2 million TCBs at any time. For this reason, some TCP implementations prefer to perform an abrupt connection release by sending a `RST` segment to close the connection [AW05]_ and immediately discard the corresponding :term:`TCB`. However, if the `RST` segment is lost, the remote host continues to maintain a :term:`TCB` for a connection no longer exists. This optimisation reduces the number of TCBs maintained by the host sending the `RST` segment but at the potential cost of increased processing on the remote host when the `RST` segment is lost. -.. tuning timewait http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.edge.doc/cp/admingd45.htm bad idea +.. tuning timewait https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/as_ditamaps/welcome_nd.html bad idea .. note TCP RST attacks Explain TCP reset and the risks of attacks rfc4953 @@ -536,7 +536,7 @@ The `TIME\_WAIT` state is different from the other states of the TCP FSM. A TCP .. [#ftcpspecs] A detailed presentation of all standardisation documents concerning TCP may be found in :rfc:`4614` -.. [#ftcpusage] Several researchers have analysed the utilisation of TCP and UDP in the global Internet. Most of these studies have been performed by collecting all the packets transmitted over a given link during a period of a few hours or days and then analysing their headers to infer the transport protocol used, the type of application, ... Recent studies include http://www.caida.org/research/traffic-analysis/tcpudpratio/ or http://www.nanog.org/meetings/nanog43/presentations/Labovitz_internetstats_N43.pdf +.. [#ftcpusage] Several researchers have analysed the utilisation of TCP and UDP in the global Internet. Most of these studies have been performed by collecting all the packets transmitted over a given link during a period of a few hours or days and then analysing their headers to infer the transport protocol used, the type of application, ... Recent studies include http://www.caida.org/research/traffic-analysis/tcpudpratio/ or https://www.nanog.org/meetings/nanog43/presentations/Labovitz_internetstats_N43.pdf .. [#ftcpclock] This 32 bits counter was specified in :rfc:`793`. A 32 bits counter that is incremented every 4 microseconds wraps in about 4.5 hours. This period is much larger than the Maximum Segment Lifetime that is fixed at 2 minutes in the Internet (:rfc:`791`, :rfc:`1122`). @@ -547,7 +547,7 @@ The `TIME\_WAIT` state is different from the other states of the TCP FSM. A TCP .. [#fspoofing] Sending a packet with a different source IP address than the address allocated to the host is called sending a :term:`spoofed packet`. -.. [#ftcpoptions] The full list of all TCP options may be found at http://www.iana.org/assignments/tcp-parameters/ +.. [#ftcpoptions] The full list of all TCP options may be found at https://www.iana.org/assignments/tcp-parameters .. [#fackflag] In practice, only the `SYN` segment do not have their `ACK` flag set. @@ -560,7 +560,7 @@ The `TIME\_WAIT` state is different from the other states of the TCP FSM. A TCP .. [#faveragebandwidth] A precise estimation of the maximum bandwidth that can be achieved by a TCP connection should take into account the overhead of the TCP and IP headers as well. -.. [#ftcphosts] See http://fasterdata.es.net/tuning.html for more information on how to tune a TCP implementation +.. [#ftcphosts] See http://fasterdata.es.net/fasterdata/host-tuning/ for more information on how to tune a TCP implementation .. [#frttmes] In theory, a TCP implementation could store the timestamp of each data segment transmitted and compute a new estimate for the round-trip-time upon reception of the corresponding acknowledgement. However, using such frequent measurements introduces a lot of noise in practice and many implementations still measure the round-trip-time once per round-trip-time by recording the transmission time of one segment at a time :rfc:`2988` diff --git a/book-2nd/protocols/tls.rst b/book-2nd/protocols/tls.rst index f60acff..8a5ecba 100644 --- a/book-2nd/protocols/tls.rst +++ b/book-2nd/protocols/tls.rst @@ -348,7 +348,7 @@ inside the TLS record. This sequence number is used to prevent replay attacks. .. rubric:: Footnotes -.. [#fianaTLS] See http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4 +.. [#fianaTLS] See https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4 .. include:: /links.rst diff --git a/book-2nd/protocols/udp.rst b/book-2nd/protocols/udp.rst index 3782029..e2e8434 100644 --- a/book-2nd/protocols/udp.rst +++ b/book-2nd/protocols/udp.rst @@ -62,7 +62,7 @@ In most Unix variants, only processes having system administrator privileges can - a pseudo header :rfc:`2460` containing the source address, the destination address, the packet length encoded as a 32 bits number and a 32 bits bit field containing the three most significant bytes set to 0 and the low order byte set to 17 - the entire UDP segment, including its header - This pseudo-header allows the receiver to detect errors affecting the source or destination addresses placed in the IP layer below. This is a violation of the layering principle that dates from the time when UDP and IP were elements of a single protocol. It should be noted that if the checksum algorithm computes value '0x0000', then value '0xffff' is transmitted. A UDP segment whose checksum is set to '0x0000' is a segment for which the transmitter did not compute a checksum upon transmission. Some :term:`NFS` servers chose to disable UDP checksums for performance reasons when running over IPv4, but this caused `problems `_ that were difficult to diagnose. Over IPv6, the UDP checksum cannot be disabled. A detailed discussion of the implementation of the Internet checksum may be found in :rfc:`1071` + This pseudo-header allows the receiver to detect errors affecting the source or destination addresses placed in the IP layer below. This is a violation of the layering principle that dates from the time when UDP and IP were elements of a single protocol. It should be noted that if the checksum algorithm computes value '0x0000', then value '0xffff' is transmitted. A UDP segment whose checksum is set to '0x0000' is a segment for which the transmitter did not compute a checksum upon transmission. Some :term:`NFS` servers chose to disable UDP checksums for performance reasons when running over IPv4, but this caused `problems `_ that were difficult to diagnose. Over IPv6, the UDP checksum cannot be disabled. A detailed discussion of the implementation of the Internet checksum may be found in :rfc:`1071` Several types of applications rely on UDP. As a rule of thumb, UDP is used for applications where delay must be minimised or losses can be recovered by the application itself. A first class of the UDP-based applications are applications where the client sends a short request and expects a quick and short answer. The :term:`DNS` is an example of a UDP application that is often used in the wide area. However, in local area networks, many distributed systems rely on Remote Procedure Call (:term:`RPC`) that is often used on top of UDP. In Unix environments, the Network File System (:term:`NFS`) is built on top of RPC and runs frequently on top of UDP. A second class of UDP-based applications are the interactive computer games that need to frequently exchange small messages, such as the player's location or their recent actions. Many of these games use UDP to minimise the delay and can recover from losses. A third class of applications are multimedia applications such as interactive Voice over IP or interactive Video over IP. These interactive applications expect a delay shorter than about 200 milliseconds between the sender and the receiver and can recover from losses directly inside the application. @@ -74,7 +74,7 @@ Several types of applications rely on UDP. As a rule of thumb, UDP is used for a .. [#fmtuudp] This limitation is due to the fact that the network layer cannot transport packets that are larger than 64 KBytes. As UDP does not include any segmentation/reassembly mechanism, it cannot split a SDU before sending it. The UDP header consumes 8 bytes and the IPv6 header 60. With IPv4, the IPv4 header only consumes 20 bytes and thus the maximum UDP payload size is 65507 bytes. -.. [#fportnum] The complete list of allocated port numbers is maintained by IANA_ . It may be downloaded from http://www.iana.org/assignments/port-numbers +.. [#fportnum] The complete list of allocated port numbers is maintained by IANA_ . It may be downloaded from https://www.iana.org/assignments/service-names-port-numbers .. [#fephemeral] A discussion of the ephemeral port ranges used by different TCP/UDP implementations may be found in http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html diff --git a/book-2nd/protocols/wifi.rst b/book-2nd/protocols/wifi.rst index ad72c1b..4876def 100644 --- a/book-2nd/protocols/wifi.rst +++ b/book-2nd/protocols/wifi.rst @@ -10,9 +10,9 @@ In the 1970s, after the first experiments with ALOHANet, interest in wireless ne .. index:: WiFi -While most of the frequency ranges of the radio spectrum are reserved for specific applications and require a special licence, there are a few exceptions. These exceptions are known as the `Industrial, Scientific and Medical `_ (ISM) radio bands. These bands can be used for industrial, scientific and medical applications without requiring a licence from the regulator. For example, some radio-controlled models use the 27 MHz ISM band and some cordless telephones operate in the 915 MHz ISM. In 1985, the 2.400-2.500 GHz band was added to the list of ISM bands. This frequency range corresponds to the frequencies that are emitted by microwave ovens. Sharing this band with licensed applications would have likely caused interferences, given the large number of microwave ovens that are used. Despite the risk of interferences with microwave ovens, the opening of the 2.400-2.500 GHz allowed the networking industry to develop several wireless network techniques to allow computers to exchange data without using cables. In this section, we discuss in more detail the most popular one, i.e. the WiFi [IEEE802.11]_ family of wireless networks. Other wireless networking techniques such as `BlueTooth `_ or `HiperLAN `_ use the same frequency range. +While most of the frequency ranges of the radio spectrum are reserved for specific applications and require a special licence, there are a few exceptions. These exceptions are known as the `Industrial, Scientific and Medical `_ (ISM) radio bands. These bands can be used for industrial, scientific and medical applications without requiring a licence from the regulator. For example, some radio-controlled models use the 27 MHz ISM band and some cordless telephones operate in the 915 MHz ISM. In 1985, the 2.400-2.500 GHz band was added to the list of ISM bands. This frequency range corresponds to the frequencies that are emitted by microwave ovens. Sharing this band with licensed applications would have likely caused interferences, given the large number of microwave ovens that are used. Despite the risk of interferences with microwave ovens, the opening of the 2.400-2.500 GHz allowed the networking industry to develop several wireless network techniques to allow computers to exchange data without using cables. In this section, we discuss in more detail the most popular one, i.e. the WiFi [IEEE802.11]_ family of wireless networks. Other wireless networking techniques such as `BlueTooth `_ or `HiperLAN `_ use the same frequency range. -Today, WiFi is a very popular wireless networking technology. There are more than several hundreds of millions of WiFi devices. The development of this technology started in the late 1980s with the `WaveLAN `_ proprietary wireless network. WaveLAN operated at 2 Mbps and used different frequency bands in different regions of the world. In the early 1990s, the IEEE_ created the `802.11 working group `_ to standardise a family of wireless network technologies. This working group was very prolific and produced several wireless networking standards that use different frequency ranges and different physical layers. The table below provides a summary of the main 802.11 standards. +Today, WiFi is a very popular wireless networking technology. There are more than several hundreds of millions of WiFi devices. The development of this technology started in the late 1980s with the `WaveLAN `_ proprietary wireless network. WaveLAN operated at 2 Mbps and used different frequency bands in different regions of the world. In the early 1990s, the IEEE_ created the `802.11 working group `_ to standardise a family of wireless network technologies. This working group was very prolific and produced several wireless networking standards that use different frequency ranges and different physical layers. The table below provides a summary of the main 802.11 standards. ======== ========= ========== =========== ============== From b53125b5d03732c062e643681ccbb91962ea1c25 Mon Sep 17 00:00:00 2001 From: Marcel Waldvogel Date: Fri, 13 Apr 2018 16:44:59 +0200 Subject: [PATCH 5/5] Changed HOSTS.TXT description to match link --- book-2nd/principles/naming.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book-2nd/principles/naming.rst b/book-2nd/principles/naming.rst index 97c9977..43fdd1c 100644 --- a/book-2nd/principles/naming.rst +++ b/book-2nd/principles/naming.rst @@ -84,7 +84,7 @@ Names provide a lot of flexibility compared to addresses. For the network, they .. rubric:: Footnotes -.. [#fhosts] The :term:`hosts.txt` file is not maintained anymore. A historical snapshot retrieved on April 15th, 1984 is available from https://emaillab.jp/dns/hosts/ +.. [#fhosts] The :term:`hosts.txt` file is not maintained anymore. Several historical snapshots from 1974 to 1995 are available from https://emaillab.jp/dns/hosts/ .. [#fdnstimeline] See http://www.donelan.com/dnstimeline.html for a time line of DNS related developments.