SlideShare une entreprise Scribd logo
1  sur  60
1
Ingénierie des protocoles de
communication
Haykal Tej
Inst. Sup. d’Informatique et des Technologies
de
Communication, Hammam Sousse
Université de Sousse
htej@gmx.de
2
Chapitre 1
Généralités sur les protocoles et
les méthodes de génie de
protocoles
Préambule
 Un protocole est un ensemble de règles qui gouvernent l'interaction
entre processus parallèles dans les systèmes distribués
 La conception de protocoles n'est pas une discipline à part, elle est liée
à la fois aux réseaux et à l'ingénierie des systèmes
 Décrire complètement et sans ambiguïté un protocole est difficile
 Prouver qu'un protocole est correct est une tâche encore plus ardue
=> Le but du cours n'est pas d'enseigner de nouveaux protocoles, mais de
montrer comment on peut (bien) les décrire
Protocoles de communication…
Autopsie d'un accident…
Accident du tunnel de Clayton, 1861
 un train peut entrer dans le tunnel si le sémaphore est vert
 en passant le sémaphore, le train le met au rouge automatiquement ; en cas de défaillance du
système, c'est l'opérateur qui agite un drapeau rouge
 c'est l'opérateur qui remet le sémaphore au vert quand il est sur que le train a quitter le tunnel
 deux télégraphes permettent aux opérateurs de s'échanger quelques messages
 « Train in tunnel »
 « Tunnel is clear »
 Pour plus de sécurité, un 3è message est prévu : "Has the train left the tunnel?"
A
B
Autopsie d'un accident…
Accident du tunnel de Clayton, 1861 : ce qui s'est passé
 Un train passe le sémaphore A (vert), mais le sémaphore ne passe pas au rouge.
 L'opérateur réagit : il envoie le message "Train in tunnel" et agite un drapeau rouge
pour arrêter les trains suivants.
 Cependant, un 2è train est arrivé trop vite et est passé au vert.
 Heureusement, le conducteur a entrevu le drapeau rouge in extremis.
 Un 3è train arrive et s'arrête
 L'opérateur envoie à nouveau le signal "Train in tunnel" pour avertir l'autre qu'il y a 2
trains dans le tunnel.
 Le protocole n'a pas prévu ce cas.
 Le problème pour l'opérateur A est maintenant de savoir quand les deux trains ont
quitté le tunnel afin d'autoriser le 3è à entrer.
 Pour alerter son collègue, l'opérateur A envoie le signal "Has the train left the tunnel?"
 Lorsque le premier train sort du tunnel, l'opérateur B répond "Tunnel is clear"
 Ne sachant pas si les 2 trains ont quitté le tunnel, l'opérateur A attend un certain temps,
puis autorise le 3è train à entrer.
 Malheureusement, le conducteur du 2è train, qui avait vu le drapeau, s'était arrêté dans
le tunnel. Après un certain temps de réflexion, il a même fait marche arrière…
=> 23 morts et 176 blessés
Autopsie d'un accident…
Accident du tunnel de Clayton, 1861 : conclusion
 Il est difficile d'établir la responsabilité de cet accident.
 A partir du moment où le 2è train est entré dans le tunnel, il n'y avait
plus moyen de récupérer la situation.
 L'ensemble des messages disponibles sur les télégraphes était
incomplet.
 Le bon sens des opérateurs n'était pas suffisant.
La réaction est toujours la même :
I could not imagine that could ever happen
Au début, beaucoup d'accidents étaient dus au manque de
moyens de communication, mais on a constaté ensuite qu'il
était surtout très difficile d'établir des règles non ambiguës
de communication.
Structure d'un protocole…
Pour définir un protocole, nous devons définir un ensemble
de règles :
 définir comment un message est encodé
 comment une transmission est démarrée et terminée, etc
Deux types d'erreurs sont difficiles à éviter :
 la conception d'un ensemble incomplet de règles (incomplétude)
 la conception de règles contradictoires (inconsistance)
Cela requiert :
 de définir tous les éléments essentiels du protocole
 une discipline pour les définir en séparant les éléments indépendants
La vraie difficulté vient du parallélisme. Le nombre de
scénarios est en général énorme et difficile à appréhender
Historique…
« Le génie logiciel, en tant que discipline informatique, est né en
octobre 1968 lors d’une conférence de l’OTAN à Garmisch-
Partenkirchen pour répondre à un problème qui devenait de
plus en plus évident : d’une part le logiciel n’est pas fiable,
d’autre part il est incroyablement difficile de réaliser dans les
délais prévus des logiciels satisfaisant leur cahier des charges »
⇒ discipline de l’ingénieur du logiciel, pour l’aider développer des
systèmes informatiques fiables, i.e., satisfaisant leur cahier des
charges, dans des délais raisonnables
⇒ « génie logiciel » comme génie chimique, génie électrique,
génie mécanique…
= ensemble des techniques, outils et méthodes visant à optimiser
et rationaliser la production du logiciel et son suivi
1.1. Pourquoi l'ingé nierie des logiciels
Example: auto-pilot
Problem:
“Design a part in auto-pilot that avoids collision with
other planes.”
Solution:
“When distance is 1km, give warning to other plane and
notify pilot. When distance is 300m, and no changes in
the course of other plane were noticed, go up to avoid
collision”
Problem with solution
Both planes have the same software. Both go up...
This happens in real software!
Some famous bugs
 NASA Space Rover, Intel floating point processor, etc.
Hard to predict all behaviours!
 US aircraft went to southern hemisphere and … flipped when
crossing the equator
 Air traffic controller: US to Britain.
 It never dealt with problem of 0 degrees longitude.
 Result: software “folded” Britain along Greenwich Meridian
 Software written for US F-16
 accidents when reused in Israeli aircraft flown over the Dear
Sea
(altitude < sea level)
 Year 2000 problem
Yet more such examples
NASA Space Shuttle software (in use since 1980)
 16 severity-level 1 software errors
 8 remained in code that was used in flights
 none encountered during flights
 total size - only 400,000 words
Remarque :
 les méthodes et techniques issues du génie logiciel sont
imposées par les autorités de certification pour le
développement de systèmes critiques (avionique,
nucléaire…)
 normes de développement de systèmes (DO178B…)
=> Pour continuer, quelques exemples de systèmes
complexes…
1.1. Pourquoi l'ingé nierie des logiciels
Exemples :
 Le Système de Navigation et d'Attaque d'un Rafale =
 2 millions de lignes de codes ADA
 50 équipements (numériques ou analogiques), 12
calculateurs
 Contraintes de temps < 1ms …
 combinatoire des modes et des états élevée
 Landing System : plus de 1014
états possibles
 Side Displays Management : plus de 2.108
états possibles
 1/2 million d’instructions pour une expérience de physique
des particules
 1 million d’instructions dans un central téléphonique
 50 millions d’instructions dans la navette spatiale
⇒Nécessité de rigueur dans la conception
1.1. Pourquoi l'ingé nierie des logiciels
Si l'on veut maîtriser le développement de systèmes à
logiciels fiables, il faut :
 rédiger de façon claire les spécifications du système (ce
que l'on attend)
=> comment être sûrs que ces spécifications sont complètes ?
=> comment être sûrs que ces spécification sont cohérentes ?
 valider/vérifier toutes les étapes du développements
=> a-t-on des moyens de validation/vérification (mathématiques)?
 de réutiliser des sous-systèmes déjà réalisés (mais pas
n'importe comment)
=> a-t-on des règles, des outils pour aider à la réutilisation ?
⇒ nécessité d’une base théorique et d’une approche
ingénierie (science de l’ingénieur) du logiciel
1.1. Pourquoi l'ingé nierie des logiciels
Pour maximiser la qualité d'un système il faut...
 Introduction d'un cycle de vie :
 identifier un ensemble d'étape importante dans le
développement, et des documents importants…
 analyse de besoins, spécification, conception,
programmation, intégration…
 ranger ses étapes dans le temps et les unes par
rapport aux autres
=> cycles en cascade, en V, en Y, en spirale…
1.2. Elé ments de terminologie
Pourquoi des techniques formelles…
⇒Techniques formelles :
 reposent sur des fondements mathématiques
 expression mathématique des objets du développement (le comportement
des systèmes)
 expression mathématique des propriétés
 expression mathématique des preuves
 permettent l'analyse (mathématique) du comportement d'un système
Remarque :
certains organismes imposent déjà l'utilisation de techniques mathématiques dans le
développement de systèmes informatiques :
→ dans le domaine de la sécurité : obligation d'utiliser des méthodes formelles
pour certains niveaux de sécurité
→ dans le ferroviaire… (métro Météor)
Qu'apportent les techniques formelles ?
Les bases mathématiques (logique, théorie des ensembles…) d’une
technique formelle fournissent les notions de
 consistance, cohérence
 à partir d'une spécification S, on ne peut pas déduire "a" et "non a"
Qu'est-ce qu'une technique formelle…
Programme
Spécification
globale
Besoins des
utilisateurs
Architecture et
spécification des
composants
activité de spécification
Axe du
développement
vérification de consistance
Une autre spécification
globale
vérification d'équivalence
Qu'apportent les techniques formelles ?
Les bases mathématiques (logique, théorie des ensembles…) d’une
technique formelle fournissent les notions de
 correction d'une implémentation par rapport à une spécification
 il est possible de décider si un programme P implémente une
spécification S
Qu'est-ce qu'une technique formelle…
Programme
Spécification
globale
Besoins des
utilisateurs
Architecture et
spécification des
composants
activité de spécification
activité de
conception
activité de
programmation
vérification vérification
Axe du
développement
Que n'apportent pas les techniques formelles ?
La démonstration de la validité de la spécification globale par rapport aux
besoins de l'utilisateur est impossible
=> parce que les besoins de l'utilisateurs ne sont pas exprimés en termes
mathématiques !
Qu'est-ce qu'une technique formelle…
Programme
Spécification
globale
Besoins des
utilisateurs
Architecture et
spécification des
composants
Preuves impossibles
validation
activité de spécification
Axe du
développement
En résumé, ce que peuvent et ne peuvent pas les techniques
formelles
Qu'est-ce qu'une technique formelle…
Programme
Spécification
globale
Besoins des
utilisateurs
Architecture et
spécification des
composants
Preuves possiblesPreuves impossibles
validation
activité de spécification
activité de
conception
activité de
programmation
vérification vérification
Axe du
développement
vérification
Quel est l'intérêt des techniques formelles ?
 précision des langages (due aux aspects mathématiques)
=> non ambiguïtés des notations
du fait du substrat mathématique, une spécification ou un programme n'a qu'une
seule signification
=> diminution du "bruit" dans les spécifications (on ne parle que de ce qui a un sens)
possibilité de détecter les informations inutiles dans une spécification
=> meilleure compréhension de la spécification par l'équipe de réalisation
=> meilleure compréhension et dialogue entre clients et concepteurs
interprétation "spécification formelle" vers "langage naturel" aisée
=> meilleure documentation des systèmes
=> meilleure réutilisation des composants
 augmentation de la phase de spécification mais diminution importante de la phase
de test, et diminution des corrections en maintenance
=> réduction globale des coûts du logiciel
=> augmentation de la fiabilité du logiciel
1. Qu'est-ce qu'une technique formelle…
Grande diversité des techniques formelles
 domaine d'étude de très nombreux centres de recherche ou grands groupes
industriels dans le monde (à l'origine européens)
 Se différencient selon les domaines d'applications
Différentes classifications possibles
 selon le substrat mathématique (support de la sémantique)
 logique, théorie des ensemble, théorie des automates, algèbre, λ-calcul...
 selon le domaine de prédilection
 base de données, systèmes réactifs…
 selon la nature du système de preuve sous-jacent
 incrémental, automatique...
 orientées propriétés ou orientées modèles
 à spécifications exécutables ou non
Bref panorama des techniques formelles…
Model Checking
 Denotes algorithmic analysis to check that a model (not necessarily finite
state) satisfies a specified property
 In logic, “model” denotes a structure over which formulas are interpreted
 “Model checking” checks (preferably automatically) whether a given
formula holds in a given model
25
Analyse de modè les, Model Checking
byte n;
proctype Aap() {
do
:: n++
:: noot!MIES
od
}
Modèle M
[] (n<3)
Propriété φ
Analyseur
Espace d’états
OUI
Propriété
satisfaite
NON,
+ contre_exemple
ϕ=|M
Explosion d’états.
Overview of Automated Verification
Answer +
Counter-example
Answer +
Counter-example
SW/HW
artifact
SW/HW
artifact
Correctness
properties
Correctness
properties
Temporal
logic
Temporal
logic
Model of
System
Model of
System
Model
Extraction
Model
Extraction TranslationTranslation
Checker
Engine
Checker
Engine
abstractionabstraction
Correct?
Limitations
Appropriate for control-intensive applications with
interesting interaction among components
 Data remains a problem
Decidability and complexity remains an obstacle
Falsification rather than verification
 Model, and not system, is verified
 Only stated requirements are checked: how to capture
correctness in a formal language?
 Bugs in the model checker
Finding suitable abstractions requires expertise
The “Methodology” Answer
Formal verification does not aim to
produce mathematical certainty of
correctness, but to provide a
methodology that, when followed,
produces more reliable and robust
systems
Protocoles de communication
Préambule
Un protocole est un ensemble de règles qui gouvernent
l'interaction entre processus parallèles dans les systèmes
distribués
La conception de protocoles n'est pas une discipline à part, elle
est liée à la fois aux réseaux et à l'ingénierie des systèmes
Décrire complètement et sans ambiguïté un protocole est difficile
Prouver qu'un protocole est correct est une tâche encore plus
ardue
=> Le but du cours n'est pas d'enseigner de nouveaux protocoles,
mais de montrer comment on peut (bien) les décrire
Protocoles de communication…
Protocoles de Communication …
 Protocole Réseau:
 Les protocoles peuvent etre implémentés en matériel et/ou logiciel.
 EIA-232-D est un protocole faisant partie de la couche physique
implémenté en materiel.
 Les protocoles TCP/IP sont implémentés en logiciel.
Protocol Data Units (PDU)
 Les entités communicantes échangent des fragments formattés selon le
protocole utilisé.
 Chaque fragment est une unité de donnée du protocole (Protocole Data Unit
ou PDU)
 Chaque PDU contient:
 Header (entête):
 Spécifie comment traiter et router le reste du PDU
 Message:
 le contenu du PDU
 Trailer (queue)
 sert en général pour le contrôle d’erreurs.
Header Message Trailer
Structure d'un protocole…
Pour définir un protocole, nous devons définir un ensemble
de règles :
 définir comment un message est encodé
 comment une transmission est démarrée et terminée, etc
Deux types d'erreurs sont difficiles à éviter :
 la conception d'un ensemble incomplet de règles (incomplétude)
 la conception de règles contradictoires (inconsistance)
Cela requiert :
 de définir tous les éléments essentiels du protocole
 une discipline pour les définir en séparant les éléments indépendants
La vraie difficulté vient du parallélisme. Le nombre de
scénarios est en général énorme et difficile à appréhender
Structure d'un protocole…
Les Cinq éléments d'un protocole
 Le service à fournir par le protocole
 Les hypothèses sur l'environnement dans lequel le protocole
s'exécute
 Le vocabulaire des messages utilisé par le protocole
 Le format de chaque message
 Les règles procédurales utilisées durant la communication
La 5è partie est la plus délicate à définir et la plus difficile à
vérifier.
Structure d'un protocole…
Un exemple
1. Le service :
 Transfert de fichiers de texte comme séquences de caractères via une ligne
téléphonique en se protégeant contre les erreurs de transmission
(supposée toutes détectables)
 Bidirectionnel : 2 transferts en sens opposés possibles
2. Les hypothèses :
 Composé de 2 utilisateurs et d'un canal de transmission
 On suppose que chaque utilisateur peut soumettre une requête et attendre
qu'elle s'exécute
 Le canal peut modifier les messages, mais pas les perdre, les dédoubler, les
réarranger, ni en insérer un autre.
3. Vocabulaire : trois messages
 ack : un message + un acquit positif
 nak : un message + un acquit négatif
 err : un message erroné
Structure d'un protocole…
Un exemple (suite)
4. Les formats :
 Chaque message a un champ de contrôle identifiant le type de
message et un champ de données avec le code de caractère :
Type PDU is
record
control : tag,
data : char
endrecord
Type tag is {ack, nak, err}
Structure d'un protocole…
Un exemple (suite)
5. Les règles procédurales :
Soit 2 entités A et B
1. Si la réception précédente est sans erreur, le prochain message sur le canal
opposé contiendra un acquit positif.
2. Si la réception précédente est erronée, le prochain message sur le canal
opposé contiendra un acquit négatif.
3. Si la réception précédente est erronée ou contient un acquit négatif, le
prochain message sera une retransmission du message émis
précédemment; sinon, ce sera un nouveau message
4. Si un utilisateur n'a pas de caractère à émettre, il peut envoyer un caractère
« null »
5. A démarre le transfert.
Structure d'un protocole…
Un exemple (suite)
Représentation des règles procédurales :
receive(i)
fetch(o)
fetch(o)
nak(o)
ack(i) errnak(i)
ack(o) ack(o) nak(o)
Émission
Réception
Attente
Action
Protocole correct ?
Structure d'un protocole…
Un exemple (suite)
Un scénario d'erreur…
Structure d'un protocole…
Notion vocabulaire et de format
Type PDU is
record
control : tag,
data : char
endrecord
Type tag is {ack, nak, err}
Exemple de codage :
record
control : bit,
data : ASCII char,
parity : bit
endrecord
+ des fonctions de calculs d'erreurs
Attention : il s'agit de
formats abstraits, et non d'un
codage
Structure d'un protocole…
Notion de règles procédurales
 Exprimées au niveau d'abstraction adéquat (pas de détail inutile
(codage))
 Doivent être complètes, consistantes et non ambiguës
=> nécessite un formalisme ou un langage approprié
 Il n'existe pas de méthode permettant de s'assurer a priori de la
complétude et de la consistance des règles
=> vérification a posteriori
 La difficulté vient du parallélisme
=> Les diagrammes de séquences ne conviennent pas. Ils permettent au
mieux d'illustrer un scénario d'erreur.
 Un protocole n'est pas correct dans l'absolu ; un protocole est
correct par rapport à un ensemble de propriétés (la spécification de
son service)
=> Nécessité de formaliser les propriétés ou le service attendu
Rè gles d'ingé nierie…
 Simplicité — Concevoir des protocoles légers
 Faciles à comprendre, à implanter, à maintenir à jour, et souvent plus performants
 Modularité — Une hiérarchie de fonctions
 Un protocole complexe doit être construit à partir de modules plus simples qui interagissent
de façon simple et bien définie
 Il ne faut pas mélanger des fonctions indépendantes (p. ex. contrôle d'erreur et contrôle de
flux) dans un même module
 Un protocole doit être indépendant du système d'exploitation, de l'encodage des données,
des formats d'adresse, des débits utilisés…
⇒ Facilite l'ouverture (portabilité), l'extensibilité ou le changement de modules...
 Un protocole doit être bien formé
 Pas de sur-spécification : pas de code non exécutable
 Pas de sous-spécification : pas de réception non prévue
 Borné : pas de débordement de tampon
 Auto-stabilisant : en cas d'erreur, retour dans un état stable après récupération
Rè gles d'ingé nierie…
 Robustesse
 Concevoir un protocole qui fonctionne bien dans des circonstances normales est
facile
 C'est l'inattendu qui défie le concepteur
 Il faut faire un minimum d'hypothèses sur l'environnement
 Un bon design doit résister à l'évolution (vitesse des lignes, taille du réseau, …)
 Il faut éviter l'ajout de fonctions inutiles qui pourraient s'avérer être un frein à une
évolution ultérieure.
 Consistance : un protocole peut être incorrect de plusieurs façons
 Interblocages (deadlocks) : toutes les entités sont bloquées en attente de
message
 Cycles non productifs (livelocks) : le système boucle indéfiniment sans
progresser
 Terminaisons impropres : sans satisfaire certaines conditions
Rè gles d'ingé nierie…
Pour finir : quelques règles de (bonnes conception)
1. Etre sûr que le problème est bien défini :
 il faut énumérer tous les critères et contraintes avant de commencer
2. Définir le service à fournir avant de concevoir le protocole
 le quoi avant le comment
3. Principe KISS (Keep It Simple, Stupid)
4. Séparer les fonctionnalités orthogonales.
5. Un bon design résout une classe de problèmes plutôt qu'un problème isolé.
 Ne pas se restreindre inutilement.
 Ne pas introduire de détails inutiles.
6. Procéder par prototypages de haut niveau avant d'implémenter
7. Implémenter, mesurer les performances, et si nécessaire optimiser.
8. Vérifier que l'implémentation est équivalente au prototype de haut niveau.
Une première classification…
 les énoncés en langue naturelle (anglais, français…) + des tables et des
schémas
 les plus courants
 mais les plus ambigues… et donc les plus risqués, et ne se prêtent pas à
l'analyse (de complétude, de correction…)
 seul l'œil humain peut analyser et corriger ces énoncés
 les techniques semi-formelles
 descriptions formatées (langue naturelle structurée)
 techniques graphiques à la UML…
=> modèles entités-relations
=> de plus en plus utilisées
=> souvent clairs et facilement compréhensibles
=> mais peut comporter encore des ambiguïtés (aux marges du formalisme), et
ne se prêtent toujours pas à l'analyse (de complétude, de correction…)
Les moyens de description de
protocoles…
Techniques de description de protocoles : quels besoins ?
 L'abstraction : permettre une description au bon niveau de détail
=> pas de détails superflus
=> capturer les aspects importants du protocole
 La modélisation des états et des logiques de changement d'états
 L'indéterminisme
=> au niveau de la spécification
=> du comportement de l'environement
Les moyens de description de
protocoles…
a b
Techniques de description de protocoles : quels besoins ?
 la causalité en actions (séquence)
 la concurrence entre actions (parallélisme)
 la synchronisation
 l'analysibilité (outil d'analyse)
 la non ambiguïté (une sémantique formelle)
=> il n'existe aucun formalisme répondant complètement à ces critères
Les moyens de description de
protocoles…
a b
a b
a’ b’
||
a a’
FSM simple
Exemple : état d'un processus
 inactif,
 en attente UC,
 en attente ressource,
 actif inactif
attente
UC ressource
attente
UC
attente
ressource
actif
Activation?
+UC? -UC?
Fin!
+UC?
+R?
-R?
-UC? -R?
+R?
Les moyens de description de
protocoles…
FSM simple avec parallélisme
Exemple : le protocole du tunnel de Clayton
Les moyens de description de
protocoles…
No train V1
Trainv1?
Train-in-tunnelv1!
Tunne-is-clearv1?
Has-the-train-left-the-tunnelv1?
No train V2
Train-in-tunnelv2?
Out-trainv2
Tunne-is-clearv2!
Has-the-train-left-the-tunnelv2?
Has-the-train-left-the-tunnelv2?
Has-the-train-left-the-tunnelv2?
Tunne-is-clearv2!
||
53
Conception et description à
couches
54
Conception à couches des protocoles
Un protocole contient normalement un grand nombre
de fonctionnalités
Pourrait être défini comme un seul programme, mais
ceci serait excessivement complexe
Le manque de modularité rendrait aussi difficile
l’échange de modules préfabriqués entre compagnies
55
Couches OSI
Réf:
http://www.irisa.fr/armor/lesmembres/cousin/Enseignement/Reseaux-generalites/Cours/4-3.htm
56
Modè le de ré fé rence Open Systems
Interconnection
57
Fonctionnement Global
58
Entité s OSI
N+1-Protocol Entity N+1-Protocol Entity
N-Service Provider
N+1-PDUs
N-SDUsN-SDUs
N-SAP N-SAP
SAP: Service Access Point
Entité s OSI
Notion de service : modèle en couches
 Le service est une définition fonctionnelle de l'interface entre couches
 Liste des primitives avec paramètres
 Ordonnancement permis des primitives
 Le service N est une abstraction des couches de protocole inférieures.
Entité s OSI
Notion d'environnement : abstraction des couches supérieures
et inférieures
 Centrage sur une couche N et un protocole N
 Les couches supérieures sont vues comme des utilisateurs abstraits
 Les couches inférieures sont vues comme un milieu de transmission. Il décrit
les hypothèses qui caractérisent ces couches (pertes, doublons possibles, …)
 Le protocole N décrit le fonctionnement des entités N (A et B) en réaction aux
primitives de service N et aux PDU N venant de l'entité homologue via le milieu
de transmission (médium).
 L'environnement d'un protocole est composé des utilisateurs et du milieu de
transmission.
61
Service Data Units (SDUs)
 Request : Une entité sollicite un service
 Indication : Une entité est informée d'une demande de service
 Response : Une entité a rendu le service, si possible
 Confirmation : Une entité est informée que le service a été rendu
SAP
REQUEST INDICATION
CONFIRMATION RESPONSE
Service
non confirmé
Service
confirmé
SAP
64
Mode non connecté (connectionless)
 1 seule phase:
 le transfert de données
 chaque unité de transfert de données est acheminée
indépendamment
 les entités communicantes ne mémorisent rien
("memoryless").
 les messages échangées sont auto-suffisants ("self-
content")
 pas d’acquittement de messages (no ack)
 exemple: datagrammes en IP
65
Mode Connecté (connection-oriented)
 3 phases :
 phase d'établissement de la connexion
 phase de transfert de données
 phase de libération de la connexion
 un contexte (réparti) est partagé par les membres de la connexion :
 par exemple : le numéro du paquet
 permet (facilite) le contrôle et la gestion du transfert de données :
 contrôle d'erreur, contrôle de flux, maintien en séquence, etc.
 les messages échangés comportent des informations qui ne sont
utilisables que grâce à la connaissance de ce contexte :
 par exemple : le numéro de paquet / la largeur de la fenêtre
coulissante
 Exemple de protocole utilisant le mode connecté:TCP

Contenu connexe

Tendances

Td gsm iit
Td gsm iitTd gsm iit
Td gsm iitTECOS
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitationAmel Morchdi
 
Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL  Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL Hajar EL GUERI
 
Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmissionFodé Ndiaye
 
PPP (Point to Point Protocol)
PPP (Point to Point Protocol)PPP (Point to Point Protocol)
PPP (Point to Point Protocol)Ali Jafar
 
Support de cours_et_t.d._reseaux_dacces
Support de cours_et_t.d._reseaux_daccesSupport de cours_et_t.d._reseaux_dacces
Support de cours_et_t.d._reseaux_daccesMido Lacoste
 
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPT
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPTGROUP03_AMAK:ERROR DETECTION AND CORRECTION PPT
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPTKrishbathija
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiquessarah Benmerzouk
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Trésor-Dux LEBANDA
 
Les transmissions et les supports
Les transmissions et les supportsLes transmissions et les supports
Les transmissions et les supportsFouad Root
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installationAyoub Rouzi
 
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnTrunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnYaya N'Tyeni Sanogo
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: PrincipeSouhaib El
 

Tendances (20)

Td gsm iit
Td gsm iitTd gsm iit
Td gsm iit
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitation
 
Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL  Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL
 
Chapitre 1 technique de transmission
Chapitre 1 technique de transmissionChapitre 1 technique de transmission
Chapitre 1 technique de transmission
 
POO
POOPOO
POO
 
PPP (Point to Point Protocol)
PPP (Point to Point Protocol)PPP (Point to Point Protocol)
PPP (Point to Point Protocol)
 
Support de cours_et_t.d._reseaux_dacces
Support de cours_et_t.d._reseaux_daccesSupport de cours_et_t.d._reseaux_dacces
Support de cours_et_t.d._reseaux_dacces
 
Création d'un botnet et défense
Création d'un botnet et défenseCréation d'un botnet et défense
Création d'un botnet et défense
 
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPT
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPTGROUP03_AMAK:ERROR DETECTION AND CORRECTION PPT
GROUP03_AMAK:ERROR DETECTION AND CORRECTION PPT
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiques
 
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
 
Les transmissions et les supports
Les transmissions et les supportsLes transmissions et les supports
Les transmissions et les supports
 
Chapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux EthernetChapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux Ethernet
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
 
Trunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpnTrunk VoiP Asterisk strongsawn openvpn
Trunk VoiP Asterisk strongsawn openvpn
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: Principe
 
Hdlc ppt..
Hdlc ppt..Hdlc ppt..
Hdlc ppt..
 
les réseaux d'opérateurs
les réseaux d'opérateurs les réseaux d'opérateurs
les réseaux d'opérateurs
 
Formation - WiFi
Formation - WiFiFormation - WiFi
Formation - WiFi
 
Codes Convolutifs
Codes ConvolutifsCodes Convolutifs
Codes Convolutifs
 

En vedette

Revista mentores junio 2011
Revista mentores junio 2011Revista mentores junio 2011
Revista mentores junio 2011uzcateguidf
 
Presentacion de informatica diapositivas felz navidad
Presentacion de informatica diapositivas felz navidadPresentacion de informatica diapositivas felz navidad
Presentacion de informatica diapositivas felz navidadfernandopdt
 
Participa en Andalucía - Iznájar (Córdoba)
Participa en Andalucía - Iznájar (Córdoba)Participa en Andalucía - Iznájar (Córdoba)
Participa en Andalucía - Iznájar (Córdoba)Antonio García Barroso
 
Epson work force-m100-genisformat.com
Epson work force-m100-genisformat.comEpson work force-m100-genisformat.com
Epson work force-m100-genisformat.comuzburo
 
S1 Terminologia Basicasobre Blogs
S1 Terminologia Basicasobre BlogsS1 Terminologia Basicasobre Blogs
S1 Terminologia Basicasobre BlogsIUTE.BAILADORES
 
Diseño Web Rápido, Seguro, Barato Desde $160
Diseño Web  Rápido, Seguro, Barato Desde $160Diseño Web  Rápido, Seguro, Barato Desde $160
Diseño Web Rápido, Seguro, Barato Desde $160Daniel Quinde
 
Introduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayIntroduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayChristian Heilmann
 
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014Jesús Vázquez González
 
Res 1480 modificatoria res 587 regimen académico
Res 1480 modificatoria res 587 regimen académicoRes 1480 modificatoria res 587 regimen académico
Res 1480 modificatoria res 587 regimen académicopuntodocente
 
Presentation Cendoo tech ger
Presentation Cendoo tech gerPresentation Cendoo tech ger
Presentation Cendoo tech gerCENDOO AG
 
Reporte del libro "la vida es sueño" Calderón De La Barca
Reporte del libro "la vida es sueño" Calderón De La BarcaReporte del libro "la vida es sueño" Calderón De La Barca
Reporte del libro "la vida es sueño" Calderón De La BarcaMarco Reyes
 
Rol del docente virtual y el aprendiz virtual
Rol del docente virtual y el aprendiz virtualRol del docente virtual y el aprendiz virtual
Rol del docente virtual y el aprendiz virtualJulian Gomez
 
Emotional branding
Emotional brandingEmotional branding
Emotional brandingRbk Asr
 

En vedette (20)

Presentacion
PresentacionPresentacion
Presentacion
 
Revista mentores junio 2011
Revista mentores junio 2011Revista mentores junio 2011
Revista mentores junio 2011
 
Presentacion de informatica diapositivas felz navidad
Presentacion de informatica diapositivas felz navidadPresentacion de informatica diapositivas felz navidad
Presentacion de informatica diapositivas felz navidad
 
Participa en Andalucía - Iznájar (Córdoba)
Participa en Andalucía - Iznájar (Córdoba)Participa en Andalucía - Iznájar (Córdoba)
Participa en Andalucía - Iznájar (Córdoba)
 
Epson work force-m100-genisformat.com
Epson work force-m100-genisformat.comEpson work force-m100-genisformat.com
Epson work force-m100-genisformat.com
 
2015 Digital Grapevine Chamber Directory
2015 Digital Grapevine Chamber Directory2015 Digital Grapevine Chamber Directory
2015 Digital Grapevine Chamber Directory
 
S1 Terminologia Basicasobre Blogs
S1 Terminologia Basicasobre BlogsS1 Terminologia Basicasobre Blogs
S1 Terminologia Basicasobre Blogs
 
Diseño Web Rápido, Seguro, Barato Desde $160
Diseño Web  Rápido, Seguro, Barato Desde $160Diseño Web  Rápido, Seguro, Barato Desde $160
Diseño Web Rápido, Seguro, Barato Desde $160
 
Kircher hermetico
Kircher hermeticoKircher hermetico
Kircher hermetico
 
Introduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayIntroduction to Hacking for University Hack Day
Introduction to Hacking for University Hack Day
 
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014
Reunión de socios PMI Madrid Spain Chapter 30-septiembre-2014
 
Informe final
Informe finalInforme final
Informe final
 
El libro en la Alta Edad Media
El libro en la Alta Edad MediaEl libro en la Alta Edad Media
El libro en la Alta Edad Media
 
HUELE A DIOS
HUELE A DIOSHUELE A DIOS
HUELE A DIOS
 
Res 1480 modificatoria res 587 regimen académico
Res 1480 modificatoria res 587 regimen académicoRes 1480 modificatoria res 587 regimen académico
Res 1480 modificatoria res 587 regimen académico
 
Presentation Cendoo tech ger
Presentation Cendoo tech gerPresentation Cendoo tech ger
Presentation Cendoo tech ger
 
Reporte del libro "la vida es sueño" Calderón De La Barca
Reporte del libro "la vida es sueño" Calderón De La BarcaReporte del libro "la vida es sueño" Calderón De La Barca
Reporte del libro "la vida es sueño" Calderón De La Barca
 
How to write references
How to write referencesHow to write references
How to write references
 
Rol del docente virtual y el aprendiz virtual
Rol del docente virtual y el aprendiz virtualRol del docente virtual y el aprendiz virtual
Rol del docente virtual y el aprendiz virtual
 
Emotional branding
Emotional brandingEmotional branding
Emotional branding
 

Similaire à Ch1

Protocoles d'acces aleatoires
Protocoles d'acces aleatoiresProtocoles d'acces aleatoires
Protocoles d'acces aleatoiresKONAN MARTIAL
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcoursedu
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreelyoussef essakhi
 
Decouvrir sysml au_college_xroulot_mars_2017
Decouvrir sysml au_college_xroulot_mars_2017Decouvrir sysml au_college_xroulot_mars_2017
Decouvrir sysml au_college_xroulot_mars_2017abdesselambennani1
 
Cours sur les circuits logiques câblés www.cours-online.com
Cours sur les circuits logiques câblés www.cours-online.comCours sur les circuits logiques câblés www.cours-online.com
Cours sur les circuits logiques câblés www.cours-online.commorin moli
 
Cours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatisesCours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatisesmorin moli
 
Poly reseau transparents_ppt
Poly reseau transparents_pptPoly reseau transparents_ppt
Poly reseau transparents_pptLily Babou
 
cours logiciels de simulation.docx
cours logiciels de simulation.docxcours logiciels de simulation.docx
cours logiciels de simulation.docxssuser0dbd4e
 
rapport_ecrit_final
rapport_ecrit_finalrapport_ecrit_final
rapport_ecrit_finalJean Ibarz
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptxHachmi3
 
Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...Valentin Traën
 
Logique floue application
Logique floue application Logique floue application
Logique floue application Arrow Arrow
 
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING HASSOU mohamed
 
rt-intro.pdf
rt-intro.pdfrt-intro.pdf
rt-intro.pdfSaid Ech
 
Fichier_Compétences
Fichier_CompétencesFichier_Compétences
Fichier_CompétencesYang Fei
 

Similaire à Ch1 (20)

Cours1.pptx
Cours1.pptxCours1.pptx
Cours1.pptx
 
Protocoles d'acces aleatoires
Protocoles d'acces aleatoiresProtocoles d'acces aleatoires
Protocoles d'acces aleatoires
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Decouvrir sysml au_college_xroulot_mars_2017
Decouvrir sysml au_college_xroulot_mars_2017Decouvrir sysml au_college_xroulot_mars_2017
Decouvrir sysml au_college_xroulot_mars_2017
 
Cours sur les circuits logiques câblés www.cours-online.com
Cours sur les circuits logiques câblés www.cours-online.comCours sur les circuits logiques câblés www.cours-online.com
Cours sur les circuits logiques câblés www.cours-online.com
 
Cours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatisesCours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatises
 
Poly reseau transparents_ppt
Poly reseau transparents_pptPoly reseau transparents_ppt
Poly reseau transparents_ppt
 
cours logiciels de simulation.docx
cours logiciels de simulation.docxcours logiciels de simulation.docx
cours logiciels de simulation.docx
 
rapport_ecrit_final
rapport_ecrit_finalrapport_ecrit_final
rapport_ecrit_final
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Cours algorithmique02
Cours algorithmique02Cours algorithmique02
Cours algorithmique02
 
Chapitre3.pptx
Chapitre3.pptxChapitre3.pptx
Chapitre3.pptx
 
Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...
 
Logique floue application
Logique floue application Logique floue application
Logique floue application
 
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING
SORTING SYSTEM (ITS PLC MHJ EDITION) PROGRAMMING
 
Metrique
MetriqueMetrique
Metrique
 
rt-intro.pdf
rt-intro.pdfrt-intro.pdf
rt-intro.pdf
 
Fichier_Compétences
Fichier_CompétencesFichier_Compétences
Fichier_Compétences
 
Cours ALGR M1.pdf
Cours ALGR M1.pdfCours ALGR M1.pdf
Cours ALGR M1.pdf
 

Plus de infcom

Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011infcom
 
Tpdba1
Tpdba1Tpdba1
Tpdba1infcom
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc mdinfcom
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 
Examens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BDExamens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BDinfcom
 
Examens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOMExamens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOMinfcom
 
Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil infcom
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1infcom
 
Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)infcom
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1infcom
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)infcom
 
Db aing td1v1
Db aing td1v1Db aing td1v1
Db aing td1v1infcom
 
Examens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocolesExamens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocolesinfcom
 
Tpdba3
Tpdba3Tpdba3
Tpdba3infcom
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htinfcom
 
Examens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOMExamens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOMinfcom
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 inginfcom
 

Plus de infcom (20)

Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011Cours admin-secure-4 avril-2011
Cours admin-secure-4 avril-2011
 
Tpdba1
Tpdba1Tpdba1
Tpdba1
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc md
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 
Examens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BDExamens Khaled Jouini ISITCOM ORACLE BD
Examens Khaled Jouini ISITCOM ORACLE BD
 
Examens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOMExamens Linda Jedidi ISITCOM
Examens Linda Jedidi ISITCOM
 
Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil Examens Iyed Ben Slimene ISITCOM Communication sans fil
Examens Iyed Ben Slimene ISITCOM Communication sans fil
 
Db aing td3v1
Db aing td3v1Db aing td3v1
Db aing td3v1
 
Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)Chap06 (méthodes de vérification)
Chap06 (méthodes de vérification)
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
Chap05 (buchi)
Chap05 (buchi)Chap05 (buchi)
Chap05 (buchi)
 
Db aing td1v1
Db aing td1v1Db aing td1v1
Db aing td1v1
 
Examens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocolesExamens heykel Tej ISITCOM ingénierie protocoles
Examens heykel Tej ISITCOM ingénierie protocoles
 
Tpdba3
Tpdba3Tpdba3
Tpdba3
 
Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
 
Examens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOMExamens Zaki Brahmi ISITCOM
Examens Zaki Brahmi ISITCOM
 
Ch4
Ch4Ch4
Ch4
 
Ch2
Ch2Ch2
Ch2
 
Ch3 ing
Ch3 ingCh3 ing
Ch3 ing
 

Ch1

  • 1. 1 Ingénierie des protocoles de communication Haykal Tej Inst. Sup. d’Informatique et des Technologies de Communication, Hammam Sousse Université de Sousse htej@gmx.de
  • 2. 2 Chapitre 1 Généralités sur les protocoles et les méthodes de génie de protocoles
  • 3. Préambule  Un protocole est un ensemble de règles qui gouvernent l'interaction entre processus parallèles dans les systèmes distribués  La conception de protocoles n'est pas une discipline à part, elle est liée à la fois aux réseaux et à l'ingénierie des systèmes  Décrire complètement et sans ambiguïté un protocole est difficile  Prouver qu'un protocole est correct est une tâche encore plus ardue => Le but du cours n'est pas d'enseigner de nouveaux protocoles, mais de montrer comment on peut (bien) les décrire Protocoles de communication…
  • 4. Autopsie d'un accident… Accident du tunnel de Clayton, 1861  un train peut entrer dans le tunnel si le sémaphore est vert  en passant le sémaphore, le train le met au rouge automatiquement ; en cas de défaillance du système, c'est l'opérateur qui agite un drapeau rouge  c'est l'opérateur qui remet le sémaphore au vert quand il est sur que le train a quitter le tunnel  deux télégraphes permettent aux opérateurs de s'échanger quelques messages  « Train in tunnel »  « Tunnel is clear »  Pour plus de sécurité, un 3è message est prévu : "Has the train left the tunnel?" A B
  • 5. Autopsie d'un accident… Accident du tunnel de Clayton, 1861 : ce qui s'est passé  Un train passe le sémaphore A (vert), mais le sémaphore ne passe pas au rouge.  L'opérateur réagit : il envoie le message "Train in tunnel" et agite un drapeau rouge pour arrêter les trains suivants.  Cependant, un 2è train est arrivé trop vite et est passé au vert.  Heureusement, le conducteur a entrevu le drapeau rouge in extremis.  Un 3è train arrive et s'arrête  L'opérateur envoie à nouveau le signal "Train in tunnel" pour avertir l'autre qu'il y a 2 trains dans le tunnel.  Le protocole n'a pas prévu ce cas.  Le problème pour l'opérateur A est maintenant de savoir quand les deux trains ont quitté le tunnel afin d'autoriser le 3è à entrer.  Pour alerter son collègue, l'opérateur A envoie le signal "Has the train left the tunnel?"  Lorsque le premier train sort du tunnel, l'opérateur B répond "Tunnel is clear"  Ne sachant pas si les 2 trains ont quitté le tunnel, l'opérateur A attend un certain temps, puis autorise le 3è train à entrer.  Malheureusement, le conducteur du 2è train, qui avait vu le drapeau, s'était arrêté dans le tunnel. Après un certain temps de réflexion, il a même fait marche arrière… => 23 morts et 176 blessés
  • 6. Autopsie d'un accident… Accident du tunnel de Clayton, 1861 : conclusion  Il est difficile d'établir la responsabilité de cet accident.  A partir du moment où le 2è train est entré dans le tunnel, il n'y avait plus moyen de récupérer la situation.  L'ensemble des messages disponibles sur les télégraphes était incomplet.  Le bon sens des opérateurs n'était pas suffisant. La réaction est toujours la même : I could not imagine that could ever happen Au début, beaucoup d'accidents étaient dus au manque de moyens de communication, mais on a constaté ensuite qu'il était surtout très difficile d'établir des règles non ambiguës de communication.
  • 7. Structure d'un protocole… Pour définir un protocole, nous devons définir un ensemble de règles :  définir comment un message est encodé  comment une transmission est démarrée et terminée, etc Deux types d'erreurs sont difficiles à éviter :  la conception d'un ensemble incomplet de règles (incomplétude)  la conception de règles contradictoires (inconsistance) Cela requiert :  de définir tous les éléments essentiels du protocole  une discipline pour les définir en séparant les éléments indépendants La vraie difficulté vient du parallélisme. Le nombre de scénarios est en général énorme et difficile à appréhender
  • 8. Historique… « Le génie logiciel, en tant que discipline informatique, est né en octobre 1968 lors d’une conférence de l’OTAN à Garmisch- Partenkirchen pour répondre à un problème qui devenait de plus en plus évident : d’une part le logiciel n’est pas fiable, d’autre part il est incroyablement difficile de réaliser dans les délais prévus des logiciels satisfaisant leur cahier des charges » ⇒ discipline de l’ingénieur du logiciel, pour l’aider développer des systèmes informatiques fiables, i.e., satisfaisant leur cahier des charges, dans des délais raisonnables ⇒ « génie logiciel » comme génie chimique, génie électrique, génie mécanique… = ensemble des techniques, outils et méthodes visant à optimiser et rationaliser la production du logiciel et son suivi 1.1. Pourquoi l'ingé nierie des logiciels
  • 9. Example: auto-pilot Problem: “Design a part in auto-pilot that avoids collision with other planes.” Solution: “When distance is 1km, give warning to other plane and notify pilot. When distance is 300m, and no changes in the course of other plane were noticed, go up to avoid collision”
  • 10. Problem with solution Both planes have the same software. Both go up...
  • 11. This happens in real software! Some famous bugs  NASA Space Rover, Intel floating point processor, etc. Hard to predict all behaviours!  US aircraft went to southern hemisphere and … flipped when crossing the equator  Air traffic controller: US to Britain.  It never dealt with problem of 0 degrees longitude.  Result: software “folded” Britain along Greenwich Meridian  Software written for US F-16  accidents when reused in Israeli aircraft flown over the Dear Sea (altitude < sea level)  Year 2000 problem
  • 12. Yet more such examples NASA Space Shuttle software (in use since 1980)  16 severity-level 1 software errors  8 remained in code that was used in flights  none encountered during flights  total size - only 400,000 words
  • 13. Remarque :  les méthodes et techniques issues du génie logiciel sont imposées par les autorités de certification pour le développement de systèmes critiques (avionique, nucléaire…)  normes de développement de systèmes (DO178B…) => Pour continuer, quelques exemples de systèmes complexes… 1.1. Pourquoi l'ingé nierie des logiciels
  • 14. Exemples :  Le Système de Navigation et d'Attaque d'un Rafale =  2 millions de lignes de codes ADA  50 équipements (numériques ou analogiques), 12 calculateurs  Contraintes de temps < 1ms …  combinatoire des modes et des états élevée  Landing System : plus de 1014 états possibles  Side Displays Management : plus de 2.108 états possibles  1/2 million d’instructions pour une expérience de physique des particules  1 million d’instructions dans un central téléphonique  50 millions d’instructions dans la navette spatiale ⇒Nécessité de rigueur dans la conception 1.1. Pourquoi l'ingé nierie des logiciels
  • 15. Si l'on veut maîtriser le développement de systèmes à logiciels fiables, il faut :  rédiger de façon claire les spécifications du système (ce que l'on attend) => comment être sûrs que ces spécifications sont complètes ? => comment être sûrs que ces spécification sont cohérentes ?  valider/vérifier toutes les étapes du développements => a-t-on des moyens de validation/vérification (mathématiques)?  de réutiliser des sous-systèmes déjà réalisés (mais pas n'importe comment) => a-t-on des règles, des outils pour aider à la réutilisation ? ⇒ nécessité d’une base théorique et d’une approche ingénierie (science de l’ingénieur) du logiciel 1.1. Pourquoi l'ingé nierie des logiciels
  • 16. Pour maximiser la qualité d'un système il faut...  Introduction d'un cycle de vie :  identifier un ensemble d'étape importante dans le développement, et des documents importants…  analyse de besoins, spécification, conception, programmation, intégration…  ranger ses étapes dans le temps et les unes par rapport aux autres => cycles en cascade, en V, en Y, en spirale… 1.2. Elé ments de terminologie
  • 17. Pourquoi des techniques formelles… ⇒Techniques formelles :  reposent sur des fondements mathématiques  expression mathématique des objets du développement (le comportement des systèmes)  expression mathématique des propriétés  expression mathématique des preuves  permettent l'analyse (mathématique) du comportement d'un système Remarque : certains organismes imposent déjà l'utilisation de techniques mathématiques dans le développement de systèmes informatiques : → dans le domaine de la sécurité : obligation d'utiliser des méthodes formelles pour certains niveaux de sécurité → dans le ferroviaire… (métro Météor)
  • 18. Qu'apportent les techniques formelles ? Les bases mathématiques (logique, théorie des ensembles…) d’une technique formelle fournissent les notions de  consistance, cohérence  à partir d'une spécification S, on ne peut pas déduire "a" et "non a" Qu'est-ce qu'une technique formelle… Programme Spécification globale Besoins des utilisateurs Architecture et spécification des composants activité de spécification Axe du développement vérification de consistance Une autre spécification globale vérification d'équivalence
  • 19. Qu'apportent les techniques formelles ? Les bases mathématiques (logique, théorie des ensembles…) d’une technique formelle fournissent les notions de  correction d'une implémentation par rapport à une spécification  il est possible de décider si un programme P implémente une spécification S Qu'est-ce qu'une technique formelle… Programme Spécification globale Besoins des utilisateurs Architecture et spécification des composants activité de spécification activité de conception activité de programmation vérification vérification Axe du développement
  • 20. Que n'apportent pas les techniques formelles ? La démonstration de la validité de la spécification globale par rapport aux besoins de l'utilisateur est impossible => parce que les besoins de l'utilisateurs ne sont pas exprimés en termes mathématiques ! Qu'est-ce qu'une technique formelle… Programme Spécification globale Besoins des utilisateurs Architecture et spécification des composants Preuves impossibles validation activité de spécification Axe du développement
  • 21. En résumé, ce que peuvent et ne peuvent pas les techniques formelles Qu'est-ce qu'une technique formelle… Programme Spécification globale Besoins des utilisateurs Architecture et spécification des composants Preuves possiblesPreuves impossibles validation activité de spécification activité de conception activité de programmation vérification vérification Axe du développement vérification
  • 22. Quel est l'intérêt des techniques formelles ?  précision des langages (due aux aspects mathématiques) => non ambiguïtés des notations du fait du substrat mathématique, une spécification ou un programme n'a qu'une seule signification => diminution du "bruit" dans les spécifications (on ne parle que de ce qui a un sens) possibilité de détecter les informations inutiles dans une spécification => meilleure compréhension de la spécification par l'équipe de réalisation => meilleure compréhension et dialogue entre clients et concepteurs interprétation "spécification formelle" vers "langage naturel" aisée => meilleure documentation des systèmes => meilleure réutilisation des composants  augmentation de la phase de spécification mais diminution importante de la phase de test, et diminution des corrections en maintenance => réduction globale des coûts du logiciel => augmentation de la fiabilité du logiciel 1. Qu'est-ce qu'une technique formelle…
  • 23. Grande diversité des techniques formelles  domaine d'étude de très nombreux centres de recherche ou grands groupes industriels dans le monde (à l'origine européens)  Se différencient selon les domaines d'applications Différentes classifications possibles  selon le substrat mathématique (support de la sémantique)  logique, théorie des ensemble, théorie des automates, algèbre, λ-calcul...  selon le domaine de prédilection  base de données, systèmes réactifs…  selon la nature du système de preuve sous-jacent  incrémental, automatique...  orientées propriétés ou orientées modèles  à spécifications exécutables ou non Bref panorama des techniques formelles…
  • 24. Model Checking  Denotes algorithmic analysis to check that a model (not necessarily finite state) satisfies a specified property  In logic, “model” denotes a structure over which formulas are interpreted  “Model checking” checks (preferably automatically) whether a given formula holds in a given model
  • 25. 25 Analyse de modè les, Model Checking byte n; proctype Aap() { do :: n++ :: noot!MIES od } Modèle M [] (n<3) Propriété φ Analyseur Espace d’états OUI Propriété satisfaite NON, + contre_exemple ϕ=|M Explosion d’états.
  • 26. Overview of Automated Verification Answer + Counter-example Answer + Counter-example SW/HW artifact SW/HW artifact Correctness properties Correctness properties Temporal logic Temporal logic Model of System Model of System Model Extraction Model Extraction TranslationTranslation Checker Engine Checker Engine abstractionabstraction Correct?
  • 27. Limitations Appropriate for control-intensive applications with interesting interaction among components  Data remains a problem Decidability and complexity remains an obstacle Falsification rather than verification  Model, and not system, is verified  Only stated requirements are checked: how to capture correctness in a formal language?  Bugs in the model checker Finding suitable abstractions requires expertise
  • 28. The “Methodology” Answer Formal verification does not aim to produce mathematical certainty of correctness, but to provide a methodology that, when followed, produces more reliable and robust systems
  • 30. Préambule Un protocole est un ensemble de règles qui gouvernent l'interaction entre processus parallèles dans les systèmes distribués La conception de protocoles n'est pas une discipline à part, elle est liée à la fois aux réseaux et à l'ingénierie des systèmes Décrire complètement et sans ambiguïté un protocole est difficile Prouver qu'un protocole est correct est une tâche encore plus ardue => Le but du cours n'est pas d'enseigner de nouveaux protocoles, mais de montrer comment on peut (bien) les décrire Protocoles de communication…
  • 31. Protocoles de Communication …  Protocole Réseau:  Les protocoles peuvent etre implémentés en matériel et/ou logiciel.  EIA-232-D est un protocole faisant partie de la couche physique implémenté en materiel.  Les protocoles TCP/IP sont implémentés en logiciel.
  • 32. Protocol Data Units (PDU)  Les entités communicantes échangent des fragments formattés selon le protocole utilisé.  Chaque fragment est une unité de donnée du protocole (Protocole Data Unit ou PDU)  Chaque PDU contient:  Header (entête):  Spécifie comment traiter et router le reste du PDU  Message:  le contenu du PDU  Trailer (queue)  sert en général pour le contrôle d’erreurs. Header Message Trailer
  • 33. Structure d'un protocole… Pour définir un protocole, nous devons définir un ensemble de règles :  définir comment un message est encodé  comment une transmission est démarrée et terminée, etc Deux types d'erreurs sont difficiles à éviter :  la conception d'un ensemble incomplet de règles (incomplétude)  la conception de règles contradictoires (inconsistance) Cela requiert :  de définir tous les éléments essentiels du protocole  une discipline pour les définir en séparant les éléments indépendants La vraie difficulté vient du parallélisme. Le nombre de scénarios est en général énorme et difficile à appréhender
  • 34. Structure d'un protocole… Les Cinq éléments d'un protocole  Le service à fournir par le protocole  Les hypothèses sur l'environnement dans lequel le protocole s'exécute  Le vocabulaire des messages utilisé par le protocole  Le format de chaque message  Les règles procédurales utilisées durant la communication La 5è partie est la plus délicate à définir et la plus difficile à vérifier.
  • 35. Structure d'un protocole… Un exemple 1. Le service :  Transfert de fichiers de texte comme séquences de caractères via une ligne téléphonique en se protégeant contre les erreurs de transmission (supposée toutes détectables)  Bidirectionnel : 2 transferts en sens opposés possibles 2. Les hypothèses :  Composé de 2 utilisateurs et d'un canal de transmission  On suppose que chaque utilisateur peut soumettre une requête et attendre qu'elle s'exécute  Le canal peut modifier les messages, mais pas les perdre, les dédoubler, les réarranger, ni en insérer un autre. 3. Vocabulaire : trois messages  ack : un message + un acquit positif  nak : un message + un acquit négatif  err : un message erroné
  • 36. Structure d'un protocole… Un exemple (suite) 4. Les formats :  Chaque message a un champ de contrôle identifiant le type de message et un champ de données avec le code de caractère : Type PDU is record control : tag, data : char endrecord Type tag is {ack, nak, err}
  • 37. Structure d'un protocole… Un exemple (suite) 5. Les règles procédurales : Soit 2 entités A et B 1. Si la réception précédente est sans erreur, le prochain message sur le canal opposé contiendra un acquit positif. 2. Si la réception précédente est erronée, le prochain message sur le canal opposé contiendra un acquit négatif. 3. Si la réception précédente est erronée ou contient un acquit négatif, le prochain message sera une retransmission du message émis précédemment; sinon, ce sera un nouveau message 4. Si un utilisateur n'a pas de caractère à émettre, il peut envoyer un caractère « null » 5. A démarre le transfert.
  • 38. Structure d'un protocole… Un exemple (suite) Représentation des règles procédurales : receive(i) fetch(o) fetch(o) nak(o) ack(i) errnak(i) ack(o) ack(o) nak(o) Émission Réception Attente Action Protocole correct ?
  • 39. Structure d'un protocole… Un exemple (suite) Un scénario d'erreur…
  • 40. Structure d'un protocole… Notion vocabulaire et de format Type PDU is record control : tag, data : char endrecord Type tag is {ack, nak, err} Exemple de codage : record control : bit, data : ASCII char, parity : bit endrecord + des fonctions de calculs d'erreurs Attention : il s'agit de formats abstraits, et non d'un codage
  • 41. Structure d'un protocole… Notion de règles procédurales  Exprimées au niveau d'abstraction adéquat (pas de détail inutile (codage))  Doivent être complètes, consistantes et non ambiguës => nécessite un formalisme ou un langage approprié  Il n'existe pas de méthode permettant de s'assurer a priori de la complétude et de la consistance des règles => vérification a posteriori  La difficulté vient du parallélisme => Les diagrammes de séquences ne conviennent pas. Ils permettent au mieux d'illustrer un scénario d'erreur.  Un protocole n'est pas correct dans l'absolu ; un protocole est correct par rapport à un ensemble de propriétés (la spécification de son service) => Nécessité de formaliser les propriétés ou le service attendu
  • 42. Rè gles d'ingé nierie…  Simplicité — Concevoir des protocoles légers  Faciles à comprendre, à implanter, à maintenir à jour, et souvent plus performants  Modularité — Une hiérarchie de fonctions  Un protocole complexe doit être construit à partir de modules plus simples qui interagissent de façon simple et bien définie  Il ne faut pas mélanger des fonctions indépendantes (p. ex. contrôle d'erreur et contrôle de flux) dans un même module  Un protocole doit être indépendant du système d'exploitation, de l'encodage des données, des formats d'adresse, des débits utilisés… ⇒ Facilite l'ouverture (portabilité), l'extensibilité ou le changement de modules...  Un protocole doit être bien formé  Pas de sur-spécification : pas de code non exécutable  Pas de sous-spécification : pas de réception non prévue  Borné : pas de débordement de tampon  Auto-stabilisant : en cas d'erreur, retour dans un état stable après récupération
  • 43. Rè gles d'ingé nierie…  Robustesse  Concevoir un protocole qui fonctionne bien dans des circonstances normales est facile  C'est l'inattendu qui défie le concepteur  Il faut faire un minimum d'hypothèses sur l'environnement  Un bon design doit résister à l'évolution (vitesse des lignes, taille du réseau, …)  Il faut éviter l'ajout de fonctions inutiles qui pourraient s'avérer être un frein à une évolution ultérieure.  Consistance : un protocole peut être incorrect de plusieurs façons  Interblocages (deadlocks) : toutes les entités sont bloquées en attente de message  Cycles non productifs (livelocks) : le système boucle indéfiniment sans progresser  Terminaisons impropres : sans satisfaire certaines conditions
  • 44. Rè gles d'ingé nierie… Pour finir : quelques règles de (bonnes conception) 1. Etre sûr que le problème est bien défini :  il faut énumérer tous les critères et contraintes avant de commencer 2. Définir le service à fournir avant de concevoir le protocole  le quoi avant le comment 3. Principe KISS (Keep It Simple, Stupid) 4. Séparer les fonctionnalités orthogonales. 5. Un bon design résout une classe de problèmes plutôt qu'un problème isolé.  Ne pas se restreindre inutilement.  Ne pas introduire de détails inutiles. 6. Procéder par prototypages de haut niveau avant d'implémenter 7. Implémenter, mesurer les performances, et si nécessaire optimiser. 8. Vérifier que l'implémentation est équivalente au prototype de haut niveau.
  • 45. Une première classification…  les énoncés en langue naturelle (anglais, français…) + des tables et des schémas  les plus courants  mais les plus ambigues… et donc les plus risqués, et ne se prêtent pas à l'analyse (de complétude, de correction…)  seul l'œil humain peut analyser et corriger ces énoncés  les techniques semi-formelles  descriptions formatées (langue naturelle structurée)  techniques graphiques à la UML… => modèles entités-relations => de plus en plus utilisées => souvent clairs et facilement compréhensibles => mais peut comporter encore des ambiguïtés (aux marges du formalisme), et ne se prêtent toujours pas à l'analyse (de complétude, de correction…) Les moyens de description de protocoles…
  • 46. Techniques de description de protocoles : quels besoins ?  L'abstraction : permettre une description au bon niveau de détail => pas de détails superflus => capturer les aspects importants du protocole  La modélisation des états et des logiques de changement d'états  L'indéterminisme => au niveau de la spécification => du comportement de l'environement Les moyens de description de protocoles… a b
  • 47. Techniques de description de protocoles : quels besoins ?  la causalité en actions (séquence)  la concurrence entre actions (parallélisme)  la synchronisation  l'analysibilité (outil d'analyse)  la non ambiguïté (une sémantique formelle) => il n'existe aucun formalisme répondant complètement à ces critères Les moyens de description de protocoles… a b a b a’ b’ || a a’
  • 48. FSM simple Exemple : état d'un processus  inactif,  en attente UC,  en attente ressource,  actif inactif attente UC ressource attente UC attente ressource actif Activation? +UC? -UC? Fin! +UC? +R? -R? -UC? -R? +R? Les moyens de description de protocoles…
  • 49. FSM simple avec parallélisme Exemple : le protocole du tunnel de Clayton Les moyens de description de protocoles… No train V1 Trainv1? Train-in-tunnelv1! Tunne-is-clearv1? Has-the-train-left-the-tunnelv1? No train V2 Train-in-tunnelv2? Out-trainv2 Tunne-is-clearv2! Has-the-train-left-the-tunnelv2? Has-the-train-left-the-tunnelv2? Has-the-train-left-the-tunnelv2? Tunne-is-clearv2! ||
  • 51. 54 Conception à couches des protocoles Un protocole contient normalement un grand nombre de fonctionnalités Pourrait être défini comme un seul programme, mais ceci serait excessivement complexe Le manque de modularité rendrait aussi difficile l’échange de modules préfabriqués entre compagnies
  • 53. 56 Modè le de ré fé rence Open Systems Interconnection
  • 55. 58 Entité s OSI N+1-Protocol Entity N+1-Protocol Entity N-Service Provider N+1-PDUs N-SDUsN-SDUs N-SAP N-SAP SAP: Service Access Point
  • 56. Entité s OSI Notion de service : modèle en couches  Le service est une définition fonctionnelle de l'interface entre couches  Liste des primitives avec paramètres  Ordonnancement permis des primitives  Le service N est une abstraction des couches de protocole inférieures.
  • 57. Entité s OSI Notion d'environnement : abstraction des couches supérieures et inférieures  Centrage sur une couche N et un protocole N  Les couches supérieures sont vues comme des utilisateurs abstraits  Les couches inférieures sont vues comme un milieu de transmission. Il décrit les hypothèses qui caractérisent ces couches (pertes, doublons possibles, …)  Le protocole N décrit le fonctionnement des entités N (A et B) en réaction aux primitives de service N et aux PDU N venant de l'entité homologue via le milieu de transmission (médium).  L'environnement d'un protocole est composé des utilisateurs et du milieu de transmission.
  • 58. 61 Service Data Units (SDUs)  Request : Une entité sollicite un service  Indication : Une entité est informée d'une demande de service  Response : Une entité a rendu le service, si possible  Confirmation : Une entité est informée que le service a été rendu SAP REQUEST INDICATION CONFIRMATION RESPONSE Service non confirmé Service confirmé SAP
  • 59. 64 Mode non connecté (connectionless)  1 seule phase:  le transfert de données  chaque unité de transfert de données est acheminée indépendamment  les entités communicantes ne mémorisent rien ("memoryless").  les messages échangées sont auto-suffisants ("self- content")  pas d’acquittement de messages (no ack)  exemple: datagrammes en IP
  • 60. 65 Mode Connecté (connection-oriented)  3 phases :  phase d'établissement de la connexion  phase de transfert de données  phase de libération de la connexion  un contexte (réparti) est partagé par les membres de la connexion :  par exemple : le numéro du paquet  permet (facilite) le contrôle et la gestion du transfert de données :  contrôle d'erreur, contrôle de flux, maintien en séquence, etc.  les messages échangés comportent des informations qui ne sont utilisables que grâce à la connaissance de ce contexte :  par exemple : le numéro de paquet / la largeur de la fenêtre coulissante  Exemple de protocole utilisant le mode connecté:TCP

Notes de l'éditeur

  1. 2. =&gt; prof et discipline informatique : important même si pas spécifiquement télécom. Car le logiciel est de plus en plus présent =&gt; maîtriser le développement d&apos;un système (par exemple télécom) nécessite aussi et parfois surtout de maîtriser le développement de son logiciel =&gt; important d&apos;être sensibilisé à ce problème, à ce que l&apos;on appelle la crise du logiciel =&gt; si un jour vous êtes chefs de projet, on vous demandera de suivre les règles de l&apos;ingénierie système =&gt; dans la même lignée que les cours UML et JAVA 3. Attention : cours abstrait et difficile, nécessairement un peu verbeux. Ma tâche est difficile : vous justifier l&apos;existence de la discipline du génie système et en particulier génie logiciel, avec ses règles alors que vous n&apos;avez pas encore été confronté au problème. 4. En pratique : exam à la fin du cours (scéances de TD + exos en cours). Support de cours = transparents.
  2. Total software - 100,000 lines (“small”) Very good software process
  3. Highlighted three main aspects we shall study: modeling, specifications, and algorithms