Sistemas Distribuidos :: Sesión 05 - Sockets

18
SISTEMAS DISTRIBUIDOS Sesión 05 DNS, ARP, Sockets

Transcript of Sistemas Distribuidos :: Sesión 05 - Sockets

Page 1: Sistemas Distribuidos :: Sesión 05 - Sockets

SISTEMAS DISTRIBUIDOS

Sesión 05 – DNS, ARP, Sockets

Page 2: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

Aplicación

Page 3: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

Domain Name System

base de datos distribuida y jerárquica que

almacena información asociada a nombres de

dominio en redes como Internet

El uso más común es la asignación de nombres de

dominio a direcciones IP

google.com -> 209.85.225.105

Componentes

Cliente

Servidor

Zona de Autoridad

Page 4: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

Page 5: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

Tipos de registros DNS

A – google.com -> 209.85.225.105

CNAME - docs.google.com -> writely.l.google.com

NS – google.com -> ns1.google.com

MX – google.com -> google.com.s9a2.psmtp.com

Page 6: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

nslookup

> google.com

Server: resolver1.opendns.com

Address: 208.67.222.222

Non-authoritative answer:

Name: google.com

Addresses: 209.85.225.106, 209.85.225.99,

209.85.225.103, 209.85.225.147

209.85.225.105, 209.85.225.104

Page 7: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS

> set type=all

> google.com

Server: resolver1.opendns.com

Address: 208.67.222.222

Non-authoritative answer:

google.com internet address = 209.85.225.99

google.com internet address = 209.85.225.103

google.com internet address = 209.85.225.147

google.com internet address = 209.85.225.105

google.com internet address = 209.85.225.104

google.com internet address = 209.85.225.106

google.com MX preference = 200, mail exchanger = google.com.s9a2.psmtp.com

google.com MX preference = 300, mail exchanger = google.com.s9b1.psmtp.com

google.com MX preference = 100, mail exchanger = google.com.s9a1.psmtp.com

google.com MX preference = 400, mail exchanger = google.com.s9b2.psmtp.com

google.com nameserver = ns1.google.com

google.com nameserver = ns2.google.com

google.com nameserver = ns3.google.com

google.com nameserver = ns4.google.com

Page 8: Sistemas Distribuidos :: Sesión 05 - Sockets

DNS > google.com ns1.google.com

Server: ns1.google.com

Address: 216.239.32.10

google.com internet address = 74.125.227.20

google.com internet address = 74.125.227.18

google.com internet address = 74.125.227.17

google.com internet address = 74.125.227.16

google.com internet address = 74.125.227.19

google.com nameserver = ns4.google.com

google.com MX preference = 300, mail exchanger = google.com.s9b1.psmtp.com

google.com MX preference = 200, mail exchanger = google.com.s9a2.psmtp.com

google.com nameserver = ns2.google.com

google.com MX preference = 100, mail exchanger = google.com.s9a1.psmtp.com

google.com nameserver = ns1.google.com

google.com MX preference = 400, mail exchanger = google.com.s9b2.psmtp.com

google.com text =

"v=spf1 include:_netblocks.google.comip4:216.73.93.70/31 ip4:216.73.93.

72/31 ~all"

google.com nameserver = ns3.google.com

google.com

primary name server = ns1.google.com

responsible mail addr = dns-admin.google.com

serial = 1425952

refresh = 7200 (2 hours)

retry = 1800 (30 mins)

expire = 1209600 (14 days)

default TTL = 300 (5 mins)

Page 9: Sistemas Distribuidos :: Sesión 05 - Sockets

ARP

Red

Page 10: Sistemas Distribuidos :: Sesión 05 - Sockets

ARP

Addres Resolution Protocol

responsable de encontrar la dirección hardware (MAC) que corresponde a una determinada dirección IP

se envía un paquete (ARP request) a la dirección de difusión de la red que contiene la dirección IP por la que se pregunta

se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde

Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga

Page 11: Sistemas Distribuidos :: Sesión 05 - Sockets

ARP

arp -a

Interface: 192.168.0.102 --- 0x2

Internet Address Physical Address Type

192.168.0.1 00-26-5a-b2-60-58 dynamic

192.168.0.103 00-25-00-41-13-7e dynamic

Page 12: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Page 13: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

concepto abstracto por el cual dos programas pueden intercambiar cualquier flujo de datos Posiblemente en equipos separados físicamente

Un socket queda definido por una dirección IP, un protocolo de transporte y un número de puerto

TCP 192.168.0.1:2345

Para que dos programas puedan comunicarse entre sí es necesario que se cumplan ciertos requisitos:

Que un programa sea capaz de localizar al otro.

Que ambos programas sean capaces de intercambiarse cualquier secuencia datos relevantes a su finalidad

Page 14: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Para ello son necesarios los tres recursos que

originan el concepto de socket:

Un protocolo de comunicaciones, que permite el

intercambio de octetos

Una dirección del Protocolo de Red, que identifica

una computadora

Un número de puerto, que identifica a un programa

dentro de una computadora

Page 15: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Existen básicamente dos tipos de sockets

los orientados a conexión

ambos programas deben conectarse entre ellos con un

socket

hasta que no esté establecida correctamente la conexión,

ninguno de los dos puede transmitir datos.

Protocolo TCP

los no orientados a conexión

no es necesario que los programas se conecten

Cualquiera de ellos puede transmitir datos en cualquier

momento, independientemente de que el otro programa

esté "escuchando" o no

protocolo UDP

Page 16: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Arquitectura cliente – servidor

Servidor

Debe estar arrancado y en espera de que otro quiera

conectarse a él

Nunca da "el primer paso" en la conexión

tiene la información y la "sirve" al que se la pida

Ej: Apache

Cliente

es el que da el primer paso

Solicita la información para procesarla

Ej: Firefox

Page 17: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Operaciones de sockets TCP

Servidor

Apertura de un socket [socket()]

Avisar al sistema operativo [bind()]

atender dicha conexión [listen()]

aceptar las conexiones [accept()]

Escribir y leer datos [write(), read()]

Cierre de la comunicación [close()]

Cliente

Apertura de un socket [socket()]

Solicitar conexión [connect()]

Escribir y leer datos [write(), read()]

Cierre de la comunicación [close()]

Page 18: Sistemas Distribuidos :: Sesión 05 - Sockets

SOCKETS

Operaciones de sockets UDP

Servidor

Abrir un socket [socket()]

Asociar un socket a un puerto [bind()]

Leer mensaje [recvfrom()]

Responder mensaje [sendto]

Cliente

Abrir un socket [socket()]

Asociar un socket a un puerto [bind()]

Enviar mensaje [sendto]

Leer respuesta [recvfrom()]