Internet Protocol: Difference between revisions
imported>Derek Hodges |
imported>Howard C. Berkowitz (Locator/prefix, identifier, and prefix aggregation) |
||
Line 1: | Line 1: | ||
{{subpages}} | {{subpages}} | ||
The '''Internet Protocol''' (IP) is a [[protocol (computer)]] used for communicating across a heterogeneous network. It is the protocol on which the Internet is built. [[Internet Protocol version 4]] (IPv4)<ref name=RFC0791>{{citation | The '''Internet Protocol''' (IP) is a [[protocol (computer)|protocol]] used for communicating across a heterogeneous network. It is the protocol on which the Internet is built. This article puts the major versions and sub-versions of the basic protocol into a historical context; see [[Internet Protocol version 4]] and [[Internet Protocol version 6]] for the details of design. Presented here are the principle of that design. | ||
While there were earlier laboratory versions, the first deployed version of the [[Internet Protocol version 4]] (IPv4( was specified in January 1980, but, for reasons dealing with [[#locator|locators]] discussed below, that first specification proved inadequate in under two years. <ref name=RFC0760>{{citation | |||
| title = Internet Protocol | |||
| first = J. | last = Postel | |||
| date = January 1980 | |||
| id = RFC0760 | |||
| url = http://www.ietf.org/rfc/rfc0760.txt | |||
| publisher = Internet Engineering Task Force | |||
}}</ref> A slight variation bought about a decade of utility, before serious limitations became obvious. )<ref name=RFC0791>{{citation | |||
| title = Internet Protocol | | title = Internet Protocol | ||
| first = J. | last = Postel | | first = J. | last = Postel | ||
Line 16: | Line 25: | ||
| publisher = Internet Engineering Task Force | | publisher = Internet Engineering Task Force | ||
}}</ref> is the newer standard. | }}</ref> is the newer standard. | ||
== | ==Address structure== | ||
Every IP packet has a source address and a destination address. Within the [[routing domain]] in which these addresses are used, the addresses must be unique. In the global Internet, blocks of addresses are delegated from the [[Internet Assigned Numbers Authority]], part of the [[Internet Corporation for Names and Numbers]], which further delegates blocks of addresses to [[Regional Internet Registry|Regional Internet Registries]] at a roughly continental level. | Every IP packet has a source address and a destination address. Within the [[routing domain]] in which these addresses are used, the addresses must be unique. In the global Internet, blocks of addresses are delegated from the [[Internet Assigned Numbers Authority]], part of the [[Internet Corporation for Names and Numbers]], which further delegates blocks of addresses to [[Regional Internet Registry|Regional Internet Registries]] at a roughly continental level. | ||
There are two fundamental parts of an address: the '''locator''' and the '''identifier'''. While these concepts were used informally, the results of discussions in the early nineties were published in a hazy yet provocative view of the future. <ref name=RFC1992>{{citation | |||
| id = RFC1992 | |||
| title = The Nimrod Routing Architecture | |||
| author = I. Castineyra, N. Chiappa, M. Steenstrup | |||
| date = August 1996 | |||
| url = http://www.ietf.edu/rfc/rfc1992.txt}}</ref> | |||
===Locator=== | |||
By analogy, a locator tells how to get somewhere, such as a street name in geography, or country and area code in [[telephony]]. [[Router]]s make decisions based on the locator, until they are on the final "street" and need to look for the "house number". | |||
While there is considerable variation between IPv4 and IPv6, and within each of these address families, the locator, also called the '''prefix''', is a certain number of bits starting from the left. | |||
===Identifiers=== | |||
Think of a basic locator address as a street, and the identifier as the house name on it. In IPv4, the numbering may be static (i.e., administrator defined) or dynamic (i.e., next available number from a pool). IPv6 also has static and dynamic identifier assignment, but its much longer identifier field length allows '''autoconfiguration''' using a physical identifier defined as unique. This identifier, on [[local area network]]s, is the 48-bit [[medium access control]] address. | |||
===Prefix aggregation=== | |||
Remember that "prefix" is another name for "locator". Think of international telephone calls, where, as soon as the local telephone switch recognizes the international prefix, it will look no farther than the number of digits needed to reach that country. In the North American Numbering Plan for telephones, the basic address is 10-digit: | |||
*3 area code (between a state and a part of a city, based on user population) | |||
*3 exchange (a locality within a reasonably small area, such as a city); a physical telephone switching office will rarely contain the switches for more than five exchanges. Exchanges are unique within area codes, but each area code can have a 945 exchange. | |||
*4 line, unique within the address. Every exchange can have a line 1212. | |||
When telephone switches look at only the international part of a number, they are '''aggregating''' all exchange and line numbers, or national equivalent. Different national numbering plans have different structures, but the international switch does not need to understand it. | |||
In an analogous manner, major Internet routers do a great deal of prefix aggregation. They try to make decisions on a relatively few bits starting at the left, which might identify a large service provider or enterprise. Once the Internet routers deliver packets to the destination indicated by the aggregate, the routers in that location now look at more bits of the prefix, just as once an international telephone call reaches a country, the national switch looks at the next level of detail, area code in North America. Only when the call reaches the area code level of switch does the telephone routing process look for the additional information pointing to an exchange. Only at the final exchange does the switch look for the specific line. | |||
===Need for a large address field=== | |||
One of the problems of Internet Protocol development was that it started as a research project, when there were no local area networks and no personal computers. The first version of the Internet Protocol could interconnect 255 sites, more than anyone thought would be necessary. Large computers at the sites were expected to know the locations of thousands of computers. | |||
Within a year or so of the first specification, it was quickly realized there would be many more than 255 sites, and the sites would be of different size. Since the original IP had no way to indicate the prefix length, various administrative conventions were used to infer the length from the value of the first few bits, but, by the early 1990s, this relatively inflexible structure was wasting a great amount of address space. Allocations tended to be of two sizes: too large and too small. | |||
A number of "just in time" extensions managed to make address allocation more efficient,<ref name=RFC1519>{{citation | |||
| id = RFC1519 | |||
| title = Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy | |||
| author = V. Fuller, T. Li, J. Yu, K. Varadhan | |||
| date = September 1993 | |||
| url = http://www.ietf.org/rfc/rfc1519.txt | |||
}}</ref> but more and more limits appeared, due to the 32 bit total size of IPv4 addresses. While a great many computers could be counted serially within a 32 bit number, the need to split the address into locator and identifier meant that some of the potential numbers were not usable. More and more elaborate workarounds were put into service, but just so much could be done with 32 bits. The management of the address space became especially challenging for [[Internet Service Provider]]s. <ref name=NANOG-98-11>{{citation | |||
| title = Good ISPs Have No Class: Addressing Nuances and Nuisances | |||
| first = Howard C. | last = Berkowitz | |||
| url = http://www.nanog.org/mtg-9811/ppt/avi/index.htm | |||
| date = November 1998 | |||
| journal = North American Network Operators Group}}</ref> | |||
===Need for a new protocol=== | |||
By 1993, it was clear that IPv4 was reaching its limits, and the [[Internet Engineering Task Force]] solicited proposals for "IP, the Next Generation", in conscious imitation of the second ''Star Trek'' series. <ref name=RFC1550>{{citation | |||
| id = RFC1550 | |||
| title = IP: Next Generation (IPng) White Paper Solicitation. | |||
| author = S. Bradner, A. Mankin | |||
| date = December 1993 | |||
|url = http://www.ietf.org/rfc/rfc1550.txt}}</ref> after various user communities expressed their needs, four main proposals emerged, with two combining into what became the new Internet starship, [[IP version 6]]. The first IPv6 specification was published in 1995, but the Internet research and engineering communities continue to refine it.<ref name=RFC1883>{{citation | |||
| id = RFC1883 | |||
| title = Internet Protocol, Version 6 (IPv6) Specification | |||
| author = S. Deering, R. Hinden | |||
| date = December 1995 | |||
| url = http://www.ietf.org/rfc/rfc1883}}</ref> The cited first specification has been superceded; see [[Internet Protocol version 6]] for more current work. | |||
The much larger 128 bit addresses, in IPv6, are not so large because we expect to have 128 bits' worth of unique computer addresses. IPv6 addresses are so long because lengthening the address greatly simplifies the work of separating the locator from the identifier, and having a hierarchy of levels of locators/prefixes. | |||
==Address scope== | |||
{{seealso|Locality of networks}} | |||
The '''scope''' of an address describes the area in which it must be unique.. | |||
[[Intranet]]s have no need to have addresses unique with respect to the global Internet, and, indeed, there are blocks in IPv4 and IPv6 that are defined not to be routable in the global system. One way to extend the lifetime of the increasingly scarce IPv4 address space is to use "registered" IPv4 addresses only on the Internet-facing side of [[network address translator]]s, and use private space in the enterprise side. | [[Intranet]]s have no need to have addresses unique with respect to the global Internet, and, indeed, there are blocks in IPv4 and IPv6 that are defined not to be routable in the global system. One way to extend the lifetime of the increasingly scarce IPv4 address space is to use "registered" IPv4 addresses only on the Internet-facing side of [[network address translator]]s, and use private space in the enterprise side. | ||
[[Extranet]]s may use private space if the address administration does not become overwhelming; extranets of the size of U.S. military networks such as [[NIPRNET]], [[SIPRNET]] and [[JWICS]] have unique address space that is delegated by military administrators. In practice, there is no conflict even if every address on the public Internet were duplicated, because the secure networks have an "air gap" to the Internet; there is no direct connectivity at the IP level. | [[Extranet]]s may use private space if the address administration does not become overwhelming; extranets of the size of U.S. military networks such as [[NIPRNET]], [[SIPRNET]] and [[JWICS]] have unique address space that is delegated by military administrators. In practice, there is no conflict even if every address on the public Internet were duplicated, because the secure networks have an "air gap" to the Internet; there is no direct connectivity at the IP level. | ||
== | ==IP is transmission medium agnostic== | ||
IP architects call it "[[agnosticism|agnostic]]" as to the underlying [[data link protocol]] managing shared access to the medium, [[physical protocol]] managing the access of single devices to the medium, and to the transmission medium,. It commonly runs over multimegabit or gigabit links, but has been demonstrated to operate, in conjunction with the [[Transmission Control Protocol]], over avian media (i.e., carrier pigeons). <ref name=RFC1149>{{citation | IP architects call it "[[agnosticism|agnostic]]" as to the underlying [[data link protocol]] managing shared access to the medium, [[physical protocol]] managing the access of single devices to the medium, and to the transmission medium,. It commonly runs over multimegabit or gigabit links, but has been demonstrated to operate, in conjunction with the [[Transmission Control Protocol]], over avian media (i.e., carrier pigeons). <ref name=RFC1149>{{citation | ||
| title = Standard for the transmission of IP datagrams on avian carriers | | title = Standard for the transmission of IP datagrams on avian carriers | ||
Line 30: | Line 97: | ||
| url = http://www.ietf.org/rfc/rfc1149.txt | | url = http://www.ietf.org/rfc/rfc1149.txt | ||
| publisher = Internet Engineering Task Force | | publisher = Internet Engineering Task Force | ||
}}</ref> | }}</ref><ref name=RFC2549>{{citation | ||
<ref name=RFC2549>{{citation | |||
| title = IP over Avian Carriers with Quality of Service | | title = IP over Avian Carriers with Quality of Service | ||
| first = D. | last = Waitzman | | first = D. | last = Waitzman | ||
Line 38: | Line 104: | ||
| url = http://www.ietf.org/rfc/rfc2549.txt | | url = http://www.ietf.org/rfc/rfc2549.txt | ||
| publisher = Internet Engineering Task Force | | publisher = Internet Engineering Task Force | ||
}}</ref> | }}</ref><ref name=1149impl>{{citation | ||
<ref name=1149impl>{{citation | |||
| title = The highly unofficial CPIP WG | | title = The highly unofficial CPIP WG | ||
| author = Bergen Linux Users Group | | author = Bergen Linux Users Group |
Revision as of 19:55, 31 August 2008
The Internet Protocol (IP) is a protocol used for communicating across a heterogeneous network. It is the protocol on which the Internet is built. This article puts the major versions and sub-versions of the basic protocol into a historical context; see Internet Protocol version 4 and Internet Protocol version 6 for the details of design. Presented here are the principle of that design.
While there were earlier laboratory versions, the first deployed version of the Internet Protocol version 4 (IPv4( was specified in January 1980, but, for reasons dealing with locators discussed below, that first specification proved inadequate in under two years. [1] A slight variation bought about a decade of utility, before serious limitations became obvious. )[2] has been the standard for many years, but Internet Protocol version 6 (IPv6)[3] is the newer standard.
Address structure
Every IP packet has a source address and a destination address. Within the routing domain in which these addresses are used, the addresses must be unique. In the global Internet, blocks of addresses are delegated from the Internet Assigned Numbers Authority, part of the Internet Corporation for Names and Numbers, which further delegates blocks of addresses to Regional Internet Registries at a roughly continental level.
There are two fundamental parts of an address: the locator and the identifier. While these concepts were used informally, the results of discussions in the early nineties were published in a hazy yet provocative view of the future. [4]
Locator
By analogy, a locator tells how to get somewhere, such as a street name in geography, or country and area code in telephony. Routers make decisions based on the locator, until they are on the final "street" and need to look for the "house number".
While there is considerable variation between IPv4 and IPv6, and within each of these address families, the locator, also called the prefix, is a certain number of bits starting from the left.
Identifiers
Think of a basic locator address as a street, and the identifier as the house name on it. In IPv4, the numbering may be static (i.e., administrator defined) or dynamic (i.e., next available number from a pool). IPv6 also has static and dynamic identifier assignment, but its much longer identifier field length allows autoconfiguration using a physical identifier defined as unique. This identifier, on local area networks, is the 48-bit medium access control address.
Prefix aggregation
Remember that "prefix" is another name for "locator". Think of international telephone calls, where, as soon as the local telephone switch recognizes the international prefix, it will look no farther than the number of digits needed to reach that country. In the North American Numbering Plan for telephones, the basic address is 10-digit:
- 3 area code (between a state and a part of a city, based on user population)
- 3 exchange (a locality within a reasonably small area, such as a city); a physical telephone switching office will rarely contain the switches for more than five exchanges. Exchanges are unique within area codes, but each area code can have a 945 exchange.
- 4 line, unique within the address. Every exchange can have a line 1212.
When telephone switches look at only the international part of a number, they are aggregating all exchange and line numbers, or national equivalent. Different national numbering plans have different structures, but the international switch does not need to understand it.
In an analogous manner, major Internet routers do a great deal of prefix aggregation. They try to make decisions on a relatively few bits starting at the left, which might identify a large service provider or enterprise. Once the Internet routers deliver packets to the destination indicated by the aggregate, the routers in that location now look at more bits of the prefix, just as once an international telephone call reaches a country, the national switch looks at the next level of detail, area code in North America. Only when the call reaches the area code level of switch does the telephone routing process look for the additional information pointing to an exchange. Only at the final exchange does the switch look for the specific line.
Need for a large address field
One of the problems of Internet Protocol development was that it started as a research project, when there were no local area networks and no personal computers. The first version of the Internet Protocol could interconnect 255 sites, more than anyone thought would be necessary. Large computers at the sites were expected to know the locations of thousands of computers.
Within a year or so of the first specification, it was quickly realized there would be many more than 255 sites, and the sites would be of different size. Since the original IP had no way to indicate the prefix length, various administrative conventions were used to infer the length from the value of the first few bits, but, by the early 1990s, this relatively inflexible structure was wasting a great amount of address space. Allocations tended to be of two sizes: too large and too small.
A number of "just in time" extensions managed to make address allocation more efficient,[5] but more and more limits appeared, due to the 32 bit total size of IPv4 addresses. While a great many computers could be counted serially within a 32 bit number, the need to split the address into locator and identifier meant that some of the potential numbers were not usable. More and more elaborate workarounds were put into service, but just so much could be done with 32 bits. The management of the address space became especially challenging for Internet Service Providers. [6]
Need for a new protocol
By 1993, it was clear that IPv4 was reaching its limits, and the Internet Engineering Task Force solicited proposals for "IP, the Next Generation", in conscious imitation of the second Star Trek series. [7] after various user communities expressed their needs, four main proposals emerged, with two combining into what became the new Internet starship, IP version 6. The first IPv6 specification was published in 1995, but the Internet research and engineering communities continue to refine it.[8] The cited first specification has been superceded; see Internet Protocol version 6 for more current work.
The much larger 128 bit addresses, in IPv6, are not so large because we expect to have 128 bits' worth of unique computer addresses. IPv6 addresses are so long because lengthening the address greatly simplifies the work of separating the locator from the identifier, and having a hierarchy of levels of locators/prefixes.
Address scope
- See also: Locality of networks
The scope of an address describes the area in which it must be unique..
Intranets have no need to have addresses unique with respect to the global Internet, and, indeed, there are blocks in IPv4 and IPv6 that are defined not to be routable in the global system. One way to extend the lifetime of the increasingly scarce IPv4 address space is to use "registered" IPv4 addresses only on the Internet-facing side of network address translators, and use private space in the enterprise side.
Extranets may use private space if the address administration does not become overwhelming; extranets of the size of U.S. military networks such as NIPRNET, SIPRNET and JWICS have unique address space that is delegated by military administrators. In practice, there is no conflict even if every address on the public Internet were duplicated, because the secure networks have an "air gap" to the Internet; there is no direct connectivity at the IP level.
IP is transmission medium agnostic
IP architects call it "agnostic" as to the underlying data link protocol managing shared access to the medium, physical protocol managing the access of single devices to the medium, and to the transmission medium,. It commonly runs over multimegabit or gigabit links, but has been demonstrated to operate, in conjunction with the Transmission Control Protocol, over avian media (i.e., carrier pigeons). [9][10][11] IP provides computers with communicable addresses that are globally unique.
IP is a connectionless protocol and provides best-effort delivery for its data payload, making no guarantees with respect to reliability. Without notification to either the sender or receiver, packets may become corrupted, lost, reordered, or duplicated. This design reduces the complexity of Internet routers. When reliable delivery is needed, the Internet Protocol Suite has mechanisms at the end-to-end (e.g., Transmission Control Protocol) or application (e.g., Remote Procedure Call) levels.
References
- ↑ Postel, J. (January 1980), Internet Protocol, Internet Engineering Task Force, RFC0760
- ↑ Postel, J. (September 1981), Internet Protocol, Internet Engineering Task Force, RFC0791
- ↑ Deering, S. & Hinden, R. (December 1998), Internet Protocol, Internet Engineering Task Force, RFC2460
- ↑ I. Castineyra, N. Chiappa, M. Steenstrup (August 1996), The Nimrod Routing Architecture, RFC1992
- ↑ V. Fuller, T. Li, J. Yu, K. Varadhan (September 1993), Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy, RFC1519
- ↑ Berkowitz, Howard C. (November 1998), "Good ISPs Have No Class: Addressing Nuances and Nuisances", North American Network Operators Group
- ↑ S. Bradner, A. Mankin (December 1993), IP: Next Generation (IPng) White Paper Solicitation., RFC1550
- ↑ S. Deering, R. Hinden (December 1995), Internet Protocol, Version 6 (IPv6) Specification, RFC1883
- ↑ Waitzman, D. (April 1 1990), Standard for the transmission of IP datagrams on avian carriers, Internet Engineering Task Force, RFC1149
- ↑ Waitzman, D. (April 1 1999), IP over Avian Carriers with Quality of Service, Internet Engineering Task Force, RFC2549
- ↑ Bergen Linux Users Group (April 28 2001, 12:00), The highly unofficial CPIP WG