Transmission Contra! Protocol/Internet Protocol (TCP/IP)
is the most commonly used network protocol. It is actually a suite of
protocols that have evolved into the industry standard for network,
internetwork, and Internet connectivity. The main protocols providing
basic TCP/IP services include Internet Protocol (IP), Transmission
Control Protocol (TCP), User Datagram Protocol (UDP), Address Resolution
Protocol (ARP), Internet Control Message Protocol (ICMP), and Internet
Group Management Protocol (IGMP).
1. Benefits of Using TCP/IP
TCP/IP as a protocol suite
was accepted as an industry standard in the 1980s and continues to be
the primary internetworking protocol today! For a default installation
of Windows 7, IPv4 and IPv6 are both installed by default. TCP/IP has
the following benefits:
TCP/IP is the most
common protocol and is supported by almost all network operating
systems. It is the required protocol for Internet access.
TCP/IP is dependable and scalable for use in small and large networks.
Support
is provided for connectivity across interconnected networks,
independent of the operating systems being used at the upper end of the
OSI model or the physical components at the lower end of the OSI model.
TCP/IP
provides standard routing services for moving packets over
interconnected network segments. Dividing networks into multiple sub
networks (or subnets) optimizes network traffic and facilitates network
management.
TCP/IP
is designed to provide data reliability by providing a connection at
the transport layer and verifying that each data segment is received and
passed to the application requiring the data by retransmitting lost
information.
TCP/IP
allows for the classification of data in regard to its importance
(Quality of Service). This allows important time-sensitive streams of
data (such as Voice over IP) to get preferential treatment.
TCP/IP
is designed to be fault tolerant. It is able to dynamically reroute
packets if network links become unavailable (assuming alternate paths
exist).
Protocol
applications can provide services such as Dynamic Host Configuration
Protocol (DHCP) for TCP/IP configuration and Domain Name Service (DNS)
for host name-to-IP address resolution.
Windows
7 continues to support Automatic Private IP Addressing (APIPA) used by
small, local-connection-only networks without a DHCP server, to allow
Windows 7 to automatically assign an IP address to itself.
Support
for NetBIOS over TCP/IP (NetBT) is included in Windows 7. NetBIOS is a
software specification used for identifying computer resources by name
as opposed to IP address. We still use TCP/IP as the network protocol,
so we map the NetBIOS name to an IP address.
The
inclusion of Alternate IP Configuration allows users to have a static
and a DHCP-assigned IP address mapped to a single network adapter. This
feature supports mobile users who roam between different network
segments.
IPv6
incorporates a much larger address space, and more importantly,
incorporates many of the additional features of TCP/IP into a
standardized protocol. This is important because a vendor who claims to
support TCP/IP only has to support the 1980s version, and may not
support additional features such as the Internet protocol security
features of IPSec. IPv6 as a standard includes these features, allowing a
more robust network protocol.
2. Features of TCP/IP
One of the main features of
TCP/IP is that it allows a common structure for network communications
across a wide variety of hardware and operating systems and a lot of
applications that are specifically written to configure and control it.
Several of the features of TCP/IP included with Windows 7 are as
follows:
TCP/IP connectivity
tools allowing access to a variety of hosts across a TCP/IP network.
TCP/IP tools in Windows 7 include clients for HTTP, FTP, TFTP, Telnet,
Finger, and so forth. Server components for the tools are available to
install as well.
Inclusion
of a Simple Network Management Protocol (SNMP) agent that can be used
to monitor performance and resource use of a TCP/IP host, server, or
network hardware devices.
TCP/IP
management and diagnostic tools are provided for maintenance and
diagnostic support. TCP/IP management and diagnostic commands include
ipconfig, arp, ping, nbtstat, netsh, route, nslookup, tracert, and
pathping.
Support for TCP/IP network printing, enabling you to print to networked print devices.
Logical
and physical multihoming, enabling multiple IP addresses on a single
computer for single or multiple network adapters. Multiple network
adapters installed on a single computer are normally associated with
routing for internetwork connectivity.
Support
for internal IP routing, which enables a Windows 7 computer to route
packets between multiple network adapters installed in one machine.
Support
for virtual private networks, which enable you to transmit data
securely across a public network via encapsulated and encrypted packets.
3. Basics of IP Addressing and Configuration
Before you can configure
TCP/IP, you should have a basic understanding of TCP/IP configuration
and addressing. Let's review TCP/IP addressing. To configure a TCP/IP
client, you must specify an IP address, subnet mask, and default gateway
(if you're going to communicate outside your local network). Depending
on your network, you might want to configure a DNS server, domain name,
or maybe even a WINS server.
You can see the Windows 7 TCP/IP version 4 properties window in Figure 1.
I have included it here as I am going to discuss the different
configuration items in the following sections. Although normally set up
for automatic configuration, these parameters have been manually
assigned in this figure for clarity. We will go through the
configuration steps and show how to access this window later in this
section.
3.1. IPv4 Address Types
There are three types of IPv4 addresses: broadcast, multicast, and unicast.
A broadcast address
is read by all hosts that hear it (the broadcast will not go across a
router, so only local devices hear the broadcast). The IPv4 broadcast
address is 255.255.255.255; every single bit is a 1.
A multicast address
is a special address that one or more devices will listen for by
joining a multicast group. Not all the local devices respond and process
the data in the multicast packet, only the devices configured to listen
for it. A multicast address will have a value between 224 and 239 in
the first octet (the leftmost number in the dotted decimal
representation), A multicast example is 224.0.0.5.
A unicast IP address
uniquely identifies a computer or device on the network. An IPv4
unicast address is a four-octet, 32-bit address represented as dotted
decimal (an example is 131.107.1.200). Each number in the dotted decimal
notation is a decimal representation of 8 bits, and the value of each
is going to be between 0 and 255 (255 is the numerically largest value
that 8 bits can represent). A portion of the IPv4 unicast address is
used to identify the network the device is on (or the network of a
destination device), and part is used to identify the individual host on
the local network or the unique host on a remote network. The IPv4
address scheme is the only address space used by the Internet today, and
TCP/IP is the only network protocol used by the Internet today.
3.2. IPv4 Address Classes
When the TCP/IP suite was
accepted as a standard in the 1980s, there were three classes of unicast
IP addresses defined. Depending on the class you use, different parts
of the address show the default network portion of the address and the
host address. We still refer to these addresses by class, but we no
longer really utilize this class structure; we'll explain shortly.
Table 1
shows the three classes of network addresses and the number of networks
and hosts available for each network class as defined by the original
TCP/IP version 4 standard.
Table 1. IPv4 Class Assignments
Network Class | Address Range of First Octet | Number of Unique Networks Available | Number of Unique Hosts per Network |
---|
A | 1-126 | 126 | 16,777,214 |
B | 128-191 | 16,384 | 65,534 |
C | 192-223 | 2,097,152 | 254 |
NOTE
As you probably
noticed, 127 is missing from the address ranges. 127.0.0.1 is the
diagnostic loopback address and because of that, no commercial TCP/IP
range can start with 127.
The number of octets you can
use for either the network ID or the host ID depends on which class you
use for your network. For example, if I own a Class B address of
131.107.0.0, the first two octets (131.107) would be the network ID and
the last two octets would be the host ID. Table 2
shows you the different classes and which octets are the network ID
(represented by X) and which octets are the host ID (represented by Y).
You are allowed to manipulate only the host IDs (Y) for your
organization.
Table 2. IPv4 Network and Host Octets
Class | Example | Network ID | Host ID |
---|
A | 17.1.10.10 (X.YY.Y) | 17 (X) | 1.10.10 (Y.Y.Y) |
B | 131.107.14.240 (X.XY.Y) | 131.107 (X.X) | 14.240 (Y.Y) |
C | 192.168.1.10 (X.X.X.Y) | 192.168.1 (X.X.X) | 10 (Y) |
3.3. IPv4 Subnet Mask
The subnet mask
is used to specify which portion of the unicast IPv4 address defines
the network value and which portion defines the unique host value. The
subnet mask can be shown as either a dotted decimal, as with
255.255.255.0, or as a slash notation (called Classless Inter-Domain
Routing, or CIDR), as in /24. The CIDR representation is the number of
bits turned on in the subnet mask. For example, 255.255.224.0 is
actually 11111 111.11111111.11100000.00000000, which equals 19 bits
turned on, or/19.
The 1980s standard for classful network addressing defined the following subnet masks for each class, as shown in Table 3.
Table 3. IPv4 Default Class Subnet Masks
Class | Default Mask | Slash Notation (CIDR) |
---|
Class A | 255.0.0.0 | /8 |
Class 8 | 255.255.0.0 | /6 |
Class C | 255.255.255.0 | /24 |
Another task of the subnet
mask is to break down the ranges of your network. For example,
255.255.255.224 allows for six subnets. There should be six TCP/IP
ranges that go with the six subnets. In Table 4, we show the different ranges for the different subnet masks.
Table 4. Subnet Mask Ranges
Subnet Mask Number | Ranges |
---|
255 | 1 |
254 | 2 |
252 | 4 |
248 | 8 |
240 | 16 |
224 | 32 |
192 | 64 |
128 | 128 |
Now what does this chart
mean to you? Well, let's say that you have a subnet mask of
255.255.255.224. Because 224 allows for six subnets, the six ranges
would go by 32. Table 5
shows a Class C subnet range for 224. Remember, in any range, you can't
use the first number of the range (network ID) or the last number of
any range (broadcast).
Table 5. Class C 224 Subnet Mask Ranges
Subnets | Range | Usable |
---|
Range 1 | 32-63 | 33-62 |
Range 2 | 64-95 | 65-94 |
Range 3 | 96-127 | 97-126 |
Range 4 | 128-159 | 129-158 |
Range 5 | 160-191 | 161-190 |
Range 6 | 192-223 | 193-222 |
Now if this was a Class B subnet mask, the ranges would include a second octet that you would work with. Table 6 shows a Class B 224 subnet mask.
Table 6. Class B 224 Subnet Mask Range
Subnets | Range | Usable |
---|
Range 1 | 32.0-63.255 | 32.1-63.254 |
Range 2 | 64.0-95.255 | 64.1-95.254 |
Range 3 | 96.0-127.255 | 96.1-127.254 |
Range 4 | 128.0 a-159.255 | 128.1-159.254 |
Range 5 | 160.0-191,255 | 160.1-191.254 |
Range 6 | 192.0-223.255 | 192.1-223.254 |
Now if this was a Class A subnet mask, the ranges would include three octets that you would work with. Table 7 shows a Class A 224 subnet mask.
Table 7. Class A 224 Subnet Mask Range
Subnets | Range | Usable |
---|
Range 1 | 32.0.0-63.255.255 | 32.0.1-63.255.254 |
Range 2 | 64.0.0-95.255.255 | 64.0.1-95.255.254 |
Range 3 | 96.0.0-127.255.255 | 96.0.1-127.255.254 |
Range 4 | 128.0.0-159.255.255 | 128.0.1-159.255.254 |
Range 5 | 160.0.0-191.255.255 | 160.0.1-191.255.254 |
Range 6 | 192.0.0-223.255.255 | 192.0.1-223.255.254 |
Another way to configure TCP/IP is by using IPv6. In the next section, you will look at using IPv6.
3.4. Using IPv6 Addresses
Through most of this
section, we have been referencing TCP/IP as the network protocol.
However, you should remember that it is really a suite of protocols
running in layer 3 and layer 4 of the OS1 model. Internet Protocol (IP)
is the layer 3 protocol responsible for assigning end devices globally
unique addresses (and I mean the whole company for private addresses to
the whole Internet for public addresses).
Back in the 1980s, it was
unimaginable that we would ever need more than 4 billion addresses, but
we do. They (the keepers of the Internet) realized in the 1990s that we
were going to have a problem and decided that a new layer 3 was going to
be needed. This was not an easy task, and integration into the existing
infrastructure was going to take a long time as well.
They (the keepers of the
Internet) came up with an interim solution while the new layer 3
protocol became standardized. The interim solution is known as NAT and
PAT. NAT/ PAT allowed more than one device to use the same IP address on
a private network as long as there was one Internet address available.
Cool enough, but this is not the real solution.
IPv6 is the solution to the
IPv4 address depletion. As time has progressed from the IPv4 standard
acceptance in the 1980s, we have needed new and better functionality.
However, the way the standards process works around the world is that
you can add functionality, but it may or may not be supported in any
vendor's TCP/IPv4 network stack. What happened in IPv6 is not only did
the address space increase in size, but the additional functionality
that may or may not have been included before has become part of the
IPv6 standard.
For example, IPv4 is defined
as having a variable-length header, which is cumbersome because we need
to read an additional piece of data to see how big the header is. Most
of the time, the header stays the same, so why not just fix its length
and add an extension to the header if we need to carry more information?
IPv6 uses a fixed-length IP header with the capability of carrying more
information in an extension to the header (known as an extension header).
What about the layer 4 piece,
TCP and UDP? Those don't need to change; we're changing only layer 3.
What about the MAC address and the Ethernet specification? Those don't
need to change; we're changing only layer 3.
Microsoft has been
including IPv6 in its operating systems since NT4.0; it just has not
been enabled by default. Windows 7 (as did Vista) natively supports both
IPv4 and IPv6. The main differences you will notice between IPv4 and
IPv6 are the format and size of the IP address. IPv6 addresses are 128
bits, typically written as eight groups of four hexadecimal characters.
IPv4 addresses, as you saw earlier, are 32 bits—four decimal
representations of eight bits. Each of the eight groups of characters is
separated by a colon. An example of a valid IPv6 address is
2001:4860:0000:0000:0012:10FF:FECD:OOEF.
Leading zeros can be
omitted, so we can write our example address as
2001:4860:0:0:12:10FF:FECD;EF. Additionally, a double colon can be used
to compress a set of consecutive zeros, so we can write our example
address as 2001:4860::12:10FF: FECD:EF. The IPv6 address is 128 bits;
when you see a double colon, it's a variable that says to fill enough
zeros within the colons to make the address 128 bits. You can have only
one set of double colons; two variables in one address is not going to
work.
Will we see IPv6 take over the
global address space soon? Even with IPv4's lack of address space, we
are going to continue to use it for many years. The integration of IPv6
into the infrastructure is going to happen as a joint venture with IPv4
and IPv6 running at the same time in the devices and on some networks.
There are many mechanisms for enabling IPv6 communications over an IPv4 network, including the following:
Dual stack—a computer or device running both the IPv4 and IPv6 protocol stacks at the same time
ISATAP—Intra-Site Automatic Tunnel Addressing Protocol
6to4—an encapsulation technique for putting IPv6 addresses inside IPv4 addresses
Teredo tunneling—another encapsulation technique for putting IPv6 traffic inside an IPv4 packet
Some IPv6-to-IPv4 dynamic
translation techniques require that a computer's IPv4 address is used as
the last 32 bits of the IPv6 address. When these translation techniques
are used, it is common to write the last 32 bits as you would typically
write an IPv4 address, such as 2001:4850::F8:192.168.122.26.
There are two ways to
receive a TCP/IP address (for either IPv4 or IPv6): You can manually
assign a TCP/IP address to the Windows 7 machine, or the Windows 7
machine can use DHCP.