1 1 Nivel 2 (Link level) Servicio utilizado: Nivel físico, transmisión de bits Servicio ofrecido: Transferencia de bloques (frames) de bits entre dos equipos conectados a través de un vínculo físico Variantes del servicio: –Orientado o no orientado a la conexión –Confiable o no confiable Combinaciones clásicas: –Orientado a la conexión, confiable –No orientado a la conexión, no confiable Protocolos más comunes –PPP (point to point protocol) –LLC (Logical Link Control) Dividido en dos subniveles cuando aparecieron las redes broadcast (MAC y LLC —IEEE 802) Servicio utilizado: Nivel físico, transmisión de bits Servicio ofrecido: Transferencia de bloques (frames) de bits entre dos equipos conectados a través de un vínculo físico Variantes del servicio: –Orientado o no orientado a la conexión –Confiable o no confiable Combinaciones clásicas: –Orientado a la conexión, confiable –No orientado a la conexión, no confiable Protocolos más comunes –PPP (point to point protocol) –LLC (Logical Link Control) Dividido en dos subniveles cuando aparecieron las redes broadcast (MAC y LLC —IEEE 802)
2 2 Características generales de los protocolos de nivel 2 –Independientes del código –Soportan transmisión sincrónica y asincrónica –Eficientes –Funciones en hardware –Frames con información de control posicional –Derivan de HDLC (High level data link control) –Independientes del código –Soportan transmisión sincrónica y asincrónica –Eficientes –Funciones en hardware –Frames con información de control posicional –Derivan de HDLC (High level data link control) DEL IM DEL IM CONT ROL INFORMACION (FRAME DEL NIVEL SUPERIOR)
3 3 Funciones del nivel 2 Delimitación de bloque Manejo del vínculo de datos Control de errores Control de flujo Delimitación de bloque Manejo del vínculo de datos Control de errores Control de flujo
4 4 Framing Delimitación de bloque (framing) Alternativas –Caracteres delimitadores de comienzo y de fin, inserción de carácter (character stuffing) –Secuencias de bits (flags) delimmitadores de comienzo y fin, inserción de bit (bit stuffing) –Violación de código (señales no dato) –Complemento de los anteriores: cuenta de caracteres del bloque Delimitación de bloque (framing) Alternativas –Caracteres delimitadores de comienzo y de fin, inserción de carácter (character stuffing) –Secuencias de bits (flags) delimmitadores de comienzo y fin, inserción de bit (bit stuffing) –Violación de código (señales no dato) –Complemento de los anteriores: cuenta de caracteres del bloque
5 5 Framing: caracteres delimitadores Utilizado en transmisión asincrónica Overhead significativo Ejemplo: Framing usado por PPP en líneas asincrónicas –Delimitación de bloque: utilizando el carácter 7E (hex) –Transparencia: utilizando el carácter 7D (hex) –Emisor: en frame PPP, aplica procedimiento a 7E, 7D y caracteres de 00 a 1F –Receptor cualquier carácter precedido por 7D es complementado en su bit 6 (desde la derecha -20 hex-)- Se elimina el 7D –En el frame PPP 7E se envía como 7D-5E 7D se envía como 7D-5D Byte < 20, se envía precedido por un 7D Ejemplo –Datos: 34-01-74-7D-55-7E-65 –Frame: 7E-34-7D-21-74-7D-5E-55-7D-5E-65-7E Utilizado en transmisión asincrónica Overhead significativo Ejemplo: Framing usado por PPP en líneas asincrónicas –Delimitación de bloque: utilizando el carácter 7E (hex) –Transparencia: utilizando el carácter 7D (hex) –Emisor: en frame PPP, aplica procedimiento a 7E, 7D y caracteres de 00 a 1F –Receptor cualquier carácter precedido por 7D es complementado en su bit 6 (desde la derecha -20 hex-)- Se elimina el 7D –En el frame PPP 7E se envía como 7D-5E 7D se envía como 7D-5D Byte < 20, se envía precedido por un 7D Ejemplo –Datos: 34-01-74-7D-55-7E-65 –Frame: 7E-34-7D-21-74-7D-5E-55-7D-5E-65-7E
6 6 Framing: inserción de cero Utilizado por PPP en líneas sincrónicas Bajo overhead Eficiente (implementado en hardware) Delimitación de bloque: Flag 0 1 1 1 1 1 1 0 Transparencia: Mecanismo de inserción de cero –Emisor En modo datos, cuando detecta 5 unos seguidos, inserta cero –Receptor Cuando detecta cinco unos seguidos, si el siguiente es cero, lo elimina Más de cinco unos seguidos, significado especial (p.ej. flag) Utilizado por PPP en líneas sincrónicas Bajo overhead Eficiente (implementado en hardware) Delimitación de bloque: Flag 0 1 1 1 1 1 1 0 Transparencia: Mecanismo de inserción de cero –Emisor En modo datos, cuando detecta 5 unos seguidos, inserta cero –Receptor Cuando detecta cinco unos seguidos, si el siguiente es cero, lo elimina Más de cinco unos seguidos, significado especial (p.ej. flag) 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 0 Datos a enviar Datos en la línea
7 7 Framing: violación de código Violación de código –Aplicable en los casos en que la codificación de bits en señales contiene redundancia (p.ej. Manchester en Ethernet de 10Mbps) Violación de código –Aplicable en los casos en que la codificación de bits en señales contiene redundancia (p.ej. Manchester en Ethernet de 10Mbps) 100111No dato No dato Ejemplo: Manchester
8 8 Control de errores Objetivo: Corregir o al menos detectar los errores en el canal Aspectos –Detección –Recuperación Objetivo: Corregir o al menos detectar los errores en el canal Aspectos –Detección –Recuperación
9 9 Codificación de redundancia –Para detección –Para corrección Retransmisión Tratamiento de errores –Casos extremos Sólo redundancia: código autocorrector Sólo retransmisión: (comparación) eco en una terminal –Uso normal: Redundancia para detección y retransmisión para corrección Codificación de redundancia –Para detección –Para corrección Retransmisión Tratamiento de errores –Casos extremos Sólo redundancia: código autocorrector Sólo retransmisión: (comparación) eco en una terminal –Uso normal: Redundancia para detección y retransmisión para corrección Técnicas para control de errores INFOREDINFORED ? INFORED Errores en el canal INFORED Generacion de redundancia a partir de La información Detección o corrección de la información a partir de la redundancia FRAME FEEDBACK FRAME
10 10 Control de errores-retransmisión Mecanismo basado en un acuerdo entre el emisor y el receptor, para que el primero reenvíe ciertos frames Combinación de retransmisión y detección de errores por redundancia –Elementos necesarios Generación y chequeo de redundancia Indicación del receptor respecto a reenvío Timers en el emisor Identificación de bloques –Aspectos Cuando reenviar –Receptor envía OK –Receptor envía OK y NAKs –Vencimiento de timer Cuántos bloques reenviar –Depende del mecanismo de control de flujo utilizado Mecanismo basado en un acuerdo entre el emisor y el receptor, para que el primero reenvíe ciertos frames Combinación de retransmisión y detección de errores por redundancia –Elementos necesarios Generación y chequeo de redundancia Indicación del receptor respecto a reenvío Timers en el emisor Identificación de bloques –Aspectos Cuando reenviar –Receptor envía OK –Receptor envía OK y NAKs –Vencimiento de timer Cuántos bloques reenviar –Depende del mecanismo de control de flujo utilizado
11 11 Control de errores-retransmisión (1) Situaciones de error Bloque Ok Bloque Ok Bloque Ok Timeout Deadlock: emisor espera recibir OK Receptor espera recibir bloque Deadlock Emisor: espera OK Receptor: espera Bloque 1 Necesidad de timer en el emisor Necesidad de identificación de bloque Bloque 0 Bloque 1 Ok Timeout Bloque 0 Ok Timeout El receptor debe dar OK de bloque no esperado Duplicación de bloque: emisor envia un unico bloque Receptor toma el bloque dos veces
12 12 Control de flujo Objetivo: El emisor no debe sobrepasar la capacidad del receptor Complejidad: Nivel 2: parámetros constantes (demoras, buffers, etc.) Evaluación –Recursos utilizados (proceso, buffers) –Aprovechamiento del canal (eficiencia) Esquemas de control de flujo –Parada y espera –Ventanas Fijas Deslizantes –Retransmisión continua –Retransmisión selectiva Objetivo: El emisor no debe sobrepasar la capacidad del receptor Complejidad: Nivel 2: parámetros constantes (demoras, buffers, etc.) Evaluación –Recursos utilizados (proceso, buffers) –Aprovechamiento del canal (eficiencia) Esquemas de control de flujo –Parada y espera –Ventanas Fijas Deslizantes –Retransmisión continua –Retransmisión selectiva
13 13 Control de flujo (1) Parada y espera –El emisor envía un bloque y espera respuesta –Utilizable en vínculos bidireccionales alternativos –Simplicidad en el protocolo y uso de un único buffer –Poco eficiente –e = Tb / (Tb + Tok + 2 * dp) Parada y espera –El emisor envía un bloque y espera respuesta –Utilizable en vínculos bidireccionales alternativos –Simplicidad en el protocolo y uso de un único buffer –Poco eficiente –e = Tb / (Tb + Tok + 2 * dp) OK BLOQUE 2BLOQUE 1 dp TbTok t Emisor Receptor dp Tb :Tiempo de transmisión de un bloque Tok:Tiempo de transmisión del asentimiento dp : Demora de propagación * Significado del asentimiento: Se considera que sólo indica capacidad de procesar bloqu
14 14 Control de flujo (2) Ventana fija, permisos al fin de la ventana –Un permiso para todos los bloques de la ventana –Mayor capacidad de buffers (W: cantidad de bloques de la ventana) –Puede utilizarse en vínculos bidireccionales alternativos –Mejora la eficiencia de parada y espera –e = Tb * W / (Tb * W + Tok + 2 * dp) Ventana fija, permisos al fin de la ventana –Un permiso para todos los bloques de la ventana –Mayor capacidad de buffers (W: cantidad de bloques de la ventana) –Puede utilizarse en vínculos bidireccionales alternativos –Mejora la eficiencia de parada y espera –e = Tb * W / (Tb * W + Tok + 2 * dp) OK BLOQUE 1 dp TbTok t Emisor Receptor dp BLOQUE 2BLOQUE..BLOQUE w Tb Ventana
15 15 Control de flujo (3) Ventana deslizante –El mecanismo más utilizado –Capacidad de buffers : W (tamaño ventana) en emisor, uno o más en receptor –Permisos (acumulativos) enviados por cada bloque recibido –Debe disponerse de un vínculo bidireccional simultáneo –Se logra transmisión continua de bloques si 2*dp+Tok
16 16 Control de flujo (4) Ventana deslizante, características –Emisor y receptor numeran bloques, de 0 a 2**n -1 (# de secuencia de los bloques) –Emisor mantiene una ventana (VE: ventana de emisión) con los bloques (consecutivos) enviados y de los cuales no se ha recibido el asentimiento –Tamaño VE, desde 0 hasta el máximo permitido –Receptor mantiene una ventana (VR: ventana de recepción) que indica qué bloques (# de secuencia) serán aceptados si se reciben –Tamaño de VR, siempre el máximo predeterminado –No es necesario que VE = VR –Cada bloque mantenido en una ventana, implica asignación de recursos (buffer, timer) Ventana deslizante, características –Emisor y receptor numeran bloques, de 0 a 2**n -1 (# de secuencia de los bloques) –Emisor mantiene una ventana (VE: ventana de emisión) con los bloques (consecutivos) enviados y de los cuales no se ha recibido el asentimiento –Tamaño VE, desde 0 hasta el máximo permitido –Receptor mantiene una ventana (VR: ventana de recepción) que indica qué bloques (# de secuencia) serán aceptados si se reciben –Tamaño de VR, siempre el máximo predeterminado –No es necesario que VE = VR –Cada bloque mantenido en una ventana, implica asignación de recursos (buffer, timer)
17 17 Control de flujo (5) Ventana deslizante: procedimiento en el receptor –Recibido un bloque, si # secuencia está en VR y buffer vacío, acepta el bloque y lo almacena en su buffer –Desde el # secuencia más bajo en VR, pasar a nivel superior bloques consecutivos (se detiene si hay algún buffer vacío -bloque correspondiente no recibido-) –Por cada bloque pasado, actualiza # de OK a enviar y libera buffer –Un OK n, significa asentimiento para todos los bloques anteriores a n en VR Ventana deslizante, procedimiento en el emisor –Hay bloque para enviar Asignar # secuencia, colocar en buffer, y enviar Aumentar VE, si llega al límite, bloquea al nivel superior Arrancar timer para buffer; si se hace 0, reenviar bloque y siguientes en VE (r. continua) o sólo bloque (r. selectiva) –Recibe OK #n Da por bien recibidos bloques desde comienzo VE hasta n –Libera buffer –Para timers –Actualiza VE (límite inferior) Ventana deslizante: procedimiento en el receptor –Recibido un bloque, si # secuencia está en VR y buffer vacío, acepta el bloque y lo almacena en su buffer –Desde el # secuencia más bajo en VR, pasar a nivel superior bloques consecutivos (se detiene si hay algún buffer vacío -bloque correspondiente no recibido-) –Por cada bloque pasado, actualiza # de OK a enviar y libera buffer –Un OK n, significa asentimiento para todos los bloques anteriores a n en VR Ventana deslizante, procedimiento en el emisor –Hay bloque para enviar Asignar # secuencia, colocar en buffer, y enviar Aumentar VE, si llega al límite, bloquea al nivel superior Arrancar timer para buffer; si se hace 0, reenviar bloque y siguientes en VE (r. continua) o sólo bloque (r. selectiva) –Recibe OK #n Da por bien recibidos bloques desde comienzo VE hasta n –Libera buffer –Para timers –Actualiza VE (límite inferior)
18 18 Control de flujo (6) Procedimientos para aumentar la eficiencia en ventana deslizante Piggybacking –El Ok se envía con un frame de información en sentido contrario –Tiempo máximo luego del cual se envía el OK sólo: timer para Ok a enviar Envío de Nacks –Complementa el mecanismo de retransmisión por timeout –Cuando el receptor detecta que un bloque es mal recibido (error o bloque fuera de orden), envía Nack para el bloque Procedimientos para aumentar la eficiencia en ventana deslizante Piggybacking –El Ok se envía con un frame de información en sentido contrario –Tiempo máximo luego del cual se envía el OK sólo: timer para Ok a enviar Envío de Nacks –Complementa el mecanismo de retransmisión por timeout –Cuando el receptor detecta que un bloque es mal recibido (error o bloque fuera de orden), envía Nack para el bloque
19 19 PPP (Point to point protocol) Surge en el ambito de la IETF (RFC 1661) Objetivo: salvar limitaciones de los protocolos de nivel 2 Caracteristicas salientes: –Uso en vinculos punto a punto –Amplio campo de aplicación –Full duples, sincrónico o asincrónico –Utilizado en diferentes interfaces fisicas y en diferentes protocolos de redes fisicas Servicio provisto –Transporte de datagrams multiprotocolo entre dos equipos Surge en el ambito de la IETF (RFC 1661) Objetivo: salvar limitaciones de los protocolos de nivel 2 Caracteristicas salientes: –Uso en vinculos punto a punto –Amplio campo de aplicación –Full duples, sincrónico o asincrónico –Utilizado en diferentes interfaces fisicas y en diferentes protocolos de redes fisicas Servicio provisto –Transporte de datagrams multiprotocolo entre dos equipos
20 20 PPP: componentes y funciones Componentes –Framing : basado en HDLC –LCP (Link control protocol) Común a todos los protocolos de red Establecimiento y terminación del data link Negociacion de opciones del data link Autenticación Chequeo del data link –NCP (Network Control Protocol) Específicos para cada protocolo de red Negociacion de opciones del nivel 3 Uno por protocolo de nivel 3 Componentes –Framing : basado en HDLC –LCP (Link control protocol) Común a todos los protocolos de red Establecimiento y terminación del data link Negociacion de opciones del data link Autenticación Chequeo del data link –NCP (Network Control Protocol) Específicos para cada protocolo de red Negociacion de opciones del nivel 3 Uno por protocolo de nivel 3
21 21 Operación de PPP Pasos Establecimiento de la conexión física Protocolo LCP: establecimiento configuración Protocolo LCP: autenticación (opcional) Protocolo NCP (p.ej. IPCP):negociacion opciones protocolo de red Protocolo de red (p.ej. IP) Protocolo LCP: finalización data link Pasos Establecimiento de la conexión física Protocolo LCP: establecimiento configuración Protocolo LCP: autenticación (opcional) Protocolo NCP (p.ej. IPCP):negociacion opciones protocolo de red Protocolo de red (p.ej. IP) Protocolo LCP: finalización data link
22 22 Operación de PPP 1- Configuración y testeo del link 2- Autenticación de los usuarios (opcional) 3- Activación de uno o más protocolos de nivel 3 4- Transferencia de información de nivel 3 5- Terminación del link
23 23 Formato de frame PPP 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 02 15 Uso de frame HDLC por parte de PPP Dirección: restringida a broadcast (FF) Campo de control: 03 (unnumbered information) Long. máxima información HDLC: 1502 bytes (múltiplo de 8 bits) PROTOCOLO: Indica a que protocolo corresponde la información transportada en el frame Comienza en 0: protocolos de nivel de red (IP, IPX, etc) Comienza en 1: protocolos para negociación de otros protocolos (LCP, NCPs) Informacion PPP: contiene los datos, hasta 1500 bytes PAD: relleno en los casos necesarios Extensión de longitud: Addr FF Control 03 Informacion PPPCRC Protocolo XX Informacion ProtocoloPAD
24 24 Encapsulación de PPP Permite que PPP funcione sobre diferentes redes Completa al aspecto de transmisión Depende de cada tipo de red Se ocupa de –Fragmentación del frame PPP –Supresión de campos (CRC) –Usos particulares de algunos campos (dirección) Permite que PPP funcione sobre diferentes redes Completa al aspecto de transmisión Depende de cada tipo de red Se ocupa de –Fragmentación del frame PPP –Supresión de campos (CRC) –Usos particulares de algunos campos (dirección) PPP IPIPXOSI ATMX.25 LINEA TELEFO NICA ADSL FRAME RELAY Cómo encapsular frames del nivel superior en PPP Cómo adaptar PPP a diferentes medios de transmisión Diferentes normas
25 25 LCP: tipos de paquetes Tipos de paquetes –Configuración Configure-Request, Configure-Ack, Configure-Nak,Configure-Reject –Terminación Terminate- Request, Terminate-Ack –Mantenimiento Code-Reject, Protocol-Reject, Echo-Request, Echo-Reply, Discard- Request Tipos de paquetes –Configuración Configure-Request, Configure-Ack, Configure-Nak,Configure-Reject –Terminación Terminate- Request, Terminate-Ack –Mantenimiento Code-Reject, Protocol-Reject, Echo-Request, Echo-Reply, Discard- Request Addr FF Control 03 Informacion PPPCRC 1 12VARIABLE CODIGOIDENT.LONGITUDDATOS Protocolo LCP C021
26 26 LCP: Configuracion Formato de opciones LCP Opciones mas comunes 0 Reservado 1 Maximum-Receive-Unit 3 Authentication-Protocol 4 Quality-Protocol 5 Magic-Number 7 Protocol-Field-Compression 8 Address-and-Control-Field-Compression Addr FF Control 03 Informacion PPPCRC 1 12VARIABLE CODIGOIDENT.LONGITUDDATOS Protocolo LCP C021 TIPOLONG.DATOSTIPOLONG.DATOS...
27 27 LCP: Autenticación PPP permite autenticar uno ambos o ninguno de los interlocutores Tipo de autenticación, configurado en cada extremo y negociado en opciones LCP Protocolos utilizados –PAP (Password Authentication Protocol) Más simple Vulnerable a intrusos Autenticación sólo al comienzo –CHAP (Challenge Handshaking Autjentication Protocol) Autenticaciçon en tres intercambios Más seguro Autenticación periódica –EAP (Extensible Authentication Protocol) Permite utilizar diferentes métodos de autenticación PPP permite autenticar uno ambos o ninguno de los interlocutores Tipo de autenticación, configurado en cada extremo y negociado en opciones LCP Protocolos utilizados –PAP (Password Authentication Protocol) Más simple Vulnerable a intrusos Autenticación sólo al comienzo –CHAP (Challenge Handshaking Autjentication Protocol) Autenticaciçon en tres intercambios Más seguro Autenticación periódica –EAP (Extensible Authentication Protocol) Permite utilizar diferentes métodos de autenticación
28 28 LCP: Autenticación, CHAP Usuario Password H1 P5 HASH= MD5(P5,ID,RND) HASH1= MD5(P5,ID,RND) HASH == HASH1 ? HASH != HASH1 ? HOSTROUTER Llamada Negociación LCP, opción autenticación CHAP CHAP Challenge IDRNDR1 CHAP Response IDHASHH1 CHAP Success IDWELCOME CHAP Failure IDFAILURE User:R1 Pass:P1 User:H1 Pass:P5 Usuario Password R1 P1 H1 P5 H2 P2.... Autenticación en un solo sentido Clave almacenada en texto plano Es conveniente un servidor de autenticación No se debe reutilizar los strings de challenge
29 29 CHAP: intercambio de frames Addr FF Control 03 Informacion HDLCCRC 1 12VARIABLE CODIGOIDENT.LONGITUDDATOS Protocolo LCP C021 TIPO=3LONG=5AUTH_PROT=C223ALG=5 Control 03 Informacion HDLCCRC Addr FF CODIGO 1:req,2:reply IDENT.LONGITUD Value Size Protocolo CHAP C223 ValueName VARIABLE 1 CODIGO 3:succ,4:fail IDENT.LONGITUDMensaje Protocolo CHAP C223 VARIABLE 1 1 22 FRAMES CHAP NEGOCIACION USO DE CHAP
30 30 EAP (Extensible Authentication Protocol RFC 3748) Define un framework general para autenticación Permite especificar el método de autenticación a utilizar Como PAP y CHAP, está definido para PPP (C227) Utilizado en: –PPP –Redes cableadas (802.1X) –Redes inalambricas (802.11i )
31 31 EAP (Extensible Authentication Protocol RFC 3748) Permite el uso de un servidor de autenticación, diferente del autenticador La autenticación es en un solo sentido No provee un mecanismo para asociar la autenticación con el intercambio de datos posterior Vulnerable a ataques DoS (modificación del success)
32 32 EAP: formato de frames Control 03 Informacion PPPCRC Addr FF CODIGO 1:req,2:resp IDENT.LONGITUDType Protocolo EAP C227 Data VARIABLE 1 CODIGO 3:suc,4:fail IDENT.LONGITUD Protocolo EAP C227 1 1 22 Tipos: 1 Identity 2 Notification 3 Nak (Response only) 4 MD5-Challenge 5 One Time Password (OTP) 6 Generic Token Card (GTC) 254 Expanded Types 255 Experimental use
33 33 Intercambio de frames EAP