Working with TCP/IP and the Dual IP Stack
The TCP and IP protocols make it possible for
computers to communicate across various networks and the Internet using
network adapters, whether network interface cards, USB-attachable
network adapters, PC Card network adapters, or built-in adapters on the
motherboard. Windows Vista has a dual IP layer architecture in which
both Internet Protocol version 4 (IPv4) and Internet Protocol version 6
(IPv6) are implemented and share common Transport and Frame layers.
IPv4 and IPv6 are used in very different ways. IPv4 has
32-bit addresses and is the primary version of IP used on most
networks, including the Internet. IPv6 has 128-bit addresses and is the
next generation version of IP.
IPv4's 32-bit addresses commonly are expressed as four
separate decimal values, such as 127.0.0.1 or 192.168.1.20. The four
decimal values are referred to as octets because each represents 8 bits
of the 32-bit number. With standard unicast IPv4 addresses, a variable
part of the IP address represents the network ID and a variable part of
the IP address represents the host ID. There is no correlation between
a host's IPv4 address and the internal machine (MAC) address used by
the host's network adapter.
IPv6's 128-bit addresses are divided into eight 16-bit
blocks delimited by colons. Each 16-bit block is expressed in
hexadecimal form. With standard unicast IPv6 addresses, the first 64
bits represent the network ID and the last 64 bits represent the
network interface. An example of an IPv6 address follows:
FEC0:0:0:02BC:FF:BECB:FE4F:961D
Because many IPv6 address blocks are set to 0, a
contiguous set of 0 blocks can be expressed as "::", a notation
referred to as the double-colon notation. Using doublecolon notation,
the two 0 blocks in the previous address are compressed as follows:
FEC0::02BC:FF:BECB:FE4F:961D
If there were three or more 0 blocks, they would be compressed in the same way. For example, FFE8:0:0:0:0:0:0:1 becomes FFE8::1.
When networking hardware is detected during
installation of the operating system, both IPv4 and IPv6 are enabled by
default and there is no need to install a separate component to enable
support for IPv6. Windows Vista's modified IP architecture is referred
to as the Next Generation TCP/IP stack. Table 1 summarizes the key TCP/IP enhancements implemented in the Next Generation TCP/IP stack. Table 2 summarizes the key TCP/IP enhancements that are specific to IPv6.
Table 1: Key TCP/IP Enhancements in the Next Generation TCP/IP Stack
Features Supported
|
Description
|
Automatic Black Hole Router Detection
|
Prevents TCP connections from terminating due to
intermediate routers silently discarding large TCP segments,
retransmissions, or error messages.
|
Automatic Dead Gateway Retry
|
Ensures that an unreachable gateway is checked periodically to determine whether it has become available.
|
Compound TCP
|
Optimizes TCP transfers for the sending host by
increasing the amount of data sent in a connection while ensuring other
TCP connections are not impacted.
|
Extended Selective Acknowledgments
|
Extends the way Selective Acknowledgments (SACKs)
are used, enabling a receiver to indicate up to four noncontiguous
blocks of received data and to acknowledge duplicate packets. This
helps the receiver determine when it has retransmitted a segment
unnecessarily and adjust its behavior to prevent future retransmissions.
|
Modified Fast Recovery Algorithm
|
Provides faster throughput by altering the way
that a sender can increase the sending rate if multiple segments in a
window of data are lost and the sender receives an acknowledgment
stating only part of the data has been successfully received.
|
Neighbor Unreachability Detection for IPv4
|
Determines when neighboring nodes and routers are no longer reachable and reports the condition.
|
Network Diagnostics Framework
|
Provides an extensible framework that helps users recover from and troubleshoot problems with network connections.
|
Receive Window Auto Tuning
|
Optimizes TCP transfers for the host receiving
data by automatically managing the size of the memory buffer (the
receive windows) to use for storing incoming data based on the current
network conditions.
|
Routing Compartments
|
Prevents unwanted forwarding of traffic between
interfaces by associating an interface or a set of interfaces with a
login session that has its own routing tables.
|
SACK-based Loss Recovery
|
Makes it possible to use SACK information to
perform loss recovery when duplicate acknowledgments have been received
and to more quickly recover when multiple segments are not received at
the destination.
|
Spurious Retransmission Timeout Detection
|
Provides correction for sudden, temporary
increases in retransmission timeouts and prevents unnecessary
retransmission of segments.
|
TCP Extended Statistics
|
Helps determine whether a performance bottleneck
for a connection is the sending application, the receiving application,
or the network.
|
Windows Filtering Platform
|
Provides application programming interfaces
(APIs) for extending the TCP/IP filtering architecture so that it can
support additional features.
|
Table 2: Key TCP/IP Enhancements for IPv6
Feature Supported
|
Description
|
DHCPv6-capable DHCP client
|
Extends the DHCP client to support IPv6 and allows stateful address autoconfiguration with a DHCPv6 server.
|
IP Security
|
Allows use of Internet Key Exchange (IKE) and data encryption for IPv6.
|
IPv6 over Point-to-Point Protocol (PPPv6)
|
Allows native IPv6 traffic to be sent over
PPP-based connections, which in turn allows remote access clients to
connect with an IPv6-based Internet service provider (ISP) through
dial-up or PPP over Ethernet (PPPoE)-based connections.
|
Link-Local Multicast Name Resolution (LLMNR)
|
Allows IPv6 hosts on a single subnet without a DNS server to resolve each other's names.
|
Multicast Listener Discovery version 2 (MLDv2)
|
Provides support for source-specific multicast
traffic and is equivalent to Internet Group Management Protocol version
3 (IGMPv3) for IPv4.
|
Random Interface IDs
|
Prevents address scanning of IPv6 addresses based
on the known company IDs of network adapter manufacturers. By default,
Windows Vista generates random interface IDs for nontemporary
autoconfigured IPv6 addresses, including public and link-local
addresses.
|
Symmetric Network Address Translators
|
Maps the internal (private) address and port
number to different external (public) addresses and ports, depending on
the external destination address.
|