Documente Academic
Documente Profesional
Documente Cultură
HTTP
SMTP IP
FTP
DNS
TCP 802.3
UDP 802.11
Thomas Bonald
thomas.bonald@telecom-paristech.fr
RES201
1 T. Bonald RES201 Les couches hautes
SMTP
SMTP
T. Bonald
RES201
T. Bonald
RES201
HTTP
SMTP IP
FTP
DNS
TCP 802.3
UDP 802.11
Le transfert de donnes en temps-rel donnes gnrs en direct le dlai de chaque paquet compte exemples : tlphonie, live streaming, jeux
T. Bonald RES201 Les couches hautes
T. Bonald
RES201
RES201
(Transmission Control Protocol) transport fiable, mode connect contrle derreur, de flux, de congestion RFC 793, 1122, 2001
application
HTTP
SMTP IP
FTP
DNS
TCP 802.3
UDP 802.11
UDP
(User Datagram Protocol) transport non fiable, mode non connect aucun contrle ! support du multicast RFC 768
T. Bonald RES201 Les couches hautes
TCP
T. Bonald
RES201
Les ports
Identifiants
UDP
destination port! checksum!
HTTP 80 TCP
FTP 21
HTTP TCP
HTTP TCP
80, 60103 Un flot applicatif = IP source, IP destination port source, port destination protocole (TCP ou UDP)
8 T. Bonald RES201 Les couches hautes 9 T. Bonald RES201 Les couches hautes
Les sockets
Des
TCP
UDP
58123, 12345
10
T. Bonald
T. Bonald
RES201
RES201
Programmation socket en C
Client
int main(void){! ...! ! socketData=socket(PF_INET,SOCK_STREAM,0);! dest.sin_family=AF_INET;! dest.sin_addr.s_addr=inet_addr(IPADDRESS);! dest.sin_port = htons(PORT);! ! connect(socketData,...);! ! ! ! printf("Message = ");! fgets(message,NCAR,stdin); ! write(socketData,message,strlen(message));! read(socketData,echo,NCAR);! printf("Echo = ");! fputs(echo, stdout); ! close(socketData); ! }
PORT!
PORT!
Serveur
public class TCPServer {! ...! ! ServerSocket welsock = new ServerSocket(PORT); ! ! while (true) {! Socket datasock = welsock.accept(); ! System.out.println("Connexion = " + datasock);! ! BufferedReader intext = new ...! PrintWriter outtext = new ...! ! String message = intext.readLine(); ! System.out.println("Message = " + message); ! outtext.println(message); ! ! intext.close();! outtext.close();! datasock.close();! }! }!
int main(void){! ...! ! socketWelcome=socket(PF_INET,SOCK_STREAM,0);! source.sin_family=AF_INET; ! source.sin_addr.s_addr=htonl(INADDR_ANY);! source.sin_port=htons(PORT);! ! bind(socketWelcome,...);! ! listen(socketWelcome, 5); ! ! while (1) {! socketData = accept(socketWelcome,...);! read(socketData,message,NCAR);! fputs(message, stdout); ! write(socketData,message,strlen(message));! close(socketData); ! }! }!
12
T. Bonald
RES201
13
T. Bonald
RES201
Connexion TCP
Circuit
HTTP
SMTP IP
FTP
DNS
virtuel dans le rseau phase initiale de connexion (three-way handshake) ... pour fiabiliser le transfert des donnes
SYN SYN ACK ACK
TCP 802.3
UDP 802.11
temps
14 T. Bonald RES201 Les couches hautes 15 T. Bonald RES201
temps
Les couches hautes
Algorithme stop-and-wait
Principe
Contrle fentre
Principe
un paquet nest envoy que lorsque le prcdent a t acquitt un paquet est retransmis sil nest acquitt aprs un certain dlai (Automatic Repeat reQuest ARQ)
DATA ACK Exemple : Dbit maximal : MTU / RTT = 240 kbit/s avec : MTU = 1500 octets RTT = 50 ms
stop-and-wait, mais pour un ensemble de paquets la taille de la fentre est annonce par la destination
1 2 3 4 5 6 7 8 9 10 11 12
16
T. Bonald
RES201
17
T. Bonald
RES201
RES201
Pertes et retransmissions
2
Donnes et acquittements
DATA GET
options acquittements slectifs, retransmission des paquets manquants acquittements cumulatifs, retransmission de tous les paquets depuis le dernier manquant (Go-Back-N) la solution adopte pour TCP
HTTP TCP
10 11 12 ACK Toute la signalisation TCP (SYN, ACK, etc.) utilise des paquets TCP "nus"
18
T. Bonald
RES201
19
T. Bonald
RES201
estimation du dlai aller-retour, avec une marge pour viter les retransmissions inutiles...
rtt_mean = (1-a) * rtt_mean + a * rtt! rtt_dev = (1-b) * rtt_dev + b * (rtt rtt_mean)! timer = rtt_mean + 4* rtt_dev ! a = .125 b = .25
Fentre variable
Principe
lorigine TCP conu pour le contrle de flux ! fentre fixe les annes 80... premiers phnomnes de congestion introduction de la fentre variable
on part dune fentre minimale (slow-start) on augmente rapidement et on cherche la limite (congestion avoidance)
if (cwnd < ssth)! each ACK cwnd+=1! else! each ACK cwnd+=1/cwnd! ! each LOSS! ssth=cwnd/2! cwnd=1! !
Dans
22
T. Bonald
RES201
23
T. Bonald
RES201
RES201
Exemple
congestion avoidance
HTTP
SMTP IP
FTP
DNS
TCP 802.3
UDP 802.11
slow-start
24
T. Bonald
RES201
25
T. Bonald
RES201
organisation hirarchique gestion des Top Level Domains (TLD) par lIANA
generic com edu gov org net domaine mit machine wikipedia enst us countries jp uk fr
machine domaine
base de donnes hirarchique et distribue 3 classes de serveurs (racine, TLD, autorit) requtes itratives mise en cache UDP port 53
racine com edu gov org net us jp uk fr
deezer
mit
wikipedia
enst
smtp
www
www
26
T. Bonald
RES201
RES201
RES201
En rsum...
A
retenir l'architecture client serveur le principe des ports les sockets le mode connect (TCP) le service d'annuaire (DNS)
tester communication directe avec un serveur telnet www.google.fr 80! programmation rseaux
T. Bonald RES201 Les couches hautes
30