ICS routes TCP/IP packets from a small LAN to the Internet. ICS provides NAT services, mapping individual IP addresses of local computers to unused port numbers in the sharing computer. Because of the nature of the NAT, IP addresses on the local computer are not visible on the Internet. All packets leaving or entering the LAN are sent from or to the IP address of the external adapter on the ICS host computer. Typically, ICS can be used when there are several network interface cards installed on the host computer. In this case, ICS makes an Internet connection available on one network interface to be accessible to one other interface that is explicitly designated as the private network. ICS can also share dial-up, PPPoE and VPN connections. Starting with Windows XP, ICS is integrated with UPnP, allowing remote discovery and control of the ICS host. It also has a Quality of ServicePacket Scheduler component. When an ICS client is on a relatively fast network and the ICS host is connected to the Internet through a slow link, Windows may incorrectly calculate the optimal TCP receive window size based on the speed of the link between the client and the ICS host, potentially affecting traffic from the sender adversely. The ICS QoS component sets the TCP receive window size to the same as it would be if the receiver were directly connected to the slow link. ICS also includes a local DNS resolver in Windows XP to provide name resolution for all network clients on the home network, including non-Windows-based network devices. When connected to a Windows domain, the computer can have a Group Policy to restrict the use of ICS, but when at home, ICS can be enabled.
Limitations
The service is not customizable in terms of which addresses are used for the internal subnet, and contains no provisions for bandwidth limiting or other features. ICS was initially designed to connect only to Windows computers: computers on other operating systems required different steps to utilize ICS. On Windows XP, the server, by default, gets the IP address 192.168.0.1. It provides NAT services to the entire 192.168.0.x subnet, even if the address on the client was set manually, not by the DHCP server. Since Windows 7, the 192.168.137.x subnet has been used by default.