Vous êtes sur la page 1sur 81

TCP/IP

Pascal Malterre
pascal.malterre@cea.fr

Pascal Malterre

TCP/IP

Introduction

Interconnexion d equipements informatiques


Les equipements peuvent etre des composants electroniques (unit e centrale dun PC), des p eriph eriques (imprimantes), des ordinateurs, etc. Le support de communication peut etre le l electrique, le r eseau t el ephonique, les ondes radio, etc. On doit g erer lattribution du support, le temps de parole, etc. Traitement des erreurs (restransmissions, auto-corrections, etc.)

Mot-cl e : h et erog en e t e

Pascal Malterre

TCP/IP

Processus de normalisation
Normes de fait vs. normes de droit LISO (International Organization for Standards) regroupe les organisations de normalisation nationaux : ANSI (us), AFNOR (France), etc. Pour les t el ecommunications : UIT/T (ex CCITT), ETSI (European Telecommunications Standards Institute) Les normes de lInternet sont appel ees RFC (Request For Comments) et sont elabor ees par lIETF (Internet Engineering Task Force)
Les RFCs sont ` a la fois des normes de fait (les g eants de linformatique participent ` a leurs elaborations et cest un choix collectif largement respect e) et des normes de droit (normalis es par lIETF) Consignes pour les impl ementations

Autres organismes : IEEE (r eseaux locaux)


Pascal Malterre TCP/IP

Le mod` ele en couche


D enition
Le mod` ele en couche correspond ` a une mani` ere de d ecomposer un m ecanisme de communication en di erents niveaux de d etails ind ependamment de limpl ementation

Pascal Malterre

TCP/IP

Le mod` ele OSI


Open Systems Interconnection

Le mod` ele OSI est une norme g en erale et abstraite (r ef. ISO-7498) d enissant un mod` ele en couche bas e sur 7 couches distinctes 7 Application 6 Presentation 5 Session 4 Transport 3 Network 2 Data link 1 Physical

Pascal Malterre

TCP/IP

Vocabulaire du mod` ele OSI


PDU, PCI, UD

PDU (Protocol Data Unit) Unit e de donn ees sp ecique ` a un protocole de communication. Le PDU(n) d esigne le PDU caract eristique de la couche n PCI (Protocol Control Information) UD (User Data) Et on a : PDU = PCI + UD

Pascal Malterre

TCP/IP

Vocabulaire du mod` ele OSI


SDU, fonctions, services

fonctionsn Ensemble des traitements accomplis par lentit e de la couche n servicen Ensemble des t aches que peut fournir la couche n ` a la couche au dessus : {fonctionsn servicen1 } SDU (Service Data Unit ) Unit e de donn ees sp ecique ` a un service. Le SDUn d esigne le SDU caract eristique de la couche n

Pascal Malterre

TCP/IP

Lois du mod` ele en couches

Loi de transparence des protocoles


Un protocolen doit etre ind ependant de la SDUn Permet de modier le service fourni par la couche n sans impact sur le protocole n

Loi de transparence des services


Un protocolen doit etre ind ependant du servicen1 dont il se sert Permet de changer le protocolen1 ` a partir du moment o` u il ore les m emes services

Pascal Malterre

TCP/IP

Les couches basses


Le support
Fils electriques, bres optiques, ondes radio, etc.

La couche 1 : physique
La SDU de la couche 1 est le bit. Sa fonction est de transmettre des bits en les encodant sous forme de signaux de donn ees. Les informations de contr ole PCI peuvent etre hors-bande ou non

La couche 2 : lien
Le PDU de la couche 2 est loctet ou la trame (bloc structur e de bits). Les fonctions de cette couche sont : La gestion du support (adressage, attribution, etc.) Le contr ole de ux et la d etection derreurs

Pascal Malterre

TCP/IP

Les couches interm ediaires

La couche 3 : r eseau
Le PDU de la couche 3 est appel e paquet ou datagramme La fonction principale de cette couche est lacheminement des paquets ` a travers un r eseau de commutateurs

La couche 4 : transport
Au sein dun r eseau, la couche 4 fournit le m eme genre de services que la couche 2 : contr ole de ux, d etection derreurs, etc.

Pascal Malterre

TCP/IP

Les couches hautes


La couche 5 : session
La couche 5 est responsable des echanges et de la gestion des connexions (ouverture, fermeture, probl` emes de d econnexion, persistence des donn ees, etc.). Par exemple : RPC La notion de session est souvent g er ee au niveau applicatif (par exemple les sessions HTTP au travers des cookies

La couche 6 : pr esentation
La couche 6 g` ere les probl` emes de syntaxe ou de codage Par la conversion des donn ees re cues de la couche sup erieure, la couche pr esentation permet ` a deux applications de dialoguer m eme si elles utilisent des r` egles dencodage di erentes

La couche 7 : application
SMTP, FTP, HTTP, etc.
Pascal Malterre TCP/IP

TCP/IP

Pascal Malterre

TCP/IP

Le niveau 2
Couche de liaison de donn ees

Cette couche fournit une liaison de donn ees entre des syst` emes connect es au niveau physique Les principales fonctions fournies au niveau de la couche de lien sont le partage du support et la d elimitation des donn ees. La PDU peut etre un octet (caract` ere) ou une trame (ensemble structur e doctets) La couche de lien etant g en eralement tr` es complexe, elle est souvent impl ement ee au moyen de deux sous-couches : MAC (Media Access Control) LLC (Logical Link Control)

Pascal Malterre

TCP/IP

Partage du support au niveau 2

Di erents types de liaisons :


Liaisons point ` a point Liaisons multipoints (congurations en etoile) Bus (plusieurs stations partagent le m eme support) Conguration en anneau

La complexit e augmente en fonction du nombre de stations (fonction dadressage) Si ` a un instant donn e le protocole ne peut etre utilis e que par une seule station, il faut :
G erer un contr ole dattribution pour eviter les collisions G erer les collisions dans le protocole

Pascal Malterre

TCP/IP

D elimitation des donn ees

La d elimitation est indispensable au contr ole dint egrit e Rep erage du d ebut et de la n dune PDU
Des caract` eres sp eciaux ajout es au d ebut et/ou ` a la n dun bloc peuvent jouer le r ole de marqueurs ou indiquer la longueur du bloc

La d elimitation peut aussi etre h erit ees des couches 0 ou 1 Relation temporelle entre lemetteur et le r ecepteur D elimitation des champs ` a lint erieur dune PDU

Pascal Malterre

TCP/IP

Techniques dencapsulation

Bourrage Rajout doctets arbitraires quand le champ user data du PDU(n) est plus long que la PDU(n+1) Segmentation Si le champ user data de le PDU(n) est plus court que la PDU(n+1), le protocole segmente les donn ees de la PDU(n+1) en plusieurs PDU(n) Concat enation Le champ user data de le PDU(n) peut contenir plusieurs PDU(n+1)

Pascal Malterre

TCP/IP

D etection des erreurs

Utilisation dune somme de contr ole dint egrit e (checksum) Le checksum est calcul e par l emetteur et transmis avec la PDU. Cette somme est ensuite recalcul ee par le r ecepteur qui peut la comparer ainsi ` a la valeur transmise Une erreur de transmission peut n eanmoins engendrer :
Un checksum erron e entra nant la retransmission Une PDU jug ee int` egre ` a la r eception

S equencements et acquittements

Pascal Malterre

TCP/IP

HDLC
High Level Data Link Component

HDLC est une norme (initialement ISO-3309) sp eciant di erents services de la couche de lien :
1

La d elimitation des donn ees au moyen dun drapeau ins er e au d ebut et ` a la n de chaque trame (0x7E ou 01111110b) La gestion de trames de di erentes types : informations, supervision, etc. D etection des erreurs de transmission au moyen dun contr ole dint egrit e sur la trame (FCS) Contr ole de ux (m ecanisme dacquittement) Adressage

4 5

Pascal Malterre

TCP/IP

PPP
Point-to-Point Protocol

Protocole de niveau 2 sp eci e par lIETF (RFC 1661) Connexion directe (point ` a point) entre 2 noeuds du r eseau Largement d eploy e par les ISP : RTC, PPPoE, VPN, etc. Protocole en 4 sous-couches dont les 3 premi` eres sont issues de HDLC (d elimitation, int egrit e, contr ole logique)
La couche sup erieure de PPP g` ere le multiplexage des protocoles Le protocole LCP (Link Control Protocol) permet d etablir, congurer et tester la connexion de lien de donn ees Le protocole NCP (Network Control Protocol) est sp ecique ` a chaque couche r eseau encapsul ee

Pascal Malterre

TCP/IP

La couche Ethernet
Le terme Ethernet fait r ef erence ` a un standard publi e en 1982 (DEC, Intel et Xerox) puis normalis e par le comit e 802 de lIEEE quelques ann ees plus tard (norme 802.3)

Bus ` a m ethode dacc` es CSMA/CD


Carrier Sense Multiple Access/Collision Detection Chaque station peut emettre sur le bus. Une station d etecte une collision quand ce quelle entend nest pas identique ` a ce quelle a emis. Dans ce cas, la trame est r e emise apr` es un d elai tir e au hasard dans un intervalle de plus en plus grand Lencapsulation des datagrammes IP est sp eci ee : dans la RFC 894 pour les r eseaux Ethernet dans la RFC 1042 pour les r eseaux IEEE 802

Pascal Malterre

TCP/IP

Encapsulation Ethernet

Les adresses ethernet sont cod ees sur 48 bits (6 octets) Les protocoles ARP et RARP eectuent la correspondance entre les adresses IP (32 bits) et les adresses mat erielles Les trames ont une longueur minimale (octets de bourrage)
Ethernet leak

Hubs et switchs

Pascal Malterre

TCP/IP

Format de la trame Ethernet

Pascal Malterre

TCP/IP

MTU
Maximum Transmission Unit

Le MTU est une caract eristique de la couche de lien sp eciant la taille maximale des donn ees que lon peut envoyer dans une trame Pour Ethernet, le MTU est 1500 (1492 pour 802.3) Pour les liaisons point ` a point type PPP, cest une limite logique x ee en fonction de di erents param` etres (temps de r eponse souhait e, etc.) Au niveau r eseau, on consid` ere le MTU de chemin (plus petit MTU pour lensemble des chemins emprunt es par les paquets r eseaux dans un sens donn e)

Pascal Malterre

TCP/IP

La couche 3 : r eseau

La fonction principale de la couche 3 est lacheminement des paquets (ou datagrammes) au travers dun r eseau

Caract eristiques
Di erents types d el ements : routeurs et equipement terminaux Adressage des el ements au sein du r eseau Commutation de circuits vs. commutation de paquets Mode connect e et mode non-connect e

Pascal Malterre

TCP/IP

Commutation de circuits et mode connect e

Une connexion r ealis ee par la couche 3 dans le mode commutation de circuit commence par la mise en place dun circuit virtuel Les deux points du r eseau sont logiquement connect es Cette connexion peut etre permanente ou etablie ` a la demande La couche 3 peut aussi prendre en charge le contr ole de ux et le s equencement

Pascal Malterre

TCP/IP

Commutation de paquets et mode non connect e

Dans ce mode de fonctionnement, les paquets sont achemin es ind ependamment les uns des autres pour une connexion donn ee Les informations n ecessaires ` a lacheminement des paquets sont contenues dans le paquet lui-m eme Pas de contr ole de ux, ni de s equencement

Pascal Malterre

TCP/IP

Commutation de paquets/circuits
Obligation de moyens ou de r esultats Di erents niveaux de PCI (connexion / transmission) Routage Vitesse de commutation Contr ole de ux S equencement / duplication Facturation En raison de la qualit e de service exig ee par les nouvelles applications (VoIP, etc.), les deux modes sont utilis es par exemple, au sein du coeur de r eseau dun op erateur, les datagrammes sont souvent encapsul es dans des circuits virtuels

Pascal Malterre

TCP/IP

Internet Protocol (IP)

IP (d eni dans la RFC 791) fournit un service de transport de datagrammes (commutation de paquets donc sans connexion) et non able Les donn ees transport ees peuvent etre alt er ees Les datagrammes peuvent etre perdus, dupliqu es ou arriver dans le d esordre La version 4 (IPV4) est la plus r epandue

Pascal Malterre

TCP/IP

Ladressage IP
Notation d ecimale point ee : W.X.Y.Z Une adresse peut etre d ecoup ee en deux parties (identiant r eseau et identiant machine), historiquement :

Pascal Malterre

TCP/IP

Les classes dadresses IP

D ecoupage
A : 0.0.0.0 ` a 127.255.255.255 B : 128.0.0.0 ` a 191.255.255.255 C : 192.0.0.0 ` a 223.255.255.255 D : 224.0.0.0 ` a 239.255.255.255 E : 240.0.0.0 ` a 247.255.255.255

Pascal Malterre

TCP/IP

Les adresses priv ees

La RFC1918 sp ecie plusieurs blocs dadresses r eserv ees aux r eseaux priv es (non rout ees sur Internet) 10.0.0.0-10.255.255.255 (10.0.0.0/8 - bloc 24 bits) 172.16.0.0-172.31.255.255 (172.16.0.0/12 - bloc 20 bits) 192.168.0.0-192.168.255.255 (192.168.0.0/16 - bloc 16 bits)

Pascal Malterre

TCP/IP

Broadcast et multicast

Broadcast et multicast sont mis en oeuvre lorsquune application souhaite envoyer un seul message ` a plusieurs r ecepteurs en m eme temps Rappel : un ltrage est fait ` a tous les niveaux de la pile protocolaire Broadcast limit e (255.255.255.255) et broadcast de r eseau Multicast
Adresses de groupes : 224.0.0.0 ` a 239.255.255.255

Pascal Malterre

TCP/IP

Interface de bouclage

La plupart des impl ementations supportent une interface de bouclage (loopback interface) permettant ` a un client et un serveur situ es sur la m eme machine de communiquer via TCP/IP Lidenticateur de r eseau de classe A 127 est r eserv e au loopback Par convention, la plupart des syst` emes utilisent ladresse IP 127.0.0.1 et lui assignent le nom localhost Un datagramme envoy e` a cette adresse IP ne doit appara tre dans aucun r eseau

Pascal Malterre

TCP/IP

Traitement des datagrammes IP par le loopback

Pascal Malterre

TCP/IP

CIDR
Classless Inter-Domain Routing

CIDR est un nouveau d ecoupage (propos e en 1993) de lespace dadressage IP an de palier aux d eciences du d ecoupage historique en classes A, B, etc. Utilisation de prexes (masques de r eseau) de longueur variable, permettant ` a la fois :
une gestion d ecentralis ee (d el egation) une diminution de la taille des tables de routage (aggr egation)

Format dun bloc CIDR : A.B.C.D/n

Pascal Malterre

TCP/IP

CIDR
M ecanismes de d el egation

Les plus gros blocs (pr exes courts ou /8) sont directement g er es par lIANA (Internet Assigned Numbers Authority) LIANA d el` egue la gestion de chaque bloc aux RIRs (Regional Internet Registries) : RIPE, APNIC, ARIN, etc. Ces derniers d el` eguent ensuite les sous-blocs aux LIRs (Local Internet Registries) : ISP, universit es, tr` es grandes entreprises, etc. G en eralement, les ISPs d el` eguent ensuite des blocs plus petits aux entreprises (de /24 ` a /29)

Pascal Malterre

TCP/IP

D ecoupage de sous-r eseaux

Exercice n1
Un h ebergeur de services Internet loue un emplacement dans une baie ainsi que le bloc dadresses 201.96.10.224/28 Quel est le nombre dadresses IP utilisables ? Donner ladresse de broadcast et le masque de sous-r eseau

Exercice n2
D ecouper le r eseau 10.0.8.0/24 en trois sous-r eseaux et donner pour chacun dentre-eux ladresse de r eseau, le broadcast et le masque

Pascal Malterre

TCP/IP

La commande ifconfig sous OpenBSD


lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224 groups: lo inet 127.0.0.1 netmask 0xff000000 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:04:23:bd:44:d2 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.10.254 netmask 0xffffff00 broadcast 192.168.10.255 em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:04:23:bd:51:31 media: Ethernet autoselect (none) status: no carrier bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:14:22:0b:d5:e0 media: Ethernet autoselect (10baseT half-duplex) status: active pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492 dev: bge0 state: session sid: 0x1a45 PADI retries: 0 PADR retries: 0 time: 03:15:29 groups: pppoe egress inet 213.41.244.114 --> 0.0.0.1 netmask 0xffffffff

Pascal Malterre

TCP/IP

Datagramme IP

Pascal Malterre

TCP/IP

Fragmentation IP

La fragmentation IP intervient lorsquun datagramme IP est plus grand que le MTU de linterface par laquelle il doit etre envoy e La fragmentation peut se produire soit sur l emetteur soit sur un routeur interm ediaire Le r eassemblage se fait au niveau de la destination par la couche IP
La fragmentation est transparente pour les couches sup erieures (malgr e une d egradation possible de performances)

Chaque fragment devient un paquet IP ind ependant

Pascal Malterre

TCP/IP

Fragmentation IP
Principes

Le champ identication contient une valeur unique pour chaque fragment IP que l emetteur transmet Le bit more fragments est positionn e` a 1 except e pour le dernier fragment Le champ fragment oset contient loset de ce fragment depuis le d ebut du datagramme original Le champ total length est modi e pour contenir la taille de chaque fragment

Pascal Malterre

TCP/IP

ARP
Address Resolution Protocol

Au sein dun m eme r eseau local, ladresse mat erielle (de niveau 2) est utilis ee pour la communication entre deux machines ARP est un protocole de niveau 2 (d enit dans la RFC 826) fournissant une correspondance dynamique entre les adresses de la couche r eseau et les adresses de la couche de lien Typiquement sur un LAN : trouver ladresse Ethernet (48 bits) dune station ` a partir de son adresse IP (32 bits)

Pascal Malterre

TCP/IP

ARP
Fonctionnement

On suppose que la station 192.168.1.10 souhaite envoyer un datagramme IP ` a la machine 192.168.1.254 ; elle doit pour cela conna tre ladresse mat erielle de la destination Elle envoie une requ ete ARP ` a toutes les machines connect ees au support (broadcast) La requ ete contient la question : que celui (ou celle) qui a ladresse IP 192.168.1.254 se d enonce imm ediatement ! La machine 192.168.1.254 re coit la requ ete, et envoie une r eponse (destin ee uniquement ` a lemetteur) contenant son adresse IP et son adresse mat erielle

Pascal Malterre

TCP/IP

ARP
Remarques

ARP est un protocole g en eral et fonctionne avec tout type de r eseau supportant le broadcast : Token Ring, FDDI, etc. Pour des raisons decacit e, chaque station dispose dun cache contenant les correspondances r ecemment utilis ees
Le cache de la station destination est mis ` a jour lorsquelle re coit la requ ete (@ADR IP SRC -> @ADR MAC SRC) Le cache de la machine source est mis ` a jour lorsquelle re coit la r eponse (@ADR IP DST -> @ADR MAC DST)

ARP Gratuit (Gratuitous ARP) Le protocole Reverse ARP ou RARP permet lassociation inverse, i.e. associer une adresse r eseau ` a une adresse de niveau 2

Pascal Malterre

TCP/IP

ARP
Format de la trame ARP

Pascal Malterre

TCP/IP

Travaux dirig es
D ecodage des paquets ARP

0x0000: 0x0010: 0x0020: 0x0030: 0x0000: 0x0010: 0x0020: 0x0030:

ffff 0800 0000 0000 0002 0800 0002 0000

ffff 0604 0000 0000 448c 0604 448c 0000

ffff 0001 0000 0000 3d50 0002 3d50 0000

0002 0002 58ab 0000 0007 0007 58ab 0000

448c 448c c8fe 0000 cb28 cb28 c84a 0000

3d50 0806 0001 3d50 58ab c84a 0000 0000 0000 0000 6c0a 0806 0001 6c0a 58ab c8fe 0000 0000 0000 0000

Pascal Malterre

TCP/IP

ARP pour la redondance r eseau


La mise en place d equipements redondants permet dam eliorer la disponibilit e dun syst` eme, que ce soit au niveau de la reprise sur panne (fail-over) ou bien de l equilibrage de charge (load-balancing) Exemples de protocoles : VRRP (Virtual Router Redundancy Protocol) HSRP (Hot Swap Redundancy Protocol) CARP (Common ARP Redundancy Protocol) La redondance au niveau r eseau est une notion di erente de la redondance applicative
Pas de gestion des etats (stateless) Peu dintelligence donc peu de complexit e

Pascal Malterre

TCP/IP

Routage IP

Principe
Si la machine conna t la destination (connexion directe), elle envoie directement le datagramme, sinon elle lenvoie ` a une autre machine (routeur) et le laisse se d ebrouiller. Une station ne r e emet jamais un datagramme IP ne conna t la route compl` ete daucune destination non connect ee directement ` a la machine

Pascal Malterre

TCP/IP

Routage IP dans la pile OSI

Pascal Malterre

TCP/IP

Table de routage

Chaque ligne de la table de routage contient les informations suivantes :


Destination (adresse de station ou de r eseau) Routeur de saut suivant (next hop router) Sp ecication de linterface de sortie

Importance de la qualit e de la table de routage

Pascal Malterre

TCP/IP

Exemple de table de routage

Destination default 10.0.20.0/25 10.0.20.128/26 10.0.20.192/26 10.0.20.193 88.171.200/24 88.171.200.74 88.171.200.254 127/8 127.0.0.1 224/4

Gateway 88.171.200.254 10.0.20.193 10.0.20.193 link#2 00:15:f2:3d:7c:55 link#1 127.0.0.1 00:07:cb:28:6c:0a 127.0.0.1 127.0.0.1 127.0.0.1

Flags UGS UGS UGS UC UHLc UC UGHS UHLc UGRS UH URS

Refs 5 4 0 1 4 1 0 2 0 4 0

Use 1067787 2214988 0 0 5056 0 0 1577 0 73759 0

Mtu 33204 33204 33204 33204

Prio 8 8 8 4 4 4 8 4 8 4 8

Iface rl0 vr0 vr0 vr0 vr0 rl0 lo0 rl0 lo0 lo0 lo0

Pascal Malterre

TCP/IP

Routage xe

Routage xe
La table de routage est xe (r eseau local) Support mal la panne ou la congestion

Pascal Malterre

TCP/IP

Routage adaptatif
Routage adaptatif centralis e
Un superviseur centralise linformation sur l etat des commutateurs et des lignes, il d ecide du routage et informe les equipements en temps-r eel La centralisation evolue vers une hi erarchie pour les gros r eseaux Les informations transitent par le r eseau supervis e lui-m eme

Routage adaptatif d ecentralis e


Chaque noeud maintient une table d etat des liens avec ses voisins M ethodes complexes, ce routage peut entra ner des boucles (RIP)

Pascal Malterre

TCP/IP

Le routage dans Internet


En quelques mots...

Le r eseau est structur e en un ensemble de syst` emes autonomes appel es AS. Chaque AS peut etre d eni comme un ensemble de r eseaux IP (pr exes CIDR distincts) g er es par une m eme entit e. Les routeurs situ es aux fronti` eres de chaque AS echangent avec leurs voisins des politiques de routage en sappuyant sur le protocole BGP (Border Gateway Protocol) A lint erieur de chaque AS, les protocoles de routage classiques sont utilis es : RIP, OSPF, etc.

Pascal Malterre

TCP/IP

ICMP
Internet Control Message Protocol

ICMP communique les messages derreur et dinformations au niveau IP (sp eci e dans la RFC 792) Un paquet ICMP peut encapsuler une requ ete ou un message derreur et on lui associe un type et un code, ainsi quun contenu de (d ependant de ce type et de ce code) Une erreur ICMP contient toujours lent ete IP et les 8 premiers octets du datagramme qui a caus e lerreur

Pascal Malterre

TCP/IP

Format du paquet ICMP

Pascal Malterre

TCP/IP

Le programme ping

Le programme ping est un outil de diagnostic permettant de v erier si une machine est accessible Envoi dune requ ete ICMP de type echo-request Attente dune r eponse ICMP de type echo-reply

Remarque
Les requ etes ICMP sont souvent ltr ees pour des raisons de s ecurit e, donc si une machine ne r epond pas aux requ etes ping, cela ne signie pas que les applications r eseaux sex ecutant sur cette machine ne seront pas accessibles

Pascal Malterre

TCP/IP

Les requ etes ICMP echo-request et echo-reply

Lassociation requ etes/r eponses : identiant et num. s equence Calcul du RTT (round-trip time) par enregistrement de la date denvoi dans les donn ees optionnelles LOS peut parfois etre identi e en etudiant les donn ees optionnelles

Pascal Malterre

TCP/IP

Travaux dirig es
D ecodage de paquets ICMP

0x0000: 0x0010: 0x0020: 0x0030: 0x0040: 0x0050: 0x0060: 0x0000: 0x0010: 0x0020: 0x0030: 0x0040: 0x0050: 0x0060:

0007 0054 bbb9 a1bb 1617 2627 3637 0002 0054 c84a a1bb 1617 2627 3637

cb28 9571 0800 0809 1819 2829

6c0a 0000 905e 0a0b 1a1b 2a2b

0002 ff01 8620 0c0d 1c1d 2c2d

448c 738c 0000 0e0f 1e1f 2e2f

3d50 58ab 4754 1011 2021 3031

0800 c84a 0d62 1213 2223 3233

4500 d5fb 000c 1415 2425 3435

448c db3c 0000 0809 1819 2829

3d50 0000 985e 0a0b 1a1b 2a2b

0007 3301 8620 0c0d 1c1d 2c2d

cb28 f9c1 0000 0e0f 1e1f 2e2f

6c0a d5fb 4754 1011 2021 3031

0800 bbb9 0d62 1213 2223 3233

4500 58ab 000c 1415 2425 3435

Pascal Malterre

TCP/IP

Le programme traceroute

Le programme traceroute remplace loption IP Record Route devenue obsol` ete et fournit le m eme service en utilisant le champ TTL de lent ete et les messages ICMP Lorsquun routeur re coit un datagramme IP dont le champ TTL est ` a 0 ou 1, il ne doit pas le retransmettre. Au lieu de cela, le routeur elimine le datagramme et envoie ` a l emetteur un message ICMP de type time-exceeded

Pascal Malterre

TCP/IP

Exemple de r esultats de traceroute


[pascal@bean:~]$ traceroute -n www.google.com traceroute to www.l.google.com (64.233.183.104) 1 88.171.200.254 36.758 ms 37.214 ms 37.177 ms 2 78.254.0.158 36.754 ms 36.278 ms 37.55 ms 3 78.254.255.17 36.923 ms 36.564 ms 36.837 ms 4 78.254.255.13 36.926 ms 37.44 ms 40.297 ms 5 78.254.255.9 37.199 ms 36.813 ms 36.600 ms 6 78.254.255.5 37.147 ms 36.832 ms 36.793 ms 7 * * * 8 212.27.50.173 38.36 ms * 39.800 ms 9 212.27.51.10 37.341 ms 37.264 ms 37.326 ms 10 213.228.3.136 80.496 ms 69.623 ms 53.636 ms 11 72.14.232.104 47.984 ms 47.647 ms 47.184 ms 12 72.14.238.119 55.143 ms 55.531 ms 55.530 ms 13 64.233.175.246 56.891 ms 55.790 ms 56.36 ms 14 72.14.233.81 57.412 ms 56.512 ms 56.598 ms 15 216.239.43.30 69.33 ms 62.444 ms 63.599 ms 16 64.233.183.104 56.132 ms 56.773 ms 55.790 ms
Pascal Malterre TCP/IP

D ecouverte de la topologie dun r eseau

Dans le cadre dun audit de s ecurit e orient e r eseau, la d ecouverte de la topologie du r eseau IP est g en eralement une des premi` eres etapes eectu ee par les consultants en s ecurit e Les outils de base (ping, traceroute, tcpdump, etc.) permettent davoir un premier aper cu de la structure du r eseau Dautres outils plus sp ecialis es peuvent ensuite etre utilis es
scapy, nmap, hping, etc.

La d ecouverte des couches sup erieures (scans applicatifs) fournit egalement des informations int eressantes

Pascal Malterre

TCP/IP

UDP
User Datagram Protocol

UDP est un protocole de couche de transport simple, orient e datagramme Exactement un datagramme est g en er e pour chaque op eration de sortie eectu ee par un processus (contrairement ` a un protocole orient e ux) Aucune garantie de abilit e La taille des datagrammes emis est de la responsabilit e de lapplication La somme de contr ole inclut lent ete UDP et les donn ees

Pascal Malterre

TCP/IP

Format du datagramme

Pascal Malterre

TCP/IP

TCP
Transmission Control Protocol

Les sp ecications originales sont donn ees par la RFC 793 (1981) mais dautres sp ecications apportent des informations compl ementaires et des extensions. TCP est un protocole orient e connexion, able, et fournissant un ux doctets aux couches sup erieures

end-to-end argument
Le design de TCP est principalement bas e sur lid ee que lintelligence du syst` eme doit reposer sur les deux extr emit es et non sur les couches de liens et les equipements interm ediaires

Pascal Malterre

TCP/IP

TCP
Flux doctets orient e connexion

Flux doctets
TCP est un service ` a ux doctets (byte stream service) : si lapplication ecrit 30 octets en 3 op erations de 10 octets, lapplication destinataire ne peut pas conna tre la taille des ecritures individuelles

Orient e connexion
Avant que des donn ees puissent etre echang ees en TCP, les deux extr emit es doivent se mettre daccord (se synchroniser)

Pascal Malterre

TCP/IP

TCP
Principes g en eraux

Les donn ees applicatives sont fractionn ees par TCP en fragments de taille ad equate (lunit e de base est le segment) Apr` es emission dun segment, TCP d eclenche un timer de retransmission et attend un acquittement TCP maintient une somme de contr ole de son ent ete et de ses donn ees Les fragments TCP sont r eordonn es ` a larriv ee TCP g` ere egalement le contr ole de ux et les paquets dupliqu es

Pascal Malterre

TCP/IP

Lent ete TCP

Pascal Malterre

TCP/IP

Etablissement dune connexion TCP

Poign ee de main en trois etapes


Le client emet un segment SYN sp eciant le num ero de port du serveur vers lequel il veut se connecter ainsi que le num ero de s equence initial (NSI) Le serveur r epond avec son propre segment SYN contenant egalement son num ero de s equence initial. Dans le m eme segment, le serveur acquitte le SYN du client : ACK ( NSI(client) + 1 ) Le client acquitte le SYN du serveur : ACK ( NSI(serveur) + 1)

Pascal Malterre

TCP/IP

TCP : three way handshake

Pascal Malterre

TCP/IP

Fermeture dune connexion TCP


Il faut 4 segments pour fermer une connexion TCP

Rappel
TCP est un protocole full-duplex : les donn ees peuvent s ecouler dans les deux sens de fa con ind ependant Nimporte quelle extr emit e peut envoyer un FIN lorsquelle est en train d emettre des donn ees. A la r eception du FIN, TCP notie ` a lapplication au dessus que lautre extr emit e a ni denvoyer des donn ees La r eception du FIN signie seulement quil ny a plus de donn ees dans cette direction Notions de fermeture active et fermeture passive

Pascal Malterre

TCP/IP

Diagramme d etats TCP

Pascal Malterre

TCP/IP

TCP
Terminaison dune connexion

Pascal Malterre

TCP/IP

TCP
L etat dattente 2MSL

L etat TIME WAIT est aussi appel e etat dattente 2MSL La dur ee de vie maximale pendant laquelle un segment peut exister sur le r eseau est appel ee MSL (Maximum Segment Lifetime) Limitation suppl ementaire par rapport au TTL de la couche IP Valeurs inf erieures ` a 2mns pour la plupart des impl ementation Lorsque quil ne reste plus de donn ees ` a envoyer (apr` es une fermeture active) et apr` es lenvoi du ACK nal, TCP doit entrer dans l etat TIME WAIT et y rester pendant 2 x MSL Si le ACK nal est perdu, il pourra alors etre r e emis Durant ce laps de temps, la socket ne peut pas etre utilis ee

Pascal Malterre

TCP/IP

Algorithme de Nagle

Lalgorithme de Nagle (propos e dans la RFC 896) propose une solution simple pour optimiser le trac r eseau r esultant de l emission de paquets de petites tailles (tinygrams). Une connexion TCP ne peut avoir quun seul petit segment non acquitt e On consid` ere un segment comme petit si sa longueur est inf erieure au MSS Cet algorithme peut etre d evalid e avec loption TCP NODELAY

Pascal Malterre

TCP/IP

Probl` emes de s ecurit e inh erents de TCP/IP

La couche TCP/IP est vuln erable ` a di erentes menaces pouvant porter atteinte ` a: lint egrit e et ` a la condentialit e des donn ees limputabilit e des acteurs la disponibilit e des syst` emes Les protocoles bas es sur TCP/IP (i.e. les couches sup erieures) doivent prendre en compte et traiter ces menaces si ces derni` eres repr esentent un risque

Pascal Malterre

TCP/IP

Interception du trac r eseau

La couche TCP/IP fournit un moyen de transport sur le r eseau et les donn ees transitent par un certain nombre de noeuds un attaquant ayant le contr ole dun des noeuds de ce chemin peut mener tous les types dattaques possibles La plupart des attaques ont pour premier objectif de d etourner le trac et de le faire passer par un point du r eseau contr ol e par lattaquant Par exemple : ARP spoong, DHCP, etc.

Pascal Malterre

TCP/IP

ARP spoong
ARP cache poisoning, ARP poison routing

ARP est un protocole sans etat car il ny a pas de notion de transaction entre les requ etes et les r eponses Une r eponse ARP re cue par une station entra ne une mise ` a jour de son cache En envoyant des fausses r eponses ARP, un attaquant peut forcer la mise ` a jour des caches des stations

Pascal Malterre

TCP/IP

Injection de trac r eseau


On se place maintenant dans le cas o` u lattaquant ne peut pas intercepter directement le trac entre deux points du r eseau Lobjectif de lattaquant est de se faire passer pour une des deux machines et denvoyer des donn ees TCP valides (i.e. qui seront accept ees par le destinataire) Pour cela, il doit etre capable : denvoyer les paquets sur le r eseau en prenant comme adresse IP source ladresse dun des deux protagonistes de deviner le num ero de s equence correct pour la trame que lon veut envoyer de faire en sorte que le destinataire re coive en premier la fausse trame TCP

Pascal Malterre

TCP/IP

Les attaques sur la disponibilit e

Les attaques de type SYN oods permettent de paralyser la couche TCP/IP de la victime Saturation des les dattente de la couche TCP pour les connexions ` a moiti e etablies ( etat SYN RECVD) Attaque plus ecace avec des adresses sources forg ees (IP spoong) Les attaques de type sockstress ont pour cons equence un epuisement des ressources du serveur

Pascal Malterre

TCP/IP

TCP et la condentialit e des donn ees

TCP ne fournit aucune garantie concernant la condentialit e des donn ees (mais ce nest pas vraiment le r ole dune couche de transport) Solutions possibles : Chirement au niveau IP avec IPSEC Chirement au niveau applicatif avec SSL

Pascal Malterre

TCP/IP

Vous aimerez peut-être aussi