capa de enlace de datos

74
Redes de Computadoras Jorge Reyes CAPA DE ENLACE DE DATOS

Upload: jorge-reyes

Post on 20-Jun-2015

121 views

Category:

Engineering


4 download

DESCRIPTION

Redes de computadoras. Tema: Capa de enlace de datos Contiene algunos ejemplos y características principales de lo que es la capa de enlace da datos

TRANSCRIPT

Page 1: Capa De Enlace de Datos

Redes de Computadoras

Jorge Reyes

CAPA DEENLACE DE DATOS

Page 2: Capa De Enlace de Datos

Capa de Enlace de Datos

La Capa de Enlace de Datos es la responsable del intercambio de datos entre un host cualquiera y la red a la que está conectado, permitiendo la correcta comunicación y trabajo conjunto entre las capas superiores(Red, Transporte y Aplicación) y el medio físico de transporte de datos.

Su principal objetivo es proporcionar una comunicación eficiente, libre de errores, entre dos máquinas adyacentes, pertenecientes a la misma red/subred. Para ello se encarga de la notificación de errores, la topología de la red y el control de flujo en la transmisión de tramas.

Cuando la conexión entre dos host es punto a punto, como en el caso de que ambos host pertenezcan a la misma red/subred, la Capa de Enlace de Datos se encarga de que los datos se envíen con seguridad a través del medio físico (Capa Física) y sin errores de transmisión. En otro tipo de conexiones no puede realizar este cometido, siendo entonces las capas superiores las encargadas del mismo.

Page 3: Capa De Enlace de Datos

Capa de Enlace de Datos

Por este motivo podemos afirmar que la Capa de Enlace de Datos es la encargada de la transmisión y direccionamiento de datos entre host situados en la misma red/subred, mientras que la capa de Red (Internet) es la encargada de la transmisión y direccionamiento de datos entre host situados en redes diferentes.

La Capa de Enlace de Datos proporciona sus servicios a la Capa de Red, suministrando un tránsito de datos confiable a través de un enlace físico. Al hacerlo, la capa de enlace de datos se ocupa del direccionamiento físico (comparado con el lógico), la topología de red, el acceso a la red, la notificación de errores, formación y entrega ordenada de tramas y control de flujo. Por lo tanto, su principal misión es convertir el medio de transmisión en un medio libre de errores de cualquier tipo.

Page 4: Capa De Enlace de Datos

Principales Funciones

Establece los medios necesarios para una comunicación confiable y eficiente entre dos máquinas en red.

Agrega una secuencia especial de bits al principio y al final del flujo inicial de bits de los paquetes, estructurando este flujo bajo un formato predefinido llamado trama o marco, que suele ser de unos cientos de bytes. Los sucesivos marcos forman trenes de bits, que serán entregados a la Capa Física para su transmisión.

Sincroniza el envío de las tramas, transfiéndolas de una forma confiable libre de errores. Para detectar y controlar los errores se añaden bits de paridad, se usan CRC (Códigos Cíclicos Redundantes) y envío de acuses de recibo positivos y negativos, y para evitar tramas repetidas se usan números de secuencia en ellas.

Envía los paquetes de nodo a nodo, ya sea usando un circuito virtual o como datagramas.

Page 5: Capa De Enlace de Datos

Principales Funciones

Envía los paquetes de nodo a nodo, ya sea usando un circuito virtual o como datagramas.

Controla la congestión de la red.

Regula la velocidad de tráfico de datos.

Controla el flujo de tramas mediante protocolos que prohiben que el remitente envíe tramas sin la autorización explícita del receptor, sincronizando así su emisión y recepción.

Se encarga de la de secuencia, de enlace lógico y de acceso al medio (soportes físicos de la red).

Page 6: Capa De Enlace de Datos

Subcapas de Enlace de Datos

En la actual tecnología TCP/IP, el estándar más aceptado para la Capa de Enlace de Datos es el definido por la IEE, que diferencia dos subcapas independientes:

Page 7: Capa De Enlace de Datos

Subcapa de Enlace Logico (LLC)

Subcapa de Enlace Lógico (LLC), que permite que parte de la capa de enlace de datos funcione independientemente de las tecnologías existentes. Esta subcapa proporciona versatilidad en los servicios de los protocolos de la capa de red que está sobre ella, mientras se comunica de forma efectiva con las diversas tecnologías que están por debajo. El LLC, como subcapa, participa en el proceso de encapsulamiento.

La Subcapa de Enlace Lógico transporta los datos de protocolo de la red, un paquete IP, y agrega más información de control para ayudar a entregar ese paquete IP en el destino, agregando dos componentes de direccionamiento:el Punto de Acceso al Servicio Destino (DSAP) y el Punto de Acceso al Servicio Fuente (SSAP). Luego este paquete IP reempaquetado viaja hacia la subcapa MAC para que la tecnología específica requerida le adicione datos y lo encapsule.

La subcapa LLC de la Capa de Enlace de Datos administra la comunicación entre los dispositivos a través de un solo enlace a una red. LLC se define en la especificación IEEE 802.2 y soporta tanto servicios orientados a conexión como servicios no orientados a conexión, utilizados por los protocolos de las capas superiores. IEEE 802.2 define una serie de campos en las tramas de la capa de enlace de datos que permiten que múltiples protocolos de las capas superiores compartan un solo enlace de datos físico.

Page 8: Capa De Enlace de Datos

Subcapa de Control de acceso al medio (MAC)

Subcapa de Control de acceso al medio (MAC), que se refiere a los protocolos que sigue el host para acceder a los medios físicos, fijando así cuál de los computadores transmitirá datos binarios en un grupo en el que todos los computadores están intentando transmitir al mismo tiempo.

Control de acceso al medio

Una red es un entorno en el que diferentes host y dispositivos comparten un medio de transmisión común. Es necesario por ello establecer técnicas que permitan definir qué host está autorizado para transmitir por el medio común en cada momento. Esto se consigue por medio de una serie de protocolos conocidos con el nombre de Control de Acceso al Medio (protocolos MAC).

Según la forma de acceso al medio, los protocolos MAC pueden ser:

Determinísticos: en los que cada host espera su turno para transmitir. Un ejemplo de este tipo de protocolos determinísticos es Token Ring, en el que por la red circula una especie de paquete especial de datos, denominado token, que da derecho al host que lo posée a transmitir datos, mientras que los demás deben esperar a que quede el token libre.

No determinísticos: que se basan en el sistema de "escuchar y transmitir". Un ejemplo de este tipo de protocolos es el usado en las LAN Ethernet, en las que cada host "escucha" el medio para ver cuando no hay ningún host transmitiendo, momento en el que transmite sus datos.

Page 9: Capa De Enlace de Datos

Tarjetas de red

Para realizar todas estas funciones, la Capa de Enlace de Datos se basa en un componente físico fundamental, la tarteja de red.

Tarjetas de red.-

El componente físico fundamental de esta capa es la trajeta de red, también denominada NIC, situada normalmente en un PC en la parte trasera del mismo, encontrándose conectada al medio de transmisión mediante conectores Jack RJ-45.

Page 10: Capa De Enlace de Datos

Tarjetas de red

Cada tarjeta de red posée un número identificador único, grabado en la memoria ROM de la misma por el fabricante, que se denomina dirección física o dirección de Control de Acceso al Medio, MAC , que identifica de forma unívoca al ordenador que la posée. Cuando se arranca una máquina, la dirección MAC se copia en la memoria RAM, para tenerla siempre a mano.

La dirección física está formada por 32 bits, que se representan por medio de 6 bytes hexadecimales, del tipo 00-00-0D-1A-12-35, de los cuales los 3 primeros (24 bits), denominados Identificador Organicional Unico (UOI) son asignados al fabricante concreto, y los 3 últimos (24 bits) los asigna éste secuencialmente.

No existen dos tarjetas de red con la misma dirección MAC, por lo que la misma se puede usar (y así se hace) para identificar en una red a la máquina en la que está instalada.

Page 11: Capa De Enlace de Datos

Tarjetas de red

El grán problema de estas direcciones es que están conformadas como un sistema de direccionamiento plano, sin ninguna jerarquía, por lo que la tarjeta de número 00-00-0D-1A-12-35 no nos dice nada ni de la red en la que se encuentra la máquina que la tiene instalada, ni tiene relación alguna con la ubicación de la máquina de número de tarjeta 00-00-0D-1A-12-36. Digamos que es un sistema de identificación análogo al del D.N.I. español, en el que el número del mismo no dice nada de la persona poseedora del documento.

Creación de tramas

Una vez que los datos procedentes de las capas superiores son enpaquetados en datagramas en la Capa de Red son transferidos a la Capa de Enlace de Datos para su transmisión al medio físico.

Para que estos datos se puedan enviar de forma correcta hasta el destinatario de los mismos hay que darles un formato adecuado para su transmisión por los medios físicos, incluyéndoles además algún mecanismo de identificación de ambos host (emisor y receptor) para que la transferencia quede perfectamente identificada. Esto lo consigue la Capa de Enlace de Datos disponiendo los datagramas en forma de tramas.

Page 12: Capa De Enlace de Datos

Creación de Tramas

Una trama está formada por un campo central de datos, en el que se coloca cada datagrama recibido de la Capa de Red, y otra serie de campos con utilidad variada. En general, el aspecto de una trama es el que sigue:

inicio de trama

direcciónlongitud/

tipodatos FCS

fin de trama

Page 13: Capa De Enlace de Datos

Creación de Tramas

Campo de inicio de trama: secuencia de bytes de inicio y señalización, que indica a las demás máquinas en red que lo que viene a continuación es una trama.

Campo de dirección: secuencia de 12 bytes que contiene información para el direccionamiento físico de la trama, como la dirección MAC del host emisor y la dirección MAC del host destinatario de la trama.

Campo longitud/tipo: en algunas tecnologías de red existe un campo longitud, que especifica la longitud exacta de la trama, mientras que en otros casos aquí va un campo tipo, que indica qué protocolo de las capas superiores es el que realiza la petición de envío de los datos. También existen tecnologías de red que no usan este campo. De existir, ocupa 2 bytes.

Page 14: Capa De Enlace de Datos

Creación de Tramas

Campo de datos: campo de 64 a 1500 bytes, en el que va el paquete de datos a enviar. Este paquete se compone de dos partes fundamentales: el mensaje que se deséa enviar y los bytes encapsulados que se deséa que lleguen al host destino. Además, se añaden a este campo unos bytes adicionales, denominados bytes de relleno, con objeto que que las tramas tengan una longitud mínima determinada, a fin de facilitar la temporización.Campo FCS: o campo de secuencia de verificación de trama, de 4 bytes, que contiene un número calculado mediante los datos de la trama, usado para el control de errores en la transmisión. Cuando la trama llega al host destino, éste vuelve a calcular el número contenido en el campo. Si coinciden, da la trama por válida; en caso contrario, la rechaza. Generalmente se usan el método Checksum (suma de bits 1), el de paridad (números de bits 1 par o impar) y el Control de Redundancia Cíclico (basado en polinomios construidos a partir de los bits de la trama) para este fin.Campo de fin de trama: aunque mediante los campos inicio de trama y longitud se puede determinar con precisión dónde acaba una trama, a veces se incluye en este campo una secuencia especial de bytes que indican a los host que escuchan en red el lugar donde acaba la trama.

Page 15: Capa De Enlace de Datos

Direccionamiento Físico

Como hemos visto, la Capa de Enlace de Datos se encarga de determinar qué ordenadores se están comunicando entre sí, cuándo comienza y termina esta comunicación, qué host tiene el turno para transmitir y qué errores se han producido en la transmisión.

Ahora bien ¿cómo se produce esta comunicación entre dos host de una misma red?. La respuesta es mediante el direccionamiento físico, basado en los números de las trajetas de red de ambos host (direcciones físicas).

Cuando el host A deséa enviar una trama al host B, introduce en el campo "dirección" de la trama tanto su dirección física como la del host destino y, una vez que queda el medio libre, las transmite al mismo. Todos los host conectados a la misma red tienen acceso a la trama. La Capa de Acceso a la Red de cada host analiza las tramas que circulan por la red y compara la dirección física de destino de las mismas con la suya propia. Si coinciden, toma la trama y la pasa a las capas superiores; si no, la rechaza.

De esta forma, solo el host destino recoge la trama a él dirigida, aunque todos los host de la misma red tienen acceso a todas las tramas que circulan por la misma.

Page 16: Capa De Enlace de Datos

Protocolo ARP

Una vez que un paquete llega a una red local mediante el ruteo IP, el encaminamiento necesario para la entrega del mismo al host destino se debe realizar forzosamente mediante la dirección MAC del mismo (número de la tarjeta de red), por lo que hace falta algún mecanismo capaz de transformar la dirección IP que figura como destino en el paquete en la dirección MAC equivalente, es decir, de obtener la relación dirección lógica-dirección física. Esto sucede así porque las direcciones Ethernet y las direcciones IP son dos números distintos que no guardan ninguna relación entre ellos.

De esta labor se encarga el protocolo ARP (Protocolo de Resolución de Direcciones), que en las LAN equipara direcciones IP con direcciones Ethernet (de 48 bits) de forma dinámica, evitando así el uso de tablas de conversión. Mediante este protocolo una máquina determinada (generalmente un router de entrada a la red o un swicht) puede hacer un broadcast mandando un mensaje, denominado petición ARP, a todas las demás máquinas de su red para preguntar qué dirección local pertenece a alguna dirección IP, siendo respondido por la máquina buscada mediante un mensaje de respuesta ARP, en el que le envía su dirección Ethernet. Una vez que la máquina peticionaria tiene este dato envía los paquetes al host destino usando la direción física obtenida.

Page 17: Capa De Enlace de Datos

Protocolo ARP

El protocolo ARP permite pués que un host encuentre la dirección física de otro dentro de la misma red con sólo proporcionar la dirección IP de su objetivo. La información así obtenida se guarda luego en una tabla ARP de orígenes y destinos, de tal forma que en los próximos envíos al mismo destinatario no será ya necesario realizar nuevas peticiones ARP, pués su dirección MAC es conocida.

Page 18: Capa De Enlace de Datos

Protocolo ARP

ARP es pués un protocolo de bajo nivel que oculta el direccionamiento de la red en las capas inferiores, permitiendo asignar al administrador de la red direcciones IP a los host pertenecientes a una misma red física.

Los mensajes de petición ARP (ARP request) contienen las direcciones IP y Ethernet del host que solicita la información, junto con la dirección IP de la máquina destino. Los mensajes de respuesta ARP (ARP reply) son creados por el ordenador propietario de la IP buscada, que rellena el campo vacío con su dirección Ethernet y lo envía directamente al host que cursó la solicitud.

Cuando el host origen recibe la respuesta ARP y conoce la dirección física del host destino introduce esos datos en una tabla especial alojada en su caché, y lo mismo va haciendo con cada una de las parejas dirección IP-dirección física que utiliza en sus diferentes comunicaciones con otros host. Y no sólo eso; como las peticiones ARP se realizan por multidifusión, cada vez que pasa ante él un mensaje de respuesta ARP extráe del mismo la pareja IP-MAC y la incorpora a su tabla. De esta forma se va construyendo la tabla dinámicamente.

Page 19: Capa De Enlace de Datos

Protocolo ARP

En sucesivas comunicaciones entre ambos host ya no será preciso realizar una nueva petición ARP, ya que ambos host saben las direcciones del otro.

Estas tablas se denominan tablas ARP o caché ARP, y son fundamentales para el funcionamiento y rendimiento óptimo de una red, pués reducen el tráfico en la misma al evitar preguntas ARP innecesarias.

tabla ARPdirección IP dirección física212.5.26.1 26-5A-C5-42-FD-11212.5.26.2 2C-2A-48-A6-36-00212.5.26.3 5D-F1-80-02-A7-93

Page 20: Capa De Enlace de Datos

Protocolo ARP

Las tablas ARP son necesarias para poder dirigir tramas en una red, ya que las direcciones IP y las direcciones de las tarjetas de red son independientes, y no tienen ninguna equivalencia entre ellas, siendo necesario entonces algún método para poder obtener la equivalencia entre ambas.

De forma general, cuando una máquina desea comunicarse con otra a partir de su IP, lo primero que hace es mirar en su tabla ARP si tiene la dirección física asociada a esa dirección lógica. Si es así, envía directamente los paquetes al host destino. Si no encuentra la entrada adecuada en la tabla, lanza una petición ARP multidifusión a todos los host de su red, hasta encontrar respuesta, momento en el que incorpora la nueva entrada en su tabla ARP y envía los paquetes al destino.

Si la máquina destino no existe, no habrá respuesta ARP alguna. En estos casos, el protocolo IP de la máquina origen descartará las tramas dirigidas a esa dirección IP.

Page 21: Capa De Enlace de Datos

Protocolo ARP

Cuando un host realiza una petición ARP y es contestado, o cuando recibe una petición o trama, actualiza su tabla ARP con las direcciones obtenidas. Estas entradas en la tabla tienen un tiempo de vida limitado, con objeto de no sobrecargar la tabla con datos innecesarios, que suele ser de unos 20 minutos.

Si queréis ver la tabla ARP de vuestra máquina, tan sólo tenéis que abrir la consola del sistema y escribir el comando "arp -a". Si no encontráis entradas, abrid el navegador y hacer una petición HTTP a cualquier página web. Si volvéis a introducir en la consola el camando os aparecerá la entrada ARP del router o proxy que uséis para salir a Internet. En mi caso he obtenido la siguiente entrada:

Page 22: Capa De Enlace de Datos

Protocolo ARP

ARP Proxi.- En muchas redes, para evitar el proceso de peticiones ARP sin respuesta, se usa el protocolo denominado ARP Proxi, en el que el router de salida recoge todas las peticiones ARP que circulan por la red y observa si la IP destino pertenece a un host de la misma o a un host de otra red. En el primer caso deja pasar la petición, para que séa respondida por la máquina destino, pero en el segundo caso es él el que responde directamente a la máquina peticionaria con su propia dirección física, para posteriormente enrutar las tramas hacia la red destino.

RARP (ARP por Réplica).- Otro protocolo relacionado con ARP es el RARP, que permite que una máquina que acaba de arrancar o sin disco pueda encontrar su dirección IP desde un servidor. Para ello utiliza el direccionamiento físico de red, proporcionando la dirección hardware física (MAC) de la máquina de destino para identificar de manera única el procesador, transmitiendo por difusión la solicitud RARP. Una vez que la máquina obtiene su dirección IP la guarda en memoria, y no vuelve e usar RARP hasta que no se inicia de nuevo.

Page 23: Capa De Enlace de Datos

Protocolo ARP

Seguridad y ARP.- Al igual que ocurre con casi todos los protocolos de comunicaciones, y en concreto TCP/IP, el protocolo ARP puede ser usado por un posible atacante para objetivos no deseados.

Una de las técnicas más usadas en este sentido es la conocida como ARP Spoofing que ,como su nombre indica, consiste el el uso del protocolo para hacerse pasar por quién no se es en realidad, es decir, para suplantar a otra persona o máquina.

Básicamente consiste en enviar a la máquina objetivo del ataque un paquete con la dirección IP que queremos suplantar pero con la dirección física de nuestra tarjeta de red. En este caso, la máquina objetivo guardará la entrada ARP en su tabla caché, y a partir de ese momento todos los paquetes que envíe a la dirección IP suplantada llegarán a la máquina del atacante, y no a su legítimo destinatario. Este ataque dura aproximadamente unos 20 minutos (varía según el sistema operativo de la máquina atacada), que es el tiempo que se guardan las entradas en las tablas ARP.

Page 24: Capa De Enlace de Datos

Protocolo ARP

Snifers.- Una tarjeta de red en estas condiciones se dice que está "configurada en modo promiscuo" (promiscous mode). Existen tarjetas que ya vienen configuradas en este modo, pero lo normal es que la promiscuidad de una trajeta se implemente por software, usando unos programas especiales conocidos como snifers. La misión de un snifer es pués capturar todas las tramas que pasan a través de una tarjeta de red.

Generalmente los snifers se configuran para capturar tan solo las tramas (paquetes) dirigidos a unos puertos determinados (que suelen ser el 21, el 23, el 110 y el 143), ya que si no la carga que soportarían sería excesiva. Además, algunos de ellos están diseñados para "grabar" estas tramas durante un cierto periodo de tiempo (unos 30-60 segundos) y almacenarlos luego en un fichero log, que puede ser estudiado posteriormente con toda tranquilidad por el atacante.

Page 25: Capa De Enlace de Datos

Protocolo ARP

Los snifers son muy peligrosos en una red, ya que muchas de las claves introducidas por los usuarios viajen sin encriptar y sin ningún otro tipo de protección, por lo que el atacante puede hacerse con claves de todo tipo, desde claves de usuario de acceso a Telnet hasta claves de Administrador.

Así, el uso de snifers puede ser una herramienta de grán ayuda para un administrador de red, ya que le permite monitorizar las tramas que están circulando por la misma, los mensajes de información y error que se generan, la actividad de la red. Existen aplicaciones muy buenas para esta labor, como Lan-Inspector (de VisLogic).

Page 26: Capa De Enlace de Datos

Capa físicaCapa física

Modelo de Referencia

Capa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datosCapa de enlace de datos

Capa de redCapa de red

Capa de transporteCapa de transporte

Capa de aplicaciónCapa de aplicación

Page 27: Capa De Enlace de Datos

Servicios de la Capa de Enlace de Datos

Transferencia de datos entre las capas de red de las máquinas origen y destino.

Tipos de servicio Servicio sin acuse ni conexión.

Servicio con acuse sin conexión.

Servicio con acuse con conexión.

Page 28: Capa De Enlace de Datos

Comunicación en laCapa de Enlace de Datos

Capa físicaCapa física

Capa de enlace de datosCapa de enlace de datos

Capa de redCapa de red

Capa de transporteCapa de transporte

Capa de aplicaciónCapa de aplicación

Capa físicaCapa física

Capa de enlace de datosCapa de enlace de datos

Capa de redCapa de red

Capa de transporteCapa de transporte

Capa de aplicaciónCapa de aplicación

Virtual

Real

Page 29: Capa De Enlace de Datos

Framing

La capa de enlace de datos usa la capa física como un “tubo” de bits.

Para detectar y corregir errores la capa de enlace de datos divide los datos en frames, agregando información tal como: Suma de verificación (CRC). Indicadores de inicio y fin con relleno. Conteo de caracteres.

Page 30: Capa De Enlace de Datos

Control de Errores

Solo es posible en un servicio con acuse de recibo.

Por cada frame enviado se espera uno de retorno que indique si la transmisión fue exitosa o no.

También se usa un temporizador para detectar frames de control perdidos.

Page 31: Capa De Enlace de Datos

Control de Flujo

Consiste en regular la velocidad de transmisión de datos de forma de no saturar al receptor.

Los protocolos de esta capa contienen reglas precisas que indican cuando es posible enviar un frame.

Con frecuencia el receptor autoriza implícita o explícitamente la transmisión.

Page 32: Capa De Enlace de Datos

Suma de Verificación (CRC)

Trata cadenas de bits como polinomios con coeficientes 0 y 1

Se implementa en hardware.

Algunos polinomios de uso común son: CRC-12 =

x12+x11+x3+x2+x+1 CRC-16 = x16+x15+x2+1 CRC-CCITT = x16+x12+x5+1

División módulo 2

Coeficientes del G(x) son 0 ó 1

Mensaje a transmitir M(x)

Seleccionar polinomiogenerador G(x) de grado r

R(x) := Residuo(xrM(x) / G(x))

T(x) := xrM(x) xor R(x)

Transmitir T(x)

Equivale a una resta módulo 2.T(x) es divisible por G(x)

Page 33: Capa De Enlace de Datos

Suma de Verificación (CRC)

CRC-12 se usa con caracteres de 6 bits de longitud, CRC-16 y CRC-CCITT con caracteres de 8 bits.

CRC-16 y CRC-CCITT detectan los siguientes errores: Todos los errores de 1 o dos bits. Todos los errores con un número impar

de bits. Todos los errores de “ráfaga” de 16 bits

o menos. 99.997% de la ráfagas de errores de 17

bits. 99.998% de las ráfagas de 18 bits o

más.

Page 34: Capa De Enlace de Datos

Ejemplos de Protocolos de laCapa de Enlace de Datos

Protocolo unidireccional para un canal ruidoso.

Protocolos de ventana deslizante.

Protocolo HDLC.

Protocolos usados en Internet SLIP

PPP

Page 35: Capa De Enlace de Datos

Protocolo PAR

Positive Acknowledgment with Retransmission

Unidireccional Tolera errores y

paquetes perdidos

1

2

2

1

2

2

3

3

3

3

Transmisor Receptor

Page 36: Capa De Enlace de Datos

Estructuras de Datos

#define MAX_PKT 4 /* packet size in bytes */typedef enum {false, true} boolean; /* boolean type */typedef unsigned int seq_nr; /* sequence or ack numbers */typedef struct { unsigned char data[MAX_PKT];} packet; /* packet definition */typedef enum {data, ack, nak} frame_kind; /* frame_kind definition */typedef enum { frame_arrival, cksum_err, timeout, network_layer_ready, ack_timeout /* kind of events */} event_type;

typedef struct { /* frames are transported in this layer */ frame_kind kind; /* what kind of a frame is it? */ seq_nr seq; /* sequence number */ seq_nr ack; /* acknowledgement number */ packet info; /* the network layer packet */} frame;

Page 37: Capa De Enlace de Datos

Protocolo PAR (transmisor)

#define MAX_SEQ 1 /* must be 1 for protocol 3 */void sender3(void){ seq_nr next_frame_to_send; /* seq number of next outgoing frame */ frame s; /* scratch variable */ packet buffer; /* buffer for an outbound packet */ event_type event;

next_frame_to_send = 0; /* initialize outbound sequence numbers */ from_network_layer(&buffer); /* fetch first packet */ while (true) { s.info = buffer; /* construct a frame for transmission */ s.seq = next_frame_to_send; /* insert sequence number in frame */ to_physical_layer(&s); /* send it on its way */ start_timer(s.seq); /* if answer takes too long, time out */ wait_for_event(&event); /* frame_arrival, cksum_err, timeout */ if (event == frame_arrival) { from_physical_layer(&s); /* get the acknowledgement */ if (s.ack == next_frame_to_send){ from_network_layer(&buffer); /* get the next one to send */ inc(next_frame_to_send); /* invert next_frame_to_send */}} } } }

Page 38: Capa De Enlace de Datos

void receiver3(void){ seq_nr frame_expected; frame r, s; event_type event;

frame_expected = 0; while (true) { wait_for_event(&event); /* frame_arrival or cksum_err */ if (event == frame_arrival) { /* A valid frame has arrived. */ from_physical_layer(&r); /* go get the newly arrived frame */ if (r.seq == frame_expected) { /* Frame received. */ to_network_layer(&r.info); /* send data to the network layer */ inc(frame_expected); /* expect the other sequence nr */ } s.ack = 1 - frame_expected; /* tell which frame is being acked */ to_physical_layer(&s); /* only the ack field is use */ } }}

Protocolo PAR (receptor)

Page 39: Capa De Enlace de Datos

Protocolo deVentana Deslizante

Es un protocolo bidireccional. Se puede enviar varios paquetes antes de

recibir acuse de recibo. Los acuses de recibo indican el número de

secuencia del paquete recibido Se trata de enviar los acuses de recibo con los

paquetes que viajan en sentido contrario.

Page 40: Capa De Enlace de Datos

Protocolo deVentana Deslizante

#define MAX_SEQ 1 /* must be 1 for protocol 4 */typedef enum {frame_arrival, cksum_err, timeout} event_type;#include "protocol.h"

void protocol4 (void){ seq_nr next_frame_to_send; /* 0 or 1 only */ seq_nr frame_expected; /* 0 or 1 only */ frame r, s; /* scratch variables */ packet buffer; /* current packet being sent */ event_type event;

next_frame_to_send = 0; /* next frame on the outbound stream */ frame_expected = 0; /* frame arriving frame expected */ from_network_layer(&buffer); /* get packet from the network layer */ s.info = buffer; /* prepare to send the initial frame */ s.seq = next_frame_to_send; /* insert sequence number into frame */ s.ack = 1 - frame_expected; /* piggybacked ack */ to_physical_layer(&s); /* transmit the frame */ start_timer(s.seq); /* start the timer running */

Page 41: Capa De Enlace de Datos

Protocolo deVentana Deslizante

while (true) { wait_for_event(&event); if (event == frame_arrival) { /* a frame has arrived undamaged. */ from_physical_layer(&r); /* go get it */ if (r.seq == frame_expected) { /* Handle inbound frame stream. */ to_network_layer(&r.info); /* pass packet to network layer */ inc(frame_expected); /* invert expected sequence number */ } if (r.ack == next_frame_to_send) { /* handle outbound frame stream. */ from_network_layer(&buffer); /* get packet from network layer */ inc(next_frame_to_send); /* invert sender's sequence number */ } } s.info = buffer; /* construct outbound frame */ s.seq = next_frame_to_send; /* insert sequence number */ s.ack = 1 - frame_expected; /* seq number of last received frame */ to_physical_layer(&s); /* transmit a frame */ start_timer(s.seq); /* start the timer running */ }}

Page 42: Capa De Enlace de Datos

Otros Protocolos de Ventana Deslizante

Page 43: Capa De Enlace de Datos

Protocolo HDLC

High-level Data Link Control SDLC(IBM) ADCCP(ANSI)

HDLC(ISO) LAP(CCITT) LAPB(CCITT) Estos protocolos difieren solo en

aspectos menores. Estan orientados a bits y usan relleno para lograr transparencia.

Muy utilizados01111110Dirección Control Datos CRC 01111110

88 88 88 881616>0>0BitsBits

Page 44: Capa De Enlace de Datos

Serial Line IP Protocol (SLIP)

Fue desarrollado en 1984 para conectar estaciones de trabajo al Internet usando un modem.

Está descrito en RFC 1055 y 1144 Envia paquetes IP agregando 0xC0

al final. Si 0xC0 aparece en los datos se precede de 0xDB.

Las últimas versiónes comprimen los encabezdos TCP e IP eliminando campos repetidos en paquetes consecutivos.

Page 45: Capa De Enlace de Datos

Serial Line IP Protocol (SLIP)

Slip aunque ampliamente usado tiene algunas desventajas: No efectua corrección y detección de

errores. Solo funciona con IP. Carece de mecanismos para establer la

conexión. Cada host debe conocer de antemano la dirección IP del otro.

Carece de mecanismos de autentificación.

Existen versiones incompatibles entre sí.

Page 46: Capa De Enlace de Datos

Point to Point Protocol (PPP)

Desarrollado por la IETF. Descrito en RFCs 1661, 1662, 1663. PPP incluye:

Delimitación unambigüa de inicio y fin de frames.

Control de errores. Protocolo de control de enlaces (LCP). Mecanismo para negociar opciones de la

capa de red mediante un protocolo (NCP) distinto para cada tipo de red.

Page 47: Capa De Enlace de Datos

Point to Point Protocol (PPP)

011111101111111100000011 Datos CRC 01111110

11 11 11 881616VariableVariableBytesBytes

Protocolo

1 o 21 o 2

LCP, NCP, IP, IPX, etc.LCP, NCP, IP, IPX, etc.

PPP se parece a PPP se parece a HDLC pero es HDLC pero es orientado a orientado a bytesbytes..

PPP se usa tanto PPP se usa tanto en enlaces en enlaces dedicados como dedicados como en en enlaces en en enlaces discados.discados.

Page 48: Capa De Enlace de Datos

La Capa de Enlace de Datos en ATM

En ATM corresponde a la subcapa TC (Transmition Convergence) de la capa física.

Calcula la suma de verificación HEC usando el polinomio x8 + x2 + x + 1.

Genera celdas de “relleno” cuando el medio físico es síncrono (e.g. SONET).

Convierte la corriente de celdas proveniente de la capa ATM en una corriente de bits y viceversa.

VPI VCI PTI CLP HEC Datos

1212 1616 33 3843848811BitsBits

Page 49: Capa De Enlace de Datos

Capa de Enlace de DatosSUBCAPA DE ACESO AL MEDIO

Page 50: Capa De Enlace de Datos

La Subcapa de Acceso al Medio

Contiene protocolos para gestionar el acceso a redes de medio compartido.

A menudo se identifica por la sigla, en ingles, MAC (Medium Access Control ).

Esta subcapa es de especial importancia en redes de area local, en algunos tipos de redes satelitales y en redes de radiodifusión.

Page 51: Capa De Enlace de Datos

Medio Compartido

Recibido

No es para mí

Page 52: Capa De Enlace de Datos

Reparto del Canal

Reparto estático: Si el número de usuarios es pequeño

y fijo se puede usar TDM o FDM Reparto dinámico (supuestos):

Probabilidad (paquete en t) = t Canal único. Colisión. Tiempo continuo o discreto. Con o sin sin detección de portadora.

Page 53: Capa De Enlace de Datos

Protocolos de la Subcapa de Acceso al Medio (MAC)

ALOHA CSMA (Carrier Sense Multiple Access) CSMA/CD (CSMA with Collision Detect) WDMA (Wavelength Division MA) MACA (MA with Collision Avoidance) Radio celular (GSM, CDPD y CDMA) IEEE 802.X FDDI (Fiber Distributed Data Interfase)

Page 54: Capa De Enlace de Datos

ALOHA

Desarrolla a pricipios de los 70’s en la Universidad de Hawaii.

Existen dos versiones de tiempo continuo y de tiempo discreto.

Cada estación transmite cuando lo necesita. Si se detecta una colisión cada transmisor espera un tiempo aleatorio antes de retransmitir.

La eficiencia máxima de ALOHA continuo es 18.4%, la de ALOHA discreto es 36.8%.

Page 55: Capa De Enlace de Datos

Colisión

Retransmitir

Retransmitir

Colisión

Page 56: Capa De Enlace de Datos

CSMA

Similar a ALOHA pero las estaciones escuchan el canal para detectar si esta libre antes de iniciar la transmisión.

En CSMA peristente-p una estación transmite inmediatamente con probabilidad p al encontrar el canal libre 0<p<=1.

En CSMA no persistente las estaciones solo monitorean el canal a intervalos discretos.

Page 57: Capa De Enlace de Datos

Comparación de ALOHA y CSMA

Page 58: Capa De Enlace de Datos

CSMA/CD

Mejora al CSMA interrumpiendo las transmisiones tan pronto como se detecta una colisión.

Se usa ampliamente en redes locales, particularmente en IEEE 802.3, también conocido como Ethernet.

El rendimiento de todos estos protocolos depende del retardo de las señales en el canal.

Page 59: Capa De Enlace de Datos

Protocolos Sin Colisiones

En el protocolo de mapa de bits, el uso del canal se divide en períodos de transmisión y periodos de contención.

Durante el período de contención cada estación que desea transmitr envia un bit 1 en su ranura de tiempo luego las estaciones transmiten sus datos en el mismo orden.

Page 60: Capa De Enlace de Datos

Protocolos Sin Colisiones

En el protocolo conteo descendente, todas las estaciones transmiten su dirección simultáneamente.

Cuando detectan un bit 1 que no emitieron ceden el turno de transmisión.

La estación con la direccion mas alta transmite.

Page 61: Capa De Enlace de Datos

Protocolos Sin Colisiones

En los protocolos de token (testigo), un paquete especial circula por el medio compartido de estación a estación.

Solo la estación que tiene el testigo puede transmitir.

Estos protocolos garantizan un tiempo de viaje determinístico.

Ejemplos de estos protocolos son IEEE 802.4, IEEE 802.5 y FDDI

Page 62: Capa De Enlace de Datos

Protocolos de Token Ring

Page 63: Capa De Enlace de Datos

Protocolos de Contención Limitada

Pretenden combinar las mejores características de los protocolos con y sin colisiones.

Dividen a las estaciones dinámicamente en grupos. Cada grupo esta libre de colisiones, solo existen colisiones entre grupos.

Ejemplo: el protocolo de recorrido de arbol adaptable.

Page 64: Capa De Enlace de Datos

Protocolos con División del Canal

Se divide el canal de transmisión en un subcanal de control y multiples canales para datos mediante FDM o TDM.

Las estaciones utilizan el canal de control para acordar un canal de datos disponible por el cual transmitir.

Un ejemplo de este protocolo es WDMA (Wavelength Division Multiple Access).

Page 65: Capa De Enlace de Datos

Protocolos paraLANs Inalámbricas

En una red inalámbrica, las estaciones no pueden escuchar a todas las demás.

Los protocolos CSMA no son adecuados ya Los protocolos CSMA no son adecuados ya que solo puede sensar la portadora en su que solo puede sensar la portadora en su entorno, no en el entorno del receptor.entorno, no en el entorno del receptor.

El protocolo MACA (El protocolo MACA (Multiple Access with Multiple Access with Collisión AvoidanceCollisión Avoidance) reduce el problema ) reduce el problema mediante el intercambio de paquetes mediante el intercambio de paquetes cortos RTS y CTS.cortos RTS y CTS.

Page 66: Capa De Enlace de Datos

Radio Celular Digital

GSM (Global System for Mobile communications) es el estandar europeo y es totalmente digital.

GSM usa 124 canales bidireccionales por FDM en la banda de 890 a 960 MHz.

Cada canal se divide en 8 ranuras TDM para un total de 992 canales, de los cuales se usan unos 200 en cada celda.

Un canal puede transmitir voz o datos a 9600 bits por segundo.

Page 67: Capa De Enlace de Datos

CDPD:Cellular Digital Packet Data

Funciona sobre los sistemas de telefonía celular existente (AMPS).

No se establece una conexión; cuando se desea enviar un paquete se toma temporalmente cualquier canal disponible. Es similar a CSMA.

CDPD sigue estrechamente el modelo OSI. La capa de enlace de datos usa DSMA

(Digital Sense MA). Cada estación movil escucha un canal y si esta ocupado salta un número aleatorio de canales.

Transmite a una tasa bruta de 19.2 Kbps (~9.6 Kbps neto).

Page 68: Capa De Enlace de Datos

CDMA:Code División Multiple Access

A cada estación se asigna un código (chip). Los chips debe ser ortogonales.

Todas las estaciones transmiten cuando lo requieren. Las señales se suman.

Las estaciones envian su código para indicar un bit 1 y el complemento de su código para indicar un bit 0.

Las señales se separan usando los códigos de las estaciones.

Page 69: Capa De Enlace de Datos

IEEE 802.x

802.1802.1 Introducción a los estandares. Introducción a los estandares. Primitivas.Primitivas.

802.2802.2 Parte superior de la capa de enlace Parte superior de la capa de enlace de datos, LLC (de datos, LLC (Logical Link ControlLogical Link Control))

802.3802.3 EthernetEthernet

802.4802.4 Token BusToken Bus

802.5802.5 Token RingToken Ring

802.6802.6 DQDB (DQDB (Distributed Queue Dual BusDistributed Queue Dual Bus))

Page 70: Capa De Enlace de Datos

IEEE 802.3

Usa CSMA/CD. Para determinar el tiempo de espera en caso de

colisión, se usa un algoritmo de “retoceso exponencial binario”: Despues de la i-esima colisión cada estación espera un

tiempo aleatorio entre 0 y min (2i-1 ,1023) intervalos de 51.2 seg.

Despues de 16 colisiones se reporta un error a las capas superiores.

Page 71: Capa De Enlace de Datos

MAC en el IEEE 802.3

PreámbuloDirecciónde destino

FS N RellenoDatosDirecciónde origen

CRC

Longitud delLongitud delcampo de datoscampo de datos

1010101010101010 5.65.6mms a s a 10 MHZ10 MHZ

Inicio de Inicio de FrameFrame1010101110101011

77 66 0-15000-1500 4422BytesBytes 11 66 0-460-46

Direcciónde destino

LAB

11 4646BitsBits 11

Dirección de grupoDirección de grupo

Dirección localDirección local

• Dirección asignada por el usuario,Dirección asignada por el usuario,• Dirección global (unica, 7x10Dirección global (unica, 7x101313 posibilidades) posibilidades) asignada por el fabricante.asignada por el fabricante.• Dirección de Dirección de broadcast broadcast (1111 …1111)(1111 …1111)

Tamaño mínimo delTamaño mínimo delFrame 64 bytesFrame 64 bytes

Page 72: Capa De Enlace de Datos

Rendimiento de IEEE 802.3

Page 73: Capa De Enlace de Datos

IEEE 802.2 (LLC)

La capa LLC (Logical Link Control ) presenta una interfase común a la capa de red.

Se basa en HDLC y proporciona tres tipos de servicio no confiable, reconocido y orientado a conexión.

Page 74: Capa De Enlace de Datos

FDDI

Usa un protocolo de Token Ring similar a IEEE 802.5. Ademas de paquetes asincrónicos FDDI puede

transmitir datos PCM mediante reservación previa del ancho de banda.

El trafico asincrónico se divide en clases de prioridades.

PreámbuloDirecciónde destino

DatosDirecciónde origen

CRC

Delimitador Delimitador inicialinicial

>7>7 66 44BytesBytes 11 66

Control de Control de frameframe

Delimitador Delimitador finalfinalEstado de Estado de

frameframe

Sin límiteSin límite11 11 11