page 1 martínez navarro, germán fco. page 2 Índice introducción paquetes cuerpo del mensaje...

26
Page 1 Martínez Navarro, Germán Fco.

Upload: marguerita-bejar

Post on 14-Apr-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 1Martínez Navarro, Germán Fco.

Page 2: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 2

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 3: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 3

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 4: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 4

Introducción (1/2)

• Second Life (SL) es un metaverso lanzado el 23 de junio de 2003, desarrollado por Linden Lab, y es accesible gratuitamente en Internet.

• Sus usuarios, conocidos como "residentes", pueden acceder a SL mediante el uso de uno de los múltiples programas de interfaz llamados viewers (visores), lo cual les permite interactuar entre ellos mediante un avatar.

• Los residentes pueden así explorar el mundo virtual, interactuar con otros residentes, establecer relaciones sociales, participar en diversas actividades tanto individuales como en grupo y crear y comerciar propiedad virtual y servicios entre ellos.

Page 5: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 5

Introducción (2/2)

• SL usa como protocolo de transporte UDP (RFC 768) para intercambiarse información entre los visores y el simulador.

• UDP no solicita reenvío de paquetes perdidos, lo que hace que sea ideal para servicios como video streaming. En nuestro caso esto supone una ventaja a la hora de enviar información sobre los escenarios.

Page 6: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 6

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 7: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 7

Paquetes (1/4)

• Cabecera:

Byte 0 1 4 5 6 N

Page 8: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 8

Paquetes (2/4)

• Cabecera– Byte 0:

• ZER: Los 0s en el cuerpo del paquete van codificados.

• REL: El paquete fue enviado de forma segura.

• RES: Este paquete es un reenvío de la fuente.

• ACK: Este paquete contiene ACKs adjuntos (en la cola).

• 4 bits menos significantes: Reservados.

+ -

Page 9: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 9

Paquetes (3/4)

– Byte 1-4:• Número de secuencia del mensaje (con ordenación big-endian).

– Byte 5:• Cantidad de bits adicionales extras en la cabecera.

Page 10: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 10

Paquetes (4/4)

• Cuerpo:– (Byte 6+extra) hasta (6+extra+long. datos)

• Cola:– La cola del paquete contendrá una serie de

ACKs– (6+extra+longitud de los datos) hasta (final-1)– El último byte es una cuenta de cuantos

ACKs contiene

Page 11: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 11

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 12: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 12

Cuerpo del mensaje (1/3)

• Se usan para enviar información serializada entre los clientes y el servidor, a través de conexiones conocidas como circuitos.

• En todos los mensajes se debe realizar un comprobación del CRC entre ambos hosts, si no la comunicación no tendrá éxito.

• Existe una gran cantidad de mensajes. Una lista de ellos puede verser en:

http://wiki.secondlife.com/wiki/Category:Messages

Page 13: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 13

Cuerpo del mensaje (2/3)

• Formato:

Preámbulo

Bloque

VariableTipo de dato

Page 14: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 14

Cuerpo del mensaje (3/3)

• Ejemplo:mplo:

Page 15: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 15

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 16: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 16

Circuitos (1/2)

• Un circuito es una conexión UDP entre dos nodos:– Visor-Simulador– Simulador-Simulador– Simulador-Servidor

• Tipos:– Trusted– Untrusted

Page 17: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 17

Circuitos (2/2)

• Untrusted:– Todo circuito empieza siendo untrusted.– Las conexiones Visor-Simulador son de este tipo.– Cualquier mensaje seguro sobre un circuito de este

tipo será descartado por el receptor.

• Trusted:– Las conexiones Simulador-Simulador y Simulador-

Servidor son de este tipo.– Estos circuitos se establecen en respuesta a los

mensajes DenyTrustedCircuit haciendo uso de los mensajes CreateTrustedCircuit y un protocolo de confianza.

Page 18: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 18

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 19: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 19

Sistema de mensajes (1/2)

• Número de secuencia– El número de secuencia es creado en la conexión al circuito. – A partir de entonces los paquetes irán incrementando su

número de secuencia.

• Eliminación de duplicados– Dado que no hay garantía en la entrega de los paquetes, el

propio circuito es quien debe encargarse de eliminar repetidos.– El circuito tiene una lista de todos los paquetes que recibió

recientemente, a través de un valor de tiempo determinado. Si un paquete que ya está en esta lista se recibe una vez más, el circuito responde con otro ACK adjuntado al paquete siguiente.

Page 20: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 20

Sistema de mensajes (2/2)

• Confirmación de paquete– La fiabilidad no va implícita en el mensaje, si no que es

especificada por el emisor en el momento de enviarlo.– Cuando A envía el mensaje, activa el flag de REL y se guarda

en un nodo de información el número de ese paquete. – Cuando B lo recibe, envía este número al final del paquete que

envíe a A, activando también el flag de ACK.– Cuando A recibe ese paquete, remueve el número de ese

paquete de su nodo de información.– Si en un tiempo máximo (determinado por el retardo de realizar

un ping por el circuito) A no recibe confirmación, el paquete es reenviado.

– Si después de 3 intentos, sigue sin recibir confirmación, el paquete es descartado.

Page 21: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 21

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 22: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 22

Arquitectura del cliente (1/2)

• El cliente de SL (también conocido como visor) permite visualizar el entorno virtual y los objetos que lo conforman.

• El visor es un único proceso con varios hilos

Main

VFS LFS Image WorkedWorked

Page 23: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 24

Índice

• Introducción

• Paquetes

• Cuerpo del mensaje

• Circuitos

• Sistema de mensajes

• Arquitectura del cliente

• Arquitectura del servidor

Page 24: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 25

Arquitectura del servidor (1/1)

• La parte del servidor ya no es open source.• Login:

– El encargado de comprobar el logueo es un script CGI. Hace uso del protocolo XML-RPC sobre HTTP, y se envía al puerto 12036 del servidor.

• Simulador:– Es el proceso principal del servidor.– Cada simulador es capaz de procesar una región de 256x256

metros.– Se encarga de calcular qué objetos son visibles en todo

momento.– Envía las imágenes de forma priorizada.– Mensajes de chat también son procesados por él.– Los simuladores se comunican entre ellos mediante circuitos

UDP.

Page 25: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 26

Bibliografía

• http://wiki.secondlife.com/wiki/Protocol

Page 26: Page 1 Martínez Navarro, Germán Fco. Page 2 Índice Introducción Paquetes Cuerpo del mensaje Circuitos Sistema de mensajes Arquitectura del cliente Arquitectura

Page 27