First commit
This commit is contained in:
commit
5c269302ed
59 changed files with 5613 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
public/
|
51
README.md
Normal file
51
README.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
Notes de cours et TD machines
|
||||
-----------------------------
|
||||
|
||||
Dépôt git pour la construction d'un sitre statique avec
|
||||
[Hugo](https://gohugo.io) reprenant l'ensemble de mes notres de cours et TM
|
||||
machine mises au propre (J'ai beaucoup de retard...)
|
||||
|
||||
Je rajouterai plus tard un `makefile` pour la construction de fichiers PDF avec
|
||||
[pandoc](https://pandoc.org/)
|
||||
|
||||
## Construction du site
|
||||
|
||||
### Installer le thème
|
||||
|
||||
Pour que la construction du site fonctionne, il faut installer le thème visuer
|
||||
choisi (ici er). Il est présent sous la forme d'un `submodule` git au'il faut
|
||||
initialiser (dans le répertoire racine du dépôt).
|
||||
|
||||
```shell
|
||||
git submodule init && git submodule update
|
||||
```
|
||||
|
||||
### Version locale du site
|
||||
|
||||
Pour construite le site, il faut au préalable installer hugo, sur Archlinux :
|
||||
|
||||
```shell
|
||||
# pacman -S hugo
|
||||
```
|
||||
|
||||
Pour activer le serveur web intégré à Hugo, il suffit de lancer la commande
|
||||
(dans le répertoire racine du dépôt) :
|
||||
|
||||
```shell
|
||||
$ hugo server -D --disableFastRender -v
|
||||
```
|
||||
|
||||
Il est possible de rajouter l'option `--debug` afin d'afficher plus
|
||||
d'information sur la sortie standard. Une fois ce mode activé, il suffit
|
||||
d'ouvrir son navigateur er d'aller à l'adresse *http://localhost:1313*.
|
||||
|
||||
## Site en ligne
|
||||
|
||||
Le site n'est pas encore accessible en ligne, un jour peut-être...
|
||||
|
||||
## Bugs
|
||||
|
||||
C'est la première fois que j'utilise un générateur de site statique, le
|
||||
focntionnement du site n'est donc pas optimal. Les pages **tags** et
|
||||
**catégories** ne fonctionnent pas (pages blanches) pour une raison encore
|
||||
mystérieuse.
|
6
archetypes/default.md
Normal file
6
archetypes/default.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
25
config.toml
Normal file
25
config.toml
Normal file
|
@ -0,0 +1,25 @@
|
|||
baseURL = "https://lpro.epha.se"
|
||||
languageCode = "fr"
|
||||
defaultContentLanguage = "fr"
|
||||
title = "Licence pro ADSILLH - Cours et TD"
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = true
|
||||
theme = "mainroad"
|
||||
rssLimit = 10
|
||||
paginate = 10
|
||||
|
||||
[taxonomies]
|
||||
category = "categories"
|
||||
tag = "tags"
|
||||
|
||||
[Params]
|
||||
toc = true
|
||||
post_navigation = true
|
||||
postSections = ["reseau", "progsys", "installations", "bdd"]
|
||||
|
||||
[Params.sidebar]
|
||||
home = "right" # Configure layout for home page
|
||||
list = "left" # Configure layout for list pages
|
||||
single = false # Configure layout for single pages
|
||||
# Enable widgets in given order
|
||||
widgets = ["search", "categories", "taglist"]
|
43
content/bdd/1-introduction/files/bibliotheque_creation.sql
Normal file
43
content/bdd/1-introduction/files/bibliotheque_creation.sql
Normal file
|
@ -0,0 +1,43 @@
|
|||
CREATE SCHEMA Bibliotheque;
|
||||
SET search_path TO Bibliotheque, public;
|
||||
CREATE TYPE Bibliotheque.Sexe AS ENUM ('F', 'M');
|
||||
CREATE TYPE Bibliotheque.Etat AS ENUM ('Neuf', 'Bon', 'Use');
|
||||
CREATE TABLE Bibliotheque.Lecteur (
|
||||
num_lecteur serial NOT NULL,
|
||||
nom text NOT NULL,
|
||||
sexe Bibliotheque.Sexe NOT NULL,
|
||||
-- age devient date de naissance
|
||||
naissance date NOT NULL,
|
||||
ville text NOT NULL,
|
||||
-- clefs candidates
|
||||
PRIMARY KEY (num_lecteur)
|
||||
);
|
||||
CREATE TABLE Bibliotheque.Livre (
|
||||
isbn integer NOT NULL,
|
||||
titre text NOT NULL,
|
||||
auteur text NOT NULL,
|
||||
editeur text NOT NULL,
|
||||
annee interval YEAR NOT NULL,
|
||||
-- clefs candidates
|
||||
PRIMARY KEY (isbn)
|
||||
);
|
||||
CREATE TABLE Bibliotheque.Exemplaire (
|
||||
num_exemplaire serial NOT NULL,
|
||||
isbn integer NOT NULL,
|
||||
date_achat date NOT NULL,
|
||||
etat Bibliotheque.Etat NOT NULL,
|
||||
-- clefs candidates
|
||||
PRIMARY KEY (num_exemplaire),
|
||||
-- Clefs étrangères
|
||||
FOREIGN KEY (isbn) REFERENCES Bibliotheque.Livre(isbn)
|
||||
);
|
||||
CREATE TABLE Bibliotheque.Emprunt (
|
||||
num_exemplaire serial NOT NULL,
|
||||
num_lecteur serial NOT NULL,
|
||||
date_emprunt date NOT NULL,
|
||||
-- clefs candidates
|
||||
PRIMARY KEY (num_exemplaire, num_lecteur),
|
||||
-- Clefs étrangères
|
||||
FOREIGN KEY (num_exemplaire) REFERENCES Bibliotheque.Exemplaire(num_exemplaire),
|
||||
FOREIGN KEY (num_lecteur) REFERENCES Bibliotheque.Lecteur(num_lecteur)
|
||||
);
|
BIN
content/bdd/1-introduction/files/cours1.pdf
Normal file
BIN
content/bdd/1-introduction/files/cours1.pdf
Normal file
Binary file not shown.
41
content/bdd/1-introduction/files/schema_avions.sql
Normal file
41
content/bdd/1-introduction/files/schema_avions.sql
Normal file
|
@ -0,0 +1,41 @@
|
|||
-- schema de Base de données pour la gestion d'une compagnie aérienne.
|
||||
CREATE SCHEMA aerocremi;
|
||||
SET search_path TO aerocremi, public;
|
||||
|
||||
CREATE TABLE aerocremi.avion(
|
||||
-- Je pars du principe que le numéro de série est donné par le fabricant
|
||||
-- de l'avion et qu'il ne contient que des chiffres. Il ne peut donc pas
|
||||
-- être du type serial.
|
||||
num_serie integer NOT NULL,
|
||||
type text NOT NULL,
|
||||
capacite integer NOT NULL,
|
||||
PRIMARY KEY (num_serie)
|
||||
);
|
||||
|
||||
CREATE TABLE aerocremi.pilote(
|
||||
matricule serial NOT NULL,
|
||||
nom text NOT_NULL,
|
||||
anciennete date,
|
||||
PRIMARY KEY (matricule)
|
||||
);
|
||||
|
||||
CREATE TABLE aerocremi.vol(
|
||||
num_vol text NOT NULL,
|
||||
-- Je part du principe qu'il faut gérer les times zones sur les horaires
|
||||
-- de vol (logique pour une compagnie aérienne)
|
||||
-- https://www.postgresql.org/docs/current/static/datatype-datetime.html
|
||||
heure_depart time with time zone NOT NULL,
|
||||
heure_arrivee time with time zone NOT NULL,
|
||||
PRIMARY_KEY (num_vol)
|
||||
);
|
||||
|
||||
CREATE TABLE aerocremi.planning(
|
||||
num_planning serial NOT NULL,
|
||||
num_vol text NOT NULL,
|
||||
matricule integer NOT NULL,
|
||||
date_vol date NOT NULL
|
||||
PRIMARY KEY (num_planning),
|
||||
FOREIGN KEY num_vol REFERENCES aerocremi.vol(num_vol),
|
||||
FOREIGN KEY num_avion REFERENCES aerocremi.avion(num_serie),
|
||||
FOREIGN KEY matricule REFERENCES aecrocremi.pilote(matricule)
|
||||
);
|
BIN
content/bdd/1-introduction/files/td1.pdf
Normal file
BIN
content/bdd/1-introduction/files/td1.pdf
Normal file
Binary file not shown.
31
content/bdd/1-introduction/index.md
Normal file
31
content/bdd/1-introduction/index.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
title : "Base de données : Introduction"
|
||||
date: 2018-09-10
|
||||
categories: ["Base de données", "Cours"]
|
||||
---
|
||||
|
||||
Lors de ce cours, nous allons créer une application web de gestion d'un hôtel :
|
||||
gestion des réservation et des factures.
|
||||
|
||||
## Qu'est ce qu'une application web
|
||||
|
||||
C'est une application de type client <> serveur disponible via un navigateur
|
||||
web. Elle est conçue à partir d'un ensemble de sources (au sens code source)
|
||||
hétérogène : HTML, CSS et javascript côté client; PHP, Python perl etc
|
||||
côté serveur.
|
||||
|
||||
On compte 3 types d'applications web :
|
||||
|
||||
- **statique** (un site web basique)
|
||||
- dynamique **côté serveur**
|
||||
- dynamique *côté client et serveur**
|
||||
|
||||
## Processus de création d'une base de données
|
||||
|
||||
1- données du "monde réel"
|
||||
2- réel perçu
|
||||
3- données et contraintes
|
||||
4- modèle relationnel
|
||||
5- implémentation dans un SGBDR *(Système de Gestion de Base de Données
|
||||
Relationnelles)
|
||||
|
113
content/bdd/2-definitions/indev.md
Normal file
113
content/bdd/2-definitions/indev.md
Normal file
|
@ -0,0 +1,113 @@
|
|||
---
|
||||
title: "Base de données : définitions"
|
||||
date: 2018-09-17
|
||||
modify: 2018-09-24
|
||||
categories: ["Base de données", "cours"]
|
||||
---
|
||||
|
||||
## Le domaine
|
||||
|
||||
Il représente l'ensemble des valeurs autorisées pour une information. Cette
|
||||
notion est très proche [de domaine de définition](w_dom-def) en mathématiques.
|
||||
On le décompose en deux grandes familles.:
|
||||
|
||||
- **élémentaire** : les types de base comme les entiers, réels, chaines de
|
||||
caractères mais aussi les intervales ou les listes de valeurs
|
||||
- **structuré** : des types de valeurs plus structurée comme pas exemple la
|
||||
notion de point définit pat une composant `X` et `Y`.
|
||||
|
||||
[w_dom-def]:https://fr.wikipedia.org/wiki/Ensemble_de_d%C3%A9finition
|
||||
|
||||
## Le produit cartésien
|
||||
|
||||
Le produit cartésien des domaines $D_{1} D_{2}$ représente l'ensemble
|
||||
des valeurs contenue dans $D_{1}$ et $D_{2}$, il est noté
|
||||
|
||||
$$
|
||||
D_{1} \times D_{2}
|
||||
$$
|
||||
|
||||
## La relation
|
||||
|
||||
Elle représente un sousrensemble r du produit carthésien. Elle est caractérisée
|
||||
par un nom.
|
||||
|
||||
## Tuple ou n-tuple
|
||||
|
||||
Il représente une ligne dans une relation
|
||||
|
||||
## Attributs
|
||||
|
||||
Nom donné à un colonne. Il est composé d'un indentifiant et d'un domaine
|
||||
|
||||
## Schéma de relation
|
||||
|
||||
Il ets définis par un ensemble d'attributs U et un ensenble de contraintes. on
|
||||
le note courrament R(U), R(U) décrit l'intention de la relation. La relation
|
||||
(tableau + valeurs) définit une extention.
|
||||
|
||||
Une relation `r` est une instance finie d'un schema de relation notée `r:R(U)`,
|
||||
exemple :
|
||||
|
||||
```
|
||||
AlimentsPreferes(nom,type,origine,bio)
|
||||
```
|
||||
|
||||
## La base de données
|
||||
|
||||
Un schéma de base de données et un ensemble de schemas de relation liés par des
|
||||
dépendances référencielles (un type de contraines). Une base de données est
|
||||
alors un ensemble de relations (extensions) associées au schéma et verifiamts
|
||||
ses contraines.
|
||||
|
||||
## Le modèle relationnel
|
||||
|
||||
Il est définis en 1970 par *E. F. Codd* (IBM Research Lab) et se veut
|
||||
indépendant de la representation physique des données. Il a une assise
|
||||
mathématique forte ([algèbre relationnelle](w_algebre-r), [formes
|
||||
normales](w_form-norm)).
|
||||
|
||||
[w_algebre-r]:https://fr.wikipedia.org/wiki/Alg%C3%A8bre_relationnelle
|
||||
[w_form-norm]:https://fr.wikipedia.org/wiki/Forme_normale_(bases_de_donn%C3%A9es_relationnelles)
|
||||
|
||||
### Objectifs généraux
|
||||
|
||||
- Éliminer les comportements anormaux lors des mises à jour des données.
|
||||
- Éliminer les données redondantes.
|
||||
- Meilleures compréhension des relationssémantiques entres les données.
|
||||
|
||||
### Buts
|
||||
|
||||
Éliminer les anomalies de la relation universelle (tous les attributs sur toutes
|
||||
les colonnes) pour faciliter la manipulation des relation. En un mot normaliser
|
||||
les relations.
|
||||
|
||||
### Méthode
|
||||
|
||||
Décomposer la relation universelle en sous-relations qui ne souffre pas des
|
||||
anomalies de la relation universelle.
|
||||
|
||||
- conserve toutes les données
|
||||
- conserve un minimum de contraintes
|
||||
|
||||
### Les types de contraintes
|
||||
|
||||
- sur les attributs : valeur nulle autorisées (ou non), valeur imposée ...
|
||||
- sur les n-uplets (plusieurs valeurs) : l'exemple d'une bibliothèque, la date
|
||||
de retour d'un livre doit être suppérieure à la date d'emprunt.
|
||||
- sur les relations : clé, cardinalité
|
||||
- sur la base de données : clé étrangères
|
||||
- sur l'évolution temporelle de la base de données : exemple de l'état civil,
|
||||
on passe, dans l'ordre de célibataire à marié puis divorcé. On ne peut pas
|
||||
passer de célibataire à divorcé.
|
||||
|
||||
# La notion de clé
|
||||
|
||||
Une clé doit permettre de trouver un tuple dans une relation avec seulement une
|
||||
partie des attributs, dit plus simplement, identifier sans équivoque un
|
||||
enregistrement.
|
||||
|
||||
Du point de vue mathématique, il ne doit pas avoir deux fois le même éléments
|
||||
dans un ensemble : deux tuples d'une même relation ne peuvent être égaux.
|
||||
|
||||
Soit un ensemble $U\{A_{1}, A_{2}, ..., A_{n}\}$
|
BIN
content/installations/1-LDAP/files/CoursLinux.pdf
Normal file
BIN
content/installations/1-LDAP/files/CoursLinux.pdf
Normal file
Binary file not shown.
BIN
content/installations/1-LDAP/files/RZO LDAP.pdf
Normal file
BIN
content/installations/1-LDAP/files/RZO LDAP.pdf
Normal file
Binary file not shown.
BIN
content/installations/1-LDAP/files/RZO Messagerie cours.pdf
Normal file
BIN
content/installations/1-LDAP/files/RZO Messagerie cours.pdf
Normal file
Binary file not shown.
263
content/installations/1-LDAP/index.md
Normal file
263
content/installations/1-LDAP/index.md
Normal file
|
@ -0,0 +1,263 @@
|
|||
---
|
||||
title: Les annuaires LDAP
|
||||
date: 2018-09-06
|
||||
tags: ["annuaire", "LDAP", "LDIG"]
|
||||
categories: ["Installations", "Cours"]
|
||||
---
|
||||
|
||||
**LDAP** pour *Lightweight Directory Access Protocol* est à l'origine un
|
||||
protocole utilisé pour la modification et la consultation de services
|
||||
d'annuaire. Il a évolué pour devenir une norme pour les services d'annuaire
|
||||
incluant un modèle de données, un modèle de nommage, un modèle fonctionnel, un
|
||||
modèle de sécurité et un modèle de réplication.
|
||||
|
||||
Dérivé du protocole x500, réputé "usine à gaz" complexe à mettre en place et
|
||||
peu performant, LDAP se veux, comme son nom l'indique plus léger, il est
|
||||
standardisé par l'IETF. La version actuelle est la LDAPv3 définie dans plusieurs
|
||||
RFC en commençant par la RFC 4510
|
||||
|
||||
# Les modèles du LDAPv3
|
||||
|
||||
Ils sont au nombre de 4 :
|
||||
|
||||
- **le modèle d'information** qui reprend entres autres le schéma, les OID, les
|
||||
attributs, les classes d'objets
|
||||
- **le modèle de désignation** qui s'attache au nommage des entrées, à la
|
||||
hiérarchisation des données, au lien LDAP - DNS
|
||||
- **le modèle de services** qui décrit les services offerts par le service
|
||||
d'annuaire
|
||||
- **le modèle de sécurité** qui défini l'authentification, la confidentialité,
|
||||
l'intégrité et la gestion des habilitations.
|
||||
|
||||
# Le modèle d'information
|
||||
|
||||
Il décrit principalement le schéma de l'annuaire : les *attributs*, les
|
||||
*syntaxes*, les *classes d'objets* et les *règles de recherches*.
|
||||
|
||||
## les attributs
|
||||
|
||||
Se sont les éléments de base du schéma décrit comme suit :
|
||||
|
||||
```
|
||||
attributetype (
|
||||
<OID> # identifiant OID unique
|
||||
NAME <nom> # nom de l'attribut
|
||||
DESC <desc> # description de l'attribut
|
||||
OBSOLETE # indique aue l'attribut est obsolète
|
||||
SUP <classe> # classe parente de l'attribut
|
||||
EQUALITY <règle> # nom de la règle de recherche
|
||||
ORDERING <règle> # nom de la règle d'ordenancement
|
||||
SUBSTR <règle> # nom de la règle de recherche dabs une sous-chaine
|
||||
# de caractère
|
||||
SYNTAX <syntax> # syntaxe de l'attribut
|
||||
SINGLE-VALUE # indique d'une seule valeur est attendue
|
||||
COLLECTIVE # indique que le schéma est collectif
|
||||
NO-USER-MODIFICATION # indique aue l'utilisateur ne peut modifier l'attribut
|
||||
USAGE # usage de l'attribut.
|
||||
)
|
||||
```
|
||||
|
||||
Voici un exemple concret :
|
||||
|
||||
```
|
||||
attributetype (
|
||||
2.5.4.16
|
||||
NAME 'postalAddress'
|
||||
DESC 'RFC2256: postal address'
|
||||
EQUALITY caseIgnoreListMatch
|
||||
SUBSTR caseIgnoreListSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.41
|
||||
)
|
||||
```
|
||||
|
||||
## Les attributs
|
||||
|
||||
On distingue les **attributs utilisateurs** qui caractérisent l'objet manipulé
|
||||
par les utilisateurs des **attributs opérationnels** manipulés seulement par le
|
||||
serveur afin de modifier les données.
|
||||
|
||||
### Les OID - Object IDentifiers
|
||||
|
||||
Ce sont des identifiants universels, représentés par une suite d'entiers séparés
|
||||
par des points. Il sont organisés sous forme hiérarchique ainsi seul l'organisme
|
||||
1.2.3 peur donner la signification de 1.2.3.4.
|
||||
|
||||
Leur objectif est d'assurer l'interopérabilité entre différents logiciels et son
|
||||
utilisés dans le LDAP, mais aussi le SNMP.
|
||||
|
||||
Voir la [liste des OID](https://ldap.com/ldap-oid-reference-guide/)(en). Il est
|
||||
possible d'utiliser [ce site](http://oid-info.com/get/)(en) pour faire une
|
||||
recherche par OID.
|
||||
|
||||
## Les syntaxes
|
||||
|
||||
Elles permettent d'indiquer la règle à suivre pour enseigner l'attribut. Si, par
|
||||
exemple, l'attribut suit une syntaxe dn et l'utilisateur saisit une chaîne de
|
||||
caractère lambda, l'attribut ne pourra être renseigné.
|
||||
|
||||
## Les classes d'objets
|
||||
|
||||
Ils représentent une collection d'attributs . On peut y définir, par exemple, ce
|
||||
qui est obligatoire ou facultatif. Voici une description du format :
|
||||
|
||||
```
|
||||
ObjectClassDescription (
|
||||
<OID> # OID de la classe
|
||||
NAME <nom> # nom de la classe
|
||||
DESC <desc> # description de la classe
|
||||
OBSOLETE # indique que la classe est obsolete
|
||||
SUP <classe> # indique la classe parente
|
||||
ABSTRACT # Les 3 éléments suivant sont au choix ( voir l'explication
|
||||
STUCTURAL # ci-dessous
|
||||
AUXILIARY
|
||||
MUST () # Liste des attributs obligatoires
|
||||
MAY () # liste des attributs facultatifs
|
||||
)
|
||||
```
|
||||
|
||||
Voici un exemple concret avec les classes `person` et `organisationnalPerson`:
|
||||
|
||||
```
|
||||
( 2.5.6.6
|
||||
NAME 'person'
|
||||
SUP top
|
||||
STRUCTURAL
|
||||
MUST ( sn $ cn )
|
||||
MAY ( userPassword $ telephoneNumber $ seeAlso $
|
||||
description )
|
||||
)
|
||||
( 2.5.6.7
|
||||
NAME 'organizationalPerson'
|
||||
SUP person
|
||||
STRUCTURAL
|
||||
MAY ( title $ x121Address $ registeredAddress $
|
||||
destinationIndicator $ preferredDeliveryMethod $
|
||||
telexNumber $ teletexTerminalIdentifier $
|
||||
telephoneNumber $ internationaliSDNNumber $
|
||||
facsimileTelephoneNumber $ street $ postOfficeBox $
|
||||
postalCode $ postalAddress $
|
||||
physicalDeliveryOfficeName $ ou $ st $ l )
|
||||
)
|
||||
```
|
||||
|
||||
### Les types de classes d`objets
|
||||
|
||||
Il en existe trois :
|
||||
|
||||
- **abstraites** : ce sont des classe de plus haut niveau non instanciable mais
|
||||
pouvant être dérivées. la classe d'objets la plus haute étant `top` dont
|
||||
toute classe dérive
|
||||
- **structurelles** : sont des classes instanciables.
|
||||
- **auxiliaires** : sont des classes permettant d'ajouter des attributs
|
||||
facultatifs à des classes structurelles
|
||||
|
||||
Voir diaporama du cours page 41.
|
||||
|
||||
## Les règles de recherche
|
||||
|
||||
Elles permettent aux serveur de comparer les valeurs des attributs avec celles
|
||||
demandées dans les requêtes.
|
||||
|
||||
L'exemple ci-dessous présente une règle de recherche sur un entier :
|
||||
|
||||
```
|
||||
(
|
||||
2.5.13.14
|
||||
NAME
|
||||
'integerMatch'
|
||||
1.3.6.1.4.1.1466.115.121.1.27 )
|
||||
```
|
||||
|
||||
# Le modèle de désignation
|
||||
|
||||
Afin de pouvoir identifier tous les objets dans l'annuaire, il est important de
|
||||
définir des règles de nommage communes a tous le service d'annuaire. deux
|
||||
notions importante apparaissent :
|
||||
|
||||
- le **RDN** pour *Relative Distinguished Name* est un nom unique seulement
|
||||
dans le niveau considéré.
|
||||
- le **DN** pour *Distinguished Name** est un nom unique identifiant un objets
|
||||
dans l'arbre. Il est la somme de tous les RDN
|
||||
|
||||
Pour un nommage cohérent, il est important de définir des règle commune de
|
||||
nommage pour s'assurer de la cohérence des RND. Ceci permet de résoudre les
|
||||
problèmes d'homonymie.
|
||||
|
||||
Exemple :
|
||||
|
||||
```
|
||||
RDN = CN=DURAND Yves
|
||||
CN=DURAND Yves,L=Paris,L=Ile de France,C=fr
|
||||
```
|
||||
|
||||
# L'organisation hiérarchique
|
||||
|
||||
Un annuaire se présente sous la forme d'un arbre (DIT pour *Directory
|
||||
information Tree*).
|
||||
|
||||
Il peut refléter l'organisation hiérarchique de la
|
||||
structure ou son implantation géographique, voir même mixer les deux.
|
||||
|
||||
Il peut aussi représenter l'organisation de l'entreprise sous forme sémantique
|
||||
en groupant les informations qui ont un même sens (personnes, groupes,
|
||||
applications et.). Cette configuration facilite l'administration des droits
|
||||
d'accès. Par exemple en affectant les droits d'écriture au DRH seulement sur
|
||||
`ou=Personnes`
|
||||
|
||||
# Le modèle de services
|
||||
|
||||
LDAP est basé sur un modèle **Client <> Serveur**. Le client transmet une
|
||||
requête décrivant une ou plusieurs actions à réaliser sur l'annuaire. Le serveur
|
||||
est lui responsable de sa réalisation. Le serveur renvoi alors le résultat ou
|
||||
une ou plusieurs références à d'autres serveurs susceptibles d'accéder à la
|
||||
demande du client.
|
||||
|
||||
Toutes les opération sont encapsulées dans une envelope commune : **le message
|
||||
LDAP** *(LDAPMEssage)*
|
||||
|
||||
Chaque requête possède son propre identifiant Il est possible de réutiliser cet
|
||||
identifiant si :
|
||||
|
||||
- la requête n'a pas été abandonnée
|
||||
- elle n'ai pas eu de réponse à l'instant donné.
|
||||
|
||||
Quelle que soit la requête, la réponse sera donné sous la forme d'un message
|
||||
*LDAPResult*
|
||||
|
||||
# Le modèle de sécurité
|
||||
|
||||
L'accès à l'annuaire LDAP peut se faire :
|
||||
|
||||
- en accès anonyme
|
||||
- par authentification via un mot de passe
|
||||
- par authentification par mot de passe via une liaison chiffrée TLS
|
||||
- par authentification forte via certificats
|
||||
- par authentification forte via certificats et liaison chiffrée TLS
|
||||
|
||||
# Le format LDIF
|
||||
|
||||
Le **LDIF** *LDAP Data Interchange Format* est un format de fichier de type
|
||||
texte (ASCII) utilisé pour la représentation des données issues d'un annuaire
|
||||
LDAP ou d'opération sur les données (mais pas les deux à la fois).
|
||||
|
||||
Il est donc utilisé pour faciliter les opérations d'importation et/ou
|
||||
d'exportation massive d'informations. Il contient une série d'enregistrements
|
||||
séparés par des séparateur de lignes. Un enregistrement décrit un enregistrement
|
||||
ou une modification.
|
||||
|
||||
Exemple :
|
||||
|
||||
```ldif
|
||||
dn: dmdName=Devices,ou=iut_mont-de-marsan,dc=universite, dc=education,dc=gouv,dc=fr
|
||||
dmdName: Devices
|
||||
objectClass: dmd
|
||||
objectClass: top
|
||||
dn: dmdName=Applications,ou=iut_mont-de-marsan,dc=universite,dc=education,dc=gouv,dc=fr
|
||||
dmdName: Applications
|
||||
objectClass: dmd
|
||||
objectClass: top
|
||||
```
|
||||
|
||||
Voir le format
|
||||
[LDIF](https://fr.wikipedia.org/wiki/LDAP_Data_Interchange_Format) sur
|
||||
Wikipedia.
|
198
content/installations/TDM_1-OpenLDAP/index.md
Normal file
198
content/installations/TDM_1-OpenLDAP/index.md
Normal file
|
@ -0,0 +1,198 @@
|
|||
---
|
||||
title: TDM1 OpenLDAP - notes d'installation
|
||||
date: 2018-09-13
|
||||
lastmod: 2018-08-27
|
||||
category: Installations
|
||||
tags: ['OpenLDAP', 'Apache Directory Studio', 'PAM']
|
||||
---
|
||||
|
||||
Le but de ce TD Machine est d'installer OpenLDAP sur une machine virtuelle, de
|
||||
configurer un DIT en `dc=u-bordeaux,dc=fr`, de gérer les personnes, matériels et
|
||||
fonctions et enfin de gérer l'authentification par le LDAP.
|
||||
|
||||
# Installation d'openLDAP sur Debian
|
||||
|
||||
Lors de l'installation, j'ai choisi de nommer la machine `openldap` et le
|
||||
`domaine u-bordeaux.fr`, ainsi lors du paramétrage de mon service, il sera
|
||||
accessible directement sur `openldap.u-bordeaux.fr`
|
||||
|
||||
Sur une Debian 9 il suffit d'installer les paquets `slapd` et `ldap-utils` avec
|
||||
la commande :
|
||||
|
||||
```shell
|
||||
apt install slapd ldap-utils
|
||||
```
|
||||
|
||||
Il est possible de définir simplement le domaine et le mot de passe de
|
||||
l'administrateur du serveur LDAP en reconfigurant le paquet avec la commande :
|
||||
|
||||
```shell
|
||||
dpkg-reconfigure -pHIGH slapd
|
||||
```
|
||||
|
||||
Il est aussi possible de le faire directement par l'intégration de fichiers LDIF
|
||||
dans l'annuaire.
|
||||
|
||||
# Intégration des personnes, fonctions et matériels
|
||||
|
||||
Nous allons créer 3 objets de type `dmd` *directory management domain* reprenant
|
||||
les trois catégories demandées. Lors de la création de mon arbre, j'ai cependant
|
||||
choisi cd créer des `ou` *organizational unit* mais c'est sémantiquement pas
|
||||
juste (ce serait valable pour le service marketing ou le site de Pessac par
|
||||
example).
|
||||
|
||||
À partir du moment ou le serveur LDAP est lancé, fonctionnel et l'administrateur
|
||||
créé, il est tout à fait possible de lancer cette étape depuis un logiciel comme
|
||||
Apache Directory studio ou phpldapmyadmin. Mais le but ici était de le faire
|
||||
depuis un fichier LDIF.
|
||||
|
||||
```LDIF
|
||||
dn: dmdName=users,dc=u-bordeaux,dc=fr
|
||||
dmdName: users
|
||||
objectClass: dMD
|
||||
|
||||
dn: dmdName=roles,dc=u-bordeaux,dc=fr
|
||||
dmdName: fonctions
|
||||
objectClass: dMD
|
||||
|
||||
dn: dmdName=machines,dc=u-bordeaux,dc=fr
|
||||
dmdName: machines
|
||||
objectClass: dMD
|
||||
```
|
||||
|
||||
Il suffit d'intégrer ce fichier à l'annuaire avec la commande `ldapadd` :
|
||||
|
||||
```shell
|
||||
ldapadd -H ldap://openldap.u-bordeaux.fr -D "cn=admin,dc=u-bordeaux,dc=fr" \
|
||||
-W -f tree.ldif
|
||||
```
|
||||
|
||||
- `-H <uri>` : URI d'accès au serveur LDAP
|
||||
- `-D <dn>` : dn du compte autorisé pour l'ajout (ici l'admin)
|
||||
- `-W` : demande le mot de passe
|
||||
- `-f <path>` : fichier LDIF contenant les entrées à ajouter.
|
||||
|
||||
## Effectuer une recherche dans l'annuaire
|
||||
|
||||
La recherche dans l'annuaire est importante dans la mesure ou elle va nous
|
||||
permettre de vérifier au fur et à mesure les données que l'on y ajoute.
|
||||
|
||||
```shell
|
||||
ldapsearch -x -W -D "cn=admin,dc=u-bordeaux,dc=fr" -b "dc=u-bordeaux,dc=fr" \
|
||||
"(objectClass=dMD)"
|
||||
```
|
||||
- `-W` : demande le mot de passe
|
||||
- `-D` : dn de l'admiistrateur du serveur
|
||||
- `-b` : chemin ou effectuer la rechercheo
|
||||
- `-x` : uriliser l'anthentification simple plutôt que SASL **déconseillé**
|
||||
- `(*)` : recherche
|
||||
|
||||
## Ajouter un mot de passe
|
||||
|
||||
```shell
|
||||
ldappasswd -H "ldap://ldapsrv.u-bordeaux.fr" -D "cn=admin,dc=u-bordeaux,dc=fr" \
|
||||
-W "uid=yorick.barbanneau,dmdName=users,dc=u-bordeaux,dc=fr"
|
||||
```
|
||||
|
||||
- `-H` : host du serveur LDAP à contacter
|
||||
|
||||
Les autres options sont similaires aux comances ci-dessus.
|
||||
|
||||
# Apache Directory Studio
|
||||
|
||||
C'est un logiciel permettant la gestion complète d'un annuaire LDAP. Écrit en
|
||||
java, c'est une application open-source sous licence Apache 2.
|
||||
|
||||
Pour l'installer, il faut disposer d'une interface graphique et d'un
|
||||
environnement d'exécution Java. Pour le TD, j'ai donc installé le bureau `Lxde` et
|
||||
`openjdk-8-jre`.
|
||||
|
||||
```shell
|
||||
apt install lxde openjdk-8-jre
|
||||
```
|
||||
|
||||
j'ai ensuite téléchargé la dernière version d'Apache Directory Studio sur [le
|
||||
site Apache](https://directory.apache.org/studio/download/download-linux.html).
|
||||
|
||||
Une fois le logiciel téléchargé et décompressé, je l'ai lancé puis ajoute la
|
||||
connexion au serveur LDAP dans *LDAP > nouvelle connexion*.
|
||||
|
||||
J'ai créé un groupe enfant de `dmdName=fonction,dc=u-bordeaux,dc=fr` avec comme `cn`
|
||||
users et un `gidNumber` de 2000
|
||||
|
||||
J'ai ensuite créé un utilisateur enfant de `dmdName=personnes,dc=u-bordeaux,dc=fr`
|
||||
avec comme classe `OrganizationalPerson` et `PosixAccount`. J'ai fait choisi
|
||||
un `uidMumber` suffisamment haut pour ne pas gêner ceux du système (2000)
|
||||
|
||||
On pourrait le modéliser dans le fichier LDIF suivant (à Corriger):
|
||||
|
||||
```LDIF
|
||||
dn: uid=yorick.barbanneau,dmdName=users,dc=u-bordeaux,dc=fr
|
||||
objectClass: top
|
||||
objectClass: person
|
||||
objectClass: organizationalPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: shadowAccount
|
||||
uid: yorick.barbanneau
|
||||
sn: Barbanneau
|
||||
cn: Yorick Barbanneau
|
||||
userpassword: {SSHA}......
|
||||
uidnumber: 2000
|
||||
gidnumber: 2000
|
||||
homedirectory: /home/yorick.barbanneau
|
||||
loginshell: /bin/bash
|
||||
```
|
||||
|
||||
# Authentification sur la machine avec les comptes LDAP
|
||||
|
||||
L'authentification machine depuis les données de l'annuaire nécessite
|
||||
l'installation et la configuration de deux paquets Debian :
|
||||
|
||||
```shell
|
||||
apt install libpam-ldap libnss-ldap
|
||||
```
|
||||
|
||||
L'installation entraine ici automatiquement le lancement de la configuration de
|
||||
certains éléments via debconf. il reste cependant des choses à configurer.
|
||||
|
||||
Tout d'abord le fichier `/etc/nsswitch.conf` :
|
||||
|
||||
```
|
||||
passwd: files ldap
|
||||
group: files ldap
|
||||
shadow: files ldap
|
||||
```
|
||||
|
||||
Ensuite il faut modifier le fichier `/etc/libnss-ldap.conf` et y modifier les champs
|
||||
`base` et `uri` en fonction de notre serveur
|
||||
|
||||
```
|
||||
uri ldap://openldap.u-bordeaux.fr
|
||||
base dc=u-bordeaux,dc=fr
|
||||
```
|
||||
|
||||
et redémarrer le service nscd :
|
||||
|
||||
```shell
|
||||
systemctl restart nscd
|
||||
```
|
||||
Enfin, il reste à configurer PAM afin qu'il créé le dossier utilisateur s'il
|
||||
n'existe pas. Dans le fichier `/etc/pam.d/common-account` rajouter la ligne :
|
||||
|
||||
```
|
||||
session required pam_mkhomedir.so skel=/etc/skel umask=0022
|
||||
```
|
||||
|
||||
Pour vérifier que tout fonctionne, lancer `getent passwd`, les utilisateurs
|
||||
venant du LDAP devraient apparaître dans la liste obtenue.
|
||||
|
||||
# Voir aussi
|
||||
|
||||
- [LDAP PAM sur la documentation Debian](https://wiki.debian.org/LDAP/PAM)
|
||||
- [LDAP Authentication (Archlinux)](https://wiki.archlinux.org/index.php/LDAP_authentication)
|
||||
- [SSSD](https://docs.pagure.org/SSSD.sssd/)
|
||||
|
||||
## SSSD
|
||||
|
||||
C'est une méthode d'authentification couplée à PAM qui semble intéressante : elle
|
||||
supporte la connexion même en mode hors-ligne grâce à un cache.
|
BIN
content/progsys/1-introduction/files/presentation.pdf
Normal file
BIN
content/progsys/1-introduction/files/presentation.pdf
Normal file
Binary file not shown.
106
content/progsys/1-introduction/index.md
Normal file
106
content/progsys/1-introduction/index.md
Normal file
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
title: "Programmation Système : Appels systèmes"
|
||||
date: 2018-09-04
|
||||
tags: ["programmation", "système", "appels système"]
|
||||
categories: ["Programmation système", "Cours"]
|
||||
---
|
||||
|
||||
# Qu'est ce que c'est?
|
||||
|
||||
C'est créer des programmes plutôt bas niveau qui s'interfacent avec le noyau
|
||||
et/ou les librairies du système. Il faut donc une bonne connaissance du
|
||||
fonctionnement du système et être en mesure d'identifier d'éventuels problèmes
|
||||
de performance.
|
||||
|
||||
# Le système d'exploitation
|
||||
|
||||
C'est un ensemble de logiciels fournissant les services nécessaires à
|
||||
l'exécution de programmes pour l'utilisateur final :
|
||||
|
||||
- exécution de programmes
|
||||
- accès aux matériels
|
||||
- accès au(x) système(s) de fichier(s)
|
||||
- accès mémoire
|
||||
- accès réseau
|
||||
|
||||
## POSIX et IEE
|
||||
|
||||
La norme POSIX, standard IEEE, définie les interfaces utilisateurs et
|
||||
logiciels, la ligne de commande standard et son interface de scripts, les
|
||||
entrées / sorties de base. les attributs de fichiers (permissions)
|
||||
|
||||
La norme SUS *Single Unie Specification* est une norme plus récente et moins
|
||||
contraignante. elle est basée sur les travaux de l'IEEE et de l'Open Group.
|
||||
|
||||
[SUS][https://fr.wikipedia.org/wiki/Single_UNIX_Specification] et
|
||||
[POSIX][https://fr.wikipedia.org/wiki/POSIX] sur Wikipedia
|
||||
|
||||
## LSB
|
||||
|
||||
LSB ou *Linux Standard Base* définie l'agencement général du système GNU / Linux
|
||||
: librairies standard, commandes POSIX étendues, hiérarchie du système de
|
||||
fichiers, les runlevels etc.
|
||||
|
||||
[LSB][https://fr.wikipedia.org/wiki/Linux_Standard_Base] sur Wikipedia.
|
||||
|
||||
## Architecture des systèmes "modernes"
|
||||
|
||||
Ils sont organisés en couches un peu à la façon du modèle OSI :
|
||||
|
||||
1. le matériel
|
||||
2. l'assemblage (assembleur)
|
||||
3. système (applications système)
|
||||
4. Application
|
||||
N. Les applications / machines virtuelles (capables de traverser les couches
|
||||
pour atteindre le matériel)
|
||||
|
||||
Plus la couche est basse, plus la programmation est efficace du point de vue
|
||||
des performances mais plus difficile est la portabilité (un code assembleurs et
|
||||
moins portable qu'un script Python)
|
||||
|
||||
Les systèmes modernes possèdent deux espaces d'exécutions :
|
||||
|
||||
- l'espace utilisateur `user-space` ou `user-land`
|
||||
- l'espace noyau `kernel-space` ou `kernel-land`
|
||||
|
||||
# La libc
|
||||
|
||||
La `libc` est la librairie standard des système GNU/ Linux, elle implémente
|
||||
les fonctionnalités de base pour la plupart des programmes. C'est une API pour
|
||||
accéder aux services du noyau :
|
||||
|
||||
- entrées /sorties
|
||||
- allocation fine de la mémoire
|
||||
- gestion du temps
|
||||
- encapsulation des appels noyau et en dehors du noyau (user-land)
|
||||
|
||||
# Programme et processus
|
||||
|
||||
Un programme est un fichier exécutable stocké sur un disque (mémoire morte). Un
|
||||
processus et un programme mais en mémoire (et donc en cours d'exécution). Un
|
||||
processus est défini par son identifiant (PID) et accède à un espace d'adressage
|
||||
en mémoire vive (pour la pile, les données ...)
|
||||
|
||||
# Descripteurs de fichiers
|
||||
|
||||
Un descripteur de fichier pour *file descriptor* (abrégé *fd*) est un entier
|
||||
positif affecté par le noyau pour référencer un fichier utilisé par un
|
||||
processus. Il est bon de préciser que dans la philosophie Unix, tout est
|
||||
fichier, le *fd* se retrouve donc pour les fichiers, sockets, tubes,
|
||||
périphériques etc.
|
||||
|
||||
# Les appels système
|
||||
|
||||
Ils permettent de demander au noyau de réaliser une action précise et se font au
|
||||
travers de la libc. Voici comment cela se passe :
|
||||
|
||||
- Préparer les arguments en les positionnant dans des registres spécifiques
|
||||
pour le noyau
|
||||
- placer le numéro d'appel système dans un registre spécifique invoquer
|
||||
- l'instruction `trap` qui bascule le processeur en mode noyau
|
||||
|
||||
Le noyau invoque `system_call` après validation des arguments et retourne le
|
||||
résultat à la libc :
|
||||
|
||||
- en cas d'erreur la libc invoque `errno` avec en résultat le code erreur
|
||||
- sinon le résultat
|
BIN
content/progsys/2-fichiers/files/presentation.pdf
Normal file
BIN
content/progsys/2-fichiers/files/presentation.pdf
Normal file
Binary file not shown.
251
content/progsys/2-fichiers/index.md
Normal file
251
content/progsys/2-fichiers/index.md
Normal file
|
@ -0,0 +1,251 @@
|
|||
---
|
||||
title: "Les fichiers"
|
||||
date: 2018-09-11
|
||||
categories: ["Programmation système", "Cours"]
|
||||
tags: ["fichiers", "descripteurs", "c"]
|
||||
---
|
||||
|
||||
Dans la philosophie Unix, tout est fichiers, les entrees sorties sont donc
|
||||
symbolisées par des manipulations de fichiers. Celles-ci se font par le biais de
|
||||
**descripteurs de fichiers**, il représente le point d'entrée d'un fichier pout
|
||||
un processus.
|
||||
|
||||
Pour chaque programme en cours d'exécution, le noyau maintient une table des
|
||||
fichiers ouverts. Cette table contient entres autres le descripteur de fihers
|
||||
(un nombre entier non signé) et la **position du curseur** ( *file offset* ).
|
||||
|
||||
Le curseur est la position où aura lieu la prochaine opération (lecture /
|
||||
écriture). Cette position est exprimée en octets.
|
||||
|
||||
Il existe cependant 3 types particuliers de descripteur de fichiers :
|
||||
|
||||
- l'entrée standard (0 ou `STDIN_FILENO`)
|
||||
- la sortie standard (1 ou `STDOUT_FILENO`)
|
||||
- la sortie d'erreur (2 ou `STDERR_FILENO`)
|
||||
|
||||
## Les appels système de base
|
||||
|
||||
### open()
|
||||
|
||||
```c
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
int open(const char *pathname, int flags);
|
||||
int open(const char *pathname, int flags, mode_t mode);
|
||||
```
|
||||
|
||||
Cet appel système ouvre le fichier dont le chemin est `pathname` et retourne un
|
||||
descripteur de fichier. En vas de problème, la fonction `open()`retourne -1.
|
||||
|
||||
#### flag
|
||||
|
||||
`flag` est un masquage de bits permettant de spécifier le mode d'accès :
|
||||
|
||||
flag | utilisation
|
||||
---------|------------
|
||||
O RDONLY | Lecture seule
|
||||
O WRONLY | Écriture seule
|
||||
O RDWR | Lecture et écriture
|
||||
O CREAT | Création du fichier s'il n'existe pas
|
||||
O TRUNC | Troncature du fichier
|
||||
... | ...
|
||||
O APPEND | Écriture à la fin du fichier
|
||||
|
||||
#### mode
|
||||
|
||||
C'est aussi un masquage de bits définissant le node du fichier en vas de
|
||||
création :
|
||||
|
||||
| mode | octal | utilisation |
|
||||
|---------|-------|--------------------------------------------------------
|
||||
| S_IRWXU | 00700 | Le propriétaire a le droit de lire, écrire, exécuter |
|
||||
| S_IRUSR | 00400 | L’utilisateur a le droit de lire |
|
||||
| S IWUSR | 00200 | L'utilisateur a le droit d'écrire |
|
||||
| S IXUSR | 00100 | L'utilisateur a le droit d'exécuter |
|
||||
| S_IRWXG | 00070 | Le groupe a le droit de lire, écrire, exécuter |
|
||||
| S_IRGRP | 00040 | Le groupe a le droit de lire |
|
||||
| S IWGRP | 00020 | Le groupe a le droit d'écrire |
|
||||
| S IXGRP | 00010 | Le groupe a le droit d'exécuter |
|
||||
| S_IRWXO | 00007 | Le propriétaire a le droit de lire, écrire, exécuter |
|
||||
| S_IROTH | 00004 | L’utilisateur a le droit de lire |
|
||||
| S IWOTH | 00002 | L'utilisateur a le droit d'écrire |
|
||||
| S IXOTH | 00001 | L'utilisateur a le droit d'exécuter |
|
||||
|
||||
#### Exemple en C
|
||||
|
||||
```c
|
||||
fd = open("test1.txt", O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
|
||||
```
|
||||
Ouvre un fichier `test.txt`, s'il n'existe pas il sera créé. Il est ouvert en
|
||||
lecture - écritur seul le propriétaire a le droit de lire et d'écrire.
|
||||
|
||||
#### Exemple en Python
|
||||
|
||||
Il est possible de faire les même action en Python avec les modules `stat` et
|
||||
`os`.
|
||||
|
||||
```python
|
||||
import os, stat
|
||||
f = os.open("test1.txt",
|
||||
os.O_RDWR | os.O_CREAT | os.O_TRUNC,
|
||||
stat.S_IRUSR | stat.S_IWUSR)
|
||||
f = open("test1.txt", 'w+', 0o600) # umask issue
|
||||
```
|
||||
|
||||
Ce programme réalise les mêmes actions que ci-dessus mais en Python
|
||||
|
||||
### read()
|
||||
|
||||
Cet appel système lit des données d'un fichiers
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
|
||||
ssize_t read(int fd, void *buf, size_t count);
|
||||
```
|
||||
|
||||
Lit au plus `count` octets depuis le fichier référencé par le descripteur `fd`
|
||||
et les stocke dans `*buff`. Renvoie 0 s'il n'y a plus d'octets à lire ou -1 si
|
||||
la commande échoue
|
||||
|
||||
### write()
|
||||
|
||||
Écrits des données sur un fichier
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
ssize_t write(int fd, const void *buf, size_t count);
|
||||
```
|
||||
|
||||
Lit au plus `count` octets depuis la zone mémoire depuis `*buf` et les écrits
|
||||
dans le fichier référencé par `fd`. Renvoie le nombre d'octets écrits ou -1 si
|
||||
la commande échoue. Le nombre d'octets écrits peut être inférieur à `count`
|
||||
(plus de place disponible par exemple).
|
||||
|
||||
### close()
|
||||
|
||||
Ferme un fichier, rend libère le descripteur associé et les ressources associées
|
||||
allouées par le noyau.
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
int close(int fd);
|
||||
```
|
||||
|
||||
Renvoie 0 en cas de réussite et -1 s'il échoue.
|
||||
|
||||
### Exemple de lecture-ecriture
|
||||
|
||||
### en c
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#define BUFMAX 32
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
char buffer[BUFMAX];
|
||||
int count;
|
||||
count = read(STDIN_FILENO, buffer, BUFMAX);
|
||||
if (count == -1) {
|
||||
write(STDERR_FILENO, "Unable to read stdin\n", 21);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
write(STDOUT_FILENO, "Input data was: ", 16);
|
||||
write(STDOUT_FILENO, buffer, count);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
```
|
||||
|
||||
### en Python
|
||||
|
||||
```Python
|
||||
#!/usr/bin/python3
|
||||
import os, sys
|
||||
def main():
|
||||
#buf = sys.stdin.read() # Ctrl-D for EOF
|
||||
try:
|
||||
buf = input()
|
||||
except EOFError:
|
||||
buf = ''
|
||||
except Exception as e:
|
||||
sys.stderr.write("Unable to read stdin: %s", e)
|
||||
sys.exit(os.EX_DATAERR)
|
||||
sys.stdout.write("Input data was: %s" % (buf))
|
||||
sys.exit(os.EX_OK)
|
||||
main()
|
||||
```
|
||||
|
||||
### lseek()
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
off_t lseek(int fd, off_t offset, int whence);
|
||||
```
|
||||
|
||||
Renvoie en octets depuis le début du fichier la nouvelle position du curseur.
|
||||
Cet appel système modifie seulement la table de fichiers ouverts mais ne
|
||||
provoque pas d'accès au système de fichiers.
|
||||
|
||||
### whence
|
||||
|
||||
position | utilisation
|
||||
---------|------------
|
||||
SEEK_SET | le curseur est placé à `offset` octets depuis le début du fichier
|
||||
SEEK_CUP | le curseur est déplacé de `offset` depuis sa position courante
|
||||
SEEK_END | le curseur est déplacé de `offset` octets après la fin de fichier
|
||||
|
||||
### fichiers à trou
|
||||
|
||||
Si l'on positionne le curseur après la fin du fichier puis une opération
|
||||
d'écriture, on créé alors un **trou**. Les données à l'intérieur du trou
|
||||
contiennent 0 pour notre fichier, mais ne prenne pas d'espace disque.
|
||||
|
||||
Ces **fichiers à trou** aussi appelés *sparse files* permettent d'utiliser le
|
||||
système de fichier de manière plus efficace surtout lorsque le fichier est
|
||||
majoritairement vide. Ils sont utilisés pour les bases de données, les images
|
||||
disques, les fichiers journaux etc.
|
||||
|
||||
### Unlink ()
|
||||
|
||||
Détruit un nom dans le système de fichiers. Si ce nom était le dernier lien vers
|
||||
un fichier et que celui-ci n'est ouvert dans aucun processus, il est effacé et
|
||||
l'espace qu'il occupait est marqué comme disponible.
|
||||
|
||||
Si ce fichier et encore ouvert par un processus, il continu d'exister jusqu'à ce
|
||||
que le dernier descripteur de fichier le référençant soit fermé.
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
int unlink(const char *pathname);
|
||||
```
|
||||
|
||||
## La librairie stdio
|
||||
|
||||
La librairie sdtio.h fourni par la librairie standard permet de manipuler les
|
||||
fichiers avec des fonction de plus haut niveau.
|
||||
|
||||
Les fonction de cette librairie n'opèrent pas directement sur les descripteurs
|
||||
de fichiers (notion spécifiques à Unix) mais sur des pointeur sur une structure
|
||||
de type *FILE*. Elle contient entres autres :
|
||||
|
||||
- le descripteur de fichier
|
||||
- un champ *flag* indiquant l'état du flux
|
||||
- une mémoire tampon
|
||||
- la position courante dans le tampon
|
||||
|
||||
Chaque appel système de gestion de fichiers a un équivalent dans `stdio`.
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
FILE *fopen(const char *path, const char *mode);
|
||||
FILE *fdopen(int fd, const char *mode);
|
||||
int fclose(FILE *stream);
|
||||
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
|
||||
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
|
||||
int fseek(FILE *stream, long offset, int whence);
|
||||
int fflush(FILE *stream);
|
||||
int fprintf(FILE *stream, const char *format, ...);
|
||||
```
|
262
content/progsys/3-processus/index.md
Normal file
262
content/progsys/3-processus/index.md
Normal file
|
@ -0,0 +1,262 @@
|
|||
---
|
||||
title: "Les processus"
|
||||
date: 2018-09-18
|
||||
categories: ["Programmation système", "Cours"]
|
||||
tags: ["processus", "programme", "c"]
|
||||
---
|
||||
|
||||
Il ne faut pas confondre processus et programme, un processus étant une
|
||||
instance chargée en mémoire et en cours d'exécution d'un programmme. Plusieurs
|
||||
instance d'un programme peuvent s'exécuter en même temps.
|
||||
|
||||
À chaque processus est assicié un identidiant (PID) et un espace de stockage en
|
||||
mémoire pou y stocker la pile, les données, le code etc. (espace d'adressage).
|
||||
|
||||
Un programme contient toutes les informations nécessaire à la création du
|
||||
processus :
|
||||
|
||||
- un format binaire ELF (historiquement a.out, Coff)
|
||||
- le point d'entrée de la première instruction
|
||||
- les données
|
||||
- les information de débogage
|
||||
- les information sur les librairies partagées
|
||||
|
||||
Un processus est une entité abstraite connue du noyau aui lui alloue des
|
||||
ressources pour son execution. Du point de vue du noyau un processus consiste en
|
||||
:
|
||||
|
||||
- En mode **user**
|
||||
- une portion d'espace mémoire
|
||||
- le code du programme
|
||||
- les variables auquelles le programme a accès
|
||||
- em mode **kernel**
|
||||
- Une structure de données de l'état du processus
|
||||
- la table des fichiers ouverts
|
||||
- la table de la mémoire allouée
|
||||
- le répertoire courant
|
||||
- la priorité
|
||||
- le gestionnaire d'évènements (signaux, fin de programmes ...)
|
||||
- les limites du processus
|
||||
|
||||
## le PID
|
||||
|
||||
Il est créé par le noyau et aussi utilisé dans l'espace utilisateur (`kill`,
|
||||
`ps`, `nice`)
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
|
||||
pid_t getpid(void)
|
||||
```
|
||||
|
||||
Renvoi le PID du processus appelant. Cette fonction est ouvent utilisée par des
|
||||
routines qui créées des fichiers temporaires uniques.
|
||||
|
||||
`pid_t` est un type abstrait pouvant être transtypé en `int`, sa valeur maximale
|
||||
est définie dans `/proc/sys/kernel/pid_max`
|
||||
|
||||
## Démarrage d'un programme en C
|
||||
|
||||
Un programme en C commence toujours par la fonction `main()` :
|
||||
|
||||
```c
|
||||
int main (int argc, char **argv) {
|
||||
}
|
||||
```
|
||||
|
||||
- `argc` : entier, nombres d'arguments passés
|
||||
- `**argv` : tableau de pointeurs, arguments passés
|
||||
|
||||
L’invocateur du programme (ex: le shell) exécute l’appel système execvp et
|
||||
utilise les arguments passés au programme comme paramètres.
|
||||
|
||||
### exemple
|
||||
|
||||
```shell
|
||||
$ mycommand --color -l -s
|
||||
|
||||
argv = ["mycommand", "--color", "-l", "-s"]
|
||||
argc = 4
|
||||
```
|
||||
|
||||
on récupèrera les paramètres avec le code c suivant :
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(int argc, char **argv){
|
||||
for (int i=0; i<argc; i++){
|
||||
printf("Argument %i value %s",i, argv[i]);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
La boucle aurait pu aussi être écrite comme suit :
|
||||
|
||||
```c
|
||||
for(int i=0; argv[i] != NULL; i++){}
|
||||
```
|
||||
|
||||
## Terminer un programme
|
||||
|
||||
Il y a deux façons de terminer un programme :
|
||||
|
||||
- **nomale** : par la fin du `main()`, un `exit()` : nettoyage de toutes les
|
||||
ressources, appel de `close()` sur tous les descripteurs de fichiers etr
|
||||
appel du getionnaire de sorties (*exit handlers*)
|
||||
- **anormale** : par la réception d'un signal (kill par exemple)
|
||||
|
||||
Par conventionm un programme qui termine correctement renvoi 0, dinon il renvoi
|
||||
un entier positif.
|
||||
|
||||
### atexit
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
int atexit(void (*function)(void));
|
||||
```
|
||||
|
||||
La fonction `atexit()` enregistre la fonction donnée pour que celle-ci soit
|
||||
automatiquement appelée lorsque le programme se termine normalement avec exit(3)
|
||||
ou lors de la fin de la fonction main. Les fonctions ainsi enregistrées sont
|
||||
invoquées dans l'ordre inverse de leur enregistrement ; aucun argument n'est
|
||||
transmis `atexit()` renvoie 0 en cas de succès et une valeur non nulle en cas
|
||||
d'échec
|
||||
|
||||
## Mémoire allouée
|
||||
|
||||
La mémoire allouée à chaque processus est divisée en segments :
|
||||
|
||||
- **le segment texte**, en lecture seule contient les instructions en langage
|
||||
machine (le binaire su programme au format *ELF*)
|
||||
- **le segment des données initialisées** qui contient les variables globales
|
||||
et statiques explicitement initialisées. Les valeurs de ces variables sont
|
||||
lues depuis le fichiers exécutables lorsqu'il est chargé.
|
||||
- **le segment des données non-initialisées** aui contient des variables
|
||||
globales et statiques non explicitement initialisées (BSS)
|
||||
- **la pile** appelées aussi *stack* est un segment dynamique aui s'étend et se
|
||||
réduit. Il contient des blocs de pile appelés *stack frame* par fonction
|
||||
appelée. Une *frame* contient les variables locales et la/les valeur(s) de
|
||||
retour de la fonction.
|
||||
- **le tas** aussi appelé *heap* est une zone où la mémoire peut être
|
||||
dynamiquement allouée pour les variables à l'exécution du programme.
|
||||
|
||||
L'espace mémoire d'un processus est virtuel car celui-ci n'adresse pas
|
||||
directement la mémoire. Les processus sont isolées du noyau et le noyau
|
||||
maintient un tableau de pages mémoires aui adresse les pages de la mémoire
|
||||
physique. Un processus peut adressser plus de mémoire que le système en a de
|
||||
disponible.
|
||||
|
||||
Sous Unix, un processus est définis sous forme arborescente : chacun d'eux a un
|
||||
processus parent (mis à pat le 1 - processus d'init) et chacun a aucun, un ou
|
||||
plusieurs fils.
|
||||
|
||||
## Création de processus
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
|
||||
pid_t fork(void);
|
||||
```
|
||||
|
||||
Après le `fork()`, le processus parent continue normalement son exécution. Le
|
||||
processus fils commence son exécution juste après. On distingue le parent du
|
||||
fils par la valeur de retour du `fork()` 0 pour le fils, le *PID* du fils pour
|
||||
le père). Le fils est une copie du père cependant seule les zones modifiées sont
|
||||
vraiment copiées. Le segment *text* est partagé entre les deux
|
||||
|
||||
Après le `fork()`, la table des fichiers est partagées entre le parent et
|
||||
l'enfant. Ainsi si l'offset est modifié dans un des processus, il le sera aussi
|
||||
pour l'autre. Cela permet entres autres de faire collaborer les processus sur
|
||||
les mêmes données.
|
||||
|
||||
### exemple de `fork()`
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
int main (int argc, char **argv) {
|
||||
pid_t pid;
|
||||
printf("Starting process with PID=%d\n", getpid());
|
||||
pid = fork();
|
||||
if (pid < 0) {
|
||||
perror("Unable to fork");
|
||||
}
|
||||
else if (pid == 0) {
|
||||
printf("Starting child with PID=%d (my parent PID=%d)\n", getpid
|
||||
}
|
||||
else {
|
||||
printf("Still in process with PID=%d\n", getpid());
|
||||
}
|
||||
printf("Finishing process with PID=%d\n", getpid());
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
```
|
||||
|
||||
## Terminaison de processus
|
||||
|
||||
Quelle que soit la façon dont se termine un processus (père comme fils), le
|
||||
noyau nettoie les ressources allouées. Il stocke cependant le status de
|
||||
terminaison du fils jusqu'au moment ou le père en prend connaissance.
|
||||
|
||||
Lorsque le père se termine, le processus fils devient enfant de 1 (*PID* 1)
|
||||
|
||||
### Processus zombies
|
||||
|
||||
Lorsqu'un processus enfant est terminé mais que le parent n'a toujours pas pris
|
||||
connaissance de sa terminaison, il devient alors un processus zombie. Ce dernier
|
||||
continue de consommer des ressources noyau (code de terminaison, entrée dans la
|
||||
table des processus etc.)
|
||||
|
||||
### Attendre la fin d'un processus enfant
|
||||
|
||||
```c
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
pid_t waitpid(pid_t pid, int *status, int options);
|
||||
pid_t wait(int *status); // waitpid(-1, &status, 0);
|
||||
// en cas de réussite, l'identifiant du processus fils
|
||||
// terminé (ou changé) est renvoyé ; en cas d'erreur,
|
||||
// la valeur de retour est -1
|
||||
```
|
||||
|
||||
L'appel système `waitpid()` permet d'attendre la fin d'un processus. C'est un
|
||||
appel bloquant (sauf avec certaines options). Il retourne une erreur s'il n'y a
|
||||
pas de processus fils. Lorsque le processus fils se termine, la variable
|
||||
`status` contient son code de retour.
|
||||
## Création d'un nouveau processus
|
||||
|
||||
Sous Unix, la création d'un nouveau processus et l'exécution d'un programme sont
|
||||
deux choses distinctes. L'exécution d'un nouveau processus ne créé pas de
|
||||
nouveau processus, il remplace juste le programme appelant en allant chercher
|
||||
les données sur le système de fichiers.
|
||||
|
||||
À l'exécution, tous les segments son réinitialisés comme si le programme avait
|
||||
été exécuté normalement.
|
||||
|
||||
L'exécution d'un programme se fait grâce à l'appel `execve()`
|
||||
|
||||
```c
|
||||
#include <unistd.h>
|
||||
extern char **environ;
|
||||
int execl(const char *path, const char *arg, ..., (char *) NULL);
|
||||
int execlp(const char *file, const char *arg, ..., (char *) NULL);
|
||||
int execle(const char *path, const char *arg, ...,(char *) NULL, char *const envp[]);
|
||||
int execv(const char *path, char *const argv[]);
|
||||
int execvp(const char *file, char *const argv[]);
|
||||
int execvpe(const char *file, char *const argv[], char *const envp[]);
|
||||
|
||||
// Une sortie des fonctions exec() n'intervient que si une erreur s'est
|
||||
// produite. La valeur de retour est -1, et errno contient le code
|
||||
// d'erreur.
|
||||
```
|
||||
|
||||
## Le format ELF
|
||||
|
||||
ELF pour *Executable and Linkable Format* est utilisé pour l'exécution de code
|
||||
compilé. Dévellopé par Unix System Labortatories, il est utilisé par Linux, BSD,
|
||||
System V, IRIX, SPARC.
|
||||
|
||||
|
BIN
content/progsys/TDM_1-appels_systemes/files/tdm1.pdf
Normal file
BIN
content/progsys/TDM_1-appels_systemes/files/tdm1.pdf
Normal file
Binary file not shown.
39
content/progsys/TDM_1-appels_systemes/index.md
Normal file
39
content/progsys/TDM_1-appels_systemes/index.md
Normal file
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
title: Programmation systeme TDM 1
|
||||
date: 2018-09-05
|
||||
categorie: ['Programmation système', 'TDM']
|
||||
tags : ['appels', 'systèmes', 'Python', 'C']
|
||||
---
|
||||
#Différence entre les strace C et Python
|
||||
|
||||
Le strace python est plus volumineux, ce aui semble normal puisque le code est
|
||||
interprété, et charge par conséquent l'ensemble de l'environnement d'execution
|
||||
Python. *(36 lignes pour le C contre 613 pour le Python)*.
|
||||
|
||||
Cependant il y a aussi beaucoup des similitudes, comme l'appel à la libc et les
|
||||
commamdes envoyées au kernel (write).
|
||||
|
||||
On peut donc en déduire que le temps d'exécution pour la version Python est plus
|
||||
grande avec plus d'appels système.
|
||||
|
||||
## temps d'execution comparé avec strace -tt
|
||||
|
||||
- C : début 17:52:29.647826 fin 17:52:29.668778
|
||||
- Python : début 17:50:49.455004 fin 17:50:49.769447
|
||||
|
||||
La différence de temps d'execution apparaît clairement ici
|
||||
|
||||
# Tracer un programme en cours d'exécution
|
||||
|
||||
J'ai essayé de tracer htop lancé dans un autre terminal mais j'ai une erreur
|
||||
(Opération non permise). En passant par root pour lancer mon strace, il
|
||||
fonctionne. L'affichage du strace est continue logique puisque le programme
|
||||
tournant en arrière plan, il continue de faire des appels systèmes (surveillance
|
||||
des processus du sytèmes)
|
||||
|
||||
Il est dont logique que je ne puisse pas stracer le processus 0, même apres
|
||||
avoir modifier la variable sysctl yama.
|
||||
|
||||
# Avec le sleep
|
||||
|
||||
On constate un appel système de plus (nanosleep) avant le write.
|
8
content/progsys/TDM_1-appels_systemes/src/hello_world.c
Normal file
8
content/progsys/TDM_1-appels_systemes/src/hello_world.c
Normal file
|
@ -0,0 +1,8 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main (){
|
||||
printf("Hello World\n");
|
||||
sleep(5);
|
||||
exit(0);
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main (){
|
||||
printf("Hello World\n");
|
||||
sleep(5);
|
||||
exit(0);
|
||||
}
|
BIN
content/progsys/TDM_2-fichiers/files/tdm2.pdf
Normal file
BIN
content/progsys/TDM_2-fichiers/files/tdm2.pdf
Normal file
Binary file not shown.
7
content/progsys/TDM_2-fichiers/index.md
Normal file
7
content/progsys/TDM_2-fichiers/index.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "TDM : Les fichiers"
|
||||
date: 2018-09-11
|
||||
categories : ['Programmation système', 'TDM']
|
||||
---
|
||||
|
||||
Pas encore de contenu
|
26
content/progsys/TDM_2-fichiers/src/question1.c
Normal file
26
content/progsys/TDM_2-fichiers/src/question1.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main () {
|
||||
char buffer[32];
|
||||
int ret, read_ret;
|
||||
int next_read = 1;
|
||||
do {
|
||||
read_ret = read(STDIN_FILENO, buffer, 1);
|
||||
switch ( read_ret ) {
|
||||
case -1 :
|
||||
write (STDERR_FILENO,"Error when reading\n", 19);
|
||||
exit(EXIT_FAILURE);
|
||||
case 0:
|
||||
next_read = 0;
|
||||
break;
|
||||
default:
|
||||
ret = write(STDOUT_FILENO, buffer, 1);
|
||||
if ( ret == -1){
|
||||
write (STDERR_FILENO,"Error when writing\n", 19);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
} while ( next_read );
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
27
content/progsys/TDM_2-fichiers/src/question2.c
Normal file
27
content/progsys/TDM_2-fichiers/src/question2.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
int main () {
|
||||
int fd,i;
|
||||
char alphabet[26] = "abcdefghijklmnopqrstuvwxyz";
|
||||
|
||||
//open file
|
||||
fd = open("tp2-q2.txt",O_WRONLY | O_CREAT, S_IRWXU);
|
||||
if ( fd == -1 ) {
|
||||
write(STDERR_FILENO,"Error when opening file\n", 25);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
for (i=0;i<26;i++) {
|
||||
if ( write(fd, &alphabet[i], 1) == -1 || write(fd,"\n",1) == -1){
|
||||
write (STDERR_FILENO,"Error when writing\n", 19);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
//Clode file
|
||||
if ( close(fd) == -1){
|
||||
write(STDERR_FILENO, "Can't close file.\n", 18);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
24
content/progsys/TDM_2-fichiers/src/question3.c
Normal file
24
content/progsys/TDM_2-fichiers/src/question3.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/fcntl.h>
|
||||
#define HOLE 10000
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
int fd = open("td2-q3.txt", O_WRONLY | O_CREAT, S_IRWXU);
|
||||
if ( fd < 0) {
|
||||
write(STDOUT_FILENO, "Error : can't open file\n", 24);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
for (int i=0;i<4;i++){
|
||||
if ( write(fd, "A", 1) == -1 || lseek(fd, HOLE, SEEK_CUR) == -1) {
|
||||
write(STDOUT_FILENO, "Error : can't write to file.\n", 29);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
if ( close(fd) == -1) {
|
||||
write(fd,"Error : can't close file.\n", 26);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
24
content/progsys/TDM_2-fichiers/src/question4.c
Normal file
24
content/progsys/TDM_2-fichiers/src/question4.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define BUFFER 32
|
||||
|
||||
int main () {
|
||||
char read_error[] = "Error when reading input.\n";
|
||||
#include <string.h>
|
||||
char buff[BUFFER];
|
||||
FILE *out, *in;
|
||||
in = fdopen(STDIN_FILENO, "r");
|
||||
out = fdopen(STDOUT_FILENO,"w");
|
||||
int count;
|
||||
while ((count = fread(&buff, BUFFER,1,in)) > 0)
|
||||
{
|
||||
fwrite(&buff, BUFFER,1,out);
|
||||
}
|
||||
if ( count == -1 ){
|
||||
fwrite(&read_error, strlen(read_error) + 1,1,fdopen(STDERR_FILENO,"w"));
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
33
content/progsys/TDM_2-fichiers/src/question5.c
Normal file
33
content/progsys/TDM_2-fichiers/src/question5.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
void output_error() {
|
||||
fprintf(stderr,"Error : %s\n",strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int main() {
|
||||
char *file = "tp2_q5.txt";
|
||||
FILE *f = fopen(file,"w");
|
||||
char m[56] = "\0";
|
||||
char ret = '\n';
|
||||
if ( f == NULL ){
|
||||
output_error();
|
||||
}
|
||||
for(char i='a' ;i<='z' ; i++){
|
||||
strncat(m,&i,1);
|
||||
strncat(m,&ret,1);
|
||||
}
|
||||
fwrite(&m,strlen(m) + 1,1,f);
|
||||
if ( ferror(f) ) {
|
||||
output_error();
|
||||
}
|
||||
fclose(f);
|
||||
if ( ferror(f) ){
|
||||
output_error();
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
BIN
content/progsys/TDM_3-processus/files/tdm3.pdf
Normal file
BIN
content/progsys/TDM_3-processus/files/tdm3.pdf
Normal file
Binary file not shown.
59
content/progsys/TDM_3-processus/index.md
Normal file
59
content/progsys/TDM_3-processus/index.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
Title: "TDM : Les Processus"
|
||||
Date: 2018-09-18
|
||||
Category: Programmation système
|
||||
tags: ['TD Machine', 'programmation', 'C', 'processus']
|
||||
---
|
||||
|
||||
[Télécharger les questions](./files/tdm3.pdf)
|
||||
## Question 1
|
||||
|
||||
Sans exécuter le programme, je pense qu'il y aura Il y a 4 processus de créé.
|
||||
|
||||
```
|
||||
q1.bin─┬─q1.bin
|
||||
│
|
||||
├─q1.bin
|
||||
└─q1.bin
|
||||
```
|
||||
|
||||
Les processus se "clonent" et l'arbre des processus est plus complexe que prévu
|
||||
: il y a 8 processus au total.
|
||||
|
||||
```shell
|
||||
$ ./q1.bin &
|
||||
[1] 8895
|
||||
$ pstree 8895
|
||||
q1.bin─┬─q1.bin─┬─q1.bin───q1.bin
|
||||
│ └─q1.bin
|
||||
├─q1.bin───q1.bin
|
||||
└─q1.bin
|
||||
```
|
||||
|
||||
## Question 2
|
||||
|
||||
Je suis parti au départ pour créer la commande avec une boucle for pour
|
||||
parcourir `*argv` mais il est plus simple de construire la commande avec
|
||||
` &argv[1]` qui retourne le tableau après l'élément 1.
|
||||
|
||||
```C
|
||||
int out = execvp(argv[1], &argv[1]);
|
||||
```
|
||||
J'ai aussi fait en sorte que le programme père se termine sur un `EXIT_FAILURE`
|
||||
si le fils se termine sur une erreur.
|
||||
|
||||
```C
|
||||
while ((pid = waitpid(pid, &status, 0)) > 0){
|
||||
(status == 0) ? exit(EXIT_SUCCESS) : exit(EXIT_FAILURE);
|
||||
}
|
||||
```
|
||||
Télécharger mon [code](./src/td3/q2.c).
|
||||
|
||||
## Question 3
|
||||
|
||||
Ma proposition était un peu complexe et surtout ne correspondant pas vraiment à
|
||||
la demande. J'ai donc modifié ma réponde (q3bis.c)
|
||||
|
||||
Télécharger mon [code](./src/td3/q3.c).
|
||||
Et la version remaniée [code](./src/td3/q3bis.c).
|
||||
|
9
content/progsys/TDM_3-processus/src/q1.c
Normal file
9
content/progsys/TDM_3-processus/src/q1.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
int main(int argc, char **argv) {
|
||||
fork();
|
||||
fork();
|
||||
fork();
|
||||
sleep(10);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
33
content/progsys/TDM_3-processus/src/q2.c
Normal file
33
content/progsys/TDM_3-processus/src/q2.c
Normal file
|
@ -0,0 +1,33 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
pid_t pid;
|
||||
int status;
|
||||
pid = fork ();
|
||||
if ( pid < 0 ){
|
||||
printf("Error: %s\n", strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if ( pid == 0){
|
||||
printf(" Into child, command : %s\n",argv[1]);
|
||||
// we are in children
|
||||
int out = execvp(argv[1], &argv[1]);
|
||||
if ( out == -1 ){
|
||||
printf("Error : %s\n",strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
else {
|
||||
// if child exit code is not 0 then exit father with EXIT_FAILURE
|
||||
while ((pid = waitpid(pid, &status, 0)) > 0){
|
||||
(status == 0) ? exit(EXIT_SUCCESS) : exit(EXIT_FAILURE);
|
||||
};
|
||||
}
|
||||
}
|
37
content/progsys/TDM_3-processus/src/q3.c
Normal file
37
content/progsys/TDM_3-processus/src/q3.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
int main(int argc, char **argv){
|
||||
if (argc > 2) {
|
||||
printf("Error : %s must have one argument\n", argv[0]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (argv[1] == NULL) {
|
||||
printf("Execute child process\n");
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
else {
|
||||
int x = atoi(argv[1]);
|
||||
printf("Number of children to create : %d\n", x);
|
||||
for (int i=0; i < x ; i++){
|
||||
int pid = fork();
|
||||
if (pid == -1) {
|
||||
printf("Error : %s", strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (pid == 0) {
|
||||
// we are in our children
|
||||
if ((execl(argv[0],"",NULL)) < 0 ) {
|
||||
printf("Error : %s\n", strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
35
content/progsys/TDM_3-processus/src/q3bis.c
Normal file
35
content/progsys/TDM_3-processus/src/q3bis.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
int main(int argc, char **argv){
|
||||
if (argv[1] == NULL) {
|
||||
printf("Error : %s must have one argument\n", argv[0]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
printf("Execute programme number %s\n",argv[1]);
|
||||
int r = atoi(argv[1]) - 1;
|
||||
if (r > 0){
|
||||
int pid = fork();
|
||||
if (pid == -1) {
|
||||
printf("Error : %s", strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (pid == 0) {
|
||||
// we are in our children
|
||||
char args[12] = "";
|
||||
sprintf(args,"%i", r);
|
||||
if ((execl(argv[0], argv[0], args, NULL)) < 0 ) {
|
||||
printf("Error : %s\n", strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("This is the end!\n");
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
BIN
content/progsys/TDM_4-les_signaux/files/tdm4.pdf
Normal file
BIN
content/progsys/TDM_4-les_signaux/files/tdm4.pdf
Normal file
Binary file not shown.
21
content/progsys/TDM_4-les_signaux/src/q1.c
Normal file
21
content/progsys/TDM_4-les_signaux/src/q1.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int i;
|
||||
|
||||
void signal_sigint(){
|
||||
printf("value : %d\n",i);
|
||||
//exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
int main () {
|
||||
if((signal(SIGINT,signal_sigint)) == SIG_ERR){
|
||||
perror("unable to catch signal");
|
||||
}
|
||||
for (i=0; i<1000000; i++) {
|
||||
sleep(0.01);
|
||||
}
|
||||
}
|
||||
|
45
content/progsys/TDM_4-les_signaux/src/q2.c
Normal file
45
content/progsys/TDM_4-les_signaux/src/q2.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include <signal.h>
|
||||
#include <sys/wait.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define PAUSE 60
|
||||
#define CHILDREN 2
|
||||
int pids[CHILDREN];
|
||||
|
||||
void signal_sigterm () {
|
||||
for(int i=0; i<CHILDREN; i++){
|
||||
// do nothing if whe are in childs
|
||||
if (pids[i] > 0) {
|
||||
if ((kill(pids[i],15)) == -1){
|
||||
perror("Error in signal catch\n");
|
||||
}
|
||||
printf("Sending SIGTERM to child %d\n", pids[i]);
|
||||
}
|
||||
else{
|
||||
printf("\tKilling me\n");
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main( int argc, char **argv){
|
||||
printf("Starting father with pid %d\n", getpid());
|
||||
int status;
|
||||
for (int i=0;i<CHILDREN;i++){
|
||||
pids[i] = fork();
|
||||
if (pids[i] == 0) {
|
||||
sleep(PAUSE);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
else {
|
||||
printf ("Starting child with pid : %d\n", pids[i]);
|
||||
}
|
||||
}
|
||||
if((signal(SIGTERM,signal_sigterm)) == SIG_ERR){
|
||||
perror("unable to catch signal");
|
||||
}
|
||||
waitpid(-1, &status,0);
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
BIN
content/progsys/TDM_5-threads/files/tdm5.pdf
Normal file
BIN
content/progsys/TDM_5-threads/files/tdm5.pdf
Normal file
Binary file not shown.
22
content/progsys/TDM_5-threads/index.md
Normal file
22
content/progsys/TDM_5-threads/index.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title : "TDM : Les processus légers"
|
||||
category: Programmation système
|
||||
date: 2018-09-25
|
||||
---
|
||||
[télécharger les questions](./files/tdm5.pdf)
|
||||
|
||||
## Question 1
|
||||
|
||||
Comme vu en TD, les résultats ne sont pas ceux attendu du fait de l'absence de
|
||||
mutex. Je constate aussi qu'ils varient aussi d'une execution sur l'autre.
|
||||
|
||||
### avec un mutex
|
||||
|
||||
J'obtiens la valeur attendue pour blob.
|
||||
|
||||
[Voir mon code dans mutex](./src/td5/q1.c)
|
||||
[Voir mon code avec mutex](./src/td5/q1_mutex.c)
|
||||
|
||||
## Question 2
|
||||
|
||||
[Voir mon code](./src/td5/q2.c)
|
44
content/progsys/TDM_5-threads/src/q1.c
Normal file
44
content/progsys/TDM_5-threads/src/q1.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
|
||||
//define
|
||||
#define THREADS 2
|
||||
#define ITERATIONS 1000000
|
||||
|
||||
static long glob = 0;
|
||||
|
||||
void *tmain( void *arg){
|
||||
long tmp;
|
||||
for (int i=0; i < ITERATIONS; i++){
|
||||
tmp = glob;
|
||||
tmp++;
|
||||
glob = tmp;
|
||||
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
pthread_t *t;
|
||||
void *res;
|
||||
// memory allocation for threads
|
||||
if ( (t=calloc(THREADS, sizeof(pthread_t))) == NULL) {
|
||||
perror("Unable ro allocate memory for pthread");
|
||||
}
|
||||
for (int i=0; i < THREADS; i++){
|
||||
if (pthread_create(&t[i],NULL, tmain, &"") != 0){
|
||||
perror("unable to create thread\n");
|
||||
}
|
||||
}
|
||||
// Need to block parent thread until brother thread are finished
|
||||
for (int j=0;j < THREADS; j++){
|
||||
// bloc main thread exec with pthread_join()
|
||||
if (pthread_join(t[j], &res) != 0){
|
||||
perror ("Unable to join process");
|
||||
}
|
||||
}
|
||||
printf("glob is %ld, should be 2000000\n", glob);
|
||||
free(t);
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
52
content/progsys/TDM_5-threads/src/q1_mutex.c
Normal file
52
content/progsys/TDM_5-threads/src/q1_mutex.c
Normal file
|
@ -0,0 +1,52 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
|
||||
//define
|
||||
#define THREADS 2
|
||||
#define ITERATIONS 1000000
|
||||
|
||||
static long glob = 0;
|
||||
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
void *tmain( void *arg){
|
||||
long tmp;
|
||||
for (int i=0; i < ITERATIONS; i++){
|
||||
if (pthread_mutex_lock(&mutex) != 0) {
|
||||
perror("Mutex lock failed");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
tmp = glob;
|
||||
tmp++;
|
||||
glob = tmp;
|
||||
if (pthread_mutex_unlock(&mutex) != 0) {
|
||||
perror("Mutex lock failed");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
pthread_t *t;
|
||||
void *res;
|
||||
// memory allocation for threads
|
||||
if ( (t=calloc(THREADS, sizeof(pthread_t))) == NULL) {
|
||||
perror("Unable ro allocate memory for pthread");
|
||||
}
|
||||
for (int i=0; i < THREADS; i++){
|
||||
if (pthread_create(&t[i],NULL, tmain, &"") != 0){
|
||||
perror("unable to create thread\n");
|
||||
}
|
||||
}
|
||||
// Need to block parent thread until brother thread are finished
|
||||
for (int j=0;j < THREADS; j++){
|
||||
// bloc main thread exec with pthread_join()
|
||||
if (pthread_join(t[j], &res) != 0){
|
||||
perror ("Unable to join process");
|
||||
}
|
||||
}
|
||||
printf("glob is %ld, should be 2000000\n", glob);
|
||||
free(t);
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
40
content/progsys/TDM_5-threads/src/q2.c
Normal file
40
content/progsys/TDM_5-threads/src/q2.c
Normal file
|
@ -0,0 +1,40 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
|
||||
//define
|
||||
#define THREADS 5
|
||||
#define ITERATIONS 5
|
||||
#define SLEEP 2
|
||||
|
||||
void *tmain( void *arg){
|
||||
for (int i=0; i < ITERATIONS; i++){
|
||||
sleep(SLEEP);
|
||||
printf("I'm alive : %i\n",(int) pthread_self());
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
pthread_t *t;
|
||||
void *res;
|
||||
// memory allocation for threads
|
||||
if ( (t=calloc(THREADS, sizeof(pthread_t))) == NULL) {
|
||||
perror("Unable ro allocate memory for pthread");
|
||||
}
|
||||
for (int i=0; i < THREADS; i++){
|
||||
if (pthread_create(&t[i],NULL, tmain, &"") != 0){
|
||||
perror("unable to create thread\n");
|
||||
}
|
||||
}
|
||||
// Need to block parent thread until brother thread are finished
|
||||
for (int j=0;j < THREADS; j++){
|
||||
// bloc main thread exec with pthread_join()
|
||||
if (pthread_join(t[j], &res) != 0){
|
||||
perror ("Unable to join process");
|
||||
}
|
||||
}
|
||||
free(t);
|
||||
exit (EXIT_SUCCESS);
|
||||
}
|
BIN
content/progsys/TDM_6-tubes/files/tdm6.pdf
Normal file
BIN
content/progsys/TDM_6-tubes/files/tdm6.pdf
Normal file
Binary file not shown.
6
content/progsys/TDM_6-tubes/index.md
Normal file
6
content/progsys/TDM_6-tubes/index.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "TDM6 : les tubes"
|
||||
date: 2018-10-09
|
||||
---
|
||||
|
||||
|
59
content/progsys/TDM_6-tubes/src/q1.c
Normal file
59
content/progsys/TDM_6-tubes/src/q1.c
Normal file
|
@ -0,0 +1,59 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define BUFFMAX 256
|
||||
#define OUTPATH "packages.list"
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
pid_t pid;
|
||||
int fds[2], status;
|
||||
if (pipe(fds) == -1) {
|
||||
perror ("Unable to create pipe");
|
||||
}
|
||||
|
||||
pid = fork();
|
||||
if (pid == -1) {
|
||||
perror("Unable to fork");
|
||||
}
|
||||
|
||||
else if(pid > 0){
|
||||
// father
|
||||
printf("Fork : Init father...\n");
|
||||
if (close(fds[1]) == -1) {
|
||||
perror("Unable to close pipe from parent");
|
||||
}
|
||||
// Waiting for children to terminate
|
||||
char buff[BUFFMAX];
|
||||
FILE *fout = fopen(OUTPATH,"w");
|
||||
if ( fout == NULL ){
|
||||
perror("");
|
||||
}
|
||||
int n;
|
||||
while ((n=read(fds[0], &buff, BUFFMAX)) > 0){
|
||||
if ( fwrite(&buff, n, 1, fout) == -1 ){
|
||||
perror("Error when writing output");
|
||||
}
|
||||
}
|
||||
if ( fclose(fout) == -1){
|
||||
perror("Error ou outp[ut file close");
|
||||
}
|
||||
wait(&status);
|
||||
}
|
||||
else {
|
||||
// children
|
||||
if (close(fds[0]) == -1) {
|
||||
perror("Unable to close pipe from child");
|
||||
}
|
||||
if ( dup2(fds[1], STDOUT_FILENO) != STDOUT_FILENO){
|
||||
perror("Unable to duplicate files descriptors");
|
||||
}
|
||||
if ( close(fds[1]) == -1 ){
|
||||
perror ("error on pipe in close");
|
||||
}
|
||||
execlp("pacman","pacman","-Qs", NULL);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
64
content/reseau/1-introduction-reseau/index.md
Normal file
64
content/reseau/1-introduction-reseau/index.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
date: "2018-09-03"
|
||||
categories: ["Réseau", "Cours"]
|
||||
title: "Réseaux - Introduction"
|
||||
tags: ["OSI", "latence", "débit"]
|
||||
---
|
||||
|
||||
Le principe de ce cours est de permettre de savoir configurer et gérer un réseau
|
||||
d'entreprise.
|
||||
|
||||
# La pile OSI (vue rapide)
|
||||
|
||||
elle se découpe en 7 couches a connaitre par cœur.
|
||||
|
||||
1. Physique : les bits *câble, ondes, fibre, ADSL ...*
|
||||
2. Liaison : on parle de **trames** *Ethernet, WiFi*
|
||||
3. Réseau : acheminement - **paquets** *IP, IPX*
|
||||
4. Transport : accusé de réception, port, **datagramme** *TCP, UDP, IPX*
|
||||
5. Session : qui? quoi? *CAS (SSO)*
|
||||
6. Présentation : encodage, langue *UTF-8, XML*
|
||||
7. Application : tout le reste.
|
||||
|
||||
Voir schema sur l'encapsulation
|
||||
|
||||
# Latence et débit
|
||||
|
||||
Voir schema Page 3
|
||||
|
||||
**Débit** : Quantité d'information que l'on est capable d'envoyer / recevoir
|
||||
dans un certain laps de temps.
|
||||
|
||||
**Latence** : Temps entre le moment ou j'envoie mon premier bit est envoyé et où
|
||||
il est reçu. La latence est indépendante du débit. La latence étant difficile à
|
||||
mesurer, il est commun d'utiliser plutôt le temps d'un aller retour.
|
||||
|
||||
Les deux notions ne sont pas liées même s'il est possible que l'une impacte
|
||||
l'autre. On considère que l'expérience utilisateur n'est plus fluide à partir de
|
||||
10ms de latence et n'est plus "interactive" à partir de 100ms.
|
||||
|
||||
## Exercice
|
||||
|
||||
Calculer le débit nécessaire pour envoyer une vidéo de 640x360 à 25hz et 24
|
||||
bits/pixels et un fichier audio 16 bits à 48 Khz
|
||||
|
||||
### fichier vidéo
|
||||
|
||||
Une image de notre fichier vidéo se compose donc de **230400** pixels et donc
|
||||
pèse **5529**Kb *(5529600 bits)*. Pour 24 images il faut un débit de
|
||||
**138240**Kb/s
|
||||
|
||||
### fichier audio
|
||||
|
||||
Une seconde de flux audio représentant 48000 valeurs de 16 bits le débit
|
||||
nécessaire est donc de **768**Kb/s. Je suis parti du principe que le fichier
|
||||
audio en question est mono.
|
||||
|
||||
## Correction
|
||||
|
||||
Prendre des approximations, ne pas s'embêter des détails.
|
||||
|
||||
Pour comparaison
|
||||
|
||||
- Fichier vidéo h264 400-100 Kb/s
|
||||
- Fichier audio 128 Kb/s
|
127
content/reseau/2-couches-liaison-reseau/index.md
Normal file
127
content/reseau/2-couches-liaison-reseau/index.md
Normal file
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
title: "Le modèle OSI - la couche physique, la couche liaison et la couche réseau"
|
||||
date: 2018-09-05
|
||||
categories: ["Réseau", "Cours"]
|
||||
tags: ["physique", "cable", "fibre", "wifi"]
|
||||
---
|
||||
|
||||
Les normes 801.## concerne en général la couche physique voire la couche liaison
|
||||
voir la page [IEEE 802](https://fr.wikipedia.org/wiki/IEEE_802) sur Wikipedia.
|
||||
|
||||
# Les câbles
|
||||
|
||||
On parles souvent de câble RJ45 ou câble Ethernet, il est plus juste de parler
|
||||
de câble à paires torsadées et fiches RJ45. Pourquoi les fils sont torsadés?
|
||||
tout simplement pour minimiser les perturbations
|
||||
[diaphoniques](https://fr.wikipedia.org/wiki/Diaphonie) induites par les fils
|
||||
entre eux. Le tout est souvent enveloppé dans un blindage soit par
|
||||
paire et/ou pour l'ensemble.
|
||||
|
||||
Voir la page des [paires
|
||||
torsadées](https://fr.wikipedia.org/wiki/Paire_torsad%C3%A9e) sur Wikipedia
|
||||
|
||||
# La fibre optique
|
||||
|
||||
Le principe est de faire passer de la lumière dans un fil en utilisant les
|
||||
propriété réfractrice de la lumière. La fibre est en fait composée, en son cœur,
|
||||
de deux couches avec des indice de réfraction différent afin de contenir la
|
||||
lumière en la faisant rebondir.
|
||||
|
||||
De par leurs longueur d'onde différentes, il est tout à fait possible d'utiliser
|
||||
plusieurs couleurs de lumières afin d'envoyer plusieurs signaux en simultané.
|
||||
|
||||
On parle de *fibre noire* lorsque la fibre est livrée telle quelle, c'est au
|
||||
client de "l'allumer" et fournissant les boitiers d'alimentation (émetteur et
|
||||
récepteurs).
|
||||
|
||||
A contrario, la fibre allumée est fournie avec sa "lumière" c'est par contre le
|
||||
prestataire (FAI par exemple) qui attribuera la couleur de la lumière.
|
||||
|
||||
Voir [la fibre optique](https://fr.wikipedia.org/wiki/Fibre_optique) sur
|
||||
Wikipedia
|
||||
|
||||
# Le WiFi
|
||||
|
||||
Le WiFi, utilisé pour l'ensemble des normes 802.11, couvre un ensemble de
|
||||
protocoles de communication sans fils utilisant les ondes radioélectriques en
|
||||
utilisant des bandes de fréquences autour de 2,4 Ghz (normes a,b,g,n) et
|
||||
5 Ghz(n,ac)
|
||||
|
||||
La norme découpe des canaux dans les bandes définie (14 utilisables dont 11 en
|
||||
France pour celle 2,4 Ghz et 25 utilisable pour 5 Ghz)
|
||||
|
||||
On trouve deux type d'antennes pour le WiFi :
|
||||
|
||||
- **directionnelle** : le signal est envoyé dans une direction en particulier,
|
||||
qui permet de diminuer l'atténuation et d'augmenter la portée.
|
||||
- **omnidirectionnelle** : le signal est envoyé dans toute les directions, ce
|
||||
qui diminue la portée.
|
||||
|
||||
Voir la page du [WiFi](https://fr.wikipedia.org/wiki/Wi-Fi) sur Wikipédia.
|
||||
|
||||
## Le théorème de Shannon
|
||||
|
||||
Voir [la
|
||||
page](https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_d%27%C3%A9chantillonnage)
|
||||
Wikipedia.
|
||||
|
||||
# Les adresses
|
||||
|
||||
Quel que soit le type de réseau, il y a forcément une notion d'adresse
|
||||
sous-jacente. Pou Internet, réseau de réseaux, on dénombre trois type d'adresses
|
||||
|
||||
## Adresse MAC
|
||||
|
||||
Inscrite directement dans le matériel (carte réseau ethernet, wifi ...). Cette
|
||||
adresse est utilisée localement (réseau interne) est codée sur 48bits en
|
||||
hexadécimal : 24 étant spécifique au constructeur et 24 au matériel. Deux
|
||||
périphériques peuvent avoir la même adresse MAC, mais le fabriquant se
|
||||
débrouillera pour les envoyer à des coins opposés du monde pour ne pas qu'ils se
|
||||
retrouve sur le même réseau local.
|
||||
|
||||
## Adresse IP
|
||||
|
||||
C'est une adresse virtuelle, dans le sens ou elle n'est pas inscrite en dur dans
|
||||
le matériel comme l'adresse MAC. Elle est globale, routable et doit être unique.
|
||||
Il en existe deux type IPv4 et IPv6
|
||||
|
||||
### IPv4
|
||||
|
||||
C'est le type d'adresse le plus ancien, une adresse IPv4 se compose de 4 valeurs
|
||||
décimales séparées par des points (32 bits). Il est donc possible d'en attribuer
|
||||
environ 4 milliards. C'est aujourd'hui une ressource rare épuisée dans certaines
|
||||
partie du globe (États-Unis par exemple).
|
||||
|
||||
### IPv6
|
||||
|
||||
C'est le type d'adresse le plus récent, il a été créé pour pallier à la pénurie
|
||||
d'IPv4. Une adresse IPv6 est composée de 128 bits en hexadécimal regroupés en
|
||||
paquet de 16 bits séparés par des deux-points (:).
|
||||
|
||||
Elles sont plus facilement structurées, prenons l'exemple de la machine 4 de la
|
||||
salle 101 du CREMI, son adresse est
|
||||
|
||||
```
|
||||
2001:660:6101:800:252:4
|
||||
```
|
||||
|
||||
- `2001:660` correspond au réseau
|
||||
[RENATER](https://fr.wikipedia.org/wiki/R%C3%A9seau_national_de_t%C3%A9l%C3%A9communications_pour_la_technologie,_l%27enseignement_et_la_recherche0
|
||||
- `:6101` c'est la région (Aquitaine - Bordeaux)
|
||||
- `:800` c'est le bâtiment du CREMI
|
||||
- `:252` c'est le numéro de salle
|
||||
- `:4` c'est le poste.
|
||||
|
||||
On voit ici que le découpage de l'adresse IPv6 la rend lisible.
|
||||
|
||||
## Le masque de sous réseau
|
||||
|
||||
Il permet de distinguer la partie utilisée pour le routage de celle utilisée
|
||||
pour numéroter les interface d'une adresse IP.
|
||||
|
||||
En IPv4, le masque de sous réseau distingue les bits d'une adresse IP
|
||||
identifiant le sous-réseau et ceux identifiant l'hôte.
|
||||
|
||||
En IPv6, le masque est appelé préfixe et est un multiple de 4 afin de découper
|
||||
des morceaux entiers d'adresse pour les sous réseau, facilitant ainsi la vie de
|
||||
tout le monde.
|
729
content/reseau/3-protocoles/images/Tcp_close.svg
Normal file
729
content/reseau/3-protocoles/images/Tcp_close.svg
Normal file
|
@ -0,0 +1,729 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="801.19281"
|
||||
height="440.46127"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="tcp_close.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3816"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3819"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3813"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6,-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DotS"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="DotS"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3854"
|
||||
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
|
||||
transform="matrix(0.2,0,0,0.2,1.48,0.2)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3795"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3807"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3789"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective3606"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3681"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3756"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4427"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5228"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5259"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5298"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5353"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5384"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5415"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5446"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5498"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5575"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5603"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8519"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8541"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8563"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8585"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8607"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8629"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8651"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8673"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698-0"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698-6"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698-4"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698-5"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective8698-06"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10160"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective10193"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="472.12883"
|
||||
inkscape:cy="160.3244"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:snap-grids="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="952"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4"
|
||||
inkscape:window-maximized="1"
|
||||
objecttolerance="5"
|
||||
guidetolerance="5">
|
||||
<sodipodi:guide
|
||||
position="0.59648418,-587.56936"
|
||||
orientation="0,744.09448"
|
||||
id="guide3620" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5523"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0.59648418,-24.331562)">
|
||||
<rect
|
||||
style="fill:#ff9191;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.19259691px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822-1"
|
||||
width="299.81329"
|
||||
height="391.21613"
|
||||
x="500.18671"
|
||||
y="72.980232" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.88286018px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="646.30457"
|
||||
y="47.63348"
|
||||
id="text3628"
|
||||
transform="scale(1.003674,0.99633941)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3630"
|
||||
x="646.30457"
|
||||
y="47.63348">Computer B</tspan></text>
|
||||
<rect
|
||||
style="fill:#98ff91;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.19296837px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822"
|
||||
width="300"
|
||||
height="391.21613"
|
||||
x="0"
|
||||
y="72.980232" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:39.8644371px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
id="text3632"
|
||||
transform="scale(1.0040254,0.99599073)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3634"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
style="font-size:31.89155006px;text-align:center;text-anchor:middle">Computer A</tspan></text>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.48322684;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3"
|
||||
width="180"
|
||||
height="51.216137"
|
||||
x="99.236809"
|
||||
y="72.980232"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="189.69531"
|
||||
y="107.17815"
|
||||
id="text5563"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565"
|
||||
x="189.69531"
|
||||
y="107.17815"
|
||||
style="fill:#000000">ESTABLISHED</tspan></text>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.64488679;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-7-3"
|
||||
width="180"
|
||||
height="91.216133"
|
||||
x="519.23682"
|
||||
y="72.980232"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="609.69531"
|
||||
y="127.17815"
|
||||
id="text5563-8"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-7"
|
||||
x="609.69531"
|
||||
y="127.17815"
|
||||
style="fill:#000000">ESTABLISHED</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="415.58517"
|
||||
y="60.728451"
|
||||
id="text8431"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.98542395,0.17011655,-0.17011655,0.98542395,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8433"
|
||||
x="415.58517"
|
||||
y="60.728451"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8469">Fin</tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8459"> seq=x</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="373.54782"
|
||||
y="225.66434"
|
||||
id="text8435"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.99245298,-0.12262578,0.12262578,0.99245298,0,0)"
|
||||
inkscape:transform-center-x="7.4752714"
|
||||
inkscape:transform-center-y="-3.858387"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8437"
|
||||
x="375.76657"
|
||||
y="225.66434"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8473">Ack </tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8457">ack=x+1 </tspan></tspan></text>
|
||||
<rect
|
||||
style="fill:#f0f0f0;fill-opacity:1;stroke:#000000;stroke-width:0.6039384;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4"
|
||||
width="180"
|
||||
height="80"
|
||||
x="99.236809"
|
||||
y="124.19637"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.76987344;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-2"
|
||||
width="180"
|
||||
height="130"
|
||||
x="519.23682"
|
||||
y="164.19637"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#f0f0f0;fill-opacity:1;stroke:#000000;stroke-width:0.76987344;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-7"
|
||||
width="180"
|
||||
height="130"
|
||||
x="99.236809"
|
||||
y="204.19637"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#f0f0f0;fill-opacity:1;stroke:#000000;stroke-width:0.60851151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-2-7"
|
||||
width="180"
|
||||
height="81.216133"
|
||||
x="519.23682"
|
||||
y="292.98022"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#f0f0f0;fill-opacity:1;stroke:#000000;stroke-width:0.60851151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-7-9"
|
||||
width="180"
|
||||
height="81.216133"
|
||||
x="99.236809"
|
||||
y="334.19638"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:0.60851151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-2-7-3"
|
||||
width="180"
|
||||
height="81.216133"
|
||||
x="519.23682"
|
||||
y="372.98022"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:0.42704886;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3-4-7-9-1"
|
||||
width="180"
|
||||
height="39.999989"
|
||||
x="99.236809"
|
||||
y="414.19641"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="190.46143"
|
||||
y="169.82854"
|
||||
id="text5563-9"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8"
|
||||
x="190.46143"
|
||||
y="169.82854"
|
||||
style="fill:#000000">FIN_WAIT_1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="190.46143"
|
||||
y="275.43658"
|
||||
id="text5563-9-6"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-5"
|
||||
x="190.46143"
|
||||
y="275.43658"
|
||||
style="fill:#000000">FIN_WAIT_2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="190.46143"
|
||||
y="381.04468"
|
||||
id="text5563-9-2"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-8"
|
||||
x="190.46143"
|
||||
y="381.04468"
|
||||
style="fill:#000000">TIME_WAIT</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="189.28369"
|
||||
y="442.79211"
|
||||
id="text5563-9-0"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-2"
|
||||
x="189.28369"
|
||||
y="442.79211"
|
||||
style="fill:#000000">CLOSED</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="610.46143"
|
||||
y="235.55379"
|
||||
id="text5563-9-8"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-6"
|
||||
x="610.46143"
|
||||
y="235.55379"
|
||||
style="fill:#000000">CLOSE_WAIT</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="610.46143"
|
||||
y="339.82855"
|
||||
id="text5563-9-09"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-0"
|
||||
x="610.46143"
|
||||
y="339.82855"
|
||||
style="fill:#000000">LAST_ACK</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="610.46143"
|
||||
y="419.82849"
|
||||
id="text5563-9-1"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-8-3"
|
||||
x="610.46143"
|
||||
y="419.82849"
|
||||
style="fill:#000000">CLOSED</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="M 280,94.864807 520,134.86481"
|
||||
id="path8770"
|
||||
transform="translate(-0.76319253,24.331562)"
|
||||
inkscape:connector-type="polyline" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 520,144.86481 -240,30"
|
||||
id="path8968"
|
||||
transform="translate(-0.76319253,24.331562)"
|
||||
inkscape:connector-type="polyline" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="333.56494"
|
||||
y="391.52441"
|
||||
id="text8431-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.98435455,-0.17619907,0.17619907,0.98435455,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8433-9"
|
||||
x="333.56494"
|
||||
y="391.52441"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8469-3">Fin</tspan><tspan
|
||||
style="font-size:16px;fill:#0000ff"
|
||||
id="tspan8459-4"> seq=y</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="441.86334"
|
||||
y="322.15979"
|
||||
id="text8435-4"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.99302658,0.11789067,-0.11789067,0.99302658,0,0)"
|
||||
inkscape:transform-center-x="6.2070095"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8437-6"
|
||||
x="444.08209"
|
||||
y="322.15979"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8473-0">Ack </tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8457-6"><tspan
|
||||
style="fill:#0000ff"
|
||||
id="tspan10216">ack=y+1 </tspan></tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 520,264.86481 -240,40"
|
||||
id="path10218"
|
||||
transform="translate(-0.76319253,24.331562)"
|
||||
inkscape:connector-type="polyline" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 280,314.86481 240,30"
|
||||
id="path10416"
|
||||
transform="translate(-0.76319253,24.331562)"
|
||||
inkscape:connector-type="polyline" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:89.99999762%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="403.79932"
|
||||
y="228.19637"
|
||||
id="text10614"
|
||||
sodipodi:linespacing="89.999998%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan10616"
|
||||
x="406.29541"
|
||||
y="228.19637"
|
||||
style="fill:#000080">Connection is </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="403.79932"
|
||||
y="244.39636"
|
||||
id="tspan10622"
|
||||
style="fill:#000080">half-closed</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="403.79932"
|
||||
y="260.59637"
|
||||
id="tspan10620"
|
||||
style="fill:#000080">Computer B can still</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="403.79932"
|
||||
y="276.79636"
|
||||
id="tspan10618"
|
||||
style="fill:#000080">send data to A</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 29 KiB |
589
content/reseau/3-protocoles/images/Tcp_connect.svg
Normal file
589
content/reseau/3-protocoles/images/Tcp_connect.svg
Normal file
|
@ -0,0 +1,589 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="801.2359"
|
||||
height="421.23608"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="tcp_connect.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3816"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3819"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3813"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6,-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DotS"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="DotS"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3854"
|
||||
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
|
||||
transform="matrix(0.2,0,0,0.2,1.48,0.2)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3795"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3807"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3789"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective3606"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3681"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3756"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4427"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5228"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5259"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5298"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5353"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5384"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5415"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5446"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5498"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5575"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5603"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="374.63645"
|
||||
inkscape:cy="151.10332"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:snap-grids="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="952"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4"
|
||||
inkscape:window-maximized="1"
|
||||
objecttolerance="5"
|
||||
guidetolerance="5">
|
||||
<sodipodi:guide
|
||||
position="0.61803794,-619.38197"
|
||||
orientation="0,744.09448"
|
||||
id="guide3620" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5523"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0.61803794,-11.744145)">
|
||||
<rect
|
||||
style="fill:#edff91;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.23569119px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822-1"
|
||||
width="299.81329"
|
||||
height="420"
|
||||
x="500.18671"
|
||||
y="12.362183" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.88286018px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="646.30457"
|
||||
y="47.63348"
|
||||
id="text3628"
|
||||
transform="scale(1.003674,0.99633941)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3630"
|
||||
x="646.30457"
|
||||
y="47.63348">Server</tspan></text>
|
||||
<rect
|
||||
style="fill:#91fffb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.23607588px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822"
|
||||
width="300"
|
||||
height="420"
|
||||
x="0"
|
||||
y="12.362183" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:39.8644371px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
id="text3632"
|
||||
transform="scale(1.0040254,0.99599073)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3634"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
style="font-size:31.89155006px;text-align:center;text-anchor:middle">Client</tspan></text>
|
||||
<rect
|
||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:0.79893541;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206"
|
||||
width="180"
|
||||
height="140"
|
||||
x="100"
|
||||
y="72.362183"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="190.04688"
|
||||
y="150.95789"
|
||||
id="text5547"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5549"
|
||||
x="190.04688"
|
||||
y="150.95789">CLOSED</tspan></text>
|
||||
<g
|
||||
id="g5625">
|
||||
<rect
|
||||
ry="0"
|
||||
rx="0"
|
||||
y="212.36218"
|
||||
x="100"
|
||||
height="80"
|
||||
width="180"
|
||||
id="rect5206-2-1"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.6039384;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5551"
|
||||
y="258.71375"
|
||||
x="189.70703"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
xml:space="preserve"><tspan
|
||||
y="258.71375"
|
||||
x="189.70703"
|
||||
id="tspan5553"
|
||||
sodipodi:role="line">SYN_SENT</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g5640">
|
||||
<rect
|
||||
ry="0"
|
||||
rx="0"
|
||||
y="132.36218"
|
||||
x="520"
|
||||
height="120"
|
||||
width="180"
|
||||
id="rect5206-2"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.73967052;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5555"
|
||||
y="200.95203"
|
||||
x="610.11133"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
xml:space="preserve"><tspan
|
||||
y="200.95203"
|
||||
x="610.11133"
|
||||
id="tspan5557"
|
||||
sodipodi:role="line">LISTEN</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g5645">
|
||||
<rect
|
||||
ry="0"
|
||||
rx="0"
|
||||
y="252.36218"
|
||||
x="520"
|
||||
height="80"
|
||||
width="180"
|
||||
id="rect5206-2-7"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.6039384;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5559"
|
||||
y="298.71375"
|
||||
x="610.10547"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
xml:space="preserve"><tspan
|
||||
y="298.71375"
|
||||
x="610.10547"
|
||||
id="tspan5561"
|
||||
sodipodi:role="line">SYN_RVCD</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g5630">
|
||||
<rect
|
||||
ry="0"
|
||||
rx="0"
|
||||
y="292.36218"
|
||||
x="100"
|
||||
height="140"
|
||||
width="180"
|
||||
id="rect5206-2-3"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.79893541;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5563"
|
||||
y="370.95203"
|
||||
x="189.69531"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
xml:space="preserve"><tspan
|
||||
y="370.95203"
|
||||
x="189.69531"
|
||||
id="tspan5565"
|
||||
sodipodi:role="line">ESTABLISHED</tspan></text>
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#c8c8c8;fill-opacity:1;stroke:#000000;stroke-width:0.52030438;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-1"
|
||||
width="180"
|
||||
height="59.37719"
|
||||
x="520"
|
||||
y="72.362183"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="610.04688"
|
||||
y="110.64648"
|
||||
id="text5547-1"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5549-3"
|
||||
x="610.04688"
|
||||
y="110.64648">CLOSED</tspan></text>
|
||||
<g
|
||||
id="g5650">
|
||||
<rect
|
||||
ry="0"
|
||||
rx="0"
|
||||
y="332.36218"
|
||||
x="520"
|
||||
height="100"
|
||||
width="180"
|
||||
id="rect5206-2-7-3"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.67522365;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5563-8"
|
||||
y="390.95203"
|
||||
x="609.69531"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
xml:space="preserve"><tspan
|
||||
y="390.95203"
|
||||
x="609.69531"
|
||||
id="tspan5565-7"
|
||||
sodipodi:role="line">ESTABLISHED</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g8451"
|
||||
transform="translate(-26,0)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5675"
|
||||
y="202.36218"
|
||||
x="114.05469"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
xml:space="preserve"><tspan
|
||||
y="202.36218"
|
||||
x="119.04688"
|
||||
id="tspan5677"
|
||||
sodipodi:role="line">socket() </tspan><tspan
|
||||
id="tspan5679"
|
||||
y="224.86218"
|
||||
x="119.04688"
|
||||
sodipodi:role="line">connect() </tspan></text>
|
||||
<path
|
||||
inkscape:connector-type="polyline"
|
||||
id="path5681"
|
||||
d="m 120,192.36218 0,35"
|
||||
style="fill:#ff0000;stroke:#ff0000;stroke-width:1.76383424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotS);marker-end:url(#Arrow2Send)" />
|
||||
</g>
|
||||
<g
|
||||
id="g8443"
|
||||
transform="translate(16,0)">
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text5661"
|
||||
y="102.36218"
|
||||
x="690"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
xml:space="preserve"><tspan
|
||||
y="102.36218"
|
||||
x="690"
|
||||
id="tspan5663"
|
||||
sodipodi:role="line"> socket()</tspan><tspan
|
||||
id="tspan5665"
|
||||
y="124.86218"
|
||||
x="690"
|
||||
sodipodi:role="line"> bind()</tspan><tspan
|
||||
id="tspan5667"
|
||||
y="147.36218"
|
||||
x="690"
|
||||
sodipodi:role="line"> listen()</tspan><tspan
|
||||
id="tspan5673"
|
||||
y="169.86218"
|
||||
x="690"
|
||||
sodipodi:role="line"> accept()</tspan></text>
|
||||
<path
|
||||
inkscape:connector-type="polyline"
|
||||
id="path7241"
|
||||
d="m 690,97.362183 0,69.999997"
|
||||
style="fill:#ff0000;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotS);marker-end:url(#Arrow2Send)" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 280,207.36218 240,40"
|
||||
id="path7641"
|
||||
inkscape:connector-type="polyline" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.46410179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 520,257.36218 -240,30"
|
||||
id="path7643"
|
||||
inkscape:connector-type="polyline" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.46410155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 280,297.36218 240,30"
|
||||
id="path7645"
|
||||
inkscape:connector-type="polyline" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="432.07501"
|
||||
y="148.80128"
|
||||
id="text8431"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.98542395,0.17011655,-0.17011655,0.98542395,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8433"
|
||||
x="432.07501"
|
||||
y="148.80128"><tspan
|
||||
style="-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:17.99999998px;text-anchor:middle;text-align:center;writing-mode:lr;line-height:100%"
|
||||
id="tspan8469">Syn</tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8459"> seq=x</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="364.11249"
|
||||
y="310.91501"
|
||||
id="text8435"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.99311758,-0.11712163,0.11712163,0.99311758,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8437"
|
||||
x="364.11249"
|
||||
y="310.91501"><tspan
|
||||
style="-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:17.99999996px;text-anchor:middle;text-align:center;writing-mode:lr;line-height:100%"
|
||||
id="tspan8471">Syn</tspan>+<tspan
|
||||
style="-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:17.99999996px;text-anchor:middle;text-align:center;writing-mode:lr;line-height:100%"
|
||||
id="tspan8473">Ack</tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8457"><tspan
|
||||
style="fill:#0000ff"
|
||||
id="tspan8465"> seq=y</tspan> ack=x+1</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="437.90137"
|
||||
y="280.53427"
|
||||
id="text8439"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.99257382,0.12164377,-0.12164377,0.99257382,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8441"
|
||||
x="437.90137"
|
||||
y="280.53427"
|
||||
style="text-align:center;text-anchor:middle"><tspan
|
||||
style="-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:18.00000005px;text-anchor:middle;text-align:center;writing-mode:lr;line-height:100%"
|
||||
id="tspan8475">Ack</tspan><tspan
|
||||
style="font-size:16px;fill:#0000ff"
|
||||
id="tspan8461"><tspan
|
||||
style="fill:#ff0000"
|
||||
id="tspan8463"> seq=x+1</tspan> ack=y+1</tspan></tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 23 KiB |
225
content/reseau/3-protocoles/images/Tcp_flux.svg
Normal file
225
content/reseau/3-protocoles/images/Tcp_flux.svg
Normal file
|
@ -0,0 +1,225 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 211.66666 116.41667"
|
||||
height="440"
|
||||
width="800">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2Mend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
id="path4547" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Lend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path4523" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Mend-3"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path4547-6" />
|
||||
</marker>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-180.58332)"
|
||||
id="layer1">
|
||||
<path
|
||||
id="path4518"
|
||||
d="m 8.9701516,290.02237 v -99.9588"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
|
||||
<path
|
||||
id="path5528"
|
||||
d="m 125.48052,211.28611 0,79.26302"
|
||||
style="fill:#0000ff;stroke:#0f4ae4;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.465, 0.93;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4518-7"
|
||||
d="m 8.9701516,290.02237 190.8304384,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.86500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend-3)" />
|
||||
<path
|
||||
id="path5473"
|
||||
d="m 11.091685,286.84374 c 20.847023,0.13363 37.409101,-68.86711 54.623708,-74.16729 17.214607,-5.30018 25.669753,10.5216 33.868016,10.69078 8.198261,0.16918 15.528161,-12.45364 23.920631,-12.6953 8.39246,-0.24166 22.2498,13.13691 31.39274,12.96257"
|
||||
style="fill:none;stroke:#f21515;stroke-width:0.76499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;stroke:#f21515;stroke-width:0.765;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.06000001,3.06000001;stroke-opacity:1;stroke-dashoffset:0"
|
||||
d="m 154.89678,223.6345 c 9.14294,-0.17434 16.40398,-11.78442 26.32605,-12.2944"
|
||||
id="path5513" />
|
||||
<path
|
||||
id="path5515"
|
||||
d="m 72.563677,212.36337 v 78.17634"
|
||||
style="fill:#0000ff;stroke:#0f4ae4;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.465, 0.93;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#0000ff;stroke:#0f4ae4;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.465, 0.93;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 99.551193,223.78434 0,65.99937"
|
||||
id="path5526" />
|
||||
<path
|
||||
style="fill:#0000ff;stroke:#0f4ae4;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.465, 0.93;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 155.64321,223.6345 0,66.14921"
|
||||
id="path5530" />
|
||||
<g
|
||||
id="text5534"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="Débit">
|
||||
<path
|
||||
id="path5602"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 15.008714,190.97844 v 3.19981 h 0.672482 q 0.851628,0 1.245747,-0.38585 0.396875,-0.38585 0.396875,-1.21819 0,-0.82682 -0.396875,-1.20992 -0.394119,-0.38585 -1.245747,-0.38585 z m -0.556728,-0.4575 h 1.143772 q 1.196137,0 1.755621,0.49885 0.559483,0.49609 0.559483,1.55442 0,1.06385 -0.562239,1.5627 -0.56224,0.49885 -1.752865,0.49885 h -1.143772 z" />
|
||||
<path
|
||||
id="path5604"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 21.413835,192.96558 v 0.24804 h -2.33164 q 0.03307,0.52366 0.314192,0.79926 0.283876,0.27286 0.788238,0.27286 0.292144,0 0.564996,-0.0717 0.275608,-0.0717 0.545703,-0.21498 v 0.47956 q -0.272851,0.11576 -0.559483,0.17639 -0.286632,0.0606 -0.581533,0.0606 -0.738628,0 -1.171332,-0.42994 -0.429948,-0.42995 -0.429948,-1.16307 0,-0.75792 0.407899,-1.20165 0.410656,-0.44648 1.105187,-0.44648 0.622873,0 0.983919,0.40238 0.363802,0.39964 0.363802,1.08866 z m -0.507118,-0.14883 q -0.0055,-0.41617 -0.234266,-0.66422 -0.225998,-0.24804 -0.600825,-0.24804 -0.424436,0 -0.680751,0.23977 -0.253559,0.23978 -0.292144,0.67524 z m -0.487825,-2.69545 h 0.548459 l -0.898481,1.03629 h -0.42168 z" />
|
||||
<path
|
||||
id="path5606"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 24.462056,193.09511 q 0,-0.55948 -0.231511,-0.87643 -0.228754,-0.31971 -0.631141,-0.31971 -0.402387,0 -0.633898,0.31971 -0.228754,0.31695 -0.228754,0.87643 0,0.55948 0.228754,0.87919 0.231511,0.31695 0.633898,0.31695 0.402387,0 0.631141,-0.31695 0.231511,-0.31971 0.231511,-0.87919 z m -1.725304,-1.07763 q 0.159852,-0.2756 0.402387,-0.40789 0.245291,-0.13505 0.584288,-0.13505 0.56224,0 0.912262,0.44648 0.352777,0.44649 0.352777,1.17409 0,0.7276 -0.352777,1.17409 -0.350022,0.44648 -0.912262,0.44648 -0.338997,0 -0.584288,-0.13229 -0.242535,-0.13505 -0.402387,-0.41065 v 0.46302 h -0.509874 v -4.28846 h 0.509874 z" />
|
||||
<path
|
||||
id="path5608"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 25.82907,191.54895 h 0.507118 v 3.08681 H 25.82907 Z m 0,-1.20165 h 0.507118 v 0.64217 H 25.82907 Z" />
|
||||
<path
|
||||
id="path5610"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 27.896127,190.67252 v 0.87643 h 1.044553 v 0.39412 h -1.044553 v 1.6757 q 0,0.37758 0.101975,0.48506 0.104731,0.10749 0.42168,0.10749 h 0.520898 v 0.42444 h -0.520898 q -0.587045,0 -0.810287,-0.21773 -0.223242,-0.22049 -0.223242,-0.79926 v -1.6757 h -0.37207 v -0.39412 h 0.37207 v -0.87643 z" />
|
||||
</g>
|
||||
<g
|
||||
id="text5534-5"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="Temps">
|
||||
<path
|
||||
id="path5613"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 184.08466,280.53624 h 3.48092 v 0.46853 h -1.46072 v 3.64629 h -0.55948 v -3.64629 h -1.46072 z" />
|
||||
<path
|
||||
id="path5615"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 189.76493,282.98088 v 0.24805 h -2.33164 q 0.0331,0.52365 0.3142,0.79926 0.28387,0.27285 0.78823,0.27285 0.29215,0 0.565,-0.0717 0.27561,-0.0717 0.5457,-0.21497 v 0.47956 q -0.27285,0.11575 -0.55948,0.17638 -0.28663,0.0606 -0.58153,0.0606 -0.73863,0 -1.17134,-0.42995 -0.42994,-0.42995 -0.42994,-1.16306 0,-0.75792 0.4079,-1.20165 0.41065,-0.44649 1.10518,-0.44649 0.62288,0 0.98392,0.40239 0.3638,0.39963 0.3638,1.08865 z m -0.50711,-0.14883 q -0.006,-0.41617 -0.23427,-0.66421 -0.226,-0.24805 -0.60083,-0.24805 -0.42443,0 -0.68075,0.23978 -0.25356,0.23978 -0.29214,0.67524 z" />
|
||||
<path
|
||||
id="path5617"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 193.00057,282.15681 q 0.19017,-0.34175 0.45475,-0.50436 0.26458,-0.16261 0.62287,-0.16261 0.48232,0 0.74414,0.339 0.26183,0.33624 0.26183,0.95911 v 1.86311 h -0.50987 v -1.84657 q 0,-0.44373 -0.1571,-0.6587 -0.1571,-0.21498 -0.47956,-0.21498 -0.39412,0 -0.62287,0.26183 -0.22875,0.26183 -0.22875,0.71383 v 1.74459 h -0.50988 v -1.84657 q 0,-0.44648 -0.15709,-0.6587 -0.1571,-0.21498 -0.48507,-0.21498 -0.38861,0 -0.61737,0.26459 -0.22875,0.26183 -0.22875,0.71107 v 1.74459 h -0.50987 v -3.0868 h 0.50987 v 0.47955 q 0.17363,-0.28387 0.41617,-0.41892 0.24253,-0.13505 0.57602,-0.13505 0.33624,0 0.57051,0.17088 0.23702,0.17088 0.35002,0.49609 z" />
|
||||
<path
|
||||
id="path5619"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 196.58898,284.18804 v 1.63711 h -0.50988 v -4.26089 h 0.50988 v 0.46853 q 0.15985,-0.27561 0.40239,-0.4079 0.24529,-0.13505 0.58428,-0.13505 0.56224,0 0.91226,0.44649 0.35278,0.44648 0.35278,1.17409 0,0.7276 -0.35278,1.17408 -0.35002,0.44649 -0.91226,0.44649 -0.33899,0 -0.58428,-0.13229 -0.24254,-0.13505 -0.40239,-0.41066 z m 1.7253,-1.07762 q 0,-0.55949 -0.23151,-0.87644 -0.22875,-0.3197 -0.63114,-0.3197 -0.40239,0 -0.6339,0.3197 -0.22875,0.31695 -0.22875,0.87644 0,0.55948 0.22875,0.87918 0.23151,0.31695 0.6339,0.31695 0.40239,0 0.63114,-0.31695 0.23151,-0.3197 0.23151,-0.87918 z" />
|
||||
<path
|
||||
id="path5621"
|
||||
style="font-size:5.64444447px;stroke-width:0.26458332"
|
||||
d="m 201.64914,281.65521 v 0.47955 q -0.21498,-0.11024 -0.44649,-0.16536 -0.23151,-0.0551 -0.47956,-0.0551 -0.37758,0 -0.56775,0.11575 -0.18741,0.11576 -0.18741,0.34727 0,0.17639 0.13505,0.27836 0.13504,0.0992 0.54294,0.19017 l 0.17364,0.0386 q 0.54019,0.11575 0.76619,0.32797 0.22875,0.20946 0.22875,0.58704 0,0.42995 -0.34175,0.68076 -0.339,0.2508 -0.93431,0.2508 -0.24805,0 -0.51815,-0.0496 -0.26734,-0.0469 -0.56499,-0.14332 v -0.52365 q 0.28112,0.14607 0.55397,0.22048 0.27285,0.0717 0.54019,0.0717 0.35829,0 0.55122,-0.12126 0.19292,-0.12403 0.19292,-0.34727 0,-0.20671 -0.14056,-0.31695 -0.1378,-0.11024 -0.60909,-0.21222 l -0.17639,-0.0413 q -0.47129,-0.0992 -0.68075,-0.30317 -0.20946,-0.2067 -0.20946,-0.56499 0,-0.43546 0.30868,-0.67249 0.30868,-0.23702 0.87643,-0.23702 0.28112,0 0.52917,0.0413 0.24804,0.0413 0.45751,0.12403 z" />
|
||||
</g>
|
||||
<circle
|
||||
r="5.4790254"
|
||||
cy="264.66037"
|
||||
cx="49.578499"
|
||||
id="path5554"
|
||||
style="opacity:0.86699997;fill:#ff1900;fill-opacity:1;stroke:none;stroke-width:0.46499997;stroke-miterlimit:4;stroke-dasharray:0.46499999, 0.92999999000000000;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
id="text5534-56"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="1">
|
||||
<path
|
||||
id="path5636"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.46666622px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;stroke-width:0.26458332"
|
||||
d="m 47.463066,266.36679 h 1.405599 v -3.98942 l -1.442806,0.29765 v -1.08314 l 1.434538,-0.29765 h 1.513086 v 5.07256 h 1.405598 v 1.09967 h -4.316015 z" />
|
||||
</g>
|
||||
<circle
|
||||
style="opacity:0.86699997;fill:#ff1900;fill-opacity:1;stroke:none;stroke-width:0.46499997;stroke-miterlimit:4;stroke-dasharray:0.46499999, 0.92999999;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="circle5578"
|
||||
cx="86.620155"
|
||||
cy="264.66037"
|
||||
r="5.4790254" />
|
||||
<g
|
||||
id="text5582"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="2">
|
||||
<path
|
||||
id="path5633"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.46666622px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;stroke-width:0.26458332"
|
||||
d="m 85.95167,266.29651 h 2.716113 v 1.16995 h -4.485514 v -1.16995 l 2.253093,-1.98851 q 0.30179,-0.27285 0.446484,-0.5333 0.144694,-0.26045 0.144694,-0.54157 0,-0.43408 -0.293522,-0.69867 -0.289388,-0.26458 -0.77308,-0.26458 -0.37207,0 -0.81442,0.16123 -0.44235,0.1571 -0.946712,0.47129 v -1.35599 q 0.537435,-0.17777 1.062467,-0.26872 0.525033,-0.0951 1.029395,-0.0951 1.107942,0 1.719791,0.48782 0.615983,0.48783 0.615983,1.36013 0,0.50436 -0.260449,0.94257 -0.260449,0.43409 -1.09554,1.16582 z" />
|
||||
</g>
|
||||
<circle
|
||||
r="5.4790254"
|
||||
cy="264.66037"
|
||||
cx="112.54932"
|
||||
id="circle5584"
|
||||
style="opacity:0.86699997;fill:#ff1900;fill-opacity:1;stroke:none;stroke-width:0.46499997;stroke-miterlimit:4;stroke-dasharray:0.46499999, 0.92999999;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
id="text5588"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="3">
|
||||
<path
|
||||
id="path5630"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.46666622px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;stroke-width:0.26458332"
|
||||
d="m 113.38565,264.1385 q 0.62425,0.16123 0.94671,0.56224 0.3266,0.39687 0.3266,1.01286 0,0.91777 -0.7028,1.39733 -0.7028,0.47542 -2.05052,0.47542 -0.47543,0 -0.95498,-0.0786 -0.47543,-0.0744 -0.94258,-0.22737 v -1.22784 q 0.44648,0.22325 0.8847,0.339 0.44235,0.11162 0.86816,0.11162 0.63252,0 0.96738,-0.21911 0.339,-0.2191 0.339,-0.62838 0,-0.42168 -0.34726,-0.63665 -0.34314,-0.21911 -1.017,-0.21911 h -0.63665 v -1.02526 h 0.66973 q 0.59944,0 0.89297,-0.18604 0.29352,-0.19017 0.29352,-0.57464 0,-0.35553 -0.28526,-0.54984 -0.28525,-0.1943 -0.80615,-0.1943 -0.38447,0 -0.77721,0.0868 -0.39274,0.0868 -0.78135,0.25631 v -1.16582 q 0.47129,-0.13229 0.93431,-0.19844 0.46302,-0.0661 0.90951,-0.0661 1.20302,0 1.79834,0.39687 0.59944,0.39274 0.59944,1.18649 0,0.54157 -0.28525,0.88884 -0.28526,0.34313 -0.84336,0.48369 z" />
|
||||
</g>
|
||||
<circle
|
||||
r="5.4790254"
|
||||
cy="264.66037"
|
||||
cx="140.06583"
|
||||
id="circle5590"
|
||||
style="opacity:0.86699997;fill:#ff1900;fill-opacity:1;stroke:none;stroke-width:0.46499997;stroke-miterlimit:4;stroke-dasharray:0.46499999, 0.92999999;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
id="text5594"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="2">
|
||||
<path
|
||||
id="path5627"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.46666622px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;stroke-width:0.26458332"
|
||||
d="m 139.39739,266.29651 h 2.71612 v 1.16995 h -4.48552 v -1.16995 l 2.2531,-1.98851 q 0.30179,-0.27285 0.44648,-0.5333 0.14469,-0.26045 0.14469,-0.54157 0,-0.43408 -0.29352,-0.69867 -0.28939,-0.26458 -0.77308,-0.26458 -0.37207,0 -0.81442,0.16123 -0.44235,0.1571 -0.94671,0.47129 v -1.35599 q 0.53744,-0.17777 1.06247,-0.26872 0.52503,-0.0951 1.02939,-0.0951 1.10794,0 1.71979,0.48782 0.61599,0.48783 0.61599,1.36013 0,0.50436 -0.26045,0.94257 -0.26045,0.43409 -1.09554,1.16582 z" />
|
||||
</g>
|
||||
<circle
|
||||
style="opacity:0.86699997;fill:#ff1900;fill-opacity:1;stroke:none;stroke-width:0.46499997;stroke-miterlimit:4;stroke-dasharray:0.46499999, 0.92999999;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="circle5596"
|
||||
cx="170.75768"
|
||||
cy="264.66037"
|
||||
r="5.4790254" />
|
||||
<g
|
||||
id="text5600"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="3">
|
||||
<path
|
||||
id="path5624"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.46666622px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffffff;stroke-width:0.26458332"
|
||||
d="m 171.59402,264.1385 q 0.62425,0.16123 0.94671,0.56224 0.32659,0.39687 0.32659,1.01286 0,0.91777 -0.7028,1.39733 -0.7028,0.47542 -2.05052,0.47542 -0.47542,0 -0.95498,-0.0786 -0.47542,-0.0744 -0.94258,-0.22737 v -1.22784 q 0.44649,0.22325 0.8847,0.339 0.44235,0.11162 0.86817,0.11162 0.63252,0 0.96738,-0.21911 0.339,-0.2191 0.339,-0.62838 0,-0.42168 -0.34727,-0.63665 -0.34313,-0.21911 -1.01699,-0.21911 h -0.63665 v -1.02526 h 0.66972 q 0.59945,0 0.89297,-0.18604 0.29352,-0.19017 0.29352,-0.57464 0,-0.35553 -0.28525,-0.54984 -0.28525,-0.1943 -0.80615,-0.1943 -0.38447,0 -0.77722,0.0868 -0.39274,0.0868 -0.78134,0.25631 v -1.16582 q 0.47129,-0.13229 0.93431,-0.19844 0.46302,-0.0661 0.9095,-0.0661 1.20303,0 1.79834,0.39687 0.59945,0.39274 0.59945,1.18649 0,0.54157 -0.28526,0.88884 -0.28525,0.34313 -0.84335,0.48369 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
463
content/reseau/3-protocoles/images/Tcp_talk.svg
Normal file
463
content/reseau/3-protocoles/images/Tcp_talk.svg
Normal file
|
@ -0,0 +1,463 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="800.80908"
|
||||
height="229.10162"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="tcp_connect.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Sstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Sstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3816"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(0.3,0,0,0.3,-0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Send"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Send"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3819"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3813"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6,-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="DotS"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="DotS"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3854"
|
||||
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
|
||||
transform="matrix(0.2,0,0,0.2,1.48,0.2)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Mend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Mend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3795"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow2Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3807"
|
||||
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path3789"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<inkscape:perspective
|
||||
id="perspective3606"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3681"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective3756"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective4427"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5228"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5259"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5298"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5353"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5384"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5415"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5446"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5498"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5575"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<inkscape:perspective
|
||||
id="perspective5603"
|
||||
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
|
||||
inkscape:vp_z="1 : 0.5 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 0.5 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="394.44528"
|
||||
inkscape:cy="16.200833"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:snap-grids="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="952"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4"
|
||||
inkscape:window-maximized="1"
|
||||
objecttolerance="5"
|
||||
guidetolerance="5">
|
||||
<sodipodi:guide
|
||||
position="0.4046008,-798.92901"
|
||||
orientation="0,744.09448"
|
||||
id="guide3620" />
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5523"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0.4046008,-24.331562)">
|
||||
<rect
|
||||
style="fill:#ff9191;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80894977px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822-1"
|
||||
width="299.81329"
|
||||
height="180"
|
||||
x="500.18671"
|
||||
y="72.980232" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.88286018px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="646.30457"
|
||||
y="47.63348"
|
||||
id="text3628"
|
||||
transform="scale(1.003674,0.99633941)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3630"
|
||||
x="646.30457"
|
||||
y="47.63348">Computer B</tspan></text>
|
||||
<rect
|
||||
style="fill:#98ff91;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.8092016px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect2822"
|
||||
width="300"
|
||||
height="180"
|
||||
x="0"
|
||||
y="72.980232" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:39.8644371px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
id="text3632"
|
||||
transform="scale(1.0040254,0.99599073)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3634"
|
||||
x="149.39859"
|
||||
y="47.647427"
|
||||
style="font-size:31.89155006px;text-align:center;text-anchor:middle">Computer A</tspan></text>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.90590757;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-3"
|
||||
width="180"
|
||||
height="180"
|
||||
x="100"
|
||||
y="72.980232"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="189.69531"
|
||||
y="171.57007"
|
||||
id="text5563"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565"
|
||||
x="189.69531"
|
||||
y="171.57007"
|
||||
style="fill:#999999">ESTABLISHED</tspan></text>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.90590757;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5206-2-7-3"
|
||||
width="180"
|
||||
height="180"
|
||||
x="520"
|
||||
y="72.980232"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="609.69531"
|
||||
y="112.98023"
|
||||
id="text5563-8"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5565-7"
|
||||
x="609.69531"
|
||||
y="112.98023"
|
||||
style="fill:#999999">ESTABLISHED</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4.31850767;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Mend)"
|
||||
d="m 278.76392,104.72437 239.38196,46.74414"
|
||||
id="path7641"
|
||||
inkscape:connector-type="polyline" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.89279699;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
|
||||
d="M 518.76392,184.72437 282.52784,223.21265"
|
||||
id="path7643"
|
||||
inkscape:connector-type="polyline" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="409.44995"
|
||||
y="49.387558"
|
||||
id="text8431"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.98542395,0.17011655,-0.17011655,0.98542395,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8433"
|
||||
x="409.44995"
|
||||
y="49.387558"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8469">Data</tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8459"> seq=x <tspan
|
||||
style="fill:#0000ff"
|
||||
id="tspan8483">ack=y</tspan></tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="358.78629"
|
||||
y="261.63596"
|
||||
id="text8435"
|
||||
sodipodi:linespacing="100%"
|
||||
transform="matrix(0.98580839,-0.16787444,0.16787444,0.98580839,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8437"
|
||||
x="358.78629"
|
||||
y="261.63596"><tspan
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;font-family:Arial;-inkscape-font-specification:Arial Bold"
|
||||
id="tspan8473">Ack</tspan><tspan
|
||||
style="font-size:16px;fill:#ff0000"
|
||||
id="tspan8457"><tspan
|
||||
style="fill:#0000ff"
|
||||
id="tspan8465"> seq=y</tspan> ack=x+n</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="274.49915"
|
||||
y="102.98023"
|
||||
id="text8485"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8487"
|
||||
x="279.49133"
|
||||
y="102.98023">Send n bytes </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="274.49915"
|
||||
y="125.48023"
|
||||
id="tspan8501">of data</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="529.38196"
|
||||
y="162.98022"
|
||||
id="text8489"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8491"
|
||||
x="529.38196"
|
||||
y="162.98022">Receive n bytes </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="529.38196"
|
||||
y="185.48022"
|
||||
id="tspan8499">of data</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
|
||||
x="269.51086"
|
||||
y="212.98022"
|
||||
id="text8493"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8495"
|
||||
x="274.50305"
|
||||
y="212.98022">Know that data </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="269.51086"
|
||||
y="235.48022"
|
||||
id="tspan8497">are received</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="89.444466"
|
||||
y="92.980232"
|
||||
id="text8503"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8505"
|
||||
x="89.444466"
|
||||
y="92.980232">write()</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Italic"
|
||||
x="757.47571"
|
||||
y="212.98022"
|
||||
id="text8507"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8509"
|
||||
x="757.47571"
|
||||
y="212.98022">read()</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 18 KiB |
143
content/reseau/3-protocoles/index.md
Normal file
143
content/reseau/3-protocoles/index.md
Normal file
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
title: "Les protocoles"
|
||||
categories: ["Réseau", "Cours"]
|
||||
date: 2018-09-12
|
||||
---
|
||||
|
||||
Les protocoles sont des conventions qui définissent des manières de communiquer.
|
||||
En informatiquem on dénombre deux types de protocoles : binaires ou textuels.
|
||||
|
||||
Théoriquement, aucun protocole ne peut être parfait. Ceci peur être illustré par
|
||||
,le théorême des deux armees :
|
||||
|
||||
> Soit des armées aui combattent, l'armée A, composée d'un seul soldat est
|
||||
> assiégés par l'arméé B composée elle de deux soldats.
|
||||
>
|
||||
> Les deux soldats B sont de part-et d'autres du soldat de A qui possède un
|
||||
> fusil. Pour assurer leurs victoire, les deux soldats B doivent attaquer de
|
||||
> façon coodonnée. Utilisant des pigeons voyageurs, comment s'assurer de la bnne
|
||||
> transmission des messages : le soldat A pourrait tuer le messager à tout
|
||||
> moment (contenant le message ou la confirmation de bonne réception).
|
||||
|
||||
# La commutation de circuits
|
||||
|
||||
C'est le fonctionnement typique du réseau téléphonique jusque dans les années
|
||||
60-70. les information échangées emprunte toujours le même chemin au sein du
|
||||
réseau pour une session donnée. Son principal inconvénient est l'occupation de
|
||||
la "route" même si aucune donnée ne transite (blanc).
|
||||
|
||||
Voir [la commutation de circuits][w_comm-cirk] sur Wikipedia
|
||||
|
||||
[w_comm-circ]:https://fr.wikipedia.org/wiki/Commutation_de_circuits
|
||||
|
||||
# La commutation de paquet
|
||||
|
||||
Apparue dans les années 70, il est ici question de découper l'information en
|
||||
paquets contenant un entête pour l'acheminement, et de les faire transiter par
|
||||
des routes aui peuvent être différentes. Il n'y a pas ici de réservation de
|
||||
route, optimisant l'utilisation de la ressource.
|
||||
|
||||
En France, l'ingénieur [Louis Pouzin][w_l-pouzin] a inventé le datagramme qui
|
||||
servira de base pour le réseau par commutation de paquest, puis pour le
|
||||
protocole UDP et inspirera Vint Cerf pour la création de TCP-IP
|
||||
|
||||
Voir [la commutation de paquets][w_comm-pak] sur Wikipedia
|
||||
|
||||
[w_l-pouzin]:https://fr.wikipedia.org/wiki/Louis_Pouzin
|
||||
[w_comm-pak]:https://fr.wikipedia.org/wiki/Commutation_de_paquets
|
||||
|
||||
# Les sommes de contrôles
|
||||
|
||||
Les *checksum* ou sommes de controles permettent de s'assurer de l'intégrité
|
||||
d'un message reçu par le réseau. Ce n'est cependant pas un code de correction
|
||||
d'erreur, le but ici est bien la détection (pour éventuellement demander à
|
||||
l'expéditeur de renvoyer le message).
|
||||
|
||||
Dans notre quotidien, les sommes de contrôles sont utilisée pour les numéros
|
||||
INSEE, les numéros de cartes bancaire etc.
|
||||
|
||||
Il sont là avant tout pour détecter des erreur non intentionnelle (fiabilité)
|
||||
mais n'ont pas vocation à prévenir les erreur intentionnelles (sécurité)
|
||||
|
||||
Voir [les sommes de contrôles][w_checksum]
|
||||
|
||||
[w_checksum]:https://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le
|
||||
|
||||
# Le protocole TCP
|
||||
|
||||
TCP pour *Transmission Control Protocol* est un protocole de transport fiable de
|
||||
l'information sur des réseau infomatique. Il correspond à la couche
|
||||
**transport** du modèle OSI. Il fonctionne en trois phases :
|
||||
|
||||
- L'établissement d'une connection
|
||||
- Le transfert des données
|
||||
- La fin de connexion
|
||||
|
||||
## Etablissement d'une connexion
|
||||
|
||||

|
||||
|
||||
Le serveur ouvre une *socket* et attends la demande de connexion du client
|
||||
(attente passive). Le client initie une connexion active en trois temps :
|
||||
|
||||
- le client envoi un segment *SYN* au serveur.
|
||||
- le serveur lui réponds par un segment *ACK + SYN*
|
||||
- le client confirme par un segment *ACK*
|
||||
|
||||
Durant ces échanges, les numéros de séquences du serveur et du client sont
|
||||
synchronisés. Le client utilise son numéro de séquence `x` pour son premier
|
||||
segment *SYN*. Le serveur utilise son numéro de séquence `y` dans le segment
|
||||
*ACK+SYN* et le numero d'aquitement `x + 1`. Le client confirme par un *ACK*
|
||||
avec comme numéro de séquence `x + 1` et comme numéro d'aquittement `y + 1`.
|
||||
|
||||
## Tranfert de données
|
||||
|
||||

|
||||
|
||||
|
||||
Lors du transfert de données, les numéros de séquences sont utilisés afn de
|
||||
réordonner les paquets. Les aquitements servent à s'assurer de la transmission
|
||||
des messages et les sommes de contrôles leurs intégrités.
|
||||
|
||||
- Le serveur envoi un paquet avec comme numéro de séquence `x` et est numero
|
||||
d'aquittement `y` avec `z` octets
|
||||
- le client réponds avec un sergment *ACK* avec comme numéro de séquence `x`
|
||||
et comme numéro d'aquittenemt `y + z`
|
||||
|
||||
Les numéros de soéquences sont des nombres entiers non-signés codés sur 32bits
|
||||
|
||||
### temporisation
|
||||
|
||||
TCP utilise un mécanisme de temporisation et de retransmission. Après l'emvoi
|
||||
d'un segment, TCP attendra un certain temps la confirmation par un *ACK*
|
||||
correspondant.
|
||||
|
||||
## Terminaison d'une connexion
|
||||
|
||||

|
||||
|
||||
La fin d'une connexion TCP se fait en quatre temps, chaque extremités de la
|
||||
connexion envoyant un segment *FIN* et répondant à l'autre par un *ACK*
|
||||
|
||||
## Gestion des flux
|
||||
|
||||
Dans un espace réseau, comment les extremités (souvent le serveur) devinent la
|
||||
vitesse de transmission des segments? En général prudemment : le serveur
|
||||
commence à transferer les données lentement et augmente au fur et à mesure le
|
||||
débit. Il inspecte alors les *ACK* et ajuste le débit en fonction des retours.
|
||||
|
||||

|
||||
|
||||
1. la connexion démarre doucement, le débit augmente au fur et à mesure que les
|
||||
*ACK* reviennent en temps et en heure.
|
||||
2. les segments *ACK* n'arrivent pas à temps, le débit est diminué.
|
||||
3. à partir du moment ou les segments *ACK* arrivent bien, le débit est aumenté
|
||||
à nouveau progressivement.
|
||||
4. on repasse à létape 2.
|
||||
|
||||
Il existre plusieurs algorithmes pour la gestion du débit : Reno, Vegas, Bil,
|
||||
Cubil.
|
||||
|
||||
# Bibliographie
|
||||
|
||||
[TCP sur Wikipedia](https://fr.wikipedia.org/wiki/Transmission_Control_Protocol)
|
904
content/reseau/4-API_C/images/kernel_buffers.svg
Normal file
904
content/reseau/4-API_C/images/kernel_buffers.svg
Normal file
|
@ -0,0 +1,904 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 214.13786 213.36129"
|
||||
height="806.40491"
|
||||
width="809.33997">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker2896"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path2894"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker2826"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path2824"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(0.4,0,0,0.4,4,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Mstart"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="matrix(0.4,0,0,0.4,4,0)"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path895" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2434"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path2432" />
|
||||
</marker>
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker2225"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path2223"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker2121"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path2119" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker1807"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path1805" />
|
||||
</marker>
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker1635"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path1633"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker1273"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path1271"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
transform="scale(-0.6)" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Mend"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="scale(-0.6)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path916" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Lend"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto">
|
||||
<path
|
||||
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path910" />
|
||||
</marker>
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-0.56140107,-394.60786)"
|
||||
id="layer1">
|
||||
<rect
|
||||
y="491.20468"
|
||||
x="19.393324"
|
||||
height="12.225417"
|
||||
width="49.873222"
|
||||
id="rect2097"
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<g
|
||||
transform="translate(0,-3.1750001)"
|
||||
id="text2107"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="TCP">
|
||||
<path
|
||||
id="path3636"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="M 41.218761,502.65164 H 40.306662 V 499.0977 H 39.22336 v -0.76156 h 3.075751 v 0.76156 h -1.08035 z" />
|
||||
<path
|
||||
id="path3638"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 44.619208,499.03571 q -0.262708,0 -0.466381,0.10332 -0.20072,0.10036 -0.339454,0.29222 -0.135782,0.18892 -0.206624,0.46343 -0.07084,0.27157 -0.07084,0.61102 0,0.34536 0.06199,0.61397 0.06494,0.26861 0.194818,0.45457 0.13283,0.18301 0.336502,0.28042 0.206625,0.0945 0.489995,0.0945 0.262708,0 0.525417,-0.059 0.265659,-0.059 0.575596,-0.16825 v 0.76746 q -0.141685,0.059 -0.280419,0.10036 -0.138733,0.0413 -0.28337,0.0679 -0.144637,0.0266 -0.29813,0.0384 -0.15054,0.0148 -0.324695,0.0148 -0.498851,0 -0.864871,-0.1594 -0.36602,-0.15939 -0.605114,-0.44867 -0.239094,-0.28927 -0.354214,-0.69662 -0.115119,-0.40734 -0.115119,-0.90619 0,-0.49 0.13283,-0.89734 0.13283,-0.4103 0.389635,-0.70548 0.256804,-0.29518 0.634632,-0.45752 0.377827,-0.1653 0.867822,-0.1653 0.321744,0 0.643488,0.0827 0.324695,0.0797 0.619873,0.22138 l -0.295178,0.74385 q -0.242046,-0.11512 -0.487043,-0.20072 -0.244998,-0.0856 -0.48114,-0.0856 z" />
|
||||
<path
|
||||
id="path3640"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 47.550323,500.36697 h 0.180058 q 0.386683,0 0.5815,-0.1535 0.197769,-0.15349 0.197769,-0.49885 0,-0.32174 -0.177106,-0.47523 -0.174155,-0.15349 -0.549031,-0.15349 h -0.23319 z m 1.886185,-0.68482 q 0,0.28337 -0.0856,0.54313 -0.0856,0.25976 -0.283371,0.45753 -0.194817,0.19777 -0.516561,0.31584 -0.318792,0.11807 -0.791076,0.11807 h -0.209576 v 1.53492 h -0.915051 v -4.3155 h 1.198421 q 0.416201,0 0.717282,0.0945 0.304033,0.0915 0.498851,0.26566 0.197769,0.1712 0.292226,0.4221 0.09446,0.24795 0.09446,0.56379 z" />
|
||||
</g>
|
||||
<path
|
||||
id="path2109"
|
||||
d="m 29.310708,501.71742 v 12.37107"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2121)" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)"
|
||||
d="M 59.136975,515.38384 V 503.01277"
|
||||
id="path2111" />
|
||||
<rect
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect2113"
|
||||
width="49.873222"
|
||||
height="12.225417"
|
||||
x="19.999914"
|
||||
y="516.97534" />
|
||||
<g
|
||||
transform="translate(0,-6.879167)"
|
||||
id="text2117"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="IP">
|
||||
<path
|
||||
id="path3619"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 44.149876,532.12506 h -1.962932 v -0.51951 l 0.525416,-0.24205 v -2.79238 l -0.525416,-0.24204 v -0.51952 h 1.962932 v 0.51952 l -0.525417,0.24204 v 2.79238 l 0.525417,0.24205 z" />
|
||||
<path
|
||||
id="path3621"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 45.799919,529.84039 h 0.180058 q 0.386683,0 0.5815,-0.1535 0.19777,-0.15349 0.19777,-0.49885 0,-0.32174 -0.177107,-0.47523 -0.174155,-0.1535 -0.549031,-0.1535 h -0.23319 z m 1.886186,-0.68482 q 0,0.28337 -0.0856,0.54313 -0.0856,0.25976 -0.283371,0.45753 -0.194817,0.19776 -0.516561,0.31584 -0.318792,0.11807 -0.791076,0.11807 h -0.209576 v 1.53492 H 44.88487 v -4.3155 h 1.198422 q 0.4162,0 0.717281,0.0945 0.304033,0.0915 0.498851,0.26566 0.197769,0.1712 0.292226,0.4221 0.09446,0.24795 0.09446,0.56379 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2225)"
|
||||
d="m 29.310708,527.48379 v 12.37107"
|
||||
id="path2213" />
|
||||
<path
|
||||
id="path2215"
|
||||
d="M 59.136975,541.15021 V 528.77914"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)" />
|
||||
<rect
|
||||
y="542.63239"
|
||||
x="18.476799"
|
||||
height="12.225417"
|
||||
width="49.873222"
|
||||
id="rect2217"
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<g
|
||||
transform="translate(0,-10.583334)"
|
||||
id="text2221"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="Ethernet">
|
||||
<path
|
||||
id="path3602"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 33.451161,561.59558 h -2.485396 v -4.3155 h 2.485396 v 0.74975 h -1.570345 v 0.94752 h 1.461129 v 0.74976 h -1.461129 v 1.11282 h 1.570345 z" />
|
||||
<path
|
||||
id="path3604"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 35.623669,560.93733 q 0.13283,0 0.250901,-0.0295 0.121023,-0.0295 0.244998,-0.0738 v 0.67006 q -0.126927,0.0649 -0.31584,0.10626 -0.185962,0.0443 -0.407346,0.0443 -0.215479,0 -0.401441,-0.0502 -0.185962,-0.0502 -0.321744,-0.17416 -0.135782,-0.12692 -0.21548,-0.3365 -0.07675,-0.21253 -0.07675,-0.53132 v -1.59101 h -0.430959 v -0.38078 l 0.495898,-0.30108 0.259757,-0.69662 h 0.575596 v 0.70252 h 0.802883 v 0.67596 h -0.802883 v 1.59101 q 0,0.19186 0.09446,0.28337 0.09446,0.0915 0.247949,0.0915 z" />
|
||||
<path
|
||||
id="path3606"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 39.649894,561.59558 h -0.900292 v -1.92751 q 0,-0.35716 -0.112168,-0.53427 -0.109216,-0.18006 -0.339454,-0.18006 -0.174155,0 -0.292226,0.0708 -0.118071,0.0708 -0.188914,0.20958 -0.07084,0.13873 -0.10036,0.34241 -0.02952,0.20367 -0.02952,0.46638 v 1.55263 h -0.90029 v -4.59296 h 0.900292 v 0.93571 q 0,0.12397 -0.0059,0.26271 -0.0059,0.13578 -0.01476,0.2509 -0.01181,0.13578 -0.02066,0.26566 h 0.04723 q 0.144637,-0.25681 0.368972,-0.36897 0.224335,-0.11512 0.507706,-0.11512 0.244998,0 0.442767,0.0708 0.200721,0.0679 0.342406,0.21548 0.141685,0.14759 0.218431,0.37783 0.07675,0.22728 0.07675,0.54608 z" />
|
||||
<path
|
||||
id="path3608"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 41.910955,558.87404 q -0.239094,0 -0.39849,0.16825 -0.156444,0.16826 -0.180058,0.52837 h 1.148241 q -0.003,-0.15054 -0.03837,-0.27747 -0.03542,-0.12692 -0.106264,-0.21843 -0.07084,-0.0944 -0.177107,-0.14759 -0.106264,-0.0531 -0.247949,-0.0531 z m 0.115119,2.78058 q -0.354213,0 -0.652342,-0.10332 -0.29813,-0.10331 -0.51361,-0.30993 -0.215479,-0.20958 -0.336502,-0.52542 -0.118071,-0.31879 -0.118071,-0.7468 0,-0.43391 0.109215,-0.7586 0.109216,-0.3247 0.304033,-0.54018 0.19777,-0.21843 0.472285,-0.32765 0.277467,-0.10921 0.613969,-0.10921 0.327648,0 0.590356,0.10036 0.26566,0.0974 0.44867,0.28927 0.185962,0.19187 0.283371,0.47229 0.10036,0.27746 0.10036,0.63758 v 0.43686 h -2.013112 q 0.0059,0.18892 0.05904,0.34241 0.05608,0.15054 0.153492,0.2568 0.10036,0.10332 0.239094,0.1594 0.141685,0.0561 0.321744,0.0561 0.15054,0 0.28337,-0.0148 0.135782,-0.0177 0.262708,-0.0502 0.126927,-0.0325 0.250901,-0.0797 0.123975,-0.0502 0.253853,-0.11512 v 0.69662 q -0.118071,0.062 -0.239094,0.10626 -0.118071,0.0413 -0.250901,0.0708 -0.13283,0.0295 -0.286322,0.0413 -0.153493,0.0148 -0.336503,0.0148 z" />
|
||||
<path
|
||||
id="path3610"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 45.816155,558.23351 q 0.03542,0 0.07675,0.003 0.04428,0 0.08265,0.006 0.04133,0.003 0.07379,0.009 0.03542,0.003 0.05313,0.009 v 0.84421 q -0.02361,-0.006 -0.06494,-0.0118 -0.04133,-0.006 -0.08855,-0.009 -0.04428,-0.006 -0.08855,-0.006 -0.04428,-0.003 -0.0738,-0.003 -0.174154,0 -0.321743,0.0443 -0.144637,0.0443 -0.250901,0.14464 -0.103312,0.0974 -0.162348,0.25975 -0.05608,0.1594 -0.05608,0.39259 v 1.67956 h -0.900292 v -3.30009 h 0.681861 l 0.13283,0.4959 h 0.04428 q 0.07084,-0.12692 0.153493,-0.23024 0.08265,-0.10331 0.18301,-0.17415 0.103312,-0.0738 0.230239,-0.11217 0.129878,-0.0413 0.295177,-0.0413 z" />
|
||||
<path
|
||||
id="path3612"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="M 49.579672,561.59558 H 48.67938 v -1.92751 q 0,-0.35716 -0.109216,-0.53427 -0.106264,-0.18006 -0.342406,-0.18006 -0.177107,0 -0.295178,0.0708 -0.118071,0.0708 -0.188914,0.20958 -0.06789,0.13873 -0.09741,0.34241 -0.02952,0.20367 -0.02952,0.46638 v 1.55263 h -0.900292 v -3.30009 h 0.687764 l 0.121023,0.42211 h 0.05018 q 0.07084,-0.12693 0.171203,-0.21843 0.103312,-0.0915 0.224335,-0.15054 0.121023,-0.059 0.256805,-0.0856 0.135781,-0.0295 0.277467,-0.0295 0.242045,0 0.439815,0.0708 0.197769,0.0679 0.339454,0.21548 0.141685,0.14759 0.218431,0.37783 0.07675,0.22728 0.07675,0.54608 z" />
|
||||
<path
|
||||
id="path3614"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 51.840732,558.87404 q -0.239094,0 -0.39849,0.16825 -0.156444,0.16826 -0.180058,0.52837 h 1.148241 q -0.003,-0.15054 -0.03837,-0.27747 -0.03542,-0.12692 -0.106264,-0.21843 -0.07084,-0.0944 -0.177107,-0.14759 -0.106264,-0.0531 -0.247949,-0.0531 z m 0.115119,2.78058 q -0.354213,0 -0.652342,-0.10332 -0.29813,-0.10331 -0.51361,-0.30993 -0.215479,-0.20958 -0.336502,-0.52542 -0.118071,-0.31879 -0.118071,-0.7468 0,-0.43391 0.109216,-0.7586 0.109215,-0.3247 0.304033,-0.54018 0.197769,-0.21843 0.472284,-0.32765 0.277467,-0.10921 0.61397,-0.10921 0.327647,0 0.590355,0.10036 0.26566,0.0974 0.44867,0.28927 0.185962,0.19187 0.283371,0.47229 0.10036,0.27746 0.10036,0.63758 v 0.43686 h -2.013112 q 0.0059,0.18892 0.05904,0.34241 0.05608,0.15054 0.153492,0.2568 0.100361,0.10332 0.239094,0.1594 0.141685,0.0561 0.321744,0.0561 0.15054,0 0.28337,-0.0148 0.135782,-0.0177 0.262708,-0.0502 0.126927,-0.0325 0.250902,-0.0797 0.123974,-0.0502 0.253852,-0.11512 v 0.69662 q -0.118071,0.062 -0.239094,0.10626 -0.118071,0.0413 -0.250901,0.0708 -0.13283,0.0295 -0.286322,0.0413 -0.153492,0.0148 -0.336503,0.0148 z" />
|
||||
<path
|
||||
id="path3616"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 55.365154,560.93733 q 0.13283,0 0.250901,-0.0295 0.121023,-0.0295 0.244998,-0.0738 v 0.67006 q -0.126927,0.0649 -0.31584,0.10626 -0.185962,0.0443 -0.407346,0.0443 -0.215479,0 -0.401441,-0.0502 -0.185962,-0.0502 -0.321744,-0.17416 -0.135782,-0.12692 -0.21548,-0.3365 -0.07675,-0.21253 -0.07675,-0.53132 v -1.59101 h -0.430959 v -0.38078 l 0.495898,-0.30108 0.259756,-0.69662 h 0.575597 v 0.70252 h 0.802883 v 0.67596 h -0.802883 v 1.59101 q 0,0.19186 0.09446,0.28337 0.09446,0.0915 0.247949,0.0915 z" />
|
||||
</g>
|
||||
<rect
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect2357"
|
||||
width="49.873222"
|
||||
height="12.225417"
|
||||
x="137.27548"
|
||||
y="491.20468" />
|
||||
<g
|
||||
transform="translate(0,-3.1750001)"
|
||||
id="text2363"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="TCP">
|
||||
<path
|
||||
id="path3629"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 159.10086,502.65164 h -0.9121 v -3.55394 h -1.0833 v -0.76156 h 3.07575 v 0.76156 h -1.08035 z" />
|
||||
<path
|
||||
id="path3631"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 162.50131,499.03571 q -0.26271,0 -0.46638,0.10332 -0.20072,0.10036 -0.33946,0.29222 -0.13578,0.18892 -0.20662,0.46343 -0.0708,0.27157 -0.0708,0.61102 0,0.34536 0.062,0.61397 0.0649,0.26861 0.19482,0.45457 0.13283,0.18301 0.3365,0.28042 0.20663,0.0945 0.49,0.0945 0.26271,0 0.52541,-0.059 0.26566,-0.059 0.5756,-0.16825 v 0.76746 q -0.14169,0.059 -0.28042,0.10036 -0.13873,0.0413 -0.28337,0.0679 -0.14464,0.0266 -0.29813,0.0384 -0.15054,0.0148 -0.32469,0.0148 -0.49885,0 -0.86487,-0.1594 -0.36603,-0.15939 -0.60512,-0.44867 -0.23909,-0.28927 -0.35421,-0.69662 -0.11512,-0.40734 -0.11512,-0.90619 0,-0.49 0.13283,-0.89734 0.13283,-0.4103 0.38963,-0.70548 0.25681,-0.29518 0.63463,-0.45752 0.37783,-0.1653 0.86783,-0.1653 0.32174,0 0.64348,0.0827 0.3247,0.0797 0.61988,0.22138 l -0.29518,0.74385 q -0.24205,-0.11512 -0.48704,-0.20072 -0.245,-0.0856 -0.48114,-0.0856 z" />
|
||||
<path
|
||||
id="path3633"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 165.43242,500.36697 h 0.18006 q 0.38668,0 0.5815,-0.1535 0.19777,-0.15349 0.19777,-0.49885 0,-0.32174 -0.17711,-0.47523 -0.17415,-0.15349 -0.54903,-0.15349 h -0.23319 z m 1.88619,-0.68482 q 0,0.28337 -0.0856,0.54313 -0.0856,0.25976 -0.28337,0.45753 -0.19482,0.19777 -0.51657,0.31584 -0.31879,0.11807 -0.79107,0.11807 h -0.20958 v 1.53492 h -0.91505 v -4.3155 h 1.19842 q 0.4162,0 0.71728,0.0945 0.30404,0.0915 0.49885,0.26566 0.19777,0.1712 0.29223,0.4221 0.0945,0.24795 0.0945,0.56379 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2121)"
|
||||
d="m 147.19292,501.71742 v 12.37107"
|
||||
id="path2365" />
|
||||
<path
|
||||
id="path2367"
|
||||
d="M 177.01918,515.38384 V 503.01277"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)" />
|
||||
<rect
|
||||
y="516.97534"
|
||||
x="137.88206"
|
||||
height="12.225417"
|
||||
width="49.873222"
|
||||
id="rect2369"
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<g
|
||||
transform="translate(0,-6.879167)"
|
||||
id="text2373"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="IP">
|
||||
<path
|
||||
id="path3624"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 162.03197,532.12506 h -1.96293 v -0.51951 l 0.52542,-0.24205 v -2.79238 l -0.52542,-0.24204 v -0.51952 h 1.96293 v 0.51952 l -0.52542,0.24204 v 2.79238 l 0.52542,0.24205 z" />
|
||||
<path
|
||||
id="path3626"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 163.68201,529.84039 h 0.18006 q 0.38669,0 0.5815,-0.1535 0.19777,-0.15349 0.19777,-0.49885 0,-0.32174 -0.1771,-0.47523 -0.17416,-0.1535 -0.54904,-0.1535 h -0.23319 z m 1.88619,-0.68482 q 0,0.28337 -0.0856,0.54313 -0.0856,0.25976 -0.28337,0.45753 -0.19482,0.19776 -0.51656,0.31584 -0.3188,0.11807 -0.79108,0.11807 h -0.20958 v 1.53492 h -0.91505 v -4.3155 h 1.19842 q 0.41621,0 0.71729,0.0945 0.30403,0.0915 0.49885,0.26566 0.19777,0.1712 0.29222,0.4221 0.0945,0.24795 0.0945,0.56379 z" />
|
||||
</g>
|
||||
<path
|
||||
id="path2375"
|
||||
d="m 147.19292,527.48379 v 12.37107"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2225)" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)"
|
||||
d="M 177.01918,541.15021 V 528.77914"
|
||||
id="path2377" />
|
||||
<rect
|
||||
style="opacity:1;fill:#318e34;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect2379"
|
||||
width="49.873222"
|
||||
height="12.225417"
|
||||
x="136.35896"
|
||||
y="542.63239" />
|
||||
<g
|
||||
transform="translate(0,-10.583334)"
|
||||
id="text2383"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="Ethernet">
|
||||
<path
|
||||
id="path3585"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 151.33329,561.59558 h -2.4854 v -4.3155 h 2.4854 v 0.74975 h -1.57035 v 0.94752 h 1.46113 v 0.74976 h -1.46113 v 1.11282 h 1.57035 z" />
|
||||
<path
|
||||
id="path3587"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 153.5058,560.93733 q 0.13283,0 0.2509,-0.0295 0.12102,-0.0295 0.24499,-0.0738 v 0.67006 q -0.12692,0.0649 -0.31584,0.10626 -0.18596,0.0443 -0.40734,0.0443 -0.21548,0 -0.40144,-0.0502 -0.18597,-0.0502 -0.32175,-0.17416 -0.13578,-0.12692 -0.21548,-0.3365 -0.0767,-0.21253 -0.0767,-0.53132 v -1.59101 h -0.43096 v -0.38078 l 0.4959,-0.30108 0.25975,-0.69662 h 0.5756 v 0.70252 h 0.80288 v 0.67596 h -0.80288 v 1.59101 q 0,0.19186 0.0945,0.28337 0.0945,0.0915 0.24795,0.0915 z" />
|
||||
<path
|
||||
id="path3589"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 157.53202,561.59558 h -0.90029 v -1.92751 q 0,-0.35716 -0.11217,-0.53427 -0.10922,-0.18006 -0.33945,-0.18006 -0.17416,0 -0.29223,0.0708 -0.11807,0.0708 -0.18891,0.20958 -0.0709,0.13873 -0.10036,0.34241 -0.0295,0.20367 -0.0295,0.46638 v 1.55263 h -0.90029 v -4.59296 h 0.90029 v 0.93571 q 0,0.12397 -0.006,0.26271 -0.006,0.13578 -0.0147,0.2509 -0.0118,0.13578 -0.0207,0.26566 h 0.0472 q 0.14464,-0.25681 0.36897,-0.36897 0.22434,-0.11512 0.50771,-0.11512 0.245,0 0.44277,0.0708 0.20072,0.0679 0.3424,0.21548 0.14169,0.14759 0.21843,0.37783 0.0767,0.22728 0.0767,0.54608 z" />
|
||||
<path
|
||||
id="path3591"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 159.79308,558.87404 q -0.23909,0 -0.39849,0.16825 -0.15644,0.16826 -0.18006,0.52837 h 1.14824 q -0.003,-0.15054 -0.0384,-0.27747 -0.0354,-0.12692 -0.10626,-0.21843 -0.0709,-0.0944 -0.17711,-0.14759 -0.10626,-0.0531 -0.24795,-0.0531 z m 0.11512,2.78058 q -0.35421,0 -0.65234,-0.10332 -0.29813,-0.10331 -0.51361,-0.30993 -0.21548,-0.20958 -0.3365,-0.52542 -0.11808,-0.31879 -0.11808,-0.7468 0,-0.43391 0.10922,-0.7586 0.10922,-0.3247 0.30403,-0.54018 0.19777,-0.21843 0.47229,-0.32765 0.27746,-0.10921 0.61397,-0.10921 0.32764,0 0.59035,0.10036 0.26566,0.0974 0.44867,0.28927 0.18596,0.19187 0.28337,0.47229 0.10036,0.27746 0.10036,0.63758 v 0.43686 h -2.01311 q 0.006,0.18892 0.059,0.34241 0.0561,0.15054 0.15349,0.2568 0.10036,0.10332 0.23909,0.1594 0.14169,0.0561 0.32175,0.0561 0.15054,0 0.28337,-0.0148 0.13578,-0.0177 0.26271,-0.0502 0.12692,-0.0325 0.2509,-0.0797 0.12397,-0.0502 0.25385,-0.11512 v 0.69662 q -0.11807,0.062 -0.23909,0.10626 -0.11807,0.0413 -0.2509,0.0708 -0.13283,0.0295 -0.28633,0.0413 -0.15349,0.0148 -0.3365,0.0148 z" />
|
||||
<path
|
||||
id="path3593"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 163.69828,558.23351 q 0.0354,0 0.0767,0.003 0.0443,0 0.0827,0.006 0.0413,0.003 0.0738,0.009 0.0354,0.003 0.0531,0.009 v 0.84421 q -0.0236,-0.006 -0.0649,-0.0118 -0.0413,-0.006 -0.0885,-0.009 -0.0443,-0.006 -0.0885,-0.006 -0.0443,-0.003 -0.0738,-0.003 -0.17415,0 -0.32174,0.0443 -0.14464,0.0443 -0.2509,0.14464 -0.10331,0.0974 -0.16235,0.25975 -0.0561,0.1594 -0.0561,0.39259 v 1.67956 h -0.90029 v -3.30009 h 0.68186 l 0.13283,0.4959 h 0.0443 q 0.0708,-0.12692 0.15349,-0.23024 0.0827,-0.10331 0.18301,-0.17415 0.10332,-0.0738 0.23024,-0.11217 0.12988,-0.0413 0.29518,-0.0413 z" />
|
||||
<path
|
||||
id="path3595"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 167.4618,561.59558 h -0.90029 v -1.92751 q 0,-0.35716 -0.10922,-0.53427 -0.10626,-0.18006 -0.34241,-0.18006 -0.1771,0 -0.29517,0.0708 -0.11808,0.0708 -0.18892,0.20958 -0.0679,0.13873 -0.0974,0.34241 -0.0295,0.20367 -0.0295,0.46638 v 1.55263 h -0.9003 v -3.30009 h 0.68777 l 0.12102,0.42211 h 0.0502 q 0.0708,-0.12693 0.1712,-0.21843 0.10332,-0.0915 0.22434,-0.15054 0.12102,-0.059 0.2568,-0.0856 0.13579,-0.0295 0.27747,-0.0295 0.24205,0 0.43982,0.0708 0.19776,0.0679 0.33945,0.21548 0.14169,0.14759 0.21843,0.37783 0.0768,0.22728 0.0768,0.54608 z" />
|
||||
<path
|
||||
id="path3597"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 169.72286,558.87404 q -0.2391,0 -0.39849,0.16825 -0.15645,0.16826 -0.18006,0.52837 h 1.14824 q -0.003,-0.15054 -0.0384,-0.27747 -0.0354,-0.12692 -0.10627,-0.21843 -0.0708,-0.0944 -0.1771,-0.14759 -0.10627,-0.0531 -0.24795,-0.0531 z m 0.11512,2.78058 q -0.35422,0 -0.65235,-0.10332 -0.29812,-0.10331 -0.5136,-0.30993 -0.21548,-0.20958 -0.33651,-0.52542 -0.11807,-0.31879 -0.11807,-0.7468 0,-0.43391 0.10922,-0.7586 0.10921,-0.3247 0.30403,-0.54018 0.19777,-0.21843 0.47228,-0.32765 0.27747,-0.10921 0.61397,-0.10921 0.32765,0 0.59036,0.10036 0.26566,0.0974 0.44867,0.28927 0.18596,0.19187 0.28337,0.47229 0.10036,0.27746 0.10036,0.63758 v 0.43686 h -2.01311 q 0.006,0.18892 0.059,0.34241 0.0561,0.15054 0.1535,0.2568 0.10036,0.10332 0.23909,0.1594 0.14169,0.0561 0.32174,0.0561 0.15055,0 0.28338,-0.0148 0.13578,-0.0177 0.2627,-0.0502 0.12693,-0.0325 0.2509,-0.0797 0.12398,-0.0502 0.25386,-0.11512 v 0.69662 q -0.11807,0.062 -0.2391,0.10626 -0.11807,0.0413 -0.2509,0.0708 -0.13283,0.0295 -0.28632,0.0413 -0.15349,0.0148 -0.3365,0.0148 z" />
|
||||
<path
|
||||
id="path3599"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.04523945px;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 173.24728,560.93733 q 0.13283,0 0.2509,-0.0295 0.12102,-0.0295 0.245,-0.0738 v 0.67006 q -0.12693,0.0649 -0.31584,0.10626 -0.18596,0.0443 -0.40735,0.0443 -0.21548,0 -0.40144,-0.0502 -0.18596,-0.0502 -0.32174,-0.17416 -0.13578,-0.12692 -0.21548,-0.3365 -0.0768,-0.21253 -0.0768,-0.53132 v -1.59101 h -0.43096 v -0.38078 l 0.4959,-0.30108 0.25976,-0.69662 h 0.57559 v 0.70252 h 0.80289 v 0.67596 h -0.80289 v 1.59101 q 0,0.19186 0.0945,0.28337 0.0945,0.0915 0.24795,0.0915 z" />
|
||||
</g>
|
||||
<path
|
||||
id="path2385"
|
||||
d="m 107.40526,571.15664 a 8.193828,8.297547 0 0 0 -7.500557,4.96881 4.5117915,4.9785288 0 0 0 -2.612156,-0.9238 4.5117915,4.9785288 0 0 0 -4.302499,3.4837 4.0450544,3.733896 0 0 0 -1.972516,-0.47579 4.0450544,3.733896 0 0 0 -4.045017,3.73388 4.0450544,3.733896 0 0 0 0.354658,1.51759 13.846532,6.8973364 0 0 0 -1.331082,2.38814 10.734952,7.1566348 0 0 0 -2.913062,-0.27555 10.734952,7.1566348 0 0 0 -10.734965,7.15661 10.734952,7.1566348 0 0 0 0.01674,0.31545 7.3640739,3.8894755 0 0 0 -4.995268,3.67782 7.3640739,3.8894755 0 0 0 4.436665,3.56712 5.3934057,3.7857559 0 0 0 5.209244,2.81157 5.3934057,3.7857559 0 0 0 2.992782,-0.63961 6.3268792,4.1487735 0 0 0 4.682442,1.36568 6.3268792,4.1487735 0 0 0 4.214264,-1.06107 10.631232,5.6527039 0 0 0 6.9355,1.37221 10.631232,5.6527039 0 0 0 6.984957,-1.40058 6.27502,3.5264578 0 0 0 5.6689,2.02286 6.27502,3.5264578 0 0 0 4.96148,-1.3744 5.2378276,3.6301768 0 0 0 1.36537,0.12984 5.2378276,3.6301768 0 0 0 5.23784,-3.63019 5.2378276,3.6301768 0 0 0 -0.008,-0.1492 20.27713,5.963862 0 0 0 1.84497,-0.49403 7.4677918,4.8229494 0 0 0 6.14899,2.09525 7.4677918,4.8229494 0 0 0 7.46783,-4.82291 7.4677918,4.8229494 0 0 0 -0.2636,-1.26582 4.9785288,4.3562124 0 0 0 1.19713,-2.83113 4.9785288,4.3562124 0 0 0 -2.1e-4,-0.006 5.9120028,3.3190189 0 0 0 3.83776,-3.10618 5.9120028,3.3190189 0 0 0 -4.25378,-3.18349 4.2006335,2.3336851 0 0 0 -4.19932,-2.31364 4.2006335,2.3336851 0 0 0 -1.21257,0.10144 8.297547,9.3347402 0 0 0 -7.55177,-5.49482 8.297547,9.3347402 0 0 0 -3.64492,0.95578 4.6155111,3.3190189 0 0 0 -4.11079,-2.09034 8.193828,8.297547 0 0 0 -7.90582,-6.12582 z"
|
||||
style="opacity:1;fill:none;fill-opacity:0.99843014;stroke:#000000;stroke-width:1.12329447;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
id="path2430"
|
||||
d="m 43.052891,555.37553 c -2.28998,38.92967 32.746716,41.44866 32.746716,41.44866"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#marker2434)" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker2826);marker-end:url(#marker2896)"
|
||||
d="m 160.71758,555.37553 c 2.28998,38.92967 -32.74672,41.44866 -32.74672,41.44866"
|
||||
id="path2822" />
|
||||
<path
|
||||
id="path815"
|
||||
d="M 3.2072344,441.08073 H 212.05344"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.79897124;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.59794249, 1.59794249;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
id="text819"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.36316156px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13407904"
|
||||
aria-label="Espace noyau">
|
||||
<path
|
||||
id="path3813"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 88.203298,447.56152 h -2.204972 v -3.82858 h 2.204972 v 0.66516 h -1.393165 v 0.84061 h 1.296272 v 0.66516 h -1.296272 v 0.98726 h 1.393165 z" />
|
||||
<path
|
||||
id="path3815"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 90.892735,446.6921 q 0,0.23045 -0.0838,0.40329 -0.0838,0.17284 -0.238304,0.28806 -0.154505,0.11522 -0.374479,0.17284 -0.219973,0.0576 -0.492321,0.0576 -0.14403,0 -0.267111,-0.0105 -0.12308,-0.008 -0.233067,-0.0288 -0.109987,-0.0209 -0.212117,-0.0524 -0.102131,-0.0314 -0.20688,-0.0786 v -0.65992 q 0.109987,0.055 0.230449,0.0995 0.12308,0.0445 0.243542,0.0786 0.120461,0.0314 0.233067,0.0498 0.115224,0.0183 0.212117,0.0183 0.107368,0 0.183311,-0.0183 0.07594,-0.021 0.12308,-0.055 0.04976,-0.0367 0.07071,-0.0838 0.02357,-0.0498 0.02357,-0.10475 0,-0.055 -0.01833,-0.0969 -0.01571,-0.0445 -0.07594,-0.0917 -0.06023,-0.0498 -0.178073,-0.10999 -0.115225,-0.0629 -0.311629,-0.15188 -0.191168,-0.0864 -0.332579,-0.17022 -0.138793,-0.0864 -0.230449,-0.19117 -0.08904,-0.10475 -0.133555,-0.2383 -0.04452,-0.13618 -0.04452,-0.32211 0,-0.20426 0.07856,-0.35614 0.07856,-0.15451 0.222592,-0.25664 0.14403,-0.10213 0.345672,-0.15189 0.204261,-0.0524 0.453041,-0.0524 0.261873,0 0.497559,0.0602 0.235686,0.0602 0.484465,0.18069 l -0.240923,0.56565 q -0.199024,-0.0943 -0.379716,-0.15451 -0.180693,-0.0602 -0.361385,-0.0602 -0.162362,0 -0.235686,0.0576 -0.07071,0.0576 -0.07071,0.15713 0,0.0524 0.01833,0.0943 0.01833,0.0393 0.07333,0.0838 0.05499,0.0419 0.154505,0.0943 0.09951,0.0498 0.259254,0.12308 0.18593,0.0812 0.335198,0.16236 0.149268,0.0786 0.256636,0.18069 0.107368,0.10213 0.16498,0.2383 0.05761,0.13618 0.05761,0.32996 z" />
|
||||
<path
|
||||
id="path3817"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 93.058426,447.6139 q -0.144031,0 -0.259255,-0.0314 -0.112605,-0.0314 -0.201642,-0.0838 -0.08904,-0.0524 -0.157124,-0.11784 -0.06809,-0.0681 -0.12308,-0.14141 h -0.0419 q 0.01047,0.0917 0.02095,0.17284 0.0079,0.0681 0.01309,0.14141 0.0079,0.0707 0.0079,0.10998 v 1.18629 h -0.798713 v -4.21616 h 0.649445 l 0.112605,0.37972 h 0.03666 q 0.05499,-0.089 0.125699,-0.1676 0.07071,-0.0786 0.162361,-0.13617 0.09427,-0.0602 0.212117,-0.0943 0.117843,-0.0367 0.261873,-0.0367 0.22783,0 0.41376,0.0969 0.18593,0.0969 0.319485,0.28806 0.133555,0.19117 0.20688,0.47399 0.07332,0.28283 0.07332,0.65469 0,0.37447 -0.07594,0.65992 -0.07594,0.28282 -0.214736,0.4766 -0.136174,0.19117 -0.327341,0.28807 -0.188549,0.0969 -0.416378,0.0969 z m -0.24878,-2.39614 q -0.133555,0 -0.22783,0.0498 -0.09166,0.0471 -0.149267,0.14404 -0.05761,0.0969 -0.0838,0.24616 -0.02619,0.14664 -0.03142,0.34305 v 0.0864 q 0,0.21211 0.02357,0.3771 0.02619,0.16498 0.0838,0.27758 0.05761,0.10999 0.151886,0.1676 0.09689,0.0576 0.238305,0.0576 0.238304,0 0.348291,-0.22521 0.112605,-0.22783 0.112605,-0.65992 0,-0.43209 -0.112605,-0.64683 -0.109987,-0.21735 -0.353529,-0.21735 z" />
|
||||
<path
|
||||
id="path3819"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 96.47587,447.56152 -0.154506,-0.39804 h -0.02357 q -0.08642,0.11784 -0.172836,0.20426 -0.08642,0.0838 -0.188549,0.13879 -0.102131,0.055 -0.230448,0.0812 -0.125699,0.0262 -0.293298,0.0262 -0.178074,0 -0.32996,-0.055 -0.151887,-0.0576 -0.264492,-0.17021 -0.109987,-0.11523 -0.172837,-0.28806 -0.06285,-0.17546 -0.06285,-0.41376 0,-0.46614 0.298535,-0.68611 0.298536,-0.22259 0.892988,-0.24616 l 0.466134,-0.0157 v -0.21998 q 0,-0.18069 -0.104749,-0.26711 -0.10475,-0.0864 -0.293298,-0.0864 -0.188549,0 -0.369241,0.055 -0.178074,0.055 -0.358767,0.14665 l -0.259254,-0.52899 q 0.219973,-0.12308 0.487084,-0.19378 0.267111,-0.0707 0.560408,-0.0707 0.547315,0 0.837994,0.25664 0.293298,0.25663 0.293298,0.78038 v 1.95095 z m -0.235686,-1.3565 -0.264492,0.0105 q -0.159743,0.005 -0.269729,0.0419 -0.109987,0.0367 -0.178074,0.0995 -0.06547,0.0602 -0.09689,0.14665 -0.02881,0.0838 -0.02881,0.18854 0,0.18332 0.08904,0.26188 0.08904,0.0759 0.233067,0.0759 0.109986,0 0.204261,-0.0367 0.09427,-0.0393 0.162361,-0.11261 0.07071,-0.0759 0.109987,-0.18331 0.03928,-0.10998 0.03928,-0.2514 z" />
|
||||
<path
|
||||
id="path3821"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 99.073651,447.6139 q -0.314248,0 -0.568265,-0.0864 -0.251398,-0.0864 -0.43209,-0.26711 -0.178074,-0.18331 -0.274967,-0.46613 -0.09427,-0.28545 -0.09427,-0.68087 0,-0.43733 0.09689,-0.73063 0.09951,-0.29592 0.277585,-0.47399 0.180693,-0.17808 0.432091,-0.25402 0.254017,-0.0759 0.563027,-0.0759 0.225211,0 0.447803,0.055 0.222592,0.055 0.418997,0.15451 l -0.230448,0.60754 q -0.172837,-0.0759 -0.332579,-0.12308 -0.159743,-0.0497 -0.303773,-0.0497 -0.290679,0 -0.421616,0.22259 -0.130936,0.21997 -0.130936,0.66254 0,0.43994 0.130936,0.64944 0.130937,0.2095 0.411141,0.2095 0.22783,0 0.41376,-0.0576 0.18593,-0.0602 0.379716,-0.15189 v 0.66516 q -0.09689,0.0471 -0.188549,0.0838 -0.09166,0.0367 -0.18593,0.0602 -0.09166,0.0236 -0.193786,0.034 -0.09951,0.0131 -0.214736,0.0131 z" />
|
||||
<path
|
||||
id="path3823"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 101.72119,445.14705 q -0.21212,0 -0.35353,0.14927 -0.13879,0.14927 -0.15974,0.46875 h 1.01868 q -0.003,-0.13355 -0.034,-0.24616 -0.0314,-0.1126 -0.0943,-0.19378 -0.0629,-0.0838 -0.15713,-0.13094 -0.0943,-0.0471 -0.21997,-0.0471 z m 0.10213,2.46685 q -0.31425,0 -0.57874,-0.0917 -0.26449,-0.0917 -0.45566,-0.27496 -0.19117,-0.18593 -0.29854,-0.46614 -0.10474,-0.28282 -0.10474,-0.66254 0,-0.38495 0.0969,-0.67301 0.0969,-0.28806 0.26973,-0.47923 0.17545,-0.19379 0.41899,-0.29068 0.24617,-0.0969 0.5447,-0.0969 0.29068,0 0.52375,0.089 0.23568,0.0864 0.39804,0.25663 0.16498,0.17022 0.2514,0.419 0.089,0.24616 0.089,0.56564 v 0.38758 h -1.78598 q 0.005,0.1676 0.0524,0.30377 0.0498,0.13355 0.13617,0.22783 0.089,0.0917 0.21212,0.14141 0.1257,0.0498 0.28544,0.0498 0.13356,0 0.2514,-0.0131 0.12046,-0.0157 0.23307,-0.0445 0.1126,-0.0288 0.22259,-0.0707 0.10999,-0.0445 0.22521,-0.10213 v 0.61802 q -0.10475,0.055 -0.21212,0.0943 -0.10475,0.0367 -0.22259,0.0629 -0.11784,0.0262 -0.25402,0.0367 -0.13617,0.0131 -0.29853,0.0131 z" />
|
||||
<path
|
||||
id="path3825"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 107.59238,447.56152 h -0.79871 v -1.71003 q 0,-0.31686 -0.0969,-0.47399 -0.0943,-0.15974 -0.30378,-0.15974 -0.15712,0 -0.26187,0.0629 -0.10475,0.0628 -0.1676,0.18593 -0.0602,0.12308 -0.0864,0.30377 -0.0262,0.18069 -0.0262,0.41376 v 1.37745 h -0.79872 v -2.92774 h 0.61017 l 0.10737,0.37448 h 0.0445 q 0.0628,-0.1126 0.15189,-0.19379 0.0917,-0.0812 0.19902,-0.13355 0.10737,-0.0524 0.22783,-0.0759 0.12047,-0.0262 0.24616,-0.0262 0.21474,0 0.3902,0.0628 0.17545,0.0602 0.30115,0.19117 0.1257,0.13093 0.19379,0.33519 0.0681,0.20165 0.0681,0.48447 z" />
|
||||
<path
|
||||
id="path3827"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 109.07982,446.09242 q 0,0.43732 0.12308,0.65992 0.12308,0.21997 0.40067,0.21997 0.27497,0 0.39805,-0.22259 0.12308,-0.2226 0.12308,-0.6573 0,-0.43733 -0.12308,-0.65207 -0.12308,-0.21735 -0.40329,-0.21735 -0.27496,0 -0.39805,0.21735 -0.12046,0.21474 -0.12046,0.65207 z m 1.8593,0 q 0,0.36662 -0.0943,0.64944 -0.0917,0.28282 -0.26711,0.47661 -0.17284,0.19379 -0.42424,0.29592 -0.24878,0.0995 -0.56041,0.0995 -0.29067,0 -0.53422,-0.0995 -0.24354,-0.10213 -0.42161,-0.29592 -0.17546,-0.19379 -0.27497,-0.47661 -0.0995,-0.28282 -0.0995,-0.64944 0,-0.36401 0.0916,-0.64683 0.0943,-0.28282 0.26712,-0.47399 0.17545,-0.19379 0.42423,-0.2933 0.24878,-0.0995 0.56303,-0.0995 0.29068,0 0.53422,0.0995 0.24354,0.0995 0.419,0.2933 0.17807,0.19117 0.27758,0.47399 0.0995,0.28282 0.0995,0.64683 z" />
|
||||
<path
|
||||
id="path3829"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 111.21147,444.63378 h 0.87466 l 0.47137,1.64718 q 0.0419,0.13618 0.0602,0.29068 0.0209,0.15451 0.0262,0.27759 h 0.0157 q 0.005,-0.0602 0.0131,-0.13356 0.0105,-0.0733 0.0236,-0.14926 0.0131,-0.076 0.0288,-0.14927 0.0183,-0.076 0.0367,-0.13618 l 0.4609,-1.64718 h 0.87989 l -1.15748,3.30222 q -0.16236,0.46352 -0.44257,0.68873 -0.2802,0.22521 -0.70182,0.22521 -0.13617,0 -0.23568,-0.0157 -0.0995,-0.0131 -0.17022,-0.0288 v -0.63373 q 0.055,0.0131 0.13879,0.0236 0.0838,0.0105 0.17546,0.0105 0.1257,0 0.21473,-0.034 0.089,-0.0341 0.15189,-0.0969 0.0655,-0.0602 0.10999,-0.14664 0.0471,-0.0864 0.0812,-0.19379 l 0.0498,-0.14665 z" />
|
||||
<path
|
||||
id="path3831"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 116.2211,447.56152 -0.1545,-0.39804 h -0.0236 q -0.0864,0.11784 -0.17284,0.20426 -0.0864,0.0838 -0.18854,0.13879 -0.10214,0.055 -0.23045,0.0812 -0.1257,0.0262 -0.2933,0.0262 -0.17807,0 -0.32996,-0.055 -0.15189,-0.0576 -0.26449,-0.17021 -0.10999,-0.11523 -0.17284,-0.28806 -0.0628,-0.17546 -0.0628,-0.41376 0,-0.46614 0.29854,-0.68611 0.29853,-0.22259 0.89298,-0.24616 l 0.46614,-0.0157 v -0.21998 q 0,-0.18069 -0.10475,-0.26711 -0.10475,-0.0864 -0.2933,-0.0864 -0.18855,0 -0.36924,0.055 -0.17807,0.055 -0.35877,0.14665 l -0.25925,-0.52899 q 0.21997,-0.12308 0.48708,-0.19378 0.26711,-0.0707 0.56041,-0.0707 0.54732,0 0.838,0.25664 0.29329,0.25663 0.29329,0.78038 v 1.95095 z m -0.23568,-1.3565 -0.26449,0.0105 q -0.15975,0.005 -0.26973,0.0419 -0.10999,0.0367 -0.17808,0.0995 -0.0655,0.0602 -0.0969,0.14665 -0.0288,0.0838 -0.0288,0.18854 0,0.18332 0.089,0.26188 0.089,0.0759 0.23307,0.0759 0.10998,0 0.20426,-0.0367 0.0943,-0.0393 0.16236,-0.11261 0.0707,-0.0759 0.10999,-0.18331 0.0393,-0.10998 0.0393,-0.2514 z" />
|
||||
<path
|
||||
id="path3833"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 119.51547,447.56152 -0.10737,-0.37448 h -0.0419 q -0.0655,0.11261 -0.15712,0.19379 -0.089,0.0786 -0.19641,0.13094 -0.10737,0.0524 -0.22783,0.0759 -0.12046,0.0262 -0.24616,0.0262 -0.21473,0 -0.39019,-0.0602 -0.17545,-0.0629 -0.30115,-0.19379 -0.1257,-0.13094 -0.19379,-0.33258 -0.0681,-0.20164 -0.0681,-0.48446 v -1.90906 h 0.79872 v 1.71003 q 0,0.31687 0.0943,0.47661 0.0969,0.15713 0.30639,0.15713 0.15713,0 0.26188,-0.0629 0.10474,-0.0628 0.16498,-0.18593 0.0628,-0.12308 0.089,-0.30378 0.0262,-0.18069 0.0262,-0.41376 v -1.37745 h 0.79871 v 2.92774 z" />
|
||||
</g>
|
||||
<g
|
||||
id="text819-3"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.36316156px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13407904"
|
||||
aria-label="Espace utilisateur">
|
||||
<path
|
||||
id="path3836"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="M 82.426381,437.94498 H 80.22141 v -3.82859 h 2.204971 v 0.66516 h -1.393165 v 0.84061 h 1.296272 v 0.66516 h -1.296272 v 0.98726 h 1.393165 z" />
|
||||
<path
|
||||
id="path3838"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 85.115818,437.07556 q 0,0.23045 -0.0838,0.40328 -0.0838,0.17284 -0.238305,0.28806 -0.154505,0.11523 -0.374478,0.17284 -0.219974,0.0576 -0.492322,0.0576 -0.14403,0 -0.26711,-0.0105 -0.123081,-0.008 -0.233067,-0.0288 -0.109987,-0.021 -0.212118,-0.0524 -0.10213,-0.0314 -0.206879,-0.0786 v -0.65992 q 0.109986,0.055 0.230448,0.0995 0.12308,0.0445 0.243542,0.0786 0.120462,0.0314 0.233067,0.0498 0.115224,0.0183 0.212117,0.0183 0.107368,0 0.183312,-0.0183 0.07594,-0.0209 0.12308,-0.055 0.04976,-0.0367 0.07071,-0.0838 0.02357,-0.0498 0.02357,-0.10475 0,-0.055 -0.01833,-0.0969 -0.01571,-0.0445 -0.07594,-0.0917 -0.06023,-0.0497 -0.178074,-0.10998 -0.115224,-0.0629 -0.311629,-0.15189 -0.191167,-0.0864 -0.332579,-0.17022 -0.138792,-0.0864 -0.230448,-0.19117 -0.08904,-0.10474 -0.133555,-0.2383 -0.04452,-0.13617 -0.04452,-0.3221 0,-0.20426 0.07856,-0.35615 0.07856,-0.15451 0.222592,-0.25664 0.144031,-0.10213 0.345673,-0.15188 0.204261,-0.0524 0.45304,-0.0524 0.261873,0 0.497559,0.0602 0.235686,0.0602 0.484466,0.1807 l -0.240924,0.56564 q -0.199023,-0.0943 -0.379716,-0.1545 -0.180692,-0.0602 -0.361385,-0.0602 -0.162361,0 -0.235685,0.0576 -0.07071,0.0576 -0.07071,0.15712 0,0.0524 0.01833,0.0943 0.01833,0.0393 0.07332,0.0838 0.05499,0.0419 0.154505,0.0943 0.09951,0.0498 0.259255,0.12308 0.18593,0.0812 0.335197,0.16236 0.149268,0.0786 0.256636,0.18069 0.107368,0.10213 0.16498,0.23831 0.05761,0.13617 0.05761,0.32996 z" />
|
||||
<path
|
||||
id="path3840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 87.281509,437.99735 q -0.14403,0 -0.259254,-0.0314 -0.112606,-0.0314 -0.201643,-0.0838 -0.08904,-0.0524 -0.157123,-0.11785 -0.06809,-0.0681 -0.123081,-0.14141 h -0.0419 q 0.01047,0.0917 0.02095,0.17284 0.0079,0.0681 0.01309,0.14141 0.0079,0.0707 0.0079,0.10999 v 1.18628 h -0.798713 v -4.21615 h 0.649445 l 0.112606,0.37971 h 0.03666 q 0.05499,-0.089 0.125699,-0.1676 0.07071,-0.0786 0.162362,-0.13617 0.09427,-0.0602 0.212117,-0.0943 0.117843,-0.0367 0.261873,-0.0367 0.22783,0 0.413759,0.0969 0.18593,0.0969 0.319486,0.28807 0.133555,0.19116 0.206879,0.47399 0.07332,0.28282 0.07332,0.65468 0,0.37448 -0.07594,0.65992 -0.07594,0.28282 -0.214736,0.47661 -0.136174,0.19117 -0.327342,0.28806 -0.188548,0.0969 -0.416378,0.0969 z m -0.248779,-2.39614 q -0.133556,0 -0.22783,0.0498 -0.09166,0.0471 -0.149268,0.14403 -0.05761,0.0969 -0.0838,0.24616 -0.02619,0.14665 -0.03142,0.34305 v 0.0864 q 0,0.21212 0.02357,0.3771 0.02619,0.16498 0.0838,0.27758 0.05761,0.10999 0.151887,0.1676 0.09689,0.0576 0.238304,0.0576 0.238305,0 0.348291,-0.22521 0.112606,-0.22783 0.112606,-0.65992 0,-0.43209 -0.112606,-0.64682 -0.109986,-0.21736 -0.353528,-0.21736 z" />
|
||||
<path
|
||||
id="path3842"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 90.698953,437.94498 -0.154505,-0.39805 h -0.02357 q -0.08642,0.11784 -0.172836,0.20426 -0.08642,0.0838 -0.188549,0.13879 -0.10213,0.055 -0.230448,0.0812 -0.125699,0.0262 -0.293298,0.0262 -0.178074,0 -0.32996,-0.055 -0.151886,-0.0576 -0.264492,-0.17022 -0.109987,-0.11522 -0.172836,-0.28806 -0.06285,-0.17545 -0.06285,-0.41376 0,-0.46613 0.298536,-0.68611 0.298535,-0.22259 0.892987,-0.24616 l 0.466134,-0.0157 v -0.21997 q 0,-0.1807 -0.104749,-0.26711 -0.104749,-0.0864 -0.293298,-0.0864 -0.188549,0 -0.369241,0.055 -0.178074,0.055 -0.358766,0.14665 l -0.259255,-0.52898 q 0.219974,-0.12308 0.487084,-0.19379 0.267111,-0.0707 0.560409,-0.0707 0.547315,0 0.837994,0.25664 0.293298,0.25664 0.293298,0.78038 v 1.95096 z m -0.235686,-1.35651 -0.264492,0.0105 q -0.159742,0.005 -0.269729,0.0419 -0.109987,0.0367 -0.178074,0.0995 -0.06547,0.0602 -0.09689,0.14665 -0.02881,0.0838 -0.02881,0.18855 0,0.18331 0.08904,0.26187 0.08904,0.0759 0.233067,0.0759 0.109987,0 0.204261,-0.0367 0.09427,-0.0393 0.162362,-0.1126 0.07071,-0.076 0.109986,-0.18331 0.03928,-0.10999 0.03928,-0.2514 z" />
|
||||
<path
|
||||
id="path3844"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 93.296735,437.99735 q -0.314248,0 -0.568265,-0.0864 -0.251398,-0.0864 -0.432091,-0.26711 -0.178074,-0.18331 -0.274967,-0.46613 -0.09427,-0.28544 -0.09427,-0.68087 0,-0.43733 0.09689,-0.73063 0.09951,-0.29591 0.277586,-0.47399 0.180692,-0.17807 0.43209,-0.25401 0.254017,-0.0759 0.563028,-0.0759 0.22521,0 0.447803,0.055 0.222592,0.055 0.418997,0.1545 l -0.230449,0.60755 q -0.172836,-0.0759 -0.332579,-0.12308 -0.159742,-0.0498 -0.303772,-0.0498 -0.29068,0 -0.421616,0.22259 -0.130937,0.21998 -0.130937,0.66254 0,0.43995 0.130937,0.64945 0.130936,0.20949 0.411141,0.20949 0.227829,0 0.413759,-0.0576 0.18593,-0.0602 0.379716,-0.15188 v 0.66515 q -0.09689,0.0471 -0.188548,0.0838 -0.09166,0.0367 -0.18593,0.0602 -0.09166,0.0236 -0.193787,0.034 -0.09951,0.0131 -0.214735,0.0131 z" />
|
||||
<path
|
||||
id="path3846"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 95.944272,435.53051 q -0.212118,0 -0.353529,0.14926 -0.138793,0.14927 -0.159743,0.46876 h 1.018687 q -0.0026,-0.13356 -0.03404,-0.24616 -0.03142,-0.11261 -0.09427,-0.19379 -0.06285,-0.0838 -0.157124,-0.13094 -0.09427,-0.0471 -0.219973,-0.0471 z m 0.10213,2.46684 q -0.314248,0 -0.57874,-0.0916 -0.264491,-0.0917 -0.455659,-0.27497 -0.191167,-0.18593 -0.298535,-0.46614 -0.104749,-0.28282 -0.104749,-0.66253 0,-0.38496 0.09689,-0.67302 0.09689,-0.28806 0.269729,-0.47923 0.175455,-0.19378 0.418997,-0.29068 0.246161,-0.0969 0.544696,-0.0969 0.290679,0 0.523746,0.089 0.235686,0.0864 0.398047,0.25663 0.164981,0.17022 0.251399,0.419 0.08904,0.24616 0.08904,0.56565 v 0.38757 h -1.785975 q 0.0052,0.1676 0.05237,0.30377 0.04976,0.13356 0.136175,0.22783 0.08904,0.0917 0.212117,0.14141 0.125699,0.0498 0.285441,0.0498 0.133556,0 0.251399,-0.0131 0.120461,-0.0157 0.233067,-0.0445 0.112605,-0.0288 0.222592,-0.0707 0.109987,-0.0445 0.225211,-0.10213 v 0.61802 q -0.104749,0.055 -0.212117,0.0943 -0.10475,0.0367 -0.222593,0.0629 -0.117843,0.0262 -0.254017,0.0367 -0.136174,0.0131 -0.298535,0.0131 z" />
|
||||
<path
|
||||
id="path3848"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 101.18959,437.94498 -0.10737,-0.37448 h -0.0419 q -0.0655,0.1126 -0.15712,0.19378 -0.089,0.0786 -0.19641,0.13094 -0.10736,0.0524 -0.22783,0.0759 -0.12046,0.0262 -0.24616,0.0262 -0.214733,0 -0.390188,-0.0602 -0.175455,-0.0628 -0.301154,-0.19379 -0.125699,-0.13093 -0.193786,-0.33257 -0.06809,-0.20165 -0.06809,-0.48447 v -1.90905 h 0.798718 v 1.71003 q 0,0.31686 0.0943,0.47661 0.0969,0.15712 0.30639,0.15712 0.15713,0 0.26188,-0.0628 0.10475,-0.0629 0.16498,-0.18593 0.0629,-0.12308 0.089,-0.30377 0.0262,-0.1807 0.0262,-0.41376 v -1.37745 h 0.79871 v 2.92774 z" />
|
||||
<path
|
||||
id="path3850"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 103.82665,437.361 q 0.11785,0 0.2226,-0.0262 0.10736,-0.0262 0.21735,-0.0655 v 0.59446 q -0.11261,0.0576 -0.2802,0.0943 -0.16498,0.0393 -0.36139,0.0393 -0.19117,0 -0.35615,-0.0445 -0.16498,-0.0445 -0.28544,-0.1545 -0.12046,-0.11261 -0.19117,-0.29854 -0.0681,-0.18855 -0.0681,-0.47137 v -1.4115 h -0.38234 v -0.33781 l 0.43995,-0.26711 0.23045,-0.61802 h 0.51065 v 0.62326 h 0.71229 v 0.59968 h -0.71229 v 1.4115 q 0,0.17022 0.0838,0.2514 0.0838,0.0812 0.21997,0.0812 z" />
|
||||
<path
|
||||
id="path3852"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 104.82439,434.26042 q 0,-0.1126 0.034,-0.18593 0.0341,-0.0759 0.0917,-0.12046 0.0602,-0.0471 0.13879,-0.0655 0.0812,-0.0183 0.17022,-0.0183 0.089,0 0.1676,0.0183 0.0786,0.0183 0.13617,0.0655 0.0602,0.0445 0.0943,0.12046 0.0367,0.0733 0.0367,0.18593 0,0.10999 -0.0367,0.18593 -0.0341,0.0759 -0.0943,0.12308 -0.0576,0.0445 -0.13617,0.0655 -0.0786,0.0183 -0.1676,0.0183 -0.089,0 -0.17022,-0.0183 -0.0786,-0.021 -0.13879,-0.0655 -0.0576,-0.0471 -0.0917,-0.12308 -0.034,-0.0759 -0.034,-0.18593 z m 0.83276,3.68456 h -0.79872 v -2.92774 h 0.79872 z" />
|
||||
<path
|
||||
id="path3854"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 107.29123,437.94498 h -0.79871 v -4.07475 h 0.79871 z" />
|
||||
<path
|
||||
id="path3856"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 108.09257,434.26042 q 0,-0.1126 0.034,-0.18593 0.034,-0.0759 0.0917,-0.12046 0.0602,-0.0471 0.13879,-0.0655 0.0812,-0.0183 0.17022,-0.0183 0.089,0 0.16759,0.0183 0.0786,0.0183 0.13618,0.0655 0.0602,0.0445 0.0943,0.12046 0.0367,0.0733 0.0367,0.18593 0,0.10999 -0.0367,0.18593 -0.034,0.0759 -0.0943,0.12308 -0.0576,0.0445 -0.13618,0.0655 -0.0786,0.0183 -0.16759,0.0183 -0.089,0 -0.17022,-0.0183 -0.0786,-0.021 -0.13879,-0.0655 -0.0576,-0.0471 -0.0917,-0.12308 -0.034,-0.0759 -0.034,-0.18593 z m 0.83275,3.68456 h -0.79871 v -2.92774 h 0.79871 z" />
|
||||
<path
|
||||
id="path3858"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 111.71165,437.07556 q 0,0.23045 -0.0838,0.40328 -0.0838,0.17284 -0.2383,0.28806 -0.15451,0.11523 -0.37448,0.17284 -0.21997,0.0576 -0.49232,0.0576 -0.14403,0 -0.26711,-0.0105 -0.12308,-0.008 -0.23307,-0.0288 -0.10999,-0.021 -0.21212,-0.0524 -0.10213,-0.0314 -0.20688,-0.0786 v -0.65992 q 0.10999,0.055 0.23045,0.0995 0.12308,0.0445 0.24354,0.0786 0.12047,0.0314 0.23307,0.0498 0.11523,0.0183 0.21212,0.0183 0.10737,0 0.18331,-0.0183 0.0759,-0.0209 0.12308,-0.055 0.0498,-0.0367 0.0707,-0.0838 0.0236,-0.0498 0.0236,-0.10475 0,-0.055 -0.0183,-0.0969 -0.0157,-0.0445 -0.0759,-0.0917 -0.0602,-0.0497 -0.17807,-0.10998 -0.11523,-0.0629 -0.31163,-0.15189 -0.19117,-0.0864 -0.33258,-0.17022 -0.13879,-0.0864 -0.23045,-0.19117 -0.089,-0.10474 -0.13355,-0.2383 -0.0445,-0.13617 -0.0445,-0.3221 0,-0.20426 0.0786,-0.35615 0.0786,-0.15451 0.22259,-0.25664 0.14403,-0.10213 0.34567,-0.15188 0.20426,-0.0524 0.45304,-0.0524 0.26188,0 0.49756,0.0602 0.23569,0.0602 0.48447,0.1807 l -0.24092,0.56564 q -0.19903,-0.0943 -0.37972,-0.1545 -0.18069,-0.0602 -0.36139,-0.0602 -0.16236,0 -0.23568,0.0576 -0.0707,0.0576 -0.0707,0.15712 0,0.0524 0.0183,0.0943 0.0183,0.0393 0.0733,0.0838 0.055,0.0419 0.1545,0.0943 0.0995,0.0498 0.25926,0.12308 0.18593,0.0812 0.3352,0.16236 0.14926,0.0786 0.25663,0.18069 0.10737,0.10213 0.16498,0.23831 0.0576,0.13617 0.0576,0.32996 z" />
|
||||
<path
|
||||
id="path3860"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 114.03709,437.94498 -0.15451,-0.39805 h -0.0236 q -0.0864,0.11784 -0.17283,0.20426 -0.0864,0.0838 -0.18855,0.13879 -0.10213,0.055 -0.23045,0.0812 -0.1257,0.0262 -0.2933,0.0262 -0.17807,0 -0.32996,-0.055 -0.15188,-0.0576 -0.26449,-0.17022 -0.10999,-0.11522 -0.17284,-0.28806 -0.0629,-0.17545 -0.0629,-0.41376 0,-0.46613 0.29854,-0.68611 0.29853,-0.22259 0.89299,-0.24616 l 0.46613,-0.0157 v -0.21997 q 0,-0.1807 -0.10475,-0.26711 -0.10475,-0.0864 -0.2933,-0.0864 -0.18854,0 -0.36924,0.055 -0.17807,0.055 -0.35876,0.14665 l -0.25926,-0.52898 q 0.21998,-0.12308 0.48709,-0.19379 0.26711,-0.0707 0.5604,-0.0707 0.54732,0 0.838,0.25664 0.2933,0.25664 0.2933,0.78038 v 1.95096 z m -0.23569,-1.35651 -0.26449,0.0105 q -0.15974,0.005 -0.26973,0.0419 -0.10999,0.0367 -0.17807,0.0995 -0.0655,0.0602 -0.0969,0.14665 -0.0288,0.0838 -0.0288,0.18855 0,0.18331 0.089,0.26187 0.089,0.0759 0.23307,0.0759 0.10999,0 0.20426,-0.0367 0.0943,-0.0393 0.16236,-0.1126 0.0707,-0.076 0.10999,-0.18331 0.0393,-0.10999 0.0393,-0.2514 z" />
|
||||
<path
|
||||
id="path3862"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 116.60606,437.361 q 0.11785,0 0.22259,-0.0262 0.10737,-0.0262 0.21736,-0.0655 v 0.59446 q -0.11261,0.0576 -0.28021,0.0943 -0.16498,0.0393 -0.36138,0.0393 -0.19117,0 -0.35615,-0.0445 -0.16498,-0.0445 -0.28544,-0.1545 -0.12046,-0.11261 -0.19117,-0.29854 -0.0681,-0.18855 -0.0681,-0.47137 v -1.4115 h -0.38234 v -0.33781 l 0.43995,-0.26711 0.23045,-0.61802 h 0.51065 v 0.62326 h 0.71229 v 0.59968 h -0.71229 v 1.4115 q 0,0.17022 0.0838,0.2514 0.0838,0.0812 0.21997,0.0812 z" />
|
||||
<path
|
||||
id="path3864"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 118.82151,435.53051 q -0.21212,0 -0.35353,0.14926 -0.13879,0.14927 -0.15974,0.46876 h 1.01868 q -0.003,-0.13356 -0.034,-0.24616 -0.0314,-0.11261 -0.0943,-0.19379 -0.0628,-0.0838 -0.15713,-0.13094 -0.0943,-0.0471 -0.21997,-0.0471 z m 0.10213,2.46684 q -0.31425,0 -0.57874,-0.0916 -0.26449,-0.0917 -0.45566,-0.27497 -0.19117,-0.18593 -0.29853,-0.46614 -0.10475,-0.28282 -0.10475,-0.66253 0,-0.38496 0.0969,-0.67302 0.0969,-0.28806 0.26973,-0.47923 0.17545,-0.19378 0.419,-0.29068 0.24616,-0.0969 0.54469,-0.0969 0.29068,0 0.52375,0.089 0.23568,0.0864 0.39804,0.25663 0.16498,0.17022 0.2514,0.419 0.089,0.24616 0.089,0.56565 v 0.38757 h -1.78597 q 0.005,0.1676 0.0524,0.30377 0.0498,0.13356 0.13617,0.22783 0.089,0.0917 0.21212,0.14141 0.1257,0.0498 0.28544,0.0498 0.13356,0 0.2514,-0.0131 0.12046,-0.0157 0.23307,-0.0445 0.1126,-0.0288 0.22259,-0.0707 0.10999,-0.0445 0.22521,-0.10213 v 0.61802 q -0.10475,0.055 -0.21212,0.0943 -0.10475,0.0367 -0.22259,0.0629 -0.11784,0.0262 -0.25402,0.0367 -0.13617,0.0131 -0.29853,0.0131 z" />
|
||||
<path
|
||||
id="path3866"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 122.67366,437.94498 -0.10736,-0.37448 h -0.0419 q -0.0655,0.1126 -0.15713,0.19378 -0.089,0.0786 -0.1964,0.13094 -0.10737,0.0524 -0.22783,0.0759 -0.12046,0.0262 -0.24616,0.0262 -0.21474,0 -0.39019,-0.0602 -0.17546,-0.0628 -0.30116,-0.19379 -0.1257,-0.13093 -0.19378,-0.33257 -0.0681,-0.20165 -0.0681,-0.48447 v -1.90905 h 0.79871 v 1.71003 q 0,0.31686 0.0943,0.47661 0.0969,0.15712 0.30639,0.15712 0.15712,0 0.26187,-0.0628 0.10475,-0.0629 0.16498,-0.18593 0.0628,-0.12308 0.089,-0.30377 0.0262,-0.1807 0.0262,-0.41376 v -1.37745 h 0.79872 v 2.92774 z" />
|
||||
<path
|
||||
id="path3868"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.13407904"
|
||||
d="m 125.64854,434.96224 q 0.0314,0 0.0681,0.003 0.0393,0 0.0733,0.005 0.0367,0.003 0.0655,0.008 0.0314,0.003 0.0471,0.008 v 0.74896 q -0.0209,-0.005 -0.0576,-0.0105 -0.0367,-0.005 -0.0786,-0.008 -0.0393,-0.005 -0.0786,-0.005 -0.0393,-0.003 -0.0655,-0.003 -0.1545,0 -0.28544,0.0393 -0.12832,0.0393 -0.22259,0.12832 -0.0917,0.0864 -0.14403,0.23045 -0.0498,0.14141 -0.0498,0.34829 v 1.49006 h -0.79871 v -2.92774 h 0.60493 l 0.11784,0.43994 h 0.0393 q 0.0628,-0.1126 0.13618,-0.20426 0.0733,-0.0917 0.16236,-0.1545 0.0917,-0.0655 0.20426,-0.0995 0.11522,-0.0367 0.26187,-0.0367 z" />
|
||||
</g>
|
||||
<rect
|
||||
ry="1.3381894"
|
||||
y="400.29175"
|
||||
x="17.054296"
|
||||
height="28.41802"
|
||||
width="56.188347"
|
||||
id="rect839"
|
||||
style="opacity:0.86699997;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.79897124;stroke-miterlimit:4;stroke-dasharray:1.59794247, 1.59794247;stroke-dashoffset:0" />
|
||||
<g
|
||||
id="text819-3-7"
|
||||
style="font-style:normal;font-weight:normal;font-size:2.49987245px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.06249681"
|
||||
aria-label="Processus
|
||||
">
|
||||
<path
|
||||
id="path3871"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 18.511429,398.09352 h 0.07446 q 0.159904,0 0.240466,-0.0635 0.08178,-0.0635 0.08178,-0.20629 0,-0.13305 -0.07324,-0.19652 -0.07202,-0.0635 -0.227039,-0.0635 h -0.09643 z m 0.779989,-0.28319 q 0,0.11719 -0.0354,0.2246 -0.0354,0.10742 -0.117181,0.1892 -0.08056,0.0818 -0.213612,0.13061 -0.131829,0.0488 -0.327132,0.0488 h -0.08666 v 0.63473 H 18.13303 v -1.78458 h 0.49558 q 0.17211,0 0.296616,0.0391 0.125726,0.0378 0.206288,0.10986 0.08178,0.0708 0.120844,0.17455 0.03906,0.10254 0.03906,0.23314 z" />
|
||||
<path
|
||||
id="path3873"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 20.309433,397.64799 q 0.01465,0 0.03174,0.001 0.01831,0 0.03418,0.002 0.01709,0.001 0.03052,0.004 0.01465,10e-4 0.02197,0.004 v 0.3491 q -0.0098,-0.002 -0.02685,-0.005 -0.01709,-0.002 -0.03662,-0.004 -0.01831,-0.002 -0.03662,-0.002 -0.01831,-0.001 -0.03052,-0.001 -0.07202,0 -0.13305,0.0183 -0.05981,0.0183 -0.103754,0.0598 -0.04272,0.0403 -0.06714,0.10742 -0.02319,0.0659 -0.02319,0.16234 v 0.69455 h -0.372295 v -1.36468 h 0.281968 l 0.05493,0.20507 h 0.01831 q 0.0293,-0.0525 0.06347,-0.0952 0.03418,-0.0427 0.07568,-0.072 0.04272,-0.0305 0.09521,-0.0464 0.05371,-0.0171 0.122064,-0.0171 z" />
|
||||
<path
|
||||
id="path3875"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 20.991771,398.35352 q 0,0.20385 0.05737,0.3076 0.05737,0.10254 0.186758,0.10254 0.128167,0 0.185537,-0.10376 0.05737,-0.10375 0.05737,-0.30638 0,-0.20385 -0.05737,-0.30394 -0.05737,-0.10131 -0.187978,-0.10131 -0.128168,0 -0.185538,0.10131 -0.05615,0.10009 -0.05615,0.30394 z m 0.866655,0 q 0,0.17089 -0.04394,0.30272 -0.04272,0.13183 -0.124506,0.22216 -0.08056,0.0903 -0.197744,0.13793 -0.11596,0.0464 -0.261217,0.0464 -0.135491,0 -0.24901,-0.0464 -0.11352,-0.0476 -0.196524,-0.13793 -0.08178,-0.0903 -0.128167,-0.22216 -0.04638,-0.13183 -0.04638,-0.30272 0,-0.16967 0.04272,-0.3015 0.04394,-0.13183 0.124506,-0.22093 0.08178,-0.0903 0.197743,-0.13672 0.115961,-0.0464 0.262438,-0.0464 0.135491,0 0.249011,0.0464 0.113519,0.0464 0.195302,0.13672 0.083,0.0891 0.129388,0.22093 0.04639,0.13183 0.04639,0.3015 z" />
|
||||
<path
|
||||
id="path3877"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 22.748273,399.06271 q -0.146477,0 -0.264879,-0.0403 -0.117182,-0.0403 -0.201406,-0.1245 -0.083,-0.0854 -0.128167,-0.21728 -0.04394,-0.13305 -0.04394,-0.31736 0,-0.20385 0.04516,-0.34056 0.04638,-0.13794 0.129388,-0.22094 0.08422,-0.083 0.201405,-0.1184 0.118402,-0.0354 0.262438,-0.0354 0.104975,0 0.20873,0.0256 0.103754,0.0256 0.195302,0.072 l -0.107416,0.28319 q -0.08056,-0.0354 -0.155022,-0.0574 -0.07446,-0.0232 -0.141594,-0.0232 -0.135491,0 -0.196523,0.10375 -0.06103,0.10254 -0.06103,0.30882 0,0.20507 0.06103,0.30272 0.06103,0.0976 0.191641,0.0976 0.106195,0 0.192861,-0.0269 0.08666,-0.0281 0.176993,-0.0708 v 0.31005 q -0.04516,0.022 -0.08789,0.0391 -0.04272,0.0171 -0.08667,0.0281 -0.04272,0.011 -0.09033,0.0159 -0.04638,0.006 -0.100093,0.006 z" />
|
||||
<path
|
||||
id="path3879"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 23.982341,397.91287 q -0.09887,0 -0.164787,0.0696 -0.06469,0.0696 -0.07446,0.21849 h 0.47483 q -0.0012,-0.0623 -0.01587,-0.11474 -0.01465,-0.0525 -0.04394,-0.0903 -0.0293,-0.0391 -0.07324,-0.061 -0.04394,-0.022 -0.102534,-0.022 z m 0.0476,1.14984 q -0.146477,0 -0.269762,-0.0427 -0.123285,-0.0427 -0.212391,-0.12817 -0.08911,-0.0867 -0.139153,-0.21727 -0.04883,-0.13183 -0.04883,-0.30882 0,-0.17944 0.04516,-0.31371 0.04516,-0.13427 0.125726,-0.22338 0.08178,-0.0903 0.195302,-0.13549 0.114741,-0.0452 0.253894,-0.0452 0.135491,0 0.244128,0.0415 0.109857,0.0403 0.185537,0.11962 0.0769,0.0794 0.117182,0.19531 0.0415,0.11474 0.0415,0.26366 v 0.18065 h -0.832477 q 0.0024,0.0781 0.02441,0.14159 0.02319,0.0623 0.06347,0.1062 0.0415,0.0427 0.09887,0.0659 0.05859,0.0232 0.13305,0.0232 0.06225,0 0.117182,-0.006 0.05615,-0.007 0.108637,-0.0207 0.05249,-0.0134 0.103754,-0.033 0.05127,-0.0208 0.104975,-0.0476 v 0.28807 q -0.04883,0.0256 -0.09887,0.0439 -0.04883,0.0171 -0.103755,0.0293 -0.05493,0.0122 -0.118402,0.0171 -0.06347,0.006 -0.139153,0.006 z" />
|
||||
<path
|
||||
id="path3881"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 25.794992,398.63305 q 0,0.10741 -0.03906,0.18798 -0.03906,0.0806 -0.111078,0.13427 -0.07202,0.0537 -0.174552,0.0806 -0.102534,0.0268 -0.229481,0.0268 -0.06714,0 -0.124505,-0.005 -0.05737,-0.004 -0.108637,-0.0134 -0.05127,-0.01 -0.09887,-0.0244 -0.04761,-0.0147 -0.09643,-0.0366 v -0.3076 q 0.05127,0.0256 0.107417,0.0464 0.05737,0.0208 0.113519,0.0366 0.05615,0.0146 0.108637,0.0232 0.05371,0.009 0.09887,0.009 0.05005,0 0.08544,-0.009 0.0354,-0.01 0.05737,-0.0256 0.02319,-0.0171 0.03296,-0.0391 0.01099,-0.0232 0.01099,-0.0488 0,-0.0256 -0.0085,-0.0452 -0.0073,-0.0208 -0.0354,-0.0427 -0.02807,-0.0232 -0.083,-0.0513 -0.05371,-0.0293 -0.145256,-0.0708 -0.08911,-0.0403 -0.155022,-0.0794 -0.06469,-0.0403 -0.107416,-0.0891 -0.0415,-0.0488 -0.06225,-0.11108 -0.02075,-0.0635 -0.02075,-0.15014 0,-0.0952 0.03662,-0.16601 0.03662,-0.072 0.103755,-0.11962 0.06714,-0.0476 0.161124,-0.0708 0.09521,-0.0244 0.211171,-0.0244 0.122064,0 0.231922,0.0281 0.109858,0.0281 0.225819,0.0842 l -0.112299,0.26366 q -0.09277,-0.0439 -0.176993,-0.072 -0.08422,-0.0281 -0.168449,-0.0281 -0.07568,0 -0.109857,0.0269 -0.03296,0.0268 -0.03296,0.0732 0,0.0244 0.0085,0.0439 0.0085,0.0183 0.03418,0.0391 0.02563,0.0195 0.07202,0.0439 0.04638,0.0232 0.120843,0.0574 0.08667,0.0378 0.156242,0.0757 0.06958,0.0366 0.119623,0.0842 0.05005,0.0476 0.0769,0.11108 0.02685,0.0635 0.02685,0.1538 z" />
|
||||
<path
|
||||
id="path3883"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 26.996103,398.63305 q 0,0.10741 -0.03906,0.18798 -0.03906,0.0806 -0.111079,0.13427 -0.07202,0.0537 -0.174551,0.0806 -0.102534,0.0268 -0.229481,0.0268 -0.06714,0 -0.124505,-0.005 -0.05737,-0.004 -0.108637,-0.0134 -0.05127,-0.01 -0.09887,-0.0244 -0.04761,-0.0147 -0.09643,-0.0366 v -0.3076 q 0.05127,0.0256 0.107417,0.0464 0.05737,0.0208 0.113519,0.0366 0.05615,0.0146 0.108637,0.0232 0.05371,0.009 0.09887,0.009 0.05005,0 0.08544,-0.009 0.0354,-0.01 0.05737,-0.0256 0.02319,-0.0171 0.03296,-0.0391 0.01098,-0.0232 0.01098,-0.0488 0,-0.0256 -0.0085,-0.0452 -0.0073,-0.0208 -0.0354,-0.0427 -0.02808,-0.0232 -0.083,-0.0513 -0.05371,-0.0293 -0.145257,-0.0708 -0.08911,-0.0403 -0.155021,-0.0794 -0.06469,-0.0403 -0.107416,-0.0891 -0.0415,-0.0488 -0.06225,-0.11108 -0.02075,-0.0635 -0.02075,-0.15014 0,-0.0952 0.03662,-0.16601 0.03662,-0.072 0.103755,-0.11962 0.06713,-0.0476 0.161124,-0.0708 0.09521,-0.0244 0.211171,-0.0244 0.122064,0 0.231922,0.0281 0.109858,0.0281 0.225818,0.0842 l -0.112298,0.26366 q -0.09277,-0.0439 -0.176993,-0.072 -0.08423,-0.0281 -0.168449,-0.0281 -0.07568,0 -0.109857,0.0269 -0.03296,0.0268 -0.03296,0.0732 0,0.0244 0.0085,0.0439 0.0085,0.0183 0.03418,0.0391 0.02563,0.0195 0.07202,0.0439 0.04638,0.0232 0.120844,0.0574 0.08666,0.0378 0.156242,0.0757 0.06958,0.0366 0.119623,0.0842 0.05005,0.0476 0.0769,0.11108 0.02685,0.0635 0.02685,0.1538 z" />
|
||||
<path
|
||||
id="path3885"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 28.180125,399.0383 -0.05005,-0.17455 h -0.01953 q -0.03052,0.0525 -0.07324,0.0903 -0.0415,0.0366 -0.09155,0.061 -0.05005,0.0244 -0.106196,0.0354 -0.05615,0.0122 -0.11474,0.0122 -0.100093,0 -0.181875,-0.0281 -0.08178,-0.0293 -0.140374,-0.0903 -0.05859,-0.061 -0.09033,-0.15502 -0.03174,-0.094 -0.03174,-0.22582 v -0.88985 h 0.372295 v 0.79708 q 0,0.1477 0.04394,0.22216 0.04516,0.0732 0.142815,0.0732 0.07324,0 0.122064,-0.0293 0.04883,-0.0293 0.0769,-0.0867 0.0293,-0.0574 0.0415,-0.1416 0.01221,-0.0842 0.01221,-0.19286 v -0.64206 h 0.372295 v 1.36468 z" />
|
||||
<path
|
||||
id="path3887"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 29.764517,398.63305 q 0,0.10741 -0.03906,0.18798 -0.03906,0.0806 -0.111078,0.13427 -0.07202,0.0537 -0.174552,0.0806 -0.102534,0.0268 -0.22948,0.0268 -0.06714,0 -0.124506,-0.005 -0.05737,-0.004 -0.108637,-0.0134 -0.05127,-0.01 -0.09887,-0.0244 -0.04761,-0.0147 -0.09643,-0.0366 v -0.3076 q 0.05127,0.0256 0.107416,0.0464 0.05737,0.0208 0.11352,0.0366 0.05615,0.0146 0.108637,0.0232 0.05371,0.009 0.09887,0.009 0.05005,0 0.08544,-0.009 0.0354,-0.01 0.05737,-0.0256 0.02319,-0.0171 0.03296,-0.0391 0.01099,-0.0232 0.01099,-0.0488 0,-0.0256 -0.0085,-0.0452 -0.0073,-0.0208 -0.0354,-0.0427 -0.02808,-0.0232 -0.083,-0.0513 -0.05371,-0.0293 -0.145256,-0.0708 -0.08911,-0.0403 -0.155021,-0.0794 -0.06469,-0.0403 -0.107417,-0.0891 -0.0415,-0.0488 -0.06225,-0.11108 -0.02075,-0.0635 -0.02075,-0.15014 0,-0.0952 0.03662,-0.16601 0.03662,-0.072 0.103754,-0.11962 0.06714,-0.0476 0.161125,-0.0708 0.09521,-0.0244 0.211171,-0.0244 0.122064,0 0.231921,0.0281 0.109858,0.0281 0.225819,0.0842 l -0.112299,0.26366 q -0.09277,-0.0439 -0.176993,-0.072 -0.08422,-0.0281 -0.168448,-0.0281 -0.07568,0 -0.109858,0.0269 -0.03296,0.0268 -0.03296,0.0732 0,0.0244 0.0085,0.0439 0.0085,0.0183 0.03418,0.0391 0.02563,0.0195 0.07202,0.0439 0.04638,0.0232 0.120843,0.0574 0.08667,0.0378 0.156242,0.0757 0.06958,0.0366 0.119623,0.0842 0.05005,0.0476 0.0769,0.11108 0.02685,0.0635 0.02685,0.1538 z" />
|
||||
</g>
|
||||
<path
|
||||
id="rect863"
|
||||
d="m 29.378861,451.62178 a 7.9779398,2.5193012 0 0 0 -7.962272,2.42016 h -0.01572 v 0.0992 21.63446 h 0.0086 a 7.97794,2.5193012 0 0 0 -0.0086,0.0538 7.97794,2.5193012 0 0 0 0.01461,0.0912 7.97794,2.5193012 0 0 0 -0.01461,0.091 7.97794,2.5193012 0 0 0 7.97799,2.51934 7.97794,2.5193012 0 0 0 7.977989,-2.51934 7.97794,2.5193012 0 0 0 -0.01018,-0.091 7.97794,2.5193012 0 0 0 0.01018,-0.0912 7.97794,2.5193012 0 0 0 -0.0062,-0.0538 v -21.59527 a 7.9779398,2.5193012 0 0 0 0.0062,-0.0392 7.9779398,2.5193012 0 0 0 -0.0062,-0.0549 v -0.0443 h -0.0051 a 7.9779398,2.5193012 0 0 0 -7.966698,-2.42016 z"
|
||||
style="opacity:1;fill:#38c8e2;fill-opacity:0.99843014;stroke:none;stroke-width:0.71264803;stroke-miterlimit:4;stroke-dasharray:1.4252962, 1.4252962;stroke-dashoffset:0" />
|
||||
<ellipse
|
||||
ry="2.5193012"
|
||||
rx="7.9779401"
|
||||
cy="454.14102"
|
||||
cx="29.378838"
|
||||
id="path861"
|
||||
style="opacity:0.15400002;fill:#000000;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0" />
|
||||
<g
|
||||
id="text873"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="write()">
|
||||
<path
|
||||
id="path3529"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 23.939332,422.82706 -0.19039,-0.86561 q -0.0089,-0.0376 -0.02435,-0.10627 -0.01328,-0.0708 -0.03099,-0.15718 -0.01771,-0.0885 -0.03764,-0.18596 -0.01771,-0.0996 -0.03764,-0.19703 -0.04428,-0.22803 -0.09741,-0.49147 h -0.01328 q -0.05092,0.26344 -0.09298,0.49368 -0.01771,0.0974 -0.03763,0.19703 -0.01771,0.0996 -0.03542,0.18818 -0.01771,0.0863 -0.03321,0.15718 -0.01328,0.0708 -0.02214,0.11069 l -0.199245,0.85676 H 22.36087 l -0.666363,-2.47507 h 0.670791 l 0.250163,1.09585 q 0.01993,0.0863 0.03985,0.2081 0.02214,0.11955 0.03985,0.24352 0.01993,0.12176 0.03542,0.23245 0.0155,0.10848 0.02435,0.17268 h 0.01328 q 0.0022,-0.0421 0.0089,-0.10848 0.0089,-0.0686 0.01992,-0.14611 0.01107,-0.0775 0.02214,-0.15718 0.01328,-0.0819 0.02435,-0.15275 0.01328,-0.0709 0.02214,-0.12398 0.01107,-0.0553 0.01771,-0.0775 l 0.270087,-1.18662 h 0.743848 l 0.259019,1.18662 q 0.01107,0.0487 0.02878,0.15054 0.01771,0.10183 0.03542,0.21917 0.01992,0.11512 0.03321,0.22581 0.01328,0.10848 0.0155,0.17046 h 0.01328 q 0.0066,-0.0553 0.02214,-0.16382 0.01771,-0.10848 0.03764,-0.23245 0.01992,-0.12619 0.04206,-0.25017 0.02435,-0.12397 0.04428,-0.21031 l 0.259018,-1.09585 h 0.661936 l -0.675219,2.47507 z" />
|
||||
<path
|
||||
id="path3531"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 26.996635,420.3055 q 0.02657,0 0.05756,0.002 0.03321,0 0.06199,0.004 0.03099,0.002 0.05535,0.007 0.02657,0.002 0.03985,0.007 v 0.63315 q -0.01771,-0.004 -0.0487,-0.009 -0.03099,-0.004 -0.06641,-0.007 -0.03321,-0.004 -0.06642,-0.004 -0.03321,-0.002 -0.05534,-0.002 -0.130616,0 -0.241308,0.0332 -0.108478,0.0332 -0.188176,0.10848 -0.07748,0.0731 -0.121761,0.19482 -0.04206,0.11954 -0.04206,0.29444 v 1.25967 h -0.675218 v -2.47507 h 0.511395 l 0.09962,0.37193 h 0.03321 q 0.05313,-0.0952 0.115119,-0.17268 0.06199,-0.0775 0.137258,-0.13062 0.07748,-0.0553 0.172679,-0.0841 0.09741,-0.031 0.221383,-0.031 z" />
|
||||
<path
|
||||
id="path3533"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 27.643074,419.71219 q 0,-0.0952 0.02878,-0.15718 0.02878,-0.0642 0.07748,-0.10183 0.05092,-0.0399 0.117333,-0.0553 0.06863,-0.0155 0.143899,-0.0155 0.07527,0 0.141686,0.0155 0.06641,0.0155 0.115119,0.0553 0.05092,0.0376 0.0797,0.10183 0.03099,0.062 0.03099,0.15718 0,0.093 -0.03099,0.15719 -0.02878,0.0642 -0.0797,0.10405 -0.0487,0.0376 -0.115119,0.0553 -0.06642,0.0155 -0.141686,0.0155 -0.07527,0 -0.143899,-0.0155 -0.06641,-0.0177 -0.117333,-0.0553 -0.0487,-0.0399 -0.07748,-0.10405 -0.02878,-0.0642 -0.02878,-0.15719 z m 0.703999,3.11487 h -0.675219 v -2.47507 h 0.675219 z" />
|
||||
<path
|
||||
id="path3535"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 30.058366,422.33337 q 0.09962,0 0.188175,-0.0221 0.09077,-0.0221 0.183749,-0.0553 v 0.50254 q -0.0952,0.0487 -0.236881,0.0797 -0.139471,0.0332 -0.305508,0.0332 -0.16161,0 -0.301082,-0.0376 -0.139471,-0.0376 -0.241307,-0.13062 -0.101837,-0.0952 -0.16161,-0.25237 -0.05756,-0.1594 -0.05756,-0.39849 v -1.19326 h -0.32322 v -0.28558 l 0.371924,-0.22582 0.194818,-0.52246 h 0.431697 v 0.52689 h 0.602163 v 0.50697 h -0.602163 v 1.19326 q 0,0.14389 0.07084,0.21252 0.07084,0.0686 0.185962,0.0686 z" />
|
||||
<path
|
||||
id="path3537"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 31.931268,420.7859 q -0.17932,0 -0.298867,0.12619 -0.117333,0.12619 -0.135044,0.39628 h 0.861181 q -0.0022,-0.11291 -0.02878,-0.2081 -0.02657,-0.0952 -0.0797,-0.16383 -0.05313,-0.0708 -0.13283,-0.11069 -0.0797,-0.0399 -0.185962,-0.0399 z m 0.08634,2.08543 q -0.26566,0 -0.489257,-0.0775 -0.223597,-0.0775 -0.385207,-0.23245 -0.16161,-0.15719 -0.252377,-0.39407 -0.08855,-0.23909 -0.08855,-0.56009 0,-0.32544 0.08191,-0.56896 0.08191,-0.24352 0.228025,-0.40513 0.148327,-0.16382 0.354213,-0.24574 0.208101,-0.0819 0.460478,-0.0819 0.245735,0 0.442766,0.0753 0.199245,0.0731 0.336503,0.21696 0.139471,0.1439 0.212528,0.35421 0.07527,0.2081 0.07527,0.47819 v 0.32765 h -1.509834 q 0.0044,0.14168 0.04428,0.2568 0.04206,0.11291 0.115119,0.1926 0.07527,0.0775 0.17932,0.11955 0.106264,0.0421 0.241308,0.0421 0.112906,0 0.212528,-0.0111 0.101836,-0.0133 0.197031,-0.0376 0.09519,-0.0243 0.188176,-0.0598 0.09298,-0.0376 0.19039,-0.0863 v 0.52246 q -0.08855,0.0465 -0.179321,0.0797 -0.08855,0.031 -0.188176,0.0531 -0.09962,0.0221 -0.214741,0.031 -0.11512,0.0111 -0.252377,0.0111 z" />
|
||||
<path
|
||||
id="path3539"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 33.396825,421.5851 q 0,-0.27673 0.03985,-0.54461 0.03985,-0.27008 0.121761,-0.52246 0.08191,-0.25459 0.205887,-0.48704 0.126188,-0.23467 0.298867,-0.44056 h 0.553458 q -0.31215,0.42727 -0.471546,0.93867 -0.159396,0.51139 -0.159396,1.05157 0,0.26345 0.03985,0.52468 0.03985,0.26123 0.119547,0.51139 0.0797,0.25017 0.197031,0.48483 0.117333,0.23467 0.270087,0.44277 h -0.54903 q -0.172679,-0.19925 -0.298867,-0.42727 -0.123975,-0.22803 -0.205887,-0.47598 -0.08191,-0.25016 -0.121761,-0.51582 -0.03985,-0.26566 -0.03985,-0.54017 z" />
|
||||
<path
|
||||
id="path3541"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 36.110984,421.5851 q 0,0.27451 -0.03985,0.54017 -0.03985,0.26566 -0.12176,0.51582 -0.08191,0.24795 -0.208101,0.47598 -0.123974,0.22802 -0.296653,0.42727 h -0.54903 q 0.152755,-0.2081 0.270088,-0.44277 0.117333,-0.23466 0.197031,-0.48483 0.0797,-0.25016 0.119547,-0.51139 0.03985,-0.26123 0.03985,-0.52468 0,-0.54018 -0.159396,-1.05157 -0.159396,-0.5114 -0.471546,-0.93867 h 0.553458 q 0.172679,0.20589 0.296653,0.44056 0.126189,0.23245 0.208101,0.48704 0.08191,0.25238 0.12176,0.52246 0.03985,0.26788 0.03985,0.54461 z" />
|
||||
</g>
|
||||
<g
|
||||
id="text877"
|
||||
style="font-style:normal;font-weight:normal;font-size:4.53392935px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="read()">
|
||||
<path
|
||||
id="path3544"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 52.809928,420.3055 q 0.02657,0 0.05756,0.002 0.03321,0 0.06199,0.004 0.03099,0.002 0.05535,0.007 0.02657,0.002 0.03985,0.007 v 0.63315 q -0.01771,-0.004 -0.0487,-0.009 -0.03099,-0.004 -0.06641,-0.007 -0.03321,-0.004 -0.06641,-0.004 -0.03321,-0.002 -0.05535,-0.002 -0.130616,0 -0.241308,0.0332 -0.108478,0.0332 -0.188176,0.10848 -0.07748,0.0731 -0.12176,0.19482 -0.04206,0.11954 -0.04206,0.29444 v 1.25967 h -0.675219 v -2.47507 h 0.511395 l 0.09962,0.37193 h 0.03321 q 0.05313,-0.0952 0.115119,-0.17268 0.06199,-0.0775 0.137258,-0.13062 0.07748,-0.0553 0.172679,-0.0841 0.09741,-0.031 0.221383,-0.031 z" />
|
||||
<path
|
||||
id="path3546"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 54.485799,420.7859 q -0.17932,0 -0.298867,0.12619 -0.117333,0.12619 -0.135044,0.39628 h 0.861181 q -0.0022,-0.11291 -0.02878,-0.2081 -0.02657,-0.0952 -0.0797,-0.16383 -0.05313,-0.0708 -0.13283,-0.11069 -0.0797,-0.0399 -0.185962,-0.0399 z m 0.08634,2.08543 q -0.26566,0 -0.489257,-0.0775 -0.223597,-0.0775 -0.385207,-0.23245 -0.16161,-0.15719 -0.252377,-0.39407 -0.08855,-0.23909 -0.08855,-0.56009 0,-0.32544 0.08191,-0.56896 0.08191,-0.24352 0.228024,-0.40513 0.148327,-0.16382 0.354214,-0.24574 0.2081,-0.0819 0.460477,-0.0819 0.245735,0 0.442766,0.0753 0.199245,0.0731 0.336503,0.21696 0.139471,0.1439 0.212528,0.35421 0.07527,0.2081 0.07527,0.47819 v 0.32765 h -1.509834 q 0.0044,0.14168 0.04428,0.2568 0.04206,0.11291 0.115119,0.1926 0.07527,0.0775 0.179321,0.11955 0.106264,0.0421 0.241307,0.0421 0.112906,0 0.212528,-0.0111 0.101837,-0.0133 0.197031,-0.0376 0.09519,-0.0243 0.188176,-0.0598 0.09298,-0.0376 0.19039,-0.0863 v 0.52246 q -0.08855,0.0465 -0.179321,0.0797 -0.08855,0.031 -0.188175,0.0531 -0.09962,0.0221 -0.214742,0.031 -0.115119,0.0111 -0.252377,0.0111 z" />
|
||||
<path
|
||||
id="path3548"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 57.560813,422.82706 -0.130616,-0.33651 h -0.01992 q -0.07306,0.0996 -0.146113,0.17268 -0.07306,0.0709 -0.159396,0.11734 -0.08634,0.0465 -0.194818,0.0686 -0.106264,0.0221 -0.247949,0.0221 -0.15054,0 -0.278943,-0.0465 -0.128402,-0.0487 -0.223597,-0.1439 -0.09298,-0.0974 -0.146113,-0.24352 -0.05313,-0.14832 -0.05313,-0.34978 0,-0.39407 0.252377,-0.58003 0.252377,-0.18817 0.754917,-0.2081 l 0.394062,-0.0133 v -0.18596 q 0,-0.15276 -0.08855,-0.22581 -0.08855,-0.0731 -0.247949,-0.0731 -0.159396,0 -0.312151,0.0465 -0.15054,0.0465 -0.303295,0.12398 l -0.219169,-0.4472 q 0.185962,-0.10405 0.411773,-0.16382 0.225811,-0.0598 0.47376,-0.0598 0.462691,0 0.708426,0.21696 0.24795,0.21695 0.24795,0.65972 v 1.64931 z m -0.199245,-1.14677 -0.223597,0.009 q -0.135044,0.004 -0.228025,0.0354 -0.09298,0.031 -0.15054,0.0841 -0.05535,0.0509 -0.08191,0.12398 -0.02435,0.0708 -0.02435,0.15939 0,0.15497 0.07527,0.22139 0.07527,0.0642 0.197031,0.0642 0.09298,0 0.172679,-0.031 0.0797,-0.0332 0.137258,-0.0952 0.05977,-0.0642 0.09298,-0.15497 0.03321,-0.093 0.03321,-0.21253 z" />
|
||||
<path
|
||||
id="path3550"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 59.455854,422.87133 q -0.19039,0 -0.347572,-0.0819 -0.157182,-0.0819 -0.270088,-0.24131 -0.112905,-0.16161 -0.177106,-0.4007 -0.06199,-0.23909 -0.06199,-0.55346 0,-0.31879 0.06199,-0.55788 0.0642,-0.24131 0.17932,-0.40292 0.117333,-0.16382 0.278943,-0.24574 0.16161,-0.0819 0.356427,-0.0819 0.119547,0 0.21917,0.0288 0.09962,0.0266 0.17932,0.0775 0.0797,0.0487 0.141685,0.11511 0.0642,0.0642 0.112906,0.14169 h 0.02214 q -0.01328,-0.0863 -0.02435,-0.17489 -0.01107,-0.0753 -0.01992,-0.1594 -0.0066,-0.0863 -0.0066,-0.15939 v -0.79256 h 0.675219 v 3.44473 h -0.515823 l -0.130616,-0.32101 h -0.02878 q -0.04649,0.0753 -0.106264,0.1439 -0.05977,0.0664 -0.139471,0.11512 -0.07748,0.0487 -0.177107,0.0775 -0.09741,0.0288 -0.221383,0.0288 z m 0.245735,-0.53796 q 0.119547,0 0.203673,-0.0399 0.08413,-0.0421 0.135044,-0.12397 0.05313,-0.0841 0.07748,-0.2081 0.02657,-0.12398 0.02878,-0.29001 v -0.0731 q 0,-0.17932 -0.02214,-0.31879 -0.02214,-0.13947 -0.07306,-0.23245 -0.05092,-0.0952 -0.137258,-0.1439 -0.08634,-0.0487 -0.216955,-0.0487 -0.212528,0 -0.312151,0.19261 -0.09962,0.19039 -0.09962,0.55567 0,0.36528 0.09962,0.54903 0.101836,0.18153 0.316578,0.18153 z" />
|
||||
<path
|
||||
id="path3552"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 61.308832,421.5851 q 0,-0.27673 0.03985,-0.54461 0.03985,-0.27008 0.12176,-0.52246 0.08191,-0.25459 0.205887,-0.48704 0.126188,-0.23467 0.298867,-0.44056 h 0.553458 q -0.31215,0.42727 -0.471546,0.93867 -0.159396,0.51139 -0.159396,1.05157 0,0.26345 0.03985,0.52468 0.03985,0.26123 0.119547,0.51139 0.0797,0.25017 0.197031,0.48483 0.117333,0.23467 0.270088,0.44277 h -0.549031 q -0.172679,-0.19925 -0.298867,-0.42727 -0.123975,-0.22803 -0.205887,-0.47598 -0.08191,-0.25016 -0.12176,-0.51582 -0.03985,-0.26566 -0.03985,-0.54017 z" />
|
||||
<path
|
||||
id="path3554"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 64.022991,421.5851 q 0,0.27451 -0.03985,0.54017 -0.03985,0.26566 -0.121761,0.51582 -0.08191,0.24795 -0.2081,0.47598 -0.123975,0.22802 -0.296654,0.42727 h -0.54903 q 0.152754,-0.2081 0.270087,-0.44277 0.117333,-0.23466 0.197031,-0.48483 0.0797,-0.25016 0.119547,-0.51139 0.03985,-0.26123 0.03985,-0.52468 0,-0.54018 -0.159396,-1.05157 -0.159396,-0.5114 -0.471546,-0.93867 h 0.553458 q 0.172679,0.20589 0.296654,0.44056 0.126188,0.23245 0.2081,0.48704 0.08191,0.25238 0.121761,0.52246 0.03985,0.26788 0.03985,0.54461 z" />
|
||||
</g>
|
||||
<path
|
||||
id="path887"
|
||||
d="m 29.310708,424.71888 v 24.15929"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1273)"
|
||||
d="M 59.136975,450.17352 V 426.01423"
|
||||
id="path1269" />
|
||||
<ellipse
|
||||
style="opacity:0.35200004;fill:#f6f6f6;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0"
|
||||
id="ellipse1795"
|
||||
cx="29.378836"
|
||||
cy="476.1214"
|
||||
rx="7.9779401"
|
||||
ry="2.5193012" />
|
||||
<path
|
||||
style="opacity:1;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.61292613;stroke-miterlimit:4;stroke-dasharray:1.22585233, 1.22585233;stroke-dashoffset:0"
|
||||
d="m 22.552832,463.45356 v 11.43809 h 0.0074 c -0.003,0.0155 -0.0055,0.0309 -0.0074,0.0464 0.0027,0.0261 0.0068,0.0523 0.01247,0.0784 -0.0056,0.026 -0.0098,0.0521 -0.01247,0.0782 -1.88e-4,1.1967 3.071842,2.16686 6.861481,2.16687 3.789691,10e-6 6.8618,-0.97015 6.861613,-2.16687 -0.0014,-0.0261 -0.0043,-0.0522 -0.0087,-0.0782 0.0044,-0.0261 0.0073,-0.0522 0.0087,-0.0784 -0.0012,-0.0155 -0.0029,-0.0309 -0.0052,-0.0464 v -11.43809 z"
|
||||
id="path1600" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#2b42e0;fill-opacity:0.99686028;stroke:none;stroke-width:0.54689825;stroke-miterlimit:4;stroke-dasharray:1.09379646, 1.09379646;stroke-dashoffset:0"
|
||||
id="ellipse1602"
|
||||
cx="29.414373"
|
||||
cy="463.53864"
|
||||
rx="6.8615742"
|
||||
ry="2.1667714" />
|
||||
<path
|
||||
id="rect1604"
|
||||
d="m 34.522702,456.06339 a 7.9779397,2.5193012 0 0 1 -3.835688,0.5621 v 21.86846 a 7.97794,2.5193012 0 0 0 3.835688,-0.55678 z"
|
||||
style="opacity:0.23699999;fill:#ffffff;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="opacity:1;fill:#38c8e2;fill-opacity:0.99843014;stroke:none;stroke-width:0.71264803;stroke-miterlimit:4;stroke-dasharray:1.4252962, 1.4252962;stroke-dashoffset:0"
|
||||
d="m 58.849414,451.62178 a 7.9779397,2.5193012 0 0 0 -7.962278,2.42016 h -0.01572 v 0.0992 21.63446 h 0.0087 a 7.9779402,2.5193012 0 0 0 -0.0087,0.0538 7.9779402,2.5193012 0 0 0 0.01461,0.0912 7.9779402,2.5193012 0 0 0 -0.01461,0.091 7.9779402,2.5193012 0 0 0 7.977995,2.51934 7.9779402,2.5193012 0 0 0 7.977992,-2.51934 7.9779402,2.5193012 0 0 0 -0.0102,-0.091 7.9779402,2.5193012 0 0 0 0.0102,-0.0912 7.9779402,2.5193012 0 0 0 -0.0062,-0.0538 v -21.59527 a 7.9779397,2.5193012 0 0 0 0.0062,-0.0392 7.9779397,2.5193012 0 0 0 -0.0062,-0.0549 v -0.0443 h -0.0051 a 7.9779397,2.5193012 0 0 0 -7.966682,-2.42015 z"
|
||||
id="path1615" />
|
||||
<path
|
||||
id="path1619"
|
||||
d="m 52.023381,455.74583 v 11.4381 h 0.0074 c -0.003,0.0155 -0.0054,0.0309 -0.0074,0.0464 0.0026,0.0261 0.0068,0.0523 0.01247,0.0784 -0.0057,0.026 -0.0098,0.0521 -0.01247,0.0782 -1.89e-4,1.1967 3.071845,2.16686 6.861483,2.16688 3.789694,0 6.861805,-0.97016 6.861616,-2.16688 -0.0013,-0.0261 -0.0043,-0.0522 -0.0087,-0.0782 0.0044,-0.0261 0.0073,-0.0522 0.0087,-0.0784 -0.0013,-0.0155 -0.003,-0.0309 -0.0051,-0.0464 v -11.4381 z"
|
||||
style="opacity:1;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.61292613;stroke-miterlimit:4;stroke-dasharray:1.22585233, 1.22585233;stroke-dashoffset:0" />
|
||||
<ellipse
|
||||
ry="1.7374003"
|
||||
rx="6.8615742"
|
||||
cy="455.85968"
|
||||
cx="58.884907"
|
||||
id="ellipse1621"
|
||||
style="opacity:1;fill:#2b42e0;fill-opacity:0.99686028;stroke:none;stroke-width:0.48972231;stroke-miterlimit:4;stroke-dasharray:0.97944464, 0.97944464;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="opacity:0.23699999;fill:#ffffff;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 63.993255,456.06339 a 7.9779397,2.5193012 0 0 1 -3.835688,0.56209 v 21.86847 a 7.9779402,2.5193012 0 0 0 3.835688,-0.55678 z"
|
||||
id="path1623" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635)"
|
||||
d="m 29.310708,479.12607 v 12.37107"
|
||||
id="path1631" />
|
||||
<ellipse
|
||||
ry="2.5193012"
|
||||
rx="7.9779401"
|
||||
cy="476.1214"
|
||||
cx="58.849365"
|
||||
id="ellipse1793"
|
||||
style="opacity:0.15400002;fill:#f6f6f6;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0" />
|
||||
<path
|
||||
id="path1803"
|
||||
d="M 59.136975,492.79249 V 480.42141"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)" />
|
||||
<ellipse
|
||||
style="opacity:0.15400002;fill:#000000;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0"
|
||||
id="ellipse1617"
|
||||
cx="58.849365"
|
||||
cy="454.14102"
|
||||
rx="7.9779401"
|
||||
ry="2.5193012" />
|
||||
<rect
|
||||
style="opacity:0.86699997;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.79897124;stroke-miterlimit:4;stroke-dasharray:1.59794247, 1.59794247;stroke-dashoffset:0"
|
||||
id="rect2311"
|
||||
width="56.188347"
|
||||
height="28.41802"
|
||||
x="134.93646"
|
||||
y="400.29175"
|
||||
ry="1.3381894" />
|
||||
<g
|
||||
id="text2317"
|
||||
style="font-style:normal;font-weight:normal;font-size:2.49987245px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.06249681"
|
||||
aria-label="Processus
|
||||
">
|
||||
<path
|
||||
id="path3890"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 136.39358,398.09352 h 0.0745 q 0.15991,0 0.24047,-0.0635 0.0818,-0.0635 0.0818,-0.20629 0,-0.13305 -0.0732,-0.19652 -0.072,-0.0635 -0.22703,-0.0635 h -0.0964 z m 0.77999,-0.28319 q 0,0.11719 -0.0354,0.2246 -0.0354,0.10742 -0.11719,0.1892 -0.0806,0.0818 -0.21361,0.13061 -0.13183,0.0488 -0.32713,0.0488 h -0.0867 v 0.63473 h -0.37839 v -1.78458 h 0.49558 q 0.17211,0 0.29661,0.0391 0.12573,0.0378 0.20629,0.10986 0.0818,0.0708 0.12084,0.17455 0.0391,0.10254 0.0391,0.23314 z" />
|
||||
<path
|
||||
id="path3892"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 138.19159,397.64799 q 0.0147,0 0.0317,0.001 0.0183,0 0.0342,0.002 0.0171,0.001 0.0305,0.004 0.0147,10e-4 0.022,0.004 v 0.3491 q -0.01,-0.002 -0.0268,-0.005 -0.0171,-0.002 -0.0366,-0.004 -0.0183,-0.002 -0.0366,-0.002 -0.0183,-0.001 -0.0305,-0.001 -0.072,0 -0.13305,0.0183 -0.0598,0.0183 -0.10375,0.0598 -0.0427,0.0403 -0.0671,0.10742 -0.0232,0.0659 -0.0232,0.16234 v 0.69455 h -0.37229 v -1.36468 h 0.28196 l 0.0549,0.20507 h 0.0183 q 0.0293,-0.0525 0.0635,-0.0952 0.0342,-0.0427 0.0757,-0.072 0.0427,-0.0305 0.0952,-0.0464 0.0537,-0.0171 0.12207,-0.0171 z" />
|
||||
<path
|
||||
id="path3894"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 138.87393,398.35352 q 0,0.20385 0.0574,0.3076 0.0574,0.10254 0.18676,0.10254 0.12816,0 0.18553,-0.10376 0.0574,-0.10375 0.0574,-0.30638 0,-0.20385 -0.0574,-0.30394 -0.0574,-0.10131 -0.18798,-0.10131 -0.12816,0 -0.18553,0.10131 -0.0562,0.10009 -0.0562,0.30394 z m 0.86665,0 q 0,0.17089 -0.0439,0.30272 -0.0427,0.13183 -0.12451,0.22216 -0.0806,0.0903 -0.19774,0.13793 -0.11596,0.0464 -0.26122,0.0464 -0.13549,0 -0.24901,-0.0464 -0.11352,-0.0476 -0.19652,-0.13793 -0.0818,-0.0903 -0.12817,-0.22216 -0.0464,-0.13183 -0.0464,-0.30272 0,-0.16967 0.0427,-0.3015 0.0439,-0.13183 0.1245,-0.22093 0.0818,-0.0903 0.19775,-0.13672 0.11596,-0.0464 0.26244,-0.0464 0.13549,0 0.24901,0.0464 0.11352,0.0464 0.1953,0.13672 0.083,0.0891 0.12939,0.22093 0.0464,0.13183 0.0464,0.3015 z" />
|
||||
<path
|
||||
id="path3896"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 140.63043,399.06271 q -0.14648,0 -0.26488,-0.0403 -0.11718,-0.0403 -0.20141,-0.1245 -0.083,-0.0854 -0.12816,-0.21728 -0.0439,-0.13305 -0.0439,-0.31736 0,-0.20385 0.0452,-0.34056 0.0464,-0.13794 0.12939,-0.22094 0.0842,-0.083 0.2014,-0.1184 0.1184,-0.0354 0.26244,-0.0354 0.10497,0 0.20873,0.0256 0.10375,0.0256 0.1953,0.072 l -0.10741,0.28319 q -0.0806,-0.0354 -0.15503,-0.0574 -0.0745,-0.0232 -0.14159,-0.0232 -0.13549,0 -0.19652,0.10375 -0.061,0.10254 -0.061,0.30882 0,0.20507 0.061,0.30272 0.061,0.0976 0.19164,0.0976 0.10619,0 0.19286,-0.0269 0.0867,-0.0281 0.17699,-0.0708 v 0.31005 q -0.0452,0.022 -0.0879,0.0391 -0.0427,0.0171 -0.0867,0.0281 -0.0427,0.011 -0.0903,0.0159 -0.0464,0.006 -0.10009,0.006 z" />
|
||||
<path
|
||||
id="path3898"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 141.8645,397.91287 q -0.0989,0 -0.16479,0.0696 -0.0647,0.0696 -0.0745,0.21849 h 0.47483 q -0.001,-0.0623 -0.0159,-0.11474 -0.0147,-0.0525 -0.0439,-0.0903 -0.0293,-0.0391 -0.0732,-0.061 -0.0439,-0.022 -0.10253,-0.022 z m 0.0476,1.14984 q -0.14647,0 -0.26976,-0.0427 -0.12328,-0.0427 -0.21239,-0.12817 -0.0891,-0.0867 -0.13915,-0.21727 -0.0488,-0.13183 -0.0488,-0.30882 0,-0.17944 0.0452,-0.31371 0.0452,-0.13427 0.12573,-0.22338 0.0818,-0.0903 0.1953,-0.13549 0.11474,-0.0452 0.2539,-0.0452 0.13549,0 0.24412,0.0415 0.10986,0.0403 0.18554,0.11962 0.0769,0.0794 0.11718,0.19531 0.0415,0.11474 0.0415,0.26366 v 0.18065 H 141.618 q 0.002,0.0781 0.0244,0.14159 0.0232,0.0623 0.0635,0.1062 0.0415,0.0427 0.0989,0.0659 0.0586,0.0232 0.13305,0.0232 0.0623,0 0.11718,-0.006 0.0562,-0.007 0.10863,-0.0207 0.0525,-0.0134 0.10376,-0.033 0.0513,-0.0208 0.10497,-0.0476 v 0.28807 q -0.0488,0.0256 -0.0989,0.0439 -0.0488,0.0171 -0.10375,0.0293 -0.0549,0.0122 -0.1184,0.0171 -0.0635,0.006 -0.13916,0.006 z" />
|
||||
<path
|
||||
id="path3900"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 143.67715,398.63305 q 0,0.10741 -0.0391,0.18798 -0.0391,0.0806 -0.11108,0.13427 -0.072,0.0537 -0.17455,0.0806 -0.10254,0.0268 -0.22948,0.0268 -0.0671,0 -0.12451,-0.005 -0.0574,-0.004 -0.10863,-0.0134 -0.0513,-0.01 -0.0989,-0.0244 -0.0476,-0.0147 -0.0964,-0.0366 v -0.3076 q 0.0513,0.0256 0.10742,0.0464 0.0574,0.0208 0.11352,0.0366 0.0562,0.0146 0.10864,0.0232 0.0537,0.009 0.0989,0.009 0.05,0 0.0854,-0.009 0.0354,-0.01 0.0574,-0.0256 0.0232,-0.0171 0.033,-0.0391 0.011,-0.0232 0.011,-0.0488 0,-0.0256 -0.009,-0.0452 -0.007,-0.0208 -0.0354,-0.0427 -0.0281,-0.0232 -0.083,-0.0513 -0.0537,-0.0293 -0.14526,-0.0708 -0.0891,-0.0403 -0.15502,-0.0794 -0.0647,-0.0403 -0.10741,-0.0891 -0.0415,-0.0488 -0.0623,-0.11108 -0.0207,-0.0635 -0.0207,-0.15014 0,-0.0952 0.0366,-0.16601 0.0366,-0.072 0.10376,-0.11962 0.0671,-0.0476 0.16112,-0.0708 0.0952,-0.0244 0.21117,-0.0244 0.12206,0 0.23192,0.0281 0.10986,0.0281 0.22582,0.0842 l -0.1123,0.26366 q -0.0928,-0.0439 -0.17699,-0.072 -0.0842,-0.0281 -0.16845,-0.0281 -0.0757,0 -0.10986,0.0269 -0.0329,0.0268 -0.0329,0.0732 0,0.0244 0.009,0.0439 0.009,0.0183 0.0342,0.0391 0.0256,0.0195 0.072,0.0439 0.0464,0.0232 0.12084,0.0574 0.0867,0.0378 0.15624,0.0757 0.0696,0.0366 0.11962,0.0842 0.05,0.0476 0.0769,0.11108 0.0269,0.0635 0.0269,0.1538 z" />
|
||||
<path
|
||||
id="path3902"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 144.87826,398.63305 q 0,0.10741 -0.0391,0.18798 -0.0391,0.0806 -0.11108,0.13427 -0.072,0.0537 -0.17455,0.0806 -0.10253,0.0268 -0.22948,0.0268 -0.0671,0 -0.12451,-0.005 -0.0574,-0.004 -0.10863,-0.0134 -0.0513,-0.01 -0.0989,-0.0244 -0.0476,-0.0147 -0.0964,-0.0366 v -0.3076 q 0.0513,0.0256 0.10742,0.0464 0.0574,0.0208 0.11352,0.0366 0.0562,0.0146 0.10864,0.0232 0.0537,0.009 0.0989,0.009 0.05,0 0.0854,-0.009 0.0354,-0.01 0.0574,-0.0256 0.0232,-0.0171 0.033,-0.0391 0.011,-0.0232 0.011,-0.0488 0,-0.0256 -0.009,-0.0452 -0.007,-0.0208 -0.0354,-0.0427 -0.0281,-0.0232 -0.083,-0.0513 -0.0537,-0.0293 -0.14526,-0.0708 -0.0891,-0.0403 -0.15502,-0.0794 -0.0647,-0.0403 -0.10741,-0.0891 -0.0415,-0.0488 -0.0623,-0.11108 -0.0207,-0.0635 -0.0207,-0.15014 0,-0.0952 0.0366,-0.16601 0.0366,-0.072 0.10376,-0.11962 0.0671,-0.0476 0.16112,-0.0708 0.0952,-0.0244 0.21117,-0.0244 0.12207,0 0.23192,0.0281 0.10986,0.0281 0.22582,0.0842 l -0.1123,0.26366 q -0.0928,-0.0439 -0.17699,-0.072 -0.0842,-0.0281 -0.16845,-0.0281 -0.0757,0 -0.10986,0.0269 -0.0329,0.0268 -0.0329,0.0732 0,0.0244 0.009,0.0439 0.009,0.0183 0.0342,0.0391 0.0256,0.0195 0.072,0.0439 0.0464,0.0232 0.12084,0.0574 0.0867,0.0378 0.15624,0.0757 0.0696,0.0366 0.11963,0.0842 0.05,0.0476 0.0769,0.11108 0.0269,0.0635 0.0269,0.1538 z" />
|
||||
<path
|
||||
id="path3904"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 146.06228,399.0383 -0.05,-0.17455 h -0.0195 q -0.0305,0.0525 -0.0732,0.0903 -0.0415,0.0366 -0.0915,0.061 -0.05,0.0244 -0.1062,0.0354 -0.0562,0.0122 -0.11474,0.0122 -0.10009,0 -0.18187,-0.0281 -0.0818,-0.0293 -0.14038,-0.0903 -0.0586,-0.061 -0.0903,-0.15502 -0.0317,-0.094 -0.0317,-0.22582 v -0.88985 h 0.37229 v 0.79708 q 0,0.1477 0.0439,0.22216 0.0452,0.0732 0.14281,0.0732 0.0732,0 0.12207,-0.0293 0.0488,-0.0293 0.0769,-0.0867 0.0293,-0.0574 0.0415,-0.1416 0.0122,-0.0842 0.0122,-0.19286 v -0.64206 h 0.37229 v 1.36468 z" />
|
||||
<path
|
||||
id="path3906"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';stroke-width:0.06249681"
|
||||
d="m 147.64667,398.63305 q 0,0.10741 -0.0391,0.18798 -0.0391,0.0806 -0.11108,0.13427 -0.072,0.0537 -0.17455,0.0806 -0.10253,0.0268 -0.22948,0.0268 -0.0671,0 -0.1245,-0.005 -0.0574,-0.004 -0.10864,-0.0134 -0.0513,-0.01 -0.0989,-0.0244 -0.0476,-0.0147 -0.0964,-0.0366 v -0.3076 q 0.0513,0.0256 0.10741,0.0464 0.0574,0.0208 0.11352,0.0366 0.0562,0.0146 0.10864,0.0232 0.0537,0.009 0.0989,0.009 0.05,0 0.0855,-0.009 0.0354,-0.01 0.0574,-0.0256 0.0232,-0.0171 0.0329,-0.0391 0.011,-0.0232 0.011,-0.0488 0,-0.0256 -0.009,-0.0452 -0.007,-0.0208 -0.0354,-0.0427 -0.0281,-0.0232 -0.083,-0.0513 -0.0537,-0.0293 -0.14525,-0.0708 -0.0891,-0.0403 -0.15502,-0.0794 -0.0647,-0.0403 -0.10742,-0.0891 -0.0415,-0.0488 -0.0623,-0.11108 -0.0207,-0.0635 -0.0207,-0.15014 0,-0.0952 0.0366,-0.16601 0.0366,-0.072 0.10375,-0.11962 0.0671,-0.0476 0.16112,-0.0708 0.0952,-0.0244 0.21118,-0.0244 0.12206,0 0.23192,0.0281 0.10985,0.0281 0.22582,0.0842 l -0.1123,0.26366 q -0.0928,-0.0439 -0.177,-0.072 -0.0842,-0.0281 -0.16844,-0.0281 -0.0757,0 -0.10986,0.0269 -0.033,0.0268 -0.033,0.0732 0,0.0244 0.009,0.0439 0.009,0.0183 0.0342,0.0391 0.0256,0.0195 0.072,0.0439 0.0464,0.0232 0.12084,0.0574 0.0867,0.0378 0.15625,0.0757 0.0696,0.0366 0.11962,0.0842 0.05,0.0476 0.0769,0.11108 0.0268,0.0635 0.0268,0.1538 z" />
|
||||
</g>
|
||||
<path
|
||||
style="opacity:1;fill:#38c8e2;fill-opacity:0.99843014;stroke:none;stroke-width:0.71264803;stroke-miterlimit:4;stroke-dasharray:1.4252962, 1.4252962;stroke-dashoffset:0"
|
||||
d="m 147.26107,451.62178 a 7.9779397,2.5193012 0 0 0 -7.96227,2.42016 h -0.0157 v 0.0992 21.63446 h 0.009 a 7.9779402,2.5193012 0 0 0 -0.009,0.0538 7.9779402,2.5193012 0 0 0 0.0146,0.0912 7.9779402,2.5193012 0 0 0 -0.0146,0.091 7.9779402,2.5193012 0 0 0 7.97798,2.51934 7.9779402,2.5193012 0 0 0 7.97799,-2.51934 7.9779402,2.5193012 0 0 0 -0.0102,-0.091 7.9779402,2.5193012 0 0 0 0.0102,-0.0912 7.9779402,2.5193012 0 0 0 -0.006,-0.0538 v -21.59527 a 7.9779397,2.5193012 0 0 0 0.006,-0.0392 7.9779397,2.5193012 0 0 0 -0.006,-0.0549 v -0.0443 h -0.005 a 7.9779397,2.5193012 0 0 0 -7.96668,-2.42015 z"
|
||||
id="path2319" />
|
||||
<ellipse
|
||||
style="opacity:0.15400002;fill:#000000;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0"
|
||||
id="ellipse2321"
|
||||
cx="147.26097"
|
||||
cy="454.14102"
|
||||
rx="7.9779401"
|
||||
ry="2.5193012" />
|
||||
<g
|
||||
id="text2325"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.53392935px;line-height:1.25;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="write()">
|
||||
<path
|
||||
id="path3570"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 141.82149,422.82706 -0.19039,-0.86561 q -0.009,-0.0376 -0.0244,-0.10627 -0.0133,-0.0708 -0.031,-0.15718 -0.0177,-0.0885 -0.0376,-0.18596 -0.0177,-0.0996 -0.0376,-0.19703 -0.0443,-0.22803 -0.0974,-0.49147 h -0.0133 q -0.0509,0.26344 -0.093,0.49368 -0.0177,0.0974 -0.0376,0.19703 -0.0177,0.0996 -0.0354,0.18818 -0.0177,0.0863 -0.0332,0.15718 -0.0133,0.0708 -0.0221,0.11069 l -0.19925,0.85676 h -0.72614 l -0.66636,-2.47507 h 0.67079 l 0.25016,1.09585 q 0.0199,0.0863 0.0399,0.2081 0.0221,0.11955 0.0399,0.24352 0.0199,0.12176 0.0354,0.23245 0.0155,0.10848 0.0244,0.17268 h 0.0133 q 0.002,-0.0421 0.009,-0.10848 0.009,-0.0686 0.0199,-0.14611 0.0111,-0.0775 0.0221,-0.15718 0.0133,-0.0819 0.0243,-0.15275 0.0133,-0.0709 0.0221,-0.12398 0.0111,-0.0553 0.0177,-0.0775 l 0.27009,-1.18662 h 0.74384 l 0.25902,1.18662 q 0.0111,0.0487 0.0288,0.15054 0.0177,0.10183 0.0354,0.21917 0.0199,0.11512 0.0332,0.22581 0.0133,0.10848 0.0155,0.17046 h 0.0133 q 0.007,-0.0553 0.0221,-0.16382 0.0177,-0.10848 0.0376,-0.23245 0.0199,-0.12619 0.0421,-0.25017 0.0243,-0.12397 0.0443,-0.21031 l 0.25902,-1.09585 h 0.66194 l -0.67522,2.47507 z" />
|
||||
<path
|
||||
id="path3572"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 144.87879,420.3055 q 0.0266,0 0.0576,0.002 0.0332,0 0.062,0.004 0.031,0.002 0.0553,0.007 0.0266,0.002 0.0398,0.007 v 0.63315 q -0.0177,-0.004 -0.0487,-0.009 -0.031,-0.004 -0.0664,-0.007 -0.0332,-0.004 -0.0664,-0.004 -0.0332,-0.002 -0.0554,-0.002 -0.13062,0 -0.24131,0.0332 -0.10847,0.0332 -0.18817,0.10848 -0.0775,0.0731 -0.12176,0.19482 -0.0421,0.11954 -0.0421,0.29444 v 1.25967 h -0.67522 v -2.47507 h 0.5114 l 0.0996,0.37193 h 0.0332 q 0.0531,-0.0952 0.11512,-0.17268 0.062,-0.0775 0.13726,-0.13062 0.0775,-0.0553 0.17268,-0.0841 0.0974,-0.031 0.22138,-0.031 z" />
|
||||
<path
|
||||
id="path3574"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 145.52523,419.71219 q 0,-0.0952 0.0288,-0.15718 0.0288,-0.0642 0.0775,-0.10183 0.0509,-0.0399 0.11734,-0.0553 0.0686,-0.0155 0.14389,-0.0155 0.0753,0 0.14169,0.0155 0.0664,0.0155 0.11512,0.0553 0.0509,0.0376 0.0797,0.10183 0.031,0.062 0.031,0.15718 0,0.093 -0.031,0.15719 -0.0288,0.0642 -0.0797,0.10405 -0.0487,0.0376 -0.11512,0.0553 -0.0664,0.0155 -0.14169,0.0155 -0.0753,0 -0.14389,-0.0155 -0.0664,-0.0177 -0.11734,-0.0553 -0.0487,-0.0399 -0.0775,-0.10405 -0.0288,-0.0642 -0.0288,-0.15719 z m 0.704,3.11487 h -0.67522 v -2.47507 h 0.67522 z" />
|
||||
<path
|
||||
id="path3576"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 147.94052,422.33337 q 0.0996,0 0.18818,-0.0221 0.0908,-0.0221 0.18374,-0.0553 v 0.50254 q -0.0952,0.0487 -0.23688,0.0797 -0.13947,0.0332 -0.30551,0.0332 -0.1616,0 -0.30108,-0.0376 -0.13947,-0.0376 -0.2413,-0.13062 -0.10184,-0.0952 -0.16161,-0.25237 -0.0576,-0.1594 -0.0576,-0.39849 v -1.19326 h -0.32322 v -0.28558 l 0.37192,-0.22582 0.19482,-0.52246 h 0.4317 v 0.52689 h 0.60216 v 0.50697 h -0.60216 v 1.19326 q 0,0.14389 0.0708,0.21252 0.0708,0.0686 0.18596,0.0686 z" />
|
||||
<path
|
||||
id="path3578"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 149.81342,420.7859 q -0.17932,0 -0.29886,0.12619 -0.11734,0.12619 -0.13505,0.39628 h 0.86118 q -0.002,-0.11291 -0.0288,-0.2081 -0.0266,-0.0952 -0.0797,-0.16383 -0.0531,-0.0708 -0.13283,-0.11069 -0.0797,-0.0399 -0.18596,-0.0399 z m 0.0863,2.08543 q -0.26566,0 -0.48925,-0.0775 -0.2236,-0.0775 -0.38521,-0.23245 -0.16161,-0.15719 -0.25238,-0.39407 -0.0885,-0.23909 -0.0885,-0.56009 0,-0.32544 0.0819,-0.56896 0.0819,-0.24352 0.22802,-0.40513 0.14833,-0.16382 0.35422,-0.24574 0.2081,-0.0819 0.46048,-0.0819 0.24573,0 0.44276,0.0753 0.19925,0.0731 0.3365,0.21696 0.13948,0.1439 0.21253,0.35421 0.0753,0.2081 0.0753,0.47819 v 0.32765 h -1.50983 q 0.004,0.14168 0.0443,0.2568 0.0421,0.11291 0.11511,0.1926 0.0753,0.0775 0.17932,0.11955 0.10627,0.0421 0.24131,0.0421 0.11291,0 0.21253,-0.0111 0.10184,-0.0133 0.19703,-0.0376 0.0952,-0.0243 0.18818,-0.0598 0.093,-0.0376 0.19039,-0.0863 v 0.52246 q -0.0886,0.0465 -0.17932,0.0797 -0.0886,0.031 -0.18818,0.0531 -0.0996,0.0221 -0.21474,0.031 -0.11512,0.0111 -0.25238,0.0111 z" />
|
||||
<path
|
||||
id="path3580"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 151.27898,421.5851 q 0,-0.27673 0.0399,-0.54461 0.0399,-0.27008 0.12176,-0.52246 0.0819,-0.25459 0.20589,-0.48704 0.12618,-0.23467 0.29886,-0.44056 h 0.55346 q -0.31215,0.42727 -0.47154,0.93867 -0.1594,0.51139 -0.1594,1.05157 0,0.26345 0.0399,0.52468 0.0399,0.26123 0.11955,0.51139 0.0797,0.25017 0.19703,0.48483 0.11733,0.23467 0.27008,0.44277 h -0.54903 q -0.17268,-0.19925 -0.29886,-0.42727 -0.12398,-0.22803 -0.20589,-0.47598 -0.0819,-0.25016 -0.12176,-0.51582 -0.0399,-0.26566 -0.0399,-0.54017 z" />
|
||||
<path
|
||||
id="path3582"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 153.99314,421.5851 q 0,0.27451 -0.0399,0.54017 -0.0399,0.26566 -0.12176,0.51582 -0.0819,0.24795 -0.2081,0.47598 -0.12398,0.22802 -0.29665,0.42727 h -0.54904 q 0.15276,-0.2081 0.27009,-0.44277 0.11734,-0.23466 0.19703,-0.48483 0.0797,-0.25016 0.11955,-0.51139 0.0399,-0.26123 0.0399,-0.52468 0,-0.54018 -0.1594,-1.05157 -0.15939,-0.5114 -0.47154,-0.93867 h 0.55346 q 0.17267,0.20589 0.29665,0.44056 0.12619,0.23245 0.2081,0.48704 0.0819,0.25238 0.12176,0.52246 0.0399,0.26788 0.0399,0.54461 z" />
|
||||
</g>
|
||||
<g
|
||||
id="text2329"
|
||||
style="font-style:normal;font-weight:normal;font-size:4.53392935px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11334824"
|
||||
aria-label="read()">
|
||||
<path
|
||||
id="path3557"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 170.69201,420.3055 q 0.0266,0 0.0576,0.002 0.0332,0 0.062,0.004 0.031,0.002 0.0553,0.007 0.0266,0.002 0.0399,0.007 v 0.63315 q -0.0177,-0.004 -0.0487,-0.009 -0.031,-0.004 -0.0664,-0.007 -0.0332,-0.004 -0.0664,-0.004 -0.0332,-0.002 -0.0554,-0.002 -0.13061,0 -0.2413,0.0332 -0.10848,0.0332 -0.18818,0.10848 -0.0775,0.0731 -0.12176,0.19482 -0.0421,0.11954 -0.0421,0.29444 v 1.25967 h -0.67522 v -2.47507 h 0.51139 l 0.0996,0.37193 h 0.0332 q 0.0531,-0.0952 0.11512,-0.17268 0.062,-0.0775 0.13726,-0.13062 0.0775,-0.0553 0.17268,-0.0841 0.0974,-0.031 0.22138,-0.031 z" />
|
||||
<path
|
||||
id="path3559"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 172.36788,420.7859 q -0.17932,0 -0.29886,0.12619 -0.11734,0.12619 -0.13505,0.39628 h 0.86118 q -0.002,-0.11291 -0.0288,-0.2081 -0.0266,-0.0952 -0.0797,-0.16383 -0.0531,-0.0708 -0.13283,-0.11069 -0.0797,-0.0399 -0.18597,-0.0399 z m 0.0863,2.08543 q -0.26566,0 -0.48925,-0.0775 -0.2236,-0.0775 -0.38521,-0.23245 -0.16161,-0.15719 -0.25238,-0.39407 -0.0885,-0.23909 -0.0885,-0.56009 0,-0.32544 0.0819,-0.56896 0.0819,-0.24352 0.22803,-0.40513 0.14832,-0.16382 0.35421,-0.24574 0.2081,-0.0819 0.46048,-0.0819 0.24573,0 0.44276,0.0753 0.19925,0.0731 0.3365,0.21696 0.13948,0.1439 0.21253,0.35421 0.0753,0.2081 0.0753,0.47819 v 0.32765 h -1.50983 q 0.004,0.14168 0.0443,0.2568 0.0421,0.11291 0.11512,0.1926 0.0753,0.0775 0.17932,0.11955 0.10626,0.0421 0.2413,0.0421 0.11291,0 0.21253,-0.0111 0.10184,-0.0133 0.19703,-0.0376 0.0952,-0.0243 0.18818,-0.0598 0.093,-0.0376 0.19039,-0.0863 v 0.52246 q -0.0886,0.0465 -0.17932,0.0797 -0.0886,0.031 -0.18818,0.0531 -0.0996,0.0221 -0.21474,0.031 -0.11512,0.0111 -0.25238,0.0111 z" />
|
||||
<path
|
||||
id="path3561"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 175.4429,422.82706 -0.13062,-0.33651 h -0.0199 q -0.0731,0.0996 -0.14612,0.17268 -0.073,0.0709 -0.15939,0.11734 -0.0863,0.0465 -0.19482,0.0686 -0.10626,0.0221 -0.24795,0.0221 -0.15054,0 -0.27894,-0.0465 -0.1284,-0.0487 -0.2236,-0.1439 -0.093,-0.0974 -0.14611,-0.24352 -0.0531,-0.14832 -0.0531,-0.34978 0,-0.39407 0.25237,-0.58003 0.25238,-0.18817 0.75492,-0.2081 l 0.39406,-0.0133 v -0.18596 q 0,-0.15276 -0.0885,-0.22581 -0.0885,-0.0731 -0.24795,-0.0731 -0.1594,0 -0.31215,0.0465 -0.15054,0.0465 -0.3033,0.12398 l -0.21917,-0.4472 q 0.18597,-0.10405 0.41178,-0.16382 0.22581,-0.0598 0.47376,-0.0598 0.46269,0 0.70842,0.21696 0.24795,0.21695 0.24795,0.65972 v 1.64931 z m -0.19925,-1.14677 -0.22359,0.009 q -0.13505,0.004 -0.22803,0.0354 -0.093,0.031 -0.15054,0.0841 -0.0554,0.0509 -0.0819,0.12398 -0.0243,0.0708 -0.0243,0.15939 0,0.15497 0.0753,0.22139 0.0753,0.0642 0.19703,0.0642 0.093,0 0.17268,-0.031 0.0797,-0.0332 0.13725,-0.0952 0.0598,-0.0642 0.093,-0.15497 0.0332,-0.093 0.0332,-0.21253 z" />
|
||||
<path
|
||||
id="path3563"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 177.33794,422.87133 q -0.19039,0 -0.34757,-0.0819 -0.15719,-0.0819 -0.27009,-0.24131 -0.11291,-0.16161 -0.17711,-0.4007 -0.062,-0.23909 -0.062,-0.55346 0,-0.31879 0.062,-0.55788 0.0642,-0.24131 0.17932,-0.40292 0.11734,-0.16382 0.27895,-0.24574 0.1616,-0.0819 0.35642,-0.0819 0.11955,0 0.21917,0.0288 0.0996,0.0266 0.17932,0.0775 0.0797,0.0487 0.14169,0.11511 0.0642,0.0642 0.1129,0.14169 h 0.0221 q -0.0133,-0.0863 -0.0243,-0.17489 -0.0111,-0.0753 -0.0199,-0.1594 -0.007,-0.0863 -0.007,-0.15939 v -0.79256 h 0.67522 v 3.44473 h -0.51582 l -0.13062,-0.32101 h -0.0288 q -0.0465,0.0753 -0.10626,0.1439 -0.0598,0.0664 -0.13947,0.11512 -0.0775,0.0487 -0.17711,0.0775 -0.0974,0.0288 -0.22138,0.0288 z m 0.24573,-0.53796 q 0.11955,0 0.20368,-0.0399 0.0841,-0.0421 0.13504,-0.12397 0.0531,-0.0841 0.0775,-0.2081 0.0266,-0.12398 0.0288,-0.29001 v -0.0731 q 0,-0.17932 -0.0221,-0.31879 -0.0221,-0.13947 -0.0731,-0.23245 -0.0509,-0.0952 -0.13726,-0.1439 -0.0863,-0.0487 -0.21695,-0.0487 -0.21253,0 -0.31215,0.19261 -0.0996,0.19039 -0.0996,0.55567 0,0.36528 0.0996,0.54903 0.10183,0.18153 0.31657,0.18153 z" />
|
||||
<path
|
||||
id="path3565"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 179.19092,421.5851 q 0,-0.27673 0.0398,-0.54461 0.0399,-0.27008 0.12177,-0.52246 0.0819,-0.25459 0.20588,-0.48704 0.12619,-0.23467 0.29887,-0.44056 h 0.55346 q -0.31215,0.42727 -0.47155,0.93867 -0.15939,0.51139 -0.15939,1.05157 0,0.26345 0.0398,0.52468 0.0399,0.26123 0.11955,0.51139 0.0797,0.25017 0.19703,0.48483 0.11734,0.23467 0.27009,0.44277 h -0.54903 q -0.17268,-0.19925 -0.29887,-0.42727 -0.12397,-0.22803 -0.20588,-0.47598 -0.0819,-0.25016 -0.12177,-0.51582 -0.0398,-0.26566 -0.0398,-0.54017 z" />
|
||||
<path
|
||||
id="path3567"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Droid Sans';-inkscape-font-specification:'Droid Sans Bold';fill:#ffffff;stroke-width:0.11334824"
|
||||
d="m 181.90507,421.5851 q 0,0.27451 -0.0398,0.54017 -0.0399,0.26566 -0.12177,0.51582 -0.0819,0.24795 -0.2081,0.47598 -0.12397,0.22802 -0.29665,0.42727 h -0.54903 q 0.15275,-0.2081 0.27009,-0.44277 0.11733,-0.23466 0.19703,-0.48483 0.0797,-0.25016 0.11955,-0.51139 0.0399,-0.26123 0.0399,-0.52468 0,-0.54018 -0.1594,-1.05157 -0.1594,-0.5114 -0.47155,-0.93867 h 0.55346 q 0.17268,0.20589 0.29665,0.44056 0.12619,0.23245 0.2081,0.48704 0.0819,0.25238 0.12177,0.52246 0.0398,0.26788 0.0398,0.54461 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||
d="m 147.19292,424.71888 v 24.15929"
|
||||
id="path2331" />
|
||||
<path
|
||||
id="path2333"
|
||||
d="M 177.01918,450.17352 V 426.01423"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1273)" />
|
||||
<ellipse
|
||||
ry="2.5193012"
|
||||
rx="7.9779401"
|
||||
cy="476.1214"
|
||||
cx="147.26097"
|
||||
id="ellipse2335"
|
||||
style="opacity:0.35200004;fill:#f6f6f6;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0" />
|
||||
<path
|
||||
id="path2337"
|
||||
d="m 140.43504,463.45356 v 11.43809 h 0.007 c -0.003,0.0155 -0.005,0.0309 -0.007,0.0464 0.003,0.0261 0.007,0.0523 0.0125,0.0784 -0.006,0.026 -0.01,0.0521 -0.0125,0.0782 -1.9e-4,1.1967 3.07184,2.16686 6.86148,2.16687 3.78969,10e-6 6.8618,-0.97015 6.86161,-2.16687 -0.001,-0.0261 -0.004,-0.0522 -0.009,-0.0782 0.004,-0.0261 0.007,-0.0522 0.009,-0.0784 -0.001,-0.0155 -0.003,-0.0309 -0.005,-0.0464 v -11.43809 z"
|
||||
style="opacity:1;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.61292613;stroke-miterlimit:4;stroke-dasharray:1.22585233, 1.22585233;stroke-dashoffset:0" />
|
||||
<ellipse
|
||||
ry="2.1667714"
|
||||
rx="6.8615742"
|
||||
cy="463.53864"
|
||||
cx="147.29651"
|
||||
id="ellipse2339"
|
||||
style="opacity:1;fill:#2b42e0;fill-opacity:0.99686028;stroke:none;stroke-width:0.54689825;stroke-miterlimit:4;stroke-dasharray:1.09379646, 1.09379646;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="opacity:0.23699999;fill:#ffffff;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 152.40491,456.06339 a 7.9779397,2.5193012 0 0 1 -3.83569,0.56209 v 21.86847 a 7.9779402,2.5193012 0 0 0 3.83569,-0.55678 z"
|
||||
id="path2341" />
|
||||
<path
|
||||
id="path2343"
|
||||
d="m 176.73162,451.62178 a 7.9779397,2.5193012 0 0 0 -7.96228,2.42016 h -0.0157 v 0.0992 21.63446 h 0.009 a 7.9779402,2.5193012 0 0 0 -0.009,0.0538 7.9779402,2.5193012 0 0 0 0.0146,0.0912 7.9779402,2.5193012 0 0 0 -0.0146,0.091 7.9779402,2.5193012 0 0 0 7.978,2.51934 7.9779402,2.5193012 0 0 0 7.97799,-2.51934 7.9779402,2.5193012 0 0 0 -0.0102,-0.091 7.9779402,2.5193012 0 0 0 0.0102,-0.0912 7.9779402,2.5193012 0 0 0 -0.006,-0.0538 v -21.59527 a 7.9779397,2.5193012 0 0 0 0.006,-0.0392 7.9779397,2.5193012 0 0 0 -0.006,-0.0549 v -0.0443 h -0.005 a 7.9779397,2.5193012 0 0 0 -7.96668,-2.42015 z"
|
||||
style="opacity:1;fill:#38c8e2;fill-opacity:0.99843014;stroke:none;stroke-width:0.71264803;stroke-miterlimit:4;stroke-dasharray:1.4252962, 1.4252962;stroke-dashoffset:0" />
|
||||
<path
|
||||
style="opacity:1;fill:#465ae4;fill-opacity:1;stroke:none;stroke-width:0.61292613;stroke-miterlimit:4;stroke-dasharray:1.22585233, 1.22585233;stroke-dashoffset:0"
|
||||
d="m 169.90559,455.74583 v 11.4381 h 0.007 c -0.003,0.0155 -0.005,0.0309 -0.007,0.0464 0.003,0.0261 0.007,0.0523 0.0125,0.0784 -0.006,0.026 -0.01,0.0521 -0.0125,0.0782 -1.9e-4,1.1967 3.07184,2.16686 6.86148,2.16688 3.78969,0 6.86181,-0.97016 6.86162,-2.16688 -0.001,-0.0261 -0.004,-0.0522 -0.009,-0.0782 0.004,-0.0261 0.007,-0.0522 0.009,-0.0784 -0.001,-0.0155 -0.003,-0.0309 -0.005,-0.0464 v -11.4381 z"
|
||||
id="path2345" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#2b42e0;fill-opacity:0.99686028;stroke:none;stroke-width:0.48972231;stroke-miterlimit:4;stroke-dasharray:0.97944464, 0.97944464;stroke-dashoffset:0"
|
||||
id="ellipse2347"
|
||||
cx="176.76697"
|
||||
cy="455.85968"
|
||||
rx="6.8615742"
|
||||
ry="1.7374003" />
|
||||
<path
|
||||
id="path2349"
|
||||
d="m 181.87546,456.06339 a 7.9779397,2.5193012 0 0 1 -3.83569,0.56209 v 21.86847 a 7.9779402,2.5193012 0 0 0 3.83569,-0.55678 z"
|
||||
style="opacity:0.23699999;fill:#ffffff;fill-opacity:0.99843014;stroke:none;stroke-width:0.85680562;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
id="path2351"
|
||||
d="m 147.19292,479.12607 v 12.37107"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1635)" />
|
||||
<ellipse
|
||||
style="opacity:0.15400002;fill:#f6f6f6;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0"
|
||||
id="ellipse2353"
|
||||
cx="176.73143"
|
||||
cy="476.1214"
|
||||
rx="7.9779401"
|
||||
ry="2.5193012" />
|
||||
<path
|
||||
style="fill:none;stroke:#ff0000;stroke-width:0.85680562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1807)"
|
||||
d="M 177.01918,492.79249 V 480.42141"
|
||||
id="path2355" />
|
||||
<ellipse
|
||||
ry="2.5193012"
|
||||
rx="7.9779401"
|
||||
cy="454.14102"
|
||||
cx="176.73143"
|
||||
id="ellipse2359"
|
||||
style="opacity:0.15400002;fill:#000000;fill-opacity:0.99843014;stroke:none;stroke-width:0.63587755;stroke-miterlimit:4;stroke-dasharray:1.27175511, 1.27175511;stroke-dashoffset:0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 125 KiB |
318
content/reseau/4-API_C/index.md
Normal file
318
content/reseau/4-API_C/index.md
Normal file
|
@ -0,0 +1,318 @@
|
|||
---
|
||||
title: "Programmation réseau avec l'API C"
|
||||
date: 2018-09-26
|
||||
modify: 2018-10-03
|
||||
tags: ["programmation", "C"]
|
||||
categories: ["Réseau", "Cours"]
|
||||
---
|
||||
# API C pour un paquet UDP (exemple du DNS)
|
||||
|
||||
1. `socket()` : Appel système qui retourne un identifiant unique (entier non
|
||||
signé) représentant une socket ouverte par le noyau, dans le style d'un
|
||||
descripteur de fichier.
|
||||
2. `bind(53)` : Le processus annonce qu'il se positionne sur le port 53 en
|
||||
écoute (serveur DNS)
|
||||
3. `rcvfrom()` : récupère les données (datagrammes) depuis le noyau, c'est un
|
||||
appel bloquant.
|
||||
4. `sento()` : le processus fournit au noyau les données pour le transfert (
|
||||
l'écriture). C'est l'équivalent de `write()` utilisé poour les fichiers.
|
||||
5. `close()` : ferme la connexion.
|
||||
|
||||
Ces étapes décrites ci-dessus sont valables pour la partie serveur, la partie
|
||||
client est plus simple : `socket()` -> `sendto()` -> `rcvfrom()` -> `close()`
|
||||
|
||||
# API pour un transfert TCP (avec connexion)
|
||||
|
||||
# côté serveur
|
||||
|
||||
1. `socket()`
|
||||
2. `bind(80)`
|
||||
3. `listen()` : annonce l'ouverture du port et l'écoute
|
||||
4. `accept()` : attend des connexion avec un client (état disponible)
|
||||
5. `read()` : appel système lit les données provenant du réseau, en HTTP ce
|
||||
serait la demande de la page `index.html` par exemple.
|
||||
6. `write()` : renvoi les données vers le réseau qui seront ensuite envoyées
|
||||
par le noyau vers le client.
|
||||
|
||||
## côté client
|
||||
|
||||
1. `connect()` : appel cloquant pour initier la connexion.
|
||||
2. `write()` : envoyer les donnés vers le client (la requete HTML par exemple)
|
||||
3. `read()` : lit les données (bloquant). Dès que les données sont prête, elles
|
||||
sont envoyées à l'application. Si rien n'est lut, l'appel se terminera alors
|
||||
seulement au moment du `close()`
|
||||
|
||||
# Socket
|
||||
|
||||
Pour démarrer une socket, plusieurs information son importante et changerons la
|
||||
manière de procéder :
|
||||
|
||||
- la famille d'adresse : IPv4, IPv6
|
||||
- le type de socket : échange simple de datagrammes (UDP) ou par une
|
||||
connexion (TCP)
|
||||
- le protocole : TCP, UDP, ICMP ...
|
||||
- l'adresse locale (IP et port)
|
||||
- l'adresse distante (IP et port)
|
||||
|
||||
# API C
|
||||
|
||||
Il faut bien avoir à l'esprit qu'en réseau, les données sont toujours au forman
|
||||
big-endian. Pour avoir plus d'explications voir la page Wikipedia sur
|
||||
[l'endianess](https://fr.wikipedia.org/wiki/Endianness).
|
||||
|
||||
Il faut donc penser à utiliser des fonctions de conversion :
|
||||
|
||||
```c
|
||||
/* Conversion vers/depuis ordre réseau */
|
||||
uint16_t htons(uint16_t hostshort); #host to network short
|
||||
uint16_t ntohs(uint16_t netshort); #network to host short
|
||||
uint32_t htonl(uint32_t hostlong); #host to network long
|
||||
uint32_t ntohl(uint32_t netlong); #network to host long
|
||||
|
||||
/* Conversion ascii/binaire */
|
||||
int inet_aton(const char *ascii, struct in_addr *binaire);
|
||||
char *inet_ntoa(struct in_addr binaire);
|
||||
|
||||
/* De même, mais portables v4/v6 */
|
||||
int inet_pton(sa_family_t af, const char *ascii, void *binaire);
|
||||
const char *inet_ntop(sa_family_t af, const void *binaire, char *ascii, socklen_t size);
|
||||
```
|
||||
|
||||
## Structure pour IPv4
|
||||
|
||||
```c
|
||||
struct in_addr {
|
||||
/* ... */
|
||||
__be32 s_addr;
|
||||
}
|
||||
struct sockaddr_in {
|
||||
sa_family_t sin_family; /* AF_INET6 */
|
||||
struct in6_addr sin_addr;
|
||||
__be16 sin_port;
|
||||
}
|
||||
```
|
||||
|
||||
## Structure pour ipv6
|
||||
|
||||
```c
|
||||
struct in6_addr {
|
||||
/* ... */
|
||||
u8 s6_addr[16];
|
||||
}
|
||||
struct sockaddr_in {
|
||||
sa_family_t sin6_family; /* AF_INET6 */
|
||||
struct in6_addr sin6_addr;
|
||||
__be16 sin6_port;
|
||||
}
|
||||
```
|
||||
|
||||
## API UDP
|
||||
|
||||
```c
|
||||
/* Créer une socket */
|
||||
int socket(int domain, int type, int protocol);
|
||||
/* e.g. fd = socket(AF_INET, SOCK_DGRAM, 0); */
|
||||
|
||||
int bind(
|
||||
int sockfd, # numéro de descripeur de socket
|
||||
const struck sockaddr *addr # sock_addr peut être de type 4 ou 6 (cast)
|
||||
socklen_t addrlen # taille de a structure sock_addr
|
||||
)
|
||||
/* Choisir l’adresse distante (IP et port), optionnel, pour utiliser
|
||||
send/write/recv/read plutôt que sendto/recvfrom */
|
||||
|
||||
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
|
||||
|
||||
/* Envoyer un datagramme UDP à un service d’une machine donnée */
|
||||
ssize_t sendto(
|
||||
int sockfd,
|
||||
const void *buf,
|
||||
size_t len,
|
||||
int flags,
|
||||
const struct sockaddr *dest_addr,
|
||||
socklen_t addrlen
|
||||
);
|
||||
|
||||
/* Recevoir un datagramme UDP depuis n’importe quelle machine */
|
||||
ssize_t recvfrom(
|
||||
int sockfd,
|
||||
void *buf, #tampon de données (ici à recevoir)
|
||||
size_t len,
|
||||
int flags,
|
||||
struct sockaddr *src_addr,
|
||||
socklen_t *addrlen
|
||||
);
|
||||
|
||||
/* Fermer la socket */
|
||||
int close(int fd);
|
||||
```
|
||||
|
||||
## API C TCP
|
||||
|
||||
```c
|
||||
* voir man 7 tcp pour plus d’explications */
|
||||
/* Créer une socket */
|
||||
int socket(int domain, int type, int protocol);
|
||||
/* e.g. fd = socket(AF_INET, SOCK_STREAM, 0); */
|
||||
|
||||
/*** Partie client ***/
|
||||
/* Se connecter à un service d’une machine donnée */
|
||||
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
|
||||
|
||||
/*** Partie serveur ***/
|
||||
/* Attacher à un port local donné */
|
||||
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
|
||||
|
||||
/* Passer en mode serveur */
|
||||
int listen(int sockfd, int backlog);
|
||||
|
||||
/* Accepter une nouvelle connexion */
|
||||
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
|
||||
|
||||
/* Fermer la socket */
|
||||
int close(int fd);
|
||||
|
||||
/* Récupérer l’adresse locale */
|
||||
int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
|
||||
|
||||
/* Récupérer l’adresse distante */
|
||||
int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
|
||||
```
|
||||
|
||||
# `write()`, `read()`, Tampons noyau
|
||||
|
||||

|
||||
|
||||
Pour chacune des connexions établies le noyau Linux créer des tampons : un pour
|
||||
la lecture et un pour l'écriture. Pour la l'écriture, lorsqu'un processus
|
||||
invoque un `write()`, les données sont d'abord écrites dans un tampon. S'il est
|
||||
plein (sa taille est définie à l'avance), le noyau bloque l'appel `write()` et
|
||||
lorsque de la place se libère, il le débloque.
|
||||
|
||||
De l'autre côté, les données sont reçues dans le tampon `read()` et lorsqu'elles
|
||||
sont transférées au processus, un segment *ACK* est envoyé à l'expéditeur. le
|
||||
destinataire averti l'expéditeur de la place disponible dans son tampon `read()`
|
||||
par le biais du champ `window size` (octet 16 à 18 d'un sergent TCP) dans un
|
||||
segment *ACK*. Si le tampon contient, par exemple 2ko mais que le `read()` en
|
||||
demande 10ko, les 2Ko sont automatiquement transférés au processus.
|
||||
|
||||
Les tampons peuvent fausser complètement les outils de mesure de performance
|
||||
réseau, en effet lors d'un appel `write()` les données sont transmise dans le
|
||||
tampon très rapidement faussant alors la mesure du débit.
|
||||
|
||||
## visualiser les buffers.
|
||||
|
||||
Il est possible de visualiser les données en attentes dans les buffets avec la
|
||||
commande `netstat` :
|
||||
|
||||
```shell
|
||||
[root@eph-archbook ephase]# netstat
|
||||
Active Internet connections (w/o servers)
|
||||
Proto Recv-Q Send-Q Local Address Foreign Address State
|
||||
tcp 0 0 eph-archbook:47954 mail.gandi.net:imaps ESTABLISHED
|
||||
tcp 0 0 eph-archbook:52264 imap.u-bordeaux.fr:imap ESTABLISHED
|
||||
tcp 32 0 ?192.168.1.91:34456 vpn-0-24.aquilene:https CLOSE_WAIT
|
||||
tcp 32 0 192.168.1.91:33424 vpn-0-24.aquilene:https CLOSE_WAIT
|
||||
...
|
||||
```
|
||||
|
||||
L'étal des tampons est indiqué par les champs `Recv-Q` et `Send-Q`.
|
||||
|
||||
## option de socket TCP
|
||||
|
||||
Les entêtes complète d'un datagramme TCP pèse au moins 54 octets (entêtes
|
||||
Ethernet et IP comprises). Afin d'optimiser l'envoi de données, il est souvent
|
||||
préférable de concaténer plusieurs appels `write()` ou d'utiliser `printf()` et
|
||||
les mécanisme de tampons de la libc. Il est aussi possible de demander à TCP
|
||||
d'attendre l'arrivée d'autres données avant d'envoyer un segment avec bien
|
||||
évidemment la gestion d'un *timeout* pour ne pas attendre trop longtemps
|
||||
(algorithme de [Nagle][l_nagle]). Ce n'est cependant pas adapté à tous les
|
||||
protocoles : si ce système fonctionne bien pour HTTP, ce n'est pas le cas de SSH
|
||||
ou la latence induite par ce mécanisme pose problèmes.
|
||||
|
||||
```C
|
||||
#include <sys/socket.h>
|
||||
|
||||
int setsockopt (int sockfd, int level, int optname, const void *optval, socklen_t optlen);
|
||||
int getsockopt (int sockfd, int level, int optname, void *optval, socklen_t optlen);
|
||||
```
|
||||
|
||||
- `int level` : niveau de la pile ou appliquer l'option, `SOL_TCP` signifiera
|
||||
la partie TCP.
|
||||
- `int optname` : l'option à activer, par exemple `TCP_NODELAY` afin de
|
||||
désactiver l'algorithme de Nagle. Il est possible aussi de mettre un
|
||||
bouchon au tampon `write()` avec `TCP_CORK`. Il faudra alors le désactiver
|
||||
pout permettre au noyau d'envoyer les segments depuis les données du
|
||||
*buffer*
|
||||
|
||||
[l_nagle]:https://fr.wikipedia.org/wiki/Algorithme_de_Nagle
|
||||
### l'option `SO_REUSEADDR` de `SOL_SOCKET`
|
||||
|
||||
Par défaut, le système empêchera la connexion à une socket si un service y
|
||||
était quelques minutes auparavant. Dans le cadre du test d'un programme ou pour
|
||||
du debug, il est parfois nécessaire de désactiver ce comportement, et c'est
|
||||
possible avec :
|
||||
|
||||
```C
|
||||
setsockopt ( fd, SOL_SOCKET, SO_REUSEADDR, "1");
|
||||
```
|
||||
|
||||
# La Qos (Qualité de Service)
|
||||
|
||||
En réseau il est possible d'obtenir :
|
||||
|
||||
- une bonne latence
|
||||
- un bon débit
|
||||
- de la fiabilité
|
||||
|
||||
Il ne sera pas possible d'obtenir les trois. Il existe plusieurs solutions pour
|
||||
prioriser les flux. Par exemple les petits paquets : leurs tailles indique
|
||||
sûrement que l'on recherche une meilleure latence plutôt qu'un gros débit.
|
||||
|
||||
Il est aussi possible de faire du DPI *Deep Packet Inspection* que ne serait pas
|
||||
très approprié du point de vue de l'éthique et de la loi (neutralité du net...)<
|
||||
En TCP il existe le champs ToS *Type of service" Mais celui-ci est inutilisé du
|
||||
fait de son implémentation différentes chez les fabricants de matériels et
|
||||
logiciels.
|
||||
|
||||
Les équipements sur Internet ont tous un système de buffer, ce qui n'est pas
|
||||
sans poser problèmes pour la *QoS* : s'il est facile de maitriser son routeur,
|
||||
éventuellement le DSLAM si son fournisseur d'accès à Internet le permet, il est
|
||||
est tout autres pour les équipements par lesquels transitent nos paquets.(voir
|
||||
le [Bufferbloat][l_buffetbloat])
|
||||
|
||||
[l_bufferbloat]:https://en.wikipedia.org/wiki/Bufferbloat
|
||||
|
||||
# API réseau et threads
|
||||
|
||||
Il est tout à fait possible d'utiliser les *threads* et les *processus* pour
|
||||
créer des buffers différents et ainsi paralléliser l'envoi / réception de
|
||||
données et ainsi éviter de bloquer l'ensemble de son application avec un
|
||||
`write()` ou un `read()`. Il est aussi possible d'utiliser l'API `SELECT` et
|
||||
ainsi éviter de complexifier son code avec des threads / processus.
|
||||
|
||||
```C
|
||||
void FD_ZERO(fd_set *set);
|
||||
void FD_CLR(int fd, fd_set *set);
|
||||
void FD_SET(int fd, fd_set *set);
|
||||
int FD_ISSET(int fd, fd_set *set);
|
||||
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
|
||||
|
||||
/* Attend des données lisibles sur fd1 ou fd2, traite en conséquence */
|
||||
int attend(int fd1, int fd2) {
|
||||
fd_set set;
|
||||
int max;
|
||||
FD_ZERO(&set);
|
||||
FD_SET(fd1, &set);
|
||||
FD_SET(fd2, &set);
|
||||
max = MAX(fd1, fd2);
|
||||
if (select(max+1, &set, NULL, NULL, NULL) == -1)
|
||||
return -1;
|
||||
if (FD_ISSET(fd1, &set))
|
||||
traite(fd1);
|
||||
if (FD_ISSET(fd2, &set))
|
||||
traite(fd2);
|
||||
return 0;
|
||||
}
|
||||
int poll(struct pollfd *fds, nfds_t nfds, int timeout);
|
||||
```
|
1
themes/mainroad
Submodule
1
themes/mainroad
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 279cd6cbf36560db8b03bd54804e25ff8e3c26a1
|
1
themes/simpleit-hugo-theme
Submodule
1
themes/simpleit-hugo-theme
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 062b4a11a7e4df3eaeb09877c49ef22c9300c4a4
|
Loading…
Add table
Add a link
Reference in a new issue