首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

Personal tools

IPv6

From Wikipedia, the free encyclopedia

Jump to: navigation, search
The five-layer TCP/IP model
5. Application layer

DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · RTP · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS (and SSL) · SDP · SOAP · GTP · STUN · NTP · (more)

4. Transport layer
TCP · UDP · DCCP · SCTP · RSVP · (more)
3. Network/Internet layer
IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 ·IGMP · (more)
2. Data link layer
802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · (more)
1. Physical layer
Ethernet physical layer · Modems · PLC · SONET/SDH · G.709 · Optical fiber · Coaxial cable · Twisted pair · (more)
This box: view  talk  edit

Internet Protocol version 6 (IPv6) is a network layer for packet-switched internetworks. It is designated as the successor of IPv4, the current version of the Internet Protocol, for general use on the Internet.

The main change brought by IPv6 is a much larger address space that allows greater flexibility in assigning addresses. The extended address length eliminates the need to use network address translation to avoid address exhaustion, and also simplifies aspects of address assignment and renumbering when changing providers. It was not the intention of IPv6 designers, however, to give permanent unique addresses to every individual and every computer.

It is common to see examples that attempt to show that the IPv6 address space is extremely large. For example, IPv6 supports 2128 (about 3.4×1038) addresses, or approximately 5×1028 addresses for each of the roughly 6.5 billion people alive today.[1] In a different perspective, this is 252 addresses for every star in the known universe[2] – a million times as many addresses per star than IPv4 supported for our single planet.

The large number of addresses allows a hierarchical allocation of addresses that may make routing and renumbering simpler. With IPv4, complex CIDR techniques were developed to make the best possible use of a restricted address space. Renumbering, when changing providers, can be a major effort with IPv4, as discussed in RFC 2071 and RFC 2072. With IPv6, however, renumbering becomes largely automatic, because the host identifiers are decoupled from the network provider identifier. Separate address spaces exist for ISPs and for hosts, which are "inefficient" in address space bits but are extremely efficient for operational issues such as changing service providers.

Contents

Introduction

By the early 1990s, it was clear that the change to a classless network introduced a decade earlier was not enough to prevent IPv4 address exhaustion and that further changes to IPv4 were needed.[3] By the beginning of 1992, several proposed systems were being circulated and by the end of 1992, the IETF announced a call for white papers (RFC 1650) and the creation of the "IP, the Next Generation" (IPng Area) of working groups.[3][4]

IPng was adopted by the Internet Engineering Task Force on July 25, 1994 with the formation of several "IP Next Generation" (IPng) working groups.[3] By 1996, a series of RFCs were released defining IPv6, starting with RFC 2460. (Incidentally, IPv5 was not a successor to IPv4, but an experimental flow-oriented streaming protocol intended to support video and audio.)

It is expected that IPv4 will be supported alongside IPv6 for the foreseeable future. IPv4-only nodes (clients or servers) will not be able to communicate directly with IPv6 nodes, and will need to go through an intermediary; see Transition mechanisms below.

Features and differences from IPv4

To a great extent, IPv6 is a conservative extension of IPv4. Most transport- and application-layer protocols need little or no change to work over IPv6; exceptions are applications protocols that embed network-layer addresses (such as FTP or NTPv3).

Applications, however, usually need small changes and a recompile in order to run over IPv6.

Larger address space

The main feature of IPv6 that is driving adoption today is the larger address space: addresses in IPv6 are 128 bits long versus 32 bits in IPv4.

The larger address space avoids the potential exhaustion of the IPv4 address space without the need for network address translation (NAT) and other devices that break the end-to-end nature of Internet traffic. It also makes administration of medium and large networks simpler, by avoiding the need for complex subnetting schemes. Subnetting will, ideally, revert to its purpose of logical segmentation of an IP network for optimal routing and access.

The drawback of the large address size is that IPv6 carries some bandwidth overhead over IPv4, which may hurt regions where bandwidth is limited (header compression can sometimes be used to alleviate this problem). IPv6 addresses are also very difficult to remember; use of the Domain Name System (DNS) is necessary.

Stateless address autoconfiguration (SLAAC)

IPv6 hosts can be configured automatically when connected to a routed IPv6 network using ICMPv6 router discovery messages. When first connected to a network, a host sends a link-local multicast router solicitation request for its configuration parameters; if configured suitably, routers respond to such a request with a router advertisement packet that contains network-layer configuration parameters.[5]

If IPv6 autoconfiguration is not suitable, a host can use stateful configuration (DHCPv6) or be configured manually. Stateless autoconfiguration is only suitable for hosts: routers must be configured manually or by other means.[6]

Multicast

Multicast is part of the base specifications in IPv6, unlike IPv4, where it was introduced later.

IPv6 does not have a link-local broadcast facility; the same effect can be achieved by multicasting to the all-hosts group (FF02::1).

Most environments, however, do not currently have their network infrastructures configured to route multicast: multicast on single subnet will work, but global multicast might not.

Link-local addresses

IPv6 interfaces have link-local addresses in addition to the global addresses that applications usually use. These link-local addresses are always present and never change, which simplifies the design of configuration and routing protocols.

Jumbograms

In IPv4, packets are limited to 64 KiB of payload. When used between capable communication partners and on communication links with a maximum transmission unit (MTU) larger than 65,576 octets (65536 + 40 for the header), IPv6 has optional support for packets over this limit, referred to as jumbograms which can be as large as 4 GiB. The use of jumbograms may improve performance over high-MTU networks.

Network-layer security

IPsec, the protocol for IP network-layer encryption and authentication, is an integral part of the base protocol suite in IPv6; this is unlike IPv4, where it is optional (but usually implemented). IPsec, however, is not widely used at present except for securing traffic between IPv6 Border Gateway Protocol routers.

Mobility

Unlike mobile IPv4, Mobile IPv6 (MIPv6) avoids triangular routing and is therefore as efficient as normal IPv6. This advantage is mostly hypothetical, as neither MIPv4 nor MIPv6 are widely deployed today.

Simpler processing by routers

IPv4 has a checksum field that covers all of the packet header. Since certain fields (such as the TTL field) change during forwarding, the checksum must be recomputed by every router. IPv6 has no error checking at the network layer but instead relies on link layer and transport protocols to perform error checking, which should make forwarding faster.

Deployment status

As of November 2007, IPv6 accounts for a minuscule percentage of the live addresses in the publicly-accessible Internet, which is still dominated by IPv4.

With the notable exceptions of stateless auto-configuration, more flexible addressing and Secure Neighbor Discovery (SEND), many of the features of IPv6 have been ported to IPv4 in a more or less elegant manner. Thus IPv6 deployment is primarily driven by IPv4 address space exhaustion, which has been slowed by the introduction of classless inter-domain routing (CIDR) and the extensive use of network address translation (NAT).

IPv4 exhaustion

Estimates as to when the pool of available IPv4 addresses will be exhausted vary widely, and should be taken with caution. In 2003, Paul Wilson (director of APNIC) stated that, based on then-current rates of deployment, the available space would last until 2023.[7] In September 2005 a report by Cisco Systems reported that the pool of available addresses would be exhausted in as little as 4 to 5 years.[8] As of November 2007, a daily updated report projected that the IANA pool of unallocated addresses would be exhausted in May 2010, with the various Regional Internet Registries using up their allocations from IANA in April 2011.[9] This report also argues that, if assigned but unused addresses were reclaimed and used to meet continuing demand, allocation of IPv4 addresses could continue until 2017.

Government incentives

A number of governments, however, are starting to require support for IPv6 in new equipment. The U.S. Government, for example, has specified that the network backbones of all federal agencies must be capable of deploying IPv6 by 2008,[10] and spent the money to acquire a /16 block (281 trillion network addresses) to start the deployment.[11][12][13]

The Peoples Republic of China has a 5 year plan for deployment of IPv6 called the China Next Generation Internet.

Current deployment

In February 1999, The IPv6 Forum,[14] a world-wide consortium of worldwide leading Internet vendors, Industry Subject Matter Experts, Research & Education Networks was founded to promote the IPv6 technology and raise the market and industry awareness.

To drive the deployment of IPv6, regional and local IPv6 Task Forces were created.[15] On 20 July 2004 ICANN announced that the root DNS servers for the Internet had been modified to support both IPv6 and IPv4. The current integration of IPv6 on existing network infrastructures could be monitored from different sources, for example:

  • Regional Internet Registries (RIR) IPv6 Prefix Allocation[16]
    • IPv6 Transit services[17]
      • Japan ISP IPv6 services[18]

        In addition modern operating systems have IPv6 turned on by default.

        Addressing

        Image:Internet address spaces.svg
        Internet addressing growth map.

        128-bit length

        The primary change from IPv4 to IPv6 is the length of network addresses. IPv6 addresses are 128 bits long (as defined by RFC 4291), whereas IPv4 addresses are 32 bits; where the IPv4 address space contains roughly 4 billion addresses, IPv6 has enough room for 3.4×1038 unique addresses.

        IPv6 addresses are typically composed of two logical parts: a 64-bit (sub-)network prefix, and a 64-bit host part, which is either automatically generated from the interface's MAC address or assigned sequentially. Because the globally unique MAC addresses offer an opportunity to track user equipment, and so users, across time and IPv6 address changes, RFC 3041 was developed to reduce the prospect of user identity being permanently tied to an IPv6 address, thus restoring some of the possibilities of anonymity existing at IPv4. RFC 3041 specifies a mechanism by which time-varying random bit strings can be used as interface circuit identifiers, replacing unchanging and traceable MAC addresses.

        Notation

        IPv6 addresses are normally written as eight groups of four hexadecimal digits, where each group is separated by a colon (:). For example, 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 is a valid IPv6 address.

        If one or more four-digit group(s) is 0000, the zeros may be omitted and replaced with two colons(::). For example, 2001:0db8:0000:0000:0000:0000:1428:57ab can be shortened to 2001:0db8::1428:57ab. Following this rule, any number of consecutive 0000 groups may be reduced to two colons, as long as there is only one double colon used in an address. Leading zeros in a group can also be omitted (as in ::1 for localhost). Thus, the addresses below are all valid and equivalent:

        2001:0db8:0000:0000:0000:0000:1428:57ab
        2001:0db8:0000:0000:0000::1428:57ab
        2001:0db8:0:0:0:0:1428:57ab
        2001:0db8:0:0::1428:57ab
        2001:0db8::1428:57ab
        2001:db8::1428:57ab
        

        Having more than one double-colon abbreviation in an address is invalid, as it would make the notation ambiguous. i.e., Given 2001:0000:0000:FFD3:0000:0000:0000:57ab, 2001::FFD3::57ab could imply 2001:0000:0000:0000:0000:FFD3:0000:57ab, 2001:0000:FFD3:0000:0000:0000:0000:57ab, or any other similar permutation.

        A sequence of 4 bytes at the end of an IPv6 address can also be written in decimal, using dots as separators. This notation is often used with compatibility addresses (see below). This addressing scheme is convenient when dealing with the mixed environment of IPv4 and IPv6 addresses. The general notation is of the form x:x:x:x:x:x:d.d.d.d where x's are the 6 higher order hexadecimal digits whereas d's correspond to the decimal digits of lower order 8 bit pieces of address, as it is the IPv4 format. For example, ::ffff:12.34.56.78 is the same address as ::ffff:0c22:384e and 0:0:0:0:0:ffff:0c22:384e. Usage of this notation is deprecated and unsupported by numerous applications.

        Additional information can be found in RFC 4291 - IP Version 6 Addressing Architecture.

        Literal IPv6 addresses in URLs

        In a URL the IPv6-Address is enclosed in brackets. Example:

        http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/
        

        This notation allows parsing a URL without confusing the IPv6 address and port number:

        https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
        

        This is not only useful but mandated when using shortform:

        https://[2001:db8::1428:57ab]:443/
        

        Additional information can be found in "RFC 2732 - Format for Literal IPv6 Addresses in URL's" and "RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax."

        Network notation

        IPv6 networks are written using CIDR notation.

        An IPv6 network (or subnet) is a contiguous group of IPv6 addresses the size of which must be a power of two; the initial bits of addresses, which are identical for all hosts in the network, are called the network's prefix.

        A network is denoted by the first address in the network and the size in bits of the prefix (in decimal), separated with a slash. For example, 2001:0db8:1234::/48 stands for the network with addresses 2001:0db8:1234:0000:0000:0000:0000:0000 through 2001:0db8:1234:ffff:ffff:ffff:ffff:ffff

        Because a single host can be seen as a network with a 128-bit prefix, you will sometimes see host addresses written followed with /128.

        Kinds of IPv6 addresses

        IPv6 addresses are divided into 3 categories:[19]

        • Unicast Addresses
        • Multicast Addresses
        • Anycast Addresses

        A Unicast address identifies a single network interface. A packet sent to a unicast address is delivered to that specific computer. The following types of addresses are unicast IPv6 addresses:

        Multicast addresses are used to define a set of interfaces that typically belong to different nodes instead of just one. When a packet is sent to a multicast address, the protocol delivers the packet to all interfaces identified by that address. Multicast addresses begin with the prefix FF00::/8, and their second octet identifies the addresses' scope, i.e. the range over which the multicast address is propagated. Commonly used scopes include link-local (0x2), site-local (0x5) and global (0xE).

        Anycast addresses are also assigned to more than one interface, belonging to different nodes. However, a packet sent to an anycast address is delivered to just one of the member interfaces, typically the “nearest” according to the routing protocol’s idea of distance. Anycast addresses cannot be identified easily: they have the structure of normal unicast addresses, and differ only by being injected into the routing protocol at multiple points in the network.

        Special addresses

        There are a number of addresses with special meaning in IPv6:

        Link local
        • ::/128 — the address with all zeros is an unspecified address, and is to be used only in software.
        • ::1/128 — the loopback address is a localhost address. If an application in a host sends packets to this address, the IPv6 stack will loop these packets back to the same host (corresponding to 127.0.0.1 in IPv4).
        • fe80::/10 — The link-local prefix specifies that the address only is valid in the local physical link. This is analogous to the Autoconfiguration IP address 169.254.0.0/16 in IPv4.
        Site local
        • fc00::/7unique local addresses (ULA) are routable only within a set of cooperating sites. They were defined in RFC 4193 as a replacement for site-local addresses (see below). The addresses include a 40-bit pseudorandom number that minimizes the risk of conflicts if sites merge or packets somehow leak out.
        IPv4
        • ::ffff:0:0/96 — this prefix is used for IPv4 mapped addresses (see Transition mechanisms below).
        • 2002::/16 — this prefix is used for 6to4 addressing.
        Multicast
Languages
AD Links