Upload
oriol-torres
View
91
Download
0
Embed Size (px)
Citation preview
SOCKETS
Arquitectura Client - Servidor 2
ARQUITECTURA CLIENT – SERVIDOR Conceptes bàsics
http://youtu.be/2kezQTo57yM
ARQUITECTURA CLIENT – SERVIDOR Conceptes bàsics
• Aplicació: Es compon de les aplicacions de xarxa (FTP, SMTP, ..)
• Transport: Transferència de dades
host-host (TCP, UDP) • Internet: Encaminament de
datagrames des de la font al destí (IP, protocols d’encaminament, ..).
• Accés a la xarxa: Transferència de
dades entre elements veïns en la xarxa.
Aplicació
Transport
Internet
Accés a la
xarxa
ARQUITECTURA CLIENT – SERVIDOR Què és un port?
Un port en la capa de
transport es troba
representat per un numero
de 16 bits que s’utilitza per
identificar els punts finals de
la connexió en les
capçaleres UDP o TCP.
Aplicació
Transport
Internet
Accés a la
xarxa
Port vs Socket: http://youtu.be/diasbxQYiSY
ARQUITECTURA CLIENT – SERVIDOR Què és un port?
Els números de ports oscil·len entre 0 i
65.535.
La pila de protocols de xarxa afegeix els
ports com una abstracció per la xarxa.
Són canals que utilitza el subsistema de
xarxa per readreçar la informació al
programa adient.
ARQUITECTURA CLIENT – SERVIDOR Classificació dels ports
Ports ben coneguts (well-known ports) [0, 1023]
S’utilitzen per serveis de xarxa ben coneguts
(FTP, HTTP, Telnet, DNS, …)
Ports registrats
Oscil·len entre el 1.024 i el 49.151 i tant poden
ser utilitzats temporalment pels clients com
poden representar serveis registrats per un tercer.
Ports dinàmics o privats
Oscil·len entre 49.152 i 65.535; si bé poden ser
utilitzats pel client, s’utilitzen amb menys
freqüència.
ARQUITECTURA CLIENT – SERVIDOR Sòcols
Un número de port i una adreça de xarxa.
Un parell de sòcols, un en cada host, formen una
connexió única.
És el punt final d’un enllaç de comunicació de
dues vies entre dos programes que s’executen a
través de la xarxa.
El client i el servidor s’han de posar d’acord sobre
quin protocol utilitzaran.
ARQUITECTURA CLIENT - SERVIDOR Què és un procés?
Es tracta d’un programa en execució en un ordinador.
Dins de la màquina dos processos es comuniquen utilitzant la comunicació entre processos (definida pel sistema operatiu).
Els processos en diferents hosts es comuniquen mitjançant el intercanvi de missatges.
ARQUITECTURA CLIENT - SERVIDOR Què és un procés?
Els processos envien/reben missatges a/des dels seus
sòcols
El procés transmissor treu els missatges pel seu port.
El procés transmissor confia en la infraestructura de
transport a l’altre costat del port encarregada de
portar els missatges al sòcol en el procés receptor.
ARQUITECTURA CLIENT - SERVIDOR Relació procés/sòcol
Accés a la xarxa
Internet
Transport
Aplicació
Accés a la xarxa
Internet
Transport
Aplicació
Accés a la xarxa
Internet
Transport
Aplicació P3 P1 P3 P4
= procés = sòcol (socket)
Host 1 Host 2 Host 3
ARQUITECTURA CLIENT - SERVIDOR Classificació de sòcols
Orientat a connexió
Defineix un camí virtual entre el servidor i el client.
És fiable: No hi han pèrdues de informació ni duplicats.
La informació arriba en el mateix ordre que s’envia.
El client obre una sessió en el servidor i aquest guarda
un estat del client.
ARQUITECTURA CLIENT - SERVIDOR Classificació de sòcols
No orientat a connexió
Enviament de datagrames de grandària fixe.
No és fiable: Poden haver-hi pèrdues de informació i
duplicats.
La informació pot arribar en un ordre al que s’envia.
No es guarda cap estat del client en el servidor; és per
això que és més tolerant a fallides del sistema.
ARQUITECTURA CLIENT - SERVIDOR Concepte Client / Servidor
La comunicació de dos hosts es realitza, generalment,
mitjançant la filosofia Client/Servidor.
L’usuari client obté serveis de la màquina remota proveïdora
d’un servei (servidor).
El servidor proporciona un port de comunicació pel que s’han de
connectar tots els clients que desitgin obtenir aquest servei.
Es defineix un sòcol en la màquina local (client) i un altre en la
màquina remota (servidor) i es comuniquen entre ells pel port
proporcionat.
ARQUITECTURA CLIENT – SERVIDOR Procés Client
1. Obrir el canal de comunicacions per connectar-se a
l’adreça de xarxa atesa pel servidor.
2. Enviar al servidor un missatge de petició de servei i
esperar fins a rebre resposta.
3. Tancar el canal de comunicació i acabar l’execució del
procés.
ARQUITECTURA CLIENT – SERVIDOR Procés Servidor
1. Obrir el canal de comunicacions i informar a la xarxa tant
de l’adreça per la que respondrà com de la disposició per
acceptar peticions de servei.
2. Esperar a que el client realitzi una petició de servei en
l’adreça que té declarada.
3. Quan rep una petició de servei, atén al client.
4. La connexió es tanca.
ARQUITECTURA CLIENT – SERVIDOR Processos que es comuniquen
Procés Client: Procés que inicia la
comunicació.
Procés servidor: Procés que
espera per ser contactat
ARQUITECTURA CLIENT – SERVIDOR Processos que es comuniquen
Procés Client: Procés que inicia la
comunicació.
Procés servidor: Procés que
espera per ser contactat
ARQUITECTURA CLIENT – SERVIDOR Comunicació C/S orientada a connexió
Seq
üèn
cia
de
crid
es p
er u
na
com
un
icac
ió C
lien
t /
Serv
ido
r O
rien
tad
a a
con
nex
ió
ARQUITECTURA CLIENT – SERVIDOR Comunicació C/S no orientada a connexió
Seq
üèn
cia
de
crid
es p
er u
na
com
un
icac
ió C
lien
t /
Serv
ido
r N
o o
rien
tad
a a
con
nex
ió
ARQUITECTURA CLIENT – SERVIDOR Stream
• És una seqüència de dades habilitats en un
moment donat.
• Una abstracció utilitzada quan es llegeixen o
escriuen arxius, o quan es realitza una
comunicació mitjançant sòcols.
• Són canals preconnectats d’entrades i sortides
entre una computadora, generalment una
seqüència de bytes.
ARQUITECTURA CLIENT – SERVIDOR Tipus d’stream
• Les connexions I/O són conegudes com entrada
estàndard, sortida estàndard i sortida d’error
estàndard.
Terminal de text
monitor
teclat
programa
#2 stderr
#1 stdout
#0 stdin
ARQUITECTURA CLIENT – SERVIDOR Tipus d’stream
• Un stream (fluxe) és una seqüència de caràcters
que flueixen cap a o des de un procés.
• Un input stream (flux d’entrada) està lligat a
alguna font d’entrada pel procés, per exemple,
teclat o sòcol.
• Un output stream (flux de sortida) està lligat a una
sortida del procés, per exemple, monitor o sòcol.
ARQUITECTURA CLIENT – SERVIDOR Exemple d’aplicació client - servidor
1) El client llegeix línies des de
l’entrada estàndard (flux
inFromUser), les envia al servidor
per via d’un sòcol (flux outToServer).
2) El servidor llegeix línies des del
sòcol.
3) El servidor les converteix a
majúscules i les envia de tornada al
client.
4) El client llegeix i mostra la línia
modificada des del sòcol (flux
inFromServer)
ARQUITECTURA CLIENT – SERVIDOR Exemple d’aplicació client - servidor