Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Comunicaciones de datos, Apuntes de Computación aplicada

Comunicaciones inteligente

Tipo: Apuntes

2015/2016

Subido el 07/04/2016

Jonathan.Gonzalez
Jonathan.Gonzalez 🇻🇪

1 documento

1 / 54

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Softdownload
Página 1
Comunicación de Datos
Introducción
Clases de redes
Jerarquías de protocolos
Problemas en el diseño de los niveles
Servicios
Modelos de referencia de redes
OSI
TCP/IP
OSI vs. TCP/IP
Un ejemplo: Novell NetWare
El nivel físico
La velocidad máxima de un canal
Medios de transmisión
El sistema telefónico
Los local loops
Los troncales y la multiplexación
MDT en el sistema telefónico
Conmutación
Narrowband ISDN
Broadband ISDN y ATM
Conmutadores de ATM
Satélites
El nivel de enlace
Asuntos de diseño
Servicios para el nivel de red
Marcos
Control de errores
Control de flujo
Detección y corrección de errores
Códigos de detección de errores
Códigos de CRC
Protocolos elementales de enlace
Protocolos de ventana deslizante
SLIP y PPP
El nivel de enlace de ATM
Redes de broadcast
ALOHA
Protocolos de acceso múltiple con sentido de portador
Protocolos de CSMA con la detección de choques
Protocolos libre de choques
IEEE 802.3 y Ethernet
Bridges
LANs de velocidad alta
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Vista previa parcial del texto

¡Descarga Comunicaciones de datos y más Apuntes en PDF de Computación aplicada solo en Docsity!

Comunicación de Datos

  • Introducción
    • Clases de redes
    • Jerarquías de protocolos
    • Problemas en el diseño de los niveles
    • Servicios
  • Modelos de referencia de redes
    • OSI
    • TCP/IP
    • OSI vs. TCP/IP
    • Un ejemplo: Novell NetWare
  • El nivel físico
    • La velocidad máxima de un canal
    • Medios de transmisión
    • El sistema telefónico
      • Los local loops
      • Los troncales y la multiplexación
      • MDT en el sistema telefónico
    • Conmutación
    • Narrowband ISDN
    • Broadband ISDN y ATM
    • Conmutadores de ATM
    • Satélites
  • El nivel de enlace
    • Asuntos de diseño
      • Servicios para el nivel de red
      • Marcos
      • Control de errores
      • Control de flujo
    • Detección y corrección de errores
    • Códigos de detección de errores
      • Códigos de CRC
    • Protocolos elementales de enlace
    • Protocolos de ventana deslizante
      • SLIP y PPP
      • El nivel de enlace de ATM
  • Redes de broadcast
    • ALOHA
    • Protocolos de acceso múltiple con sentido de portador
    • Protocolos de CSMA con la detección de choques
    • Protocolos libre de choques
    • IEEE 802.3 y Ethernet
    • Bridges
    • LANs de velocidad alta
  • El nivel de red
    • Estructura interna de la subred
    • Algoritmos de ruteo
      • Algoritmos estáticos
      • Ruteo de vector de distancia
      • Ruteo de estado de enlace
      • Ruteo jerárquico
      • Ruteo de broadcast
    • Algoritmos de control de congestión
      • Formación del tráfico
      • Control de congestión en subredes de circuitos virtuales
      • Paquetes de bloqueo
      • Pérdida de carga
    • Internets
    • El nivel de red en la Internet
      • Protocolos de control
      • IPv
  • El nivel de transporte
    • Primitivas del servicio de transporte
    • Protocolos de transporte
      • Establecimiento de una conexión
      • Desconexión
      • Control de flujo
      • Multiplexación
      • Recuperación de caídas
    • El protocolo de TCP
      • Implementación del protocolo
      • El encabezamiento de TCP
      • Administración de conexiones
      • Política de transmisión
      • Control de congestión
      • Administración de relojes
    • Rendimiento
      • Diseño para rendimiento mejor
      • Procesamiento rápido de TPDUs
  • El nivel de aplicación
    • DNS--Domain Name System
      • Espacio de nombres de DNS
      • Registros de recurso
      • Servidores de nombres

No Sí Uso de un portable en un hotel Sí No LANs en un edificio antiguo sin cables Sí Sí PDA (personal digital assistant) para inventario

Jerarquías de protocolos

  • El software para controlar las redes se tiene que estructurar para manejar la complejidad.
  • Se organiza la mayor parte de las redes en una pila de niveles.
  • Cada nivel ofrece ciertos servicios a los niveles superiores y oculta la implantación de estos servicios. Usa el nivel inferior siguiente para implementar sus servicios.
  • El nivel n de una máquina se comunica con el nivel n de otra máquina. Las reglas y convenciones que controlan esta conversación son el protocolo de nivel n.
  • Las entidades en niveles correspondientes de máquinas distintas son pares. Son los pares que se comunican.
  • En la realidad el nivel n de una máquina no puede transferir los datos directamente al nivel n de otra. Se pasa la información hacia abajo de un nivel a otro hasta que llega al nivel 1, que es el medio físico.
  • Entre los niveles están las interfaces. Las interfaces limpias permiten cambios en la implementación de un nivel sin afectar el nivel superior.
  • Un nivel que tiene que transmitir un paquete a otra máquina puede agregar un encabezamiento al paquete y quizás partir el paquete en muchos. Por ejemplo, el encabezamiento puede identificar el mensaje y el destino. El nivel 3 de la mayor parte de las redes impone un límite en el tamaño de los paquetes.

Problemas en el diseño de los niveles

  • Un mecanismo para identificar los remitentes y los recibidores.
  • Transferencia de datos:
    • Simplex. Solamente en un sentido.
    • Half-duplex. En ambos, pero uno a la vez.
    • Full-duplex. En ambos a la vez.
  • Control de errores y detección de recepción.
  • Orden de mensajes.
  • Velocidades distintas de transmisión y recepción.
  • Ruteo.

Servicios

  • Cada nivel provee un servicio al nivel superior.
  • Hay dos tipos de servicios:
    • Servicio orientado a la conexión. Como el sistema telefónico. La conexión es como un tubo, y los mensajes llegan en el orden en que fueron mandados.
    • Servicio sin conexión. Como el sistema de correo. Cada mensaje trae la dirección completa del destino, y el ruteo de cada uno es independiente.
  • Se caracterizan los servicios por la calidad de servicio.
    • Compara la transferencia de archivos con la comunicación de voz (ambas orientadas a la conexión).
    • Para e-mail un servicio sin conexión y no confiable es suficiente, esto se llama servicio de datagrama. Para dar confianza los servicios de datagrama con acuses de recibo son posibles.
  • Cada servicio define un conjunto de primitivas (tales como "solicitar" o "acusar recibo"). Por contraste el protocolo es el conjunto de reglas que controlan el formato y significado de los paquetes intercambiados por entidades de par. Se usan los protocolos para implementar los servicios.
  • Nivel de transporte. Permite que pares en los hosts de fuente y destino puedan conversar. Hay dos protocolos: - Transmission Control Protocol (TCP). Provee una conexión confiable que permite la entrega sin errores de un flujo de bytes desde una máquina a alguna otra en la internet. Parte el flujo en mensajes discretos y lo monta de nuevo en el destino. Maneja el control de flujo. - User Datagram Protocol (UDP). Es un protocolo no confiable y sin conexión para la entrega de mensajes discretos. Se pueden construir otros protocolos de aplicación sobre UDP. También se usa UDP cuando la entrega rápida es más importante que la entrega garantizada.
  • Nivel de aplicación. Como en OSI. No se usan niveles de sesión o presentación.

OSI vs. TCP/IP

  • OSI define claramente las diferencias entre los servicios, las interfaces, y los protocolos.
    • Servicio: lo que un nivel hace
    • Interfaz: cómo se pueden accesar los servicios
    • Protocolo: la implementación de los servicios TCP/IP no tiene esta clara separación.
  • Porque OSI fue definido antes de implementar los protocolos, los diseñadores no tenían mucha experiencia con donde se debieran ubicar las funcionalidades, y algunas otras faltan. Por ejemplo, OSI originalmente no tiene ningún apoyo para broadcast.
  • El modelo de TCP/IP fue definido después de los protocolos y se adecúan perfectamente. Pero no otras pilas de protocolos.
  • OSI no tuvo exíto debido a
    • Mal momento de introducción: insuficiente tiempo entre las investigaciones y el desarrollo del mercado a gran escala para lograr la estandarización
    • Mala tecnología: OSI es complejo, es dominado por una mentalidad de telecomunicaciones sin pensar en computadores, carece de servicios sin conexión, etc.
    • Malas implementaciones
    • Malas políticas: investigadores y programadores contra los ministerios de telecomunicación
  • Sin embargo, OSI es un buen modelo (no los protocolos). TCP/IP es un buen conjunto de protocolos, pero el modelo no es general. Usarémos una combinación de los dos: Nivel de aplicación Nivel de transporte Nivel de red Nivel de enlace Nivel físico

Un ejemplo: Novell NetWare

  • Es el sistema de red más popular en el mundo de PC.
  • Modelo de cliente-servidor para los LANs.
  • Arquitectura: Aplicación SAP, servidor de archivos, ... Transporte NCP, SPX

Red IPX Enlace Ethernet, token ring, ARCnet Físico Ethernet, token ring, ARCnet

  • IPX es como IP, pero con direcciones de 10 bytes.
  • NCP está orientado a la conexión.
  • SAP (Service Advertising Protocol): Cada minuto cada servidor manda un broadcast de sus servicios y dirección.
  • Cable coaxial. Un alambre dentro de un conductor cilíndrico. Tiene un mejor blindaje y puede cruzar distancias mayores con velocidades mayores (por ejemplo, 1-2 Gbps).
  • Fibra óptica. Hoy tiene un ancho de banda de 50.000 Gbps, pero es limitada por la conversión entre las señales ópticas y eléctricas (1 Gbps). Los pulsos de luz rebotan dentro de la fibra. En una fibra de modo único los pulsos no pueden rebotar (el diámetro es demasiado pequeño) y se necesita menor amplificación (por ejemplo, pueden cruzar 30 km a unos Gbps).

Además de estos hay también medios inalámbricos de transmisión. Cada uno usa una banda de frecuencias en alguna parte del espectro electromagnético. Las ondas de longitudes más cortas tienen frecuencias más altas, y así apoyan velocidades más altas de transmisión de datos. De lambda f = c se deriva la relación entre la banda de longitud de onda y la banda de frecuencia: delta f = (c delta lambda)/lambda 2

  • Radio. 10 KHz-100 MHz. Las ondas de radio son fáciles de generar, pueden cruzar distancias largas, y entrar fácilmente en los edificios. Son omnidireccionales, lo cual implica que los transmisores y recibidores no tienen que ser alineados. - Las ondas de frecuencias bajas pasan por los obstáculos, pero el poder disminuye con el cubo de la distancia. - Las ondas de frecuencias más altas van en líneas rectas. Rebotan en los obstáculos y la lluvia las absorbe.
  • Microondas. 100 MHz-10 GHz. Van en líneas rectas. Antes de la fibra formaban el centro del sistema telefónico de larga distancia. La lluvia las absorbe.
  • Infrarrojo. Se usan en la comunicación de corta distancia (por ejemplo, controlo remoto de televisores). No pasan por las paredes, lo que implica que sistemas en distintas habitaciones no se interfieren. No se pueden usar afuera.
  • Ondas de luz. Se usan lasers. Ofrecen un ancho de banda alto con costo bajo, pero el rayo es muy angosto, y el alineamiento es difícil.

El sistema telefónico

  • En general hay que usarlo para redes más grandes que un LAN.
  • Consiste en las oficinas de conmutación, los alambres entres los clientes y las oficinas (los local loops ), y los alambres de las conexiones de larga distancia entre las oficinas (los troncales ). Hay una jerarquía de las oficinas.
  • La tendencia es hacia la señalización digital. Ventajas:
    • La regeneración de la señal es fácil sobre distancias largas.
    • Se pueden entremezclar la voz y los datos.
    • Los amplificadores son más baratos porque solamente tienen que distinguir entre dos niveles.
    • La mantención es más fácil; es fácil detectar errores.

Los local loops

  • Son analógicos. Los computadores tienen que usar un módem para convertir una señal digital en uno analógica, y en la oficina de compañía de teléfonos un codec convierte a digital de nuevo.
  • Tres problemas de transmisión:
    • Atenuación. Los componentes Fourier diferentes de una señal se atenúan por montos distintos.
    • Distorsión de retraso. Los componentes diferentes tienen velocidades diferentes. Dos bits en un cable se pueden entremezclar.
  • Ruido. Tipos: termal, cross talk (inducción entre alambres), y impulsos (de puntos de poder).
  • Debido a estos problemas no es deseable tener un gran rango de frecuencias en la señal. Por desgracia las ondas cuadradas de la señalización digital tienen un espectro grande. Por lo tanto los módems transmiten un portador de onda sinuosidal y modulan la amplitud, la frecuencia, o la fase.
  • Otro problema es los ecos. Frecuentemente se refleja una parte de la señal. Una solución para la voz es un supresor de eco, que cambia la línea de full-duplex a half-duplex y cambia el sentido de transmisión rápidamente. Un tono de 2100 Hz puede desactivar los supresores (un ejemplo de la señalización en banda ). Una alternativa es un cancelador de eco, que preserva la transmisión full-duplex y resta una estimación del eco a la señal.
  • Al largo plazo hay que convertir los local loops a la fibra, pero es muy caro. Una solución intermedia es instalar la fibra primero solamente en las calles y continuar usar el par trenzado para la conexión al domicilio.

Los troncales y la multiplexación

  • El costo de instalar y mantener una línea troncal es casi lo mismo para una línea de ancho de banda bajo como para una línea de ancho de banda alta. Por lo tanto las compañías de teléfonos multiplexan llamadas múltiples en una sola línea de ancho de banda alto.
  • Multiplexación de división de frecuencias (MDF). Se usan filtros para restringir cada canal telefónico a solamente 3000 Hz. Para asegurar una buena separación se alocan 4000 Hz para cada canal. Se eleva la frecuencia de cada canal de voz y entonces se combinan; cada canal es independiente de los otros.
  • Multiplexación de división de longitud de onda. Es la misma idea como MDF, pero con luz y fibras. Ya que cada canal en una fibra no puede tener un ancho de más de unos gigahertz (debido a la velocidad máxima de convertir entre señales ópticas y eléctricas), es una buena manera de usar el ancho de banda de cerca 25.000 GHz de una fibra. En este caso los canales entrantes deben tener frecuencias distintas y se combinan con un prisma.
  • Multiplexación de división de tiempo (MDT). El problema con MDF es que hay que usar circuitería analógica. Por contraste se puede manejar la MDT completamente con la electrónica digital. En MDT cada usuario tiene sucesivamente todo el ancho de banda del canal por un momento. Se puede usar MDT solamente con los datos digitales.

MDT en el sistema telefónico

  • El primer paso en el uso de MDT es la conversión de las señales analógicas. Debido al teorema de Nyquist, se puede capturar toda la información de una señal de H Hertz con una frecuencia de muestras de 2H. Un codec (coder-decoder) muestrea el flujo 8000 veces por segundo (125 microsegundos por muestra). Este proceso se llama (en el mundo telefónico) Pulse Code Modulation (PCM).
  • Un ejemplo de un portador de MDT es una línea T1, que multiplexa 24 canales de voz.
    • Un solo codec muestrea cada canal sucesivamente; cada uno produce 7 bits de dato y 1 bit de control por muestra. Por tanto hay 7×8000 = 56.000 bps de datos por canal, y 8000 bps de control.
    • Cada marco del T1 tiene 24×8 = 192 bits, más un bit para control de marcos. Tenemos 193 bits cada 125 microsegundos, que es 1,544 Mbps.
    • El bit 193 alterna entre 0 y 1. El recibidor lo usa para la sincronización.
  • Un T2 (6,312 Mbps) consiste en 4 canales T1, un T3 (44,736 Mbps) de 6 T2, y un T4 (274,176 Mbps) de 7 T3. Cada uno agrega bits de control y de marco.
  • SONET (Synchronous Optical Network) es un sistema de MDT para la fibra. El marco cada 125 microsegundos tiene 810 bytes, que implica 51,84 Mbps.

Narrowband ISDN

  • ISDN es Integrated Services Digital Network. Es un servicio inventado en 1984 por las compañías de teléfonos para proveer una conexión digital directamente al cliente. Usa conmutación de circuito. Ahora está disponible en muchos mercados.
  • Para la casa ofrece dos canales de 64 kbps para voz/dato y uno de 16 kbps para el control fuera de banda. Para la empresa, 23 o 30 canales de voz/dato en vez de dos.
  • Problema: ¡Es demasiado lento! El proceso de estandarización duró años. Durante el mismo período la tecnología de red avanzó rápidamente. Ahora LANs de 10 y 100 Mbps son comunes.
  • Sin embargo, un uso interesante es conexiones de Internet de la casa.

Broadband ISDN y ATM

  • Broadband ISDN provee un circuito virtual digital para transferir paquetes de tamaños fijos (celdas) con una velocidad de 155 Mbps. Está basado en ATM ( Asynchronous Transfer Mode ), que es una tecnología de conmutación de paquetes.
  • No se pueden usar los conmutadores de división de espacio ni de tiempo con ATM. Tampoco se pueden usar los local loops existentes. La conversión a ATM representa un cambio enorme.
  • Broadband ISDN es una combinación de la conmutación de circuito y de paquetes. El servicio es orientado a la conexión pero es implementado con conmutación de paquetes. Hay dos clases de conexiones: - Circuitos virtuales permanentes. Persisten meses o años. - Circuitos virtuales conmutados. Temporales, como llamadas de teléfono.
  • La creación de un circuito en ATM es el proceso de encontrar un camino por la red. Los conmutadores en la ruta guardan entradas de tabla y tal vez reserven recursos. Cuando un paquete llega en un conmutador, busca qué circuito virtual pertenece en el encabezamiento del paquete y determina en qué línea debiera reenviar el paquete.
  • ATM es asíncrono. Por contraste con T1, no hay ningún requerimiento que las celdas de fuentes distintas se alternan rígidamente. Los ordenes aleatorios y incluso brechas en el flujo son permisibles.
  • ATM no especifica el medio; ambos los cables y las fibras son posibles. Las conexiones son punto-a-punto y half-duplex. La velocidad principal es 155,52 Mbps; la alternativa es 622,08 Mbps (estas son compatibles con SONET).

Conmutadores de ATM

  • Las celdas de ATM llegan con una velocidad de alrededor de 150 Mbps, o 360.000 celdas por segundo (una celda cada 2,7 microsegundos; con el ATM más rápido, cada 700 nanosegundos). Un conmutador tiene desde 16 a 1024 líneas de input. Para poder construir los conmutadores es necesario que las celdas sean cortas (53 bytes).
  • Requerimientos:
    • La taza de perder paquetes debe ser muy baja (1 celda en 10^12 , por ejemplo).
    • Nunca se puede cambiar el orden de las celdas en un circuito virtual.
  • Un problema básico: ¿Qué pasa cuando dos celdas quieren ir por la misma línea de output en el mismo ciclo?
  • No podemos descartar una de las celdas.
  • Podemos usar una cola para cada línea de input. Introduce el efecto de bloqueo de la cabeza de cola: Puede ser celdas que se pueden rutear tras de la cuál está bloqueada.
  • Otra posibilidad es una cola para cada línea de output.
  • Conmutador de knockout. Tiene un bus de broadcast para cada línea de input. La activación de las intersecciones determinan las líneas de output. Cada línea de output tiene una sola cola virtual que se representa con n reales y un shifter. Porque n es normalmente menos que el número de líneas de input, un concentrador escoge las celdas a descartar si demasiados llegan.
  • Conmutador de Batcher-banyan. El problema con el conmutador de knockout es que semejante a un conmutador de crossbar. El Batcher-banyan es un conmutador de etapas múltiples para los paquetes.

Satélites

  • Funcionan como repetidores de microondas. Un satélite contiene algunos transponedores que reciben las señales de alguna porción del espectro, las amplifican, y las retransmiten en otra frecuencia.
  • Hay tres bandas principales: C (que tiene problemas de interferencia terrenal), Ku, y Ka (que tienen problemas con la lluvia).
  • Un satélite tiene 12-20 transponedores, cada uno con un ancho de banda de 36-50 MHz. Un velocidad de transmisión de 50 Mbps es típica. Se usa la multiplexación de división de tiempo.
  • La altitud de 36.000 km sobre el ecuador permite la órbita geosíncrona, pero no se pueden ubicar los satélites con espacios de menos de 1 o 2 grados.
  • Los tiempos de tránsito de 250-300 milisegundos son típicos.

El nivel de enlace

  • El tema principal es los algoritmos para la comunicación confiable y eficiente entre dos máquinas adyacentes.
  • Problemas: los errores en los circuitos de comunicación, sus velocidades finitas de transmisión, y el tiempo de propagación.

Asuntos de diseño

Servicios para el nivel de red

  • Servicio sin conexión y sin acuses de recibo. La máquina de fuente manda marcos al destino. Es apropiado si la frecuencia de errores es muy baja o el tráfico es de tiempo real (por ejemplo, voz).
  • Servicio sin conexión y con acuses de recibo. El recibidor manda un acuse de recibo al remitente para cada marco recibido. Los acuses son una optimización; el nivel de transporte también los usa, pero con el uso en este nivel se pueden confirmar y posiblemente reenviar los marcos individuales.
  • Servicio orientado a la conexión con acuses de recibo. Provee un flujo confiable de bits. Las máquinas de fuente y recibo establecen una conexión antes de mandar los datos (inicializar variables, reservar buffers, etc.). Los marcos son numerados, y todos son recibidos exactamente una vez y en el orden correcto.

Marcos

  • El nivel físico toma un flujo de bits y intenta entregar al destino. Los bits entregados pueden ser más, menos, o distintos a estos mandados.
  • El nivel de enlace trata de detectar y corregir los errores. Normalmente se parte el flujo de bits en marcos y se calcula un checksum para cada uno.
  • Para partir el flujo no se pueden usar brechas de tiempo en la transmisión, porque no hay ninguna garantía por el nivel físico que estas brechas serán preservadas.
  • Número de caracteres. Un campo del encabezamiento guarda el número. Pero si el número es cambiado en una transmisión, es difícil recuperar.
  • Caracteres de inicio y fin, con relleno de caracteres. Cada marco empieza con la secuencia ASCII de DLE STX y termina con DLE ETX. Si la secuencia está en los datos, se duplica el DLE. Pero este sistema es muy vinculado a ASCII y caracteres de 8 bits.
  • Flags de inicio y fin, con relleno de bits. Cada marco empieza y termina con 01111110. En los datos se inserta un 0 después de cada cinco 1s consiguientes. El recibidor elimina cada 0 después de cinco 1s.
  • Infracciones en el estándar de codificación del nivel físico. Se usa en sistemas con redundancia. Ejemplo: LANs donde se usa dos bits físicos para cada bit lógico. Entonces quedan dos combinaciones para la señalización.
  • Una combinación del número de caracteres con uno de otros métodos es también posible.

Control de errores

  • Se usan los acuses de recibo positivos y negativos.
  • Para manejar el caso donde se pierde el marco o el acuse, el remitente mantiene temporizadores.
  • Para evitar marcos duplicados se usan números de secuencia.

Control de flujo

  • Se usan protocolos que prohiben que el remitente pueda mandar marcos sin la permisión implícita o explícita del recibidor.
  • Por ejemplo, el remitente puede mandar n marcos y entonces tiene que esperar.

Detección y corrección de errores

  • Los errores en los troncales digitales son raros. Pero son comunes en los local loops y en la transmisión inalámbrica.
  • En algunos medios (por ejemplo, el radio) los errores ocurren en grupos (en vez de individualmente). Un grupo inicia y termina con bits invertidos, con algún subconjunto (posiblemente nulo) de los bits intermedios también invertidos. - Ventaja: Si tuviésemos una taza de 0,001 errores por bit y bloques de 1000 bits, la mayoría de los bloques tendrían errores. Pero con los errores en grupos, no. - Desventaja: Los errores en grupo son más difíciles de detectar.
  • Enfoques:
    • La corrección de errores. Transmitir información redundante que permite deducir que debía ser un carácter transmitido.
    • La detección de errores. Transmitir solamente suficiente información para detectar un error.
  • Términos:
    • Un codeword de n bits consiste en m bits de dato y r bits de redundancia o chequeo.
    • La distancia de Hamming de dos codewords es el número de bits distintos. Es decir, haga el XOR de los codewords y cuenta el número de unos.
  • Normalmente todos los 2 m^ mensajes de dato son legales, pero no los 2^ n^ codewords debido a la manera en que se calcula los bits de chequeo.
  • Se pueden construir todos los codewords legales y entonces encontrar los dos con la distancia de Hamming mínima. Esta es la distancia de Hamming del código.
  • Para detectar d errores se necesita un código de distancia de Hamming de d+1, porque entonces d errores únicos de bit no pueden cambiar un codeword válido a otro codeword válido.
  • Para corregir d errores se necesita una distancia de 2d+1. Aun cuando hay d cambios, el codeword original todavía está más cerca que cualquier otro.
  • Ejemplos:
    • Un código usa un solo bit de paridad que se añade así que el número de unos es par. Tiene una distancia de dos y puede detectar los errores únicos.
    • Un código tiene los cuatro codewords 0000000000, 0000011111, 1111100000, y 1111111111. La distancia es cinco; el código puede corregir dos errores. Por ejemplo, interpreta 0000000111 como
  • Supon que queremos corregir los errores de un bit. Necesitamos un código con una distancia de tres. Dado m, ¿qué debe ser r? - Hay 2 m^ mensajes legales. Cada uno tiene n codewords ilegales a una distancia de uno que se forman invirtiendo individualmente cada uno de los n bits del codeword.
  • Con dos errores tendremos E(x) = xi^ + xj^ = xj^ (xi-j^ +1). Podemos usar un G(x) que no divide xk^ +1 para cualquier k hasta el valor máximo de i-j (que es la longitud del marco). Por ejemplo, x^15 +x^14 +1 no divide xk^ +1 para k<32768.
  • Si x+1 es un factor de G(x), podemos detectar todos los errores que consisten en un número impar de bits invertidos. Prueba por contradicción: Asume que E(x) tiene un número impar de términos y es divisible por x+1. Entonces E(x) = (x+1)Q(x) por algún Q(x). E(1) = (1+1)Q(1) = (0)Q(1) = 0. Pero E(1) debe ser 1 porque consiste en la suma de un número impar de 1's.
  • Podemos detectar todos los errores en grupo con longitudes menos de o igual a r. Si el grupo tiene una longitud de k, lo podemos escribir como xi^ (xk-1^ +...+1) (i ubica el grupo en el marco). Si G(x) contiene un término de x^0 , xi^ no puede ser un factor y G(x) no puede ser igual a xk-1^ +...+1 (el grado k-1 es menos de r). Si el grupo tiene una longitud de r+1, la probabilidad que el grupo es G(x) es la probabilidad que los r- bits intermedios del grupo son iguales (por definición el primer y el último bits del grupo son 1), que es (1/2)r-^.
  • Para los grupos con longitudes mayor de r+1, la probabilidad es (1/2)r^.
  • Estándares internacionales:
    • CRC-12 = x^12 + x^11 + x^3 + x^2 + x + 1
    • CRC-16 = x^16 + x^15 + x^2 + 1
    • CRC-CCITT = x^16 + x^12 + x^5 + 1 Los dos últimos detectan todos los errores de uno y dos bits, los errores con un número impar de bits invertidos, los grupos de errores con longitudes menos de o igual a 16, 99,997% con longitudes de 17, y 99,998% con longitudes mayor o igual a 18.

Protocolos elementales de enlace

  • Suposiciones iniciales:
    • Máquina A quiere mandar un flujo de datos a B usando un servicio confiable orientada a la conexión. El servicio es simplex.
    • Los niveles de red de A y B están siempre listos. Por ejemplo, A siempre tiene datos listos para mandar.
    • El canal nunca pierde ni daña los marcos.
    • El hardware hace el checksum (necesario cuando eliminamos la condición precedente). sender1() receiver1() { { frame s; frame r; packet buffer; event_type event;

while (true) { while (true) { from_network_layer(&buffer); wait_for_event(&event); s.info = buffer; from_physical_layer(&r); to_physical_layer(&s); to_network_layer(&r.info); } } } }

  • Cambio: El nivel de red de remitente no puede aceptar siempre los datos. Debemos prevenir que el remitente satura el recibidor. - Insertar un retraso fijo no es deseable, porque fija el caso peor como el caso normal. - El recibidor manda un acuse de recibo después de cada marco; el remitente tiene que esperar el acuse (un protocolo de parar-y-esperar ). - El medio tiene que ser half-duplex aunque el servicio todavía es simplex. sender2: receiver2: while (true) while (true)

from_network_layer(&buffer) wait_for_event(&event) s.info = buffer from_physical_layer(&r) to_physical_layer(&s) to_network_layer(&r.info) wait_for_event(&event) to_physical_layer(&s)

  • Cambio: Se pueden dañar o perder los marcos.
    • Una posibilidad: Añadir un temporizador al remitente. El remitente manda el marco, y el recibidor manda un acuse solamente si los datos fueron recibidos correctamente (se descartan los marcos dañados). Después de algún tiempo el remitente manda el marco de nuevo. ¿Cuál es el problema? Se pueden duplicar los marcos si un acuse es perdido.
    • Solución: El remitente inserta un número de secuencia en en encabezamiento del marco. Este permite que el recibidos pueda distinguir entre marcos nuevos y duplicados.
    • ¿Cuántos bits necesitamos para el número de secuencia? Necesitamos distinguir solamente entre m y m+1 después de que el recibidor manda el acuse de m (depende de que el acuse es recibido por el remitente o no). No podemos recibir el marco m+2 porque el recibidor no va a mandar el acuse de m+1 (que permite al remitente mandar el marco m+2) hasta que reciba el marco m+1. Entonces se necesita solamente un bit para distinguir entre las dos posibilidades. sender3: receiver3: next_frame_to_send = 0 frame_expected = 0 from_network_layer(&buffer) while (true) while (true) wait_for_event(&event) s.info = buffer if (event == frame_arrival) s.seq = next_frame_to_send from_physical_layer(&r) to_physical_layer(&s) if (r.seq == frame_expected) start_timer(s.seq) to_network_layer(&r.info) wait_for_event(&event) inc(frame_expected) if (event == frame_arrival) to_physical_layer(&s) // ACK from_network_layer(&buffer) inc(next_frame_to_send) El período de espera en el remitente tiene que ser suficiente largo para prevenir las expiraciones prematuras. ¿Por qué?

Protocolos de ventana deslizante

  • Hemos tenido la restricción que la transmisión de datos es simplex, aunque el canal de transmisión es dúplex o full-dúplex. Esta restricción malgasta la mitad del ancho de banda del canal.
  • Nuestro primer paso es eliminar esta restricción. Ambos los marcos de datos y los acuses de recibo pueden fluir en ambas direcciones. Podemos usar un campo en el encabezamiento de cada marco que especifica su clase (datos o acuse).
  • Un segundo mejoramiento es lo siguiente: Cuando un marco de datos llega, el recibidor no manda inmediatamente un acuse. En vez de esto, espera hasta que su nivel de red le pase un paquete de datos (recuerda que el flujo de datos ahora es full-dúplex). Cuando el paquete está listo, se añade el acuse para el marco recibido antes. Entonces, se combinan en un solo marco un acuse y un paquete de datos. Se llama este proceso piggybacking.
  • Ventajas principales de piggybacking:
    • Mejor uso del ancho de banda. El campo de acuse de recibo en un encabezamiento de marco de datos es solamente pocos bits, mientras que un marco que es solamente un acuse consiste en los bits, un encabezamiento, y un checksum.
    • Menos marcos mandados implica menos interrupciones de llegada de marco en el recibidor, y quizás menos buffers en el recibidor también.