Les protocoles réseaux
Les modèles OSI et TCP/IP
Le modèle OSI ou Open Systems Interconnection, créé en 1978 par l' organisation internationale de normalisation (ISO), a pour objectif de constituer un modèle de référence d'un réseau informatique et ceci dans le but de permettre la connexion entre les architectures propriétaires hétérogènes qui existaient. Ce modèle est constitué de sept couches dont chacune correspond à une fonctionnalité particulière d'un réseau. Les quatres premières couches dites basses, assurent l'acheminement des informations entre les extrémités concernées et dépendent du support physique. Les trois autres couches, dites hautes, sont responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Le modèle TCP/IP, insipré du modèle OSI, reprend le système de couches mais n'en contient que cinq. Le modèle TCP/IP l'emporte sur le modèle OSI du fait que ce dernier est trop complexe pour être éfficacement implémenté à l'inverse du TCP/IP qui est beaucoup plus optimisé et efficace.
Encapsulation des données/IP
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.
Exemple d'une communication réseau HTTP
A l'aide de l'analyseur de protocole réseau "Ethereal" j'ai pu sniffer les informations qui arrivent sur le réseau. Je montre ici une communication HTTP, le chargement de la page web http://www.hackademics.fr.
On distingue clairement les différentes couches du modèle TCP/IP, expliquées plus haut dans le document.
Au niveau de la couche "accès réseau"IP
Nous observons le protocole Ethernet dont les deux attributs importants sont les adresses physiques (MAC) des cartes réseaux.
Ethernet II, Src: AsustekC_c9:f7:78 (00:11:d8:c9:f7:78), Dst: 3com_44:8c:88 (00:0a:5e:44:8c:88)
Destination: 3com_44:8c:88 (00:0a:5e:44:8c:88)
Source: AsustekC_c9:f7:78 (00:11:d8:c9:f7:78)
Type: IP (0x0800)
Au niveau de la couche "Internet"
Nous observons le protocole IP dont les deux attributs importants sont les adresses IP source et destination.
Internet Protocol, Src: 192.168.0.70 (192.168.0.70), Dst: 213.251.133.196 (213.251.133.196)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 500
Identification: 0x4152 (16722)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0b03 [correct]
Source: 192.168.0.70 (192.168.0.70)
Destination: 213.251.133.196 (213.251.133.196)
Au niveau de la couche "transport"
Nous observons le protocole TCP qui contient les informations des ports de la connexion.
Transmission Control Protocol, Src Port: 33276 (33276), Dst Port: www (80), Seq: 1, Ack: 1, Len: 448
Source port: 33276 (33276)
Destination port: www (80)
Sequence number: 1 (relative sequence number)
Next sequence number: 449 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Header length: 32 bytes
Flags: 0x0018 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 5840 (scaled)
Checksum: 0x1e95 [incorrect, should be 0x989d]
Options: (12 bytes)
NOP
NOP
Time stamp: tsval 36207655, tsecr 148502841
Au niveau de la couche "application"
Nous observons le protocole HTTP : un client web tente de se connecter sur le site web www.hackademics.fr en utilisant la méthode GET.
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Host: www.hackademics.fr\r\n
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6\r\n
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
Cookie: PHPSESSID=cd212b11276ada1bfa58dce3090575c2\r\n
\r\n
Les modèles OSI et TCP/IP
Le modèle OSI ou Open Systems Interconnection, créé en 1978 par l' organisation internationale de normalisation (ISO), a pour objectif de constituer un modèle de référence d'un réseau informatique et ceci dans le but de permettre la connexion entre les architectures propriétaires hétérogènes qui existaient. Ce modèle est constitué de sept couches dont chacune correspond à une fonctionnalité particulière d'un réseau. Les quatres premières couches dites basses, assurent l'acheminement des informations entre les extrémités concernées et dépendent du support physique. Les trois autres couches, dites hautes, sont responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Le modèle TCP/IP, insipré du modèle OSI, reprend le système de couches mais n'en contient que cinq. Le modèle TCP/IP l'emporte sur le modèle OSI du fait que ce dernier est trop complexe pour être éfficacement implémenté à l'inverse du TCP/IP qui est beaucoup plus optimisé et efficace.
Encapsulation des données/IP
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.
Exemple d'une communication réseau HTTP
A l'aide de l'analyseur de protocole réseau "Ethereal" j'ai pu sniffer les informations qui arrivent sur le réseau. Je montre ici une communication HTTP, le chargement de la page web http://www.hackademics.fr.
On distingue clairement les différentes couches du modèle TCP/IP, expliquées plus haut dans le document.
Au niveau de la couche "accès réseau"IP
Nous observons le protocole Ethernet dont les deux attributs importants sont les adresses physiques (MAC) des cartes réseaux.
Ethernet II, Src: AsustekC_c9:f7:78 (00:11:d8:c9:f7:78), Dst: 3com_44:8c:88 (00:0a:5e:44:8c:88)
Destination: 3com_44:8c:88 (00:0a:5e:44:8c:88)
Source: AsustekC_c9:f7:78 (00:11:d8:c9:f7:78)
Type: IP (0x0800)
Au niveau de la couche "Internet"
Nous observons le protocole IP dont les deux attributs importants sont les adresses IP source et destination.
Internet Protocol, Src: 192.168.0.70 (192.168.0.70), Dst: 213.251.133.196 (213.251.133.196)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 500
Identification: 0x4152 (16722)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0b03 [correct]
Source: 192.168.0.70 (192.168.0.70)
Destination: 213.251.133.196 (213.251.133.196)
Au niveau de la couche "transport"
Nous observons le protocole TCP qui contient les informations des ports de la connexion.
Transmission Control Protocol, Src Port: 33276 (33276), Dst Port: www (80), Seq: 1, Ack: 1, Len: 448
Source port: 33276 (33276)
Destination port: www (80)
Sequence number: 1 (relative sequence number)
Next sequence number: 449 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Header length: 32 bytes
Flags: 0x0018 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 5840 (scaled)
Checksum: 0x1e95 [incorrect, should be 0x989d]
Options: (12 bytes)
NOP
NOP
Time stamp: tsval 36207655, tsecr 148502841
Au niveau de la couche "application"
Nous observons le protocole HTTP : un client web tente de se connecter sur le site web www.hackademics.fr en utilisant la méthode GET.
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Host: www.hackademics.fr\r\n
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6\r\n
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n
Keep-Alive: 300\r\n
Connection: keep-alive\r\n
Cookie: PHPSESSID=cd212b11276ada1bfa58dce3090575c2\r\n
\r\n
Commentaire