1)-Introduction :
TCP/IP désigne
communément une architecture réseau, mais cet acronyme désigne en fait 2
protocoles étroitement liés: un protocole de transport, TCP
(Transmission Control Protocol) qu'on utilise "par-dessus" un
protocole réseau, IP (Internet Protocol). Ce qu'on entend par
"modèle TCP/IP", c'est en fait une architecture réseau en 4
couches dans laquelle les protocoles TCP et IP jouent un rôle
prédominant, car ils en constituent l'implémentation la plus courante. Par abus
de langage, TCP/IP peut donc désigner deux choses: le modèle TCP/IP et
la suite de deux protocoles TCP et IP.
Le modèle TCP/IP, comme nous le verrons plus bas, s'est
progressivement imposé comme modèle de référence en lieu et place du modèle
OSI. Cela tient tout simplement à son histoire. En effet, contrairement au
modèle OSI, le modèle TCP/IP est né d'une implémentation ; la
normalisation est venue ensuite. Cet historique fait toute la particularité de
ce modèle, ses avantages et ses inconvénients.
L'origine de TCP/IP remonte au réseau ARPANET. ARPANET est un réseau de télécommunication conçu par l'ARPA (Advanced Research Projects Agency), l'agence de recherche du ministère américain de la défense (le DOD : Department of Defense). Outre la possibilité de connecter des réseaux hétérogènes, ce réseau devait résister à une éventuelle guerre nucléaire, contrairement au réseau téléphonique habituellement utilisé pour les télécommunications mais considéré trop vulnérable. Il a alors été convenu qu'ARPANET utiliserait la technologie de commutation par paquet (mode datagramme), une technologie émergeante promettante. C'est donc dans cet objectif et ce choix technique que les protocoles TCP et IP furent inventés en 1974. L'ARPA signa alors plusieurs contrats avec les constructeurs (BBN principalement) et l'université de Berkeley qui développait un Unix pour imposer ce standard, ce qui fut fait.
Un protocole est une méthode standard qui permet la communication
entre des processus (s'exécutant éventuellement sur différentes machines),
c'est-à-dire un ensemble de règles et de procédures à respecter pour émettre et
recevoir des données sur un réseau. Il en existe plusieurs selon ce que l'on
attend de la communication. Certains protocoles seront par exemple spécialisés
dans l'échange de fichiers (le FTP), d'autres pourront servir à gérer
simplement l'état de la transmission et des erreurs (c'est le cas du protocole
ICMP), ...
3)-Protocoles
orientés et non orientés connexion :
On classe généralement les protocoles en deux catégories selon le
niveau de contrôle des données que l'on désire :
3.1)-Les protocoles orientés connexion: Il s'agit des protocoles opérant un contrôle de transmission des
données pendant une communication établie entre deux machines, dans un tel
schéma, la machine réceptrice envoie des accusés de réception lors de la
communication, ainsi la machine émettrice est garante de la validité des
données qu'elle envoie. Les données sont ainsi envoyées sous forme de flot. TCP
est un protocole orienté connexion.
3.2)-Les protocoles non orientés connexion: Il s'agit d'un mode de communication dans lequel la machine
émettrice envoie des données sans prévenir la machine réceptrice, et la machine
réceptrice reçoit les données sans envoyer d'avis de réception à la première.
Les données sont ainsi envoyées sous forme de blocs (datagrammes). UDP est un
protocole non orienté connexion.
4)- Les
protocoles TCP / IP :
Les protocoles TCP/IP se situent dans un modèle souvent nommé
"famille de protocoles TCP/IP".
Les protocoles TCP et IP ne sont que deux des membres de la suite
de protocoles IP
4.1)- IP (Internet Protocol, Protocole Internet) :
IP est un protocole qui se charge de l’acheminement des paquets
pour tous les autres protocoles de la famille TCP/IP. Il fournit un système de
remise de données optimisé sans connexion. Le terme «optimisé » souligne le
fait qu’il ne garantit pas que les paquets transportés parviennent à leur
destination, ni qu’ils soient reçus dans leur ordre d’envoi. La fonctionnalité
de somme de contrôle du protocole ne confirme que l’intégrité de l’en-tête IP.
Ainsi, seuls les protocoles de niveau supérieur sont responsables des données
contenues dans les paquets IP (et de leur ordre de réception).
Le protocole IP travaille en mode non connecté, c’est-à-dire que
les paquets émis par le niveau 3 sont acheminés de manière autonome
(datagrammes), sans garantie de livraison.
4.2)-TCP (Transmission Control Protocol, Protocole de
contrôle de la transmission) :
TCP est probablement le protocole IP de niveau supérieur le plus
répandu. TCP fournit un service sécurisé de remise des paquets. TCP fournit un
protocole fiable, orienté connexion, au-dessus d’IP (ou encapsulé à l’intérieur
d’IP). TCP garantit l’ordre et la remise des paquets, il vérifie l’intégrité de
l’en-tête des paquets et des données qu’ils contiennent. TCP est responsable de
la retransmission des paquets altérés ou perdus par le réseau lors de leur
transmission. Cette fiabilité fait de TCP/IP un protocole bien adapté pour la
transmission de données basée sur la session, les applications client-serveur
et les services critiques tels que le courrier électronique.
La fiabilité de TCP a son prix. Les en-têtes TCP requièrent
l’utilisation de bits supplémentaires pour effectuer correctement la mise en
séquence des informations, ainsi qu’un total de contrôle obligatoire pour
assurer la fiabilité non seulement de l’en-tête TCP, mais aussi des données
contenues dans le paquet. Pour garantir la réussite de la livraison des
données, ce protocole exige également que le destinataire accuse réception des
données.
Ces accusés de réception (ACK) génèrent une activité réseau
supplémentaire qui diminue le débit de la transmission des données au profit de
la fiabilité. Pour limiter l’impact de cette contrainte sur la performance, la
plupart des hôtes n’envoient un accusé de réception que pour un segment sur
deux ou lorsque le délai imparti pour un ACK expire.
Sur une connexion TCP entre deux machines du réseau, les messages
(ou paquets TCP) sont acquittés et délivrés en séquence.
4.3)-UDP (User Datagram Protocol):
UDP est un complément du protocole TCP qui offre un service de
datagrammes sans connexion qui ne garantit ni la remise ni l’ordre des paquets
délivrés. Les sommes de contrôle des données sont facultatives dans le
protocole UDP. Ceci permet d’échanger des données sur des réseaux à fiabilité
élevée sans utiliser inutilement des ressources réseau ou du temps de
traitement. Les messages (ou paquets UDP) sont transmis de manière autonome
(sans garantie de livraison.).
Le protocole UDP prend également en charge l’envoi de données d’un
unique expéditeur vers plusieurs destinataires.
Ex: TFTP (trivial FTP) s’appuie sur UDP, NT4 utilise UDP pour les
Broadcast en TCP-IP
4.4)-ICMP (Internet Control Message Protocol) :
ICMP : protocole de messages de contrôle, est un protocole de maintenance.
Il permet à deux systèmes d’un réseau IP de partager des informations d’état et
d’erreur. Utilisé pour les tests et les diagnostics
La commande ping utilise les paquets ICMP de demande d’écho et de
réponse en écho afin de déterminer si un système IP donné d’un réseau
fonctionne. C’est pourquoi l’utilitaire ping est utilisé pour diagnostiquer les
défaillances au niveau d’un réseau IP ou des routeurs.
4.5)-RIP (Routing Information Protocol) :
RIP est un protocole de routage dynamique qui permet l’échange
d’informations de routage sur un inter-réseau. Chaque routeur fonctionnant avec
RIP échange les identificateurs des réseaux qu’il peut atteindre, ainsi que la
distance qui le sépare de ce réseau (nb de sauts=nb de routeurs à traverser).
Ainsi chacun dispose de la liste des réseaux et peut proposer le meilleur
chemin.
4.6)-ARP (Address
Resolution Protocol) :
ARP est
l’acronyme de “ Address Resolution Protocol ”, il est définie dans la RFC 826.
– Le
problème à résoudre est issu de la constatation qu’une adresse IP n’a de sens
que pour la suite de protocole TCP/IP ; celle-ci étant indépendante de la
partie matérielle il faut avoir un moyen d’établir un lien entre ces deux
constituants.
– La
norme Ethernet (vs IEEE) suppose l’identification unique de chaque carte
construite et vendue4.
–
Sur une même liaison physique (lire plus
loin “ même LAN ”), Ethernet par exemple, deux machines peuvent communiquer ⇐⇒elles connaissent leurs adresses physiques respectives.
On suppose
qu’une machine connait sa propre adresse physique par un moyen qui n’est pas
décrit ici (ne fait pas partie du protocole).
Remarque
importante : Cette information n’a pas de sens
dans le cadre d’une liaison de type “ point `a point ” avec un protocole tel
que ppp.
–
Lors du premier échange entre 2 machines d’un même LAN, si les adresses
physiques ne sont pas déjà connues (on verra pourquoi plus loin), la solution à
ce problème passe par l’usage du protocole ARP.
– L’usage d’ARP est complètement transparent pour l’utilisateur.
·
Fonctionnement:
Figure 1-Question ARP
Sur la figure
1 la station Ethernet A (IA,
PA) à besoin de connaitre l’adresse physique de la station Ethernet
B (IB, PB), pour ce faire elle envoie un datagramme de format spécial, dédié
à ARP, qui lui permet de poser la
question (“ Arp question ”) à l’ensemble des machines actives. L’adresse de la
machine qui doit répondre étant l’objet de la question, son adresse (champ
destinataire) est donc remplacée par une
adresse de “broadcast ” (48 bits `a 1).
Toutes les
machines du LAN écoutent cet échange et peuvent mettre à jour leur table de conversion (adresse IP
adresse Ethernet) pour la machine A.
Le “ broadcast
”, coûteux en bande passante, est ainsi utilisé au maximum de ses possibilités.
Sur la figure 2 la réponse de B est du type “ unicast ”.
Remarque :
quand une station Ethernet ne répond plus il y a suppression de l’association
adresse IP - adresse MAC.
Figure 2 -Réponse ARP
Si la station B
ne répond pas, la station continuera à poser la question à intervals réguliers
pendant un temps infini. . .
Il n’est pas
besoin d’utiliser ARP préalablement à chaque échange, car heureusement le
résultat est mémorisé.
En règle générale la durée de vie d’une adresse en mémoire est de l’ordre de 20 minutes et chaque utilisation remet à jour ce compteur.
·
Format du datagramme :
Figure
3-Datagramme ARP
Le datagramme
ci-dessus est encapsulé dans une trame physique.
-HARDWARE TYPE pour spécifier le type
d’adresse physique dans les champs SENDER HA et TARGET HA, c’est 1 pour Ethernet.
-PROTOCOL TYPE pour spécifier le type
d’adresse logique dans les champs SENDER
ADR et TARGET ADR.
-HLEN 1 pour spécifier la longueur de
l’adresse physique (6 octets pour Ethernet).
-HLEN 2 pour spécifier la longueur de
l’adresse logique (4 octets pour IP).
-OPERATION ce champ précise le type de
l’opération, il est nécessaire car la trame est la même pour toutes les
opérations des deux protocoles qui l’utilisent.
SENDER HA adresse physique de l’émetteur
SENDER ADR adresse logique de l’émetteur
TARGET HA adresse physique du destinataire
TARGET ADR adresse logique du destinataire
5)-Présentation du modèle OSI :
OSI signifie Open Systems Interconnexion, ce qui se traduit par
Interconnexion de Systèmes Ouverts. Ce modèle a été mis en place par l'ISO afin
de mettre en place un standard de communications entre les ordinateurs d'un
réseau, c'est-à-dire les règles qui gèrent les communications entre des
ordinateurs. En effet, aux origines des réseaux chaque constructeur avait un
système propre (on parle de système propriétaire). Ainsi de nombreux réseaux incompatibles
coexistaient. C'est la raison pour laquelle l'établissement d'une norme a été
nécessaire.
Le
rôle du modèle OSI consiste à standardiser la communication entre les machines
afin que différents constructeurs puissent mettre au point des produits
(logiciels ou matériels) compatibles (pour peu qu'ils respectent
scrupuleusement le modèle OSI).
L'intérêt
d'un système en couches :
Le
but d'un système en couches est de séparer le problème en différentes parties
(les couches) selon leur niveau d'abstraction.
Chaque
couche du modèle communique avec une couche adjacente (celle du dessus ou celle
du dessous). Chaque couche utilise ainsi les services des couches inférieures
et en fournit à celle de niveau supérieur.
6)-Le modèle OSI :
Le modèle OSI
est un modèle qui comporte 7 couches, tandis que le modèle TCP/IP n'en comporte
que 4. En réalité le modèle TCP/IP a été développé à peu près au même moment
que le modèle OSI, c'est la raison pour laquelle il s'en inspire mais n'est pas
totalement conforme aux spécifications du modèle OSI. Les couches du modèle OSI
sont les suivantes :
Figure
4- Modèle OSI
La couche physique définit la façon dont les données sont
physiquement converties en signaux numériques sur le média de communication
(impulsions électriques, modulation de la lumière, etc.).
La couche liaison données définit
l'interface avec la carte réseau et le partage du média de transmission.
La couche réseau permet de gérer l'adressage et le
routage des données, c'est-à-dire leur acheminement via le réseau.
La couche transport est chargée du transport des données, de
leur découpage en paquets et de la gestion des éventuelles erreurs de
transmission.
La couche session définit l'ouverture et la destruction
des sessions de communication entre les machines du réseau.
La couche présentation définit le format des données manipulées
par le niveau applicatif (leur représentation, éventuellement leur compression
et leur chiffrement) indépendamment du système.
La couche application assure l'interface avec les applications. Il s'agit donc du niveau le plus proche des utilisateurs, géré directement par les logiciels.
7)-Que signifie
TCP/IP?
TCP/IP est
une suite de protocoles. Le sigle
TCP/IP signifie «Transmission Control Protocol/Internet Protocol» et se
prononce «T-C-P-I-P». Il provient des noms des deux protocoles majeurs de la
suite de protocoles, c'est-à-dire les protocoles TCP et IP).
TCP/IP représente d'une certaine façon l'ensemble des règles de communication
sur internet et se base sur la notion adressage IP, c'est-à-dire le fait de
fournir une adresse IP à
chaque machine du réseau afin de pouvoir acheminer des paquets de données.
Etant donné que la suite de protocoles TCP/IP a été créée à l'origine dans un but militaire,
elle est conçue pour répondre à un certain nombre de critères parmi lesquels :
·
Le fractionnement des messages en paquets ;
·
L'utilisation d'un système d'adresses ;
·
L'acheminement des données sur le
réseau (routage) ;
·
Le contrôle des erreurs de transmission de données.
La connaissance de l'ensemble des protocoles TCP/IP n'est pas
essentielle pour un simple utilisateur, au même titre qu'un téléspectateur n'a
pas besoin de connaître le fonctionnement de son téléviseur, ni des réseaux
audiovisuels. Toutefois, sa connaissance est nécessaire pour les personnes
désirant administrer ou maintenir un réseau TCP/IP.
8)-Le
modèle TCP/IP:
Figure 5- Le modèle TCP/IP
Le modèle TCP/IP comporte quatre couches : la couche application,
la couche transport, la couche Internet et la couche d’accès au réseau. Comme
vous pouvez le constater, certaines couches du modèle TCP/IP portent le même
nom que les couches du modèle OSI.
Important: il ne faut pas
confondre les couches des deux modèles, car la couche application comporte des
fonctions différentes dans chaque modèle.
·
La couche application :
Les concepteurs du modèle TCP/IP estimaient que les protocoles de
niveau supérieur devaient inclure les détails des couches session et
présentation. Ils ont donc simplement créé une couche application qui gère les
protocoles de haut niveau, les questions de représentation, le code et le
contrôle du dialogue. Le modèle TCP/IP regroupe en une seule couche tous les
aspects liés aux applications et suppose que les données sont préparées de
manière adéquate pour la couche suivante.
·
La couche transport :
La couche transport est
chargée des questions de qualité de service touchant la fiabilité, le contrôle
de flux et la correction des erreurs. L'un de ses protocoles, TCP (Transmission
Control Protocol - protocole de contrôle de transmission), fournit d'excellents
moyens de créer, en souplesse, des communications réseau fiables, circulant
bien et présentant un taux d'erreurs peu élevé. Le protocole TCP est orienté
connexion. Il établit un dialogue entre l'ordinateur source et l'ordinateur de
destination pendant qu'il prépare les informations de couche application en
unités appelées segments. Un protocole orienté connexion ne signifie pas qu'il
existe un circuit entre les ordinateurs en communication (ce qui correspondrait
à une commutation de circuits). Ce type de fonctionnement indique qu'il y a un
échange de segments de couche 4 entre les deux ordinateurs hôtes afin de
confirmer l'existence logique de la connexion pendant un certain temps. C'est
ce que l'on appelle la commutation de paquets.
·
La couche Internet :
Le rôle de la couche Internet consiste à envoyer des paquets source
à partir d'un réseau quelconque de l’inter-réseau et à les faire parvenir à
destination, indépendamment du trajet et des réseaux traversés pour y arriver.
Le protocole qui régit cette couche est appelé protocole IP (Internet
Protocol). L'identification du meilleur
chemin et la commutation de paquets ont lieu au niveau de cette couche. Pensez
au système postal. Lorsque vous postez une lettre, vous ne savez pas comment
elle arrive à destination (il existe plusieurs routes possibles), tout ce qui
vous importe c'est qu'elle arrive à bon port.
·
La couche d'accès au réseau :
Le nom de cette couche a un sens très large et peut parfois prêter
à confusion. On lui donne également le nom de couche hôte-réseau. Cette couche
se charge de tout ce dont un paquet IP a besoin pour établir une liaison
physique avec l’hôte de destination. Cela comprend les détails sur les
technologies LAN et WAN, ainsi que tous les détails dans les couches physiques
et liaison de données du modèle OSI.
9)-Encapsulation des données:
Lors d'une transmission, les données traversent chacune des couches au niveau
de la machine émettrice. A chaque couche, une information est ajoutée au paquet
de données, il s'agit d'un en-tête, ensemble d'informations qui garantit
la transmission. Au niveau de la machine réceptrice, lors du passage dans
chaque couche, l'en-tête est lu, puis supprimé. Ainsi, à la réception, le
message est dans son état originel...
Figure
6- Encapsulation des données
A
chaque niveau, le paquet de données change d'aspect, car on lui ajoute un
en-tête, ainsi les appellations changent suivant les couches :
·
Le paquet de données est appelé
message au niveau de la couche Application
·
Le message est ensuite encapsulé
sous forme de segment dans la couche Transport
·
Le segment une fois encapsulé
dans la couche Internet prend le nom de datagramme
·
Enfin, on parle de trame au
niveau de la couche Accès réseau
10)-Utilisations de TCP/IP :
Les problèmes
de connectivité en interréseau n’étant pas l’apanage d’Internet, les
entreprises n’ont pas tardé à mettre en œuvre TCP/IP sur leurs réseaux
locaux.
On peut actuellement distinguer 3 types
d’utilisation de ces protocoles :
·
Internet
: il s’agit d’un réseau « public », dont on peut faire partie à
condition
d’obtenir une
adresse IP et un nom de domaine uniques au monde et de participer au routage de
toutes les informations.
·
Intranet :
ce type de réseau fonctionne sur les principes d’Internet mais à
l’échelle
privée, et donc avec moins de contraintes. Un Intranet peut être ou ne pas être
relié à Internet.
·
Extranet :
cette dénomination se rapporte à l’ouverture d’un Intranet à un sous-
Ensemble
restreint et connu d’utilisateurs d’Internet.
11)-Caractéristiques
de TCP/IP :
Le succès de TCP/IP, s’il vient d’abord d’un choix du gouvernement
américain, s’appuit ensuite sur des caractéristiques intéressantes :
·
C’est
un protocole ouvert, les sources (C) en sont disponibles gratuitement et
ont été développés indépendamment d’une architecture particulière,
d’un système d’exploitation particulier, d’une structure commerciale
propriétaire. Ils sont donc théoriquement transportables sur n’importe quel
type de plate-forme, ce qui est prouvé de nos jours.
·
Ce
protocole est indépendant du support physique du réseau. Cela permet à
TCP/IP d’être véhiculée par des supports et des technologies aussi
différents qu’une ligne série, un câble coaxial Ethernet, une liaison louée, un
réseau token-ring, une liaison radio (satellites, “ wireless ”802.11a/b/g), une
liaison FDDI 600Mbits, une liaison par rayon laser, infrarouge, xDSL, ATM,
fibre optique, la liste des supports et des technologies n’est pas exhaustive.
. .
·
Le
mode d’adressage est commun à tous les utilisateurs de TCP/IP quelle que
soit la plate-forme qui l’utilise. Si l’unicité de l’adresse est
respectée, les communications aboutissent même si les hôtes sont aux antipodes.
·
Les
protocoles de hauts niveaux sont standardisés ce qui permet des développements
largement répandus sur tous types de machines.
La majeurs partie des informations relatives à ces protocoles sont
publiées dans les RFCs (Requests For Comments). Les RFCs contiennent les
dernières versions des spécifications de tous les protocoles TCP/IP, ainsi que
bien d’autres informations comme des propositions d’améliorations des outils
actuels, la description de nouveaux protocoles, des commentaires sur la gestion
des réseaux, la liste n’est pas exhaustive.
12)-Les
applications TCP-IP :
v
Modèle client/serveur :
Les applications réseaux fonctionnent sur le modèle client/serveur.
Sur la machine serveur un processus serveur (daemon) traite les requêtes des clients.
Client et serveur dialoguent en échangeant des messages qui contiennent des requêtes
et des réponses.
Prenons par exemple telnet.
Figure 7-
Exemple Telnet
Figure 8 -Modèle
client/serveur
v L’adressage des applicatifs : les ports
Une fois le datagramme transmis à l’hôte destinataire, il doit
parvenir à l’utilisateur (si le système est multi-utilisateur) et à
l’application visée (si le système est multi-tâches).
• sur la machine cliente, l’utilisateur (usager ou programme)
effectue une requête vers une machine IP serveur sur le réseau. (par exemple
telnet host ou ftp host). Cela se traduit par la réservation d’un port de
sortie TCP ou UDP et l’envoi d’un paquet IP à la machine serveur. Ce paquet
contient un message TCP ou UDP avec un numéro de port correspondant à
l’application demandée sur le serveur.
• sur le serveur, la requête est réceptionnée par le pilote IP,
aiguillée vers TCP ou UDP puis vers le port demandé. Le processus serveur
correspondant est à l’écoute des appels sur ce port (par ex: le daemon telnetd
traite les requêtes telnet , le daemon ftpd traite les requêtes ftp ).
• processus client et processus serveur échangent ensuite des
messages.
Des numéros de port (entre 0 et 1023) sont réservés pour les
applications « standards : les ports « bien connus » (Well Known Ports), ils
ont été assignés par l’IANA. Sur la plupart des systèmes ils peuvent être
seulement employés par des processus du système (ou root) ou par des programmes
exécutés par les utilisateurs privilégiés.
D’autres numéros de port sont disponibles pour les applications
développées par les utilisateurs (1024 à 65535).
Figure 9. Ports
applicatifs
On identifie le protocole de communication entre applications par
un numéro de protocole et l’application par un numéro de port.
Par exemple, les serveurs http dialoguent de manière traditionnelle
par le port 80:
http://www.sncf.com/index.htm<=>http:// www.sncf.com:80/index.htm
13)-Comparaison
du modèle OSI et du modèle TCP/IP :
Voici les similitudes et les
différences de ses deux modèles :
Figure 10- Le modèle OSI et le modèle
TCP/IP
v
Similitudes :
• Tous deux comportent des
couches
• Tous deux comportent une
couche application, bien que chacune fournisse des services très différents
• Tous deux comportent des
couches réseau et transport comparables
v Différences :
• TCP/IP intègre la couche
présentation et la couche session dans sa couche application
·
TCP/IP
regroupe les couches physique et liaison de données OSI au sein d’une seule
couche
• TCP/IP semble plus simple,
car il comporte moins de couches
14)- Conclusion:
Les protocoles les plus importants développés pour l’interconnexion de réseaux sont les protocoles d’inter-réseau TCP/IP, souvent appelés protocoles TCP/IP. Le logiciel de protocole TCP/IP fonctionne bien et est capable de gérer de grands réseaux. TCP/IP est utilisé dans de nombreux inter-réseaux privés. Mais aussi dans l’Internet global qui atteint des millions d’utilisateurs répartis sur une certaine de pays.
.
.
.
.
.
Bibliographie
- RFC 826“Ethernet Address Resolution
Protocol : Or converting network protocol addresses to 48.bit Ethernet address
for transmission on Ether-net hardware.” D.C. Plummer. Nov-01-1982. (Format :
TXT=22026 bytes) (Status : STANDARD)
– W. Richard Stevens - TCP/IP Illustrated,
Volume 1 - The protocols -Addison-Wesley
– Douglas Comer - Internetworking with TCP/IP - Principles, protocols, and architecture - Prentice–Hall