internetworking€¦ · colin perkins | | copyright © 2018 the internet • the globally...
TRANSCRIPT
Colin Perkins | https://csperkins.org/ | Copyright © 2018 | This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Internetworking
Networked Systems (H) Lecture 4
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Role of the Network Layer
• Network layer is first end-to-end layer in the OSI reference model
• Responsible for end-to-end delivery of data: • Across multiple link-layer hops and technologies
• Across multiple autonomous systems
• Building an Internet: a set of interconnected networks
2
Data Link
Network
Transport
Session
Presentation
Application
Data Link
Network
Transport
Session
Presentation
Application
Data Link Data Link
Physical Physical
End System End SystemHub
Network Network
Colin Perkins | https://csperkins.org/ | Copyright © 2018
An internet comprises a set of interconnected networks
Interconnecting Networks
Host Host Host
Ethernet
Local ISP
Regional ISP
Tier-1 ISP
End Site
Each network administered separately – an autonomous system (AS) – making independent policy and technology choices
3
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Components of an Internet
• A common end-to-end network protocol • Provide a single seamless service to transport layer
• Delivery of data packets/provisioning of circuits
• Addressing of end systems
• A set of gateway devices (a.k.a. routers) • Implement the common network protocol
• Hide differences in link layer technologies • Framing, addressing, flow control, error detection and correction
• Desire to perform the least amount of translation necessary
4
Colin Perkins | https://csperkins.org/ | Copyright © 2018
The Internet
• The globally interconnected networks running the Internet Protocol (IP) • 1965: Concept of packet switching
• Paul Baran (RAND), Donald Davies (NPL)
• 1969: Wide-area packet networks • ARPANET (US), CYCLADES (France)
• 1973: First non-US ARPANET sites • UCL
• 1974: Initial version of the Internet Protocol • Vint Cerf and Robert Kahn
• 1981: Access to ARPANET broadened to non-DARPA-funded sites • NSF funds access for universities; production internetworking starts
• 1983: Network switched to IPv4
• 1992: Development of IPv6 starts • Initial IETF IPng effort led by Allison Mankin and Scott Bradner
Vint Cerf
Sou
rce:
IEE
E
Robert Kahn
Sou
rce:
IEE
E
© 1974 IEEE. Reprinted, with permission, from IEEE Trans on Comms, Vol Com-22, No 5 May 1974
[9] S. Carr, S. Crocker, and V. Cerf, “HOST-HOST
Communication Protocol In the ARPA Network,” in
Spring Joint Computer Conf., AFIPS Conf. Proc., vol.
36. Montvale, N.J.: AFIPS Press, 1970, pp. 589-597.
[10] A. McKenzie, “HOST/HOST protocol for the ARPA
network,” in Current Network Protocols, Network
Information Cen., Menlo Park, Calif., NIC 8246, Jan.
1972.
[11] L. Pouzin, “Address format in Mitranet,” NIC 14497,
INWG 20, Jan. 1973.
[12] D. Walden, “A system for interprocess
communication in a resource sharing computer
network,” Commun. Ass. Comput. Mach., vol. 15, pp.
221-230, Apr. 1972.
[13] B. Lampson, “A scheduling philosophy for
multiprocessing system,” Commun. Ass. Comput.
Mach., vol. 11, pp. 347-360, May 1968.
[14] F. E. Heart, R. E. Kahn, S. Ornstein, W. Crowther,
and D. Walden, “The interface message processor for
the ARPA computer network,” in Proc. Spring Joint
Computer Conf., AFIPS Conf. Proc., vol. 36.
Montvale, N.J.: AFIPS Press, 1970, pp. 551-567.
[15] N. G. Anslow and J. Hanscoff, “Implementation of
international data exchange networks,” in Computer
Communications: Impacts and Implications, S.
Winkler, Ed. Washington, D. C., 1972, pp. 181-184.
[16] A. McKenzie, “HOST/HOST protocol design
considerations,” INWG Note 16, NIC 13879, Jan.
1973.
[17] R. E. Kahn, “Resource-sharing computer
communication networks”, Proc. IEEE, vol. 60, pp.
1397-1407, Nov. 1972.
[18] Bolt, Beranek, and Newman, “Specification for the
interconnection of a host and an IMP,” Bolt Beranek
and Newman, Inc., Cambridge, Mass., BBN Rep.
1822 (revised), Apr. 1973.
Vinton G. Cerf was born in New Haven,
Conn., in 1943. He did undergraduate work in
mathematics at Stanford University,
Stanford, Calif., and received the Ph.D.
degree in computer science from the
University of California at Los Angeles, Los
Angeles, Calif., in 1972.
He was with IBM in Los Angeles from 1965
through 1967 and consulted and/or worked
part time at UCLA from 1967 through 1972.
Currently he is Assistant Professor of
Computer Science and Electrical Engineering
at Stanford University, and consultant to
Cabledata Associates. Most of his current
research is supported by the Defense Advanced Research Projects Agency
and by the National Science Foundation on the technology and economics
of computer networking. He is Chairman of IFIP TC6.1, an international
network working group which is studying the problem of packet network
interconnection.
Robert E. Kahn (M’65) was born in
Brooklyn, N.Y., on December 23 1938. He
received the B.E.E. degree from the City
College of New York, New York, in 1960,
and the M.A. and Ph.D. degrees from
Princeton University, Princeton, N.J., in 1962
and 1964, respectively.
From 1960 to 1962 he was a Member of the
Technical Staff of Bell Telephone
Laboratories, Murray Hill, N.J., engaged in
traffic and communication studies. From
1964 to 1966 he was a Ford Postdoctoral
Fellow and an Assistant Professor of
Electrical Engineering at the Massachusetts
Institute of Technology, Cambridge, where he worked on communications
and information theory. From 1966 to 1972 he was a Senior Scientist at Bolt
Beranek and Newman, Inc., Cambridge, Mass., where he worked on
computer communications network design and techniques for distributed
computation. Since 1972 he has been with the Advanced Research Projects
Agency, Department of Defense, Arlington, Va.
Dr. Kahn is a member of Tau Beta Pi, Sigma Xi, Eta Kappa Nu, the
Institute of Mathematical Statistics, and the Mathematical Association of
America. He was selected to serve as a National Lecturer for the Assocation
for Computing Machinery in 1972.
5
Donald Davis
Sou
rce:
Wik
iped
ia
Paul Baran
Sou
rce:
Wik
iped
ia
Louis Pouzin
Sou
rce:
Wik
iped
ia
Leonard Kleinrock
Sou
rce:
Inte
rnet
Hal
l of F
ame
Peter Kirstein
Sou
rce:
Inte
rnet
Hal
l of F
ame
Allison Mankin
Sou
rce:
IETF
Scott Bradner
Sou
rce:
Har
vard
Colin Perkins | https://csperkins.org/ | Copyright © 2018
ARPA Network Map, December 1972
Source: RFC 432
6
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Aside: Should “Internet” be Capitalised?
• Yes, when referring to “the Internet” – the global internetwork we happened to build; since proper nouns are always capitalised in English
• No, when referring to “an internet” – the concept of an internetwork; one of many possible networks, since common nouns are not capitalised in English
7
ORIGINAL ARTICLE
What is “internet”? The case for the proper noun and why it isimportant
Morten Bay
Department of Information Studies, University of California Los Angeles, Los Angeles, CA, USA
ARTICLE HISTORYReceived 30 January 2017Accepted 1 June 2017
ABSTRACTAcademics, style manual editors and others have recently pushedfor an elimination of the capitalisation of the word “internet”. Thischoice may have consequences that reach far beyond languageand spelling, as it lends authority to the claim that there could bemore than one “internet”, which in turn is based on a historicalnarrative that is not necessarily accurate. By first exploring themeaning of the word “internet” and subsequently tracing its origins,this article shows how “internet” evolved from an adjectivedescribing a class of networking activities into a proper noundefining the foundation of the current “internet” as early as 1976. Itis shown how the use of “internet” as a common noun emergespost-hoc and may have commercial origins rather than historical.The article concludes by showing how both the current, popular,broad definition of “internet”, as well as its historical roots, make theplural use of the term impossible, and why it should only beconsidered a proper noun, written as Internet.
KEYWORDSInternet; history; noun;definition; ARPA; PARC
Introduction
What is more correct: Internet or internet? Whether the word is capitalised or not mayseem trivial to the casual reader or the non-native English speaker. However, the impor-tance of this discussion reaches far beyond media style guides and correct spelling. It alsohas major consequences for how we perceive the history of networks. As I will show inthe following, the choice of Internet vs. internet can be seen as a manifestation of a dis-pute between prominent, but competing historical narratives, one of which I will show tobe less credible than the other.
From this point forward, I will use the form “internet” when discussing the term in ques-tion. I use “internet” in quotation marks and un-capitalised to be able to discuss the objectof study in a somewhat neutral manner, until the exploration in this article is presented infull. The form “internet” should therefore not be seen as representing any lingual choice,but merely serves as a placeholder for the object of discussion until the full argument hasbeen explored.
CONTACT Morten Bay [email protected]
© 2017 Informa UK Limited, trading as Taylor & Francis Group
INTERNET HISTORIES, 2017VOL. 1, NO. 3, 203–218https://doi.org/10.1080/24701475.2017.1339860
Dow
nloa
ded
by [U
nive
rsity
of G
lasg
ow] a
t 01:
38 2
6 Se
ptem
ber 2
017
M. Bay. What is “internet”? the case for the proper noun and why it is important. Internet Histories, 1(3):203–218, 2017.https://doi.org/10.1080/24701475.2017.1339860
The Internet Protocol (IPv4 and IPv6)
8
Colin Perkins | https://csperkins.org/ | Copyright © 2018
The Internet Protocol
• IP provides an abstraction layer • Transport protocols and applications above
• Assorted data link technologies and physical links below
• A simple, best effort, connectionless, packet delivery service
• Addressing, routing, fragmentation and reassembly
9
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Basic Concepts
• Global inter-networking protocol
• Hour glass protocol stack • Single standard network layer protocol
(IP) • Packet switched network, best effort
service
• Uniform network and host addressing
• Uniform end-to-end connectivity (subject to firewall policy)
• Many transport & application layer protocols
• Range of link-layer technologies supported
IP
TCPSMTP
HTTP RTPSIP
HTMLMIMESDP Codecs
Wi-Fi
EthernetADSL
SONET
UDP
WirelessTwisted Pair
Optical FibrePhysical
Data Link
Network
Transport
Session
Application Presentation
10
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IP Service Model
• Best effort, connectionless, packet delivery • Just send – no need to setup a connection first
• Network makes its best effort to deliver packets, but provides no guarantees • Time taken to transit the network may vary
• Packets may be lost, delayed, reordered, duplicated or corrupted
• The network discards packets it can’t deliver
• Easy to run over any type of link layer
• Fundamental service: can easily simulate a circuit over packets, but simulating packets over a circuit difficult
11
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Best Effort Packet Delivery
0
20
40
60
80
100
120
0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000
RT
T (
ms)
Time (ms)
Measured round-trip time to www.google.comfrom host on Wi-Fi plus ADSL for a 20 second period (4th January 2008, 7pm)
12
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Versions of the Internet Protocol
• Two versions of IP in use: • IPv4 – the current production Internet
• IPv6 – the next generation Internet
• IPv5 was assigned to the Internet Stream Protocol • An experimental multimedia streaming protocol developed between 1979 and 1995
[http://www.ietf.org/rfc/rfc1819.txt], but no longer used
13
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv4 Packet Format
14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Version=4 Header Len
DSCP ECN Total LengthFragment Identifier DF MF Fragment Offset
TTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6 Packet Format
15
Compared to IPv4: simpler header format, larger addresses, removes support for fragmentation, adds flow label
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Version=6 DSCP ECN Flow LabelPayload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Addressing
• Every network interface on every host is intended to have a unique address • Hosts may change address over time
to give illusion of privacy
• Addressable ≠ reachable: firewalls exist in both IPv4 and IPv6
• IPv4 addresses are 32 bits • Example: 130.209.247.112
• Significant problems due to lack of IPv4 addresses → details later
• IPv6 addresses are 128 bits • Example: 2001:4860:4860::8844
16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Fragmentation
• Link layer has a maximum packet size (MTU)
• IPv4 will routers fragment packets that are larger than the MTU • MF bit is set if more fragments follow:
reconstruct using fragment offset and fragment identifier
• DF bit is set → routers shouldn’t fragment, must discard large packets
• IPv6 doesn’t support fragmentation • Hard to implement for high rate links
• End-to-end principle
17
RouterLength = 2000
Length = 1500, MF = 1, fragment offset = 0
Length = 500, MF = 0, fragment offset = 1500
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Loop Protection
• Packets include a forwarding limit: • Set to a non-zero value when the
packet is sent (typically 64 or 128)
• Each router that forwards the packet reduces this value by 1
• If zero is reached, packet is discarded
• Stops packets circling forever if a network problem causes a loop • Assumption: network diameter is
smaller than initial value of forwarding limit
18
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Differentiated Services
• End systems can request special service from the network • Telephony or gaming might prefer low
latency over high bandwidth
• Emergency traffic could be prioritised
• Background software updates might ask for low priority
• Signalled by differentiated service code point (DSCP) field in header
• Provides a hint to the network, not a guarantee • Often stripped at network boundaries
• Difficult economic and network neutrality issues – who is allowed to set the DSCP and what are they charged for doing so?
• IPv6 provides a flow label to group related traffic flows together
19
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Explicit Congestion Notification
• Routers typically respond to network congestion by dropping packets • A “best effort” packet delivery service
• Transport protocols detect the loss, and can request a retransmission if necessary
• Explicit congestion notification gives routers a way to signal congestion is approaching • If ECN=00 explicit congestion notification is
disabled
• If a sending host sets ECN=10 or ECN=01, routers monitor link usage, and can change the field to ECN=11 indicating congestion is imminent
• A host receiving ECN=11 needs to reduce it’s sending rate – or the congested router will start dropping packets
20
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Header Checksum
• IPv4 header contain a checksum to detect transmission errors • Conceptually similar to link-layer
checksum, although uses a different algorithm
• Protects the IP header only, not the payload data protected (must be protected by upper layer protocol, if needed)
• IPv6 does not contain checksum – assumes the data is protected by a link layer checksum
21
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Transport Layer Protocol Identifier
• Network layer packets include the transport layer data as payload
• Must identify what transport layer protocol is used, to pass the data to the correct upper-layer protocol • TCP = 6
• UDP = 17
• DCCP = 33
• ICMP = 1
• Protocols managed by the IANA:http://www.iana.org/assignments/protocol-numbers/
22
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=4 Header
LenDSCP ECN Total Length
Fragment Identifier DF MF Fragment OffsetTTL Upper Layer Protocol Header Checksum
Source Address
Destination Address
(Options – variable length, padded to 32 bit boundary)
Data – variable length
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Version=6 DSCP ECN Flow Label
Payload Length Next Header Hop Limit
Source Address
Destination Address
(Optional Extension Headers – variable length)
Data – variable length
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv4 or IPv6?
• IPv4 has reached end-of-life: insufficient addresses
• IPv6 intended as long term replacement for IPv4 • Primary goal: increase the size of the address space, to allow more hosts on
the network
• Also simplifies the protocol, makes high-speed implementations easier
• Not yet clear if IPv6 will be widely deployed • But, straight-forward to build applications that work with both IPv4 and IPv6
• DNS query using getaddrinfo() will return IPv6 address if it exists, else IPv4 address; all other socket calls use the returned value
• Write new code to support both IPv6 and IPv4
23
Internet Protocol Addresses
24
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Addressing
• How to name hosts in a network? • Is the address an identity or a location?
• Does it name the host, or the location at which it attaches to the network
• How should addresses be allocated? • Hierarchical or flat?
• What is the address format? • Human or machine readable?
• Textual or binary? Structured or unstructured?
• Fixed or variable length? How large?
25
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Identity and Location
• Addresses can denote host identity • Give hosts a consistent address, irrespective of where or when they attach
to the network
• Simple upper-layer protocols • Transport layer and applications unaware of multi-homing or mobility
• Puts complexity in network layer • Network must determine location of host before it can route data
• Often requires in-network database to map host identity to routable address
• E.g., mobile phone numbers
26
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Identity and Location
• Alternatively, an address can indicate the location at which a host attaches to the network
• Address structure matches the network structure • Network can directly route data given an address
• E.g., geographic phone numbers: +44 141 330 4256
• Simplifies network layer, by pushing complexity to the higher layers • Multi-homing and mobility must be handled by transport layer or applications – transport
layer connections break when host moves
27
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Address Allocation
• Are addresses allocated hierarchically? • Allows routing on aggregate addresses
• E.g., phone call to +1 703 243 9422
• Forces address structure to match network topology
• Requires rigid control of allocations
• Or is there a flat namespace? • Flexible allocations, no aggregation → not scalable
28
Route to US without looking at rest of number
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Address Formats
• Textual or binary? Fixed or variable length? • Fixed length binary easier (faster) for machines to process
• Variable length textual easier for humans to read
• Which are you optimising for?
29
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IP Addresses
• IP addresses have the following characteristics: • They specify location of a network interface
• They are allocated hierarchically
• They are fixed length binary values • IPv4: 32 bits
• IPv6: 128 bits
• Domain names are a separate application level namespace
30
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IP Addresses
• Both IPv4 and IPv6 addresses encode location • Addresses are split into a network part and a host part
• A netmask describes the number of bits in the network part
• The network itself has the address with the host part equal to zero
• The broadcast address for a network has all bits of host part equal to one(allows messages to be sent to all hosts on a network)
• A host with several network interfaces will have one IP addresses per interface
• E.g., laptop with an Ethernet interface and a Wi-Fi interface will have two IP addresses
31
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv4 Addresses
• 32 bit binary addresses
32
255.255.240.0Netmask: = 11111111 11111111 11110000 00000000
20 bits → network = 130.209.240.0/20
130.209.247.112IP address: = 10000010 11010001 11110111 01110000
130.209.255.255Broadcast address:
= 10000010 11010001 11111111 11111111
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Aside: Classes of IP address
• IP addresses used to be allocated so the netmask was a multiple of 8 bits
• Class A → a /8 network (~16 million addresses)
• Class B → a /16 network (65536 addresses)
• Class C → a /24 network (256 addresses)
• Inflexible, and wasted addresses
• Arbitrary length netmask allowed since 1993: • The Glasgow SoCS network is a /20
33
Old terminology still used sometimes...
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IP Address Management
• IPv4 has 232 = 4,294,967,296 addresses • IANA administers the pool of unallocated addresses
• Historically would assign addresses directly to ISPs, large enterprises, etc.
• Now, addresses assigned to regional Internet registries (RIRs) as needed: • AfriNIC (Africa), APNIC (Asia-Pacific), ARIN (North America), LACNIC (Latin America and
Caribbean), and RIPE (Europe, Middle East, Central Asia)
• Allocations made one /8 (224 = 16,777,216 addresses) at a time
• RIRs allocate addresses to ISPs and large enterprises within their region; ISPs allocate to their customers
• IANA has allocated all available addresses to RIRs • Last allocation made on 3 February 2011
34
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv4 Address Space Exhaustion
35
Source: Geoff Huston, APNIC 27 December 2017 http://ipv4.potaroo.net/
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv4 Address Space Utilisation
36
Source: Geoff Huston, APNIC 27 December 2017 http://ipv4.potaroo.net/
Colin Perkins | https://csperkins.org/ | Copyright © 2018
The IPv4 Address Space is Fully Used
• In practical terms, we have run out of IPv4 address space
37
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6
• IPv6 provides 128 bit addresses – if deployed it will solve address shortage for a long time
• 2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses
• Approximately 665,570,793,348,866,943,898,599 addresses per square metre of the Earth’s surface
38
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6 Addresses
• 128 bit binary addresses, written as 8 “:” separated 16 bit hexadecimal fields
2a00:1098:0000:0086:1000:0000:0000:0010
• Usually written in a shortened form: [RFC 5952] • Leading zeros in each 16 bit field are suppressed
• A run of more than one consecutive16 bit field that is all zero is omitted and replaced with a “::” (if there is more than one such run, the longest is replaced; if there are several runs of equal length, the first is replaced)
• The “::” must not be used to replace a single 16 bit field
2a00:1098:0:86:1000::10
39
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6 Addresses
• Local identifier part of IPv6 address is 64 bits:
• Can be derived from Ethernet/Wi-Fi MAC address:
• Or randomly chosen, with bit 6 set to zero, to give illusion of privacy
40
2001:0db8:85a3:08d3:1319:8a2e:0370:7334
Local identifier part
48 bit IEEE MAC: 0014:5104:25ea0014:51ff:fe04:25eaExpand to 64 bits:0214:51ff:fe04:25eaInvert bit 6:
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6 Addresses
• Routers advertise network part, hosts auto-configure address:
• Network part is split into global routing prefix (up to 48 bits) and a subnet identifier:
41
Formalises the distinction present in IPv4:130.209.247.112 = 10000010 11010001 11110111 01110000
HostSubnetGlobal routing prefix
Netmask
2001:0db8:85a3:08d3:1319:8a2e:0370:7334
Network part
Colin Perkins | https://csperkins.org/ | Copyright © 2018
IPv6 Deployment Issues
• IPv6 requires changes to every single host, router, firewall, and application...
• Significant deployment challenge!
• Host changes done: MacOS X, Windows, Linux, FreeBSD, Symbian, iOS, Android, etc.
• Backbone routers generally support IPv6, home routers and firewalls are starting to be updated
• Many applications have been updated
42
Colin Perkins | https://csperkins.org/ | Copyright © 2018
• NAT widely deployed for IPv4 • Initially seems simple: no host changes; web browsing and email still work
• But… hugely complicated for peer-to-peer applications → lecture 16
• Very difficult to debug problems, or deploy new classes of application
• IPv6 starting to see large-scale use:
NAT vs. IPv6
43
Source: Geoff Huston, APNIC 27 December 2017 http://bgp.potaroo.net/v6/as2.0/
Colin Perkins | https://csperkins.org/ | Copyright © 2018
Summary
• Internetworking • History of the Internet
• The Internet Protocol: IPv4 and IPv6
• Addressing concepts • Identifiers vs. locators
• Fixed- vs. variable-length
• Flat vs. hierarchical
• Textual vs. binary
• Internet addressing: • IPv4 and address exhaustion
• IPv6
44