Da in einem C-Klasse-Netz nur 254 Hosts innerhalb eines logischen IP-Netzes (z.B. 192.168.0.x mit 1<= x <= 254) direkt miteinander kommunizieren können, gibt es ein Problem bei der Verbindung eines Schulnetzes mit dem Internet.
Sollen verschiedene Hosts mehrerer Subnetze miteinender kommunizieren können, werden Router zur Weiterleitung von Datenpaketen, die nicht für das eigene Subnetz bestimmt sind, benötigt. Damit die Weiterleitung in beiden Richtungen klappt, muss die Adressvergabe für jeden Host weltweit eindeutig sein. Da aber die IP-Adressen eines Schulnetzes (z.B. ist 192.168.x.x für lokale LAN's reserviert) nicht im Internet weitergeleitet werden, entsteht genau hier ein Problem.
Der Router muss also die Absenderadresse eines ins Internet abgehenden Datenpaketes in eine für das Internet gültige Adresse umwandeln. Ebenso muss das Antwortpaket aus dem Internet wieder in eine nur im lokalen Netz gültige Adresse zurückübersetzt werden. Dabei muss der Router sich aber auch merken können von welchem Host eine Anfrage kam, um genau diesem auch die dazugehörige Antwort mitteilen zu können.
Das Problem besteht nun darin, das es beim Aufbau der Verbindung nur eine im Internet gültige IP gibt (die wird meistens dynamisch bei jedem PPP-Verbindungsaufbau vom Provider vergeben), aber viele lokale IP's (jeder Host hat eine). Somit ist es nicht so einfach, Antworten aus dem Internet genau dem Host zuzustellen, der das Paket angefordert hat.
Bei der Kommunikation muss man auch auf die Protokolle höherer Netzwerkschichten achten (www, ftp, telnet usw.). Diese nennt man Socket-Verbindungen: Sie werden von der jeweiligen Anwendung (unter Angabe des Paares IP-Nummer und Portnummer) eindeutig mit einer Nummer adressiert. Die Portnummer ist für den jeweiligen Dienst ist festgelegt (www: Port 80 oder 8080 ; ftp: Port 21 usw.). Doch nur die Kombination aus IP und Port reicht immer noch nicht aus (Es könnten ja mehrere telnet-Sitzungen auf einem Client gleichzeitig laufen).
Die Sockets werden also immer aus IP-Adresse und Port-Nummer erstellt. Und genau das nutzt der Router aus. Da ja nur eine öffentliche IP existiert, aber mehrere Portnummern möglich sind, klinkt sich der Router in den IP-Stack ein und manipuliert in allen herausgehenden Paketen den Absenderanteil (LAN-IP:Port auf Internet-IP:Port). Bei eingehenden Paketen kann er dann auf Grund einer internen Tabelle und der Portnummer des ankommenden Paketes die Adresse im LAN ermitteln und den Adressatenanteil des Paketes manipulieren (Internet-IP:Port auf LAN-IP:Port). So kommt das angeforderte Paket genau beim Absender der Anforderung an. Diesen Vorgang nennt man: IP-Masquerading. Genau genommen ist IP-Masquerading (es setzt eine Internet-IP auf mehrere LAN-IP um) eine Sonderform von NAT. Wenn mehrere Internet-IP auf mehrere LAN-IP umgesetzt werden ist es das eigentliche NAT: Network Adress Translation.
Und PAT wiederum ist eine Port Address Translation. Schickt ein Rechner aus dem Internet beispielsweise ein ftp Paket an den ftp Server im Intranet, so sieht der externe Rechner nur die Adresse des Repeaters. Dieser wiederum ersetzt anhand seiner internen Tabelle die Adresse durch die des internen ftp Servers und das Paket kommt am richtigen Rechner an. Das heißt also, an Hand der Portnummer des Dienstes wird die Adresse des richtigen internen Servers gefunden, wobei nach außen alles über eine IP geschieht.