Systèmes
d'exploitation
Réseau
Vint Cerf
• Américain
• Stanford
• UCLA
• Internet
• Google
2
Contenu
• Internet
• Réseau
• Pile OSI
– TCP/IP
– UDP/IP
• Socket API
3
Bibliographie pour aujourd'hui
• Linux Programming
– Chapitre 15
4
INTERNET
5
Internet
6
Numéro de dispisitifs
7
RÉSEAU
8
La réseau
• Stations / nœuds interconnectés
• Connexions physiques (filaire, sans fil) et
logique (connexion) entre les stations
• Les stations communiquent les unes avec les
autres et exécutent des applications réseau
• Les réseaux sont connectés à d'autres réseaux
• Internet: Tous les réseaux interconnectés de la
planète
9
Communication entre dispositifs
• Les appareils participants doivent recevoir des
noms
• Les appareils doivent être suffisamment
localisés – avoir une adresse
• Les participants doivent identifier les routes
par lesquels ils peuvent contacter
• Vous devez établir des règles simples de
communication-protocoles
10
Protocole réseau
• Un protocole = des règles qui déterminent
comment deux périphériques échangent des
informations
• Les entités participant à la communication
connaissent le protocole
– Formuler des séquences requête-réponse
(Request-Reply)
11
Adresse MAC
• Un nombre avec une longueur de 48 bits, qui
identifie de manière unique chaque interface de
réseau Ethernet;
– adresse non hiératique
• Il est entré de l’usine dans une mémoire ROM sur
la plaque
• Ne peut pas être changé de la plaque, mais peut
être changé de logiciel
00:00:0c:ab:cd:c1
12
ID du fabricant
Numéro de série de la plaque
Réseau local
• Composé de plusieurs stations connectées
– Stations: ordinateur, portable, téléphone mobile,
serveur, etc.
• Les stations de connexion réseau local sont
obtenues via l’équipement réseau appelé Switch
• Switch: transfère les informations entre les
ordinateurs du même réseau local à l’aide
d’interfaces réseau Ethernet basées sur l’adresse
MAC
13
14
Communication entre réseaux
• Afin d’accéder à d’autres réseaux ou à
Internet, un appareil doit également avoir une
connexion à un autre réseau/Internet
• Cet équipement peut être une station, un
serveur ou un équipement réseau dédié
nommé routeur
• Le transfert d’informations depuis le réseau
local vers Internet est basé sur l’adresse IP
15
PILE OSI
16
OSI
17
OSI
18
OSI vs TCP/IP
19
Transmission des données
20
Noyau
Utilisateur
Données sur Internet
21
INTERNET
22
Protocole IP
• Le protocole dominant qui fournit la
connectivité dans l’Internet
• L’adressage IP est hiératique
• Dernière version: IPv6
– Résout la crise de l’adresse IPv4
• L’adresse IPv6 est un nombre de bits 128
– Lenteur des progrès vers le rythme des
technologies actuelles
– Une infrastructure mondiale difficile à transformer
23
IPv4 vs IPv6
24
Adresse IPv4
• 32 bits écrites en 4 groupes de 8 bits
– Chaque groupe est écrit au format décimal
• Une adresse IP a deux composants:
– Première partie = adresse réseau qui inclut la station
– Deuxième partie = adresse de la station dans le
réseau.
• La délimitation entre l’adresse de la station et
l’adresse réseau est donnée par le masque de
réseau
25
Addresse IPv4
26
Masque de réseau
• Il a une longueur de 32 bits
• Formé en définissant le réseau et les bits de
station
– Bits réseau = 1
– Bits stations = 0
• Exemple: si nous avons 24-bit 1 consécutif, le
masque de réseau est/24 ou 255.255.255.0
27
Adresse de réseau et de diffusion
• Adresse de diffusion: adresse de diffusion, les
paquets sont reçus de toutes les stations du
réseau local
• Ils ne peuvent pas être utilisés comme adresses
de station
• Pour identifier l’adresse réseau, faites une et
logique (&) entre l’adresse IP et le masque de
réseau
• Pour identifier l’adresse de diffusion du réseau,
faites ou logique (|) entre l’adresse IP et le déni
du masque de réseau
28
Exemple
• Station avec adresse IP et masque de sous-réseau
255.255.0.0 (/16)
• Pour l’adresse du sous-réseau:
11000000 10101000 00000000 00000001 – 192.168.0.1
11111111 11111111 00000000 00000000 – 255.255.0.0
______________________________________________________
11000000 10101000 00000000 00000000 – 192.168.0.0
• Pour l’adresse de diffusion:
11000000 10101000 00000000 00000001 – 192.168.0.1
00000000 00000000 11111111 11111111 – 255.255.0.0
______________________________________________________
11000000 10101000 11111111 11111111 – 192.168.255.255
29
Données sur Internet
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8
30
TRNASPORT PROTOCOL
Bit 0 Bit 15 Bit 16 Bit 31
Destination IP
Source IP
TTL Header ChecksumProtocol
Identification Fragment OffsetFlags
IHLVersion TOS Total LengthECN
Packet IP
31
Données sur l’Internet
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8SRC: 5.6.7.8,
DST: 1.2.3.4
32
Données sur l’Internet
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8 SRC: 5.6.7.8,
DST: 1.2.3.4
33
Données sur l’Internet
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8 SRC: 5.6.7.8,
DST: 1.2.3.4
34
Comment démultiplexer les paquets?
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8 SRC: 5.6.7.8,
DST: 1.2.3.4
35
Comment démultiplexer les paquets?
Mon ordinateur Google
Web Server
SSH Server
Web Client
Skype
1.2.3.45.6.7.8 SRC: 5.6.7.8,
DST: 1.2.3.4
?
36
Ports
Mon ordinateur Google
Web Server:
PORT 80
SSH Server
PORT 22
Web Client
PORT 1102
Skype
1.2.3.45.6.7.8 SRC: 5.6.7.8,
DST: 1.2.3.4
37
TRANSPORT PROTOCOL
Bit
0
Bit
15
Bit
16
Bit
31
Destination IP
Source IP
TTL Header ChecksumProtocol
Identification Fragment OffsetFlags
IHLVersion TOS Total LengthECN
Source Port Destination Port
38
Ports
Mon oridinateur Google
Web Server:
PORT 80
SSH Server
PORT 22
Web Client
Skype
1.2.3.45.6.7.8
SRC: 5.6.7.8,DST: 1.2.3.4
SRC_PORT: 1102 DST_PORT: 80
39
TCP vs UDP
40
SOCKET API
41
Socket
• Descripteur de fichier spécial
– open – socket
• client: bind / connect
• server: listen / accept
– read – recv
– write – send
– close – shutdown et close
42
socket
int socket(int domain, int type, int protocol);
// domain
// PF_LOCAL Host-internal protocols, formerly called
PF_UNIX
// PF_INET Internet version 4 protocols,
// PF_ROUTE Internal Routing protocol,
// PF_INET6 Internet version 6 protocols,
// PF_NDRV Raw access to network device
// ...
// type
// SOCK_STREAM
// SOCK_DGRAM
// SOCK_RAW
43
shutdown
int shutdown(int socket, int how);
// how
// SHUT_RD further receives will be disallowed
// SHUT_WR further sends will be disallowed
// SHUT_RDWR further sends and receives will
be disallowed.
int close (int filedes);
44
client / server
int bind(int socket, const struct sockaddr
*address, socklen_t address_len);
// client
int connect(int socket, const struct sockaddr
*address, socklen_t address_len);
// server
int listen(int socket, int backlog);
int accept(int socket, struct sockaddr
*restrict address, socklen_t
*restrict address_len);
45
send et recv
// tcp
ssize_t send(int socket, const void *buffer, size_t
length, int flags);
ssize_t recv(int socket, void *buffer, size_t length, int
flags);
// udp
ssize_t sendto(int socket, const void *buffer,
size_t length, int flags, const struct sockaddr
*dest_addr, socklen_t dest_len);
ssize_t recvfrom(int socket, void *restrict buffer, size_t
length, int flags, struct sockaddr *restrict
address, socklen_t *restrict address_len);
46
Transmission/réception données TCP
Server
1. Créer un socket:
int ls = socket (AF_INET,
SOCK_STREAM, IPPROTO_TCP);
2. Réglez le port de socket:
bind(ls, &addr,
sizeof(addr));
3. Déclarer no. des clients:
listen(ls, 5);
4. En attente de connexion:
int s =
accept(ls,NULL,NULL);
Client
1. Créer un socket:
int s = socket
(AF_INET, SOCK_STREAM,
IPPROTO_TCP);
2. Connectez-vous au serveur:
connect(s, &addr,
sizeof(addr));
47
Réception des données
int bytes = 0;
while (bytes<len)
{
d = recv(s, &buf[bytes], len-bytes,0);
if (d<0) break;
bytes += d;
}
48
Transmission des données
int bytes = 0;
while (bytes<len)
{
d = send(s, &buf[bytes], len-bytes);
if (d<0) break;
bytes += d;
}
49
Fermer la connexion TCP
• Libérez les ressources associées à la connexion
• Informer l’autre extrémité de la fermeture de
la connexion
shutdown (s, SHUT_RDWR);
close (s);
50
Mot clés
• réseau
• Internet
• protocole
• OSI
• Niveau
• MAC
• IP
• mask
• TCP/IP
• UDP/IP
• port
• socket
• bind
• connect
• listen
• accept
• recv
• send
• shutdown
• packet
51
Questions
52

SDE 10 - Reseau

  • 1.
  • 2.
    Vint Cerf • Américain •Stanford • UCLA • Internet • Google 2
  • 3.
    Contenu • Internet • Réseau •Pile OSI – TCP/IP – UDP/IP • Socket API 3
  • 4.
    Bibliographie pour aujourd'hui •Linux Programming – Chapitre 15 4
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    La réseau • Stations/ nœuds interconnectés • Connexions physiques (filaire, sans fil) et logique (connexion) entre les stations • Les stations communiquent les unes avec les autres et exécutent des applications réseau • Les réseaux sont connectés à d'autres réseaux • Internet: Tous les réseaux interconnectés de la planète 9
  • 10.
    Communication entre dispositifs •Les appareils participants doivent recevoir des noms • Les appareils doivent être suffisamment localisés – avoir une adresse • Les participants doivent identifier les routes par lesquels ils peuvent contacter • Vous devez établir des règles simples de communication-protocoles 10
  • 11.
    Protocole réseau • Unprotocole = des règles qui déterminent comment deux périphériques échangent des informations • Les entités participant à la communication connaissent le protocole – Formuler des séquences requête-réponse (Request-Reply) 11
  • 12.
    Adresse MAC • Unnombre avec une longueur de 48 bits, qui identifie de manière unique chaque interface de réseau Ethernet; – adresse non hiératique • Il est entré de l’usine dans une mémoire ROM sur la plaque • Ne peut pas être changé de la plaque, mais peut être changé de logiciel 00:00:0c:ab:cd:c1 12 ID du fabricant Numéro de série de la plaque
  • 13.
    Réseau local • Composéde plusieurs stations connectées – Stations: ordinateur, portable, téléphone mobile, serveur, etc. • Les stations de connexion réseau local sont obtenues via l’équipement réseau appelé Switch • Switch: transfère les informations entre les ordinateurs du même réseau local à l’aide d’interfaces réseau Ethernet basées sur l’adresse MAC 13
  • 14.
  • 15.
    Communication entre réseaux •Afin d’accéder à d’autres réseaux ou à Internet, un appareil doit également avoir une connexion à un autre réseau/Internet • Cet équipement peut être une station, un serveur ou un équipement réseau dédié nommé routeur • Le transfert d’informations depuis le réseau local vers Internet est basé sur l’adresse IP 15
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    Protocole IP • Leprotocole dominant qui fournit la connectivité dans l’Internet • L’adressage IP est hiératique • Dernière version: IPv6 – Résout la crise de l’adresse IPv4 • L’adresse IPv6 est un nombre de bits 128 – Lenteur des progrès vers le rythme des technologies actuelles – Une infrastructure mondiale difficile à transformer 23
  • 24.
  • 25.
    Adresse IPv4 • 32bits écrites en 4 groupes de 8 bits – Chaque groupe est écrit au format décimal • Une adresse IP a deux composants: – Première partie = adresse réseau qui inclut la station – Deuxième partie = adresse de la station dans le réseau. • La délimitation entre l’adresse de la station et l’adresse réseau est donnée par le masque de réseau 25
  • 26.
  • 27.
    Masque de réseau •Il a une longueur de 32 bits • Formé en définissant le réseau et les bits de station – Bits réseau = 1 – Bits stations = 0 • Exemple: si nous avons 24-bit 1 consécutif, le masque de réseau est/24 ou 255.255.255.0 27
  • 28.
    Adresse de réseauet de diffusion • Adresse de diffusion: adresse de diffusion, les paquets sont reçus de toutes les stations du réseau local • Ils ne peuvent pas être utilisés comme adresses de station • Pour identifier l’adresse réseau, faites une et logique (&) entre l’adresse IP et le masque de réseau • Pour identifier l’adresse de diffusion du réseau, faites ou logique (|) entre l’adresse IP et le déni du masque de réseau 28
  • 29.
    Exemple • Station avecadresse IP et masque de sous-réseau 255.255.0.0 (/16) • Pour l’adresse du sous-réseau: 11000000 10101000 00000000 00000001 – 192.168.0.1 11111111 11111111 00000000 00000000 – 255.255.0.0 ______________________________________________________ 11000000 10101000 00000000 00000000 – 192.168.0.0 • Pour l’adresse de diffusion: 11000000 10101000 00000000 00000001 – 192.168.0.1 00000000 00000000 11111111 11111111 – 255.255.0.0 ______________________________________________________ 11000000 10101000 11111111 11111111 – 192.168.255.255 29
  • 30.
    Données sur Internet Monordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8 30
  • 31.
    TRNASPORT PROTOCOL Bit 0Bit 15 Bit 16 Bit 31 Destination IP Source IP TTL Header ChecksumProtocol Identification Fragment OffsetFlags IHLVersion TOS Total LengthECN Packet IP 31
  • 32.
    Données sur l’Internet Monordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8SRC: 5.6.7.8, DST: 1.2.3.4 32
  • 33.
    Données sur l’Internet Monordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8, DST: 1.2.3.4 33
  • 34.
    Données sur l’Internet Monordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8, DST: 1.2.3.4 34
  • 35.
    Comment démultiplexer lespaquets? Mon ordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8, DST: 1.2.3.4 35
  • 36.
    Comment démultiplexer lespaquets? Mon ordinateur Google Web Server SSH Server Web Client Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8, DST: 1.2.3.4 ? 36
  • 37.
    Ports Mon ordinateur Google WebServer: PORT 80 SSH Server PORT 22 Web Client PORT 1102 Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8, DST: 1.2.3.4 37
  • 38.
    TRANSPORT PROTOCOL Bit 0 Bit 15 Bit 16 Bit 31 Destination IP SourceIP TTL Header ChecksumProtocol Identification Fragment OffsetFlags IHLVersion TOS Total LengthECN Source Port Destination Port 38
  • 39.
    Ports Mon oridinateur Google WebServer: PORT 80 SSH Server PORT 22 Web Client Skype 1.2.3.45.6.7.8 SRC: 5.6.7.8,DST: 1.2.3.4 SRC_PORT: 1102 DST_PORT: 80 39
  • 40.
  • 41.
  • 42.
    Socket • Descripteur defichier spécial – open – socket • client: bind / connect • server: listen / accept – read – recv – write – send – close – shutdown et close 42
  • 43.
    socket int socket(int domain,int type, int protocol); // domain // PF_LOCAL Host-internal protocols, formerly called PF_UNIX // PF_INET Internet version 4 protocols, // PF_ROUTE Internal Routing protocol, // PF_INET6 Internet version 6 protocols, // PF_NDRV Raw access to network device // ... // type // SOCK_STREAM // SOCK_DGRAM // SOCK_RAW 43
  • 44.
    shutdown int shutdown(int socket,int how); // how // SHUT_RD further receives will be disallowed // SHUT_WR further sends will be disallowed // SHUT_RDWR further sends and receives will be disallowed. int close (int filedes); 44
  • 45.
    client / server intbind(int socket, const struct sockaddr *address, socklen_t address_len); // client int connect(int socket, const struct sockaddr *address, socklen_t address_len); // server int listen(int socket, int backlog); int accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len); 45
  • 46.
    send et recv //tcp ssize_t send(int socket, const void *buffer, size_t length, int flags); ssize_t recv(int socket, void *buffer, size_t length, int flags); // udp ssize_t sendto(int socket, const void *buffer, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len); ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len); 46
  • 47.
    Transmission/réception données TCP Server 1.Créer un socket: int ls = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 2. Réglez le port de socket: bind(ls, &addr, sizeof(addr)); 3. Déclarer no. des clients: listen(ls, 5); 4. En attente de connexion: int s = accept(ls,NULL,NULL); Client 1. Créer un socket: int s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 2. Connectez-vous au serveur: connect(s, &addr, sizeof(addr)); 47
  • 48.
    Réception des données intbytes = 0; while (bytes<len) { d = recv(s, &buf[bytes], len-bytes,0); if (d<0) break; bytes += d; } 48
  • 49.
    Transmission des données intbytes = 0; while (bytes<len) { d = send(s, &buf[bytes], len-bytes); if (d<0) break; bytes += d; } 49
  • 50.
    Fermer la connexionTCP • Libérez les ressources associées à la connexion • Informer l’autre extrémité de la fermeture de la connexion shutdown (s, SHUT_RDWR); close (s); 50
  • 51.
    Mot clés • réseau •Internet • protocole • OSI • Niveau • MAC • IP • mask • TCP/IP • UDP/IP • port • socket • bind • connect • listen • accept • recv • send • shutdown • packet 51
  • 52.