Solo para complementar otras dos respuestas existentes y buenas:
Hay un problema con el ruido. Un transmisor envía un mensaje que de hecho viaja a la velocidad de la luz, y de hecho es recibido y decodificado en un período de tiempo insignificantemente corto. Digamos que la señal es un solo carácter: “!”. Esto está representado por la cadena binaria 00100001.
Ahora, ¿eso significa que el transmisor solo envía la cadena 00100001? El ruido puede dar como resultado que uno de esos bits se voltee, por lo que existe el riesgo de que el receptor reciba la señal 00100000, que es incorrecta en el último dígito. Esta cadena incorrecta corresponde a un espacio en blanco.
- ¿Es un enrutador más rápido que un adaptador?
- ¿Qué antenas son adecuadas para los enrutadores que reciben señales de Free Space Optics?
- ¿El enrutador TP Link TL-WR841n (v11) es compatible con DD-WRT?
- ¿Qué son los enrutadores de red programables?
- Cómo acelerar la conexión inalámbrica de un enrutador antiguo que se está utilizando en una tienda separada como punto de acceso
Pero el receptor no sabe de antemano qué debería recibir. Cuando solo estamos traduciendo la señal “desnuda”, no hay forma de que el receptor detecte que algo está mal con la transmisión. El mensaje aparecerá confuso y el receptor no lo sabe mejor.
¿Cómo resolver eso? Hay dos cosas que puede incorporar a un protocolo de transmisión: detección de errores y corrección de errores. Aquí hay un ejemplo muy simple de cada uno.
Primero hagamos la detección de errores. Un método muy simple es que, en lugar de enviar un “1” o un “0”, enviamos solo pares de 1 o 0. Por ejemplo, en lugar de enviar 00100001, enviamos 00 00 11 00 00 00 00 11. Ahora, si ocurre un solo error de transmisión (digamos, en el último par), podríamos obtener algo como 00 00 11 00 00 00 00 10 . En este caso, el receptor puede decir instantáneamente que el mensaje está en mal estado, porque ninguna transmisión válida puede terminar en “10”. En ese caso, el receptor se puede programar para pedirle al transmisor que envíe el mensaje nuevamente.
Tenga en cuenta, por cierto, que esta técnica solo detecta errores únicos , al menos si no están separados por una transmisión válida. Si obtiene dos errores consecutivos en los últimos dos dígitos, la señal confusa aún se verá como una señal válida.
De acuerdo, ¿qué tal la corrección de errores? Hagamos un truco similar, pero en lugar de duplicar el mensaje, triplicémoslo. Por ejemplo, si quiero enviar el mensaje 00100001, lo codificaría como: 000 000 111 000 000 000 000 111.
Ahora, supongamos que hay un error en la transmisión y el receptor recibe: 000 000 111 000 000 000 000 11 0 . Sabemos que sucedió una de dos cosas: o hubo dos errores en el último bloque de tres bits, o hubo un error en el último bit. Suponiendo que un error es mucho más probable que dos errores consecutivos, puede programar su receptor para que corrija automáticamente el último bloque de 110 a 111.
Si tuviera un canal de comunicación más ruidoso, podría intentar refinar este truco. Por ejemplo, tal vez en lugar de enviar cada bit tres veces, envía cada bit 100 veces. Entonces puede detectar o corregir muchos errores. Pero ahora comienza a ver la compensación: está enviando muchos más datos de los que requiere la señal sin procesar.
El protocolo WiFi real implica (entre otras cosas) la corrección de errores y los códigos de detección de errores. No son tan simplistas como los códigos que he descrito: pueden detectar o corregir errores de manera más eficiente, sin requerir la transmisión de tantos datos adicionales. Pero aún implican transmitir algunos datos adicionales, lo que lleva más tiempo. También requieren hacer un poco más de matemática para validar los datos recibidos, lo que también lleva tiempo. Esa información o procesamiento adicional a veces se denomina “sobrecarga”.
Y ese es solo un problema. Hay otros problemas que también requieren más gastos generales. Por ejemplo, ignore la detección y corrección de errores por un momento. Suponga que puede estar seguro de que cualquier señal sin formato se recibirá correctamente. Digamos que su receptor recibe la señal “00100001.” ¿Qué hace con eso? ¿Cómo sabe, por ejemplo, que fue el destinatario previsto y no la computadora que se encuentra a su lado? Genial, más sobrecarga. ¿Cómo sabe si es una nueva transmisión o una retransmisión de un mensaje recibido erróneamente anterior? Más gastos generales. ¿Cómo sabe que es una señal WiFi genuina y no un ruido aleatorio de un microondas? ¿Cómo se implementa el cifrado, para que los oyentes no autorizados no sepan cuál es la verdadera señal? Más gastos generales.
Tienes la idea …