Realmente no puede enviar los datos sin modificación (0V - 0, algo de voltaje positivo - 1) a través de líneas largas, el ruido puede interrumpirlo y también, si los datos contienen muchos "0" o "1" en secuencia, El dispositivo receptor puede perder la cuenta (¿fue 1000 ceros o 1001?), por lo que se utilizan códigos de línea.
RS232, por ejemplo, simplemente envía los datos (también llamado código de no retorno a cero (NRZ)), + 10V para "0" y -10V para "1". Sin embargo, cada byte se inicia con un bit de "inicio" y termina con un bit de "parada". El receptor no "pierde la cuenta" dentro del byte, sin embargo, debe enviar al menos 10 bits para enviar 8 bits de información útil.
Unodeloscódigosmássimplessellamaretornoacero.Aquí"1" está representado por un nivel de voltaje (por ejemplo, + 5V), "0" está representado por otro (por ejemplo, -5V), pero la señal vuelve a cero después de medio bit.
Ahoraelreceptornoperderálacuentadelosunosylosceros,peroestecódigotienedosproblemas.1)Utilizaeldobledelanchodebanda(tieneeldobledelafrecuencia)delavelocidaddebitsy2)sihayunacadenalargade"0" o "1", la señal tendrá un componente de CC, lo que puede ser indeseable.
10Mbps Ethernet utiliza el código de Manchester, que aún utiliza el doble de ancho de banda, pero no tiene componente de CC. Hay dos versiones, básicamente una es la inversa de la otra. En la versión IEEE, "1" se representa por una transición de bajo a alto en el "medio" de un bit y "0" se representa por una transición de alto a bajo en la mitad del bit.
TambiénhayuncódigoMLT-3,queusa3nivelesdevoltaje.Elcódigorecorrelosniveles-1,0,+1.Sinecesitatransmitir"1", el código pasa al siguiente nivel, si necesita transmitir "0", se mantiene igual, así:
Norequierealtasfrecuencias(lafrecuenciaesdeaproximadamente0,25veceslavelocidaddebits),peronoesdetemporizaciónautomática:unalargacadenadecerosharáqueelreceptor"pierda la cuenta".
Sin embargo, también hay otros códigos que se seleccionan de una tabla, por ejemplo, 4b / 5b toma 4 bits de datos y los codifica a 5 bits en el cable. Luego puede usar MLT-3 o NRZ y el receptor no perderá la cuenta. También hay otros códigos: 8b / 10b, 64b / 66b.
Si desea obtener más información, vaya a Wikipedia para leer sobre la codificación de líneas.
Además, un transmisor puede agregar códigos de corrección de errores al flujo de bits, de modo que el receptor pueda detectar y corregir los errores de transmisión, las NIC (al menos Ethernet) generalmente no lo hacen, porque el cable es generalmente confiable y si hay errores , se pasan de la pila para que los protocolos de nivel superior puedan lidiar con ellos.
Para corregir errores, acceda a este artículo de Wikipedia. Comprender la corrección de errores requiere la comprensión de las matemáticas :)