2009 Mar 07
No single network hardware technology can satisfy all constraints, yet applications need universal interconnection. This leads to the need forpoint to point comunications independent of the application and current physical network topology. Thus there is a requirement for a universal set of unique machine identifiers or network names or addresses. A connection works even if the network changes without an application needing to know. Each user views the internet as a single virtual netwotk to which all machines conncect no matter what the actual physical connection, topology and technology.
A name identifies what an object is, an address identifies where an object is,a route identifies how to get there, and a locator specifies where an object can be found. This is in the oder of succesfully lower level representations of an object or host.
A Local Area Network (LAN) is computers physically connected by hubs and switches but no routers.
An IP address is 32 bits. And is usually written in dotted quad notation, which is a decimal value for each byte, msb first; e.g. 220.127.116.11 - where (uually) the most signiificant 16 bits is the Network Address Component and (usually) the lower 16 bits is the Host Address Component. There is a 32 bit field called the Net Mask which has 1's for the part of the IP which is the Network Address and 0's for the Host Address portion of the IP. The Network Address identifies a particular LAN.
There aren't enough IP addresses available for every one who wishes to have one, so the IETF set aside some address numbers for creating private IP networks as specified in RFC 1918, which include: 10.x.y.z, 172.16.y.z, and 192.168.y.z. These are unroutable address because no router knows how to reach these nonunique addresses - they potentially exist on any network.
To solve this a router or firewall may use Network Address Translation (NAT) and map these special addresses to valid IP addresses. This is a gateway functionality. A gateway could map all internal IPs to either: a single valid IP, a valid IP for every internal unroutable IP, or dynamically alocate as needed from a pool of valid IP addresses (smaller than the total numberof internal unroutable IP addresses).
In order for messages to be unambiguously independent of any particulat hardware, it is necessary to define a standard data representation. This means that a Network Byte Order (or Endianness) must be defined for both 32 and 16 bit values. This affects the packet headers. The user data field is exempt from this because the TCP/IP protocols do not know the structure of the data. Network byte order is Big Endian.