1213 Sockets [1] Introducció

30
SOCKETS Introducció 1

Transcript of 1213 Sockets [1] Introducció

Page 1: 1213 Sockets [1] Introducció

SOCKETS

Introducció 1

Page 2: 1213 Sockets [1] Introducció

SÒCOLS Definició

Els sòcols són un sistema de comunicació entre

processos de diferents màquines d’una xarxa.

Un sòcol és un punt de comunicació pel qual un

procés pot emetre o rebre informació.

Un sòcol és una abstracció programable de canal de comunicació.

Adreça de sòcol = adreça IP + número de port

Page 3: 1213 Sockets [1] Introducció

SÒCOLS Definició

Una connexió mitjançant sòcols és idèntica a

una comunicació mitjançant canonades (pipes)

bidireccionals.

Page 4: 1213 Sockets [1] Introducció

SÒCOLS Definició

Dos processos es poden intercanviar informació utilitzant un parell de sòcols. Els missatges van entre el sòcol d’un procés i un altre sòcol

d’un altre procés. Quan els missatges són enviats, es posen a la cua en el

sòcol fins que el protocol de xarxa els hagi transmès. Quan arriben, els missatges es posen a la cua en el sòcol de

recepció fins que el procés receptor els reculli.

JVM

Servidor

JVM

Client 010110101101

Page 5: 1213 Sockets [1] Introducció

SÒCOLS Definició

Un sòcol és el punt final d’un procés de comunicació.

És una abstracció que permet manipular de forma

senzilla la comunicació entre processos – tot i que

aquests estiguin en sistemes diferents – sense

necessitat de conèixer el funcionament dels protocols

de comunicació corresponents.

Adreça de sòcol = adreça IP + número de port

Page 6: 1213 Sockets [1] Introducció

SÒCOLS Definició

Aplicació que envia dades

Sòcol (Socket)

Quelcom que permet la

comunicació

Màquina A

Aplicació que rep dades

Sòcol (Socket)

Quelcom que permet la

comunicació

Màquina B Procés d’aplicació

Procés de

comunicació

Abstracció del procés de comunicació entre

dues màquines

Page 7: 1213 Sockets [1] Introducció

SÒCOLS Definició

• Aquests punts finals serveixen d’enllaços de comunicacions entre

processos.

• Els processos tracten als sòcols com a descriptors d’arxius.

• Permeten l’intercanvi de dades amb altres processos transmetent

i rebent a través dels sòcols.

Procés A Procés

B

Comunicació entre dos processos a través de sòcols.

Page 8: 1213 Sockets [1] Introducció

SÒCOLS Models de capes

• Els models de capes divideixen el procés de comunicació en

capes independents.

• Cada capa proporciona serveis a la capa superior a través de

una interfície i, alhora, rep serveis de la capa inferior mitjançant la

interfície corresponent.

La capa N solament necessita conèixer que la capa N-1 li

proporciona el servei X; no necessita conèixer el

mecanisme que utilitza aquesta capa per aconseguir el seu

objectiu.

Page 9: 1213 Sockets [1] Introducció

SÒCOLS Models de capes

Un model de capes no és més que la representació de com opera la

xarxa. El model no és la xarxa en sí.

Page 10: 1213 Sockets [1] Introducció

SÒCOLS Models de capes

Page 11: 1213 Sockets [1] Introducció

SÒCOLS Models de capes

Page 12: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

• Els usuaris criden a una aplicació

perquè accedeixi als serveis

disponibles a través de la xarxa de

xarxes TCP/IP.

• Cada programa d’aplicació

selecciona el tipus de transport

necessari.

• Aquesta capa conté tots els

protocols d’alt nivell que s’utilitzen

per oferir serveis als usuaris.

Page 13: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Protocols

FTP: Protocol de Transferència

d’arxius

HTTP: Protocol de transferència

de Hipertext

SMTP: Protocol senzill de

transferència de correu

DNS: Sistema de denominació de

dominis

Page 14: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

• Aquesta capa desenvolupa la

funció de permetre la

comunicació d’extrem a extrem

en la xarxa.

• Proporciona la comunicació entre

un programa d’aplicació i un altre

de conegut amb una

comunicació punt a punt.

• Regula el flux de informació.

Page 15: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Protocol UDP User Datagram Protocol

És no orientat a connexió .

Els missatges s’envien sense problema

(es poden duplicar o arribar desordenats).

No és fiable (es poden perdre o arribar

danyats).

Utilitza el protocol IP per transportar els

seus missatges.

Incorpora els ports d’origen i destí en el

seu format de missatge.

Page 16: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Protocol TCP Transmission Control Protocol

És orientat a connexió .

Les dades arriben a l’aplicació destí de

forma ordenada i sense duplicats.

És fiable

Els datagrames IP poden seguir rutes

diferents per arribar a un mateix lloc.

Envia un flux de informació no estructurat

– són dades sense cap format (ambdues

aplicacions es posen d’acord per

comprendre la informació intercanviada) –.

Page 17: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Correu

electrònic

Transf.

d’arxius

Navegació

per Internet

Port 25 Data Port 21 Data Port 80 Data

Etiqueta cada aplicació amb un

determinat port i segmenta la

informació en unitats més petites.

Page 18: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Divideix els segments en

paquets.

El protocol d’aquesta capa és el

protocol Internet (IP)

S’hi produeix la determinació de

la millor ruta i la commutació del

paquets.

Page 19: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

La relació entre IP i TCP és

important:

IP: Indica el camí als paquets.

TCP: Brinda el transport segur.

Page 20: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Aplicació

Transport

Internet

Accés a la

xarxa

Es tracta de la capa que guarda

relació amb tots els

components, tant físics com

lògics, necessaris per

aconseguir un enllaç físic.

Inclou els detalls de la capa

física i d’enllaç de dades del

model OSI.

Page 21: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

Page 22: 1213 Sockets [1] Introducció

SÒCOLS Model TCP/IP

XARXA

IP ICMP

UDP TCP

SÒCOL

DATA

TCP DATA

IP TCP DATA

ETH IP TCP DATA

sòcol

driver

Aplicació

Transport

Internet

Page 23: 1213 Sockets [1] Introducció

SÒCOLS Tipus de sòcols

Stream (TCP)

Datagram (UDP)

Raw (accés directe al protocol: root)

Stream Datagrama

TCP UDP

IP

Raw

Page 24: 1213 Sockets [1] Introducció

SÒCOLS Socket Stream

Són un servei orientat a la connexió on les dades es transfereixen sense enquadrar-les en registres o blocs.

S’assegura que les dades arribin al destí en l’ordre de transmissió.

Si es trenca la connexió entre els processos, aquests seran informats perquè prenguin les mesures adients.

Page 25: 1213 Sockets [1] Introducció

SÒCOLS Socket Stream. Protocol de comunicacions

És un protocol orientat a connexió. La comunicació utilitza el protocol TCP.

En primer lloc, s’estableix una connexió entre un parell de sòcols.

Mentre un dels sòcols atén peticions de connexió (servidor),

l’altre sol·licita una connexió (client).

Un cop que els dos sòcols es troben connectats, es poden utilitzar per transmetre dades en ambdues direccions.

Page 26: 1213 Sockets [1] Introducció

SÒCOLS Socket Datagram

Són un servei de transport no orientat a la connexió.

La fiabilitat no està garantida. Les dades s’envien i es reben en paquets – la seva entrega no està garantida -.

Els paquets es poden duplicar, perdre o arribar en un ordre diferent al que es va enviar.

Page 27: 1213 Sockets [1] Introducció

SÒCOLS Socket Datagram. Protocol de comunicacions

Les comunicacions mitjançant datagrames utilitzen UDP.

Cada cop que s’envien datagrames és necessari enviar el descriptor del sòcol local i l’adreça del sòcol que ha de rebre el datagrama.

En conseqüència, s’han d’enviar dades addicionals cada cop que es realitza una comunicació.

Page 28: 1213 Sockets [1] Introducció

SÒCOLS Socket Raw

Donen accés directe a la capa de programari de xarxa subjacent o a protocols de més baix nivell.

Principalment, s’utilitzen per la depuració del codi dels protocols.

Page 29: 1213 Sockets [1] Introducció

SÒCOLS Funcionament genèric

La comunicació entre sòcols es fonamenta en una sèrie de

primitives que permeten establir un sistema de

comunicació molt complert.

socket Crea un descriptor per utilitzar-lo en la transmissió per xarxes.

Pren com a paràmetre la família de protocols i el tipus de servei.

Connect Defineix una connexió activa, rep com a paràmetre l’adreça i el

port de destí.

write Generalment, copia les dades a una memòria cau (buffer) i els

envia a mesura que pot.

read Llegeix de la connexió, es bloqueja si no hi ha dades o entrega

més length dades.

bind Especifica l’adreça (adreça IP + port local) al que s’associa el

sòcol.

Page 30: 1213 Sockets [1] Introducció

SÒCOLS Funcionament genèric

La comunicació amb sòcols es fonamenta en una

sèrie de primitives.

listen Posa el sòcol en mode passiu i estableix el número màxim

de connexions que es posaran a la cua (quan arribin

connexions simultànies).

CLoSe Finalitza la connexió i allibera el sòcol.

shutdown Finalitza la connexió TCP/IP en una o ambdues direccions.

getpeername Retorna l’adreça remota del sòcol.

getsockopt Veure les opcions del sòcol.

setsockpot Canviar les opcions del sòcol.