WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Réalisation d'un utilitaire d'analyse de trafic d'une interface réseau

( Télécharger le fichier original )
par Billy KAMANGO OSEMBE
Université pédagogique nationale de Kinshasa - Licence 2010
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

EPIGRAPHE

Eternel ! tu es mon Dieu; je t'exalterai, je célébrerai ton nom, car tu as fait une merveille;

Tes projets (conçus) depuis longtemps sont fermes, solides.

Essaie 25 : 1

DEDICACE

A l'Eternel Tout Puissant, le Père de Gloire qui, par sa miséricorde nous a protégé durant ces cinq années d'études universitaires ;

A mes parents pour m'avoir fait découvrir le monde et avoir accompli votre responsabilité en tant que parents malgré toutes les difficultés rencontrées ;

A mes frères et soeurs : Papy KAMANGO, Noxis AKOLE KAMANGO, Francine KAMANGO, Boris KAMANGO, Blanchette KAMANGO, Michael KAMANGO, Joëlle BANZA NDAYE ainsi que Guelord et Binjamim KAMANGO;

A mes oncles et tantes ; A ma future épouse,

A tous ceux qui mes sont chers ainsi qua toute la grande famille ABERI, je dédie ce travail le fruit de nos efforts.

Billy KAMANGO OSEMBE

REMERCIEMENTS

Je remercie l'Eternel Tout-Puissant de m'avoir permis de mener à terme ce mini projet qui est pour moi le point de départ d'une merveilleuse aventure, celle de la recherche, source de remise en cause permanent et de perfectionnement perpétuel ;

Qu'il me soit permis de rendre un vibrant hommage à mon co-directeur et encadreur, le chef des travaux Jean Louis KAZADI ainsi le professeur ordinaire ENGOMBE WEDI pour avoir bien voulu superviser ce modeste travail et donné de leur temps et de leur intelligence à la réussite de ce projet qui pour moi représente un modèle de réussite et une source de motivation permanente, pour leur disponibilité, et leur sens aigu de l'humanisme.

Que le corps professoral de l'université pédagogique nationale de Kinshasa et en particulier celui du département de mathématique et informatique, trouve ici le témoignage de ma profonde reconnaissance. Ses encouragements, mais aussi ses critiques, ont largement contribué à l'aboutissement de ce mémoire. Je le remercie vivement de nous avoir toujours poussé vers l'avant.

Mes remerciements s'adressent à mes parents : mon père KAMANGO TSHEKA André et ma mère BANZA NDAYE Faustine, à mes tantes et oncles : ABERI MOSKA Thècle, ABERI MOSKA WOTHO José, à ABERI MOSKA OSEMBE François, à MASHALA Richard, à Wetshi ABERI et à ma grand-mère MARTHA qui m'ont inculqué un esprit de combativité et de persévérance et qui m'ont toujours poussé et motivé dans mes études. Sans eux, certainement je ne sériai pas à ce niveau.

Mes remerciements s'adressent également à touts nos amis et collègues de la promotion. Il s'agit de: C.pika FALANGA DEKA, Nestor OMARI KITAMBALA, richard KUZIKESA MULUNDU, Ruth BALUENGA BUANGA, Rodrigue KALENGE, Freddy BAMBI, Carine, Alex BUBUTA, Aminata ILUNGA et bien d'autre.

Enfin, mes remerciements vont également aux membres du jury d'avoir accepté d'évaluer notre travail. Que tous trouvent à travers « ce pas franchi » l'expression de nos remerciements les plus profonds.

LISTE DES ILLUSTRATIONS

A. Liste des figures

Fig. n* 1 : représentation graphique d'un signal Fig. n* 2 : Présentation du câble à pair symétrique

Fig. n * 3 : Représentation graphique de la liaison simplex Fig. n * 4 : Représentation graphique de la liaison série Fig. n * 5 : Représentation graphique de la liaison parallèle Fig. n * 6 : Représentation de la topologie en bus

Fig.n* 7 : Représentation de la topologie en anneau Fig. n* 8 : Représentation de la topologie en anneau Fig. n* 9 : Représentation de la topologie en maille

Fig. n * 10 : Représentation en couches du modèle OSI Fig. n *11 : l'écoute des ports entre serveur et client Fig. n * 12 :L'écoute des ports entre serveur et client Fig. n* 13: Exemple transmission par port

Fig. n* 14 : La fonction de multiplexage entre 2 machines Fig. n* 15 : Entête TCP

Fig. N * 16 : Etablissement de la connexion TCP Fig. n *17 : listview

Fig. n 18 : Exemple de trafic concernant le protocole TCP Fig. n* 19 : Exemple de trafic concernant le protocole UDP

vi

B. Liste des tableaux

Tableau n* 1 : Tableau comparatif du modèle OSI et le modèle TCP / IP

Tableau n* 2 : Tableau des protocoles selon les couches Tableau n * 3 : Listant quelques numéros des ports TCP et UDP Tableau n* 4: Répartition des heures

Tableau n *5: Estimation budgétaire

LISTE DES SIGLES ET ABREVIATIONS

ABREVIATIONS

SIGNIFICATIONS

ACK

: Acquittement

ARP

: Address resolution protocol

ATM

: Asynchronous transfer mode

BAN

: Building area network

BNC

: British naval conector

CSMA/CA

: Carrier sence multple access/ collision detection

CSMA/CD

: Carrier sence multiple access/ collision avoidance

DAN

: Departement area network

DHCP

: Dynamic host configuration protocol

DIP

: Dual inline package

DMA

: Direct access memory

DNS

: Domain Name System

E/S

: Entrée / sortie

ETCD

: Equipent terminal de contrôle de données

ETTD

: Equipement terminal de traitement de donnée

FDDI

: Fiber Distributed Interface

FTP

: File Transfer Protocol

Gbps

: Gigabits par seconde

HTTP

: Hypertext Transfer Protocol

HUB

: host unit broad cast

IANA

: Internet assigned numbers authority

ICMP

: Internet Control Message Protocol

IEEE

: institute electrical and electronic engineer

IGMP

: Internet group management protocol

IP

: Internet protocol

IPSEC

: Internet protocol Secure Shell

IRQ

: Interrupt Request

ISA

: Industry standard architecture

ISO

: international standard organisation

Kbps

: kilobits par seconde

LAN

: local area network

MAC

Medium access card.

MAU

: Medium access unit

Mbps

: Mégabits par seconde

MODEM

: modulation/démodulation

NIC

: Network interface card.

NNTP

: Network News Transfer Protocol

NTP

: Network Time Protocol

OSI

: Open system interconnections

PC

: Personnal computer

PC/AT

: Personnal computer / advanced technology

PCI

: Peripheral componement interconnect

PCMCIA

: personal computer memory card international association

PnP

: Plug and play

POP3

: Post Office Protocol version 3

RIP

: Routing Information Protocol

SMTP

: Simple Mail Transfer Protocol

SNTP

: Simple Network Management Protocol

SSH

: Secure Shell

TCAP

: Transaction Capabilities Application Part

TCP/IP

: Transmission Control Protocol/ Internet Protocol

TELNET

: TErminal network ou telecommunication network

TP

: Twisted pair

TCP

Transport control protocol

UDP

: User Datagram Protocol

USB

: Universal serial bus

UTP

: unshelded twisted pair

WAN

: wide area network

WI-FI

: wireless fidelity

WLAN

: wireless local area network

TABLE DE MATIERE

EPIGRAPHE................................................................................................i« DEDICACE.................................................................................................ii REMERCIEMENT.......................................................................................iii LISTE DES ILUSTRATIONS...........................................................................v

LISTE DES SIGLES ET ABREVIATIONS vii

O. Introduction 1

O.1. Problématique et hypothèse «......................... 1

O.1.1. Problématique 1

O.1.2. Hypothèse 1

O.2. Choix et intérêt du sujet 1

O.3. Délimitation du sujet 1

0.5 Subdivision du travail 2

Chap. I. GENERALITE SUR LES RESEAUX INFORMATIQUES 3

I.1.Concepts de base de la télétransmission 3

I.1.1.Quelques définitions 3

I.1.2.Notion du signal 3

I.1.3. Supports de transmission 3

I.2.1. Types de support physique 4

I.2.2. Type de câblage 4

I.2.3. La bande passante 6

I.3.La transmission des données 7

I.3.1.La transmission analogique de données 7

I.3.2. La transmission analogique de donnes numériques 7

I.3.3. La transmission numérique de données 7

I.4.Mode de liaison 8

I.4.1.La liaison simplexe 8

I.5.Types de liaison 8

I.5.1.Liaisons point à point 8

I.5.2.Liaison série et liaison parallèle 9

I.5.3. Liaison synchrone et liaison asynchrone 9

I.6. Réseau informatique 10

I.6.1.Définition 10

I.6.2. Internet d'un réseau informatique . 10

I.6.3. Caractéristique d'un réseau informatique 10

I.7.Topologie 12

I.7.1. Définition 12

I.7.2. La Topologie Physique 13

I.7.2.1. La topologie de bus linéaire 13

I.7.2.2. La topologie en anneau 14

I.7.2.3. La topologie en étoile 14

I.7.2.4. La topologie mixte 15

I.7.2.5. La topologie en maille 15

I.8. La topologie logique 15

I.8.1.Topologie Ethernet 15

I.8.2.Topologie Tokenring 16

I.8.3. Topologie FDDI 16

I.9. Mode d'accqs 16

I.9.1. Le CSMA (Carrier Sence Multiple Access) 16

I.9.2. Le jeton 17

I.10. types d'ordinateurs connectés. . 17

I.10.1 le serveur 17

I.10.2 Types de serveur 17

I.10.3 notion de serveur dédié 18

I.10.4. station de travail 18

I.11.Equipements d'interconnexion d'un réseau informatique . 18

I.11.1.Le répéteur 18

I.11.2.Le concentrateur (HUB) 19

I.11.3.Le pont 19

I.11.4.Le commutateur (ou switch) 20

I.11.5. Le routeur 20

Chapitre II. CARTE RESEAU 21

II.0. Introduction 21

II.1. Médias de transmission des informations 21

II.2. Les standards 21

II.3. Types de cartes réseaux 21

II.3.1. Ordinateur de bureau 21

II.3.2. Ordinateur portable. 22

II.4. Le débit de transmission et le mode de communication 22

II.5. Sortes de carte réseau 22

II.5.1. Cartes réseaux Ethernet 22

II.5.2. Carte réseau WI-FI 23

II.6. Rôle et fonction de la carte réseau 24

II.6.1. Préparation de données 25

II.6.2. Le rôle d'identificateur. . 25

II.6.3. Envoi et contrôle des données. 26

II.7. Paramètres de configuration de la carte 26

II.8. Installation de la carte réseau 27

II.8.1. Installation matérielle 27

II.8.2. Installation logicielle 27

II.8.3. Installation de protocoles 28

Chapitre 3. TRAFIC RESEAU 29

III.1. Introduction 29

III.2. Le modèle OSI (Open system interconnections mode) 29

III.2.1. Fonction de chaque couche 30

III.3. L'archutecture du mod~le TCP / IP 31

III.4. Le protocole 31

III.4.1. Les protocoles de la couche application 32

III.5. Communication client / serveur 33

III.5.1. Notion de port d'écoute . 34

III.5.2. Adresse, port et socket 34

III.5.3. La fonction de multiplexage 35

III.5.4. Liste des ports TCP et UDP 36

III.5.5. Quelques numéros de port 37

III.6. Les protocoles normalisés orientés connexion et non orientés connexion 37

III.6.1. Le protocole TCP 37

III.6.2. Fonctionnement du TCP 39

III.6.2.1. La segmentation des données 39

III.6.2.2. l'établissement de la connexion 39

III.6.2.3. Contrôle de flux 40

III.6.2.4. Fenêtrage 40

III.6.3. Le protocole UDP 41

III.6.3.1 Application 41

III.6.3.2 Structure d'un data gramme UDP 41

III.6.3.3. Utilisation 42

III.7. Adressage 42

III.7.1. Adressage IP (Logique) 42

III.7.2. Adresse MAC (Physique) 43

Chapitre 4. REALISATION D'UN UTILITAIRE D'ANALYSE DE TRAFIC D'UNE

INTERFACE RESEAU 44

IV.1. Introduction 44

IV.2. Analyse conceptuelle 44

IV.2.1. Analyse préalable 44

IV.2.2. Cahier des charges 45

IV.2.2.1. Cahier des charges fonctionnel 45

IV.2.2.2. Cahier des charges opérationnel 46

IV.2.2.3. Répartition des heures 46

IV.2.2.4. Estimation budgétaire 48

IV.3. Développement 49

IV.3.1. Environnement de développement 49

IV.3.2. Structure de l'application 49

IV.3.3. Déroulement de l'exécution 49

IV.3.4. Codes sources 53

CONCLUSION 72

BIBLIOGRAPHIE 73

O. Introduction

0.1. Problématique et hypothèse

O.1.1. Problématique

Suite à l'évolution technologique, l'utilisation de l'outil informatique s'avère de plus en plus nécessaire dans tous les domaines. Pour cela, les sociétés cherchent à améliorer la qualité de leurs services en introduisant cet outil dans leur processus de fonctionnement et de traitement de données.

Ainsi, l'administrateur réseau a la charge de superviser et de contrôler toutes les activités se déroulant au sein de son infrastructure. Sur ce, la surveillance de la bande passante et le contrôle de trafic lui constituent une activité la plus cruciale.

O.1.2. Hypothèse

Les fonctionnalités d'un outil d'analyse dune interface réseau permettent de contrôler et d'analyser à temps réel le trafic d'une interface en activité sur le réseau.

O.2. Choix et intérêt du sujet

Notre travail a comme un intérêt à la fois théorique et pratique :

> Sur le plan théorique: ce travail veut faire bénéficier à l'entreprise les avantages de notre savoir accumulé durant notre formation au second cycle universitaire à l'université pédagogique nationale UPN en cygle. En plus, cette étude nous permet d'élever le niveau de connaissance sur la gestion informatique, l'administration de réseau et le contrôle de trafic dans un réseau par les diverses documentations mises à notre possession.

> Sur le plan pratique : cette étude est une contribution capitale et inoubliable car elle permet aux apprenants et aux administrateurs réseaux d'obtenir de notre part, une proposition optimale pour mieux administrer le réseau.

O.3. Délimitation du sujet

Il est affirmé qu'un travail scientifique pour être bien précis doit être délimité. Raison pour laquelle, nous n'allons pas aborder toutes les questions liées à l'administration ni loin de la sécurité informatique car elles constitueraient une matière très complexe.

Ainsi, nous avons pensé limiter notre étude dans le temps et dans

Dans le temps, nous avons considéré les données allant de 2009 à nos

jours.

Dans l'espace, notre étude est limitée à la réalisation d'un utilitaire d'analyse de trafic d'une interface réseau.

O.4. Méthodes et techniques utilisées

Étant un travail scientifique, nous avons utilisé la méthode analytique ainsi que la méthode documentaire.

> Méthode analytique : au moyen de cette méthode, nous sommes parvenus à décomposer les différents éléments du système dans le but de définir.

> méthode documentaire, tout en consultant des sites et des ouvrages relatifs à notre sujet d'étude.

0.5 Subdivision du travail

Hormis l'introduction et la conclusion, notre travail comporte quatre chapitres repartis de la manière suivante :

> Chapitre 1 : Généralités sur les réseaux informatiques

> Chapitre 2 : Carte réseau > Chapitre 3 : Trafic réseau > Chapitre 4 : Réalisation d'un utilitaire de d'analyse de trafic d'une interface

réseau.

Chap. I. GENERALITE SUR LES RESEAUX INFORMATIQUES

I.1.Concepts de base de la télétransmission

I.1.1.Quelques définitions

> Télétransmission : Elle se définit comme étant une communication à distance entre équipements mais si ces équipements sont du type informatique, on parle de la téléinformatique.

> Télématique : c'est le mariage entre la télécommunication et

l'informatique. On peut aussi la définir comme étant ensemble des services et des techniques qui associent la télécommunication et l'informatique.

I.1.2.Notion du signal

Un signal est une grandeur physique qui évolue au cours de temps. Exemple : intensité du courant, la tension électrique, onde électromagnétique.

Du point de vue mathématique un signal est une fonction de la forme : Y = A sin w t

A = Amplitude du signal

W = pulsation ou vitesse angulaire ;

Graphiquement, nous aurons :

+1

0

-1

Fig. n* 1 : représentation graphique d'un signal

I.1.3. Supports de transmission

Les voies de transmission sont constituées de plusieurs tronçons permettant de faire circuler les données sous forme d'onde électromagnétique, électrique, lumineuse et même acoustique. Ces tronçons sont des supports physiques de transmission.

Pour relier deux ou plusieurs machines entre elles, il faut utiliser un ou plusieurs supports physiques sur les quels l'information proprement dite va circuler.

La matière de ce support pourra être solide (câble, fibre optique) ou non (air). Ces supports pourront dès le départ être conçus pour faire circuler les données informatiques (lignes filaires, câbles coaxiaux, fibre optiques).Ou alors avoir été destinés de prime à bord à d'autres usages (lignes et réseaux téléphoniques, ondes hertziennes).

Dans le cas des supports spécifiques pour la transmission de données, il suffira de s'adapter au support.

Dans le second cas des supports < autres usages >, il faudra en plus s'intégrer dans une logique non informatique. Le choix de support est fonction d'un certain nombre des critères interdépendants parmi le quels :

> La distance maximum ente station ; > Le débit minimum ;

> La nature des informations à échanger ; > La fiabilité ;

> Le coût.

I.2.1. Types de support physique

Il existe trois catégories :

> Les supports filaires : permettent de faire circuler une grandeur électrique sur un câble généralement métallique

Exemple : paire torsadée

> Les supports aériens : il désigne l'air ou le vide permettant la circulation d'onde électromagnétique ou radio électrique.

Exemple : faisceau hertzien

> Les supports optiques : permettent d'acheminer les informations sous forme lumineuse

I.2.2. Type de câblage

A. Câble à pair symétrique

Il s'agit des lignes bifilaires groupées à l'intérieur d'un câble le plus souvent souterrain mais parfois aérien dont la capacité varie en fonction du nombre d'abonnés à raccorder au trafic à écouler.

+

Fig. n* 2 : Présentation du câble à pair symétrique

Domaine d'utilisation

Ces câbles sont utilisés pour la transmission des signaux à fable ou moyenne fréquence aussi pour la transmission à courte distance

B. Les câbles à paires torsadées (Twisted pair TP)

Ce type de câble est constitué de deux bruns de cuivre entre lacés en torsade et recouvert d'isolant. La distance supportée entre deux pc connectés est égal 100m pour le réseau local

Pour ce type de câble, nous avons deux catégories qui sont : les câbles torsadés non blindés et les câbles torsadés blindés

B1. Les paires torsadées non blindées (un shelded Twisted Pair UTP)

C'est un ensemble de plusieurs pairs de conducteur de cuivre torsadé entouré d'une gaine protectrice et isolant.

Il en existe plusieurs catégories dont :

> 1ère catégorie : dans cette catégorie ; nous trouvons le câble téléphonique ordinaire utilisé pour le transport de la voix et non de données ;

> 2ieme catégorie : câble certifié pour le transport de données avec une capacité de 4Mbps ;

> 3ieme catégorie : câble transportant les données à un débit de 10Mbps sur 4 paires torsadées comportant 3 torsions par pieds

> 4ieme catégorie : câble transportant les données avec un débit de 16Mbps sur 4 paires torsadées ;

> 5ieme catégorie : câble transportant les données avec un débit de 10 à 100Mbps de taille petite et de longueur maximale de 100m.

B2. Les paires torsadées blindées (shelded Twisted pair)

STP Est un ensemble formé de paire torsadée en cuivre avec un blindage de protection contre les perturbations électriques ou électromagnétiques sur le câble de transmission.

Avantage : les STP réduisent les bruits électriques de l'interférence Caractéristiques :

> Débit : 10 à 100 Mbps > Longueur max : 100 m > Connecteur : RJ45

C. Le câble coaxial

C'est un câble constitué d'un ensemble de deux conducteurs de forme cylindrique autour d'un même axe et est séparé par une matière isolante évitant tout contact entre ces deux conducteurs.

Ce type de câble entraîne un affaiblissement très important pour les fréquences très élevées, c'est pour cette raison que ce genre de câble doit être doté d'un répéteur.

Caractéristiques du câble coaxial :

> Débit : 10 à 100 Mbps

> Distance maximale : 500m > Connecteur BNC

Il rexiste deux catégories de câble coaxial :

Câble coaxial bande de base et câble coaxial large bande C. Câble en fibre optique

Est un guide d'onde diélectrique (isolant qui permet la propagation des ondes électromagnétiques sous forme de la lumière à l'intérieur d'un diélectrique).

Caractéristiques

> Débit : plus de 100Mbps

> Types : monomode et multi mode

I.2.3. La bande passante

suivante :

La bande passante d'une voie de communication est la plage de
fréquence sur la quelle la voie est capable de transmettre les signaux sans que
ceux-ci ne connaissent un affaiblissement supérieur à une certaine valeur. La bande
un bus appelée aussi " taux de transfert " se calcule de la manière

o Fréquence du bus X largeur du bus en bits = nombre des Mbits par seconde

o Nombre de Mbits par seconde / 8 = nombre de Mo par seconde

Pour un bus théorique de 8 bits de largeur, fonctionnant à 20Mhz, on a donc : 8 X 20 = 160 Mbps, soit 20 Mo/s.

I.3.La transmission des données

La transmission de données sur un support physique se fait par propagation d'un phénomène vibratoire dépendant de la grandeur physique que l'on fait varier. Dans le cas du son, il s'agit d'une onde acoustique ou sonore et la vitesse du son est de 360 m / s. Dans le cas de tension ou de l'intensité du courant, il s'agit d'une onde électrique.

I.3.1.La transmission analogique de données

Elle consiste à faire circuler les informations sur un support physique sous forme d'une onde. Cette transformation de données se fait par l'intermédiaire d'une onde porteuse qui est une onde simple dont le sel but est de transporter les données par modification de l'une de ses caractéristiques notamment la fréquence , amplitude ou la phase .

C'est la raison pour la quelle la transmission par modification d'onde porteuse selon les paramètres de l'onde que l'on fait varier, on distingue trois types de transmission analogique :

1. La transmission par modification d'amplitude de l'onde porteuse ;

2. La transmission par modification de la phase de l'onde porteuse ;

3. La transmission par modification de la fréquence de l'onde porteuse.

I.3.2. La transmission analogique de donnes numériques

Lorsque les donnes numériques ont fait leur apparut ion, le système de transmission était encore analogique. Il a fallut trouver un moyen de transmettre les données numériques de façon analogique. La solution à ce problème était le modem.

Son rôle est à l'émission :

> De convertir les données numériques en signaux analogiques. On appelle ce procédé la modulation,

> et à la réception de convertir le signal analogique en données numériques. Ce procédé est appelé la démodulation. C'est pour cela que le mot modem est l'acronyme du modulateur - démodulateur.

I.3.3. La transmission numérique de données

Elle consiste à faire transiter les informations sur le support physique de communication sous forme des signaux. Ainsi donc les données analogiques devront être préalablement numérisées avant d'être transmises.

Toutefois les informations numériques ne peuvent pas circuler sous forme de 0 et de 1. Il faudra le coder sous forme d'un signal possédant deux états, cette transformation de l'information binaire sous forme d'un signal à deux états est réalisée par un ETTD appelé aussi codeur de bande de base.

I.4.Mode de liaison

La transmission de données sur une voie de communication entre deux machines peut s'effectuer de différentes manières car elle est caractérisées par :

> Le sens des échanges ;

> La configuration de liaison ; > Mode de transmission ;

> La synchronisation.

I.4.1.La liaison simplexe

Selon le sens des échanges, on distingue trois modes de liaison :

> liaison simplex : c'est une liaison dans la quelle les données circulent dans un même sens c'est à dire de l'émetteur vers le récepteur.

ETTD

 

ETCD

 

ETCD

 

ETTD

Fig. n * 3 : Représentation graphique de la liaison simplex > La liaison half duplex ou semi duplex

C'est une liaison dans la quelle les données circulent dans l'un ou l'autre sens mais pas les deux simultanément.

> Liaison full duplex

Est une liaison dans la quelle les données circulent de façon bidirectionnelle et simultanément.

I.5.Types de liaison

I.5.1.Liaisons point à point

C'est une liaison qui lie deux ETTD et deux seulement .dans cette série, nous avons la liaison multiplex et la liaison en boucle.

I.5.2.Liaison série et liaison parallèle

a. Liaison série

Dans une liaison série les données sont envoyées bit par bit sur la voie de transmission.

Ordinateur A Ordinateur B

0

1

1

0

Liaison Série 0

1

0

0

1

0

Fig. n * 4 : Représentation graphique de la liaison série

Les opérations de conversion sont réalisées grâce à un contrôleur de communication appelé UART qui convertit les données parallèles en données série.

b. liaison parallèle

On désigne par liaison parallèle la transmission simultanée de n bits .Ces bits sont donc envoyés simultanément sur n voies différentes aux quelles chaque bit est envoyé sur une ligne physique.

C'est la raison pour la quelle le câble parallèle sont composés des plusieurs fils en nappe.

Ordinateur A Ordinateur B

0

O

1

1

0

0

1

1

0

0

Fig. n * 5 : Représentation graphique de la liaison parallèle

I.5.3. Liaison synchrone et liaison asynchrone

a. liaison asynchrone

Une liaison asynchrone est une liaison dans la quelle chaque caractère est émis de façon irrégulière dans le temps. Chaque caractère est précédé d'une information indiquant le début de l'émission qu'on appelle (bit start) et terminé par l'envoi d'une information de fin de transmission appelé (bit stop). Cette méthode est dite asynchrone.

b. liaison synchrone

Une liaison synchrone est une liaison dans la quelle, l'émetteur et le récepteur sont cadencés à la même horloge. Le récepteur reçoit de façon continue des informations au rythme de l'émetteur.

I.6. Réseau informatique

I.6.1.Définition

> Un réseau informatique est un ensemble d'ordinateurs reliés entre eux grâce à des lignes physiques permettant d'échanger des informations sous forme de données binaires.

> Il peut également être défini comme étant un ensemble des techniques mises en oeuvre pour relier deux ou plusieurs unités informatiques (système d'ordinateurs) afin de permettre le partage de ressources.

I.6.2. Internet d'un réseau informatique

Un réseau informatique permet :

> Le partage de toute sorte de ressources (fichier, imprimante, programme ou espace disque) ;

> Permet la communication entre les personnes grâce au courrier électronique, discussion en directe..

> Permet la communication entre processus ou entre machine industrielles ; > Permet de garantir l'unicité de l'information (base de données) ;

> Permet l'attribution de droit d'accès aux utilisateurs des fichiers et ressources ; > Le transport de fichiers, programmes ou données en évitant le transport par disquette ;

> Permet la diminution de coût.

I.6.3. Caractéristique d'un réseau informatique

Un réseau informatique dans sa conception est caractérisé par :

1. son champ d'action

2. son étendue géographique ;

3. son fonctionnement.

A. Du point de vue champ d'action

Il existe deux types de réseau :

> le réseau fermé : celui qui n'est pas ouvert au public mais plutôt réservé à une entreprise.

Exemple réseau ONATRA

? l es réseaux ouverts : celui qui est ouvert au public

B. Du point de vue étendue géographique

Dans cette catégorie, nous trouvons trois types de réseau :

B1. Les réseaux locaux LAN

C'est un ensemble d'ordinateurs appartenant à une organisation et relié entre eux en réseau dans une petite surface géographique. Les LAN se divisent en deux catégories qui sont :

1. le DAN : département area network

2. le BAN : building area network

Caractéristique d'un LAN

- Le LAN est limité sur une étendue d'au moins 1 km ;

- Le nombre des machines ne dépasse pas 100 ;

- Le trafic se fait par câble interne ;

- Ce sont des réseaux d'intégration globale car tout est géré par une organisation privée sous une autorité privée.

B2. Les réseaux métropolitains MAN

Ce sont des réseaux qui regroupent un petit nombre des réseaux locaux au niveau d'une ville ; il effectue l'interconnexion de plusieurs sites d'une même ville.

Ils sont capables d'interconnecter les réseaux locaux de différents bâtiments et prendre en charge l'ensemble de la gestion de sites distribués.

Caractéristique d'un MAN

Le MAN utilise des réseaux publics, le service de la télécommunication, les fibres optiques. Ce sont donc des réseaux placés sous l'autorité de la ville.

B3. Les réseaux étendus WAN

Un Wide area network est un réseau qui permet l'interconnexion de MAN à l'échelle d'un pays, d'un continent ou même d'une planète.

Exemple : Internet Caractéristiques

Le WAN utilise généralement les lignes des réseaux publics, il fonctionne grâce à des routeurs permettant de choisir le trajet optimal pour atteindre un noeud du réseau.

C. Du point de vue fonctionnement

Selon le type de fonctionnement, nous distinguons deux types de

réseau :

C1. Le Réseau post à post (ou égal à égal)

Dans ce type de réseau, les ordinateurs connectés sont à la fois client

et serveur,

Avantage :

> Le coüt est réduit par manque d'un serveur ; le système d'exploitation utilisé dans ce réseau est simple ;

> Facile à mettre en oeuvre.

Inconvénients :

> Une sécurité amoindrie et difficulté de le gérer car tout le monde est administrateur.

C2. Le réseau organisé autour du Client / Serveur

Ce type de réseau utilise un ordinateur central (appelé serveur) qui partage ses ressources .Dans ce cas le niveau d'accès des utilisateurs permettent sécuriser les données.

La gestion se fait par un système d'exploitation spécifique du type serveur comme par exemple Windows 2003 server.

I.7.Topologie

I.7.1. Définition

La topologie représente la manière dont les noeuds du réseau peuvent être connectés entre eux. Elles peuvent être illustrée par la figure géométrique réalisée par ces connexions .elle est souvent influencée par la configuration du site au quel le réseau est destiné.

Le choix et l'implémentation du réseau local s'appuient sur :

> Le bilan des équipements informatiques existants ;

> La disposition géométrique des équipements et des locaux ;

> Le coût d'investissements et de maintenance car différents types de connexion conviennent à différents types d'activité et budget.

En fait, les noeuds du réseau peuvent s'interconnecter tout aussi physiquement par des câbles, des lignes téléphoniques ou des transmissions hertziennes que logiquement au moyen d'un logiciel qui gère le flux de données dans la topologie.

Deux familles de topologie existent :

1. la topologie physique

2. la topologie logique

I.7.2. La Topologie Physique

La topologie physique est l'arrangement physique, visible de l'ordinateur dans un réseau .Chaque machine est reliée au support physique par l'intermédiaire d'un contrôleur de communication (carte réseau en anglais network interface card. = NIC) et d'une unité de raccordement ou support appelé MAU qui veut dire Medium Access Unit.

Dans cette série, on trouve la topologie en bus linéaire, anneau et en

étoile.

I.7.2.1. La topologie de bus linéaire

Le bus linéaire est l'une des configurations les plus répandues des réseaux locaux. Il est constitué d'un câble épine dorsale sur le quel les stations sont raccordées par des connecteurs en T.

Il assure le lien entre le câble et la carte réseau du poste, des bouchons (terminateurs) sont situés aux extrémités de ce câble pour réfléchir le signal de données.

Avantages : Toute station qui tombe en panne n'affecte pas le réseau (passive).

Inconvénients :

> si l'épine dorsale est touchée (coupée), toute la communication est impossible ;

> sur un même câble, il n'est pas aisé de diagnostiquer l'endroit exact de la rupture. Il faut tester chaque portion entre deux postes ;

> plus on installe des postes, plus les performances se dégradent ; > pas de communication simultanée.

Fig. n * 6 : Représentation de la topologie en bus

I.7.2.2. La topologie en anneau

L'anneau se présente sous la forme d'un bus fermé. Chaque machine ou station doit être capable de reconnaître sa propre adresse pour extraire le message qui lui est destiné.

La circulation des informations au sein du réseau est unidirectionnelle. Une configuration double anneau permet une circulation bidirectionnelle.

Les stations sont actives, elles intègrent une fonction répéteur pour régénérer le signale. La performance peut être plus rapide dans ce système par ce que chaque portion du câble ne transporte que le flux de données entre deux machines.

Fig.n* 7 : Représentation de la topologie en anneau I.7.2.3. La topologie en étoile

Dans cette topologie, chaque noeud est connecté à un dispositif de contrôle habituellement un hub utilisant de segment de câble individuel. Cette topologie a l'avantage de performance optimale du système.

En outre chaque machine ayant sa connexion indépendante du hub central, le réseau peut continuer de fonctionner si l'un des noeuds tombe en panne.

Fig. n* 8 : Représentation de la topologie en étoile

I.7.2.4. La topologie mixte

Le gros système ne sont pas généralement homogènes et peuvent comprendre des nombreux sous réseaux de topologie différente. Ils forment un ensemble appelé topologie mixte.

I.7.2.5. La topologie en maille

Dans cette topologie, chaque machine est reliée à tout autre à travers un câble. Ce type de câblage ne plus utilisé car il nécessite beaucoup de câbles.

Fig. n* 9 : Représentation de la topologie en maille

I.8. La topologie logique

La topologie logique représente la manière à la quelle les données transitent dans le câble. Les deux réseaux les plus utilises sont : Ethernet et Token ring. Mais on trouve aussi le FDDI (Fiber Distributed Interface) et ATM (asynchrone transfert mode).

I.8.1.Topologie Ethernet

Cette topologie a comme avantage d'interconnecter divers matériels avec une grande facilité d'extension. La famille de réseau Ethernet repose sur :

1. sa méthode d'accès : CSMA / CD

2. La nomenclature I3E (institute of electrical and electrical engineer). Cette nomenclature permet d'identifier les principales caractéristiques de chaque version d'Ethernet par la formule :

XXX.Base.YY

I.8.2.Topologie Tokenring

Cette topologie est caractérisée par :

> Sa méthode d'accès : jeton ;

> Le débit de transmission qui varie de 4 à 16 Mbps ; > La transmission en bande de base ;

> La topologie physique est l'anneau.

I.8.3. Topologie FDDI

C'est une topologie d'accès au réseau sur les lignes du type fibre optique. C'est un anneau à jeton à détection et correction d'erreur caractérisé par :

> Méthode d'accès : jeton ;

> Débit : 100 Mbps ;

> Longueur max peut aller jusqu' à 100 km

> Supporte plus de 1000 stations

I.9. Mode d'accès

Dans un réseau local, les messages ne peuvent circuler simultanément sur un réseau sans entrer en collision. Il est donc nécessaire de mettre en place un mécanisme de contrôle d'accès pour éviter la présence en même temps de plusieurs messages.

Parmi l'ensemble des méthodes d'accès sont utilisées le CSMA et le

JETON.

I.9.1. Le CSMA (Carrier Sence Multiple Access)

Quand une station décide d'émettre, elle écoute le canal de transmission pour vérifier s'il est libre. S'il est, elle émet son message. Toutefois, il se peut que deux stations se décident à émettre au même instant. Il y a alors collision des messages émis. Il existe deux méthodes pour résoudre la collision : le CSMA / CD et le jeton

a. CSMA / CD

Les stations impliquées arrêtent momentanément leur transmission. Au bout d'un laps de temps aléatoire, l'émission est reprise. Il est peu probable que les stations se décident de remettre au même instant, si non le cycle d'attente reprend.

Cette méthode est aléatoire ou probabiliste car chaque station peut émettre à n'importe quel moment pour vue que le canal soit libre.

b. CSMA / CA (Collision Avoidance)

Elle permet d'éviter la collision. Si le canal est libre, la station qui veut émettre envoie d'abord un court signal pour prévenir les tentatives d'émissions des autres stations. Ces dernières vont bloquer temporairement leurs émissions. Une fois le message envoyé, il fera l'objet d'un aller / Retour si non, on considérera qu'il s'agit d'une collision.

I.9.2. Le jeton

On utilise cette méthode aussi bien avec un réseau en bus qu'avec un réseau en anneau.

Principe de fonctionnement

1. un jeton circule librement sur l'anneau ;

2. lorsqu'une station veut émettre, elle capture le jeton

3. elle attache son message à la suite du jeton avec l'adresse de la station destinatrice, le message est remis en circulation sur l'anneau

4. chaque station reçoit l'information (jeton +message +adresse) et l'inspecte pour tester son adresse avec celle du destinataire ;

5. si le message lui est destiné, la station le copie et remet le jeton en circulation sur le réseau en ajoutant une information indiquant la bonne réception du message (accusé de réception)

6. quand le jeton passe devant la station émettrice celle-ci le remet à l'état libre.

7. le jeton circule de nouveau sur le réseau.

La station qui souhaite émettre ne peut le faire que si le jeton est libre .Cette méthode est dite déterministe.

I.10. types d'ordinateurs connectés.

Un réseau permet de connecter des ordinateurs entre eux de tout type (pc, mac,...) pour le partage des ressources. Ainsi deux types d'ordinateurs sont utilisés sur un réseau : le serveur et les clients (ou station de travail).

I.10.1 le serveur

Le serveur est un micro - ordinateur qui héberge les ressources partagées. Il est souvent plus performent au niveau capacité matérielle que les autres ordinateurs du réseau .Dans certain réseau, un ordinateur peut être à la fois station et serveur.

En informatique nous distinguons trois types de serveur : I.10.2 Types de serveur

> le serveur de fichier ; enregistre et distribue les documents et fichiers partagés par les utilisateurs ;

> serveur d'application : permet d'utiliser un programme sur un ordinateur à partir de tous les postes clients simultanément principalement des applications qui utilisent des bases des données [gestion de fabrication commerciale, comptabilité, stock]. Ces applications doivent être programmées pour gérer le partage.

> Serveur d'impression : partage d'impression [imprimante].En pratique, un serveur reprend souvent les trois applications.

I.10.3 notion de serveur dédié

Il s'agit d'un micro-ordinateur qui ne possède que des ressources donc dédié. Sinon un ordinateur peut à la fois station et serveur mais ;

> Moins de place pour le travail, s'il y a travail plus logiciel ;

> Travail ralenti quand quelqu'un se connecte au serveur ;

> Pas de domaine privé puisque tout le monde a accès à cette machine ; > Pas d'autonomie car le serveur doit rester allumé en permanence ;

> Risque multiples dus aux utilisateurs ;

Ainsi pour optimiser le temps d'accès, il faut toujours utiliser deux serveurs, un pour les impressions et l'autre pour les données.

I.10.4. station de travail

C'est un micro-ordinateur disposant des ces propres ressources c'està-dire de lecteur de disque ou cd rom, HDD et pouvant accéder à celles du serveur (mais à celles dont les permutions sont accordées par l'administrateur). Les stations entre elles peuvent également se partager des fichiers

I.11.Equipements d'interconnexion d'un réseau informatique

On assimile très souvent le réseau local au réseau d'entreprise mais pour des raisons organisationnelles ou géographiques,

Le réseau d'entreprise peut se diviser en plusieurs réseaux locaux en fonction des services, des étages, des établissements, de l'importance du trafic, de la sécurité...

I.11.1.Le répéteur

Le répéteur est un équipement qui permet d'outrepasser la longueur maximale imposée par la norme d'un réseau. Pour ce faire, il amplifie et régénère le signal électrique.

Il est également capable d'isoler un tronçon défaillant (câble ouvert par exemple) et d'adapter deux medias Ethernet différents. (Par exemple 10 base 2 vers 10 base T).Le répéteur agit sur la couche physique du modèle OSI (ou niveau 1).

Avantages ;

> Régénérer les données reçues et les retransmettre enfin d'accroître la distance de transmission ;

> Reconditionner un signal entre deux machines du réseau enfin d'étendre la distance d'un câble du réseau ;

> Permet d'échanger des types de support : exemple un segment de paire torsadées à un brin de fibre optique.

Inconvénients :

> Incapable d'interconnecter des brins fonctionnant à des vitesses différentes ;

> Il n'a aucune connaissance de la sémantique des champs message et ne fait que régénérer le signal ;

> Incapable de modifier la nature de la trame.

I.11.2.Le concentrateur (HUB)

HUB ;(host Unit Broad Cast) : cela veut dire unité de diffusion. Est un équipement qui agit au niveau de la couche physique du modèle OSI, permettant l'interconnexion locale de station en utilisant une topologie en étoile.

Type de HUB

Nous distinguons deux types d' hub ;

> Hub actifs ; permet de régénérer le signal dans les différents ports et est alimenté électriquement ;

> Hub passifs ; permet de diffuser le signal à tous les ports sans amplification.

Son but est de récupérer les données binaires parvenant sur un port et de les diffuser sur l'ensemble de ports .Tout comme le répéteur, le concentrateur opère au niveau 1 du modèle OSI. C'est la raison pour laquelle il parfois appelé répéteur multisports.

I.11.3.Le pont

Dispositif reliant deux réseaux ayant la même méthode d'accès (même protocole de niveau 2) au sein d'un même site .IL joue deux rôles :

> Répéteur du signal : augmente la distance maximale du réseau ;

> Filtre entre deux segments du réseau : éviter un surcharge inutile du trafic réseau ;

> Détecteur d'erreurs.

Le pont peut se matérialiser sous la forme d'un ordinateur possédant deux cartes réseaux reliant les deux segments .il intervient au niveau 2 du modèle OSI.

Principe de fonctionnement

Un pont possède deux connexions à deux réseaux distincts. Lorsque le pont reçoit une trame sur l'une de ses interfaces,il analyse l'adresse MAC du destinataire et de l'émetteur.

Si jamais le pont ne connaît l'émetteur, il stock son adresse dans une table afin de se souvenir de quel cote du réseau se trouve l'émetteur. Ainsi le pont est capable de savoir si l'émetteur et le destinataire sont situés du même coté ou bien de part et d'autre du pont.

Dans le premier cas, le pont ignore le message, dans le second cas, le pont transmet la trame sur l'autre réseau.

I.11.4.Le commutateur (ou switch)

Le switch est un équipement qui agit au niveau de la couche liaison du modèle OSI (niveau 3). C'est un multi port.

Rôle :

> Analyse les trames arrivant sur ses ports d'entrée,

> Filtre les données enfin de les aiguiller uniquement sur le port de destination ;

> Il permet de réduire les collisions sur les câbles du réseau. C'est-à-dire lorsque un périphérique souhaite communiquer, il envoi sur le câblage un message. si un autre périphérique communique déjà, deux messages se retrouvent en même temps sur le réseau. le premier reprend son message au début et le deuxième attend pour réessayer quelques millisecondes plus tard.

I.11.5. Le routeur

Le routeur est un équipement qui agit au niveau de la couche réseau du modèle OSI (niveau 3). Il permet de choisir le chemin que les messages vont emprunter pour arriver à la destination.

Les routeurs sont des machines ayant plusieurs cartes réseaux dont chacune est reliée à un réseau différent. Il permet en outre l'interconnexion de réseaux informatiques permettant d'assurer le routage des paquets entre deux réseaux ou plus afin de déterminer le chemin qu'un paquet de données va emprunter.

Chapitre II. CARTE RESEAU

II.0. Introduction

Une carte réseau est matérialisée par un ensemble de composants électroniques soudés sur un circuit imprimé. L'ensemble constitué par le circuit imprimé et les composants soudés s'appelle une carte électronique, d'où le nom de la carte réseau.

La carte réseau assure l'interface entre l'équipement ou la machine dans laquelle est montée et un ensemble d'autres équipements connectés sur le réseau.

Nous trouvons de cartes réseaux dans les ordinateurs mais aussi dans certaines imprimantes et copieurs. Nous ne parlerons de la carte réseau que dans le cas d'une carte électronique autonome prévue pour remplir e rôle d'interface réseau.

Ainsi, un ordinateur muni d'une carte mère me comporte pas, à proprement parler, de carte réseau. L'équipement communique sur le réseau aux moyens de signaux qui doivent absolument respecter des normes.

II.1. Médias de transmission des informations

Le média ou support de l'information est généralement un réseau filaire. La carte réseau est dans ce cas munie d'un connecteur sur lequel on branche une carte réseau.

Ce dernier est relié au réseau par l'intermédiaire d'une prise murale ou directement sur un équipement d'interconnexion de réseau comme un concentrateur (hub) ou d'un commutateur.

II.2. Les standards

Il existe diverses normes qui régissent la première couche du modèle OSI (couche matérielle). Les couches supérieures du modèle OSI sont gérées au niveau logiciel.

On peut citer les normes Ethernet, Token ring (anneau à jeton). Le standard le plus rependu est le standard Ethernet. Pour le réseau sans fil, le standard WI-FI est le plus courant.

II.3. Types de cartes réseaux II.3.1. Ordinateur de bureau

On peut relier les ordinateurs de bureau au réseau selon les types de carte ci-dessous :

> Réseau filaire :

- carte PCI à insérer dans un connecteur PCI libre sur la carte mère ;

- de nombreux modèles de cartes mères disposent d'une interface réseau intégrée. Dans ce cas, on branche directement le câble réseau sur le connecteur RJ45 fixé à la carte mère.

> Réseau sans fil : carte PCI équipée d'une antenne. II.3.2. Ordinateur portable.

Les ordinateurs portables ne disposent pas de connecteur PCI, mais d'autres solutions existent :

> carte réseau au standard PCMCIA ;

> interface réseau déjà intégrée au portable ;

> carte réseau en USB

II.4. Le débit de transmission et le mode de communication

Le débit s'exprime généralement en kbps (mégabits par seconde = million de bits par seconde). Cela mesure la capacité d'un équipement réseau à émettre et / ou recevoir un ou plus ou moins grand nombre de bits d'informations en une seconde.

Les débits actuels du standard Ethernet sont :

> 10Mb/s ;

> 100Mb/s (Fast Ethernet) ;

> 1000Mb/s parfois également noté 1.0Gib/s (giga Ethernet) ;

> 10.000Mb/s encore peu employé en 2009 (10 Gi bits Ethernet).

Les cartes réseaux peuvent communiquer en half duplex, dans ce cas une carte peut seulement émettre ou recevoir des informations à un instant donné. Le mode full duplex permet à une carte réseau d'émettre et recevoir simultanément (ce qui permet un débit effectif doublé dans le cas optimal).

Deux équipements réseaux doivent communiquer dans le même débit. Un paramétrage de la carte réseau permet le plus souvent de forer le débit ou de

le positionner en auto négociation ; dans ce cas, les cartes connectées négocient un débit commun dés l'établissement de liaison physique (le branchement de la prise RJ45 par exemple).

II.5. Sortes de carte réseau II.5.1. Cartes réseaux Ethernet

La plupart de cartes réseaux destinées au grand public sont des cartes Ethernet. Elles utilisent comme support de communication des paires torsadées (8 fils en cuivres), disposant à chaque extrémité de prises RJ45.

> Le 10base-T ; permet un débit maximal de 10Mbps. Les câbles RJ45 peut alors mesurer jusqu'à une centaine de mètres et seuls 4 de 8 fils sont utilisés ;

> Les 100base-Tx ; permet un débit maximal de 100Mbps. Il est également appelé Fast Ethernet et est désormais supporté par la quasi-totalité des cartes réseau. Comme pour le 10base-T, le able TJ45 peut alors mesurer jusqu'à une centaine de mètres et seuls 4 de 8 fils sont utilisés ;

> Le 1000base-T ; permet un débit maximal de 1000Mbps. Il est également appelé gigabits Ethernet et se démocratise rapidement. pour que le réseau fonctionne correctement, le câble RJ45 peut toujours mesurer jusqu'à 100 mètres, mais doit être de bonne qualité. Cette fois le 8 fils sont utilisés.

Afin d'étendre les distances maximales, d'autres normes Ethernet existent, elles utilisent dans la plupart de cas de la fibre optique comme support de communication.

Pour relier deux ordinateurs en réseau, un câble RJ45 spécifique suffit : il s'agit d'un câble appelé < croisé > dont on branche simplement les extrémités dans chaque carte.

Pour relier plus deux machines on utilise un matériel nommé hub ou switch ; une extrémité du câble sera alors branchée sur l'ordinateur alors que l'autre sera reliée au switch.

Les caractéristiques fondamentales du switch sont la vitesse (compatible 10base-T, 100base-Tx et / ou 1000base-T) et son nombre de ports (nombre de prise RJ45).

II.5.2. Carte réseau WI-FI

Les cartes réseaux sans fil wi-fi (wireless fidelity) ou WLAN (wireless local area network) fonctionnent sur le même principe que le réseau Ethernet filaires.

Une carte réseau wi-fi doit être installée sur chaque ordinateur du réseau sans fil. Cette carte peut être directement incluse dans la carte mère (cas de nombreux portables), mais peut également se trouve sous la forme d'une carte PCI ou d'une clé USB.

Une antenne, parfois intégrée dans la carte, permet l'envoi et la réception des signaux.

Il possible de relier deux ordinateurs portables directement par wi-fi (on parle alors de l'architecture ad hoc) comme en Ethernet filaire, pour relier plus de deux machines on utilise généralement un matériel spécifique appelé routeur wi-fi [ou point d'accès].

Ce dernier dispose d'une à trois antennes afin de pouvoir le relier à un réseau Ethernet filaire [généralement compatible 100 base --Tx], on parle alors de l'architecture infrastructure.

Plusieurs normes wi-fi ont été mises en oeuvre afin d'augmenter progressivement la portée et la vitesse des échanges.

Ainsi :

> Le 802.11b permet un débit théorique jusqu'à 11Mbps (environ 6 kbps réel) pour une portée maximale de 300 mètres (en intérieur, cette portée est toutefois généralement limitée à quelque dizaines de mètres) ;

> Le 802.11g ; permet un débit théorique maximale de 54Mbps [environ 25Mbps réel]. Le 802.11g a une compatibilité ascendante avec la norme 802.11b, ce qui signifie que de matériel conforme à la norme 802.11g peuvent fonctionne en 802.11b ;

> Le 802.11n, dit également wwise (world wide spectum efficiency) ou Tgn sync, est une norme finalisée en 2008. Le débit théorique atteint les 600Mbps (débit réel de 100Mbps dans un rayon de 90 mètres).

II.6. Rôle et fonction de la carte réseau

Une carte réseau sert d'interface physique entre l'ordinateur et le câble, elle prépare pour le câble réseau les données émises par l'ordinateur, le transfert vers un autre ordinateur et contrôle le flux de données entre l'ordinateur et le câble.

Il traduit aussi les données venant du câble et traduit en octets afin que l'unité centrale de l'ordinateur les comprenne.

Ainsi, une carte réseau est une carte d'extension s'insérant dans un connecteur d'extensions [slot].

La carte réseau possède généralement deux tempos lumineux (Leds)

qui sont :

> Le led vert correspond à l'alimentation de la carte ;

> Le led orange [10Mbps] ou rouge [100Mbps] indiquent une activité du réseau (envoi ou réception des données).

Pour préparer les données à envoyer la carte réseau utilise un transceiver qui transforme les données parallèles en données séries.

Chaque carte dispose d'une adresse unique appelée adresse MAC, affectée par le constructeur de la carte, ce qui lui permet d'être identifiée de façon unique à travers le monde parmi toutes les autres cartes réseaux.

Les cartes réseaux disposent de paramètres qu'il est possible de configurer. Parmi eux figurent l'interruption matérielle (IRQ), l'adresse de base du port E/S et l'adresse de base de la mémoire (DMA).

Pour garantir la compatibilité entre l'ordinateur et le réseau, la carte doit être adaptée à l'architecture du bus de données de l'ordinateur et avoir le type de connecteurs approprié au câblage.

Chaque carte est conçue pour s'adapter à un certain type de câble. Certaines cartes comprennent plusieurs connecteurs d'interfaces (à paramétrer avec les cavaliers, soit avec le DIP, soit de façon logicielle).

Les connecteurs les plus répandus sont les connecteurs RJ45. Cependant certaines topologies réseau utilisant la paire torsadée ont recours aux connecteurs RJ11. Ces topologies sont parfois appelées < pré-10baseT>.

Enfin pour garantir cette compatibilité entre ordinateur et réseau, la carte réseau doit être compatible avec la structure interne de l'ordinateur (architecture du bus de données) et avoir un connecteur adapté à la nature du câblage.

II.6.1. Préparation de données

Les données se déplacent dans l'ordinateur en empruntant des chemins appelés (bus). Plusieurs chemins cote à cote font que les données se déplacent en parallèle et non en série (les unes à la suite des autres).

> Les premiers bus fonctionnaient en 8 bits (8bits de données transportées à la fois) ;

> L'ordinateur PC/AT d'IBM introduit les premiers bus 16 bits ;

> Aujourd'hui la plus part des bus fonctionnent en 32 bits.

Toutefois sur un câble les données circulent en série (un seul flux de bits), en se déplacent dans un seul sens. L'ordinateur peut envoyer ou revoir les informations mais il ne peut pas effectuer les deux simultanément.

Ainsi, la carte réseau restructure un groupe de donnée arrivant en parallèle en données circulant en série (1 bit). Pour cela, les signaux numériques sont transformés en signaux électriques ou optiques susceptibles de voyager sur les câbles de réseau. Le dispositif chargé de cette traduction est le Transceiver.

II.6.2. Le rôle d'identificateur.

> La carte traduit les données et indique son adresse au reste du réseau afin de pouvoir être distinguée des autres cartes du réseau;

> Adresse MAC : définie par l'IEEE (Institute of Electrical and Engineer) qui attribue des places d'adresses à chaque fabriquant de cartes réseau ;

> Elles sont inscrites sur les puces des cartes : procédure appelée < gravure de l'adresse sur la carte >. Par conséquent, chaque carte a une adresse MAC unique sur réseau.

En outre l'ordinateur et la carte doivent communiquer afin que les données puissent passer de l'un vers l'autre. L'ordinateur affecte ainsi une partie de sa mémoire aux cartes munies d'un accès direct à la mémoire (DMA : direct accès memory).

La carte indique un autre ordinateur demande des données à l'ordinateur qui la contient. Le bus de l'ordinateur transfère les données depuis la mémoire de l'ordinateur vers la carte réseau.

Si le données circulent plus vite que la carte ne peut les traiter, elles sont placées dans la mémoire tampon affectée à la carte (RAM) dans laquelle elles sont stockées temporairement pendant l'émission et la réception des données.

II.6.3. Envoi et contrôle des données.

Avant que la carte émettrice envoie les données, elle dialogue électriquement avec la carte réceptrice pour s'accorder sur les points suivants :

> Taille maximale des groupes de données à envoyer ;

> Volume de données à envoyer avant confirmation ;

> Intervalles de temps entre les transmissions partielles de données ; > Délai d'attente avant envoi de la confirmation ;

> Quantité que chaque carte peut contenir avant débordement ; > Vitesse de transmission des données.

Si une carte plus lente, donc plus perfectionnée communique avec une carte plus lente, elles doivent trouver une vitesse de transmission commune. Certaines cartes ont des circuits leur permettant de s'adapter au débit d'une carte plus lente.

Il y a donc acceptation et ajustement des paramètres propres à chacune de deux cartes avant émission et réception des données.

II.7. Paramètres de configuration de la carte

Les cartes réseaux sont munies d'options de configuration. Entre

autres :

> Interruption (IRQ) : dans la plupart de cas, ces sont IRQ 3 et 5 qui sont attribués aux cartes réseau. l'IRQ5 est même conseillé ( s'il est disponible) et la plupart des cartes l'utilisent comme paramètre par défaut .

> Adresse de base du port d'entré/sortie (E/S) : chaque périphérique doit utiliser une adresse de base différente pour le port correspondant.

> Adresse de base de la mémoire : elle désigne un emplacement de la mémoire vive (RAM) de l' ordinateur. la carte utilise cet emplacement comme tampon pour les données qui entrent et qui sortent. Ce paramétrage est parfois appelé < adresse de début > (Ram Start Adresse).

En générale, l'adresse de base mémoire pour une carte réseau est D8000. Le dernier O est parfois supprimé pour certaines cartes réseaux. Il essentiel de prendre soin de ne pas sélectionner une adresse de base déjà utilisée par un autre périphérique.

A noter toutefois que certaines cartes réseaux n'ont pas de réglage pour l'adresse de base de la mémoire car elles n'utilisent pas l'adresse MAC de machine.

> Le transceiver

Cependant, il est possible de configurer la carte de manière logicielle. Les paramètres doivent correspondre avec la disposions des cavaliers ou des commutateurs DIP [dual inline package] situés sur la carte réseau. Les réglages sont fournis avec la documentation de la carte. Beaucoup de cartes récentes sont en PnP (plag and play).

Cela dispense de configurer la carte à la main mais peut parfois être gênant (apparition de conflits) au quel cas il généralement agréable de pouvoir désactiver l'option PnP et configurer la carte à la main.

II.8. Installation de la carte réseau

Le but est d'arriver à mettre en place un réseau afin de pouvoir échanger de données. Il faut donc installer dans chaque ordinateur susceptible de faire partie du réseau local une carte réseau.

II.8.1. Installation matérielle

La première de chose à faire est d'ouvrir votre ordinateur et d'y insérer la carte réseau quelle soit ISA ou bien PCI. Pour cela vous aurez besoin d'un tournevis cruciforme.

Avant toute chose débrancher l'alimentation, puis touchez le boîtier sur la partie métallique enfin de vous déchargé de toute énergie statique. Il ne vous reste qu'à trouver un emplacement libre et d'y insérer la carte.

II.8.2. Installation logicielle

Pour la configuration logicielle, tout dépend du système d'exploitation sur lequel vous travaillez (Windows 95,98 ou Windows XP)

Procédure pour Windows XP :

> Cliquez sur démarrer / panneau de configuration

> Cliquez sur système / matériel

> Cliquez sur gestionnaire de périphérique

> Cliquez deux fois sur l'icône carte réseau (pour voir le nom de la carte) ;

A ce niveau, un point d'interrogation ( ?) en couleur jaune devant le nom de la carte réseau indique :

> Soit la carte réseau n'a pas de pilote;

> Soit la carte réseau ne fonctionne pas ;

Que faire?

> Arrêtez l'ordinateur, changez l'emplacement de slot ;

> Allumez la machine ;

> L'ordinateur affichera un message < nouveau matériel détecté > : Lisez le nom de la carte puis introduisez le cd d'accompagnement du périphérique pour l'installation de pilotes dans le cas contraire cherchez le pilote sur l'Internet.

> Si lors du changement de slot, l'ordinateur ne détecte pas la carte carrément il faut la changer.

II.8.3. Installation de protocoles

Les protocoles sont les éléments logiciels qui vont permettre la communication entre les ordinateurs. Les trois principaux protocoles pour un réseau local sont;

> IPX-SPX ;

> NETBEUI

> TCP/IP : il sera utilisé si vous décidez de relier votre réseau local à l'Internet dans le cas contraire IPX-SPX et NETBEUI vous suffit. Ces protocoles sont disponibles sous le constructeur Microsoft,

Pour installer chacun d'eux, sélectionnez le puis cliquer sur installer.

Procédure

Cliquez sur ;

> démarrer ;

> panneau de configuration ;

> Connexion Internet ;

> Clic droit sur l'icône de connexion puis sur propriété ; > Sélectionnez le pilote puis cliquez sur installer.

Lorsque vous avez fini d'installer les différents protocoles, si vous voulez que des personnes puissent accéder à certaines de vos ressources (fichiers, disques, répertoires ou imprimantes) cliquez sur le bouton <partage des fichiers et d'imprimantes> puis cochez le choix qui vous intéresse. Il ne vous reste plus qu'à redémarrer votre ordinateur à nouveau.

Vous devriez normalement voir apparaître les composants réseau

suivants ;

> Clients pour réseau Microsoft

> Carte réseau compatible NE2000

> Protocole NETBEUI ; protocole compatible IPX-SPX

> TCP / IP

> Fichiers et imprimantes partagés pour le réseau Microsoft

Chapitre 3.TRAFIC RESEAU

III.1. Introduction

Le transfert d'informations de l'émetteur vers le récepteur nécessite sur

un réseau :

> la mise en forme des informations à émettre ;

> l'identification du récepteur ;

> le décollage par récepteur des informations reçues

> l'annonce de la transmission.

Il va de soi que si le récepteur ne connaît ni la manière dont l'information lui est transmise (format), ni celle utilisée par l'émetteur pour lui signaler qu'il a des informations à lui transmettre, il ne peut y avoir de transmission. Il s'avère donc indispensable d'établir un protocole de communication entre l'émetteur et le récepteur d'un même réseau.

Pour réglementer l'émission d'une station sur un support, des protocoles ont été définis dans un premier temps sous l'égide de l'IEEE (Institut of Electrical and Electronic Engineer). Ces protocoles ont été repris et complétés par l'ISO (international standardisation organisation).

Ainsi la transmission d'information entre deux programmes informatiques sur deux machines différentes passe par deux modèles : le modèle OSI ou le modèle TCP / IP.

Ces deux normes permettent à chaque partie de la communication de dialoguer. Chaque modèle inclus plusieurs couches. Ainsi chaque couche devra envoyer (et recevoir pour l'autre PC) un message compréhensible par les deux parties.

III.2. Le modèle OSI (Open system interconnections)

Ce modèle théorique définit en 1977 régit la communication entre deux systèmes informatiques selon sept couches ou niveaux. A chaque couche, les deux systèmes doivent communiquer <compatible>.

Ce modèle définit par l'ISO précise que la communication entre deux systèmes différents passe par sept couches ou niveaux différents organisés de la manière suivante :

Fig. n * 10 : Représentation en couches du modèle OSI III.2.1. Fonction de chaque couche

1. la couche physique : assure la transmission de données sous la forme des
signaux électriques sur le canal physique. La modulation ainsi que le multiplexage y sont pratiqués. un grand nombre des techniques de transmission y sont utilisées. l'unité information est à ce niveau est le bit.

2. la couche liaison (ou couche 2) : est responsable de l'acheminement sans
erreur des blocs d'informations sur des liaisons des données. En effet, les supports de transmissions introduisent les erreurs dans les informations à transportées. Son rôle est de définir les règles pour l'émission et la réception de données à travers la connexion physique de deux systèmes : la transmission sans erreur, déterminer la méthode d'accès au support.

Les données sont structurées en en trames qui continent des informations de détection et correction d'erreur, la carte réseau gère des couches physique et liaison.

3. la couche réseau (ou couche 3) : elle est responsable de l'acheminement des
paquets de données qui transitent à l'intérieur du sous réseau de transport. elle offre également un contrôle de gestion, le quel permet d'éviter de pertes des paquets de données par engagement de certains. Les données seront alors déroutées vers un autre noeud.

4. la couche transport : fournit un service de transport de bout en bout transparent
pour l'utilisateur (même à travers plusieurs réseaux) : établissement, maintient et rupture de la connexion entre deux systèmes. Elle assure également les services qui n'ont pas été assurés par les couches inférieures (erreur, routage) ;

5. la couche session ; première couche orientée traitement. Elle est responsable
de la mise en place et du contrôle du dialogue entre les entités communicantes. Elle permet l'ouverture et la fermeture d'une session du travail entre deux systèmes distants. Elle assure également la synchronisation du dialogue.

6. Présentation permet de formater les données dans un format compréhensible
par les deux systèmes. Elle assure la conversion et éventuellement la compression et le cryptage des données.

8. Application ; constitue la couche la plus externe du modèle de référence. Elle permet la compréhension et l'exécution des commandes liées aux applications. De plus, elle établit les règles d'échange entre opérateurs, périphérique et programme. Elle fournie donc des services utilisables par les applications installées sur le réseau.

III.3. L'architecture du modèle TCP / IP

C'est un mode opératoire qui doit être commun à tous les éléments qui désirent communiquer entre eux. Il n'y a pas de communication possible sans avoir recours à un protocole.

Bien entendu, le protocole doit être adapté au type de communication que l'on souhaite mettre en oeuvre. le TCP / IP n'est pas uniquement un protocole mais aussi un ensemble des protocoles organisés en quatre couches : application, transport, Internet et accès au réseau.

Tableau comparatif du modèle OSI et le modèle TCP / IP

Modèle OSI

Modèle TCP / IP

7, Application

Application

6, Présentation

5, Session

4, Transport

Transport

3, Réseau

Internet

2, Liaison

Accès réseau

1. Physique

Tableau n* : 1 : Tableau comparatif du modèle OSI et le modèle

TCP / IP

III.4. Le protocole

Un protocole est une méthode standard qui permet la communication entre des processus (s'exécutant éventuellement sur différentes machines), c'est-àdire un ensemble des règles et des procédures à respecter pour émettre et recevoir des données sur un réseau. Il existe plusieurs selon ce que l'on attend de la communication.

La communication entre machines nécessite un passage sur différentes couches, le tableau suivant nous permettra de distinguer les niveaux de protocoles selon les couches

Application

Transport

Internet

Physique

HTTP

TCP

IP

ETHERNET

FTP

UDP

ICMP

 

SMTP

TCAP

IGMP

 

SNTP

IPSEC

RIP

 

POP3

 

ARP

 

TELNET

 

IPX

 

DNS

 
 
 

DHCP

 
 
 

NETBIOS

 
 
 

Tableau n* 2 : Tableau des protocoles selon les couches

3.4.1. Les protocoles de la couche application

> HTTP ; - HTTP : ( Le Hypertext Transfer Protocol ), port TCP 80 ou 8080plus connu sous l'abréviation HTTP, littéralement le « protocole de transfert hypertexte », est un protocole de communication client serveur développé pour le World Wide Web. Le protocole HTTP peut fonctionner sur n'importe quelle connexion fiable ;

> FTP : Le ( File Transfer Protocol ) (protocole de transfert de fichiers), ou FTP, est un protocole de communication dédié à l'échange informatique de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers depuis ou vers un autre ordinateur du réseau, d'administrer un site web, ou encore de supprimer ou modifier des fichiers sur cet ordinateur ;

> . SMTP : Le ( Simple Mail Transfer Protocol ) (littéralement « Protocole simple de transfert de courrier »), est un protocole de communication utilisé pour transférer le courrier électronique vers les serveurs de messagerie électronique ;

> SNMP : Le sigle SNMP signifie (Simple Network Management Protocol) (protocole simple de gestion de réseau en Français). Il s'agit d'un protocole de communication qui permet aux administrateurs réseau de gérer les équipements du réseau et de diagnostiquer les problèmes de réseau à distance ;

> POP3 :( Post Office Protocol version 3) Le protocole qui permet au client de relever à distance le courrier classé dans sa boîte aux lettres ;

> TELNET : (TErminal network ou TELecommunication NETwork ), ou encore (TELetype NETwork) C'est le "couteau suisse" du travail à distance. En fait, un client TELNET est une console en mode texte, capable de se connecter sur la plupart des serveurs, comme POP3 ou SMTP ;

> DNS : Le (Domain Name System) (ou DNS, système de noms de domaine) est un système permettant d'établir une correspondance entre une adresse IP et un nom de domaine et, plus généralement, de trouver une information à partir d'un nom de domaine ;

> DHCP : ( Dynamic Host Configuration Protocol ) (DHCP) est un terme anglais désignant un protocole réseau dont le rôle est d'assurer la configuration automatique des paramètres TCP/IP d'une station, notamment en lui assignant automatiquement une adresse IP et un masque de sous réseau. DHCP peut aussi configurer l'adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft) ;

Ainsi chaque protocole a un numéro qu'on appelle < port > : III.5. Communication client / serveur

Les serveurs ont une fonction particulière : Ils doivent envoyer des informations pertinentes aux clients qui en réclament. Comme un serveur ne convient pas d'un rendez-vous avec le client, il doit rester attentif en permanence pour ne pas risquer de rater une question. Pour ce faire, on y installe des "daemons", petits programmes qui tournent en tâche de fond et qui écoutent continuellement sur un numéro de port donné.

Il y a des conventions pour attribuer ces ports sur des services connus, par exemple le port 80 pour HTTP, le port 110 pour POP3, le port 21 pour FTP. Il faudrait donc qu'il y ait des conventions de ce genre pour que les clients puissent atteindre ces services.

Ainsi, lorsque l'on écrit http://192.168.50.45, on ne spécifie pas de port; sous-entendu, il s'agit du port 80 parce que l'on invoque un service HTTP. Il serait possible d'écrire: http://192.168.50.45:80. Ici, on spécifie le port. Certaines protections triviales consistent justement à forcer un service à ne pas employer le port standard. Un administrateur pourrait décider de mettre son serveur HTTP à l'écoute du port 88. Dans ce cas, si l'utilisateur n'est pas au courant de cette particularité, il ne pourra pas accéder à ce serveur.

.

 

Fig. n *11 : l'écoute des ports entre serveur et client

d'autre que les réponses à ses questions. Il faut donc, lorsqu'il envoie sa requête, qu'il spécifie sur quel port il va écouter la réponse, de manière à ce que le serveur puisse construire un socket efficace pour ladite réponse.

Vous êtes-vous demandé par quel miracle, si vous ouvrez deux fois votre navigateur pour afficher deux pages différentes sur le même serveur, les informations ne se mélangent pas ?

C'est parce que les deux sessions du navigateur indiquent des ports de réponse différents, C'est le NOS du client qui choisit les ports de réponse en fonction de ceux qui sont disponibles sur la machine.

Fig. n * 12 :L'écoute des ports entre serveur et client

III.5.1. Notion de port d'écoute

Lorsqu'un port est ouvert à l'écoute sur un service serveur, c'est une porte ouverte par laquelle un intrus peut entrer. Correspondant à la couche session du modèle OSI, la notion de port logiciel permet, sur un ordinateur donné, de distinguer différents interlocuteurs.

Ces interlocuteurs sont des programmes informatiques qui, selon les cas, écoutent ou émettent des informations sur ces ports. Un port est distingué par son numéro.

III.5.2. Adresse, port et socket

De nombreux programmes TCP/IP peuvent être exécutés simultanément sur Internet (vous pouvez par exemple ouvrir plusieurs navigateurs simultanément ou bien naviguer sur des pages HTML tout en téléchargeant un fichier par FTP). Chacun de ces programmes travaille avec un protocole, toutefois l'ordinateur doit pouvoir distinguer les différentes sources de données.

Ainsi, pour faciliter ce processus, chacune de ces applications se voit attribuer une adresse unique sur la machine, codée sur 16 bits: un port ( la combinaison adresse IP + port est alors une adresse unique au monde, elle est appelée socket ).

L'adresse IP sert donc à identifier de façon unique un ordinateur sur le réseau tandis que le numéro de port indique l'application à laquelle les données sont destinées. De cette manière, lorsque l'ordinateur reçoit des informations destinées à un port, les données sont envoyées vers l'application correspondante. S'il s'agit d'une requête à destination de l'application, l'application est appelée application serveur. S'il s'agit d'une réponse, on parle alors d'application cliente.

Par exemple, votre navigateur peut envoyer un message à un serveur HTTP (un serveur Web):

fig13.Exemple transmission par port III.5.3. La fonction de multiplexage

Le processus qui consiste à pouvoir faire transiter sur une connexion des informations provenant de diverses applications s'appelle le multiplexage. De la même façon le fait d'arriver à mettre en parallèle (donc répartir sur les diverses applications) le flux de données s'appelle le démultiplexage.

Fig. n* 14 : La fonction de multiplexage entre 2 machines

Ces opérations sont réalisées grâce au port, c'est-à-dire un numéro associé à un type d'application, qui, combiné à une adresse IP, permet de déterminer de façon unique une application qui tourne sur une machine donnée.

III.5.4. Liste des ports TCP et UDP

Il existe des milliers de ports (ceux-ci sont codés sur 16 bits, il y a donc 65536 possibilités avec la formule 216 = 65536, c'est pourquoi une assignation standard a été mise au point par l'IANA (Internet Assigned Numbers Authority), afin d'aider à la configuration des réseaux.

Les numéros de port Tcp et Udp sont codé sur 16 bits délimitant ainsi leurs valeurs entre 0 et 65535. Les ports connus ont la particularité d'être assignés par l'IANA.

La liste est divisée en trois parties nommées :

- Les port connues, compris entre 0 et 1023

- Les ports enregistrés, compris entre 1024 et 49151
- Les ports dynamique ou privés, compris entre 49152 et 65535.

Sur un ordinateur, un certain nombre de services réseaux tournent. La plupart du temps, chaque service utilise un ou deux ports et s'occupe d'une tâche. On trouvera souvent Apache derrière le port 80 par exemple. Les numéros de ports vont de 1 à 65535, le port zéro étant réservé.

La liste des ports ci-dessous n'est donnée qu'à titre indicatif. Il est tout à fait possible de lancer un serveur sur un autre port (ex: Apache sur port 8080, ssh sur port 23, etc.)

Ainsi, un serveur (un ordinateur que l'on contacte et qui propose des services tels que FTP, Tel net, ...) possède des numéros de port fixes auxquels l'administrateur réseau a associé des services. Ainsi, les ports d'un serveur sont généralement compris entre 0 et 1023 (fourchette de valeurs associées à des services connus).

Du côté du client, le port est choisi aléatoirement parmi ceux disponibles par le système d'exploitation. Ainsi, les ports du client ne seront jamais compris entre 0 et 1023 car cet intervalle de valeurs représente les ports connus.

III.5.5. Quelques numéros de port

Numéros de port

Protocoles utilisés

Services

 
 
 

13

TCP et UDP

Date et heure

21

TCP

FTP

22

TCP et UDP

SSH

23

TCP

TELNET [on trouve parfois des modems routeurs en TELNET

25

TCP

SMTP, envoie d'e-mail

53

TCP et UDP

DNS

67

TCP et UDP

DHCP [gestion automatique des adresses IP d'un réseau

80

TCP et UDP

HTTP

110

TCP et UDP

POP3 [lecture des courriers]

119

TCP

NNTP, Lecture de news groupes

123

TCP et UDP

NTP Network time Protocol pour la synchronisation de l'heur

Tableau n * 3 : Listant quelques numéros des ports TCP et UDP

III.6. Les protocoles normalisés orientés connexion et non orientés connexion

Relativement aux protocoles IP de la couche réseau, le protocole TCP / IP de la couche transport ont un rôle de fiabilisation de communication entre deux extrémités. Avec la couche transport, on aborde le domaine de communication de bout en bout indépendante de l'état du sous réseau.

Les paquets peuvent arriver à destination par des chemins différents et dans le désordre. Même si l'appellation courante la modélisation n'a retenu que TCP comme protocole de transport, il existe deux protocoles distincts suivant le type de réseau utilisé. Le protocole TCP fonctionne en mode connecté et assure un service fiable tan disque le protocole UDP assure un service de data gramme en mode non connecté sans aucune garantie de fiabilité.

III.6.1. Le protocole TCP

Le TCP est premier protocole de transport développé pour l'internent. Les premières spécifications ARPANET prévoyaient un transport de l'information types fiable indépendant du type et de l'état du réseau.

v' TCP un protocole de bout en bout : Les processus pairs des couches transport de deux équipements connectés dialoguent l'un avec l'autre sans rien connaître du réseau. C'est au niveau IP que l'on se préoccupe de la fragmentation et du réassemblage des paquets ;

1' Protocole orienté connexion.

La fiabilité du transport TCP dépend de l'établissement d'une connexion

entre les processus pairs qui veulent dialoguer. L'établissement d'une connexion est réalisé par l'échange d'informations telles que le numéro de port, le numéro de séquence et la taille de fenêtre.

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Source | Port Destination |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Numéro de Séquence |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Numéro d'Acquittement |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| |

| Offset| Réservé |R|C|S|S|Y|I| Fenêtre |

| | |G|K|H|T|N|N| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Pointeur Urgent |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Remplissage |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Données |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Fig. n* 15 : Entête TCP

Les champs les plus importants ici sont le port source, et destination, qui disent à quel service le paquet est destiné (d'où il vient, dans le cas de paquets de réponses). Les numéros de séquence et d'acquittement sont utilisés pour garder

les paquets dans l'ordre, et pour dire à l'autre bout quels paquets ont été

reçus.

Les labels ACK, SYN, RST et FIN sont des bits utilisés pour négocier l'ouverture (SYN), l'acquittement (ACK) et la fermeture (RST ou FIN) des connexions.

À la suite de cet en-tête vient le message réel que l'application a envoyé (le corps du paquet). La taille d'un paquet IP normal est au maximum de 1500 octets. Ce qui veut dire que la place maximum réservée aux données est 1460 octets (20 octets pour l'en-tête IP, et 20 autres pour l'en-tête TCP). Soit, plus de 97%.

III.6.2. Fonctionnement du TCP

D'après le format du message TCP, on peut résumer le fonctionnement de la couche transport de la modélisation TCP/IP en quatre points. Le protocole TCP de la couche transport :

> segmente les données des applications,

> établit une connexion de bout en bout,

> émet les segments d'un hôte à l'autre,

> assure la fiabilité du transport des segments entre les hôtes connectés. III.6.2.1. La segmentation des données

La fonction de transport est effectuée segment par segment de façon autonome. Plusieurs applications peuvent émettre leurs segments successivement. Ces segments peuvent avoir un ou plusieurs destinataires.

III.6.2.2. l'établissement de la connexion

Etant donné que ce processus de communication, qui se fait grâce à une émission de données et d'un accusé de réception, est basé sur un numéro d'ordre (appelé généralement numéro de séquence), il faut que les machines émettrices et réceptrices (client et serveur) connaîssent le numéro d'ordre initial de l'autre machine.

L'établissement de la connexion entre deux applications se fait souvent selon le schéma suivant :

> Les ports TCP doivent être ouverts

> L'application sur le serveur est passive, c'est-à-dire que l'application est à l'écoute, en attente d'une connexion

> L'application sur le client fait une requête de connexion sur le serveur dont l'application est en ouverture passive. L'application du client est dite "en ouverture active"

Les deux machines doivent donc synchroniser leurs séquences grâce à un mécanisme communément appelé three ways handshake (poignée de main en trois temps), que l'on retrouve aussi lors de la clôture de session.

Ce dialogue permet d'initier la communication, il se déroule en trois temps, comme sa dénomination l'indique :

> Dans un premier temps la machine émettrice (le client) transmet un segment dont le drapeau SYN est à 1 (pour signaler qu'il s'agit d'un segment de synchronisation), avec un numéro d'ordre N, que l'on appelle numéro d'ordre initial du client

> Dans un second temps la machine réceptrice (le serveur) reçoit le segment initial provenant du client, puis lui envoie un accusé de réception, c'est-à-dire un segment dont le drapeau ACK est à 1 et le drapeau SYN est à 1 (car il s'agit là encore d'une synchronisation). Ce segment contient le numéro d'ordre de cette machine (du serveur) qui est le numéro d'ordre initial du client. Le champ le plus important de ce segment est le champ accusé de réception qui contient le numéro d'ordre initial du client, incrémenté de 1

> Enfin, le client transmet au serveur un accusé de réception, c'est-à-dire un segment dont le drapeau ACK est à 1, dont le drapeau SYN est à zéro (il ne s'agit plus d'un segment de synchronisation). Son numéro d'ordre est incrémenté et le numéro d'accusé de réception représente le numéro d'ordre initial du serveur incrémenté de 1

Fig. N * 16 : Etablissement de la connexion TCP III.6.2.3. Contrôle de flux

Un contrôle de flux est nécessaire pour prévenir la congestion du

transfert :

> Un serveur performant peut générer plus de trafic que le réseau ne peut en supporter.

> Un serveur peut être sollicité par un nombre très élevé de clients.

III.6.2.4. Fenêtrage

Un dispositif de fenêtrage de l'acquittement a été implanté pour préserver la bande passante. Si l'émetteur devait attendre un acquittement après l'émission de chaque segment, la qualité de la transmission serait dégradée.

III.6.3. Le protocole UDP

Le protocole UDP est apparu avec le développement des réseaux locaux dont la fiabilité permet de s'affranchir des fonctions de contrôle. C'est un protocole minimum sans garantie de délivrance des messages et sans séquence ment.

III.6.3.1 Application

Le User Data Gram Protocol (UDP, en français protocole de data gramme utilisateur) est un des principaux protocoles de télécommunication utilisés par Internet. Il fait partie de la couche transport de la pile de protocole TCP/IP : dans l'adaptation approximative de cette dernière au modèle OSI

Le rôle de ce protocole est de permettre la transmission de données de manière très simple entre deux entités, chacune étant définie par une adresse IP et un numéro de port. Contrairement au protocole TCP, il fonctionne en mode non connecté : il n'existe pas de procédure de connexion préalable à l'envoi des données, et il n'y a pas de garantie de bonne livraison d'un data gramme à sa destination.

L'ordre d'arrivée des data grammes peut différer de l'ordre d'envoi. Il est également possible que des data grammes soient dupliqués. Les fonctions assurant la retransmission et le ré ordonnancement doivent être assurées par les protocoles de la couche supérieure si elles sont souhaitées.

L'intégrité des données est assurée par une somme de contrôle, l'utilisation de celle-ci est cependant facultative en IPv4 mais obligatoire avec IPv6.

Si un hôte n'a pas calculé la somme de contrôle d'un paquet émis, la valeur de celle-ci est fixée à zéro. La somme de contrôle inclut un pseudo entête qui inclut les adresses IP source et destination.

III.6.3.2 Structure d'un data gramme UDP

Le paquet UDP est encapsulé dans un paquet IP. Il comporte un entête suivi des données proprement dites à transporter.

Il contient les quatre champs suivants :

> Port Source : il indique depuis quel port le paquet a été envoyé. ;

> Port de Destination : il indique à quel port le paquet doit être envoyé.

> Longueur : il indique la longueur totale du segment UDP (en-tête et données). La longueur minimale est donc de 8 octets (taille de l'en-tête).

> Somme de contrôle : celle-ci permet de s'assurer de l'intégrité du paquet reçu quand elle est différente de zéro. Elle est calculée sur l'ensemble de l'en-tête UDP et des données, mais aussi sur un pseudo en-tête (extrait de l'en-tête IP. la présence de ce pseudo en-tête, interaction entre les deux couches IP et UDP, est une des raisons qui font que le modèle TCP/IP ne s'applique pas parfaitement au modèle OSI

III.6.3.3. Utilisation

Il est utilisé quand il est nécessaire soit de transmettre des données très rapidement, et où la perte d'une partie de ces données n'a pas grande importance, soit de transmettre des petites quantités de données, là où la connexion « 3-WAY » TCP serait inutilement coûteuse en ressources.

Par exemple, dans le cas de la transmission de la voix sur IP, la perte occasionnelle d'un paquet est tolérable dans la mesure où il existe des mécanismes de substitution des données manquantes, par contre la rapidité de transmission est un critère primordial pour la qualité d'écoute.

Exemples d'utilisation :

les protocoles DNS, TFTP, le streaming

III.7. Adressage

III.7.1. Adressage IP (Logique)

L'adresse IP se compose :

> d'un numéro de réseau

> d'un numéro d'identification de la machine

En général, elle est codée sur quatre octets. On la représente par quatre chiffres de 0 à 255 séparés par un point. Il ne peut y avoir qu'une seule adresse pour chaque machine du réseau. On répertorie les adresses en différentes "classes". Une classe permet de définir le nombre de machines dans un réseau. Il existe plusieurs classes, voici les plus importantes :

> Dans la "Classe A", l'identifiant réseau est compris entre 1 et 126 avec un masque de sous réseau 255.0.0.0. Cela signifie que le premier octet est réservé pour le numéro du réseau et les trois autres octets définissent le numéro des machines. Il s'agit dans ce cas d'un réseau comportant énormément d'ordinateurs allant de

1.0.0.0 à 126.0.0.0. lorsque les derniers octets sont des zéros, cela indique qu'il s'agit d'un réseau et non d'un ordinateur.

Dans cette classe A7 nous aurons 27 = réseaux dans le monde par ce que le réseau 0.0.0.0 n'existe pas (8bits - 1) = 7 bits 27 128. D'ou le nombre de machine sera (3X octets) = 3 X 8 = 24 bits, alors pour calculer le nombre total de machine (224 - 2) = 16777214 machines. Parce que 0.0.0.0 n'existe pas et la machine 1.1.1.1 c'est l'adresse de diffusion.

> Dans la "Classe B", l'identifiant réseau est compris entre 128 et 191 avec un masque de sous réseau 255.255.0.0. Ici, deux octets sont réservés pour le numéro du réseau et deux autres pour les numéros de machine. Ainsi, le nombre disponible de réseau pour la cette classe est déterminé par 27.27 = 214 = 16384 des réseaux disponibles allant de 128.0.0.0 à 191.255.0.0 comme machines contenues. Cela étant, nous trouvons le nombre de machines disponibles par 216 _ 2 = 65534.

> Dans la "Classe C", l'identifiant réseau est compris entre 192 et 254 avec un masque de sous réseau 255.255.255.0. Dans ce cas, trois octets définissent le numéro du réseau et un seul octet est réservé aux ordinateurs. Cette classe autorise environ deux millions de réseaux et 254 ôtes par réseau.

> Les adresses de Classe D sont réservées aux groupes de diffusion

multipoint les adresses de classe D valent 224.0.0.0 à 239.255.255.255. un groupe de diffusion peut contenir un, plusieurs ou aucun ôte.

> Les adresses de classe E sont expérimentales. La classe E n'est pas destinée à un emploi généralise car elle est réservée à une future utilisation. Ainsi les adresses vont de 240.0.0.0 à 255.255.255.255 mais par conséquent ne sont pas utilisées

III.7.2. Adresse MAC (Physique)

Chaque machine connectée au réseau est munie d'un numéro de 6 octets c'est à dire 6 X 8 = 48 bits (en mode alphanumérique). Ce numéro identifie de façon unique à travers le monde une machine à partir de la fabrication de la carte réseau et est appelée adresse physique ou MAC (Adresse matérielle ou Ethernet).

.

Chapitre 4. REALISATION D'UN UTILITAIRE D'ANALYSE DE TRAFIC
D'UNE INTERFACE RESEAU

IV.1. Introduction

Il ne fait désormais plus aucun doute que l'informatique est la révolution la plus importante et la plus innovante qui a marqué la vie de l'humanité moderne. En effet, les logiciels informatiques proposent maintenant des solutions à tous les problèmes de la vie, aussi bien dans des domaines professionnels que pour des applications personnelles. Et leurs méthodes de conception et de développement ont vu l'avènement d'autant de technologies qui facilitent leur mise en place et leurs donnent des possibilités et des fonctionnalités de plus en plus étendues1. Aucun domaine n'est resté étranger à cette stratégie qui offre tant des services pour les entreprises que les particuliers.

Mais au-delà de l'utilisation individuelle de l'informatique, sur tout la mise en commun des ordinateurs peut être vu comme un ensemble de ressources mises en place pour offrir un ensemble de services.

C'est l'évolution des services et des trafics qui en découlent qui a piloté, dans les dernières années, l'évolution technologique permettant d'augmenter la capacité et les fonctionnalités des ressources des réseaux.

Bien que la croissance d'une entreprise soit généralement souhaitée, elle génère un certain nombre des contraintes supplémentaires pouvant réduire les performances d'un réseau : augmentation rapide du nombre des utilisateurs et des clients, volume accru du trafic généré par chaque client, applications toujours plus complexes et fichiers plus volumineux.

Tous ces facteurs peuvent contribuer à l'augmentation du trafic d'un réseau et, par conséquent, à en altérer les performances. C'est dans ce cadre d'idées que s'inscrit notre réalisation.

IV.2. Analyse conceptuelle

L'analyse conceptuelle débouche bien entendu sur la mise en oeuvre technique accompagnée de la réalisation du support visuel.

IV.2.1. Analyse préalable

1. L'analyse de l'existant

Nous savons qu'il existe plusieurs utilitaires d'analyse et contrôle du trafic réseau tels que :

> NMAP 11 : Conçu pour qu'il puisse rapidement scanner de grands réseaux mais fonctionne mais fonctionne aussi pour une cible unique. NMAP innove en utilisant des paquets IP bruts (raw paquet) pour déterminer quels sont les ôtes actifs sur le réseau, quels services (y compris le nom de l'application et la version). souvent utilisé pour les audites de sécurités mais des nombreux gestionnaires de système et réseau l'apprécient pour des taches de routine

comme les inventaires de réseau. La gestion de mise à jour planifiée ou la surveillance des ôtes et services actifs.

> ComView : est destiné aux administrateurs de réseaux locaux, aux professionnels responsables de la sécurité et aux programmeurs réseau. Plus généralement, il intéresse quiconque a besoin d'une image complète du trafic transitant par un PC ou un segment de réseau local. ComView collecte les informations relatives aux données circulant sur un réseau local. Il les décode et les analyse. Il donne la liste des connexions, adaptateurs pour lignes commutées compris. Il surveille les statistiques IP vitales et examine chacun des paquets transmis. Ces derniers sont décodés jusqu'à leur couche la plus basse avec analyse complète des principaux protocoles IP : TCP, UDP et ICMP. Un accès complet aux données brutes est également possible. Les paquets saisis peuvent être sauvegardés dans des fichiers en vue d'une future analyse. Un système de filtrage très souple permet d'ignorer les paquets qui ne sont pas nécessaires. Les règles de configuration sont, si besoin est, sauvegardées et rechargées ultérieurement

IV.2.2. Cahier des charges

Un cahier des charges est un document contractuel décrivant ce qui est attendu du maître d'oeuvre par le maître d'ouvrage. Il s'agit donc d'un document décrivant de la façon la plus précise possible avec un vocabulaire simple, des besoins aux quels le maître d'oeuvre doit répondre dans la mesure où seul le maître d'oeuvre est réellement compétent pour proposer une solution technique appropriée.

Le cahier des charges doit préférentiellement faire apparaître le besoin de manière fonctionnelle, indépendamment de toute solution technique, sauf à préciser l'environnement technique dans le quel la solution doit s'insérer.

IV.2.2.1. Cahier des charges fonctionnel

Un cahier des charges fonctionnelles est un document par le quel une entité à l'origine de la demande ou un utilisateur exprime son besoin en terme de fonctions, des services et de contraintes.

Nous allons l'élaborer en nous considérant nous même comme étant la maîtrise d'ouvrage (demandeur ou utilisateur) et en même temps, la maîtrise d'oeuvre (personne ou une entité qui réalise le projet afin de répondre à la demande).

Ainsi, il nous nous est donc nécessaire d'énumérer un certain nombre des besoins aux quels l'application doit répondre :

> L'application devra vous informer de toutes les activités sur le réseau en temps réel;

> L'application devra déterminer l'interface ayant occupé la bande passante pour un temps bien déterminé en spécifiant son adresse IP;

> L'application devra préciser le nombre de paquets entrant et sortants issus d'une interface donnée.

IV.2.2.2. Cahier des charges opérationnel

Le cahier des charges opérationnel est un document qui prend naissance à partir dune expression de besoin. Il nous permet donc de présenter les travaux à réaliser, d'estimer les coüts de charges et de planifie.

A. Faisabilité

L'objectif de ce projet est de réaliser un utilitaire d'analyse de trafic dune interface réseau. Notre public concerne étant les administrateurs réseaux, les entreprises, voir même les apprenants trouveront leur satisfaction en utilisant cette application. Pour y parvenir, nous aurons :

> Premièrement à développer un logiciel dit utilitaire d'analyse de trafic dune interface réseau qui sera en fait installe sur la machine serveur,

> Deuxièmement être en possession de deux ou plusieurs machines

connectées en réseau pouvant effectuer des échanges de données.

> Troisièmement à définir le protocole entre le client et serveur qui doivent

communiquer. Une planification est nécessaire pour aboutir dans un délai bien

définit à la réalisation de ce projet.

B. Définition de la solution

La définition de notre solution sera orientée par les fonctionnalités décrites dans le cahier des charges fonctionnel. En fait, on identifiera pour chacune d'elle un responsable fonctionnel garant de la définition du contenu voulu. Comme c'est dans le cadre de notre travail de fin études, nous assurerons nous même toutes les responsabilités. Nous allons en suite associer à chaque fonctionnalité une durée, un délai et une charge en heure par jour. Dans notre contexte, le projet sera réalise dans un délai d'une année académique.

IV.2.2.3. Répartition des heures

Activité : Définition et organisation du projet

Taches

Nombre d'heure

Compréhension du contexte et analyse des besoins

50

Définition des cahiers des charges fonctionnels

20

Sous total

70

Activité : Recueil de données

Conception de l'application

300

Sous total

300

Activité : Traitement de données et analyse

Essai du logiciel

50

Sous total

50

Activité : Formalisation des résultats

Finalisation de l'opération

35

Rédaction du manuel d'utilisation

35

Sous total

70

Total général : 490

Tableau n* 4 : Répartition des heures

Le projet finalement sera étalé sur une période allant du 01/01/2009 au 02/10/2010 avec un délai de 490 heures de charge. Ainsi dans le contexte de ce travail, nous jouerons les rôles suivants :

> Responsable du projet : nous allons coordonner le projet et assurer la responsabilité de la réalisation du produit dans le délai attribué avec la qualité requise et le budget alloué ;

> Chef du projet opérationnel : nous aurons en charge la maîtrise oeuvre technique et responsable de tous les livrables techniques.

> Concepteur / designer : nous serons nous-mêmes concepteur de l'architecture interactionnelle en respectant les indications graphiques, ergonomiques et structurelle.

> Ergonome : nous nous chargerons aussi de récolter toutes les informations sur le comportement possible sur le futur utilisateur en travaillant avec le designer.

> Directeur artistique : nous jouerons le rôle du garant de la conception de la charge graphique avec le designer.

> Infographiste : en suivant les consignes du directeur artistique, nous allons réaliser les éléments graphiques avec les outils pour les quels, nous avons la maîtrise

> Ingénieur / développeur : en fonction de besoins déjà identifiés, nous allons

jouer le rôle de l'équipe de développement (découpage et intégration)

> Ingénieur réseau : nous aurons à administrer le réseau sur le quel notre

application va tourner (configuration des adresses IP, DNS, DHCP)

> Charger d'étude : nous attribuerons cette tâche au directeur de ce travail car il

nous aide à la conception et à l'évaluation de l'application.

IV.2.2.4. Estimation budgétaire

Il est fortement recommandé de présenter l'estimation budgétaire sous différentes formes afin de donner une visibilité globale sur les coûts engendrés. Vu l'envergure de notre projet, une estimation budgétaire des charges par travaux et activités que nous aurons à effectuer.

Fonctionnalité

Définition et organisation

Total heures et coûts

Activités : compréhension du contexte et analyse des besoins, définition des cahiers des
charges fonctionnels

Charge

70

70

Coût en USD / Heure

0.625

43.75$

Fonctionnalité

Recueil de données

Total heure et coûts

Activité : conception de l'application

Charge

300

300

Coût en USD/Heure

1.5

450$

Fonctionnalité

Traitement de données et analyse

Total heures et coûts

Activité : essai du logiciel

Charge

50

50

Coût en USD/Heure

1.5

75$

Fonctionnalité

Formation des résultats

 

Activité : finalisation de l'application et
rédaction du manuel d'utilisation

Charge

70

70

Coût en USD/Heure

0.625

43.75$

Total coûts en USD 612.5$

Imprévus

200

 

Total général du projet : 812.5 USD

Tableau n * 5: Estimation budgétaire

Le projet en général, nécessite un budget de 812.5 USD avec majoration pour ce qui concerne le test et validation. Dans toutes ces activités sont inclus les frais suivants les transports, communication, abonnement aux bibliothèques et consultations sur Internet etc....

IV.3. Développement

IV.3.1. Environnement de développement

Nous avons programmé l'utilitaire d'analyse de trafic d'une interface réseau en Visual Basic 6. Le choix de cet environnement de développement est dicté par sa simplicité d'usage et son intuitivité. L'ordinateur de développement est tout ordinateur pouvant exécuter Visual Studio 6. Dans notre cas nous avons utilisé un laptop de processeur Centrino Duo d'Intel 2 Ghz avec une mémoire centrale de 4Go.

IV.3.2. Structure de l'application

L'application comprend :

1. une interface utilisateur où l'administrateur de réseau, qui cherche à écouter le trafic sur une interface réseau particulière introduit l'adresse IPv4 de cette interface réseau : le code associé à l'interface utilisateur est dans le module de feuille frmTraficReseau.frm ;

2. des modules standard : qui contiennent des constantes, des procédures et des fonctions pouvant être utilisées dans l'ensemble de l'application. Ces modules standard recourent à certaines fonctions, procédures et constantes définies dans des bibliothèques de liaison dynamique.

IV.3.3. Déroulement de l'exécution

L'administrateur réseau introduit l'adresse IP dont il veut contrôler le trafic, puis clique sur le bouton « Activer l'écoute » pour activer l'écoute. Il peut désactiver l'écouter en cliquant sur le bouton « Désactiver l'écoute ».

Fig. 17 : listview

S'il y a du trafic réseau, il peut être visualisé dans une listview de l'onglet correspondant au protocole pour lequel l'écoute est réalisée.

Exemple de trafic concernant le protocole TCP

Fig. 18 : Exemple de trafic concernant le protocole TCP

Exemple de trafic concernant le protocole UDP

Fig. 19: Exemple de trafic concernant le protocole UDP

IV.3.4. Codes sources

Module de feuille frmTraficReseau.frm

' Ce code sniffe les paquets puis affiche les trames TCP/UDP/ICMP plus un routeur '################################################################## #######################

Public xSock As Long

Public Sub CreateSocketSniffe() ' socket en mode écoute pour le sniffeur

Dim Sock As Long, xSockAddr As SOCK_ADDR, wSada As WSA_DATA, E_Buffer As Long, S_Buffer As Long, LenBytes As Long

WSAStartup &H101, wSada

With xSockAddr

.sin_family = AF_INET

.sin_port = htons(4200)

.sin_addr.S_addr = inet_addr(txtip.Text)

End With

xSock = Sock

Sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)

If Sock = 0 Then MsgBox "erreur création sock": Exit Sub Else xSock = Sock If bind(Sock, xSockAddr, LenB(xSockAddr)) <> 0 Then MsgBox "erreur bind": FermerSocket (Sock)

E_Buffer = 1

If WSAIoctl(Sock, SIO_RCVALL, E_Buffer, Len(E_Buffer), S_Buffer, Len(S_Buffer), LenBytes, ByVal 0, ByVal 0) <> 0 Then MsgBox "WSAIoctl pas bon."

If WSAAsyncSelect(Sock, frmTraficReseau.hwnd, WM_USER + 1, FD_READ) < 0 Then FermerSocket Sock: MsgBox "Erreur de socket": Exit Sub

End Sub

Private Sub Command1_Click() 'active l'écoute

Command1.Enabled = False: Call SubClass(hwnd, True): Call CreateSocketSniffe End Sub

Private Sub Command2_Click() ' active ou désactive le routeur

Routeur = Not Routeur

If Command2.Caption = "routeur on" Then Command2.Caption = "routeur off" Else Command2.Caption = "routeur on"

End Sub

Private Sub Command3_Click() ' désactive l'écoute

Command1.Enabled = True: Call SubClass(hwnd, False): FermerSocket (xSock) End Sub

Private Sub Form_Load() ' chargement de 3 Treeview

ChargeTree 6, Frame1(0): ChargeTree 17, Frame1(1)

ChargeTree 1, Frame1(2): ChargeTree 2, Frame1(3)

Tree(2).Height = Frame1(3).Height

' partie qui donne l'ip local

Dim Buffer As INTERFACEINFO, StartupInfo As WSA_DATA, Sock As

Long

WSAStartup &H202, StartupInfo

Sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)

WSAIoctl Sock, SIO_GET_INTERFACE_LIST, ByVal 0, ByVal 0, Buffer, 1024, 0, ByVal 0, ByVal 0

txtip.Text = FonctionIp(Buffer.Info_Inter(0).Info_Addresse.AddresseLocal.sin_addr.S_addr) FermerSocket (Sock): Text1.Text = txtip.Text: txtRouteur(0).Text = txtip.Text: txtRouteur(1).Text = txtip.Text

End Sub

Sub ChargeTree(xIndex As Integer, xFrame As Frame) 'chargement d'une treeview Load Tree(xIndex)

Set Tree(xIndex).Container = xFrame

Tree(xIndex).Move 0, 50

Tree(xIndex).Visible = True

Tree(xIndex).ImageList = ImgLst

End Sub

Private Sub Form_Unload(Cancel As Integer): Call SubClass(hwnd, False): End Sub Private Sub mnData_Click() ' affiche les données

Dim StrData As String

On Error Resume Next ' on passe l' erreur de lecture des données quand treeview

est vide With Form2

Select Case SSTab1.Tab

Case 0: StrData = Tree(6).SelectedItem.Tag: .txt.Tag = Tree(6).Nodes.Item(Tree(6).SelectedItem.Index + 1).Tag

Case 1: StrData = Tree(17).SelectedItem.Tag: .txt.Tag = Tree(17).Nodes.Item(Tree(17).SelectedItem.Index + 1).Tag

Case 2: StrData = Tree(1).SelectedItem.Tag: .txt.Tag = Tree(1).Nodes.Item(Tree(1).SelectedItem.Index + 1).Tag

Case 3: StrData = Tree(2).SelectedItem.Tag: .txt.Tag = Tree(2).Nodes.Item(Tree(2).SelectedItem.Index + 1).Tag

End Select

.txt = StrData: .ZOrder 0: .Visible = True

End With End Sub Private Sub mnkill_Click() ' décharge et recharge une treeview, plus rapide que

.Clear

Select Case SSTab1.Tab

Case 0: Unload Tree(6): ChargeTree 6, Frame1(0): Label2(0).Caption = "TCP : 0": Label2(0).Tag = 0 ' TCP

Case 1: Unload Tree(17): ChargeTree 17, Frame1(1): Label2(1).Caption = "UDP : 0": Label2(1).Tag = 0 ' UDP

Case 2: Unload Tree(1): ChargeTree 1, Frame1(2): Label2(2).Caption = "ICMP :

0": Label2(2).Tag = 0 ' ICMP

Case 3: Unload Tree(2): ChargeTree 2, Frame1(3): Tree(2).Height = Frame1(3).Height:: Label2(4).Caption = "ROUTE : 0": Label2(4).Tag = 0 ' ROUTEUR End Select

End Sub

Private Sub Tree_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)

If Button = 2 Then PopupMenu gg ' menu du treeview

End Sub

Modules standard

Les différents modules standard utilisent des fonctions, procédures et constantes diverses codées par d'autres développeurs et définies dans des bibliothèques de liaisons dynamiques (dll)

1. Module Constantes.bas

Public Const AF_ INET = 2

Public Const IPPROTO_ IP = 0

Public Const FD_ READ = &H1

Public Const SOCK_RAW = 3

Public Const SIO_ RCVALL As Long = &H98000001

Public Const WSADESCRIPTION_ LEN = 256, WSASYS_STATUS_LEN = 128 Public Const WM_USER = &H400, GWL_WNDPROC = (-4)

Public Const SOCK_DGRAM = 2 Public Const IPPROTO_ RAW = 255 Public Const IP_ HDRINCL = 2 Public Const SOCK_STREAM = 1

2. Module FonctionsDiverses.bas

Private Const OFFSET_4 = 4294967296#, MAXINT_4 = 2147483647, OFFSET_2 = 65536, MAXINT_2 = 32767

Public Function UnsignedToLong(Value As Double) As Long

If Value < 0 Or Value >= OFFSET_4 Then Error 6 ' Overflow

UnsignedToLong = Value - IIf(Value <= MAXINT_4, 0, OFFSET_4)

End Function

Public Function LongToUnsigned(Value As Long) As Double

LongToUnsigned = Value + IIf(Value < 0, OFFSET_4, 0)

End Function

Public Function UnsignedToInteger(Value As Long) As Integer

If Value < 0 Or Value >= OFFSET_2 Then Error 6 ' Overflow

UnsignedToInteger = Value - IIf(Value <= MAXINT_2, 0, OFFSET_2)

End Function

Public Function IntegerToUnsigned(Value As Integer) As Long

IntegerToUnsigned = Value + IIf(Value < 0, OFFSET_2, 0)

End Function

Public Function LoWord(lngValue As Long) As Long

LoWord = lngValue And &HFFFF

End Function

Public Function HiNibble(bytValue As Byte) As Byte

HiNibble = (bytValue And &HF0) \ 16

End Function

Public Function IcmpCodeValeur(xType As Byte, xCode As Byte) As String

Select Case xType

Case IcmpType.[Destination Unreachable]

If xCode = IcmpCode.[Network Unreachable] Then IcmpCodeValeur = "Network Unreachable"

If xCode = IcmpCode.[Host Unreachable] Then IcmpCodeValeur = "Host

Unreachable"

If xCode = IcmpCode.[Protocol Unreachable] Then IcmpCodeValeur =

"Protocol Unreachable"

If xCode = IcmpCode.[Port Unreachable] Then IcmpCodeValeur = "Port

Unreachable"

If xCode = IcmpCode.[Fragmentation Needed] Then IcmpCodeValeur =

"Fragmentation Needed"

Case IcmpType.Redirect

If xCode = IcmpCode.[Redirect Network] Then IcmpCodeValeur =

"Redirect Network"

If xCode = IcmpCode.[Redirect Host] Then IcmpCodeValeur = "Redirect

Host"

If xCode = IcmpCode.[Redirect TOS Network] Then IcmpCodeValeur = "Redirect TOS Network"

If xCode = IcmpCode.[Redirect TOS Host] Then IcmpCodeValeur = "Redirect TOS Host"

Case IcmpType.[Time Exceeded]

If xCode = IcmpCode.[TTL Exceeded In Transit] Then IcmpCodeValeur = "TTL Exceeded In Transit"

If xCode = IcmpCode.[Reassembly Timeout] Then IcmpCodeValeur = "Reassembly Timeout"

Case IcmpType.[Parameter Problem]

If xCode = IcmpCode.[Problem With Option] Then IcmpCodeValeur = "Problem With Option"

Case Else: IcmpCodeValeur = "N/A"

End Select End Function Public Function IcmpTypeValeur(xType As Byte) As String

Select Case xType

Case IcmpType.[Echo Reply]: IcmpTypeValeur = "Echo Reply"

Case 1, 2, 7: IcmpTypeValeur = "Reserved"

Case IcmpType.[Destination Unreachable]: IcmpTypeValeur = "Destination Unreachable"

Case IcmpType.[Source Quench]: IcmpTypeValeur = "Source Quench"

Case IcmpType.Redirect: IcmpTypeValeur = "Redirect"

Case IcmpType.[Alternate Host Address]: IcmpTypeValeur = "Alternate Host Address"

Case IcmpType.[Echo Request]: IcmpTypeValeur = "Echo Request"

Case IcmpType.[Router Advertisement]: IcmpTypeValeur = "Router

Advertisement"

Case IcmpType.[Router Solicitation]: IcmpTypeValeur = "Router Solicitation" Case IcmpType.[Time Exceeded]: IcmpTypeValeur = "Time Exceeded"

Case IcmpType.[Parameter Problem]: IcmpTypeValeur = "Parameter Problem" Case IcmpType.[TimeStamp Reply]: IcmpTypeValeur = "Timestamp Request" Case IcmpType.[TimeStamp Request]: IcmpTypeValeur = "Timestamp Reply" Case IcmpType.[Information Request]: IcmpTypeValeur = "Information Request"

Case IcmpType.[Information Reply]: IcmpTypeValeur = "Information Reply"

Case IcmpType.[Address Mask Request]: IcmpTypeValeur = "Address Mask Request"

Case IcmpType.[Address Mask Reply]: IcmpTypeValeur = "Address Mask Reply"

Case 19: IcmpTypeValeur = "Reserved (security)"

Case 20, 21, 22, 23, 24, 25, 26, 27, 28, 29: IcmpTypeValeur = "Reserved (robustness experiment)"

Case IcmpType.[IP IX Trace Router]: IcmpTypeValeur = "TP IX Traceroute" Case IcmpType.[Conversion Error]: IcmpTypeValeur = "Conversion Error"

Case IcmpType.[Mobile Host Redirect]: IcmpTypeValeur = "Mobile Host

Redirect"

Case IcmpType.[IPv6 Where Are You]: IcmpTypeValeur = "IPv6 Where Are

You"

Case IcmpType.[IPv6 Here I Am]: IcmpTypeValeur = "IPv6 I Am Here"

Case IcmpType.[Mobile Registration Request]: IcmpTypeValeur = "Mobile Registration Request"

Case IcmpType.[Mobile Registration Reply]: IcmpTypeValeur = "Mobile Registration Reply"

Case IcmpType.[Domain Name Request]: IcmpTypeValeur = "Domain Name Request"

Case IcmpType.[Domain Name Reply]: IcmpTypeValeur = "Domain Name Reply"

Case IcmpType.[SKIP Algorithm Discovery Protocol]: IcmpTypeValeur = "SKIP Algorithm Discovery_protocol"

Case IcmpType.[IPsec Security Failures]: IcmpTypeValeur = "IPsec Security Failures"

Case Is > 40: IcmpTypeValeur = "Reserved"

End Select

End Function

3. Module Protocoles.bas

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal length As Long)

Private Declare Function ntohs Lib "ws2_32.dll" (ByVal netshort As Long) As Integer Public Routeur As Boolean, eIP As EnteteIp, eTCP As EnteteTcp, eUDP As EnteteUdp, eICMP As EnteteIcmp, ePS As PseudoEntete, zSock As Long

Public Sub Routes_Paquets(xProto As Byte, Donnee As String)

' on va router un paquet avec une nouvelle ip de destination

On Error Resume Next

'on active ou désactive la prise en charge du protocole pour le routage

If frmTraficReseau.OptionRouteur(2).Value = 0 Then If xProto = 1 Then xProto = 0 ' icmp

If frmTraficReseau.OptionRouteur(1).Value = 0 Then If xProto = 17 Then xProto = 0 ' udp

If frmTraficReseau.OptionRouteur(0).Value = 0 Then If xProto = 6 Then xProto = 0 ' tcp

' on charge dans notre nouvelle entête eip,l'entete ip qu'on vient juste de sniffer With eIP ' entête ip

.VerLen = &H45

.id = xEnteteIp.id

.Offset = xEnteteIp.Offset

.Ttl = xEnteteIp.Ttl

.SourceIp = inet_addr(frmTraficReseau.txtRouteur(0).Text) ' <-- nouvelle ip source

.DestIp = inet_addr(frmTraficReseau.txtRouteur(1).Text) '<-- nouvelle ip destination

.Protocol = xProto

.Tos = xEnteteIp.Tos

.Checksum = 0 ' <--- nouveau checksum à recalculé

.Checksum = UnsignedToInteger(Check.Checksum(VarPtr(eIP), LenB(eIP))) End With

If eIP.Protocol = 6 Or eIP.Protocol = 17 Then 'pseudo entete uniquement pour tcp ou udp

' pseudo entête uniquement pour le calcule du checksum

With ePS

.IPsource = eIP.SourceIp

.IPdestination = eIP.DestIp

.Protocol = eIP.Protocol

.Reserved = 0

End With

End If

Select Case xProto

Case 6 ' = TCP

ePS.Len = ntohs(LenB(eTCP) + UBound(xData)) '<- taille pseudoEntete

With eTCP

.Ack = xEnteteTcp.Ack

.DataOffset = xEnteteTcp.DataOffset

.Flag = xEnteteTcp.Flag

.PortDesti = xEnteteTcp.PortDesti

.PortSource = xEnteteTcp.PortSource

.Sequence = xEnteteTcp.Sequence

.UrgentPointer = xEnteteTcp.UrgentPointer

.Windows = xEnteteTcp.Windows

.Checksum = 0

.Checksum = UnsignedToInteger(CheckTcp(VarPtr(ePS), LenB(ePS), VarPtr(eTCP), LenB(eTCP), VarPtr(xData(0)), UBound(xData)))

End With

eIP.TotalLength = ntohs(LenB(eIP) + LenB(eTCP) + UBound(xData)) ' taille entête

ip

Case 17 ' = UDP

ePS.Len = ntohs(LenB(eUDP) + UBound(xData))

With eUDP ' on garde les mêmes valeurs du paquet qu'on à sniffer pour notre nouvelle entête

.SourcePort = xEnteteUdp.SourcePort

.DestPort = xEnteteUdp.DestPort

.udpChecksum = 0

.Len = ePS.Len ' <- nouvelle taille de l'entête udp

End With

'on calcule le checksum pour l'entete udp

eUDP.udpChecksum = UnsignedToInteger(CheckUdp(VarPtr(ePS), LenB(ePS), VarPtr(eUDP), LenB(eUDP), VarPtr(xData(0)), UBound(xData)))

eIP.TotalLength = ntohs((LenB(eIP) + LenB(eUDP) + UBound(xData))) ' taille entête ip

Case 1 ' = ICMP

With eICMP ' entête icmp , on garde les mêmes valeurs

.Type = xEnteteIcmp.Type

.Code = xEnteteIcmp.Code

.Identifiant = xEnteteIcmp.Identifiant

.Sequence = xEnteteIcmp.Sequence

.Checksum = xEnteteIcmp.Checksum

End With

eIP.TotalLength = ntohs(LenB(eIP) + LenB(eICMP) + UBound(xData)) ' taille entête ip

End Select

Dim xPaquet() As Byte ' on forge notre trame = Entête ip + datagramme(entête tcp ou icmp ou udp +data)

Select Case xProto

Case 6 'on forge un paquet TCP

ReDim xPaquet(LenB(eIP) + LenB(eTCP) + UBound(xData)) CopyMemory ByVal VarPtr(xPaquet(0)), ByVal VarPtr(eIP), LenB(eIP) CopyMemory ByVal VarPtr(xPaquet(LenB(eIP))), ByVal VarPtr(eTCP),

LenB(eTCP)

CopyMemory ByVal VarPtr(xPaquet(LenB(eIP) + LenB(eTCP))), ByVal VarPtr(xData(0)), UBound(xData)

Case 17 'on forge un paquet UDP

ReDim xPaquet(LenB(eIP) + LenB(eUDP) + UBound(xData)) CopyMemory ByVal VarPtr(xPaquet(0)), ByVal VarPtr(eIP), LenB(eIP) CopyMemory ByVal VarPtr(xPaquet(LenB(eIP))), ByVal VarPtr(eUDP),

LenB(eUDP)

CopyMemory ByVal VarPtr(xPaquet(LenB(eIP) + LenB(eUDP))), ByVal VarPtr(xData(0)), UBound(xData)

Case 1 ' on forge un paquet ICMP

ReDim xPaquet(LenB(eIP) + LenB(eICMP) + UBound(xData)) CopyMemory ByVal VarPtr(xPaquet(0)), ByVal VarPtr(eIP), LenB(eIP) CopyMemory ByVal VarPtr(xPaquet(LenB(eIP))), ByVal VarPtr(eICMP),

LenB(eICMP)

CopyMemory ByVal VarPtr(xPaquet(LenB(eIP) + LenB(eICMP))), ByVal VarPtr(xData(0)), UBound(xData)

End Select

' structure de destinantion

Call CreateSocket(VarPtr(xPaquet(0)), CInt(xProto))

Dim SockAddr As SOCK_ADDR

SockAddr.sin_zero(0) = 0

SockAddr.sin_family = AF_INET '<-famille protocole

If xProto = 6 Then SockAddr.sin_port = xEnteteTcp.PortDesti ' port de destination pour tcp

If xProto = 17 Then SockAddr.sin_port = xEnteteUdp.DestPort ' port de destination pour udp

' < rien pour icmp,pas de port >

SockAddr.sin_addr.S_addr = eIP.DestIp ' adresse de destination

' la fonction Sendto va nous permettre d'envoyer un paquet à une adresse spécifiée par la structure to de type sockaddr.

SendData = sendto(zSock, ByVal VarPtr(xPaquet(0)), UBound(xPaquet), 0, SockAddr, LenB(SockAddr))

If SendData > 0 Then

Debug.Print "envoi réussi"

' Compteur de paquet router

Select Case xProto ' mise à jour

Case 1

frmTraficReseau.OptionRouteur(2).Tag = frmTraficReseau.OptionRouteur(2).Tag + 1

frmTraficReseau.OptionRouteur(2).Caption = "ICMP (" & frmTraficReseau.OptionRouteur(2).Tag & ")"

Case 17

frmTraficReseau.OptionRouteur(1).Tag = frmTraficReseau.OptionRouteur(1).Tag + 1

frmTraficReseau.OptionRouteur(1).Caption = "UDP (" & frmTraficReseau.OptionRouteur(1).Tag & ")"

Case 6

frmTraficReseau.OptionRouteur(0).Tag = frmTraficReseau.OptionRouteur(0).Tag + 1

frmTraficReseau.OptionRouteur(0).Caption = "TCP (" & frmTraficReseau.OptionRouteur(0).Tag & ")"

End Select

frmTraficReseau.Label2(4).Tag = frmTraficReseau.Label2(4).Tag + 1: frmTraficReseau.Label2(4).Caption = "ROUTE : " & frmTraficReseau.Label2(4).Tag Else

Debug.Print "erreur envoi"

End If

Call ListePaquet(Donnee, CInt(xProto)) End Sub

Public Sub CreateSocket(adrs As Long, Proto As Integer)

Dim StartupInfo As WSA_DATA

WSAStartup &H202, StartupInfo

If Proto = 6 Or Proto = 1 Then zSock = socket(AF_INET, SOCK_RAW, Proto) Else zSock = socket(AF_INET, SOCK_DGRAM, 17)

setsockopt zSock, IPPROTO_IP, IP_HDRINCL, adrs, 4

End Sub

Sub ListePaquet(xData As String, Proto As Integer)

Dim Parent As Node, EnteteA As Node, EnteteB As Node, flags As Node, Titre As String, Info As String

If Proto = 6 Then Titre = "Entete Tcp" Else If Proto = 17 Then Titre = "Entete Udp" Else Titre = "Entete Icmp"

Info = FonctionIp(eIP.SourceIp) & " --> " & FonctionIp(eIP.DestIp) & Space(10) & IIf(Proto = 1, vbNullString, Mid(xData, 1, 70) & "...")

' on quitte si le protocole ne correspond pas à TCP Or UDP Or ICMP If Proto <> 6 And Proto <> 17 And Proto <> 1 Then Exit Sub

Set Parent = frmTraficReseau.Tree(2).Nodes.Add(): Parent = Info: Parent.Image =

1

Set EnteteA = frmTraficReseau.Tree(2).Nodes.Add(Parent, tvwChild): EnteteA = "Entete ip": EnteteA.Image = 2

Set EnteteB = frmTraficReseau.Tree(2).Nodes.Add(Parent, tvwChild): EnteteB = Titre: EnteteB.Image = 2

Parent.Tag = xData

EnteteA.Tag = xEnteteIp.SourceIp

With eIP ' on affiche les valeurs des entetes ip frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Source IP . . . " & FonctionIp(.SourceIp), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Destination IP . . . " & FonctionIp(.DestIp), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Time To Live (TTL) . . . . . . " & .Ttl, 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "IP Version . . . . . . . . .IPv" & HiNibble(.VerLen), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Identification . . . . . . . . . " & IntegerToUnsigned(.id), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "DataOffset. . . . . . . . ." & IntegerToUnsigned(ntohs(.Offset)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Checksum . . . . . . . . " & IntegerToUnsigned(ntohs(.Checksum)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteA, tvwChild, , "Longueur . . . . . . . . . " & ntohs(.TotalLength), 3

End With

Select Case Proto

Case 1

With eICMP ' ICMP

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Type. . . . . . . . . " & IcmpTypeValeur(.Type), 3

"

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Code & IcmpCodeValeur(.Type, .Code), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Checksum ." & IntegerToUnsigned(ntohs(.Checksum)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Identifiant. . ." & ntohl(.Identifiant), 3

End With

Case 6

With eTCP ' TCP

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Source Port . . . " & ntohs(.PortSource), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Dest Port ." & ntohs(.PortDesti), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB,

tvwChild, , "DataOffset

62

 
 

. . " & IntegerToUnsigned(ntohs(.DataOffset)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Ack. . . . . . . . ." & LongToUnsigned(ntohl(.Ack)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Sequence. . . . . . . . " & LongToUnsigned(ntohl(.Sequence)), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Urgent Pointer. . . . . . ." & ntohs(.UrgentPointer), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Windows. . . . . . . . ." & ntohs(.Windows), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Checksum . . . . . . . . " & IntegerToUnsigned(ntohs(.Checksum)), 3

End With

Case 17

With eUDP ' UDP

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Source Port . . ." & ntohs(.SourcePort), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Dest Port. . ." & ntohs(.DestPort), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Longueur. . ." & ntohs(.Len), 3

frmTraficReseau.Tree(2).Nodes.Add EnteteB, tvwChild, , "Checksum. . ." & IntegerToUnsigned(ntohs(.udpChecksum)), 3

End With

End Select

End Sub

4. Module sckEcoute.bas

Public Declare Function WSAIoctl Lib "ws2_32.dll" (ByVal s As Long, ByVal dwIoControlCode As Long, lpvInBuffer As Any, ByVal cbInBuffer As Long, lpvOutBuffer As Any, ByVal cbOutBuffer As Long, lpcbBytesReturned As Long, lpOverlapped As Long, lpCompletionRoutine As Long) As Long

Public Declare Function setsockopt Lib "ws2_32" (ByVal s As Long, ByVal level As Integer, ByVal optname As Integer, ByVal optval As Long, ByVal optlen As Long) As Integer

Public Declare Function sendto Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal lngLen As Long, ByVal flags As Long, sTo As SOCK_ADDR, ByVal tolen As Long) As Long

Public Declare Function socket Lib "ws2_32" (ByVal iAddressFamily As Long, ByVal iType As Long, ByVal iProtocol As Long) As Long

Public Declare Function bind Lib "wsock32" (ByVal s As Long, addr As SOCK_ADDR, ByVal namelen As Long) As Long

Public Declare Function closesocket Lib "wsock32" (ByVal s As Long) As Long Public Declare Function connect Lib "wsock32" (ByVal s As Long, Name As SOCK_ADDR, ByVal namelen As Integer) As Long

Public Declare Function inet_addr Lib "wsock32" (ByVal cp As String) As Long Public Declare Function recv Lib "wsock32" (ByVal s As Long, Buffer As Any, ByVal length As Long, ByVal flags As Long) As Long

Public Declare Function shutdown Lib "wsock32" (ByVal s As Long, ByVal how As Long) As Long

Public Declare Function WSACancelBlockingCall Lib "wsock32" () As Long Public Declare Function WSACleanUp Lib "wsock32" Alias "WSACleanup" () As Long

Public Declare Function WSAStartup Lib "wsock32" (ByVal wVersionRequired As Integer, wsData As WSA_DATA) As Long

Public Declare Function WSAAsyncSelect Lib "wsock32.dll" (ByVal s As Long, ByVal hwnd As Long, ByVal wMsg As Integer, ByVal lEvent As Long) As Integer

Public Declare Function listen Lib "wsock32.dll" (ByVal s As Long, ByVal backlog As Integer) As Integer

Public Declare Function htonl Lib "ws2_32.dll" (ByVal hostlong As Long) As Long Public Declare Function htons Lib "wsock32" (ByVal hostshort As Integer) As Integer Public Declare Function ntohl Lib "ws2_32.dll" (ByVal netlong As Long) As Long Public Declare Function ntohs Lib "ws2_32.dll" (ByVal netshort As Integer) As Integer

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, ByVal pSrc As Long, ByVal ByteLen As Long)

Public Declare Function gethostbyaddr Lib "ws2_32.dll" (addr As Long, ByVal addr_len As Long, ByVal addr_type As Long) As Long

Public xData() As Byte

Public xEnteteIp As EnteteIp, xEnteteTcp As EnteteTcp, xEnteteUdp As EnteteUdp, xEnteteIcmp As EnteteIcmp

Public Sub FermerSocket(Sock As Long) ' fermeture du socket

Dim xLng As Long

If Sock <> 0 Then xLng = shutdown(Sock, 2): xLng = closesocket(Sock): xLng = WSACancelBlockingCall: xLng = WSACleanUp: Sock = 0

End Sub

Public Function FonctionIp(xIp As Long) As String ' affiche en bon format l'ip

Dim Bytes(3) As Byte

Call CopyMemory(ByVal VarPtr(Bytes(0)), ByVal VarPtr(xIp), 4): FonctionIp = Bytes(0) & "." & Bytes(1) & "." & Bytes(2) & "." & Bytes(3)

End Function

Public Function InfoSource() As String ' fonction qui recupere le nom du domaine Dim ValHost As Long, xHost As Host, xIp As String

With Form2

.Label1.Caption = "Traitement en cours "

DoEvents: DoEvents

If .txt.Tag = vbNullString Then Exit Function

ValHost = gethostbyaddr(CLng(.txt.Tag), 4, 1)

If ValHost = 0 Then .Label1.Caption = vbNullString: .lbl.Caption = "aucune information disponible!": Exit Function

InfoSource = String(50, 0)

CopyMemory xHost, ByVal ValHost, LenB(xHost)

CopyMemory ByVal InfoSource, ByVal xHost.Nom, 50

.lbl.Caption = "Nom du domaine : " & Trim$(InfoSource)

.Label1.Caption = vbNullString

End With

End Function

Public Function Capture(Sock As Long) As String

ReDim Buffer(1499) As Byte

Dim xVal As Long, xProto As Integer, StrData As String, DataSize As Long, Offset As Integer

xVal = recv(Sock, Buffer(0), 1500, 0): If xVal < 0 Then Exit Function Else Buffer(xVal - 1) = 0

CopyMemory xEnteteIp, VarPtr(Buffer(0)), LenB(xEnteteIp)

Select Case xEnteteIp.Protocol ' on va lire le champ protocole dans l'entete ip Case 6 ' tcp

CopyMemory xEnteteTcp, VarPtr(Buffer(0)) + 20, LenB(xEnteteTcp): xProto = 6 frmTraficReseau.Label2(0).Tag = frmTraficReseau.Label2(0).Tag + 1:

frmTraficReseau.Label2(0).Caption = "TCP : " & frmTraficReseau.Label2(0).Tag Offset = 20 + (xEnteteTcp.DataOffset \ &H10) * 4

Case 17 ' udp

CopyMemory xEnteteUdp, VarPtr(Buffer(0)) + 20, LenB(xEnteteUdp): xProto = 17 frmTraficReseau.Label2(1).Tag = frmTraficReseau.Label2(1).Tag + 1:

frmTraficReseau.Label2(1).Caption = "UDP : " & frmTraficReseau.Label2(1).Tag Offset = 20 + LenB(xEnteteUdp)

Case 1 ' icmp

CopyMemory xEnteteIcmp, VarPtr(Buffer(0)) + 20, LenB(xEnteteIcmp): xProto = 1

frmTraficReseau.Label2(2).Tag = frmTraficReseau.Label2(2).Tag + 1: frmTraficReseau.Label2(2).Caption = "ICMP : " & frmTraficReseau.Label2(2).Tag End Select

DataSize = xVal - Offset

If DataSize > 0 Then

ReDim xData(0 To DataSize)

CopyMemory ByVal VarPtr(xData(0)), ByVal VarPtr(Buffer(Offset)), DataSize: StrData = StrConv(xData, vbUnicode)

End If

On Error Resume Next

frmTraficReseau.Label2(3).Tag = frmTraficReseau.Label2(3).Tag + LenB(StrData): frmTraficReseau.Label2(3).Caption = "Données reçu : " & frmTraficReseau.Label2(3).Tag

Call Affiche(xProto, StrData)

If Routeur Then If xEnteteIp.SourceIp = inet_addr(frmTraficReseau.Text1.Text) Then Call Routes_Paquets(xEnteteIp.Protocol, StrData)

End Function

Sub Affiche(Proto As Integer, xData As String)

Dim Parent As Node, EnteteA As Node, EnteteB As Node, flags As Node, Titre As String, Info As String

If Proto = 6 Then Titre = "Entete Tcp" Else If Proto = 17 Then Titre = "Entete Udp" Else Titre = "Entete Icmp"

Info = FonctionIp(xEnteteIp.SourceIp) & " --> " & FonctionIp(xEnteteIp.DestIp) & Space(10) & IIf(Proto = 1, vbNullString, Mid(xData, 1, 70) & "...")

' on quitte si le protocole ne correspond pas à TCP Or UDP Or ICMP If Proto <> 6 And Proto <> 17 And Proto <> 1 Then Exit Sub

' pas grand chose à dire sur les treeview,on affiche les valeurs des champs des entetes

Set Parent = frmTraficReseau.Tree(Proto).Nodes.Add(): Parent = Info: Parent.Image = 1

Set EnteteA = frmTraficReseau.Tree(Proto).Nodes.Add(Parent, tvwChild): EnteteA = "Entete ip": EnteteA.Image = 2

Set EnteteB = frmTraficReseau.Tree(Proto).Nodes.Add(Parent, tvwChild): EnteteB = Titre: EnteteB.Image = 2

Parent.Tag = xData

EnteteA.Tag = xEnteteIp.SourceIp

' on affiche les valeurs des entetes ip

With xEnteteIp

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Source IP . . . . " & FonctionIp(.SourceIp), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Destination IP . . . . . " & FonctionIp(.DestIp), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Time To Live (TTL) . . . . . . . . . " & .Ttl, 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "IP Version . . . . . . . . .IPv" & HiNibble(.VerLen), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Identification . . . . . . . . . " & IntegerToUnsigned(.id), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "DataOffset. . . . . . . . ." & IntegerToUnsigned(ntohs(.Offset)), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Checksum . . . . . . . . . " & IntegerToUnsigned(ntohs(.Checksum)), 3

frmTraficReseau.Tree(Proto).Nodes.Add EnteteA, tvwChild, , "Longueur . . . " & ntohs(.TotalLength), 3

End With

Select Case Proto

Case 1

With xEnteteIcmp ' icmp

frmTraficReseau.Tree(1).Nodes.Add EnteteB, tvwChild, , "Type. . . . . . . . . " & IcmpTypeValeur(.Type), 3

"

frmTraficReseau.Tree(1).Nodes.Add EnteteB, tvwChild, , "Code & IcmpCodeValeur(.Type, .Code), 3

frmTraficReseau.Tree(1).Nodes.Add EnteteB, tvwChild, , "Checksum ." & IntegerToUnsigned(ntohs(.Checksum)), 3

frmTraficReseau.Tree(1).Nodes.Add EnteteB, tvwChild, , "Identifiant ." & ntohl(.Identifiant), 3

End With

Case 6

With xEnteteTcp ' tcp

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Source Port.

." & ntohs(.PortSource), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Dest Port. . . . . . . . . " & ntohs(.PortDesti), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "DataOffset. . . . . . . . ." & IntegerToUnsigned(ntohs(.DataOffset)), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Ack. . . . . . . . ." & LongToUnsigned(ntohl(.Ack)), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Sequence. . . . . . . . . " & LongToUnsigned(ntohl(.Sequence)), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Urgent Pointer . . . " & ntohs(.UrgentPointer), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Windows. . . . . . . . . " & ntohs(.Windows), 3

frmTraficReseau.Tree(6).Nodes.Add EnteteB, tvwChild, , "Checksum . . . . . . . . ." & IntegerToUnsigned(ntohs(.Checksum)), 3

End With

Case 17

With xEnteteUdp ' udp

frmTraficReseau.Tree(17).Nodes.Add EnteteB, tvwChild, , "Source Port. . . . . . . . ." & ntohs(.SourcePort), 3

frmTraficReseau.Tree(17).Nodes.Add EnteteB, tvwChild, , "Dest Port. . . . . . . . ." & ntohs(.DestPort), 3

frmTraficReseau.Tree(17).Nodes.Add EnteteB, tvwChild, , "Longueur. . . . . . . . ." & ntohs(.Len), 3

frmTraficReseau.Tree(17).Nodes.Add EnteteB, tvwChild, , "Checksum. . . . . . . . ." & IntegerToUnsigned(ntohs(.udpChecksum)), 3

End With

End Select

End Sub

5. Module Subclassing.bas

Option Explicit

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Public WndProc As Long

Public Sub SubClass(hwnd, Go As Boolean)

If Go Then WndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf NewWndProc): Exit Sub

If WndProc Then SetWindowLong hwnd, GWL_WNDPROC, WndProc End Sub

Public Function NewWndProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If msg = WM_USER + 1 Then If LoWord(lParam) = FD_READ Then Capture wParam

NewWndProc = CallWindowProc(WndProc, hwnd, msg, wParam, lParam) End Function

6. Module Type.bas

Public Type WSA_DATA

wVersion As Integer

wHighVersion As Integer strDescription(WSADESCRIPTION_LEN + 1) As Byte strSystemStatus(WSASYS_STATUS_LEN + 1) As Byte iMaxSockets As Integer

iMaxUdpDg As Integer

lpVendorInfo As Long

End Type

Public Type IN_ADDR
S_addr As Long

End Type

Public Type Host

Nom As Long

Aliases As Long

Type As Integer

Longueur As Integer

List As Long

End Type

Public Type SOCK_ADDR sin_family As Integer sin_port As Integer

sin_addr As IN_ADDR sin_zero(0 To 7) As Byte End Type

Public Type Inet_Adress
Byte4 As String * 1
Byte3 As String * 1
Byte2 As String * 1
Byte1 As String * 1

End Type

Public Type EnteteIp

VerLen As Byte

Tos As Byte

TotalLength As Integer

id As Integer

Offset As Integer

Ttl As Byte

Protocol As Byte

Checksum As Integer

SourceIp As Long

DestIp As Long

End Type

Public Type EnteteTcp

PortSource As Integer

PortDesti As Integer

Sequence As Long

Ack As Long

DataOffset As Byte

Flag As Byte

Windows As Integer

Checksum As Integer

UrgentPointer As Integer

End Type

Public Enum TcpFlag TF_FIN = 1 TF_SYN = 2 TF_RST = 4 TF_ PSH = 8 TF_ACK = 16 TF_URG = 32

End Enum

Public Type EnteteIcmp

Type As Byte

Code As Byte

Checksum As Integer

Identifiant As Integer

Sequence As Integer
End Type

Public Type EnteteUdp

SourcePort As Integer

DestPort As Integer

Len As Integer

udpChecksum As Integer End Type

' structure pseudo entete

Public Type PseudoEntete IPsource As Long IPdestination As Long Reserved As Byte Protocol As Byte

Len As Integer

End Type

Public Enum IcmpType

[Echo Reply] = 0

[Destination Unreachable] = 3 [Source Quench] = 4 [Redirect] = 5

[Alternate Host Address] = 6 [Echo Request] = 8

[Router Advertisement] = 9 [Router Solicitation] = 10 [Time Exceeded] = 11

[Parameter Problem] = 12 [TimeStamp Request] = 13 [TimeStamp Reply] = 14 [Information Request] = 15 [Information Reply] = 16 [Address Mask Request] = 17 [Address Mask Reply] = 18 [IP IX Trace Router] = 30 [Conversion Error] = 31 [Mobile Host Redirect] = 32 [IPv6 Where Are You] = 33 [IPv6 Here I Am] = 34

[Mobile Registration Request] = 35

[Mobile Registration Reply] = 36 [Domain Name Request] = 37 [Domain Name Reply] = 38

[SKIP Algorithm Discovery Protocol] = 39

[IPsec Security Failures] = 40 End Enum

Public Enum IcmpCode

[Network Unreachable] = 0 [Host Unreachable] = 1 [Protocol Unreachable] = 2 [Port Unreachable] = 3 [Fragmentation Needed] = 4 [Redirect Network] = 0

[Redirect Host] = 1

[Redirect TOS Network] = 2 [Redirect TOS Host] = 3

[TTL Exceeded In Transit] = 0 [Reassembly Timeout] = 1 [Problem With Option] = 0

End Enum

' type pour info interface(ip/masque/broadcast,flag) + constante

Public Type Sock_Addr_Info

AddresseLocal As SOCK ADDR

filler(0 To 7) As Byte

End Type

Public Type INTERFACE_INFO

Info_ Flags As Long 'Interface flags

Info Addresse As Sock Addr_ Info 'Interface addresse

Info_BroadcastAddresse As Sock Addr_ Info 'Broadcast addresse

Info_Netmask As Sock Addr_ Info 'Network mask

End Type

Public Type INTERFACEINFO

Info_Inter(0 To 7) As INTERFACE_INFO End Type

Public Const SIO_GET

_

INTERFACE

LIST As Long = &H4004747F

_

7. Module Verification.bas

Option Explicit

Private Declare Function ntohs Lib "ws2_32.dll" (ByVal netshort As Long) As Integer Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal length As Long)

Public Function Checksum(ByVal adrs As Long, ByVal length As Long) As Long

Dim i As Long, t As Long

For i = 1 To length Step 2

t = t + Read16(adrs): adrs = adrs + 2

Next

t = Int16(t): Checksum = l2i((Not t) And &HFFFF&)

End Function

Private Function Read16(ByVal adrs As Long) As Long

CopyMemory Read16, ByVal adrs, 2

End Function

Private Function i2l(ByVal i As Long) As Long

CopyMemory i2l, i, 2

End Function

Private Function l2i(ByVal i As Long) As Long

CopyMemory l2i, i, 2

End Function

Private Function Int16(ByVal Value As Long) As Long

Dim t(1) As Integer

CopyMemory t(0), Value, 4

Int16 = i2l(t(0)) + i2l(t(1))

End Function

Public Function HexB(ByVal b As Byte) As String

HexB = Hex(b)

HexB = String(2 - Len(HexB), "0") & HexB

End Function

Public Function CheckUdp(ByVal AdrsePs As Long, LenPs As Long, ByVal AdrseUdp As Long, LenUdp As Long, ByVal AdrsData As Long, LenData As Long) As Long

Dim Datagramme() As Byte

ReDim Datagramme(LenPs + LenUdp + LenData)

CopyMemory ByVal VarPtr(Datagramme(0)), ByVal AdrsePs, LenPs CopyMemory ByVal VarPtr(Datagramme(0)) + LenPs, ByVal AdrseUdp, LenUdp CopyMemory ByVal VarPtr(Datagramme(0)) + LenPs + LenUdp, ByVal AdrsData,

LenData

CheckUdp = Checksum(VarPtr(Datagramme(0)), UBound(Datagramme))

End Function

Public Function CheckIcmp(ByVal AdrsIcmp As Long, LenIcmp As Long, ByVal AdrsData As Long, LenData As Long) As Long

Dim Datagramme() As Byte

ReDim Datagramme(LenIcmp + LenData)

CopyMemory ByVal VarPtr(Datagramme(0)), ByVal AdrsIcmp, LenIcmp CopyMemory ByVal VarPtr(Datagramme(LenIcmp)), ByVal AdrsData, LenData CheckIcmp = Checksum(VarPtr(Datagramme(0)), UBound(Datagramme))

End Function

Public Function CheckTcp(ByVal AdrsePs As Long, LenPs As Long, ByVal AdrseTcp As Long, LenTcp As Long, ByVal AdrsData As Long, LenData As Long) As Long

Dim Datagramme() As Byte

ReDim Datagramme(LenPs + LenTcp + LenData)

CopyMemory ByVal VarPtr(Datagramme(0)), ByVal AdrsePs, LenPs

CopyMemory ByVal VarPtr(Datagramme(LenPs)), ByVal AdrseTcp, LenTcp CopyMemory ByVal VarPtr(Datagramme(LenPs + LenTcp)), ByVal AdrsData, LenData

CheckTcp = Checksum(VarPtr(Datagramme(0)), UBound(Datagramme))

End Function

CONCLUSION

Nous voici arrivés au terme de notre travail, nous avons atteint les objectifs que nous nous sommes assignés. Au cours de notre travail, la problématique était de trouver un moyen pouvant nous permettre de contrôler et d'analyser à temps le trafic issu des interfaces en activité sur le réseau.

Comme notre souci était de desceller le trafic suivant le protocole utilisé, nous avons pensé à réaliser un utilitaire d'analyse de trafic réseau d'une interface. Lequel utilitaire va permettre à ses utilisateurs de capturer le trafic de réseau sur n'importe quel ordinateur où tourne notre application. Pour bénéficier de cet avantage particulier, nous vous invitons donc à installer cette application sur votre réseau.

Pour terminer, nous vous signalons que cette oeuvre est un fruit de dur labeur de la pensée humaine pour l'administration réseau. Elle peut être marquée par des imperfections. Si tel est le cas, nous tenons a remercier davantage tous les lecteurs et chercheurs en particulier leurs suggestions et remarques constructives.

BIBLIOGRAPHIE

I OUVRAGES

1. José DORNOINE; les réseaux : Notions fondamentales, 2003, ENI.

2. Tamosoft, surveiller et analyser le trafic d'un réseau Ethernet

3. MCLEAN; Microsoft Windows serveur 2003 : mise en oeuvre, ad, initiation et maintenance d'une infrastructure réseau : examen 70 - 291; 2004; O'Reilly.

4. FRISH Aleen; bases de l'administration système; 2003; O'Reilly. Jean Luc Montegnier; Réseau d'entreprise par la pratique; Ed. Eyrolles

5. Lionel ceinturier; olivier Marin, Notes de cours client - serveur, Université Pierre et Marie curie, 2006

II. SYLLABUS ET NOTES DE COURS

1. BOIKA MAKILI, Télécommunication et réseaux, cours inédit G2 M.I UPN,

2. ENGOMBE WEDI, Atelier de Génie Logiciel, cours inédit G3 M.I UPN,

3. GABRIEL BOMBAMBO, Administration réseau, cours inédit L1 M.I UPN

III. WEBOGRAPHIE

1. http://www.google.com

2. http://www.tamosoft.com /

3. http://www.dreamlive.com /

4. http://www.vbfrance.com /

5. http://www.memoireonline.com /

6. http://www.wikipedia.org

7. http://www.yebet.be






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Entre deux mots il faut choisir le moindre"   Paul Valery