Internet Connection Sharing (ICS) is a Windows service that enables one Internet-connected computer to share its Internet connection with other computers on a local area network (LAN).
The computer that shares its Internet connection serves a gateway device, meaning that all traffic between other computers and the Internet go through this computer. ICS provides Dynamic Host Configuration Protocol (DHCP) and network address translation (NAT) services for the LAN computers.
ICS was a feature of Windows 98 SE and all versions of Windows released for personal computers thereafter.
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 (including PSTN, ISDN and ADSL connections), 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 Service Packet 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.