On constate que TCP/IP n'est pas concerné par les deux couches basses (physique et liaison) ce qui signifie que n'importe quel protocole à ces niveaux
est utilisable (par exemple Ethernet, Token Ring,...) et que les couches supérieures de l'OSI correspondent, dans TCP/IP, à une seule couche
"application". Les deux couches essentielles de TCP/IP sont la couche réseau avec le protocole IP et la couche transport avec les deux protocoles
exclusifs TCP et UDP.
Adresses IP, ports et sockets
Le protocole P de la couche réseau permet d'identifier une machine sur le réseau Internet grâce à une adresse IP sur 32 bits qui se compose de 4
nombres entiers inférieurs à 256 ; par exemple, 192.34.56.97. Il existe plusieurs types d'adresses qui se répartissent en classes. Il existe actuellement
plusieurs classes d'adresses, les plus connues étant A, B, C, D, E. Les classes D et E sont des classes spéciales, les classes A, B, C sont des classes
courantes qui diffèrent par le nombre de réseaux et le nombre de machines par réseau. La figure ci-dessous explicite ces différentes classes.
On constatera que la classe A correspond à un maximum de 128 réseaux, chacun d'eux pouvant contenir 224 machines ; la classe B correspond à un
maximum de 214 réseaux, chacun d'eux pouvant contenir 216 machines ; enfin la classe C, la plus courante, correspond à un maximum de 221 réseaux,
chacun pouvant contenir 256 machines. La classe D est une classe permettant une diffusion de message sur plusieurs destinataires. La classe E est, pour
l'instant, d'un usage réservé. Les cinq classes se repèrent par les premiers bits, caractéristiques de la classe.
Le protocole IP permet aussi d'identifier une application (ou service) par un port IP. Ainsi, l'accès à une application, fonctionnant sur une machine
donnée, nécessite de connaître l'adresse IP et le port IP (ce qui, comme on le verra plus loin, correspond à la notion de socket).
Les ports sont numérotés de 0 à 1023 pour les applications standards. Par exemple,
HTTP Port 80
FTP Port 20 et Port 21
Gopher Port 70
SMTP Port 25
POP3 Port 110
Telnet Port 23
L'adresse IP est peu commode pour identifier une machine de la part de l'utilisateur qui préfère lui donner un nom. Il faut donc établir dans ce cas une
correspondance entre nom de la machine et l'adresse IP. Cette correspondance est effectuée dans le cadre d'une base de données répartie sur plusieurs
serveurs au niveau mondial : le DNS (Domain Service Name).
Un socket est l'association d'une adresse IP (machine) et d'un port IP (application). Par extension, un socket désigne aussi un ensemble de
fonctionnalités permettant la connexion à une application exécutable sur une machine sur Internet. Cette notion, au départ développée sur les machines
Unix, vaut également maintenant pour les plates formes Windows, l'ensemble des fonctionnalités portant le nom de Winsock et comprenant 44
fonctions différentes. Dans la pratique, cet ensemble est simplifié dans des packages courants. Ainsi, pour Visual Basic, on peut utiliser le package
DSSock.OCX (de Dolphin Systems) qui comporte 22 propriétés et 7 événements ; pour utiliser DSSock, il faut ajouter dans la liste des contrôles de
Visual Basic (VB4), le contrôle DSSock32.OCX qui se trouve dans le sous-répertoire "system" du répertoire "windows" de Windows95. Le principe de
l'utilisation de DSSock est simple : il suffit d'ajouter aux modules que l'on programme le module DSSock.bas qui contient les constantes globales et les
fonctions utilitaires.
exemple : obtenir la correspondance entre l'adresse IP et le nom de la machine sur laquelle on travaille. On crée un projet sous VB4, on ajoute
DSSock.bas au projet, on ajoute le contrôle DSSock dans une feuille de travail Form1 dont le code sera :