0% ont trouvé ce document utile (0 vote)
39 vues114 pages

Concepts de Réseaux et Protocoles

Transféré par

nicolasgatta1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues114 pages

Concepts de Réseaux et Protocoles

Transféré par

nicolasgatta1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UMONS

Réseau

Synthèse

Élèves : Enseignant :
Nicolas Gatta Bruno Quoitin

30 août 2023
Table des matières

Table des matières

1 Introduction 8
1.1 Network edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.1 Dial-up Modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.2 Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Signal analogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.4 Modulation digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
[Link] Amplitude Shift Keying (ASK) . . . . . . . . . . . . . . . 9
[Link] Frequency Shift Keying (FSK) . . . . . . . . . . . . . . . 9
[Link] Phase Shift Keying (PSK) . . . . . . . . . . . . . . . . . . 9
[Link] Bit rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
[Link] Symbol rate . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.5 Les problème de transmissions . . . . . . . . . . . . . . . . . . . . . 10
[Link] Bande passante . . . . . . . . . . . . . . . . . . . . . . . . 10
[Link] Atténuation . . . . . . . . . . . . . . . . . . . . . . . . . . 10
[Link] Distorsion temporelle . . . . . . . . . . . . . . . . . . . . . 10
[Link] Bruits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.6 Digital Subscriber Line (DSL) . . . . . . . . . . . . . . . . . . . . . 11
1.1.7 Supports Physiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Network core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Circuit switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
[Link] Multiplexing . . . . . . . . . . . . . . . . . . . . . . . . . 12
[Link] TDM : numerical example . . . . . . . . . . . . . . . . . . 13
1.2.2 Packet switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
[Link] Store and forward . . . . . . . . . . . . . . . . . . . . . . 14
[Link] Packet Size . . . . . . . . . . . . . . . . . . . . . . . . . . 15
[Link] Packet Switching vs Circuit Switching . . . . . . . . . . . 15
1.3 Delay, loss and throughput in packet- switched networks . . . . . . . . . . 16
1.3.1 Queeuing Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Perte de paquet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Protocol layers, service models . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Couche application 18
2.1 Créer une application réseau . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Processus de communication . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Traitement des processus distants . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 Encodage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.2 Les règles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Les conditions de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6.1 trafic variable vs trafic non variable . . . . . . . . . . . . . . . . . . 20
2.6.2 UDP et TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7 WEB et HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7.1 Message HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Synthèse 1
Table des matières

[Link] Message HTTP - requête . . . . . . . . . . . . . . . . . . 21


[Link] Message HTTP - Réponse . . . . . . . . . . . . . . . . . . 21
2.7.2 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
[Link] RTT (round-trip time) . . . . . . . . . . . . . . . . . . . . 22
[Link] Temps de réponse HTTP . . . . . . . . . . . . . . . . . . 22
[Link] Connexion HTTP . . . . . . . . . . . . . . . . . . . . . . 22
[Link] HTTP 1.1 VS 1.0 . . . . . . . . . . . . . . . . . . . . . . . 22
2.7.3 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
[Link] PHP Session ID . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7.4 Proxy/cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
[Link] web caches(proxy server) . . . . . . . . . . . . . . . . . . . 24
[Link] HTTP and caching . . . . . . . . . . . . . . . . . . . . . . 25
2.7.5 HTTP 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.8 Mail élèctronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8.1 Vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8.2 SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[Link] Les trois phases du transfères . . . . . . . . . . . . . . . . 26
[Link] Exemple de fonctionnement . . . . . . . . . . . . . . . . . 27
2.8.3 Mail access protocols . . . . . . . . . . . . . . . . . . . . . . . . . . 27
[Link] Les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . 27
[Link] POP3 Protocol . . . . . . . . . . . . . . . . . . . . . . . . 28
[Link] POP3 versus IMAP . . . . . . . . . . . . . . . . . . . . . 28
2.9 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
[Link] Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . 29
[Link] DNS name space . . . . . . . . . . . . . . . . . . . . . . . 29
[Link] Pourquoi ne pas centraliser le DNS ? . . . . . . . . . . . . 30
[Link] DNS : Récursion . . . . . . . . . . . . . . . . . . . . . . . 30
[Link] DNS : Iteration . . . . . . . . . . . . . . . . . . . . . . . . 30
[Link] DNS : Caching . . . . . . . . . . . . . . . . . . . . . . . . 30

3 Couche transport 31
3.1 Transport-layer services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.2 Où se situe-t-il ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.3 Différents catégories de TLS . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Multiplexing and demultiplexing . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Comment le démultiplexing marche ? . . . . . . . . . . . . . . . . . 32
3.2.3 Multiplexing UDP vs TCP . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Connectionless transport : UDP . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.1 Pourquoi y a-t-il UDP . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.2 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.3 La checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
[Link] Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
[Link] 1’s complement addition . . . . . . . . . . . . . . . . . . . 35
3.4 Principles of Reliable data transfer . . . . . . . . . . . . . . . . . . . . . . 36
3.4.1 Fonction spécifique au RDT . . . . . . . . . . . . . . . . . . . . . . 36

Synthèse 2
Table des matières

3.4.2 Les différentes types de RDT . . . . . . . . . . . . . . . . . . . . . 36


3.4.3 RDT3.0 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . 41
[Link] Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.4 Stop and wait Performance . . . . . . . . . . . . . . . . . . . . . . 42
3.4.5 Pipeline protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
[Link] Augmenter l’utilisation du lien . . . . . . . . . . . . . . . 43
3.4.6 Go-Back-N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
[Link] Utilisation de variable . . . . . . . . . . . . . . . . . . . . 44
[Link] Go-back-N sender . . . . . . . . . . . . . . . . . . . . . . . 45
[Link] Go-back-N receiver . . . . . . . . . . . . . . . . . . . . . . 45
[Link] In action . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.7 Selective Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
[Link] Utilisation de variable . . . . . . . . . . . . . . . . . . . . 47
[Link] Selective Repeat sender . . . . . . . . . . . . . . . . . . . 48
[Link] Selective Repeat receiver . . . . . . . . . . . . . . . . . . . 48
[Link] In action . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
[Link] Selective Repeat : space of seq. #s . . . . . . . . . . . . . 50
[Link] Selective Repeat : Dilemme . . . . . . . . . . . . . . . . . 50
3.5 Connection-oriented transport : TCP . . . . . . . . . . . . . . . . . . . . . 51
3.5.1 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.2 TCP : Maximum Segment Size . . . . . . . . . . . . . . . . . . . . 51
[Link] MSS Trade-off . . . . . . . . . . . . . . . . . . . . . . . . 51
[Link] MSS "Negotiation" . . . . . . . . . . . . . . . . . . . . . . 52
3.5.3 Le problème des petits paquets . . . . . . . . . . . . . . . . . . . . 52
3.5.4 TCP : sequence numbers and ACKs . . . . . . . . . . . . . . . . . . 52
3.5.5 TCP : RTT et timeout . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.5.6 TCP : reliable data transfer . . . . . . . . . . . . . . . . . . . . . . 54
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
[Link] TCP Sender . . . . . . . . . . . . . . . . . . . . . . . . . . 54
[Link] TCP : retransmission scenarios . . . . . . . . . . . . . . . 55
[Link] TCP : ACK generation details . . . . . . . . . . . . . . . 56
[Link] TCP : Fast Retransmit . . . . . . . . . . . . . . . . . . . . 57
3.5.7 TCP Controler Flow . . . . . . . . . . . . . . . . . . . . . . . . . . 58
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
[Link] Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
[Link] TCP Flow Control – corner cases . . . . . . . . . . . . . . 59
[Link] TCP Flow Control – achieved throughput . . . . . . . . . 59
3.5.8 Connection management . . . . . . . . . . . . . . . . . . . . . . . . 60
[Link] Three-way handshake . . . . . . . . . . . . . . . . . . . . 60
[Link] Closing a connection . . . . . . . . . . . . . . . . . . . . . 61
[Link] TCP client cycle . . . . . . . . . . . . . . . . . . . . . . . 62
[Link] DDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6 TCP congestion control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.1 Congestion Collapse . . . . . . . . . . . . . . . . . . . . . . . . . . 63
[Link] Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Synthèse 3
Table des matières

[Link] Self-clocking . . . . . . . . . . . . . . . . . . . . . . . . . . 63
[Link] Controlling the sending rate . . . . . . . . . . . . . . . . . 64
3.6.2 Additive Increase, Multiplicative Decrease . . . . . . . . . . . . . . 64
[Link] Approche . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
[Link] En pratique . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.3 Slow Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
[Link] Fast Recovery . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 Couche Réseau 66
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.2 Deux fonctions clés de la couche réseau . . . . . . . . . . . . . . . . 66
[Link] Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . 66
[Link] Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.2 Circuit Switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
[Link] Element Of VC Network . . . . . . . . . . . . . . . . . . . 67
[Link] Virtual Circuit . . . . . . . . . . . . . . . . . . . . . . . . 67
[Link] Packet(in a VC network) . . . . . . . . . . . . . . . . . . . 67
4.2.3 Packet-switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
[Link] Éléments des réseaux de datagrammes . . . . . . . . . . . 68
4.3 What’s inside a router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3.1 Vue d’ensemble de l’architecture du routeur . . . . . . . . . . . . . 69
[Link] Key router functions . . . . . . . . . . . . . . . . . . . . . 69
[Link] Input port functions . . . . . . . . . . . . . . . . . . . . . 69
[Link] Switching via Memory . . . . . . . . . . . . . . . . . . . . 69
[Link] Switching via a Bus . . . . . . . . . . . . . . . . . . . . . 69
[Link] Switching via a switched backplane . . . . . . . . . . . . . 70
[Link] Output port queueing : why ? . . . . . . . . . . . . . . . . 70
[Link] Output port packet scheduling . . . . . . . . . . . . . . . 70
[Link] Input port queueing . . . . . . . . . . . . . . . . . . . . . 71
[Link] HOL blocking solution . . . . . . . . . . . . . . . . . . . . 71
4.4 IP : Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4.1 Datagram format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
[Link] La couche réseau de l’Internet . . . . . . . . . . . . . . . . 72
[Link] IP : header format . . . . . . . . . . . . . . . . . . . . . . 72
[Link] IP fragmentation . . . . . . . . . . . . . . . . . . . . . . . 73
4.4.2 Adressage IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
[Link] Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 74
[Link] Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
[Link] Hiérarchie à deux niveaux . . . . . . . . . . . . . . . . . . 74
[Link] Adressage par classe . . . . . . . . . . . . . . . . . . . . . 75
[Link] IP Networks . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Synthèse 4
Table des matières

[Link] Sous-réseau . . . . . . . . . . . . . . . . . . . . . . . . . . 75
[Link] Taille du sous-réseau . . . . . . . . . . . . . . . . . . . . . 76
[Link] Arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . 77
[Link] Masque de sous-réseau de longueur fixe (FLSM) . . . . . . 77
[Link] Masque de sous-réseau à longueur variable (VLSM) . . . . 77
[Link] Sous-réseaux spéciaux . . . . . . . . . . . . . . . . . . . . 77
[Link] L’adressage sans classe . . . . . . . . . . . . . . . . . . . . 78
4.4.3 Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
[Link] IP Forwarding . . . . . . . . . . . . . . . . . . . . . . . . 79
[Link] Table de transfert IP . . . . . . . . . . . . . . . . . . . . . 79
[Link] Longest Prefix Matching (LPM) . . . . . . . . . . . . . . . 80
[Link] Comment en avoir une IP ? . . . . . . . . . . . . . . . . . 81
[Link] Adressage hiérarchique : agrégation de routes . . . . . . . 81
[Link] IP Statique . . . . . . . . . . . . . . . . . . . . . . . . . . 81
[Link] Adresses locales de liaison . . . . . . . . . . . . . . . . . . 81
4.4.4 DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
[Link] Le but du DHCP . . . . . . . . . . . . . . . . . . . . . . . 82
[Link] Vue d’ensemble du DHCP . . . . . . . . . . . . . . . . . . 82
[Link] Format du message . . . . . . . . . . . . . . . . . . . . . . 82
[Link] Scénario avec un serveur DHCP . . . . . . . . . . . . . . . 83
[Link] Scénario avec deux serveurs DHCP . . . . . . . . . . . . . 84
[Link] Serveur DHCP sur un autre sous-réseau . . . . . . . . . . 85
[Link] DHCP Timer . . . . . . . . . . . . . . . . . . . . . . . . . 86
[Link] DHCP Options . . . . . . . . . . . . . . . . . . . . . . . . 86
4.4.5 NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
[Link] Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.4.6 ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
[Link] Vue d’ensemble . . . . . . . . . . . . . . . . . . . . . . . . 87
[Link] Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
[Link] ICMP and Traceroute . . . . . . . . . . . . . . . . . . . . 87
4.4.7 IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
[Link] Pourquoi utilisé IPV6 . . . . . . . . . . . . . . . . . . . . 88
[Link] Entête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
[Link] Changement par rapport à IPV4 . . . . . . . . . . . . . . 88
[Link] Déployer l’IPV6 . . . . . . . . . . . . . . . . . . . . . . . . 89
[Link] Transition de IPV4 à IPV6 . . . . . . . . . . . . . . . . . 89
[Link] Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.5 Routing Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.5.1 Role du Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.5.2 Approches de routage dynamique . . . . . . . . . . . . . . . . . . . 90
4.5.3 Protocole de routage à l’état de liens . . . . . . . . . . . . . . . . . 90
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
[Link] Comment distribuer la topologie du réseau ? . . . . . . . . 91
[Link] LSP Flooding . . . . . . . . . . . . . . . . . . . . . . . . . 91
[Link] LSP Flooding - Changements de topologie . . . . . . . . . 93
[Link] LSP Flooding - Troisième Approche . . . . . . . . . . . . 94
4.5.4 Dijkstra’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Synthèse 5
Table des matières

[Link] Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
[Link] Relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . 94
[Link] Manière de faire . . . . . . . . . . . . . . . . . . . . . . . 95
[Link] Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.5.5 Distance Vector Protocol . . . . . . . . . . . . . . . . . . . . . . . . 96
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
[Link] Bellman-Ford equation . . . . . . . . . . . . . . . . . . . . 96
4.5.6 Distance-Vector Routing Protocol . . . . . . . . . . . . . . . . . . . 97
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
[Link] Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . 97
[Link] Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5.7 Distance Vector : link cost changes . . . . . . . . . . . . . . . . . . 98
4.5.8 Distance Vector : poisoned reverse . . . . . . . . . . . . . . . . . . . 99

5 Couche Liaison 100


5.1 Introduction and services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.1 Quelques termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2 Où la couche de liaison est-elle mise en œuvre ? . . . . . . . . . . . 100
5.1.3 NICs Communicating . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.2 Détection des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.2.1 Cyclic redundancy codes (CRC) . . . . . . . . . . . . . . . . . . . . 101
[Link] Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
[Link] Champ binaire . . . . . . . . . . . . . . . . . . . . . . . . 101
[Link] Polynômes binaires . . . . . . . . . . . . . . . . . . . . . . 101
[Link] Opérations sur les polynômes binaires . . . . . . . . . . . 102
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
[Link] Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
[Link] Message reçu sans erreur . . . . . . . . . . . . . . . . . . . 103
[Link] Message reçu corrompu . . . . . . . . . . . . . . . . . . . 104
[Link] Propriétés du CRC (prouvables) . . . . . . . . . . . . . . 104
5.3 Protocoles d’accès multiples . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.1 Deux types de "liens . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.2 Problème : collisions . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.3 Protocoles de contrôle d’accès au support (MAC) . . . . . . . . . . 104
5.3.4 Protocole MAC idéal . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3.5 Trois grandes catégories . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3.6 Protocoles d’accès aléatoire . . . . . . . . . . . . . . . . . . . . . . 105
[Link] Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
[Link] Le protocole d’accès aléatoire spécifie . . . . . . . . . . . . 105
[Link] Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3.7 CSMA(Carrier Sense Multiple Access) . . . . . . . . . . . . . . . . 105
[Link] Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
[Link] Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.3.8 "Protocoles MAC "à tour de rôle . . . . . . . . . . . . . . . . . . . 106
[Link] Partitionnement des canaux Protocoles MAC . . . . . . . 106
[Link] Protocoles MAC à accès aléatoire . . . . . . . . . . . . . . 106
[Link] "Protocoles "à tour de rôle . . . . . . . . . . . . . . . . . 106

Synthèse 6
Table des matières

[Link] Sondage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106


[Link] Passage de jetons . . . . . . . . . . . . . . . . . . . . . . . 106
5.4 Adressage au niveau de la couche de liaison . . . . . . . . . . . . . . . . . . 107
5.4.1 Adressage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.4.2 Adresses de réseau vs adresses de couche de liaison . . . . . . . . . 107
5.4.3 Ethernet Address Format . . . . . . . . . . . . . . . . . . . . . . . 107
[Link] Identifiant unique étendu (EUI) -48 . . . . . . . . . . . . . 107
[Link] Bits réservés . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.5 Protocole de résolution d’adresses . . . . . . . . . . . . . . . . . . . . . . . 108
[Link] Protocole ARP (RFC826) . . . . . . . . . . . . . . . . . . 108
[Link] Tableau ARP . . . . . . . . . . . . . . . . . . . . . . . . . 109
[Link] Adressage : routage vers un autre réseau local . . . . . . . 109
5.6 Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.6.1 Star topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
[Link] bus topology . . . . . . . . . . . . . . . . . . . . . . . . . 110
[Link] star topology . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.6.2 Ethernet : format de trame . . . . . . . . . . . . . . . . . . . . . . 111
5.6.3 Service Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
[Link] Sans connexion . . . . . . . . . . . . . . . . . . . . . . . . 111
[Link] Peu fiable . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.7 Commutateurs de la couche de liaison . . . . . . . . . . . . . . . . . . . . . 112
5.7.1 Ethernet Star Topology . . . . . . . . . . . . . . . . . . . . . . . . 112
[Link] Hub Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . 112
[Link] Ethernet Switch . . . . . . . . . . . . . . . . . . . . . . . 112
5.7.2 Switch Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
[Link] Format des entrées . . . . . . . . . . . . . . . . . . . . . . 112
[Link] Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . 113
5.7.3 Auto-apprentissage, transfert . . . . . . . . . . . . . . . . . . . . . 113
5.7.4 Switches vs. Routers . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Synthèse 7
1 Introduction

1 Introduction
1.1 Network edge
1.1.1 Dial-up Modem
Le dial up est surtout utilisé dans les réseaux téléphonique. Ceux-ci ont un accès direct
au routeur avec une puissance de 56kbps(max). On ne pouvait pas utiliser le téléphone et
aller sur internet en même temps.

On retrouve les grand principe suivant :


— Les réseaux téléphoniques transportent des signaux analogiques (voix) (l’intensité
du signal varie continuellement dans le temps).

— Les ordinateurs traitent des signaux numériques (flux de bits) (l’intensité du signal
ne peut prendre que quelques valeurs discrètes).

1.1.2 Modulation
La modulation est le processus de modification d’un signal électrique ou électromagné-
tique pour y ajouter des informations utiles, telles que la voix, la musique ou les données
numériques. Cette modification se fait en fonction d’un autre signal, appelé signal mo-
dulant, qui contient ces informations. Le modulator peut alors affecter le signal grâce à
plusieurs changement :
— L’amplitude (A) : la hauteur ou l’intensité du signal. C’est la mesure de la force
du signal électrique ou électromagnétique.

— La fréquence (f ) : le nombre de cycles complets que le signal effectue par unité


de temps. C’est la mesure de la rapidité avec laquelle le signal varie. Pour une
onde sonore, la fréquence est mesurée en Hertz (Hz) et correspond au nombre de
vibrations par seconde.

— La phase (φ) : la position de départ du signal par rapport à un point de référence.


C’est la mesure de l’écart temporel entre deux signaux qui ont la même fréquence.

Synthèse 8
1 Introduction

1.1.3 Signal analogue


Un signal analogique est un signal électrique continu qui varie de manière continue
dans le temps. Ce type de signal peut prendre n’importe quelle valeur dans une plage
continue de valeurs, contrairement à un signal numérique qui ne peut prendre que des
valeurs discrètes.(Il faut garder en tête que les cycle s’exprime en radiant ou degrée)

f (t) = A sin(2πf t + ϕ) (1)

1.1.4 Modulation digital


[Link] Amplitude Shift Keying (ASK)
L’Amplitude Shift Keying (ASK) est une technique de modulation qui utilise des va-
riations d’amplitude d’une onde porteuse pour transmettre des données. Dans cette tech-
nique, la valeur binaire de la donnée à transmettre est utilisée pour moduler l’amplitude
de l’onde porteuse.
— Bit 1 = A cos(2πfc t)
— Bit 0 = 0

[Link] Frequency Shift Keying (FSK)


Le Frequency Shift Keying (FSK) est une technique de modulation qui utilise des
variations de fréquence d’une onde porteuse pour transmettre des données. Dans cette
technique, la valeur binaire de la donnée à transmettre est utilisée pour moduler la fré-
quence de l’onde porteuse.
— Bit 1 = A sin(2πfc1 t)
— Bit 0 = A sin(2πfc2 t)

[Link] Phase Shift Keying (PSK)


Le Phase Shift Keying (PSK) est une technique de modulation qui utilise des variations
de phase d’une onde porteuse pour transmettre des données. Dans cette technique, la
valeur binaire de la donnée à transmettre est utilisée pour moduler la phase de l’onde
porteuse.
— Bit 1 = A sin(2πfc1 t)
— Bit 0 = A sin(2πfc2 t + π) = −A sin(2πfc1 t)

Synthèse 9
1 Introduction

[Link] Bit rate


Le bit rate (ou débit binaire) est une mesure de la quantité de bits de données transmis
par seconde dans un système de communication numérique. Contrairement au symbol rate,
qui mesure la quantité de symboles transmis par seconde, le bit rate mesure directement
la quantité de données binaires transmises.

[Link] Symbol rate


Le symbol rate (ou taux de symboles) est une mesure de la quantité de symboles
transmis par seconde dans un système de communication numérique. Un symbole est un
élément de signal qui représente une valeur discrète dans le temps ou dans l’espace.

1.1.5 Les problème de transmissions


Le signal analogique envoyé sera limité ou modifié par le système de transmission.
— Bande passante limitée
— Atténuation
— Distorsion de délai
— Bruit

[Link] Bande passante


Chaque système de transmission possède une bande passante limitée, en raison de :
— support de transmission (câble, fibre optique, ...)
— systèmes émetteurs et récepteurs

[Link] Atténuation
— La puissance du signal diminue approximativement en fonction de la distance (de
manière exponentielle)
— L’atténuation dépend de la fréquence (plus importante aux hautes fréquences)

[Link] Distorsion temporelle


— Le retard de propagation varie légèrement en fonction de la fréquence
— Les différentes composantes d’un signal analogique voyagent à des vitesses diffé-
rentes, ce qui entraîne une distorsion du signal reçu

[Link] Bruits
— Signal indésirable ajouté au signal transmis entre l’émetteur et le récepteur
— Les bruits thermiques, de modulation et de diaphonie peuvent être gérés. Les bruits
d’impulsion peuvent entraîner des transmissions défectueuses
— Métrique : Rapport signal sur bruit (SNR) = rapport de la puissance du signal (S)
sur la puissance du bruit (N). Un SNR plus élevé est meilleur.

Synthèse 10
1 Introduction

1.1.6 Digital Subscriber Line (DSL)


Le Digital Subscriber Line (DSL) est une technologie de communication qui permet
de transmettre des données numériques sur des lignes téléphoniques en cuivre. Cette
technologie permet d’utiliser les fils de cuivre existants pour fournir une connexion Internet
à haut débit.
— Utilisation de la bande passante de 0 à 1,104 MHz
— Divisée en 256 canaux de 4,3125 KHz (FDM)
— Canal 1 utilisé pour le service téléphonique de base (POTS, Plain Old Telephone
Service)
— Canaux 2 à 6 inutilisés
— Canaux 7 à 31 : voie montante (upstream)
— Canaux 33 à 256 : voie descendante (downstream)

1.1.7 Supports Physiques


— Les fibres optiques transportent des impulsions lumineuses, chaque impulsion re-
présentant un bit. Elles offrent une grande vitesse de transmission, allant de 10 à
100 Gps. De plus, elles ont un faible taux d’erreur, peuvent parcourir de longues
distances et sont immunisées contre le bruit.

— Le câble coaxial est constitué de deux conducteurs en cuivre concentriques. Il peut


être utilisé en mode baseband pour transmettre un seul canal sur le câble, par
exemple en Ethernet legacy, ou en mode broadband pour transmettre plusieurs
canaux simultanément.

— La paire torsadée est constituée de deux fils de cuivre isolés et torsadés ensemble.
Il existe plusieurs catégories de câbles selon leur débit maximal : le câble de caté-
gorie 3 est utilisé pour les lignes téléphoniques traditionnelles et pour les réseaux
Ethernet à 10 Mbps, tandis que le câble de catégorie 5 peut atteindre un débit de
100 Mbps pour les réseaux Ethernet.

— En radio, le signal est transporté dans le spectre électromagnétique sans fil phy-
sique. Cela peut être affecté par l’environnement de propagation, notamment la
réflexion, l’obstruction par des objets et les interférences. Les types de transmission
radio comprennent les micro-ondes terrestres, les réseaux locaux sans fil (Wi-Fi),
les réseaux cellulaires à large bande et les transmissions par satellite. Les vitesses
de transmission peuvent varier de quelques Kbps à 45 Mbps, avec des délais de
transmission allant de 270 ms à plusieurs secondes, selon le type de transmission.

Synthèse 11
1 Introduction

1.2 Network core


Le network core (noyau de réseau) est la partie centrale d’un réseau informatique, qui
assure la circulation des données entre les différents équipements connectés. Il s’agit en
quelque sorte de l’infrastructure de base qui permet aux utilisateurs et aux équipements
d’interagir et de communiquer sur le réseau.

1.2.1 Circuit switching

— Circuit = réservation de ressources de bout en bout le long du chemin


— Ressources = bande passante de liaison + capacité de commutation
— Ressources dédiées à un circuit → performances garanties
— Configuration d’appel requise avant l’échange de données

[Link] Multiplexing
— Permet de partager une liaison unique entre plusieurs circuits
— Multiplexage par répartition en fréquence (FDM, Frequency Division
Multiplexing)
— Soit R la capacité nominale de la liaison
— Diviser la bande passante de fréquence de la liaison en N sous-canaux plus
étroits : chaque sous-canal offre une capacité R / N
— Le principe de base de FDM consiste à diviser la bande passante disponible de
la liaison en plusieurs sous-canaux de fréquence plus étroits. Chaque sous-canal
est attribué à un circuit ou utilisateur spécifique, qui peut utiliser la totalité de
la capacité de ce sous-canal. (même bande passante pour chaque utilisateur et
les utilisateurs peuvent envoyer en même temps)

Synthèse 12
1 Introduction

— Multiplexage par répartition dans le temps (TDM, Time Division Mul-


tiplexing)
— Soit R la capacité nominale de la liaison.
— Chaque circuit/utilisateur peut périodiquement utiliser la totalité de la largeur
de bande de la liaison pendant un temps limité (appelé "time slot")
— Il y a un nombre fixe de créneaux (N) dans une trame. la capacité moyenne de
chaque circuit/utilisateur est R / N
— Le principe de base de TDM consiste à diviser le temps disponible de la liaison
en intervalles de temps plus étroits appelés trames. Chaque trame est ensuite
divisée en plusieurs intervalles de temps plus étroits appelés créneaux. Chaque
circuit ou utilisateur reçoit une tranche de temps spécifique, appelée créneau,
dans laquelle il peut transmettre et recevoir des données.

[Link] TDM : numerical example


Circuit-switched network using T1 links
— Data rate = 1.536 Mbps (1.544 Mbps)
— Frame rate = 8000 frames/s
— 24 slots (or channels) per frame
— Circuit setup time = 500 ms (establish end-to-end circuit)
Questions :
— Frame duration
— Length = 1.544 Mbps / 8000 f/s = 193 bits
— Duration = 193 bits @ 1.544 Mbps = 125 µs
— Single channel data rate
— 1.536 Mbps / 24 = 64 kbps
— 1.544 Mbps * 8 / 193 = 64 kbps
— Time to send file of 640 kbits
— Important : circuit uses a single channel !
— Transmission = 640 kbits @ 64 kbps = 10 s
— Setup = 500 ms
— Total = 10.5 s

Synthèse 13
1 Introduction

1.2.2 Packet switching


Principe : chaque flux de données de bout en bout est divisé en paquets
— Les paquets de différents utilisateurs partagent les ressources du réseau
— Chaque paquet utilise la capacité totale du lien
— Les ressources sont utilisées selon les besoins (multiplexage statistique)
Contentions de ressources
— La demande globale de ressources peut dépasser la quantité disponible
— Congestion : les paquets font la queue et attendent l’utilisation du lien
— Stockage et transfert : les paquets se déplacent d’un nœud à la fois + le nœud
reçoit le paquet complet avant de le transférer.

[Link] Store and forward


Lorsqu’un routeur reçoit un paquet par un port d’entrée, il le stocke (brièvement) dans
une mémoire tampon, détermine sa destination et le transmet par un port de sortie. On
peut cependant avoir une conséquence qui est un important délai de transmission.

Calculer le délai de transmission ( N L


P
i=1 Ri )
— L = 7500 bits
— R1 = 1.5 kbps ; R2 = 2 kbps ; R3 = 1 kbps
— hops = 3
— transmission delay = RL1 + RL2 + RL3 = 16.25s

On peut résoudre le problème en utilisant le pipelining

Synthèse 14
1 Introduction

[Link] Packet Size


M + H · ⌈ KM
max

— M est la taille du message en bits
— H est la taille de l’en-tête en bits
— Kmax est la taille maximale d’un paquet en bits
— x est l’opération de plafonnement (arrondi supérieur) de x à l’entier le plus proche

Sans le pipeline
T = N.( H+M
R
)

Avec le pipeline
1
T = R
∗ ((N − 1)Kmax + M + H + ⌈ KM
max
⌉)

[Link] Packet Switching vs Circuit Switching


— Circuit-switching :
— Ressources dédiées à un circuit spécifique
— Performance garantie
— Configuration d’appel requise avant l’échange de données
— Packet switching :
— Ressources partagées parmi plusieurs circuits
— Performance non garantie
— Configuration d’appel non requise
— Possibilité de congestion et de mise en file d’attente de paquets
— Utilisation de multiplexage statistique pour une utilisation plus efficace des
ressources

Synthèse 15
1 Introduction

1.3 Delay, loss and throughput in packet- switched networks


— Délai de transmission
— R = bande passante de la liaison (bps)
— L = longueur du paquet (bits)
— délai de transmission = L / R
— Délai de propagation
— d = longueur de la liaison physique
— s = vitesse de propagation dans le milieu ( 2 ∗ 108 m/s)
— délai de propagation = d / s
— Traitement nodal
— vérification des erreurs de bits
— détermination de la liaison de sortie
— délai négligeable
— File d’attente
— temps d’attente à la liaison de sortie pour la transmission
— dépend du niveau de congestion du routeur

1.3.1 Queeuing Delay


— λ : taux moyen d’arrivée de paquets (paquets/s)
— µ : taux moyen de départ de paquets (paquets/s)
— Intensité ρ = λ/µ (stable si ρ < 1)
— Nombre moyen de paquets dans la file d’attente N = ρ/(1−ρ) (dépend uniquement
de ρ ! !)
— Délai moyen d’attente en file d’attente = N · L/R (nombre de paquets × temps de
transmission)
−1)
— L∗(N
2R2

Synthèse 16
1 Introduction

1.3.2 Perte de paquet


— Les files d’attente des routeurs ont une capacité finie
— Un paquet arrivant à une file d’attente pleine est rejeté → perdu
— Les paquets perdus peuvent être retransmis par le nœud précédent (1), par le
système terminal source (2) ou pas du tout

1.4 Protocol layers, service models


— Application : prise en charge des applications réseau (FTP, SMTP, HTTP, DNS)
— Transport : transfert de données de processus à processus (TCP, UDP)
— Réseau : routage des datagrammes de la source à la destination (IP, protocoles
de routage)
— Liaison (ou liaison de données) : transfert de données entre des éléments réseau
voisins (PPP, Ethernet)
— Physique : bits "sur le fil", symboles

Synthèse 17
2 Couche application

2 Couche application
2.1 Créer une application réseau
Il faut écrire un programme qui :
— S’exécutent sur des systèmes finaux (différents)
— Communiquent sur le réseau
— Par exemple, un logiciel de serveur web communique avec le navigateur logiciel

Il n’est pas nécessaire d’écrire des logiciels pour les dispositifs network-core devices :
— Les dispositifs network-core n’exécutent pas applications utilisateur.
— Les applications sur les systèmes finaux permet un développement rapide des ap-
plications et leurs propagations.

2.2 Processus de communication


Le processus est un programme qui tourne sur un hôte. Les processus peuvent alors
communiquer entre eux grâce au inter-processus défini par le système d’exploitation. En
ce qui concerne les processus provenant de différent hôtes, ceux-ci communiquent grâce à
un échange de message.

2.3 Sockets
Les sockets sont les interfaces entre le processus et l’OS mais ils s’occupent aussi
de choisir le meilleur protocol de transport (TCP, UDP) ainsi que de de fixer certains
paramètres.

2.4 Traitement des processus distants


Pour recevoir un message, le processus doit être identifié pour les points suivants qui
permettront d’obtenir un identifiant global :
— Une adresse IP qui identifie l’hôte
— Un numéro de port qui identifie le point final de communication du processus sur
l’hôte

2.5 Les protocoles


Les protocoles doivent avoir une bonne conception et ne doivent pas être trop simple
sous peine de de potentiel échecs lors de l’utilisation. Ils doivent aussi être définis sur le
domaine public pour permettre l’interopérabilité. Les protocoles vont donc se baser sur
les principes suivants pour fonctionner correctement :
— Types de message échanger (request, response)
— La syntaxe du message (quels champs dans les messages et comment les champs
sont délimités)
— La sémantique des messages (signification des informations contenues dans les
champs)
— Les règles concernant le moment et la manière dont les processus envoient et ré-
pondent aux messages(FSM)

Synthèse 18
2 Couche application

2.5.1 Encodage
Les règles de représentation des données dans les messages protocolaires doivent at-
teindre les objectifs suivants. (Ces objectifs sont quelque peu contradictoires, des compro-
mis sont donc parfois nécessaires.)
— Space Efficiency : Indique qu’il doit être le plus compact
— Facilité de délimitation : Il doit être facile de déterminer le début et la fin d’un
message.
— Facilité d’analyse : il doit être facile de déterminer le contenu du message
— Transparence des données : les séquences de bits arbitraires doivent être auto-
risées à être transmises Bits arbitraires (ce n’est pas le cas si des valeurs spéciales
ont une signification particulière, comme des délimiteurs).

On peut donc représenter les messages de différentes manières


— Binary, ad hoc encoding, des groupes fixes de bits sont utilisés pour représenter
les champs du message (Compact ++ et Flexible -) :

— Type-Length-Value encoding, triplet (type, longueur, valeur) utilisé pour re-


présenter différents types de champs et de valeurs. (Compact + et Flexible +)

— Matched tag,codage ASCII ; chaque champ est précédé d’une balise de départ
incluant un mot-clé et terminé par un délimiteur ou une balise de fin correspondante
balise de fin (Compact - et Flexible ++)

Synthèse 19
2 Couche application

2.5.2 Les règles


Les règles sont régis par la machines d’état, qui va régir pour sa part les échanges de
messages, les actions et les réactions aux événement. La représentation graphique de cela
peut se faire grâce au concept suivant :
— noeuds : états
— arêtes : transitions
— étiquettes sur les arêtes : conditions et actions

2.6 Les conditions de l’application


On peut dénombrer 4 grandes conditions pouvant constituer une application :
— Perte de données : des applications peuvent ne pas supporter la perte de données
— Timing : des applications sont sensibles au délais
— Débit : des applications nécessite un certain débit
— Sécurité : intégrité des données, chiffrement

2.6.1 trafic variable vs trafic non variable


Le trafic non variable requière un nombre minimum de bande passante + prorité. Alors
que le trafic variable lui va utiliser le restant de la bande passante.

Synthèse 20
2 Couche application

2.6.2 UDP et TCP


TCP est un protocole orienté connexion, qui garantit la fiabilité et l’ordre de livraison
des données en établissant une connexion entre deux hôtes. Il utilise un système de nu-
mérotation de séquence et d’acquittement pour assurer la transmission fiable des données.

UDP, en revanche, est un protocole sans connexion qui ne garantit pas la fiabilité ou
l’ordre de livraison des données. Il est plus rapide et plus efficace que TCP, car il n’établit
pas de connexion et ne nécessite pas de mécanismes de retransmission.

En conclusion, UDP est toujours utilisé pour sa vitesse, sa faible latence, sa consom-
mation de bande passante réduite et sa charge de traitement moindre. Cependant, il n’est
pas adapté aux applications nécessitant une transmission de données fiable.

2.7 WEB et HTTP


2.7.1 Message HTTP
Les messages HTTP peuvent se retrouver sous deux-types, les messages de types
request et de type response. Ceux-ci sont tous deux encoder en ASCII

[Link] Message HTTP - requête


On peut retrouver plus types de requête HTTP différentes :
— GET : Utiliser pour récupérer des objet depuis le serveur
— HEAD : Une variante de get utiliser pour le débugging
— POST : Utiliser pour envoyer/créer un objet
— PUT, DELETE, PATCH, TRACE, OPTIONS

[Link] Message HTTP - Réponse


On peut avoir plusieurs types de réponses représenter par un code :
— 1XX : Information
— 2XX : Succès (la plus connue étant 200 OK)
— 3XX : Re-direction (la plus connue étant 301 Déplacé de façon permanente)
— 4XX : Erreur client (la plus connue étant 404 not found et 400 bad request)
— 5XX : Erreur serveur (505 version non supportée)

Synthèse 21
2 Couche application

2.7.2 Performance
[Link] RTT (round-trip time)

Le temps pour un petit paquet de voyager du client au serveur et vice-versa

[Link] Temps de réponse HTTP

— un RTT pour initier une connexion TCP


— un RTT pour le retour de la requête HTTP et des premiers octets de la réponse
HTTP
— temps de transmission du fichier (T)

T otal = 2RT T + T

[Link] Connexion HTTP


Il y a deux types de connexions HTTP :
— La connexion persistante : Dans ce type de connexion, le client et le serveur
conservent la connexion ouverte après l’envoi d’une réponse. Cela permet au client
de continuer à envoyer des requêtes au serveur sans avoir à établir une nouvelle
connexion pour chaque demande. Cette méthode réduit le temps de latence.
— La connexion non persistante : Dans ce type de connexion, le serveur ferme
la connexion après avoir envoyé la réponse. Le client doit établir une nouvelle
connexion pour chaque demande, ce qui peut entraîner des retards en termes de
temps de latence.

[Link] HTTP 1.1 VS 1.0

HTTP 1.1 est une version améliorée de HTTP 1.0 qui prend en charge les connexions
persistantes pour réduire le temps de latence, la compression de contenu pour améliorer
les performances, une meilleure gestion de la mise en cache des ressources, des indicateurs
de taille de réponse et des messages d’erreur plus détaillés. En résumé, HTTP 1.1 offre
des performances et une gestion de connexion supérieures par rapport à HTTP 1.0.

Synthèse 22
2 Couche application

2.7.3 Cookies
Les cookies sont principalement utilisés pour deux raisons :
— Les sessions utilisateur : Les cookies sont utilisés pour maintenir la session d’un
utilisateur. Lorsqu’un utilisateur se connecte à un site web, un cookie est créé
pour stocker des informations sur sa session, telles que le nom d’utilisateur, les
préférences, etc. Le serveur peut alors utiliser ces informations pour personnaliser
l’expérience utilisateur.
— Le suivi de l’utilisateur : Les cookies sont également utilisés pour suivre les acti-
vités de l’utilisateur sur un site web. Les cookies peuvent être utilisés pour stocker
des informations telles que les pages visitées, les publicités cliquées, les produits
consultés, etc. Ces informations peuvent ensuite être utilisées pour personnaliser
les publicités ou pour analyser le comportement de l’utilisateur sur le site.

[Link] PHP Session ID


PHP Session ID est un identifiant unique généré par le serveur Web pour chaque
session utilisateur. Il est utilisé pour maintenir la session utilisateur lorsqu’il navigue
sur un site Web créé avec PHP. Les sessions PHP permettent de stocker des données
utilisateur temporaires, telles que les préférences, les informations de connexion, etc., pour
personnaliser l’expérience utilisateur. L’identifiant de session est stocké dans un cookie
sur l’ordinateur de l’utilisateur et est envoyé au serveur Web avec chaque demande pour
identifier la session en cours.

Synthèse 23
2 Couche application

2.7.4 Proxy/cache
[Link] web caches(proxy server)
l’objectif est de satisfaire la demande du client sans faire intervenir le serveur d’origine.
Le navigateur est alors forcer d’accèder au web en passant par un serveur de proximité
si le proxy retourne un objet sinon le proxy va faire la demande au serveur d’origine et
va renvoyer l’objet. Cela permettra de réduire le temps de réponse ainsi que de réduire le
trafic.

Synthèse 24
2 Couche application

[Link] HTTP and caching


L’optimisation des performances du réseau comporte deux volets :
— Réduire le temps d’aller-retour en évitant d’envoyer inutilement des demandes au
serveur. Pour ce faire, il est possible de mettre en œuvre un mécanisme d’expira-
tion dans lequel une réponse du serveur n’est envoyée que lorsque le contenu doit
être revalidé. Pour ce faire, un en-tête facultatif appelé Expires : <date> dans la
réponse.
— Réduire l’utilisation de la bande passante en évitant d’envoyer inutilement des
réponses complètes au client. Cela peut être réalisé en mettant en œuvre un mé-
canisme de validation appelé "GET conditionnel". Pour ce faire, on inclut dans
la requête un en-tête facultatif appelé If-modified-since : <date> dans la requête,
qui indique la date du contenu du client. Cet en-tête est utilisé pour les contenus
expirés ou périmés.

2.7.5 HTTP 2.0


— HTTP 2.0 utilise une nouvelle technique de multiplexage de flux, permettant d’en-
voyer plusieurs requêtes simultanément sur une même connexion.
— Il utilise également la compression de l’en-tête, réduisant la taille des données
échangées.
— HTTP 2.0 prend en charge les serveurs push, permettant aux serveurs d’envoyer des
ressources supplémentaires au client avant même que celui-ci en fasse la demande.
— Il introduit des priorités de flux, permettant de hiérarchiser les requêtes et d’amé-
liorer le temps de réponse pour les requêtes les plus importantes.
— Enfin, HTTP 2.0 est conçu pour être plus sûr et plus résistant aux attaques, en
obligeant l’utilisation du chiffrement SSL/TLS.

Synthèse 25
2 Couche application

2.8 Mail élèctronique


2.8.1 Vocabulaire
— MUA (Mail User Agent) est un logiciel qui est utilisé pour accéder, lire, rédiger,
envoyer et gérer des courriers électroniques (e-mails) à partir d’un ordinateur ou
d’un appareil mobile. (GMAIL, OUTLOOK)
— MTA (Message Transfer Agent) est un logiciel qui est utilisé pour acheminer les
courriers électroniques (e-mails) entre différents serveurs de messagerie électronique
sur Internet.

2.8.2 SMTP
SMTP (Simple Mail Transfer Protocol) est un protocole standardisé utilisé par les
serveurs de messagerie pour transférer des courriers électroniques (e-mails) sur Internet.
Le protocole SMTP est généralement utilisé par les agents de transfert de messages (MTA)
pour acheminer les e-mails d’un serveur à l’autre. (port par défaut : 25 (TCP) )

[Link] Les trois phases du transfères


1. Phase de connexion : Le client SMTP se connecte au serveur SMTP distant en
utilisant le port 25 (ou un autre port spécifié). Le serveur SMTP distant répond
avec un code de réponse 220 pour indiquer que la connexion a été établie.
2. Phase de transfert : Le client SMTP transfère l’e-mail au serveur SMTP dis-
tant en utilisant les commandes SMTP appropriées, telles que "MAIL FROM"
pour spécifier l’expéditeur et "RCPT TO" pour spécifier le destinataire. Le ser-
veur SMTP distant répond avec des codes de réponse appropriés pour indiquer si
chaque étape du processus a réussi ou a échoué.
3. Phase de déconnexion : Une fois que l’e-mail a été entièrement transféré, le
client SMTP envoie la commande "QUIT" pour fermer la connexion SMTP avec
le serveur distant. Le serveur SMTP distant répond avec un code de réponse 221
pour indiquer que la connexion a été fermée.

Synthèse 26
2 Couche application

[Link] Exemple de fonctionnement


1. Alice utilise MUA pour composer message à bob@[Link].
2. Le MUA d’Alice envoie un message à son serveur de messagerie ; le message placé
dans la file d’attente des messages.
3. Le côté client du SMTP ouvre connexion TCP avec le de Bob.
4. Le client SMTP transfère le message d’Alice sur la connexion TCP le message
d’Alice est transféré par le client SMTP sur la connexion TCP.
5. Le serveur de messagerie de Bob délivre le dans la boîte aux lettres de Bob.
6. Bob invoque son MUA pour lire message

2.8.3 Mail access protocols


Les protocoles d’accès aux courriers électroniques (Mail Access Protocols en anglais)
sont utilisés pour accéder aux e-mails stockés sur un serveur de messagerie électronique.
Ils permettent aux utilisateurs de récupérer et de lire leurs e-mails à partir d’un client de
messagerie, tel que Microsoft Outlook ou Mozilla Thunderbird.

[Link] Les protocoles


— POP3 (Post Office Protocol version 3) : C’est un protocole simple qui permet aux
utilisateurs de récupérer des e-mails du serveur de messagerie sur leur ordinateur
ou leur appareil mobile. Les e-mails sont généralement supprimés du serveur de
messagerie une fois qu’ils ont été téléchargés sur l’appareil de l’utilisateur.
— IMAP (Internet Message Access Protocol) : C’est un protocole plus avancé qui
permet aux utilisateurs de synchroniser leurs e-mails sur plusieurs appareils. Les
e-mails restent sur le serveur de messagerie, mais les utilisateurs peuvent les lire,
les marquer comme lus ou non lus, les déplacer dans des dossiers, etc. depuis leur
client de messagerie.
— Webmail est un type d’interface utilisateur qui permet aux utilisateurs d’accéder
à leurs e-mails à partir d’un navigateur Web. Les utilisateurs peuvent se connecter
à leur compte de messagerie en ligne à l’aide de leur nom d’utilisateur et de leur
mot de passe.

Synthèse 27
2 Couche application

[Link] POP3 Protocol


1. Connexion : La première étape consiste à établir une connexion entre le client de
messagerie (par exemple, Outlook) et le serveur de messagerie via le port 110 (ou
995 pour POP3 sécurisé). Le client de messagerie envoie une requête de connexion
et le serveur de messagerie répond avec un message de bienvenue.
2. Authentification : Une fois la connexion établie, le client de messagerie doit
s’authentifier auprès du serveur de messagerie. Le client de messagerie envoie un
nom d’utilisateur et un mot de passe, et le serveur de messagerie vérifie si les
informations sont correctes.
3. Phase de transaction : Une fois l’authentification réussie, le client de messagerie
peut effectuer des opérations sur les e-mails stockés sur le serveur de messagerie. Les
opérations les plus courantes sont : Télécharger des e-mail, supprimer des e-mails
4. Déconnexion : Une fois que le client de messagerie a terminé ses opérations, il
envoie une commande de déconnexion au serveur de messagerie. Le serveur de
messagerie répond avec un message de confirmation et ferme la connexion.

[Link] POP3 versus IMAP


1. Stockage : POP3 télécharge les e-mails du serveur de messagerie sur l’appareil
de l’utilisateur, tandis qu’IMAP stocke les e-mails sur le serveur de messagerie et
permet un accès distant à partir de différents appareils.
2. Synchro : POP3 télécharge des e-mails dans un seul sens, du serveur de messagerie
vers l’appareil de l’utilisateur, tandis qu’IMAP synchronise les e-mails en temps
réel entre le serveur de messagerie et l’appareil de l’utilisateur.
3. Gestion des e-mails : Avec POP3, une fois qu’un e-mail est téléchargé sur l’appa-
reil de l’utilisateur, il est supprimé du serveur de messagerie, tandis qu’avec IMAP,
les e-mails peuvent être marqués comme lus/non lus, déplacés dans des dossiers
spécifiques, etc., tout en étant stockés sur le serveur de messagerie.
4. Sécurité : POP3 n’offre pas de fonctionnalités de sécurité telles que le chiffrement
de bout en bout, tandis qu’IMAP peut être configuré pour utiliser des protocoles
de sécurité tels que SSL ou TLS.
5. Flexibilité : IMAP offre une plus grande flexibilité en termes d’accès aux e-mails
depuis différents appareils, de gestion des e-mails sur le serveur de messagerie, et
de synchronisation en temps réel.

Synthèse 28
2 Couche application

2.9 DNS
Le DNS (Domain Name System) est un système de noms de domaine qui permet de
traduire les noms de domaine en adresses IP. En d’autres termes, il s’agit d’un service
qui permet de convertir les noms de domaine (comme [Link]) en adresses
IP (comme [Link]) qui sont nécessaires pour que les ordinateurs communiquent sur
Internet.

[Link] Fonctionnement
Lorsqu’un utilisateur tape un nom de domaine dans son navigateur web, celui-ci envoie
une requête de résolution de nom de domaine à un serveur DNS local ou à celui fourni
par son fournisseur d’accès à Internet. Si le serveur DNS local ne connaît pas la réponse à
la requête, il envoie la requête à un autre serveur DNS situé plus haut dans la hiérarchie,
et ainsi de suite, jusqu’à ce qu’une réponse soit trouvée.

[Link] DNS name space


L’espace de noms DNS est une hiérarchie de noms de domaine organisée en un arbre
inversé. À la racine de cet arbre, on trouve le point (.), qui représente le niveau le plus
élevé de l’espace de noms. Juste en dessous, on trouve les domaines de premier niveau
(TLDs, Top-Level Domains), tels que .com, .org, .net, .fr, .jp, etc.

Synthèse 29
2 Couche application

[Link] Pourquoi ne pas centraliser le DNS ?


— Risque de panne : Si le DNS est centralisé, il y a un risque plus élevé de panne
si le serveur DNS principal tombe en panne ou est victime d’une attaque.
— Vulnérabilité de sécurité : Le DNS centralisé est plus vulnérable aux attaques
de piratage car il y a une seule cible à viser.
— Censure : Si le DNS est centralisé, il devient plus facile pour les gouvernements
ou les organisations de censurer ou de restreindre l’accès à certains sites Web en
bloquant simplement leur enregistrement DNS.
— Ralentissement de l’accès : Si le DNS est centralisé, il peut entraîner un ralen-
tissement de l’accès à Internet, car toutes les requêtes de résolution de nom doivent
être acheminées par le serveur DNS central.
— Scalabilité : Si le DNS est centralisé, il peut devenir difficile de le faire évoluer
pour faire face à une augmentation de la demande.
— Décentralisation : Le DNS est conçu pour être décentralisé afin de répartir la
charge et de permettre une résilience accrue en cas de panne.

[Link] DNS : Récursion


Résolution récursive : Le serveur DNS local interroge les serveurs DNS de niveau
supérieur pour résoudre le nom de domaine en adresses IP. Le serveur DNS local interroge
les serveurs DNS de niveau supérieur pour résoudre le nom de domaine en adresses IP.

[Link] DNS : Iteration


Résolution itérative : Les serveurs DNS de niveau supérieur renvoient les adresses
IP des serveurs DNS de niveau inférieur, jusqu’à ce qu’un serveur DNS soit trouvé qui
peut répondre à la requête de résolution.

[Link] DNS : Caching


Caching : Une fois que le serveur DNS local a reçu l’adresse IP, il la stocke en cache
pour une période de temps définie (appelée TTL ou Time to Live), afin d’accélérer les
requêtes ultérieures pour le même nom de domaine. (TTL = 1h dans la plupart des cas)

Synthèse 30
3 Couche transport

3 Couche transport
3.1 Transport-layer services
3.1.1 Utilisation
Assurer une communication logique entre les processus s’exécutant sur différents hôtes

3.1.2 Où se situe-t-il ?
Les protocoles de transport tournent généralement dans les systèmes terminaux.
— Côté émetteur : il divise l’application en segments, les transmet à la couche
réseau.
— Côté récepteur : il ré-assemble les segments en messages et les transmet à la
couche applicative.

3.1.3 Différents catégories de TLS


— TCP
— livraison fiable et dans l’ordre
— contrôle de congestion
— contrôle de flux
— établissement de connexion
— UDP
— livraison non fiable et non ordonnée
— extension minimale de "meilleur effort"
— protocole IP

Synthèse 31
3 Couche transport

3.2 Multiplexing and demultiplexing


3.2.1 Principe
Objectif : étendre le service de livraison de bout en bout (couche réseau) à un service
de livraison de processus à processus.

Les adresses source et de destination ne sont pas suffisantes pour permettre la livraison
des données du paquet vers le bon socket/processus donc, la couche transport effectue les
opérations suivantes sur les données envoyées/reçues :
— Multiplexage consiste à prendre les données de plusieurs sockets de différents
processus et à les combiner en un seul flux de données, qui est ensuite encapsulé
avec un en-tête transport qui contient des informations telles que les adresses source
et de destination, les numéros de port, etc. Ce flux de données est ensuite transmis
à la couche Réseau pour être envoyé sur le réseau.
— Démultiplexage est l’opération inverse du multiplexage, qui est effectuée sur le
récepteur. La couche Transport examine l’en-tête de chaque segment reçu pour
déterminer à quel socket/processus le segment doit être livré. Les données sont
ensuite extraites du segment et livrées au processus approprié.

3.2.2 Comment le démultiplexing marche ?


L’hôte reçoit des datagrammes IP.
— Le datagramme contient des adresses IP source/destination.
— Le datagramme transporte un segment de couche transport.
— Le segment a des numéros de port source/destination.
— L’hôte utilise les adresses IP et les numéros de port pour diriger le segment vers le
socket approprié.

Synthèse 32
3 Couche transport

3.2.3 Multiplexing UDP vs TCP


Bien que l’UDP et le TCP aient les mêmes ports de source et de destination dans l’en-
tête de leurs segments, ils effectuent un multiplexage. dans l’en-tête de leurs segments, ils
effectuent le multiplexage différemment. différemment.
1. UDP
— Tous les datagrammes IP avec la même adresse IP de destination et le même
numéro de port sont dirigés vers le même socket
— L’application est responsable du démultiplexage ultérieur.

2. TCP
— Une connexion TCP est un lien virtuel point à point. Seuls les segments de sa
connexion TCP sont dirigés vers un socket.
— Le quadruplet identifie une paire de sockets, les extrémités de cette connexion
TCP.

Synthèse 33
3 Couche transport

3.3 Connectionless transport : UDP


3.3.1 Pourquoi y a-t-il UDP
— Simple et léger
— Pas d’établissement de connexion (ce qui peut ajouter un délai)
— Pas d’état de connexion chez l’expéditeur et le destinataire
— Pas de contrôle de l’encombrement (UDP peut s’envoler aussi vite qu’il le sou-
haite)
— Petit header (8 octets)
— Souvent utiliser par les applications de streaming
— Transfert fiable via UDP

3.3.2 Header

3.3.3 La checksum
[Link] Objectif
Détecter les erreurs dans le segment transmis. Pour cela, la personne envoyant les
données va traiter le contenu du segment comme une séquence d’entier de 16 bit. Il va
alors additionner toutes les valeurs du segment et va placer cette valeur dans le segment
transmis. Une fois que l’information est reçue, on refait la même chose et on regarde qu’on
arrive à la même somme.

Synthèse 34
3 Couche transport

[Link] 1’s complement addition

N
X −2
x = −b(N −1) ∗ (2(N −1)
− 1) + bi ∗ 2i (2)
i=0

— b → Représente un bit

Exemple : Prenons par exemple N = 4 ainsi que la représentation de 7 qui est un mot
en binaire traduis en nombre.

7(0111) = −0 × (24−1 − 1) + 1 × 22 + 1 × 21 + 1 × 20 (3)

−4(1011) = −1 × (24−1 − 1) + 0 × 22 + 1 × 21 + 1 × 20 (4)


On obtient -4 en prenant le complètement de 4 et on sait qu’on doit avoir comme réponse
3. On fait alors la somme en respectant les règles suivantes :
1. On les additionnes comme si cela était des nombres positifs
2. Si jamais il y a un nombre en dehors, on ajoute 1 à la somme obtenue et bien sur
on retire l’exédent.
0 1 1 1
+ 1 0 1 1
− − − − −
1 0 0 1 0 (5)
+ 0 0 0 1
− − − − −
0 0 1 1
Exemple : La personne envoyant les données ont les informations suivantes :
— x = 0110 0110 0110 0000
— y = 0101 0101 0101 0101
— z = 1000 1111 0000 1100
x 0110 0110 0110 0000
y 0101 0101 0101 0101

x+y 1011 1011 1011 0101


z 1000 1111 0000 1100

wrap carry-out 1 0100 1010 1100 0001


(6)
+ 1

x+y+z 0100 1010 1100 0010

Complément (Checksum) 1011 0101 0011 1101

Total 1111 1111 1111 1111

Synthèse 35
3 Couche transport

3.4 Principles of Reliable data transfer


Fournir un service fiable au-dessus d’un canal peu fiable.

3.4.1 Fonction spécifique au RDT


— rdt_send() : une fonction qui envoie des données de manière fiable entre deux
points en utilisant des techniques pour s’assurer que les données sont transmises
sans erreur et dans le bon ordre.
— deliver_data() : une fonction qui est appelée lorsque les données ont été correc-
tement reçues et qui effectue des opérations pour les transmettre à l’application
destinataire.
— udt_send() : une fonction similaire à rdt_send(), mais qui est utilisée pour en-
voyer des données fiables entre deux applications.
— rdt_rcv() : une fonction qui reçoit des segments de données envoyés par un autre
hôte sur le réseau et qui effectue des opérations pour garantir que les données
sont reçues correctement et dans le bon ordre, et qui peut appeler la fonction
deliver_data() pour les transmettre à l’application destinataire.

3.4.2 Les différentes types de RDT


— RDT 1.0 : le protocole le plus simple de RDT. Il utilise une technique de retrans-
mission simple et ne prend pas en compte les doublons. L’assomption était qu’il
n’allait pas avoir de bit d’erreur et de packet lost.

Synthèse 36
3 Couche transport

— RDT 2.0 : une version plus avancée de RDT qui prend des accusés de réception
(ACKs ou Naks) et utilisation de la checksum. Les nouvelles assomptions sont les
suivantes : le canal sous-jacent n’est pas fiable, peut corrompre le paquet (inverser
les bits) et pas de perte de paquets.

Les ACK/ NAK peuvent être corrompu, l’envoyeur ne sait pas ce qu’il
s’est passé chez le destinataire et si retransmis = doublons

Synthèse 37
3 Couche transport

— RDT 2.1 : une amélioration de RDT 2.0 qui permet de gérer les pertes de ACKs
en envoyant des ACKs multiples pour garantir la réception des segments, ajout
d’un numéro de séquence à chaque packet.

Envoyeur
Seq. ajouté au pkt.
Deux seq. s (0,1) suffisent. Pourquoi ?
Il faut vérifier si l’ACK/NAK reçu est corrompu.
Deux fois plus d’états que dans rdt 2.0
(raison : l’état doit se "souvenir" si le pkt "actuel" a 0 ou 1 seq. )
Récepteur
Doit vérifier si le paquet reçu est en double.
L’état indique si 0 ou 1 est attendu pkt seq.
Note : le récepteur ne peut pas savoir si son dernier ACK/NAK
a été reçu OK à l’expéditeur

Synthèse 38
3 Couche transport

— RDT 2.2 : une amélioration du RDT 2.1 mais cette fois en utilisant que les ACKs

Envoyeur
Inclure seq. du paquet ACKé dans l’ACK
Ne pas envoyer de NAK, mais répéter l’ACK du dernier paquet correctement reçu
Il faut vérifier si l’ACK/NAK reçu est corrompu.
Récepteur
Un ACK dupliqué entraîne la même action qu’un NAK : retransmission le paquet
actuel

Synthèse 39
3 Couche transport

— RDT 3.0 : la version la plus avancée de RDT qui utilise des checksums pour
détecter les erreurs, une technique de retransmission rapide pour améliorer les
performances, un timer.

Synthèse 40
3 Couche transport

3.4.3 RDT3.0 Performance


Le protocole de transfert de données fiables 3.0 (rdt3.0) est capable de transférer des
données de manière fiable sur un canal peu fiable, qui peut corrompre et perdre des
paquets. Cela est réalisé grâce à l’utilisation de checksum, qui permettent la détection
de paquets corrompus, d’accusés de réception (ACK), qui permettent la confirmation ou
l’invalidation de la réception de paquets corrects, de numéros de séquence, qui permettent
la détection de paquets en double, et d’une minuterie, qui permet de détecter les pertes
de paquets ou d’ACK et déclenche des retransmissions.

[Link] Exemple

R = 1Gbps | dpr = 15ms | L = 8000bits

L 8000bits/packet
Délai de transmission : dtr = R
= 109 bits/sec
= 8µs

Temps total pour une transmission : dtotal = dtr + 2dpr = 30.008ms

dtr
Fraction du temps d’utilisation du lien : U = dtotal
= 0.027%

Débit atteint : Ref f ective = U ∗ R = 267kbps = 33.3KB/s

Synthèse 41
3 Couche transport

3.4.4 Stop and wait Performance

Synthèse 42
3 Couche transport

3.4.5 Pipeline protocols


Le protocole de pipeline en réseau est un mécanisme de communication entre deux
entités de réseau qui permet de transmettre de manière efficace des données en utilisant
une série de connexions en série plutôt qu’une seule connexion en parallèle.

Le protocole de pipeline fonctionne en divisant les données en blocs de taille fixe, appe-
lés segments, et en les transmettant séquentiellement sur différentes connexions en série.
Chaque segment est envoyé sur la première connexion, puis sur la deuxième connexion,
et ainsi de suite, jusqu’à ce qu’il atteigne la destination finale. La destination réassemble
ensuite les segments pour reconstituer les données d’origine.

[Link] Augmenter l’utilisation du lien

Soit W le nombre de paquets envoyés en rafale on a : U (W ) = W ∗dtr


dtotal

Exemple
3∗dtr 24∗10−6 s
U (3) = dtotal
= 3∗10−2 s+8∗10−6 s
= 0.079%

Ref f ective = U ∗ R = 790kbps = 98.75KB/s

Combien de paquets doivent être envoyés à chaque RTT pour atteindre l’utilisation
maximale, c’est-à-dire 100% ?
N = RT T
dtr
= RT T ∗ RL

Exemple
109
N = 0.03 ∗ 8000
= 3.750packets

Comment faire pour utiliser la taille maximum ? U (W ) = 100%


dtr +2dpr
W >= dtr

dtr +2dpr
U (W ) = 1siW >= dtr

Sinon U (W ) = W ∗dtr
dtr +2dpr

Synthèse 43
3 Couche transport

3.4.6 Go-Back-N
[Link] Principes

— Sequence Numbers : Les numéros de séquence sont des identificateurs uniques


attribués à chaque paquet dans une transmission de données. Chaque paquet a
son propre numéro de séquence, et chaque accusé de réception (ACK) a également
un numéro de séquence correspondant à celui du paquet qu’il confirme. Les ACK
cumulatifs confirment tous les paquets jusqu’au numéro de séquence de l’ACK.

— Sliding Window : La fenêtre glissante est une méthode de contrôle de flux utilisée
dans les réseaux de communication. Elle permet à l’émetteur d’envoyer une série de
paquets sans attendre de confirmation pour chacun d’eux. La fenêtre glissante est
un sous-ensemble de N paquets consécutifs que l’émetteur est autorisé à envoyer
avant que le premier de ces paquets ne soit confirmé. La fenêtre avance lorsque
l’ACK est reçu pour le premier paquet dans la fenêtre.

— Retransmission : La retransmission est une méthode de récupération des paquets


perdus ou endommagés dans une transmission de données. Lorsqu’un paquet n’est
pas confirmé dans un délai donné, le premier paquet non confirmé dans la fenêtre
glissante est retransmis avec tous les autres paquets de la fenêtre.

— Out of order packets : Les paquets hors séquence sont des paquets qui n’arrivent
pas dans l’ordre attendu par le destinataire. Ces paquets peuvent être écartés par
le destinataire si leur réception n’affecte pas le flux de données.

[Link] Utilisation de variable

— send_base = numéro de séquence du premier paquet dans la fenêtre.


— next_seq_num = numéro de séquence utilisé pour le prochain paquet à envoyer.
— exp_seq_num = numéro de séquence du prochain paquet à recevoir.

Synthèse 44
3 Couche transport

[Link] Go-back-N sender

[Link] Go-back-N receiver

Synthèse 45
3 Couche transport

[Link] In action

Synthèse 46
3 Couche transport

3.4.7 Selective Repeat


[Link] Principes

— Sequence Numbers : Les numéros de séquence sont des identificateurs uniques


attribués à chaque paquet et ACK dans une transmission de données. Chaque pa-
quet et chaque ACK ont leur propre numéro de séquence. Dans le cas des ACK
individuels, l’ACK(n) confirme uniquement le paquet n correspondant.

— Sliding Window : La fenêtre glissante est une méthode de contrôle de flux utilisée
dans les réseaux de communication, telle que définie dans le protocole Go-Back-N.
Elle permet à l’émetteur d’envoyer une série de paquets sans attendre de confir-
mation pour chacun d’eux. La fenêtre glissante est un sous-ensemble de paquets
consécutifs définis dans le protocole, que l’émetteur est autorisé à envoyer avant
que le premier de ces paquets ne soit confirmé. La fenêtre avance lorsque l’ACK
est reçu pour le premier paquet dans la fenêtre, mais les autres paquets dans la
fenêtre peuvent également être confirmés par des ACK.

— Retransmission : La retransmission est une méthode de récupération des pa-


quets perdus ou endommagés dans une transmission de données. Dans le protocole
Go-Back-N, chaque paquet dans la fenêtre glissante a son propre minuteur en cas
d’absence d’ACK. Lorsqu’un minuteur expire, seul le paquet correspondant est re-
transmis.

— Out of Order Packets : Les paquets hors séquence sont des paquets qui n’ar-
rivent pas dans l’ordre attendu par le destinataire. Dans le protocole Go-Back-N,
ces paquets sont mis en mémoire tampon par le destinataire dans une fenêtre de
réception jusqu’à ce qu’ils puissent être placés dans le flux de données dans le bon
ordre.

[Link] Utilisation de variable

— send_base = numéro de séquence du premier paquet dans la fenêtre.


— next_seq_num = numéro de séquence utilisé pour le prochain paquet à envoyer.
— exp_seq_num = numéro de séquence du prochain paquet à recevoir.

Synthèse 47
3 Couche transport

[Link] Selective Repeat sender

[Link] Selective Repeat receiver

Synthèse 48
3 Couche transport

[Link] In action

Synthèse 49
3 Couche transport

[Link] Selective Repeat : space of seq. #s

— Les numéros de séquence sont généralement encodés dans les paquets sous la forme
d’une séquence Mbit séquence.
— M bits permettent d’obtenir 2M numéros de séquence différents. Nous appelons cet
l’espace des numéros de séquence.
— Si la conversation contient plus de 2 millions de messages, le numéro de séquence
sera enroulé et recommencera à partir de 0.
— Conséquence : risque d’ambiguïté en cas de retransmission ?

[Link] Selective Repeat : Dilemme

Dans le scénario ci-dessous, on ne voit aucune différences, ils passent tous deux des
données dupliqués dans le scénario d’une perte de ACK.

Mais alors comment empêcher cela d’arriver ? Quelle doit être la taille de la fenêtre (N)
et l’espace seq. (2M ) sont-elles liées ?
— Dans le pire des cas, le destinataire a une fenêtre d’avance par rapport à l’expédi-
teur.
— Dans ce cas, 2N séquences différentes sont nécessaires, d’où 2M >= 2N

Synthèse 50
3 Couche transport

3.5 Connection-oriented transport : TCP


3.5.1 Header

3.5.2 TCP : Maximum Segment Size


le Maximum Segment Size (MSS) est une valeur négociée entre deux hôtes lors de
l’établissement d’une connexion TCP, qui spécifie la taille maximale en octets des segments
de données TCP que chaque hôte peut envoyer à l’autre. Le MSS est important pour
optimiser les performances de la connexion en évitant la fragmentation de paquets et en
adaptant la taille des segments en fonction des caractéristiques du réseau. Il est calculer
de la manière suivante : M SS = M T U − sizeof (T CP |IP headers)

[Link] MSS Trade-off


Le choix du MSS est un compromis entre
— Le risque de fragmentation : si les datagrammes IP sont trop volumineux pour
certains liens sur le chemin. Un MSS trop élevé augmente le risque.
— Le risque d’une surcharge trop importante de l’en-tête TCP/IP : un MSS trop
faible augmente l’overhead (rapport entre la taille de l’en-tête et la taille de la
charge utile)

Synthèse 51
3 Couche transport

[Link] MSS "Negotiation"


Le Maximum Segment Size (MSS) est négocié lors de l’établissement d’une connexion
TCP entre deux hôtes. Lorsque deux hôtes s’entendent pour établir une connexion TCP,
ils s’envoient mutuellement des segments de synchronisation (SYN) qui contiennent des
informations sur leurs capacités de communication, y compris leur MSS.

3.5.3 Le problème des petits paquets


Le "small-packet problem" (problème des petits paquets) est un problème qui se pro-
duit lorsqu’un grand nombre de petits paquets de données sont envoyés sur un réseau,
tels que des paquets de voix ou de vidéo en temps réel.

Le problème est que, lorsqu’un grand nombre de petits paquets sont envoyés, cela peut
entraîner une surcharge du réseau. Cela peut se produire car le protocole de transport
TCP utilise des segments de données plus grands pour transférer les données, ce qui peut
entraîner une inefficacité dans la transmission des petits paquets. En effet, si les petits
paquets sont envoyés dans des segments plus grands, cela peut créer un espace vide (ou
"padding") qui gaspille de la bande passante et peut augmenter la congestion du réseau.

3.5.4 TCP : sequence numbers and ACKs


TCP utilise des "numéros de séquence" pour numéroter chaque octet de données en-
voyé. Cela permet de s’assurer que les données sont envoyées dans le bon ordre et qu’au-
cune donnée n’est perdue. Les numéros de séquence sont également utilisés pour détecter
les paquets de données dupliqués ou perdus.

Lorsqu’un ordinateur envoie un paquet de données, il attribue un numéro de séquence


unique à chaque octet de données contenu dans le paquet. Lorsque l’ordinateur destina-
taire reçoit le paquet, il envoie un accusé de réception (ACK) au premier ordinateur pour
signaler qu’il a bien reçu le paquet. Cet ACK contient également un numéro de séquence
qui indique le prochain octet attendu par le destinataire.

Synthèse 52
3 Couche transport

3.5.5 TCP : RTT et timeout


Le RTT est le temps nécessaire pour qu’un paquet de données soit envoyé d’un ordi-
nateur à un autre et que l’ACK correspondant soit reçu en réponse. Le RTT est mesuré
pour chaque paquet envoyé et est utilisé pour calculer le timeout. Le timeout est la pé-
riode de temps pendant laquelle l’ordinateur qui envoie les données attend une réponse
de l’ordinateur destinataire avant de renvoyer le paquet.

Si le timeout est trop court, le paquet peut être renvoyé trop rapidement, ce qui peut
entraîner une surcharge du réseau. Si le timeout est trop long, cela peut entraîner des
retards importants dans la transmission des données.

Mais alors comment estimer le RTT ? Pour cela, on va calculer le smoothed RTT
(SRTT).
EstimatedRT T = (1 − α) ∗ EstimatedRT T + α ∗ SampleRT T

— EstimatedRTT est la valeur du RTT lissé (en secondes) après avoir reçu un
échantillon de RTT.
— alpha est un facteur de pondération, généralement fixé à 0,125.
— SampleRTT est l’échantillon de RTT le plus récent (en secondes) mesuré pour
un paquet envoyé.
Comment
Pi calculer le EWMA
i−k
k=0 α ∗ (1 − α) ∗ Rk

Synthèse 53
3 Couche transport

3.5.6 TCP : reliable data transfer


[Link] Principes
— Segments en pipeline
— ACK cumulatifs
— Retransmissions
— Minuterie de retransmission unique
— Retransmission du premier segment de la fenêtre
— Retransmissions dues à un dépassement de délai ou à des ACK en double

[Link] TCP Sender

Synthèse 54
3 Couche transport

[Link] TCP : retransmission scenarios

Synthèse 55
3 Couche transport

[Link] TCP : ACK generation details

Evènement reçu Action TCP reçue

Arrivée d’un segment en ordre ACK retardé. Attente jusqu’à 500


avec numéro de séquence attendu. ms pour le segment suivant (piggy-
Toutes les données jusqu’à seq at- backing). S’il n’y a pas de segment
tendu déjà ACKées suivant, envoyer l’ACK

Arrivée d’un segment en ordre avec Envoi immédiat d’un seul ACK cu-
numéro de séquence attendu. Un mulatif ACK, ACK des deux seg-
autre segment segment a un ACK ments dans l’ordre
en attente

Arrivée d’un segment hors service Envoyer immédiatement un double


Seq plus élevé que prévu. . Lacune ACK, indiquant le seq. du prochain
détectée octet attendu (raison : voir retrans-
mission rapide plus loin)

Arrivée d’un segment qui comble Envoi immédiat d’un ACK, à condi-
partiellement ou totalement la la- tion que le segment commence à
cune l’extrémité inférieure de l’intervalle
Avantages de la génération rapide Inconvénients de la génération rapide
Auto-clocking : chaque ACK déclenche l’en- Surcharge si l’ACK ne peut pas être piggy-
voi de nouveaux segments (avance la fenêtre backed dans les segments de données seg-
coulissante). segments (avance de la fenêtre ments
coulissante)
Empêcher la retransmission (en raison du dé- Syndrome de la fenêtre muette lorsque la fe-
lai d’attente de l’expéditeur) nêtre du récepteur est presque pleine (voir
contrôle de flux plus loin)
Permet d’augmenter la taille de la fenêtre
et d’accroître débit (surtout en phase de dé-
marrage lent, voir plus loin le contrôle de la
congestion plus loin)

Synthèse 56
3 Couche transport

[Link] TCP : Fast Retransmit

— Détecter plus tôt les segments perdus grâce à des ACK en double.
— Renvoyer le segment avant l’expiration du délai
— Si l’expéditeur reçoit 3 ACK en double pour les mêmes données, il suppose que le
segment suivant les données ACK a été perdu.

Synthèse 57
3 Couche transport

3.5.7 TCP Controler Flow


Contrôle de flux est un service d’adaptation de la vitesse, il adapte le débit d’envoi
au débit d’écoulement de l’application réceptrice afin que l’expéditeur ne déborde pas la
mémoire tampon du récepteur en transmettant trop vite.

[Link] Principes
— Le récepteur annonce l’espace libre en l’incluant dans les segments rwnd = rbuf_size
- (last_byte_recvd - last_byte_read)
— L’expéditeur limite les données envoyées dans le pipeline (données nonACK) (last_byte_sent
- last_byte_acked) <= min(N, rwnd)

[Link] Header

Synthèse 58
3 Couche transport

[Link] TCP Flow Control – corner cases


— Fenêtre fermée
— Si le destinataire envoie rwnd = 0 ("fenêtre de réception fermée"), l’expéditeur
ne peut plus envoyer de données.
— Pour redémarrer, l’expéditeur doit recevoir un ACK avec rwnd > 0 ("fenêtre
de réception rouverte").
— Cet ACK peut ne jamais arriver ou être perdu
— Segment Window Probe et minuterie Persist
— Pour éviter cela, lorsque rwnd = 0, l’expéditeur peut régulièrement envoyer un
segment (contenant 0 ou 1 octet de charge utile).
— La transmission de ces segments est déclenchée par la minuterie persistante
— Syndrome de la fenêtre idiote.
— MSS empêche les segments d’être trop grands.
— Cependant, le contrôle de flux induit le risque qu’une connexion envoie constam-
ment de petits segments, ce qui augmente les frais généraux
— Dans le pire des cas, une application réceptrice mangerait lentement un octet
à la fois, ce qui ferait que rwnd=1 serait trop grand. mangerait lentement un
octet à la fois, provoquant l’annonce de rwnd=1 l’annonce de rwnd=1 et l’envoi
de segments de 1 octet.
— Comment le résoudre ?
— Une approche possible consiste pour le récepteur à éviter d’annoncer un
rwnd trop petit. Typiquement, n’annoncez pas une taille de fenêtre infé-
rieure à un MSS.
— Une autre approche consiste pour l’expéditeur à s’abstenir d’envoyer des
segments trop petits lorsque le rwnd le permet.
— L’algorithme de Nagle est un moyen d’éviter ce problème. Il Il essaie autant
que possible de regrouper les données envoyées en segments complets, à
moins qu’il n’y ait pas d’un ACK. segments complets, sauf s’il n’y a pas de
données non acquittées dans la fenêtre d’envoi.

[Link] TCP Flow Control – achieved throughput


Quel est le débit de TCP lorsque le contrôle de flux est utilisé ?
En partant du principe que le rwnd = 3 * MSS, on sait que après l’envoi de 3 segments
complets, il faut attendre pour un ACK. Ce qui va causé le protocole TCP de devenir
"auto-cadencé" ce qui signifie que lorsque la fenêtre d’envoi est pleine, l’arrivée d’un ACK
déclenche l’envoi de nouvelles données.

Combien de bits peuvent être envoyés dans le tuyau avant que le premier
ACK ne soit reçu ?
Window Scale option mentionne un facteur d’échelle de fenêtre facteur d’échelle de fenêtre
N tel que la taille réelle de la fenêtre est ( rwnd 2N )

Synthèse 59
3 Couche transport

3.5.8 Connection management


[Link] Three-way handshake
1. Etape 1
— Le client envoie un segment TCP SYN au serveur
— Spécifie l’ISN (initial sequence number) du client numéro de séquence initial)
— Ne contient pas de données
2. Etape 2
— Le serveur reçoit SYN, répond avec un segment SYN+ACK
— Le serveur alloue des tampons
— Spécifie l’ISN du serveur
— Ne contient pas de données
3. Etape 3
— Le client reçoit SYN+ACK, répond par un segment ACK
— Peut contenir des données

Synthèse 60
3 Couche transport

[Link] Closing a connection


1. Etape 1
— Le client envoie le segment de contrôle TCP FIN au serveur.
2. Etape 2
— Le serveur reçoit FIN et répond avec ACK.
— L’application reçoit un EOF lors de la lecture d’un socket.
— Elle ferme la connexion et envoie FIN.
3. Etape 3
— Le client reçoit FIN, répond avec ACK.
— Entre en "attente temporisée" - répondra répondra par un ACK aux FIN reçus
— En TIME_WAIT, le client ne peut pas réutiliser port local (problème lorsque
le serveur ferme en premier)
4. Etape 4
— Reçoit un ACK.
— La connexion est fermée.

Synthèse 61
3 Couche transport

[Link] TCP client cycle

[Link] DDOS

Le DOS (Denial of Service) est une attaque informatique visant à rendre un service
ou un site web inaccessible en submergeant le serveur cible avec une quantité excessive
de trafic réseau.

La solution avec TCP SYN Cookies est une méthode de protection contre les attaques DOS
basées sur le protocole TCP (Transmission Control Protocol). Cette solution implémente
une technique qui utilise des cookies pour identifier les clients légitimes et les distinguer
des clients malveillants. Lorsqu’un client envoie une demande de connexion TCP (SYN),
le serveur crée une signature numérique unique (un cookie) à partir de l’adresse IP et
du numéro de séquence du client. Si le serveur reçoit ensuite une réponse de la part du
client, il peut vérifier le cookie pour s’assurer qu’il s’agit bien du client qui a initialement
demandé la connexion. Si le cookie est valide, la connexion est établie normalement. Si le
cookie est invalide ou manquant, le serveur suppose que la demande est malveillante et
ne répond pas, ce qui permet de se protéger contre les attaques de type SYN flooding.

Synthèse 62
3 Couche transport

3.6 TCP congestion control


3.6.1 Congestion Collapse
— La première version de TCP utilisait une taille de fenêtre d’envoi fixe.
— Cela a provoqué un comportement étrange en 1986...
— Liaison entre l’Université de Californie à Berkeley et le Laboratoire national Law-
rence Berkeley ( 350 m plus loin)
— La liaison a été utilisée, MAIS le débit a chuté de 32 kbps à 40 bps (une réduction
de 3 ordres de grandeur)
— Rôle des files d’attente des routeurs = absorber les rafales de trafic lorsque,
— Transitoirement, le débit d’entrée > le débit de sortie MAIS, une surcharge persis-
tante du trafic entraîne
— accumulation des files d’attente → retard
— débordement des files d’attente → paquets abandonnés → retransmissions

[Link] Objectifs

— efficacité : les ressources du réseau sont utilisées au maximum, il n’y a pas de


congestion
— équité : chaque utilisateur reçoit une part "raisonnable" de la capacité du réseau

[Link] Self-clocking

— Rappelons que TCP utilise une fenêtre coulissante pour suivre les paquets en at-
tente d’accusé de réception.

— Chaque fois qu’un ACK arrive, la fenêtre glisse, ce qui déclenche la transmission
de nouveaux paquets

— Si le chemin comporte un goulet d’étranglement, la file d’attente du routeur en


amont s’allonge
— Par conséquent, les paquets et les ACK se dispersent, ce qui oblige l’expéditeur à
envoyer des paquets moins fréquemment.

Synthèse 63
3 Couche transport

[Link] Controlling the sending rate


— Nous avons observé précédemment(1) que la taille de la fenêtre d’envoi contrôle le
taux d’envoi moyen.
— Idée : rendons cette taille dynamique. (LastByteSent−LastByteAcked <= min(cwnd, rwnd)
— la fenêtre de réception (rwnd) est utilisée pour le contrôle de flux
— la fenêtre de congestion (cwnd) est utilisée pour le contrôle de la congestion.
Elle est fonction de la congestion perçue du réseau.
— Comme nous l’avons vu précédemment, lorsque le contrôle de la congestion entre
en action, le taux d’envoi moyen devient à peu près le même que celui du réseau.
taux d’envoi moyen devient à peu près. Rate = cwnd
RT T

3.6.2 Additive Increase, Multiplicative Decrease


[Link] Approche

— La largeur de bande disponible varie constamment augmentation de la taille de la


fenêtre, donc du taux de transmission, recherche de la largeur de bande utilisable,
jusqu’à ce qu’une perte se produise et que le débit soit réduit
— Leçon tirée de la théorie du contrôle : stabilité si le taux diminue plus rapidement
que l’augmentation
— Augmentation additive
— augmentation du cwnd de = 1 MSS tous les RTT jusqu’à ce qu’une perte soit
détectée
— Diminution multiplicative
— multiplier cwnd par = 1/2 après la perte (le réseau peut transporter entre
cwnd/2 et cwnd octets, soyez conservateur)

[Link] En pratique

— Objectif : à chaque RTT, augmenter la taille de la fenêtre d’encombrement d’au


moins un MSS. maximum d’un MSS
cwndt + RT T ← cwndt + M SS
— Mise en œuvre : dans un protocole à horloge automatique, mise à jour de la taille
de la fenêtre de congestion à chaque réception d’un ACK.
SS 2
cwnd′ → cwnd + Mcwnd
— Au cours d’un intervalle RTT, cette opération sera effectuée environ cwnd/MSS
fois (nombre de segments complets envoyés).
SS 2
cwndt+RT T = cnwdt + NACK (RT T ) ∗ M
cwndt

Synthèse 64
3 Couche transport

3.6.3 Slow Start


[Link] Principes

— Au début de la connexion, cwnd = 1 MSS (1)


— Exemple : MSS = 500 octets RTT = 200 msec → débit initial = 20 kbps
— La bande passante disponible peut être » MSS/RTT : il est souhaitable d’augmen-
ter rapidement le débit jusqu’à un niveau respectable.
— Augmentation exponentielle du débit jusqu’à la première perte.

[Link] Fast Recovery

— Après 3 dup ACKs : cwnd est réduit de moitié, la fenêtre croît alors linéairement.
Il s’agit d’une récupération rapide.
— Après le délai d’attente : le cwnd est plutôt fixé à 1 MSS ; la fenêtre croît ensuite
de façon exponentielle jusqu’à ssthresh, puis de façon linéaire. exponentiellement
jusqu’à ssthresh, puis croît linéairement.

Synthèse 65
4 Couche Réseau

4 Couche Réseau
4.1 Introduction
4.1.1 Principe
— Segment de transport entre l’hôte émetteur et l’hôte récepteur à l’hôte destinataire.
— du côté de l’envoi encapsule les segments en datagrammes
— du côté de la réception, délivre les segments à la couche transport.
— les protocoles de la couche réseau existent dans chaque routeur et chaque hôte.
— le routeur examine les champs d’en-tête de tous les datagrammes IP qui passent à
travers lui

4.1.2 Deux fonctions clés de la couche réseau


[Link] Forwarding
— Déplacer les paquets de l’entrée du routeur vers la sortie appropriée du routeur
(effectué par chaque routeur, indépendamment).
— Fonction du "plan de données"

[Link] Routing
— Déterminer le chemin (route) emprunté par les paquets de la source à la destination
(effectué en collaboration par plusieurs routeurs).
— Rôle des algorithmes et des protocoles de routage
— Fonction du "plan de contrôle"

Synthèse 66
4 Couche Réseau

4.2 Switching
4.2.1 Définition
La commutation définit la manière dont un élément de réseau transmet les données
arrivant à l’une de ses entrées à l’une de ses sorties (unicast) ou à plusieurs sorties (mul-
ticast).

4.2.2 Circuit Switching


[Link] Principe
— Le chemin doit être configuré avant de pouvoir transmettre le trafic. Le chemin est
appelé circuit virtuel (VC).
— Orienté connexion : le paquet n’est pas autonome. La manière dont un paquet est
transféré dépend généralement de l’interface entrante + l’en-tête du paquet (qui
contient un numéro de circuit virtuel). en-tête du paquet (contient un numéro de
circuit virtuel)

[Link] Element Of VC Network


— configuration de l’appel pour chaque appel avant que les données ne puissent cir-
culer
— chaque routeur sur le chemin source-dest maintient un "état" pour chaque connexion
qui passe
— protocole de signalisation nécessaire pour établir, maintenir et démanteler les VCs

[Link] Virtual Circuit


— chemin de la source à la destination.
— les numéros de VC, un numéro pour chaque liaison le long du chemin ; le numéro
de VC n’a qu’une portée locale.
— entrées (état) dans les routeurs le long du chemin de ce circuit.
— lien, les ressources du routeur (bande passante, tampons) peuvent être allouées au
VC (ressources dédiées = service prévisible).

[Link] Packet(in a VC network)


— Porte un numéro VC plutôt qu’une adresse de destination
— Le numéro VC d’un paquet change généralement en cours de route (les nouveaux
numéros VC proviennent des tables de nouveaux numéros de VC proviennent des
tables de commutation)

Synthèse 67
4 Couche Réseau

4.2.3 Packet-switching
[Link] Principe
— Paquets = données + adresse de destination.
— Sans connexion : paquet autonome, c’est-à-dire qu’il spécifie complètement au com-
mutateur la destination finale où il doit être acheminé.
— Chaque paquet doit être analysé par le commutateur pour obtenir la destination
finale.

[Link] Éléments des réseaux de datagrammes


— Pas d’établissement d’appel au niveau de la couche réseau.
— Routeurs : pas d’information sur les connexions de bout en bout.
— Pas de concept de "connexion" au niveau du réseau.
— Paquets transmis à l’aide de l’adresse de l’hôte de destination.
— Les paquets entre une même paire source-dest peuvent emprunter des chemins
différents chemins différents.
— Chaque routeur du cœur ou du réseau doit savoir comment atteindre chaque des-
tination !
— Les tables de transfert sont volumineuses → nécessité de grandes mémoires.
— Les adresses sont généralement plus longues que les numéros de VC.
— La surcharge des en-têtes de paquets est plus importante.

Synthèse 68
4 Couche Réseau

4.3 What’s inside a router


4.3.1 Vue d’ensemble de l’architecture du routeur
[Link] Key router functions
— Exécuter des algorithmes/protocoles de routage (RIP, OSPF, BGP)
— transmettre des datagrammes de la liaison entrante à la liaison sortante.

[Link] Input port functions

[Link] Switching via Memory


Première génération : L’architecture est similaire à celle des ordinateurs tradition-
nels : la commutation est effectuée sous le contrôle direct du processeur central. Chaque
paquet est copié dans la mémoire du système. La vitesse de transfert est limitée par la
bande passante de la mémoire, avec seulement deux traversées de bus par datagramme.
En général, cette vitesse est inférieure à 0,5 Gbits/s.

[Link] Switching via a Bus


Seconde génération : Le datagramme est transmis du port d’entrée de la mémoire
au port de sortie via un bus partagé. Cette méthode exploite la localité temporelle du
trafic, mais pose un problème de contention de bus : la vitesse de commutation est limitée
par la bande passante du bus. Un exemple de cette méthode est le commutateur Cisco
6500 avec un bus de commutation partagé de 32 Gbits/s.

Synthèse 69
4 Couche Réseau

[Link] Switching via a switched backplane


Troisième génération : Les commutateurs en matrice de connexion (crossbar) pré-
sentent plusieurs problèmes, notamment la complexité de l’adressage de chaque point de
croisement (N2 points de croisement dans un crossbar de N x N). De plus, la taille du
crossbar peut devenir très importante avec N2 points de croisement à gérer (note : cela
n’a pas besoin d’être carré, c’est-à-dire qu’il peut être N x M).

D’autres réseaux d’interconnexion, tels que les réseaux Banyan, ont été développés à
l’origine pour connecter des processeurs dans des systèmes multiprocesseurs afin de sur-
monter ces problèmes.

Une tendance de conception avancée consiste à fragmenter les datagrammes en cellules de


longueur fixe, puis à commuter les cellules à travers la matrice de connexion. Par exemple,
le routeur Cisco 12416 peut commuter 320 Gbits/s à travers le réseau d’interconnexion
en utilisant cette méthode

[Link] Output port queueing : why ?


— Mise en mémoire tampon lorsque le taux d’arrivée via le tissu de commutation
dépasse la vitesse de la ligne de sortie de sortie
— La mise en file d’attente (retard) et la perte due au débordement de la mémoire
tampon du port de sortie !

[Link] Output port packet scheduling


— Programmation
— Quel paquet sélectionner lorsque plusieurs paquets sont disponibles dans la file
d’attente ?
1. Premier arrivé, premier servi (FCFS ou FIFO)
2. Fair Queueing (FQ) : partage le lien sortant "équitablement" entre les
différents flux de trafic. différents flux de trafic
3. Weighted Fair Queueing (WFQ) : identique à FQ mais les flux de trafic
mais les flux de trafic ont des poids différents
— Politique d’abandon
— Action s’il n’y a pas assez de mémoire dans le tampon ?
1. Tail Drop : abandonner les paquets qui arrivent
2. Random Early Detection (RED) : au-delà d’une profondeur moyenne
donnée de la file d’attente, la probabilité d’abandon des paquets est en
fonction de la profondeur de la file d’attente.

Synthèse 70
4 Couche Réseau

[Link] Input port queueing


— Débordement de la mémoire tampon d’entrée également possible
— Fabric est plus lent que l’ensemble des ports d’entrée → possibilité de mise en
file d’attente au niveau des files d’attente d’entrée
— Blocage de la tête de ligne (HOL)
— datagramme en tête de file empêche les autres datagrammes de la file d’attente
d’avancer. de la file d’attente d’avancer
— peut également entraîner des retards et des pertes dans la file d’attente

[Link] HOL blocking solution


Une solution pour éviter le blocage HOL consiste à diviser virtuellement les files d’at-
tente d’entrée en fonction des paquets d’entrée et des ports de sortie ciblés.

Synthèse 71
4 Couche Réseau

4.4 IP : Internet Protocol


4.4.1 Datagram format
[Link] La couche réseau de l’Internet

[Link] IP : header format

Synthèse 72
4 Couche Réseau

[Link] IP fragmentation
— Les liaisons réseau ont une taille maximale de transfert (MTU).
— Chemin de bout en bout = différents types de liaisons, différents MTU.
— Si (MTU de la liaison < longueur du datagramme) → datagramme divisé en plu-
sieurs fragments (également datagrammes)
— Les fragments de datagramme ne sont "réassemblés" qu’à la destination finale.
— Les bits de l’en-tête IP sont utilisés pour identifier et ordonner les fragments ap-
parentés.

Synthèse 73
4 Couche Réseau

4.4.2 Adressage IP
[Link] Introduction
L’adressage IP est un système utilisé pour identifier et localiser des ordinateurs et des
périphériques dans un réseau informatique. Chaque ordinateur ou périphérique dans le ré-
seau est attribué une adresse IP unique, qui est une série de chiffres séparés par des points.

Ces adresses IP permettent aux ordinateurs de communiquer les uns avec les autres en
utilisant le protocole Internet (IP). Lorsqu’un ordinateur envoie des données à un autre
ordinateur dans le réseau, il utilise l’adresse IP de destination pour acheminer les données
à l’ordinateur approprié.

Il existe deux versions d’adresses IP, IPv4 et IPv6. IPv4 est la version la plus courante
et utilise une adresse IP composée de 4 octets (chiffres de 0 à 255). Cependant, avec la
croissance continue d’Internet et du nombre d’appareils connectés, IPv6 a été développé
pour fournir un nombre d’adresses plus grand. Les adresses IPv6 sont plus longues que
les adresses IPv4 et sont composées de huit groupes de quatre chiffres hexadécimaux.

[Link] Allocation
— L’adressage IPv6 offre un grand espace d’adressage avec environ 3.4E38 adresses,
ce qui est considérablement plus élevé que les 4.3E9 adresses offertes par IPv4.
— Les adresses IPv4 et IPv6 sont attribuées de manière organisée pour éviter les
doublons.
— Les adresses IP sont divisées en blocs d’adresses ou réseaux IP pour faciliter l’iden-
tification des ordinateurs et des périphériques dans un réseau.

[Link] Hiérarchie à deux niveaux


Une adresse IP a deux parties / rôles :
— Partie réseau : identifie le réseau où se trouve l’interface (rôle de localisateur).
— Partie hôte : identifie l’interface au sein du réseau (rôle d’identificateur).

Synthèse 74
4 Couche Réseau

[Link] Adressage par classe


— L’espace d’adressage a été divisé en cinq classes de réseau
— Les classes A, B et C ont une taille fixe pour la partie réseau

[Link] IP Networks
— Chaque réseau IP utilise un bloc d’adresses IP différent (dans l’exemple, les adresses
de classe C sont utilisées).
— Au sein de chaque réseau IP, chaque interface s’est vu attribuer un hôte/interface
différent, et donc une adresse IP différente.
— Les routeurs sont utilisés pour faire passer les paquets d’un réseau IP à un autre.
— Les réseaux IP connectés par des routeurs forment un réseau internet.

[Link] Sous-réseau
— Problème de l’adressage par classe : un nouveau réseau IP doit être attribué pour
chaque nouveau segment (LAN ou lien)
— Solution : le sous-réseau (subnetting)
— Principe : utiliser un seul réseau IP et emprunter certains des bits d’hôte pour
identifier les sous-réseaux (subnets)
Exemple :
Si on a par exemple une adresse ip [Link], on a besoin de créer 6 sous-réseaux → et
de prendre 3 bits (sous-réseau)

Synthèse 75
4 Couche Réseau

[Link] Taille du sous-réseau


— Avec l’adressage par classe, la délimitation des parties réseau et hôte/interface est
implicite. La taille du réseau peut être dérivée d’une adresse IP.
— Exemple : [Link] est un réseau de classe C, taille=24 bits.
— Avec le subnetting, cela ne fonctionne plus.
— Exemple : [Link] pourrait être une adresse d’un sous-réseau du réseau
de classe B [Link] où 3 bits ont été empruntés à la partie interface
Pour cela, il faut donner plus d’information
— La longueur du préfixe est le nombre de bits de la partie réseau d’une adresse.
— Exemple : [Link]/19 est une adresse IP du sous-réseau [Link]/19
— Un masque de sous-réseau est une autre façon (historique) de fournir la longueur
du préfixe. Pour un réseau IPv4 de taille N, un masque de sous-réseau est une
séquence de N 1 bits suivis de 32-N 0 bits.
— Exemple : le masque de sous-réseau du sous-réseau [Link]/19 est [Link].

Synthèse 76
4 Couche Réseau

[Link] Arithmétique
— Il est souvent utile d’ajouter un nombre entier à une adresse IP pour obtenir une
autre adresse IP.
— Par exemple, considérons [Link]/18 ?
— Sa partie hôte comporte (32-18) = 14 bits.
— Par conséquent, elle contient 214 = 16384 adresses
— La dernière adresse à l’intérieur du sous-réseau est la suivante :
[Link] + (16384 - 1) = [Link]
— La première adresse qui suit ce sous-réseau est la suivante :
[Link] + 16384 = [Link]

[Link] Masque de sous-réseau de longueur fixe (FLSM)


— adresse de base : 172.16.48/22
— net = 22, sub = 3 et host = 7
— Identifier le plus grand sous-réseau : C avec n=120 hôtes
— Déduire la taille du bloc (2k ≥ n) = 128 (27 )
— Découper le réseau alloué en sous-réseaux fixes et fixes et de taille égale : 8 (23 )
sous-réseaux de longueur de préfixe 22+3 = 25

A [Link]/25
B [Link]/25
.. ..

[Link] Masque de sous-réseau à longueur variable (VLSM)


— net = 22, host = 10 (variable), A = 20 host et B = 50 host
— Identifier la taille de bloc 2k pour chaque sous-réseau de taille n
— Trier par ordre décroissant de taille
— Attribuer

n 2k
B 50 64 [Link]/26
A 20 32 [Link]/27
.. .. .. ..

[Link] Sous-réseaux spéciaux


Certaines plages d’adresses IP sont réservées à des fins spécifiques
— Adresses privées (RFC1918)
— 1 sous-réseau de classe A : [Link]/8
— 16 sous-réseaux de classe B : [Link]/12
— 256 sous-réseaux de classe C : [Link]/16
— Adresses de l’hôte local ou "loopback" (RFC3330) : [Link]/8
— Adresses Link-Local (RFC3927) : [Link]/16
— Multidiffusion (RFC3171) : [Link]/8
— Réservé pour une utilisation future (RFC1700) : [Link]/8

Synthèse 77
4 Couche Réseau

[Link] L’adressage sans classe


L’adressage par classe était la méthode originale utilisée pour attribuer les adresses IP
dans l’IPv4. Dans ce système, les adresses IP étaient divisées en trois classes : classe A,
classe B et classe C. Chaque classe avait une taille fixe : La classe A, la classe B et la classe
C. Chaque classe avait une taille fixe, la classe A ayant la plus grande plage d’adresses,
suivie de la classe B, puis de la classe C.

Cependant, la consommation de l’espace d’adressage IPv4 a augmenté plus rapidement


que prévu, et le système d’adressage par classe n’a pas été conçu pour allouer efficacement
les adresses IP. Cela a conduit à un manque d’agrégation, ce qui signifie qu’il y avait de
nombreux petits blocs fragmentés d’adresses IP au lieu de quelques blocs plus importants.
En conséquence, la taille de la table de routage augmentait de manière exponentielle au
fur et à mesure de l’attribution des adresses IP, ce qui rendait le routage plus complexe
et plus lent.

Pour résoudre ce problème, le système de routage inter-domaines sans classe (CIDR)


a été introduit. Le CIDR permet une attribution plus souple des adresses IP en autori-
sant l’attribution de blocs de taille variable. Cela permet une meilleure agrégation et une
utilisation plus efficace de l’espace d’adressage disponible, ce qui contribue à réduire la
taille des tables de routage et à améliorer les performances de routage.

Synthèse 78
4 Couche Réseau

4.4.3 Forwarding
[Link] IP Forwarding
Transfert pour les hôtes
— N interfaces physiques (NIC)
— (N+1) adresses IP (une par NIC + adresse loopback)
— routeur passerelle offrant une connectivité vers des destinations distantes.

Transfert pour les routeurs


— possède plusieurs interfaces
— est autorisé à transmettre d’une interface à l’autre

Transmission saut par saut


Un paquet est envoyé par l’hôte source à son routeur de saut suivant, qui le transmet à
son propre routeur de saut suivant et ainsi de suite... jusqu’à ce que le paquet atteigne
l’hôte de destination.

[Link] Table de transfert IP


Lorsque les hôtes et les routeurs reçoivent un datagramme à envoyer ou à transférer,
ils consultent leur table de transfert ou de routage pour déterminer l’interface de sortie
et le routeur suivant appropriés pour le datagramme. Chaque entrée de la table contient
plusieurs informations, notamment le sous-réseau de destination (exprimé sous la forme
d’une adresse réseau et d’un masque de réseau), l’interface de sortie du datagramme et,
éventuellement, l’adresse d’une passerelle ou d’un routeur de saut suivant. D’autres para-
mètres ou drapeaux peuvent également être inclus dans l’entrée.

Toutefois, il n’est pas pratique que la table de transfert IP contienne une entrée pour
chaque destination individuelle, car cela nécessiterait une énorme quantité de mémoire.
Pour IPv4, il y a 232 , soit 4 294 967 296, adresses de destination possibles. Au lieu de cela,
la table de transfert utilise une technique appelée agrégation de routes pour regrouper les
destinations en plages qui peuvent être associées à une seule interface de liaison sortante
et à un seul routeur de saut suivant. Chaque plage est spécifiée sous la forme d’un couple
(adresse, masque) ou (préfixe, longueur), où le préfixe représente l’adresse du réseau et
la longueur spécifie le nombre de bits du masque. Cela permet à la table de transfert
d’être beaucoup plus compacte tout en étant capable d’acheminer les paquets vers leur
destination correcte.

Synthèse 79
4 Couche Réseau

[Link] Longest Prefix Matching (LPM)


Pour trouver l’entrée correspondant à une adresse de destination, un routeur utilise la
correspondance du préfixe le plus long.
— Trouver les entrées dont les préfixes correspondent à l’adresse. (la partie réseau du
préfixe et l’adresse sont égales)
— Choisir le préfixe le plus long ; il doit être unique.
— 690 000 entrées dans les tables des routeurs principaux en novembre 2017.
— jusqu’à des centaines de millions de paquets par seconde, par interface

Il y a deux manières de vérifier le sous-réseau/préfix qui correspond à une adresse ip :


1. La première méthode consiste à écrire l’adresse IP et le masque de sous-réseau en
binaire et à vérifier si les bits du préfixe correspondent aux bits les plus significatifs
de l’adresse IP. Prenons l’exemple de l’adresse IP [Link] et du sous-réseau
[Link]/21. Pour comparer les deux, nous pouvons écrire l’adresse IP en bi-
naire : 11001000 00010111 00010110 10100001 et on peut écrire le sous réseau avec
un masque de 21 bits 11001000 00010111 00010000 00000000
2. La deuxième méthode consiste à déterminer les adresses IP les plus basses et les
plus hautes du sous-réseau/préfixe et à vérifier si l’adresse de destination se situe
dans cette fourchette. Prenons par exemple le même sous-réseau [Link]/21.
Pour déterminer les adresses IP la plus basse et la plus haute de ce sous-réseau,
nous pouvons utiliser la formule suivante : Lowest IP address = Network address
+ 1 et Highest IP address = Broadcast address - 1.
On a alors [Link]/21 → [ [Link] – [Link] ] et donc [Link]
est compris dans l’interval.

Au niveau d’une application, on peut représenter le LMP comme étant un arbre binaire.
Cependant en ce qui concerne la manière physique, il faut prendre en compte les choses
suivantes :
— LPM est l’abréviation de Longest Prefix Match, une technique utilisée dans les
réseaux pour trouver le chemin d’acheminement d’un paquet sur la base du préfixe
correspondant le plus long dans la table de routage. Les implémentations maté-
rielles du LPM s’appuient sur les mémoires ternaires adressables par le contenu
(TCAM) pour effectuer une correspondance rapide et efficace des préfixes.
— Les mémoires CAM ternaires (TCAM) sont un type de mémoire adressable par le
contenu qui peut correspondre à des valeurs de bits de 0 et 1, ainsi qu’à une valeur
"sans importance" représentée par "x". Cette valeur "indifférente" peut être soit 1,
soit 0, en fonction de l’application spécifique. Les CAM ternaires sont couramment
utilisées dans les équipements de réseau, tels que les routeurs et les commutateurs,
pour effectuer des recherches rapides dans les tables.
— Contrairement à la RAM standard, à laquelle on accède en utilisant des adresses
mémoire pour lire ou écrire des données, la mémoire adressable par le contenu ef-
fectue une recherche de certaines données en comparant les données recherchées à
toutes ses entrées en parallèle. La mémoire adressable par contenu est donc beau-
coup plus rapide que la mémoire vive ordinaire pour certains types de recherche,
comme la correspondance des préfixes dans les tables de routage.
— La CAM est également utilisée pour fabriquer des mémoires cache dans les ordina-
teurs. Par exemple, la mémoire cache de l’unité centrale utilise la CAM pour stocker

Synthèse 80
4 Couche Réseau

les adresses de mémoire récemment accédées et les données correspondantes.


— Cependant, la CAM est très coûteuse et consomme beaucoup d’énergie par rapport
à la RAM classique, ce qui limite son utilisation dans de nombreuses applications.
En effet, la CAM stocke les données d’une manière qui permet d’y accéder rapide-
ment à l’aide de recherches basées sur le contenu, plutôt qu’à l’aide d’adresses mé-
moire. Par conséquent, la CAM nécessite des circuits plus complexes et consomme
plus d’énergie que la RAM classique.

[Link] Comment en avoir une IP ?


Pour cela, il faut que votre fournisseur d’accès internet vous donne accès à celle-ci. Il a
alors besoin lui aussi que des instances supérieurs comme ARIN, RIPE, APNIC, LACNIC
et AfriNIC leur donnent la gestion d’une partie d’internet.

[Link] Adressage hiérarchique : agrégation de routes


L’adressage hiérarchique permet d’annoncer efficacement les informations de routage
informations de routage : un seul bloc est annoncé par le FAI mais couvre tous ses clients.

L’agrégation n’est pas toujours possible. Les FAI-R-U doivent annoncer une route plus
une route plus spécifique au client 1 puisque ce dernier a précédemment obtenu son préfixe
auprès de Fly-By-Night-ISP.

[Link] IP Statique
— fourni par l’administrateur du réseau
— configuré manuellement dans le système d’exploitation
— comprend l’adresse IP + le masque de sous-réseau

[Link] Adresses locales de liaison


— Attribution automatique (RFC3927)
— Utilisée par les hôtes d’un même réseau physique en l’absence d’un protocole de
configuration d’adresses dynamiques (tel que DHCP).
— Les routeurs ne doivent pas transmettre de datagrammes avec des adresses de
liaison.
— Adresse dans le bloc 169.254/16.
— Partie interface de l’adresse
— basée sur la génération de nombres pseudo-aléatoires(1)
— nécessité de gérer les conflits : deux hôtes choisissent la même adresse s’appuie
sur les mécanismes de la couche liaison (plus d’informations au chap 5).

Synthèse 81
4 Couche Réseau

4.4.4 DHCP
[Link] Le but du DHCP
Le but du DHCP (Dynamic Host Configuration Protocol) est de permettre à des
appareils (comme des ordinateurs, des téléphones, des imprimantes, etc.) de se connecter
à un réseau informatique et d’obtenir automatiquement une configuration réseau, sans
avoir besoin de la configurer manuellement.

[Link] Vue d’ensemble du DHCP


— RFC2131 : based on BOOTP, bootstrap protocol
— Utilise UDP comme protocole de transport (client port 68, server port 67)
— Protocole de demande/réponse
— L’hôte diffuse le msg DHCPDISCOVER
— Le serveur DHCP répond avec DHCPOFFER msg
— l’hôte demande une adresse IP : msg DHCPREQUEST
— le serveur DHCP envoie l’adresse : msg DHCPACK
— autres messages : DHCPNACK, DHCPDECLINE, DHCPRELEASE, DHC-
PINFORM

[Link] Format du message


Le DHCP a besoin d’options pour fonctionner :
— Adresse IP demandée (50)
— Durée de location de l’adresse IP (51)
— Type de message (53)
— Identifiant du serveur (54)

Synthèse 82
4 Couche Réseau

[Link] Scénario avec un serveur DHCP


1. Un nouvel appareil, par exemple un ordinateur portable, se connecte pour la pre-
mière fois à un réseau local câblé ou sans fil.
2. Le client DHCP (dans ce cas l’ordinateur portable) envoie une requête de décou-
verte de serveur DHCP en utilisant une adresse IP de diffusion ([Link])
pour trouver un serveur DHCP disponible sur le réseau.
3. Le serveur DHCP reçoit la requête de découverte et répond en envoyant une offre de
configuration. Cette offre contient une adresse IP disponible qui peut être attribuée
à l’appareil, ainsi que d’autres informations de configuration telles que la durée de
validité de l’adresse IP (temps pendant lequel l’appareil peut utiliser cette adresse),
les paramètres DNS et les passerelles par défaut.
4. Le client DHCP reçoit l’offre du serveur DHCP et peut soit accepter l’offre, soit
continuer à chercher d’autres serveurs DHCP sur le réseau pour comparer les offres.
5. Si le client accepte l’offre, il envoie une demande de configuration DHCP au serveur
DHCP pour informer le serveur qu’il souhaite utiliser l’adresse IP proposée.
6. Le serveur DHCP reçoit la demande de configuration et envoie une réponse d’at-
tribution d’adresse IP au client, confirmant ainsi que l’adresse IP est réservée pour
cet appareil.
7. Le client DHCP reçoit la réponse d’attribution et configure automatiquement son
adresse IP, les paramètres DNS et les passerelles par défaut.
8. À partir de ce moment, le client peut communiquer sur le réseau en utilisant
l’adresse IP attribuée par le serveur DHCP et les autres informations de configu-
ration obtenues.

Synthèse 83
4 Couche Réseau

[Link] Scénario avec deux serveurs DHCP


1. Un nouvel appareil, tel qu’un ordinateur portable, se connecte pour la première
fois à un réseau local câblé ou sans fil.
2. Le client DHCP envoie une requête de découverte de serveur DHCP en utilisant une
adresse IP de diffusion ([Link]) pour trouver un serveur DHCP disponible
sur le réseau.
3. Les deux serveurs DHCP reçoivent la requête de découverte et répondent chacun
avec une offre de configuration. Chaque offre contient une adresse IP disponible qui
peut être attribuée à l’appareil, ainsi que d’autres informations de configuration
telles que la durée de validité de l’adresse IP, les paramètres DNS et les passerelles
par défaut.
4. Le client DHCP reçoit les offres de configuration de chaque serveur DHCP et doit
choisir la meilleure offre en fonction des informations de configuration fournies.
5. Si le client choisit une offre d’un serveur DHCP, il envoie une demande de configu-
ration DHCP pour informer le serveur qu’il souhaite utiliser l’adresse IP proposée.
6. Le serveur DHCP qui a reçu la demande de configuration attribue une adresse IP
à l’appareil et confirme la réservation de l’adresse IP pour l’appareil.
7. Si l’adresse IP proposée n’est pas disponible, le serveur DHCP peut renvoyer une
offre alternative pour une autre adresse IP disponible.
8. Si le client ne reçoit pas de réponse à sa demande de configuration DHCP après
un certain temps, il peut envoyer une nouvelle demande de configuration DHCP
pour essayer de contacter un autre serveur DHCP disponible sur le réseau.
9. À partir de ce moment, le client peut communiquer sur le réseau en utilisant
l’adresse IP attribuée par le serveur DHCP et les autres informations de configu-
ration obtenues.

Synthèse 84
4 Couche Réseau

[Link] Serveur DHCP sur un autre sous-réseau


Lorsque le serveur DHCP est sur un autre réseau, cela peut poser un problème pour les
clients qui tentent de se connecter au réseau, car ils ne peuvent pas atteindre directement
le serveur DHCP pour obtenir une adresse IP et les autres informations de configuration.
En effet, le protocole DHCP utilise une adresse IP de diffusion (broadcast) pour envoyer
des requêtes à tous les serveurs DHCP du réseau local. Mais cette adresse de diffusion ne
fonctionne pas à travers les routeurs, donc les requêtes de découverte DHCP ne peuvent
pas être envoyées à des serveurs DHCP sur un autre réseau.

Solution
1. Le relais transmet les demandes du client au serveur DHCP
— unicast vers le serveur ([Link]) en utilisant sa propre adresse comme source.
([Link])
— l’adresse de la passerelle (giaddr) est définie sur l’adresse IP de l’interface qui
a reçu le message DHCP (par exemple [Link])
2. Serveur
— sélectionne l’adresse IP dans le champ d’application en fonction de giaddr
— envoie la réponse à l’agent de relais initial ([Link])
3. Le relais transmet la réponse du serveur au client
— la destination de la réponse reçue doit être l’adresse de l’interface de l’agent
— la réponse est envoyée en unicast à l’adresse du client (physique) ou diffusée
dans le sous-réseau

Synthèse 85
4 Couche Réseau

[Link] DHCP Timer


— Trois minuteries : T1 < T2 < Bail
— Habituellement (RFC2132) → T1 = 1/2 x bail, T2 = 7/8 x bail
— À l’expiration de T1 : nécessité de prolonger le bail, il faut envoyer une demande
en unicast(1)
— À l’expiration de T2, il faut envoyer une DEMANDE en diffusion générale(2)
— À l’expiration du bail, l’adresse ne peut plus être utilisée

[Link] DHCP Options


Plusieurs paramètres IP peuvent être fournis par les options DHCP
— Masque de sous-réseau (type=1), par exemple [Link]
— Routeur (type=3), par exemple [Link]
— Serveur de nom de domaine (type=6), par exemple [Link], [Link]
— Nom de domaine (type=15), par exemple "[Link]"
— Nom d’hôte (type=12)
— Route statique (type=121)

4.4.5 NAT
[Link] Définition
NAT signifie "Network Address Translation" (Traduction d’Adresse Réseau en fran-
çais). C’est une technique utilisée dans les réseaux informatiques pour permettre à plu-
sieurs ordinateurs ou périphériques d’une réseau local (LAN) de partager une seule adresse
IP publique pour communiquer sur Internet.

Lorsque plusieurs appareils d’un réseau local se connectent à Internet, ils partagent gé-
néralement une même adresse IP publique fournie par le fournisseur d’accès à Internet
(FAI). Cependant, les adresses IP privées uniques sont attribuées à chaque appareil dans
le réseau local. C’est là que le NAT entre en jeu pour faciliter la communication.

Synthèse 86
4 Couche Réseau

4.4.6 ICMP
[Link] Vue d’ensemble
Utilisé par les hôtes et les routeurs pour communiquer des informations au niveau du
réseau
— Signalement d’erreurs hôte inaccessible, réseau, port, protocole
— Diagnostic de l’accessibilité demande/réponse d’écho, utilisée par exemple ping
— Couche réseau "au-dessus" de l’IP qui transportent les messages ICMP dans les
datagrammes IP

[Link] Header

[Link] ICMP and Traceroute


1. La source envoie une série de segments UDP au destinataire
2. Lorsque le message ICMP la source calcule le RTT
3. Traceroute effectue cette opération trois fois
4. Lorsque le nième datagramme arrive au nième routeur :
— Le routeur rejette le datagramme
— Et envoie à la source un message ICMP (type 11, code 0 - TTL expiré) message
contient l’adresse IP du routeur
5. Critère d’arrêt
— Le segment UDP finit par arrive à l’hôte de destination
— La destination renvoie le paquet ICMP "port dest. inaccessible" (type 3, code
3)
— Lorsque la source reçoit ce paquet ICMP, s’arrête.

Synthèse 87
4 Couche Réseau

4.4.7 IPv6
[Link] Pourquoi utilisé IPV6
— Espace d’adressage 32 bits presque entièrement alloué.
— Espace d’adressage de 128 bits (2128 > 3.4*1038)
— Exemple d’adresse : 2a00 :1450 :400c :c00 : :5e (2a00 :1450 :400c :0c00 :0000 :0000 :0000 :005e)
— Le format de l’en-tête permet d’accélérer le traitement/la transmission
— Modifications de l’en-tête pour faciliter la qualité de service
— Modifications de l’en-tête pour permettre des fonctions optionnelles, des extensions
futures

[Link] Entête

[Link] Changement par rapport à IPV4


— La fragmentation
— n’est plus effectuée par le routeur
— découverte du MTU du chemin
— ICMPv6 : nouvelle version de l’ICMP
— types de messages supplémentaires, par exemple "Packet Too Big" (paquet trop
volumineux)
— fonctions de gestion des groupes de multidiffusion (IGMP fonctionnalités)
— inclut ARP (voir chapitre 5)
— DNS
— nouvel enregistrement de ressource AAAA (associe le nom à l’adresse IPv6)
— nouvelle zone DNS inverse [Link]
— DHCPv6
— L’ancien DHCP ne prend en charge que les adresses IPv4

Synthèse 88
4 Couche Réseau

[Link] Déployer l’IPV6


— La pile de protocoles de l’hôte et du routeur
— DNS → peupler les zones avec des enregistrements de ressources AAAA et PTR
pour le domaine [Link] pour les recherches inversées, ...
— Les boîtiers intermédiaires : pare-feux, NAT, ...
— Protocoles de routage (
— OSPF (v3)
— BGP (extensions multi-protocoles)
— IS-IS
— RIPng
— Applications
— Utilisation de l’API socket avec IPv6 similaire à IPv4, mais certaines structures
de données et appels système diffèrent.

[Link] Transition de IPV4 à IPV6

Tous les hôtes et routeurs ne peuvent pas être mis à niveau simultanément
— Pas de "journées drapeau"
— Comment le réseau peut-il fonctionner avec des routeurs IPv4 et IPv6 mixtes ?

Solutions
— Double pile (Dual-stack)
— Tunneling : IPv6 transporté en tant que charge utile dans un datagramme IPv4
entre les routeurs IPv4 (essayer par exemple [Link])

[Link] Tunneling
Le tunneling est une technique utilisée pour transporter un protocole de couche réseau
(comme IPv6) à travers un réseau qui ne prend pas en charge ce protocole (comme un
réseau IPv4). Le tunneling permet de créer un tunnel logique entre deux extrémités, qui
encapsule les paquets du protocole d’origine dans des paquets d’un autre protocole qui
peut être transporté sur le réseau.

Dans le cas spécifique de l’IPv6 transporté sur un réseau IPv4, le tunneling consiste
à encapsuler les paquets IPv6 dans des paquets IPv4, qui sont ensuite transmis sur le
réseau IPv4. Les routeurs IPv4 sur le chemin du tunnel ne sont pas conscients du contenu
des paquets encapsulés, car ils ne sont pas équipés pour comprendre IPv6. Lorsque le
paquet IPv4 encapsulant un paquet IPv6 arrive à l’extrémité du tunnel, le paquet IPv6
est extrait de l’encapsulation et traité comme un paquet IPv6 normal.

Synthèse 89
4 Couche Réseau

4.5 Routing Algorithms


4.5.1 Role du Routing
Le routing (ou routage en français) est un processus qui permet de déterminer le
chemin optimal pour transférer des données d’un point à un autre dans un réseau de
communication. Il s’agit d’une fonction fondamentale dans tout réseau informatique, car
elle permet de diriger le trafic vers sa destination et de le faire transiter par les équipements
adéquats (routeurs, commutateurs, etc.) en fonction de l’adresse de destination et des
conditions du réseau.

4.5.2 Approches de routage dynamique


— Le routage intra-domaine :
— Routage par état de lien (OSPF, IS-IS, OLSR)
— Routage par vecteur de distance (RIP, AODV, RPL/Thread/ZigBee)
— Le routage inter-domaine :
— Routage par vecteur de chemin (BGP)

4.5.3 Protocole de routage à l’état de liens


[Link] Principes
1. Configuration des routeurs : chaque routeur est configuré avec un coût administratif
c(u, v) pour chacun de ses voisins.
2. Protocole Hello : les routeurs découvrent leurs voisins actifs.
3. Inondation des paquets d’état de lien (LSP) : chaque routeur émet un LSP qui
contient le coût de chaque voisin actif. Ces messages sont "inondés" à tous les
autres routeurs.
4. Construction de la base de données d’état de lien (LSDB) : représente le graphe
du réseau, basé sur les LSP reçus de tous les autres routeurs.
5. Algorithme de Dijkstra : exécuté par chaque routeur pour calculer ses routes vers
tous les autres routeurs.

Synthèse 90
4 Couche Réseau

[Link] Comment distribuer la topologie du réseau ?

Protocoles de routage à l’état de liens


— Les routeurs communiquent entre eux pour connaître le plan complet du réseau.
— On dirait le problème de l’œuf et de la poule : il faut savoir comment atteindre les
autres routeurs (c’est-à-dire les routes !).

[Link] LSP Flooding


— Paquets d’état de lien
— Chaque routeur envoie la liste de ses voisins et de leurs coûts dans un paquet
d’état de lien (LSP) envoyé à travers toutes ses interfaces.
— Contenu du LSP
— Identifiant du routeur émetteur
— Numéro de séquence (version du LSP)
— (adresse, coût) pour chaque routeur adjacent.
— Règle de propagation des LSP (inondation)
— Lorsqu’un routeur reçoit un LSP :
— Si (aucun LSP provenant du même routeur d’origine n’existe dans la base
de données d’état de lien (LSDB) ou si le numéro de séquence du LSP reçu
est supérieur à celui présent dans la LSDB), alors :
— stocker le LSP dans la LSDB (en remplaçant éventuellement le précé-
dent)
— transmettre le LSP à tous les voisins (sauf celui à partir duquel il a été
reçu)
— Sinon :
— ignorer le LSP.

Synthèse 91
4 Couche Réseau

Synthèse 92
4 Couche Réseau

[Link] LSP Flooding - Changements de topologie


— Gérer les changements de topologie
— Échec de lien → supprimer l’adjacence
— Changement de coût de lien → informer les autres routeurs
— Origine d’un nouveau LSP avec des informations mises à jour sur les liens
directs, d’où un numéro de séquence augmenté.

Synthèse 93
4 Couche Réseau

[Link] LSP Flooding - Troisième Approche


— Gestion des pannes de routeurs
— Quand un routeur tombe en panne ?
— toutes ses interfaces deviennent inutilisables et les adjacences sont perdues.
— Quand un routeur redémarre ?
— le routeur envoie de nouveaux LSP avec un numéro de séquence 0.
— Si d’autres routeurs ont encore des LSP plus anciens (avec des numéros de
séquence plus élevés) dans leur LSDB, les nouveaux LSP ne seront pas pris
en compte !
— Solution
— Ajouter un champ "âge" à chaque LSP.
— L’âge d’un LSP diminue régulièrement dans le LSDB. Lorsque l’âge est égal
à 0, il est considéré comme trop vieux et est supprimé.
— Corollaire : les routeurs doivent régulièrement diffuser leurs propres LSP
pour s’assurer qu’ils restent dans le réseau.

4.5.4 Dijkstra’s algorithm


— L’algorithme de Dijkstra trouve l’ensemble des chemins de coût minimum (ou plus
courts) d’un nœud vers tous les autres nœuds dans un graphe orienté donné (1).
— L’algorithme de Dijkstra peut être appliqué si aucun lien n’a un coût négatif.
— L’algorithme de Dijkstra construit un arbre de chemins les plus courts. Dans
l’exemple ci-dessus, l’arbre de chemins les plus courts à partir du nœud u est
montré. Le nœud u est la racine de l’arbre.)

[Link] Notations
— c(x,y)
— coût du lien entre le nœud x et le nœud y. Hypothèse, c(x,y) 0.
— Convention c(x,y) = + si x et y ne sont pas voisins directs.
— D(v) : valeur actuelle (estimation) du coût du chemin de la source au nœud de
destination v.
— p(v) : nœud prédécesseur actuel (estimation) le long du chemin allant de la source
àv
— N’ : ensemble des nœuds dont le chemin de moindre coût est définitivement connu

[Link] Relaxation
Dans l’algorithme de Dijkstra, la relaxation est le processus de mise à jour de la valeur
actuelle d’un sommet dans la table des coûts. Plus précisément, la relaxation est effectuée
pour chaque arête (u, v) adjacente à un sommet u. Si le coût actuel de la source à v est
supérieur à la somme du coût actuel de la source à u et du coût de l’arête (u, v), alors
le coût actuel de la source à v est mis à jour en utilisant cette nouvelle somme de coûts,
et u devient le prédécesseur de v dans le chemin le plus court. En d’autres termes, la
relaxation consiste à améliorer l’estimation de la distance la plus courte entre la source et
un nœud donné en utilisant les informations sur le coût le plus court connu pour atteindre
les nœuds voisins.

Synthèse 94
4 Couche Réseau

[Link] Manière de faire


— Initialisation de l’algorithme
— La distance actuelle D(v) entre la source s et chaque nœud v est infinie.
— Aucun prédécesseur n’est connu.
— À chaque étape
— Sélectionner le nœud u le plus proche, c’est-à-dire celui dont la distance D(u)
est minimale.
— Relaxer toutes les arêtes (u, v) partant de u, c’est-à-dire tester si le chemin vers
v est plus court en passant par (u,v).

[Link] Exemple
Step N’ D(u),p(u) D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
init 0,NIL +,NIL +,NIL +,NIL +,NIL +,NIL
1 u 2,u 5,u 1,u +,NIL +,NIL
2 u,x 2,u 4,x 2,x +,NIL
3 u,x,v 4,x 2,x +,NIL
4 u,x,v,y 3,y 4,y
5 u,x,v,y,w 4,y
6 u,x,v,y,w,z

Synthèse 95
4 Couche Réseau

4.5.5 Distance Vector Protocol


[Link] Principe
1. Configuration : les routeurs connaissent le coût c(x,y) pour leurs voisins.
2. Init : chaque routeur ne connaît qu’une seule destination : lui-même (coût= 0) =
0)
3. Envoi des vecteurs de distance : les routeurs envoient à leurs voisinsla destination
qu’ils connaissent ainsi que leurs coûts la destination qu’ils connaissent ainsi que
leurs coûts
4. Comparaison des itinéraires vers une même destination
(a) Comment ? En utilisant l’équation de Bellman-Ford
(b) Quand ? nouvelle route apprise d’un voisin OU coût vers un voisin voisin change

[Link] Bellman-Ford equation


— dx (y) = coût du chemin de moindre coût de x à y
— v = le noeud adjacent à x
— c(x, v) = coût du chemin de x vers v
— dv (y) = Le coût du chemin de moindre coût de v à y
— La formule peut se traduire par, on veut le coût min du vecteur x à y, pour ce
faire, on doit chercher le min de chaque vecteur de x vers les noeuds adjacents(v)
auquel on va additionner le coût minimum du noeud adjacent(v) vers le noeud y
dx (y) = minv {c(x, v) + dv (y)}

Synthèse 96
4 Couche Réseau

4.5.6 Distance-Vector Routing Protocol


[Link] Principe
— Le protocole de routage par vecteur de distance diffère légèrement de l’algorithme
de Bellman-Ford.
— L’algorithme de Bellman-Ford est un algorithme centralisé qui est exécuté avec
la connaissance du graphe complet (comme nous l’avons fait avec Dijkstra).
— Le protocole de routage par vecteur de distance applique l’équation de Bellman-
Ford de manière distribuée et asynchrone !
— Les routeurs ne connaissent pas l’ensemble du plan du réseau, mais seulement
les destinations et les coûts annoncés par leurs voisins : ce sont les vecteurs de
distance (DV).

[Link] Fonctionnement
1. Chaque nœud envoie périodiquement son vecteur de distance à tous ses voisins.
2. Chaque nœud utilise les vecteurs de distance reçus de ses voisins pour mettre à
jour son propre vecteur de distance.
3. Chaque nœud calcule le coût du chemin le plus court vers chaque nœud en utilisant
son vecteur de distance mis à jour et le diffuse à tous ses voisins.
4. Les étapes 2 et 3 sont répétées jusqu’à ce que tous les nœuds convergent vers les
mêmes vecteurs de distance.

[Link] Exemple

Step Du(v) Dv(v) Dx(v) Dy(v) Dz(v)


init + 0 + + +
1 1 [v] 10 [v]
2 17 [z] 2 [u]
3 4 [y] 3 [y]
4 4 [y] 3 [y]

Synthèse 97
4 Couche Réseau

4.5.7 Distance Vector : link cost changes


— Le nœud détecte une modification du coût du lien local
— Met à jour les informations de routage, recalcule le vecteur de distance
— Si DV change, notifie les voisins
— Les bonnes nouvelles voyagent vite
— Les mauvaises nouvelles voyagent lentement - problème du "compte à l’infini" !
— 44 itérations avant que l’algorithme distribué l’algorithme distribué se stabilise ! ! !

Step x y z
Dx(x)=0 Dx(x)=0 Dx(x)=0
init Dy(x)=4 Dy(x)=4 Dy(x)=4
Dz(x)=5 Dz(x)=5 Dz(x)=5
Dx(x)=0
1 Dy(x)=6
Dz(x)=5
Dx(x)=0
2 Dy(x)=6
Dz(x)=7
Dx(x)=0
3 Dy(x)=8
Dz(x) = 7
Dx(x)=0
4 Dy(x)=6
Dz(x)=9

Synthèse 98
4 Couche Réseau

4.5.8 Distance Vector : poisoned reverse


— Raison du comptage à l’infini
— Un routeur Z annonce à un voisin Y le coût d’une route vers X qui passe par
Y!
— Peut se produire en cas de mauvaises nouvelles : augmentation du coût des liens
et défaillances des liens (le coût devient infini) !
— Poisoned reverse
— Si Z passe par Y pour se rendre à X : Z dit à Y que sa distance (celle de Z)
vers X est infinie (donc Y ne fera pas de route vers X via Z).

Step x y z
Dx(x)=0 Dx(x)=0 Dx(x)=0
init Dy(x)=+∞ Dy(x)=4 Dy(x)=4
Dz(x)=5 Dz(x)=+∞ Dz(x)=5
Dx(x)=0
1 Dy(x)=60
Dz(x)=+∞
Dx(x)=0
2 Dy(x)=60
Dz(x)=50
Dx(x)=0
3 Dy(x)=51
Dz(x)=50
Dx(x)=0
4 Dy(x)=+∞
Dz(x)=50

Synthèse 99
5 Couche Liaison

5 Couche Liaison
5.1 Introduction and services
5.1.1 Quelques termes
— les hôtes et les routeurs sont des nœuds
— des canaux de communication qui relient les nœuds adjacents le long d’un le long
du chemin de communication sont des liens
— liaisons câblées
— les liaisons sans fil
— les réseaux locaux
— Un paquet de couche 2 est une trame, encapsule le datagramme

5.1.2 Où la couche de liaison est-elle mise en œuvre ?


— Dans chaque hôte/routeur
— Couche de liaison mise en œuvre dans "adaptateur" (ou carte d’interface carte
d’interface réseau ou NIC)
— Met en œuvre les couches de liaison et couches physiques
— Se connecte au système de l’hôte système de l’hôte
— Par exemple, cartes Ethernet, 802.11
— Combinaison de matériel, logiciel, micrologiciel

5.1.3 NICs Communicating

Côté émetteur Côté réception

Reçoit un datagramme de couche supérieure Recherche d’erreurs, transfert de données


fiable le transfert de données, le contrôle de
flux, etc.

Encapsule dans un cadre Extrait le datagramme, le transmet à la


couche supérieure

Ajoute des bits de contrôle d’erreur, transfert


de données fiable, contrôle contrôle de flux,
etc.

5.2 Détection des erreurs


De nombreux systèmes de détection et de correction
— Codes de répétition
— Bits de parité
— Sommes de contrôle (abordées au chapitre 3)
— Codes de Hamming
— Contrôles de redondance cyclique
— Parité bidimensionnelle (détection et correction)

Synthèse 100
5 Couche Liaison

5.2.1 Cyclic redundancy codes (CRC)


[Link] Objectifs
— Maximiser la probabilité de détection
— Minimiser la surcharge due à l’ajout d’un code redondant
— Comment ?
— Messages considérés comme des polynômes binaires. Un message de N bits est
considéré comme un polynôme de degré (N-1) M(x)
— L’expéditeur transmet le polynôme C(x), dérivé de M(x) : 10011010 → M (x) =
x7 + x4 + x3 + x
— C(x) est un multiple d’un générateur G(x).
— L’expéditeur et le destinataire doivent se mettre d’accord sur G(x).
— Le récepteur vérifie que le polynôme reçu C(x)+E(x) peut être divisé par G(x)
sans reste.

[Link] Champ binaire


— Un champ est une structure algébrique où les opérations telles que l’addition, la
soustraction, la multiplication et la division sont définies.
— Le champ binaire est le plus petit champ fini. Il ne contient que deux éléments,
généralement désignés par 0 et 1.
— Les opérations sont définies comme suit.
— addition(1) : 0+0=0, 0+1=1, 1+0=1, 1+1=0 (XOR)
— multiplication : 0*0=0, 0*1=0, 1*0=0, 1*1=1 (AND)
— soustraction : 0-0=0, 0-1=1, 1-0=1, 1-1=0 (XOR)
— division (seulement définie pour le diviseur 1) : 0/1=0, 1/1=1

[Link] Polynômes binaires


— Un polynôme binaire est un polynôme dont les coefficients sont pris dans le champ
binaire.
— Il existe une correspondance biunivoque entre unP polynôme binaire P de degré n
et une séquence binaire de longueur n+1 :P(x)= ni=0 bi ∗ xi
— Nous utilisons la convention suivante : bits de poids fort = coefficients de degré
supérieur = écrits à gauche. coefficients de degré supérieur = écrits à gauche
— Exemples
— 110 est équivalent à 1x2 + 1x1 + 0x0 = x2 + x
— 110101 est équivalent à 1x5 + 1x4 + 0x3 + 1x2 + 0x1 + 1x0 = x5 + x4 + x2 + 1

Synthèse 101
5 Couche Liaison

[Link] Opérations sur les polynômes binaires


— Les opérations sur les polynômes binaires sont les mêmes que d’habitude, sauf que
les opérations sur les coefficients sont celles définies dans le champ binaire.
— Addition de 2 polynômes

= (x6 + x3 + x + 1) + (x6 + x4 + x2 + x) (7)


= (1 + 1) ∗ x + (0 + 1) ∗ x + (1 + 0) ∗ x + (0 + 1) ∗ x + (1 + 1) ∗ x + (1 + 0) ∗ x0
6 4 3 2

(8)
= x 4 + x3 + x2 + 1 (9)

— Multiplication de 2 polynômes

= (x4 + x2 + 1)(x3 + x) (10)


= x7 + x5 + x5 + x3 + x3 + x (11)
= x7 + (1 + 1) ∗ x5 + (1 + 1) ∗ x3 + x (12)
= x + x7 (13)

— Division d’un polynôme par un autre

Synthèse 102
5 Couche Liaison

[Link] Principe
— Message M(x) : polynôme de degré n-1
— Générateur G(x) : polynôme de degré k sur lequel l’expéditeur et le destinataire se
mettent d’accord (cela fait généralement partie du protocole).
— Mot codé C(x) : polynôme de degré n+k-1 dérivé de M(x). Propriété : C(x) =
A(x)G(x), c’est-à-dire que C(x) est un multiple de G(x).

— Le codage des mots codés est le suivant : C(x) = M (x) ∗ xk + R(x)


— Le mot codé doit satisfaire à la propriété suivante : C(x) est exactement divisible
par G(x), c’est-à-dire que C(x) est un multiple de G(x) : Q(x) : C(x) = Q(x)∗G(x)

[Link] Exemple
— Message 110101 à coder en utilisant CRC-16, c’est-à-dire avec polynôme G(x) =
x16 + x15 + x2 + 1
— Le générateur a un degré de 16 → longueur du mot de code= 6+16=22
— Le mot codé est composé du message décalé de 16 bits vers la gauche (c’est-à-dire
multiplié par x16). bits vers la gauche (c’est-à-dire multiplié par x16). Les 16 bits
restants proviennent de R(x) qui est le reste de la division de M(x) * x16 par G(x).

M (x) ∗ x16 = x16 ∗ (x5 + x4 + x2 + 1) = x16 + x18 + x20 + x21 (14)


7 5 4 3
R(x) = x + x + x + x + x + x 2
(15)
C(x) = x ∗ M (x) + R(x) = x + x + x + x + x + x + x + x + x2 + x
16 21 20 18 16 7 5 4 3

(16)

— Le mot codé résultant est 1101010000000010111110

[Link] Message reçu sans erreur


Le destinataire divise C(x) par G(x) → le reste sera 0. Le récepteur conclut que le
message n’a pas été corrompu.

Synthèse 103
5 Couche Liaison

[Link] Message reçu corrompu


— Certains bits de C(x) ont été inversés. Ceci est modélisé par l’ajout d’un polynôme
d’erreur E(x) de même degré. par l’ajout d’un polynôme d’erreur E(x) du même
degré que que C(x).

— Si le reste n’est pas nul, le récepteur conclut que le message a été corrompu. que
le message a été corrompu.
— Notez que si E(x) est également un multiple de G(x), l’erreur passera inaperçue !

[Link] Propriétés du CRC (prouvables)


— Toutes les erreurs d’un seul bit peuvent être détectées (si G(x) a au moins deux
coefficients non nuls). coefficients non nuls)
— Toutes les erreurs à deux bits peuvent être détectées (si G(x) a un facteur avec au
moins 3 termes)
— Tout nombre impair d’erreurs peut être détecté (si G(x) contient le facteur (x+1))
le facteur (x+1))
— Toute erreur en rafale de longueur < k peut être détectée (si G(x) est de degré k
et que G(0)=1)). degré k et G(0)=1)

5.3 Protocoles d’accès multiples


5.3.1 Deux types de "liens
— Point à point
— PPP pour l’accès commuté, HDLC
— Liaison point à point entre un commutateur commutateur Ethernet et l’hôte
— Diffusion (fil ou support partagé)
— Ethernet à l’ancienne
— HFC en amont
— LAN sans fil 802.11

5.3.2 Problème : collisions


lorsqu’un nœud reçoit 2 signaux en même temps → il ne peut pas les comprendre ;
on parle de collision. On parle de collision

5.3.3 Protocoles de contrôle d’accès au support (MAC)


— Algorithmes distribués qui déterminent comment les nœuds partagent le canal,
c’est-à-dire quand les nœuds peuvent émettre. canal, c’est-à-dire qui déterminent
quand les nœuds peuvent transmettre.
— Problème : les nœuds doivent utiliser le canal lui-même pour communiquer sur la
manière de partager le canal !

Synthèse 104
5 Couche Liaison

5.3.4 Protocole MAC idéal


— Canal de débit R, M utilisateurs, chacun reçoit R / M
— Entièrement décentralisé : pas de nœud maître, pas de synchronisation de l’horlo-
ge/du créneau horaire.
— Simple à mettre en œuvre

5.3.5 Trois grandes catégories


— Partitionnement des canaux
— Diviser le canal en plus petits "morceaux" : créneaux horaires (TDMA), fré-
quence (FDMA), code (CDMA)
— Attribuer un morceau à un nœud pour une utilisation exclusive
— Accès aléatoire
— Canal non divisé, permet les collisions
— Récupérer des collisions
— A tour de rôle
— Les nœuds se relaient, mais les nœuds qui ont plus à envoyer peuvent se relayer
plus longtemps. des tours plus longs

5.3.6 Protocoles d’accès aléatoire


[Link] Principes
— Pas de coordination a priori entre les nœuds
— Lorsque le nœud a un paquet à envoyer, il transmet à plein débit R.
— Deux ou plusieurs nœuds transmettant une collision

[Link] Le protocole d’accès aléatoire spécifie


— Comment détecter les collisions ?
— Comment récupérer les collisions (par exemple, par des retransmissions retardées) ?

[Link] Exemple
— ALOHA, ALOHA à fente
— CSMA, CSMA/CD (par exemple Ethernet), CSMA/CA (par exemple WiFi)

5.3.7 CSMA(Carrier Sense Multiple Access)


[Link] Principe
— Le noeud commencent à envoyer dès qu’ils en ont besoin.
— CSMA = écouter avant de transmettre (Utiliser un mechanism pour detecter qu’un
autre noeud est entrain d’émettre)
— si le canal est détecté comme étant inactif → transmettre immédiatement
— si le canal est détecté occupé → différer la transmission jusqu’à ce que le canal soit
à nouveau libre
— Problème : un certain temps peut être nécessaire pour détecter qu’une transmission
a commencé (en raison, par exemple, du délai de propagation) !

Synthèse 105
5 Couche Liaison

[Link] Variantes
— CSMA(1-persistant) : Consiste à surveiller en permanence le canal et à trans-
mettre immédiatement lorsque le canal est inactif. Cependant, cela peut entraîner
des problèmes de synchronisation et de collisions, ce qui peut avoir un impact
négatif sur les performances du réseau.
— CSMA(p-persistant) : Lorsque le canal est inactif, les stations émettent avec
une probabilité p ou attendent une unité de temps (avec une probabilité p).
— CSMA non presistant : Pour éviter la synchronisation, lorsque le canal est
occupé, les stations attendent un temps aléatoire avant d’effectuer une nouvelle
tentative soit faite

5.3.8 "Protocoles MAC "à tour de rôle


[Link] Partitionnement des canaux Protocoles MAC
— Partage efficace et équitable du canal en cas de forte charge
— Inefficace à faible charge : retard dans l’accès au canal, 1/N bande passante allouée
même s’il n’y a qu’un seul nœud actif !

[Link] Protocoles MAC à accès aléatoire


— Efficace à faible charge : un seul nœud peut utiliser pleinement le canal
— Charge élevée : surcharge due aux collisions

[Link] "Protocoles "à tour de rôle


— Chercher le meilleur des deux mondes !

[Link] Sondage
— Le nœud maître "invite" nœuds esclaves à transmettre à leur tour tour
— Généralement utilisé avec des esclaves "muets".
— Problèmes
— Surcharge d’interrogation
— Latence
— Point de défaillance unique (maître)

[Link] Passage de jetons


— Jeton de contrôle transmis d’un nœud à l’autre séquentiellement.
— Message du jeton
— Concerne
— Surcharge de jetons
— Latence
— Point de défaillance unique (jeton)

Synthèse 106
5 Couche Liaison

5.4 Adressage au niveau de la couche de liaison


5.4.1 Adressage
— Adresses réseau (ch.4) → identification globale de la carte d’interface réseau
— Nécessité d’identifier également le NIC au niveau de la couche liaison, par exemple
sur un LAN → Adresses de la couche liaison

5.4.2 Adresses de réseau vs adresses de couche de liaison

Network Address Link-Layer Address


Role Identifie le NIC, à l’échelle de l’In- Identifie le NIC sur la même lien /
ternet réseau
Utilisation Obtenir un datagramme vers la des- Obtenir la trame vers l’interface
tination physiquement connectée
Validité Global Local
Organisation Hiérarchique : adresse appartient à Plat : peut être déplacé vers un
un sous-réseau autre réseau local
Taille 32 bits (IPv4) / 128 bits (IPv6) 48 bits (Ethernet, WiFi) / 16/64
bits (ZigBee)
Exemple [Link] 60-F8-1D-00-00-01
Analogie adresse postale Social Security Number

5.4.3 Ethernet Address Format


[Link] Identifiant unique étendu (EUI) -48
— 48 bits de long, gérés par l’IEEE
— Ecrit en hexadécimal pour les humains
— Exemple : 00-26-91-9-A9-68
— Divisé en deux parties
— Identifiant unique d’organisation (OUI) : un fabricant achète une partie de
l’espace adresses
— Pièce spécifique au fournisseur : le fabricant attribue une valeur unique à chaque
NIC

[Link] Bits réservés


— I/G bit
— 0 = Individuel : utilisé pour les adresses unicast
— 1 = Groupe : utilisé pour les adresses de multidiffusion et de diffusion
— U/L bit
— 0 = Universel : attribué par le fournisseur
— 1 = Local : assigné par l’administration (le pilote de l’appareil impose rarement
rarement la mise à 1 du bit U/L)

Synthèse 107
5 Couche Liaison

5.5 Protocole de résolution d’adresses


[Link] Protocole ARP (RFC826)
— Permet de demander une adresse MAC à partir d’une adresse IP
— Prend en charge divers protocoles de couche 2/couche 3
— ARP est "prêt à l’emploi" : les nœuds effectuent des requêtes ARP sans intervention
de l’administrateur du réseau.

Synthèse 108
5 Couche Liaison

[Link] Tableau ARP


— Mémoire cache pour les correspondances IP-MAC déjà apprises
— Contenu de la mémoire cache : (adresse IP, adresse MAC, TTL)
— TTL = délai après lequel la correspondance des adresses est oubliée (généralement
20 minutes)

[Link] Adressage : routage vers un autre réseau local


— Lorsqu’un hôte situé sur un autre réseau local doit être joint, l’ARP pour trouver
son adresse MAC. Il y a 2 raisons à cela.
— Les requêtes ARP sont diffusées sur le réseau local et ne sont pas propagées par le
routeur (R) vers d’autres réseaux locaux.
— L’adresse MAC de l’hôte distant (B) n’a aucune signification sur le réseau local.
LAN local. Elle pourrait même avoir un format différent.
— Il est absurde de demander l’adresse MAC d’un hôte situé dans un autre sous-
réseau / LAN. situé dans un autre sous-réseau / LAN. Il y a de multiples raisons
pour cette
— le réseau local et le réseau local distant peuvent utiliser des technologies diffé-
rentes, d’où des formats d’adresses différents
— l’adresse MAC est utilisée pour communiquer sur le réseau local et n’est jamais
transmise par le routeur.

Synthèse 109
5 Couche Liaison

5.6 Ethernet
Ethernet est considéré comme la technologie LAN filaire "dominante" en raison de son
utilisation généralisée et de sa capacité à suivre la course à la vitesse. Les cartes réseau
Ethernet sont également relativement bon marché, certaines options coûtant environ 20
dollars. Ethernet a été la première technologie LAN largement utilisée et reste populaire
en raison de sa simplicité et de sa rentabilité par rapport à d’autres technologies LAN
telles que les réseaux locaux à jeton et l’ATM. Au fil des ans, Ethernet a continué d’évoluer
et d’augmenter sa vitesse, avec la capacité de gérer des taux de transmission de données
de 10 Mbps à 10 Gbps et au-delà. Malgré l’émergence de nouvelles technologies LAN, le
prix abordable, la fiabilité et la compatibilité d’Ethernet en ont fait un choix populaire
pour les entreprises et les consommateurs.

5.6.1 Star topology


[Link] bus topology
— Tous les nœuds dans le même domaine de collision (peuvent entrer en collision les
uns avec les autres)
— 10Base5 (épaisse) et 10Base2 (fine)

[Link] star topology


— 10BaseT et versions ultérieures
— Commutateur actif au centre
— Chaque "rayon" exécute un protocole Ethernet (distinct) protocole Ethernet (dis-
tinct) (les nœuds n’entrent pas en collision les uns avec les autres)

Synthèse 110
5 Couche Liaison

5.6.2 Ethernet : format de trame

5.6.3 Service Ethernet


[Link] Sans connexion
— Pas d’échange entre les NIC d’émission et de réception

[Link] Peu fiable


— Le NIC de réception n’envoie pas d’ACK au NIC d’envoi
— Bien qu’il n’y ait aucune garantie, un bon réseau Ethernet offre une grande proba-
bilité de livraison. un bon réseau Ethernet offre une probabilité élevée de livraison.

Synthèse 111
5 Couche Liaison

5.7 Commutateurs de la couche de liaison


5.7.1 Ethernet Star Topology
[Link] Hub Ethernet
— Répéteur passif de la couche physique ("muet")
— Les bits entrant dans un lien sortent par tous les autres liens (au même rythme)
— Tous les nœuds connectés au concentrateur peuvent entrer en collision les uns avec
les autres
— Pas de mise en mémoire tampon des trames
— Pas de CSMA/CD au niveau du concentrateur : seules les cartes réseau de l’hôte
détectent les collisions

[Link] Ethernet Switch


— Dispositif de couche liaison
— Plus intelligent que les concentrateurs, prend un rôle actif
— Stocke, puis transmet des trames Ethernet
— Tamponne les paquets (files d’attente)
— Examine l’adresse MAC de la trame entrante
— Transmet sélectivement la trame à un ou plusieurs ports de sortie
— Utilise CSMA/CD pour accéder au segment half-duplex
— Commutation simultanée possible
— Transparent : les hôtes ne sont pas conscients de la présence des commutateurs
— Plug-and-play, auto-apprentissage : les commutateurs (de base) n’ont pas besoin
d’être configurés.

5.7.2 Switch Table


[Link] Format des entrées
— Adresse MAC de l’hôte
— Port pour atteindre l’hôte
— Horodatage : TTL

Synthèse 112
5 Couche Liaison

[Link] Fonctionnement
— Apprentissage initial : Lorsqu’un appareil est connecté pour la première fois, le
commutateur enregistre son adresse MAC et le port par lequel les données arrivent.
— Enregistrement des adresses MAC : Le commutateur enregistre les adresses
MAC source des paquets avec les ports correspondants dans sa table.
— Décision de commutation : Lorsqu’un paquet arrive avec une adresse MAC de
destination, le commutateur regarde sa table pour trouver le port associé à cette
adresse et envoie le paquet uniquement à ce port.
— Mise à jour dynamique : La table d’adresses MAC est mise à jour à mesure que
les appareils se connectent ou se déconnectent, enregistrant de nouvelles adresses
et associant des adresses modifiées à de nouveaux ports.
— Expiration des entrées : Les entrées obsolètes sont supprimées de la table après
un certain temps d’inactivité pour maintenir l’efficacité de la table.

5.7.3 Auto-apprentissage, transfert


L’auto-apprentissage est une fonctionnalité clé des commutateurs Ethernet. Lorsqu’un
commutateur reçoit une trame Ethernet, il examine l’adresse MAC source de la trame
et la stocke dans une table de correspondance d’adresses MAC (table de switch). La
table de switch est un tableau qui associe des adresses MAC aux ports de commutation
correspondants.
Si la table de switch ne contient pas encore l’adresse MAC de la source, le commuta-
teur ajoute l’adresse MAC à la table de switch et associe cette adresse au port d’entrée.
Le commutateur utilise ensuite cette information pour transférer les trames vers leur
destination en utilisant la méthode de commutation appropriée.
Si le commutateur reçoit une trame avec une adresse MAC de destination inconnue,
il transfère la trame à tous les ports de commutation à l’exception du port d’entrée
(cette méthode est appelée "flood" en anglais). Cela permet au commutateur d’apprendre
l’emplacement de la destination, car la destination répondra à la trame et le commutateur
ajoutera alors cette adresse MAC à sa table de switch.

5.7.4 Switches vs. Routers


Routeurs Switch
les dispositifs de la couche réseau (examen les dispositifs de la couche liaison (ne pas exa-
des en-têtes de la couche réseau) miner les en-têtes de la couche réseau)
maintenir les tables de routage, mettre en maintenir les tables de commutation, mettre
œuvre les algorithmes de routage en œuvre des algorithmes de filtrage et d’ap-
prentissage

Synthèse 113

Vous aimerez peut-être aussi