Download - 1213 Sockets [1] Introducció
SOCKETS
Introducció 1
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
SÒCOLS Definició
Una connexió mitjançant sòcols és idèntica a
una comunicació mitjançant canonades (pipes)
bidireccionals.
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
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
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
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.
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.
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í.
SÒCOLS Models de capes
SÒCOLS Models de capes
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.
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
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ó.
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.
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) –.
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.
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.
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.
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.
SÒCOLS Model TCP/IP
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
SÒCOLS Tipus de sòcols
Stream (TCP)
Datagram (UDP)
Raw (accés directe al protocol: root)
Stream Datagrama
TCP UDP
IP
Raw
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.
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.
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.
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ó.
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.
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.
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.