1213 sockets [2] arquitectura client - servidor

24
SOCKETS Arquitectura Client - Servidor 2

Upload: oriol-torres

Post on 01-Jul-2015

92 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1213 Sockets [2] Arquitectura client - servidor

SOCKETS

Arquitectura Client - Servidor 2

Page 2: 1213 Sockets [2] Arquitectura client - servidor

ARQUITECTURA CLIENT – SERVIDOR Conceptes bàsics

http://youtu.be/2kezQTo57yM

Page 3: 1213 Sockets [2] Arquitectura client - servidor

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

Page 4: 1213 Sockets [2] Arquitectura client - servidor

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

Page 5: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 6: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 7: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 8: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 9: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 10: 1213 Sockets [2] Arquitectura client - servidor

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

Page 11: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 12: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 13: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 14: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 15: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 16: 1213 Sockets [2] Arquitectura client - servidor

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

Page 17: 1213 Sockets [2] Arquitectura client - servidor

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

Page 18: 1213 Sockets [2] Arquitectura client - servidor

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

Page 19: 1213 Sockets [2] Arquitectura client - servidor

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

Page 20: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 21: 1213 Sockets [2] Arquitectura client - servidor

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

Page 22: 1213 Sockets [2] Arquitectura client - servidor

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.

Page 23: 1213 Sockets [2] Arquitectura client - servidor

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)

Page 24: 1213 Sockets [2] Arquitectura client - servidor

ARQUITECTURA CLIENT – SERVIDOR Exemple d’aplicació client - servidor