In any &link_tcpip; network, IP adresses are used to uniquely identify computers. An IP adress is a 32-bit number, usually written as four numbers from 0 to 255 such as 123.123.123.123 (called the dotted form of an IP address).

Within an isolated network, you can assign freely assign IP addresses as long as each one is unique within the network. However, if the network is connected to the &link_internet;, it is required to use registered IP addresses to avoid duplicates.

TCP/IP stores both the sender and the target IP adresses with every packet that is sent over the network. Once the data has arrived at the target, the recipient can see the IP address of the sender and can respond by sending back data to the sender address in a new connection, reversing the operation.

Any IP address has two parts: a network identifier and the identifier of a particular device within that network, the host identifier.

Since networks vary greatly in size, there are four different IP adress classes. The first few bits of each IP address indicate which of the address class formats it is using. As you can see, even though a 32-bit IP address could theoretically allow for a giant number of computer identifiers, the above scheme limits the number of addresses that can practically be assigned. The large majority of networks are class C networks and will suffer from the "255 hosts" restrictions. As a result, many networks use techniques to economize on the number of IP addresses that are actually visible to the rest of the Internet. These techniques include subnets, IP forwarding, and Classless Inter-Domain Routing.

Most importantly, Internet Service Providers (ISPs) will assign dynamic IPs every time a user connects to the Internet. This allows the ISP to reuse addresses from its pool of addresses instead of having to assign each customer a static ID. As a result, your computer's IP address will vary from time to time every time you connect to the Internet.