José Ortiz Padilla José Núñez Martínez Antonio Moya Fdez.

Slides:



Advertisements
Presentaciones similares
Sockets.
Advertisements

COMPARATIVA CLIENT/SERVIDOR AMB SOCKETS C vs. JAVA MANEL DOMÍNGUEZ SERRA GERARD ROCA MALLOFRÉ.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Sockets programming. Tipos de datos. Tipos de datos mas usados en programas cliente-servidor: u-char Unsigned 8-bit character. u-short Unsigned 16-bit.
Departamento de Arquitectura y Tecnología de Computadores E.T.S. Ingeniería Informática Lección 2. La API de Sockets Julio Ortega Lopera. Curso 2004/2005.
INTRODUCCIÓ A L’ELECTRÒNICA PRÀCTIQUES D’ELECTRÒNICA BÀSICA. I.E.S. ENRIC VALOR PEGO.
¿Qué es un socket? trab/satobigal/documentacion/beej/index.html Es una forma de comunicarse con otros programas usando.
Programació en xarxes Programació en xarxes
Programación con sockets I
Aproximació amb valoració dels errors
Experimentem amb l’elasticitat escola arc iris roger soto, laura torcal, pere ros, lluc rodó, júlia aicart i jan sanfulgencio.
Projecte Fi de Carrera Disseny i desenvolupament d’un esquema criptogràfic per gestionar de forma segura els historials mèdics dels pacients a través d’una.
LA GRAVETAT SOTA SOSPITA
Carlos Herrero Joan Torras
Curs de Llenguatge Administratiu Valencià Juli Martínez Amorós
TFC Intranet Escolar Desenvolupament d’una aplicació Java2 EE
OLIMPIADA MATEMÀTICA 2010 FASE PROVINCIAL PRIMÀRIA PROVA INDIVIDUAL
LOCALITZADOR GRÀFIC D’ADRECES IP
Presentació de la base de dades
PROJECTES: UN LLARG CAMÍ…
Writer 4... mira’t bé la pàgina
Un exemple de Màquina Virtual: el programa VMware
uoc-domo CONTROL DOMÒTIC AMB ARDUINO UOC-DOMO
TERMOREGULACIÓ HORÀRIA INDIVIDUAL DELS ESPAIS DEL CENTRE
Les fraccions Sisè B curs
Creació d’un mapa personalitzat
Disseny i implementació d’una base de dades relacional
SISTEMA GESTOR D’EMPRESA D’EXCAVACIONS
MAPES MENTALS TONI BUZAN
PERIFÈRICS ... Descobreix el que envolta l’ordinador!
Termes i expressions algebraiques
Víctor Ruiz Marquès Enginyeria en Informàtica   Juan Martínez Bolaños
Situacions Simuladores Preferencials (SSP)
Resultats DIAGNOSI SOCIO CULTURAL DE L’ENTORN FAMILIAR DELS I DE LES
Matemàtiques 3er E.S.O..
Classificarem la prova en 3 categories:
RYT a matrícula (MAT) reunió de centres 21/05/2015.
Writer Fora dels límits!
Guia Ràpida Web (HTTP/HTML) Protocol
Problema 1: Trobar la recta que passa pel punts A(2, -3) i B(-1, 3)
INFLUÈNCIA DELS JOCS DE LLUITA I EL JUDO A SECUNDÀRIA
Formació de títols propis
Formació per a responsables del programa Biblioteca escolar: PUNTEDU
Objectiu Educatiu Trienni
Potser la seva vestimenta deia el que la seva ànima volia reflectir
Presentació BATXILLERAT
Jonathan Ceballos Rodriguez ( ) Zenón Perisé Alía ( )
Projecte: el mercat 2a PART P -4.
Explicació de l’enunciat
Usos en seguretat de SmartCards
TEMA 2 XARXES LOCALS David Bermúdez 4tC Vanesa Elvira 4tB
ERIC Manual d’ús.
ANTECEDENTS Time-Sheets eina pròpia UPC en productiu
Problemes que es poden resoldre amb equacions
Mesuraments d'eficiència d'un raytracer distribuït
ESCOLA ANTONI TÀPIES- 5èB
Sistemes Operatius (S.O.) Onion: Mecanisme d'entrada al sistema
REAXYS.
Accessibilitat web per a discapacitats visuals
Xavi Fabregat 4tA Karim Atsailali 4tA
Dipòsit Digital de la Universitat de Barcelona
LES PREFERÈNCIES COM A EINA FACILITADORA
PROTOCOLS DE XARXA Regles i especificacions tècniques que han de seguir els dispositius connectats a la xarxa per poder comunicar-se El protocol més utilitzat.
Estudiant: Eva Muñoz Altimis
Sistema de descàrrega d’aplicacions per a mòbils intel·ligents
MESURA DEL RADI DE LA TERRA (seguint Eratóstenes)
(Fes clic per entrar en el quadre i poder escriure) NOM DELS PERSONATGE (Per canviar la lletra i la mida ho pots fer des de FORMATO-FUENTE) Escriviu els.
Educació Farmacèutica en la Interpretació de Prospectes
El model SA-DA El model d’oferta agregada (aggregate suppy) i de demanda agregada (aggregate demand) és un model adreçat a explicar les fluctuacions del.
La inserció laboral dels graduats de grau de la UPF
Transcripción de la presentación:

José Ortiz Padilla José Núñez Martínez Antonio Moya Fdez. Sockets a IPv6 José Ortiz Padilla José Núñez Martínez Antonio Moya Fdez.

Compatibilitat La nova implementació ha de ser compatible 100% amb IPv4 tant binàriament com a nivell de codi. - Els programes compilats amb IPv4 han de continuar funcionant en màquines amb IPv6. - Els programes fets per a IPv4 que es recompilin amb la nova interfície d’IPv6 han de funcionar amb normalitat. Les aplicacions han de poder interrelacionar-se independentment de la versió d’IP que utilitzin.

Modificacions S’ha de canviar:  La implementació interna de les funcions, (no afecta a la programació pel fet de que es passa un punter a una estructura genèrica -sockaddr-)  el tipus de dades d’adreces de sockets, (sockaddr_in6 per a IPv6, sockaddr_in per a IPv4)  les funcions de traducció de noms a adreces i les de conversions d’adreces. (s’afegeixen funcions anàlogues a gethostbyname(), gethostbyaddr() inet_ntoa() i inet_addr() compatibles totes amb ambdos protocols. Les existents es deixen com estan)

Interfície del socket S’afegeixen una nova família d’adreces i una nova família de protocols a <sys/socket.h>, AF_INET6 com a adreces i PF_INET6 com a protocol (habitualment, s’utilitza la definició #define PF_INET6 AF_INET6) una nova estructura d’adreces a <netinet/in.h>, struct in6_addr { union{ uint8_t _S6_u8[16]; uint32_t _S6_u32[4]; uint64_t _S6_u64[2]; } }; #define s6_addr _s6_un._s6_u8 (l’usuari pot escollir amb quina forma vol treballar)

Interfície del socket (II) i una nova estructura d’adreçament de sockets: struct sockaddr_in6{ uint8_t sin6_len; sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr;; uint32_t sin6_scope_id; }; Diferències respecte IPv4: - sin6_len ens diu la longitud de l’estructura, - sin6_flowinfo expressa la qualitat de servei en la comunicació i - sin6_scope_id ens defineix el format d’entrada de la direcció.

Interfície per a l’obtenció d’adreces La crida gethostbyname() es inadequada per a moltes aplicacions. Causes: - No ens dóna cap eina per a distingir entre els diferents tipus d’adreça que ens pot retornar. - Algunes implementacions d’aquesta funció no són segures respecte als threads (thread safe). Solució: - Es defineix la nova crida getipnodebyname().

Interfície d’obtenció d’adreces (II) #include <sys/socket.h> #include <netdb.h> struct hostent *getipnodebyname (const char *name, int af, int flags, int *error_num); ‘name’ és el nom de la màquina o la direcció IP en octets, p.ex. “147.83.41.110” o “alabi.fib.upc.es” ‘af’ és la família d’adreces, ‘flags’ especifica el tipus d’adreces que busquem i que ens serà retornada i ‘error_num’ ens dóna un codi dels possibles errors obtinguts.

Interfície d’obtenció d’adreces (III) Possibles valors dels codis d’error: - HOST_NOT_FOUND - NO_ADDRESS - NO_RECOVERY - TRY_AGAIN Valors possibles per als flags: - 0 - Amb AF_INET només retorna adreces amb format IPv4 - Amb AF_INET6 només retorna adreces amb format IPv6

Interfície d’obtenció d’adreces (IV) Més flags: - AI_DEFAULT es considera la suma d’aquests dos flags: AI_V4MAPPED: Amb AF_INET6 retorna adreces en format IPv6 o adreces d’IPv4 mapejades en format IPv6. AI_ADDRCONFIG: S’ utilitza per buscar adreces amb els mateixos formats que disposa la màquina que fa la petició. - Amb la suma dels dos flags aconseguim obtenir qualsevol tipus d’adreça, ja sigui IPv4 o IPv6, mapejades en la familia especificada.

Interfície d’obtenció d’adreces (V) Pels mateixos motius que abans també hem de definir una nova funció que substitueixi la crida gethostbyaddr(). #include <sys/socket.h> #include <netdb.h> struct hostent *getipnodebyaddr(const void *src, size_t len, int af, int *error_num); Alliberant memòria: Les dues crides anteriors demanen memòria dinàmica per tal de generar l’estructura hostent. S’ha d’alliberar utilitzant: void freehostent (struct hostent *ptr);

Interfície de conversió d’adreces Les funcions inet_addr() i inet_ntoa() nomès serveixen per a IPv4. Es defineixen dos funcions anàlogues compatibles amb els dos protocols. #include <sys/socket.h> #include <arpa/inet.h> int inet_pton (int af, const char *src, void *dst); const char *inet_ntop (int af, const void *src, char *dst, size_t size); ‘inet_pton’ tradueix una adreça donada en format de text a la seva anàloga en format numèric binari. ‘inet_ntop’ tradueix una adreça numèrica binària en una adreça llegible.

Interfície de conversió d’adreces (II) En ambos casos, ‘src’ representa l’origen (allò que es vol traduïr) i ‘dst’ representa el resultat de la traducció. En el cas d’ ‘inet_ntop’, el paràmetre ‘size’ especifica el tamany del buffer on guardarem el resultat. Per tal de facilitar la declaració d’aquest buffer, a <netinet/in.h> podem trobar: #define INET_ADDRSTRLEN 16 #define INET6_ADDRSTRLEN 46

Bibliografia http://www.ietf.org/ The Internet Engineering Task Force (RFC Pages) Basic Socket Interface Extensions for IPv6 RFC 2553 - March 1999 Bibliografia adicional Advanced Socket API for IPv6 RFC 2292 - February 1998