Tip 11:
Permanently Cache MAC Addresses
The starting point for optimizing TCP/IP is to cache the Media Access
Control (MAC) address of the destination host computer (the MAC address is the
unique address that the manufacturer burns into a LAN adapter). When the IP
stack encapsulates a data packet destined for another host computer, it must
know the MAC address of the packet's destination. TCP/IP uses the Address
Resolution Protocol (ARP) to determine the MAC address associated with a
specific IP address.
Before you can cache a destination MAC address, first use ping to make sure
the destination system is connected to the network. At the command prompt, enter
ping hostname
or
ping IP address
If your server and the destination host are
properly connected to the network, from the destination host, you'll get a
response similar to the following:
Pinging 130.30.0.8 with 32 bytes of data:
Reply from 130.30.0.8: bytes=32 time<10ms TTL=128
Reply from 130.30.0.8: bytes=32 time<10ms TTL=128
Reply from 130.30.0.8: bytes=32 time<10ms TTL=128
Reply from 130.30.0.8: bytes=32 time<10ms TTL=128
TABLE 1a: Displaying the MAC Address for an IP Address |
| Interface: 130.30.0.9 on Interface 2 |
|
Internet Address |
Physical Address |
Type |
|
130.30.0.7 |
00-aa-00-3b-3b-e7 |
dynamic |
|
130.30.0.8 |
02-07-01-19-d5-56 |
dynamic |
Next, to determine the MAC address associated with a specific IP address,
use the ARP utility. Enter
arp -g
at the command prompt to display the information shown in Table 1a.
The MAC address of node 130.30.0.8 has a physical hardware address of
02-07-01-19-d5-56. If the IP address had been on a different subnet, the
hardware address would be the address of the router linked to the destination
host, not the host. The type is dynamic, which means node 130.30.0.8's MAC
address will be flushed from the cache if not used again within 2 minutes.
Otherwise, it will still be flushed after 10 minutes.
TABLE 1b: A MAC Address Permanently Stored in the ARP Cache |
| Interface: 130.30.0.9 on Interface 2 |
|
Internet Address |
Physical Address |
Type |
|
130.30.0.7 |
00-aa-00-3b-3b-e7 |
dynamic |
|
130.30.0.8 |
02-07-01-19-d5-56 |
static |
You can configure the time a MAC address is stored in the ARP cache (called
cache aging) in the Registry (you need NT 3.51 with Service Pack 4 or NT 4.0).
The ARP cache is a small section of memory in which TCP/IP stores IP addresses
and their associated MAC adapter addresses. Because the ARP cache is always the
first place ARP looks to resolve an IP address, permanently storing these
entries in the cache prevents the server from having to send a broadcast packet
to resolve IP addresses. This process eliminates wasted (i.e., broadcast)
packets and improves network communications by producing packets directed only
to a specific address rather than the entire network. You can permanently store
the MAC address in the ARP cache by using the -s parameter, as follows:
arp -s 130.30.0.8 02-07-01-19-d5-56
The -s parameter
stores the MAC address in the cache permanently, or until you restart the
machine. After adding the MAC address into the cache permanently and then
entering the command
arp -g
you'll notice the type is now static: The MAC address won't be
flushed from the cache, as Table 1b shows.
To boost performance and reduce the number of broadcasts, cache the MAC
addresses of host computers the IIS server regularly interacts with, such as SQL
Server databases on different host systems. Permanently caching certain
addresses minimizes server-to-server communications time--the amount of time a
server takes to process a user request, execute the request (which may involve
communications with other servers such as SQL Server databases), and return a
response to the user.
Tip 12:
Adjust TCP/IP Window Size
Adjust the TCP/IP window size to tune TCP/IP and improve IIS performance.
Microsoft's implementation of TCP/IP uses an algorithm called sliding windows.
Sliding windows transmit a specific number of packets defined by the window size
(the default is 8) and wait for an acknowledgment (ACK) from the destination
host. When it receives packets, it sends an ACK to notify the source host about
which packets it received. If the destination host didn't receive a particular
packet--for example, packet 5 of the eight packets sent--the source host slides
the window (number of packets to send) to packet 5, which then releases packets
9 through 12. The server waits until a timeout period expires to retransmit
packet 5. The window won't slide past packet 5 until it receives an ACK for
packet 5. This method ensures delivery of all packets across unreliable networks
such as the Internet.
For a multiserver Web site that's clustered on one physical LAN segment,
increasing the TCP/IP window size can be especially beneficial because it puts
more data on the physical layer, thus shortening the ACK wait time. Increase the
window size only when communicating across reliable networks, such as a LAN.
Sites located across one or more routers must keep the default window size of
eight because the routers could drop packets, causing the source host to wait to
determine whether to retransmit packets. You can configure the default window
size in the Registry (for information about setting this entry, see Microsoft
Knowledge Base article Q120642).
Tip 13:
Use Analysis Tools
You can analyze your IIS server's performance with a tool such as WebStone
2.0, the current industry standard for measuring Web server benchmark
performance. Developed by Silicon Graphics (SGI), WebStone is available for NT
and UNIX platforms. You can download it for free from http://www.sgi.com.
WebStone lets a series of clients simulate hundreds or thousands of requests
over a configurable amount of time. You can configure WebStone to request
straight HTML, CGI, or Internet Server API (ISAPI) applications.
To further fine-tune NT server operations, take advantage of the many
counters available in Perfmon under the IIS Global object, as mentioned in Tip
8. Monitoring and fine-tuning your servers and network will help to ensure that
your IIS-based Web site operates at peak efficiency.