Diferencia entre revisiones de «O nivel de enlace»
(Sin diferencias)
|
Revisión actual del 23:50 24 nov 2009
Introdución
A principal función dun protocolo do nivel de enlace é transportar paquetes sen erros, encapsulados en tramas (frames), entre nodos adxacentes, a través dun enlace simple de comunicación. Polo tanto, o concepto de encamiñamento non existe no nivel de enlace.
Do mesmo xeito que o nivel físico proporcionaba servizos ao nivel de enlace, as funcións do nivel de enlace son servizos fornecidos á capa superior, é dicir, ao nivel de rede ou nivel IP, na pila TCP/IP.
Durante a transmisión, o emisor:
- Acepta os paquetes do nivel de rede e divídeos en tramas
- Constrúe os campos da trama
- Pasa as tramas ao nivel físico
E o receptor:
- Compón a trama a partir dos bits que van subindo do nivel físico
- Comproba os erros (este paso non se fai en todos os protocolos do nivel de enlace)
- Se a trama é correcta sobe a información ao nivel de rede.
Servizos do nivel de enlace
Polo tanto, os principais servizos que pode ter un protocolo de nivel de enlace son:
- Confección de tramas ou entramado
- Control de erros
- Control de fluxo
- Xestión do acceso ao medio
- Direccionamento
Non todas as funcións se implementan en todos os protocolos do nivel de enlace. Por exemplo, Ethernet non implementa control de erros, nin control de fluxo.
Entramado
Unha trama está formada por un campo de datos, onde vai inserido o paquete da capa de rede (é o que se chama o payload), unha cabeceira con información de control e unha cola ou fin (trailer).
Unha trama típica dun protocolo do nivel de enlace podería ser como a da seguinte figura:
O campo guión úsase para sincronizar a emisor con receptor e e poder transmitir. A sincronización determina onde empeza e remata cada trama. A esta técnica chámase caracteres de inicio e fin e consiste en utilizar un patrón de bits, por exemplo 01111110
para indicar o inicio e o final dunha trama. Como eses díxitos poden aparecer tamén dentro da información, utilízase un recheo para evitar posibles confusións. Por exemplo, por cada cinco 1
consecutivos, o emisor engade un 0
.
Supoñamos que o emisor quere transmitir esta información binaria:
100101110111111111110110011111001111
Para elo, constrúe a trama da seguinte forma (en negriña os bits que non son de información):
0111111010010111011111011111010110011111000111101111110
Detección e corrección de erros
A taxa de erros é función de múltiples factores pero, principalmente, do medio de transmisión utilizado. Así, a fibra óptica e o par trenzado teñen normalmente taxas máis baixas que as transmisións sen fíos (GSM, LAN sen cables, etc.). Con todo, dada a elevada fiabilidade da meirande parte dos medios físicos actuais normalmente non é rendible solicitar comprobación e retransmisión das tramas no nivel de enlace. Isto suporía realizar un proceso case sempre inútil en cada nodo do traxecto, polo que será normalmente o protocolo de transporte o que se ocupe de solicitar a retransmisión en caso de erro. De feito, este é un servizo que tamén proporciona o nivel de transporte en TCP/IP.
En calquera caso, a detección de erros permite determinar se a trama recibida ten ou non erros. Estes erros poden producirse por distintos factores:
- Tramas que chegan con información errónea (algún bit cambiou de valor). Úsase información adicional (redundante) que permite que o receptor reconstrúa a trama e a compare coa orixinal.
- Tramas incompletas (perdéronse algúns díxitos). Úsanse técnicas de delimitación de tramas como a conta de caracteres e “inicio e fin”
- Tramas que non chegan. Úsase un temporizador e un tipo de trama especial de asentimento (confirmación) á que se lle chama trama ACK, do inglés acknowledgement. Poden existir retransmisións dunha mesma trama polo que hai que numeralas.
INTERÉSACHE
A disciplina que estuda os erros de transmisión dende un punto de vista matemático é a teoría da codificación. Débese a R. W. Hamming quen publicou en 1950 un artigo onde establecía as bases dos códigos de detección e corrección de erros.
A disciplina que estuda os erros de transmisión dende un punto de vista matemático é a teoría da codificación. Débese a R. W. Hamming quen publicou en 1950 un artigo onde establecía as bases dos códigos de detección e corrección de erros.
Na gráfica, ao paquete que queremos transmitir (D) engádeselle información para o control e detección de erros (EDC) e toda a información envíase nunha trama do nivel de enlace. O receptor recibirá unha secuencia de bits (D' e EDC') que pode diferir da orixinal. Pode haber un erro e que non se detecte pero se o emisor localiza algún bit cambiado tentará arranxalo.
Canto máis sofisticadas son as técnicas de detección e corrección máis recursos computacionais consumen. Hai dúas técnicas moi coñecidas que paga a pena mencionar:
- Control de paridade. É a máis simple. Consiste en engadir un bit que indica se o número de uns a transmitir é par ou impar. Se traballamos con paridade par, engadimos un 1 se o número de uns é par e engadimos un 0 se o número de uns é impar; se traballamos con paridade impar: engadimos un 1 se o número de uns é impar e engadimos un 0 se o número de uns é par. Por exemplo: utilizando paridade impar queremos enviar a secuencia de bits seguinte:
1001011
Enviaremos:
10010110
Se se produce un erro no segundo díxito chegará:
10010100
O receptor saberá que se produciu un erro porque a paridade da palabra recibida é impar. Se se producise un número par de erros o control non funcionaría.
- Códigos de redundancia cíclica ou CRC. Son máis sofisticados que o control de paridade e úsanse tamén noutros ámbitos como a descompresión de información. Tamén se lles chama códigos polinómicos porque os bits a transmitir poden verse como un polinomio e baséanse na inclusión, ao final da palabra orixinal, dunha serie de díxitos redundantes que se obteñen a partir dun polinomio xerador.
Exemplo: 10011011 equivale a x7 + x4 + x3 + x + 1 11001010 equivale a x7 + x6 + x3 + x
Calquera mecanismo de control de erros baséase na inclusión dun certo grao de redundancia, o que require un compromiso entre eficiencia e fiabilidade. Os códigos de corrección de erros sempre teñen unha eficiencia menor que os de detección e, salvo que o medio de transmisión teña moitos erros, non son rendibles computacionalmente.
Control de fluxo
O control de fluxo pode ser necesario en caso de que o emisor transmita tramas a unha velocidade superior á que pode procesar o receptor.
Úsanse un tipo de tramas especiais, chamadas tramas de confirmación ou ACK, que permiten ao receptor indicarlle ao emisor que se recibiron ben os datos. O sistema aproveita as tramas de confirmación para enviar tamén datos, en caso de que teña algo que enviar. A esta técnica chámaselle piggy backing (os asentimentos van dentro dos mesmo datos). Se hai ACK a canle ten que ser semi-dúplex ou full-dúplex.
Xestión de acceso ao medio
Nas redes de difusión en medio compartido é necesario xestionar quen accede ao medio e cando. Esta función é o que se coñece como control de acceso ao medio e está implementada a través do subnivel MAC (Medium Access Control). Polo tanto, nos medios compartidos se dúas estacións queren transmitir ao mesmo tempo prodúcese unha colisión (algunhas tarxetas de rede teñen un indicador luminoso de colisión). Nas redes non compartidas non existe este problema.
Existen diferentes formas de xestionar o acceso ao medio:
- Estáticos (explicados na unidade 3). Principalmente baseados en técnicas de multiplexación no tempo (TDM) e en frecuencia (FDM).
- Dinámicos. Hai dous tipos:
- Contenda. As estación loitan polo acceso á canle. Existen moitas técnicas para repartir a canle nas redes de difusión, pero as mesmas ideas podémolas atopar nas seguintes: ALOHA, ALOHA rañurado, CSMA/LBT, CSMA/CD (usado por Ethernet).
- Regulados (estación central ou paso de testemuña). Está en desuso.
ALOHA
É o antecesor do CSMA/CD e usábase en Hawai para as comunicacións entre illas. O funcionamento é simple, deixar ás estacións transmitir no momento en que teñan a información. É pouco eficaz, pois o índice de colisións será moi elevado. Cando se producen colisións descártanse as tramas e a estación emisora espera un tempo aleatorio antes de retransmitir. Ademais, cantas máis estacións compartan o medio e canto maior sexa o tráfico máis colisións.
ALOHA rañurado
O tempo divídese en slots ou rañuras (úsase un reloxo que marca o comezo de cada slot). Cando unha estación teña datos para transmitir debe esperar ao comezo dun novo slot. Redúcense as colisións porque se se está transmitindo unha trama e unha estación ten datos, debe esperar ao comezo do novo slot. As colisións produciranse ao comezo de cada slot. O slot debe ser o suficientemente grande como para que se poida transmitir unha trama de extremo a extremo.
CSMA / LBT
Son as siglas de Acceso múltiple con detección de portadora / Escoitar antes de falar (Carrier Sense Multiple Access / Listen Before Talk). Cando unha estación desexa transmitir debe escoitar a canle para ver se está libre ou non. É mellor que os de tipo ALHOA porque cando as estacións detectan que o medio de transmisión está ocupado non hai colisións. Con todo, non evita as colisións cando dúas estacións comezan a transmitir exactamente ao mesmo tempo.
Na variante CSMA persistente, cando unha estación desexa transmitir escoita a canle. Se está ocupada, espera ata que estea libre e transmite a trama. Se está libre transmite a súa trama
Na variante CSMA non persistente, cando unha estación desexa transmitir, escoita a canle. Se está ocupada, espera un tempo aleatorio antes de voltar a escoitar. Se está libre transmite a súa trama.
CSMA / CD
É un CSMA con detección de colisións. As estacións tamén esperan a transmitir se a canle está ocupada. Se dúas estacións empezan a transmitir ao mesmo tempo son capaces de comprobar se se está producindo unha colisión e abortarán o envío de forma instantánea. Esperarán un tempo aleatorio para volver a transmitir. Este tempo está baseado nun algoritmo chamado exponential backoff.
Mellora os anteriores porque evita transmitir as tramas completas cando hai colisións aforrando tempo e ancho de banda.
Direccionamento
Nunha rede de área local é necesario identificar as distintas estacións polo que se usa o direccionamento. O direccionamento no nivel de enlace fai referencia á dirección da tarxeta de rede. A estas direccións chámaselles direccións LAN, direccións físicas ou direccións MAC e son números binarios de 48 bits (6 bytes) que se expresan como grupos de 8 bits en hexadecimal. Cada byte da dirección son dous números hexadecimais de 4 bits cada un:
18.3E.A0.64.F2.01
Os tres primeiros bytes da dirección MAC identifican ao fabricante da tarxeta de rede (OUI ou Organizationally Unique Identifier). Os OUI asígnaos o IEEE a cada fabricante (un OUI costa US$ 1250).
Unha dirección MAC é única para cada tarxeta de rede (grávase na ROM da tarxeta).
Un portátil cunha tarxeta de rede sempre ten a mesma dirección MAC, independentemente de onde se atope (isto non sucede coas direccións IP). As MAC son como o DNI dunha persoa. As direccións IP son como a dirección postal dunha persoa. Ambos datos poden ser necesarios.
Cando se quere enviar unha trama, o nivel de enlace insire a dirección MAC da estación de destino no campo correspondente da trama. Se a rede é unha LAN baseada en difusión en medio compartido a trama será recibida por todas as estacións. Cada estación procesará a trama e analizará a dirección de destino, se coincide coa súa extraerá o paquete pasándoo ao nivel de rede. Se o campo de dirección destino non coincide coa súa dirección MAC, a estación descarta a trama.
Existe unha dirección MAC de propósito especial chamada dirección broadcast, que está formada por 48 uns seguidos en binario, isto é en hexadecimal:
FF-FF-FF-FF-FF-FF
Se se envía un broadcast nunha rede todas as estacións recibirán e aceptarán a trama. Algúns protocolos que usan este tipo de tramas son o DHCP e o ARP.
Protocolos do nivel de enlace reais: as redes de acceso a Internet
Non todos os protocolos do nivel de enlace implementan todos os servizos vistos. Como exemplo, imos ver dous protocolos do nivel de enlace reais. En concreto, aqueles protocolos do nivel de enlace que se usan para acceder a Internet:
- Acceso mediante liña telefónica: Point to Point Protocol
- Acceso mediante LAN: Ethernet
O PPP
É o Protocolo Punto a Punto (Point to Point Protocol) e foi especificado nos anos 90 (RFC 1661, RFC 1662 e RFC 1663). É o protocolo de nivel de enlace que se usa cando accedemos a Internet mediante liña telefónica, é dicir, módem e ADSL.
No PPP non hai confirmacións de recepcións, é dicir, non se usan tramas de recoñecemento durante a transmisión (ACK). Polo tanto, en canto ao xestión de erros, se se detecta algún problema na trama recibida non se solicita a retransmisión. Para a detección e corrección usa un Código de Redundancia Cíclica pero se non pode corrixilos descarta a trama. Ao non haber ACK tampouco hai control de fluxo (delégase nas capas superiores, en TCP no caso da pila TCP/IP).
Non existe subnivel MAC, é dicir, control de acceso ao medio, por utilizar unha conexión punto a punto, é dicir, é un protocolo orientado á conexión (usa un subprotocolo para o establecemento da mesma chamado LCP).
En canto ao direccionamento, non é necesario direccionar a nivel de enlace, tamén por ser unha conexión punto a punto. Úsase sempre a dirección 11111111 como dirección de destino.
En canto ao entramado, PPP usa a secuencia de bits 01111110 como delimitador de inicio e fin de trama. Tamén usa a técnica de recheo de caracteres (bit stuffing) para evitar confusións da secuencia de inicio e fin cunha secuencia de datos. O formato da trama PPP é o seguinte:
O campo tipo
na trama establece a que tipo de protocolo pertence o paquete recibido da capa de rede. Desta forma PPP pode utilizarse para transmitir paquetes pertencentes a diferentes protocolos do nivel de rede (IP, IPX de Novell, Appletalk, etc.). En concreto, o valor x0021 corresponde ao IP. O campo control
non se usa.
Ethernet
A maior parte das LAN actuais usan a tecnoloxía Ethernet. Esta tecnoloxía converteuse nun estándar de facto. Apareceu nos anos 80 e o IEEE adaptouna a posteriori, con pequenas modificacións, no estándar 802.3, facéndoa un estándar de iure. Con todo, cando nos conectamos a Internet dende unha LAN o protocolo de nivel de enlace que usamos, con moita probabilidade, segue sendo Ethernet e non o estándar 802.3. Desde o punto de vista da estandarización, Ethernet é ás redes LAN o que TCP/IP é ás redes WAN.
Baixo o nome Ethernet aglutínanse, polo tanto, un conxunto de estándares definidos polo comité 802.3 do IEEE, entre eles:
- Fast Ethernet: 802.3i (100BaseT)
- Gigabit Ethernet: 802.3ab (1000BaseT)
- 10 Gigabit Ethernet: 802.3ae
Hai múltiples motivos polos que esta tecnoloxía se converteu nun estándar de facto:
- Simplicidade.Apareceu moi cedo e foi das primeiras LAN en ser amplamente usada pola súa simplicidade.
- Custe. As alternativas, Token Ring, FDDI e ATM eran máis complexas e caras.
- Velocidade. A velocidade de Ethernet foi en aumento ata chegar a velocidades superiores ás das tecnoloxías coas que competía.
- Aceptación. Debido á súa gran aceptación o hardware para Ethernet é moi barato.
Como protocolo de acceso ao medio Ethernet usa CSMA/CD. Úsase direccionamento explícito para o nivel de enlace mediante direccións MAC.
En canto á xestión de erros, se se detecta algún problema na trama non se solicita a retransmisión. Polo tanto, usa a técnica de CRC para corrixilos pero se non pode descarta a trama, igual que o PPP. Ethernet ofrece un servizo non orientado a conexión ao nivel de rede, é dicir, cando o nivel de enlace dunha estación "A" quere enviar un paquete ao nivel de enlace dunha estación "B", A encapsula o paquete nunha trama e inicia a transmisión sen “falar” previamente con B (non hai establecemento previo de conexión). Cando B recibe a trama, se o CRC falla, descártaa sen máis. Tampouco hai control de fluxo (delégase nas capas superiores).
En canto ao entramado, a trama Ethernet ten o seguinte formato:
- Preámbulo. Está formado por 64 bits, alternativamente 0 e 1 para sincronizar ao emisor e o receptor. Os dous últimos bits son 11 e indican onde empeza a trama. É idéntico en todas as tramas.
- Dir destino (48 bits). A dirección física (MAC) do destinatario da trama.
- Dir orixe (48 bits). A dirección física do transmisor.
- Tipo (16 bits). Indica o tipo de contido que leva a trama (é dicir, que protocolo encapsula). Por exemplo, as tramas que transportan paquetes IP levan un
0x0800
; as que transportan paquetes ARP levan0x0806
. - Datos (de 0 a 1500 bytes). Transporta a PDU (Protocol Data Unit) do nivel superior. Unha trama Ethernet debe ter como mínimo 64 bytes (para evitar confundir unha trama de datos con "restos" de colisións). Se o campo de datos ten menos de 46 bytes inclúese un trailer (todo ceros) ao final da trama para completar eses 64 bytes. Ethernet (e todos os protocolos do nivel de enlace) ten limitada a lonxitude máxima de información transportable pola trama (Maximun Transfer Unit ou MTU). A MTU en Ethrenet é 1.500 bytes. Esta limitación ten como obxectivo evitar que unha estación monopolice a LAN. Polo tanto, se o nivel de rede quere enviar un paquete de tamaño superior a 1500 bytes terá que dividirse (fragmentarse) en varios fragmentos.
- Código de redundancia cíclica( 32 bits). O CRC úsase para a detección e corrección de erros.
O 802.3
Durante un tempo pensouse que o IEEE802.3 acabaría substituíndo á Ethernet orixinal pero isto non aconteceu. As tramas do 802.3 teñen un formato similar ás de Ethrenet:
- Preámbulo + inicio (64 bits). 7 bytes a
10101010
para que receptor e transmisor se sincronicen (sinal cadrado) e 1 byte co patrón10101011
para indicar que comeza a trama. - Dir destino (48 bits). A dirección física (MAC) do destinatario da trama.
- Dir orixe (48 bits). Dirección física do transmisor.
- Lonxitude (16 bits). Indica cantos bytes van no campo de datos ou de información. Polo tanto úsase a técnica de conta de caracteres.
- Datos (de 0 a 1500 bytes). Igual que no Ethernet orixinal.
- Recheo. Unha trama debe ter como mínimo 64 bytes. Considérase que as tramas inferiores son resultado de colisións e son obviadas por los receptores. Se o campo de datos ten menos de 46 bytes, débese usar o campo de recheo para completar eses 64 bytes.
- CRC. Código de redundancia cíclica.
Dispositivos do nivel de enlace: os switches
Os hubs ou concentradores son dispositivos do nivel físico (ver unidade III). Os switches ou conmutadores son dispositivos que traballan no nivel de enlace, é dicir, con tramas, Ethernet no noso caso.
Dominios de colisión
O emprego de concentradores ou hubs para formar unha LAN Ethernet estende o dominio de colisión, é dicir, en todos os hubs da LAN vese todo o tráfico. Este tráfico comparte a velocidade máxima que teñamos na rede.
Cando un conmutador recibe unha trama examina a dirección MAC de destino e reenvíaa pola interface onde está conectado o destinatario. Ao contrario que os concentradores, que inundaban a rede (un único dominio de colisión), os conmutadores delimitan un segmento de rede por cada porto. Un dominio de colisión é un segmento da rede no que as tramas enviadas por un equipo só poden colisionar con outras tramas nese mesmo segmento. Os dominios de colisión segmentan a rede mellorando o aproveitamento dos recursos xa que evitan difusións de tramas innecesarias e colisión entre dispositivos de distintos segmentos. Polo tanto, a función principal dun conmutador é a segmentación da rede para aumentar as prestacións desta.
Na seguinte LAN hai tres segmentos de rede e, polo tanto, tres dominios de colisión (un por cada porto do conmutador):
Na actualidade, as tecnoloxías aplicadas á conmutación permiten fabricar conmutadores de nivel 3. Non son routers pero posúen moitas das características destes, podendo ser utilizados para deseñar redes virtuais (VLAN) dentro dunha LAN.
Funcionamento dun switch
Un conmutador mantén unha táboa de direccións MAC co seguinte formato:
- Address é a dirección MAC do emisor.
- Interface é o porto do switch polo que chegou a trama.
- Time é o momento no que se recibiu a trama no switch.
O funcionamento é o seguinte: cando o conmutador recibe unha trama almacena a dirección MAC de quen a envía, a interface pola que chegou e a hora. Mira o campo de destino da trama e consulta a táboa para saber por que porto está alcanzable esa dirección MAC. Se a MAC non existe na táboa envía a trama por todos os interfaces, é dicir, compórtase como un hub inundando todos os segmentos.
A táboa, polo tanto, créase dinamicamente, a medida que chegan as tramas, e as entradas da mesma bórranse cada certo tempo (o switch non ten memoria ilimitada). Polo tanto, cando un equipo transmite, o switch recibe a trama e reenvía polo porto axeitado, salvo que o destino non estea na táboa.
Para evitar que os equipos conectados ao conmutador interfiran entre si nas súas transferencias, o switch almacena nun buffer (memoria intermedia) as tramas que lle chegan e logo procésaas. Así, dous equipos poderían estar enviando a outros dous sen molestarse. No gráfico de exemplo, os tres equipos A, B e C poden enviar simultaneamente: o computador A pode enviar a A' mentres que B envía a B' e C a C'. Se cada computador ten unha NIC a 100Mbps o throughput durante as tres transmisión simultáneas será de 300Mbps.
Exemplos de interconexións
Os conmutadores poden conectarse para formar distintas topoloxías. Un uso típico é nunha pequena LAN nunha empresa ou organización, tal e como se ve na seguinte figura:
As impresoras e outros periféricos, así como os servidores e estacións de traballo están conectados directamente mediante cables de par trenzado planos.
Outra posibilidade é usar un switch para crear diferentes segmentos de rede ou dominios de colisión, como na seguinte figura:
Para conectar os hubs co switch hai que usar cables cruzados, ou ben conectar un cable plano ao porto MDI (crossover ou uplink) do hub, se é que o ten. O switch, ademais, está conectado a unha rede backbone a través dun cable de fibra óptica conectado a un módulo 100Base-FX instalado no switch.
Por último, na seguinte figura vese unha combinación das dúas topoloxías anteriores:
Virtual LAN (VLAN)
Unha VLAN é un grupo lóxico de nodos dunha rede, conectados a un ou varios conmutadores, que se xestionan como unha subrede. Este tipo de redes son posibles tecnoloxicamente grazas aos routers. Os nodos agrúpanse seguindo criterios ou políticas de conexión, independentemente da súa ubicación ou conexión física. Isto axuda a controlar o uso do largo de banda permitindo, por exemplo, agrupar a usuarios con necesidades altas nun segmento da LAN e ao resto noutro.
Unha VLAN configúrase mediante a asignación de portos do switch a un mesmo dominio de broadcast (os nodos dunha VLAN normalmente comparten o esquema de direccionamento e, polo tanto, están dentro da mesma subrede). Para comunicar dúas VLAN necesítase un encamiñador externo.
Para distinguir as tramas das distintas VLAN úsanse etiquetas. O estándar máis frecuente de etiquetado de VLAN é o 802.1Q ou VLAN tagging. Evidentemente, as tarxeta de rede deben soportar este protocolo. Este estándar permite asignar cada porto do switch a unha ou máis VLAN, como se ve na seguinte figura:
--Arribi 11:12 11 feb 2009 (GMT)--