La particularité de TCP/IP est qu'il n'a pas été conçu pour une type de réseau particulier, et pour un type de machine bien spécifique, il peut s'adapter pour tous les types de matériels. Ill est même très souvent utilisé pour connecter des réseaux complètement différents (hétérogènes) par exemple l'un utilisant de la fibre optique et l'autre du coaxial. De même pour la couche applicative, des ordinateurs de marque différentes qu'ils fonctionnent sous UNIX (que ce soit LINUX, HP-UX, Solaris, AIX, IRIX, ...) ou sous Windows peuvent s'interconnectér. C'est un protocole qui est maintenant éprouvé depuis une dizaines d'années pour relier un réseau complètement hétérogène, il est bien standardisé et très bien documenté. Basées sur ce protocole, des applications ont été développés et sont devenus des "standards", ce sont entre autres FTP (File Transfert Protocol) qui permet le transfert de fichier, TELNET (TELetype NETwork) ou Rlogin (Remote Login) qui permettent la connexion à un ordinateur distant.
TCP (Transmission Control Protocol) se situe au niveau transport du modèle OSI, il s'occupe donc d'établir une liaison virtuelle entre deux ordinateurs.Au niveau de l'ordinateur émetteur, TCP reçoit les données de l'application dans un buffer, les sépare en datagrammes pour pouvoir les envoyer séparément, l'ordinateur distant (qui utilise le même protocole) à la réception doit émettre un accusé de réception, sans celui-ci, le datagramme est réémis. Au niveau de l'ordinateur récepteur, TCP réassemble les datagrammes pour qu'ils soient transmis à l'application dans le bon ordre.
IP (Internet Protocol) IP assure l'acheminement de chaque paquet sur le réseau en choisissant la route la plus appropriée. Pour pouvoir s'y retrouver IP va de pair avec un système d'adressage qui identifie de manière unique les réseaux traversés ainsi que chaque entité d'un réseau (appelé aussi noeud: ordinateur, routeur, ...).
La relation entre TCP et IP et la suivante, TCP fait passer à IP un datagramme accompagné de sa destination, IP ne s'occupe pas de l'ordre d'expédition, c'est TCP qui s'occupe de tout remettre en ordre, il se contente de trouver la meilleure route possible.
Souvent les termes « datagrammes » et « paquet » semblent identiques. En fait, on parle de datagramme lorsqu'il est question de TCP (couche 4 de l'OSI), le datagramme est l'unité de données. On parle de paquet pour les couches réseaux (3 IP) et liaison (2 et 1), c'est est une réalité physique, on peut les voir circuler sur le réseau. Généralement, un paquet contient seulement un datagramme, si bien que concrètement, il y a peu de différence entre les deux.
Tout d'abord on voit que TCP et IP ne couvrent que la couche 4 et 3, les autres couches sont gérées par d'autres protocoles, certes moins connus mais tout aussi importants.
· Niveau physique C'est le support physique de transmission de données, ça peut être de la fibre, du coax, de la paire torsadée, des faisceaux hertziens,...
· Niveau liaison C'est le niveau physique qui s'occupe de la transmission bit à bit des données, il est caractérisé par une adresse unique. Cette valeur est définie en usine et ne peut pas être modifiée.
· Couche réseau IP qui s'occupe de l'acheminement des paquets de données. Cette couche possède une adresse, c'est l'adresse Internet de l'ordinateur, elle est modifiable, elle identifie de manière unique le poste et détermine sur quel réseau particulier il se trouve.
· Couche transport TCP doit permettre de transmettre les paquets que lui envoie IP aux applications elle mêmes, pour cela celle ci doivent être identifiées. On les identifie par un numéro appelé port, par exemple pour les news on utilise le port 119 par défaut.
· Couche session Les protocoles de ce niveau utilise une adresse du socket, c'est la concaténation de l'adresse Internet et de l'adresse du port, elle identifie complètement un ordinateur sur le réseau et l'application.
· Couche présentation Caractérisée par le nom de l'hôte, associé à une adresse Internet, qui permet d'identifier chaque noeud.
· Couche application C'est le nom du noeud, il est formé de trois champs. Sa syntaxe est la suivante: noeud.domaine.(organisation ou pays)
· La classe A caractérisée par un nombre important de machines (max=1.677.215) réparties sur un faible nombre de réseaux (max=127).
· La classe B caractérisé par un nombre moyen de machines (max=65535) réparties sur un nombre moyen de réseaux (max=32767).
· La classe C cararctérisée par peu de machines (max=255) réparties sur un grand nombre de réseaux (max=4.194.303).