Professional Documents
Culture Documents
Principales Funciones
•Establece los medios necesarios para una comunicación
confiable y eficiente entre dos máquinas en red.
Principales Funciones
•Envía los paquetes de nodo a nodo, ya sea usando un circuito
virtual o como datagramas.
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.
¡La universidad para todos!
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.
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.
¡La universidad para todos!
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:
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.
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.
¡La universidad para todos!
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.
¡La universidad para todos!
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.
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.
¡La universidad para todos!
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.
¡La universidad para todos!
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 ARP
dirección IP dirección física
212.5.26.1 26-5A-C5-42-FD-11
212.5.26.2 2C-2A-48-A6-36-00
212.5.26.3 5D-F1-80-02-A7-93
¡La universidad para todos!
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.
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:
¡La universidad para todos!
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.
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.
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.
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.
Modelo de Referencia
Capa de aplicación
Capa de transporte
Capa de red
Capa física
¡La universidad para todos!
Comunicación en la
Capa de Enlace de Datos
Virtual
Capa de enlace de datos Capa de enlace de datos
Real
¡La universidad para todos!
Framing
Control de Errores
Control de Flujo
• Se implementa en
hardware. R(x) := Residuo(xrM(x) / G(x)) División módulo 2
• Algunos polinomios de
uso común son: T(x) := xrM(x) xor R(x)
Equivale a una resta módulo 2.
– CRC-12 = x12+x11+x3+x2+x+1 T(x) es divisible por G(x)
– CRC-16 = x16+x15+x2+1
– CRC-CCITT = x16+x12+x5+1 Transmitir T(x)
¡La universidad para todos!
Ejemplos de Protocolos de la
Capa de Enlace de Datos
• Protocolo unidireccional para un canal ruidoso.
• Protocolos de ventana deslizante.
• Protocolo HDLC.
• Protocolos usados en Internet
– SLIP
– PPP
¡La universidad para todos!
Protocolo PAR
Transmisor Receptor
1
• Positive 1
Acknowledgment 2
with Retransmission 2
• Unidireccional
2
• Tolera errores y 2
paquetes perdidos 3
3
3
3
¡La universidad para todos!
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;
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 */
}
}
}
¡La universidad para todos!
Protocolo de
Ventana 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.
¡La universidad para todos!
Protocolo de
Ventana Deslizante
#define MAX_SEQ 1 /* must be 1 for protocol 4 */
typedef enum {frame_arrival, cksum_err, timeout} event_type;
#include "protocol.h"
Protocolo de
Ventana 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 */
}
}
¡La universidad para todos!
Otros Protocolos de
Ventana Deslizante
¡La universidad para todos!
Protocolo HDLC
Bits 8 8 8 >0 16 8
01111110 Dirección Control Datos CRC 01111110
¡La universidad para todos!
◼ PPP se parece a
HDLC pero es
orientado a bytes.
◼ PPP se usa tanto
en enlaces
dedicados como en
en enlaces
discados.
¡La universidad para todos!
La Capa de
Enlace de Datos en ATM
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.
¡La universidad para todos!
Medio Compartido
Recibido
No es
para mí
¡La universidad para todos!
• 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 Dt) = lD t
– Canal único.
– Colisión.
– Tiempo continuo o discreto.
– Con o sin sin detección de portadora.
¡La universidad para todos!
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)
¡La universidad para todos!
ALOHA
Colisión
Retransmitir
Colisión
Retransmitir
¡La universidad para todos!
CSMA
Comparación de ALOHA y
CSMA
¡La universidad para todos!
CSMA/CD
• 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.
¡La universidad para todos!
Protocolos de
Contención Limitada
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).
¡La universidad para todos!
Protocolos para
LANs Inalámbricas
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).
¡La universidad para todos!
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.
¡La universidad para todos!
IEEE 802.x
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
mseg.
– Despues de 16 colisiones se reporta un error a las capas
superiores.
¡La universidad para todos!
10101010
5.6ms a Inicio de Frame Longitud del
10 MHZ 10101011 campo de datos
¡La universidad para todos!
FDDI
Orientaciones
1. http://www.serbi.ula.ve/serbiula/libros-
electronicos/Libros/trasmisiondedatos/pdf/CAPITUL
O%20IV.pdf
2. https://www.uv.es/rosado/courses/sid/Capitulo2_re
v0.pdf
¡La universidad para todos!
Contenidos temáticos
¡Gracias!