[Linux] Capa de enlace de datos: protocolo Ethernet

La moderación no es igual a la opresión, y la calma y la racionalidad no son iguales a la indiferencia y el entumecimiento.

inserte la descripción de la imagen aquí


1. Tramas Ethernet y paquetes de reenvío LAN

1. El principio de reenvío LAN (basado en el protocolo Ethernet)

1.
(1) IP proporciona la capacidad de enviar paquetes de datos a través de la red. Esta capacidad en realidad se logra mediante subredes + IP de destino + consulta de la tabla de enrutamiento del nodo, pero de hecho, los paquetes de datos primero deben poder enviarse dentro la LAN. Reenvío al host de destino, solo con esta capacidad, el paquete de datos puede cruzar las LAN una por una y finalmente enviar el paquete de datos al host de destino.
Por lo tanto, la esencia de la transmisión entre redes es el resultado del reenvío de paquetes de datos a través de innumerables LAN. Para comprender todo el proceso de reenvío de paquetes de datos en la red, solo necesitamos comprender el reenvío de paquetes de datos de LAN.
(2) Actualmente, las tecnologías de comunicación de red de área local más comunes son Ethernet, LAN inalámbrica y red Token Ring (estas tres tecnologías utilizan direcciones MAC en la capa de enlace de datos). Ya en la década de 1970, IBM inventó la red de área local. La tecnología Token Ring Network, pero más tarde en la década de 1980, la tecnología de comunicación LAN entró en la marea de Ethernet, y la mayoría de los fabricantes que originalmente proporcionaban equipos Token Ring también se retiraron del mercado. En el tipo de LAN actual, Token Ring Network ha estado en Bueno, cuando entramos en la era de los dispositivos móviles, en 1990, un médico extranjero llevó a su equipo a inventar la tecnología LAN inalámbrica, es decir, la tecnología wifi, que lograba la misma transmisión rápida y estable que las redes cableadas, y en 1996 , solicitó una patente de tecnología de red inalámbrica en los Estados Unidos.
Lo que estoy aprendiendo hoy es la tecnología Ethernet.

inserte la descripción de la imagen aquí

2.
(1) El siguiente es el formato de la trama MAC. Hay dos tipos principales de tramas MAC, uno es el mensaje IP con carga útil normal transmitido desde la capa superior y el otro es la carga útil de la capa de enlace de datos misma. , incluida la solicitud / respuesta ARP o la solicitud / respuesta RARP, este tipo de mensaje se discutirá cuando se hable del protocolo ARP. El protocolo ARP y la tecnología Ethernet son las dos partes más importantes de la comunicación LAN por cable actual. Hay un campo PAD al final del segundo tipo de mensaje, que es un campo de relleno y se utiliza para completar la longitud del mensaje. Debido a que la capa de trama MAC estipula que la carga útil mínima no puede ser inferior a 46 bytes, Debe completarse con una longitud de 18 bytes, pero el campo de llenado en el lado receptor se ignorará directamente y PAD no tendrá un impacto real en la comunicación, por lo que podemos ignorarlo directamente.
(2) La trama MAC incluye una dirección MAC de destino de 6 bytes y una dirección MAC de origen, y un campo de tipo de dos bytes, 0800 es una trama MAC normal, 0806 y 8035 representan tramas MAC que encapsulan respuestas de solicitud ARP y RARP, y 4 La suma de verificación CRC del byte, esta suma de verificación CRC se ha visto en la capa de transporte, la capa de red y la capa de enlace de datos, y es un viejo amigo. La composición de la trama MAC sigue siendo muy simple, los campos más importantes son el tipo y la dirección MAC de origen y la dirección MAC de destino.
(3) Hablando de los dos temas que siempre hemos sido inseparables del protocolo, ¿cómo separar el encabezado y la carga útil? ¿Cómo dividirlo?
El protocolo MAC utiliza un encabezado de longitud fija para separar el encabezado de la carga útil. Al leer, primero puede leer los datos del encabezado de 14 bytes en la dirección hacia adelante y luego leer los datos del encabezado de 4 bytes restantes en la dirección inversa. Entonces el encabezado y la carga útil se pueden separar. Al dividir, nos basamos en el campo de tipo para dividir. Si es 0800, se entregará al protocolo IP. Si es 0806, se entregará al protocolo ARP. Si es 0806, se entregará al protocolo ARP. es 0835, será entregado al protocolo RARP

inserte la descripción de la imagen aquí
El siguiente es el proceso de intercambio ascendente de la capa de enlace de datos, la capa de red y la capa de transporte. El intercambio se puede reflejar en los campos de encabezado de sus respectivos protocolos, como el campo de tipo de 16 bits del protocolo Ethernet, 0800, 0806. , 0835 y el protocolo IP. Campo de tipo de 8 bits, ICMP es 1, TCP es 6, UDP es 17, el número de puerto de destino de 16 bits del protocolo TCP o UDP.
inserte la descripción de la imagen aquí

3.
(1) Cuando m1 construye una trama MAC y la envía a la LAN, cada host en la LAN recibirá la trama de datos, pero los hosts m2 ~ m7 reciben la trama de datos y leen el encabezado de la trama de datos. descubrió que la dirección MAC de destino no era su propia dirección MAC, por lo que después de recibir la trama de datos, estos hosts descartarían el mensaje en su propia capa de enlace de datos, pero solo el host m8 no lo descartaría. En este momento, m8 separará el encabezado de la carga útil y luego lo dividirá hacia arriba hasta que finalmente pase a la capa de aplicación de m8. Por el contrario, si m8 quiere responder un mensaje al host m1, el principio es el mismo: también encapsulará una trama de datos con la dirección MAC de destino como m1 y luego enviará la trama de datos a la LAN. En la LAN, solo m1 recibe el marco de datos, que será descartado y otros hosts descartarán el marco de datos en su propia capa de enlace de datos. Así es como se comunica la tecnología Ethernet en una LAN. (Chestnut: el maestro le pidió a Zhang San que respondiera la pregunta y toda la clase la escuchó, pero ninguno de los otros estudiantes se levantó para responder la pregunta, solo Zhang San se levantó y respondió la pregunta) (2) En el área local red, la tarjeta de red tiene un modo llamado
Modo promiscuo, nuestra tarjeta de red no habilitará este modo de forma predeterminada. La característica de este modo es que no renuncia a ningún marco de datos y los entrega directamente a la capa de red. Esto también es El principio de muchas herramientas de captura de paquetes LAN.

inserte la descripción de la imagen aquí

2. MTU Ethernet y dirección MAC

1.
La dirección MAC es la dirección física de la máquina. La dirección MAC de 6 bytes es única a nivel mundial, porque el número de direcciones MAC compuestas de 48 bits es de 1.700 millones de direcciones. Según las estadísticas de finales de 2020, el global acceso a la red Hay alrededor de 30 mil millones de dispositivos, por lo que las direcciones MAC no son tan escasas como las direcciones ipv4, ¡las direcciones MAC definitivamente son suficientes!
Cuando el paquete de datos se enruta y reenvía en la red, la dirección IP describe el host de origen y el host de destino final, mientras que la dirección MAC describe el inicio y el final del siguiente intervalo de salto.

2.
En la red de área local, si los datos son particularmente largos, la probabilidad de colisión de datos aumentará, al igual que si los soldados en el campo de batalla son más grandes, el objetivo será más grande y la probabilidad de ser alcanzado por las balas será mayor. mayor y enviar datos Cuando se enmarca el marco, los datos también deben tener un valor determinado, los datos no deben ser demasiado cortos, ¿no? ¿Dividir una oración en tres oraciones? Por lo tanto, cuando se transmiten datos, no es bueno ser demasiado grande ni demasiado pequeño. El protocolo Ethernet estipula el rango de tamaño de la carga útil de la trama de datos. El máximo no puede exceder el límite superior de MTU1500. bytes, y el mínimo no puede ser inferior al límite inferior de 46 bytes.

inserte la descripción de la imagen aquí
3.
(1) No solo el host de envío puede fragmentar el mensaje, sino que los enrutadores en la ruta también pueden fragmentar el mensaje. Por ejemplo, en la figura siguiente, el host de envío utiliza tecnología FDDI para el rendimiento de la primera transmisión de datos. Aumente el valor de MTU y establezca el valor de MTU en 4532 bytes, pero cuando el enrutador transfiere al host de destino, el protocolo Ethernet del enrutador estipula que la MTU es de 1500 bytes, por lo que en este momento el enrutador actualizará la IP en su propia capa de red Los paquetes están fragmentados.
Además de esta situación, también es posible que el host ya haya fragmentado el paquete en la capa IP cuando la MTU es 1500, pero es posible que la MTU del enrutador en la ruta sea 500. En este momento, el enrutador Es posible que aún continúe fragmentando los paquetes que se han fragmentado. (2) Si no queremos que los nodos en la ruta de enrutamiento continúen fragmentando el mensaje, podemos configurar el campo de bandera de 3 bits en el encabezado IP para prohibir la fragmentación. Si la MTU de un nodo en la ruta es demasiado pequeña, Cuando desea fragmentar el mensaje, pero está prohibido fragmentarlo, el enrutador descartará el mensaje en este momento. Cuando el remitente no recibe el segmento de respuesta durante mucho tiempo, el remitente retransmitirá el mensaje después de un tiempo de espera En este momento, se volverá a planificar la ruta de enrutamiento del paquete y se encontrará una ruta con el máximo rendimiento.
(3) Si no desea encontrar la ruta con el rendimiento máximo, pero desea encontrar la ruta con la velocidad de transmisión más rápida, entonces podemos reducir el tamaño del volumen de datos y la capa IP puede encontrar la velocidad de transmisión más rápida. al enrutar la ruta de acceso.

inserte la descripción de la imagen aquí

4.
De hecho, hemos hablado de los siguientes temas, no es más que la relación entre MSS y SMSS, y la cantidad de segmentos de datos enviados por la ventana deslizante, para evitar la fragmentación de la capa IP, el campo de opción del encabezado TCP contiene negociación mutua entre las dos partes, la opción de tamaño de MSS tipo = 2 y el impacto en la pérdida de paquetes de datos cuando se produce la fragmentación de IP. De hecho, hemos hablado de estas en la capa IP y la capa TCP anteriores, aquí hay una breve mención, si lo has olvidado, puedes pasar al artículo que escribí antes.

[Linux] Protocolo de capa de transporte: UDP y TCP

[Linux] Protocolo de capa de red: IP
inserte la descripción de la imagen aquí

2. Colisión de datos en LAN

1. ¿Cómo solucionar la colisión de datos en la LAN? (algoritmos de detección y prevención de colisiones)

1.
(1) En la red de área local, varios hosts deben enviar datos al mismo tiempo y, mientras todos los hosts envíen datos, habrá interferencia entre los datos, lo que en informática se denomina colisión de datos. (El maestro le pidió a Zhang San que respondiera la pregunta, pero todos los estudiantes de la clase estaban twitteando, Zhang San no podía escuchar lo que decía el maestro y otros estudiantes interferían entre sí cuando hablaban) (2) Por lo tanto, la
capa de enlace de datos estipula que en cualquier momento, solo un host envía mensajes. Si hay varios hosts que envían mensajes al mismo tiempo, después de que los datos se envían y colisionan, dichos datos se convertirán en datos no válidos.
(3) ¿Cómo juzgar que los datos enviados por el host han chocado? Los datos enviados por m1 también serán recibidos por el propio m1. Si los datos recibidos por m1 no son consistentes con los datos enviados por sí mismo, el marco de datos recibido definitivamente cometerá un error durante la verificación CRC. En este momento, significa que el datos enviados por m1 Los fotogramas colisionaron. Entonces hay otro nombre para LAN, que se llama dominio de colisión.

inserte la descripción de la imagen aquí

2.
¿Cómo garantizar que en un dominio de colisión solo un host pueda enviar datos a la vez?
De hecho, diferentes tecnologías de comunicación LAN tienen diferentes soluciones.
(1) El método adoptado por la red Token Ring es exiliar los datos de Token Ring a la LAN, y solo el host que contiene los datos de Token Ring puede enviar un mensaje. Después de enviar el mensaje, los datos de Token Ring se envían a la red. LAN De esta manera, se puede garantizar que solo un host envíe datos a la vez y que no habrá colisiones causadas por varios hosts que envíen datos al mismo tiempo.
(2) Cuando el host A y el host B chocan al enviar datos, en este momento se activará la estrategia del protocolo Ethernet. La estrategia también es muy simple: evitar temporalmente que el host A y el host B envíen datos y dejar que esperan el uno al otro, espere y envíe nuevamente, el tiempo de espera es aleatorio, dependiendo de la situación, mientras A y B esperan, otros hosts en la LAN pueden enviar tramas de datos, y después de que A y B esperan, envían datos al LAN nuevamente. La probabilidad de colisión será muy baja.
(3) Cuando los datos chocan, la estrategia implementada por Ethernet se llama algoritmo de detección y evitación de colisiones. De hecho, esta estrategia es muy simple: la cantidad de datos enviados por el host y no subestime la velocidad a la que La señal fotoeléctrica (datos binarios) se propaga en la LAN. La LAN no es tan grande y el número de hosts que aloja no es muy grande, por lo que para la señal fotoeléctrica rápida, se producen colisiones. La probabilidad del evento en sí es baja. por lo que una estrategia que parece poco confiable, como esperar un rato antes de publicar, es en realidad muy efectiva.
De hecho, ya en 1980, cuando se lanzó la tecnología Ethernet, muchas personas no eran optimistas acerca de los estándares técnicos de Ethernet. No solo pensamos que el algoritmo para detectar y evitar colisiones era demasiado aleatorio, sino que la gente en ese momento también pensaba Entonces, y en ese momento, algunas instituciones profesionales relevantes también sacaron conclusiones: en teoría, la eficiencia y confiabilidad de la prevención de colisiones del token ring debería ser mayor, pero cuando se adopta Ethernet en la práctica, se sabe que Ethernet es muy fragante. Luego, Ethernet se promovió rápidamente en un área grande, mientras que la red Token Ring gradualmente perdió interés.

3.
Dado que pueden ocurrir colisiones de datos cuando varios hosts en la LAN envían datos, ¿eso significa que si tengo un host que envía continuamente datos basura a la LAN, este host no realiza la detección y evitación de colisiones?Algoritmo, entonces otros hosts en ¿Esta LAN no podrá enviar datos todo el tiempo? ¿Significa que este host ha pirateado la LAN?
De hecho, este es el caso. Existen herramientas de este tipo en Internet, pero no sé qué es esta herramienta. Si la tiene, puede intentar hacerlo en la LAN de su casa para ver si puede piratear la LAN de su casa. .

2. ¿Cómo volver a mirar la red de área local? (perspectiva del sistema)

Dijimos anteriormente que solo puede haber un host en la LAN que envíe datos a la LAN en cualquier momento, entonces, ¿podemos considerar la LAN como un recurso crítico? Y los algoritmos de detección y evitación de colisiones pueden proteger los recursos críticos y garantizar que solo un host pueda acceder a los recursos críticos. ¿No es esto equivalente a un mutex o una variable de condición? ¿Y los llamados datos token ring no son equivalentes a un mutex? ¡Quien tenga el candado puede acceder a recursos críticos!
Por lo tanto, el sistema y la red son inseparables. Los dos pueden estar separados a nivel de código, pero en términos de conceptos de diseño e ideas de diseño de ciertas estrategias, ¡los dos deben superponerse!

3. La LAN es muy grande, cómo reducir la probabilidad de colisión de datos (el conmutador divide el dominio de colisión + reenvío de hardware)

1.
La LAN no debe ser muy grande, porque si es grande, aumentará el número de hosts y aumentará la probabilidad de colisión.
El wifi del teléfono móvil es en realidad un Ethernet inalámbrico. En las escuelas, como los patios de recreo, todos van a participar en actividades. En este momento, todos están conectados al wifi del campus. En este momento, todos estarán en la misma red de área local. ., la probabilidad de colisión será muy alta, y una vez que ocurra una colisión, se ejecutará el algoritmo de detección y evitación de colisiones, y el teléfono móvil u otros dispositivos conectados a la red esperarán un momento, y se refleja intuitivamente que Siento que la velocidad de la red es muy lenta y siento que la red está demasiado estancada.
Incluso si el teléfono móvil usa datos, en realidad será muy lento, porque puede que solo haya una estación base en su entorno. Por ejemplo, cuando estás en una clase grande, muchos estudiantes usan tarjetas de datos de China Unicom. Te sientas en un En el salón de clases grande, cuando accede a Internet, sus datos y los de otros estudiantes se reenviarán a la estación base Unicom cercana, y la potencia de la estación base debe tener un límite superior. Usted y sus compañeros están enviando datos a la estación base. En este momento los datos pueden colisionar en el canal inalámbrico, por lo que su teléfono móvil se atascará al navegar por Internet. Además, puede deberse a que la carga de la estación base ya es relativamente alta y la solicitud de datos no se puede procesar a tiempo, lo que provocará un mayor retraso en la red. Intuitivamente, nuestro teléfono móvil se sentirá muy atascado.

La siguiente es una foto de una estación base cerca de mi casa, no sé a qué operador pertenece, algún día le echaré un vistazo.
inserte la descripción de la imagen aquí
2.
Si la LAN es muy grande, como en una escuela, aún quiero mejorar la eficiencia de transmisión de la red y reducir la probabilidad de colisiones de datos, ¿hay alguna otra manera? Sí, simplemente introduzca un interruptor
(1) El interruptor reducirá la probabilidad de colisión de datos al dividir el dominio de colisión. En cualquier momento, solo un dispositivo en cada dominio de colisión puede enviar datos, lo que reduce la cantidad de dispositivos en el dominio de colisión para reducir Probabilidad de colisión al enviar datos.
(2) El conmutador tiene la capacidad de reenvío de hardware, que puede reenviar datos directamente al dispositivo de destino sin transmitir los datos a toda la LAN. Este método punto a punto puede reducir el rango de propagación de los paquetes de datos en la red y reducir la probabilidad de colisión. Por ejemplo
, cuando los hosts de la izquierda se comunican entre sí, el conmutador no reenviará los mensajes de la izquierda al dominio de colisión de la derecha. Si se produce una colisión de datos cuando los hosts de la izquierda se comunican , el conmutador no reenviará los datos de colisión al dominio de colisión del lado derecho para evitar una mayor propagación de los datos de colisión. La situación en el lado derecho es la misma que en el lado izquierdo, y cuando el lado izquierdo quiere comunicarse con el host derecho, el conmutador puede reenviar los datos directamente al dispositivo de destino correcto.

inserte la descripción de la imagen aquí

3. protocolo ARP

1. El proceso de conversión de ARP de una dirección IP conocida a una dirección MAC desconocida

1.
Cuando hablamos antes sobre la comunicación Ethernet, dijimos que debemos enrutar paquetes de datos al siguiente salto en la LAN, de esta manera transmitir paquetes de datos a través de múltiples redes, pero queremos enviar paquetes de datos a La posición del siguiente salto debe ser la trama de datos se transmite en el cable de red, y si desea transmitirla en forma de trama de datos, la capa de red debe entregarla hacia abajo y luego encapsular el encabezado de la trama, que contiene la dirección MAC de origen y la dirección MAC de destino. En este campo, la dirección MAC de origen es fácil de resolver, pero ¿cómo sabe el remitente la dirección MAC de destino del nodo del siguiente salto? Nadie le dijo a la dirección MAC de destino de la capa de enlace de datos ¿cuántos ah? En ese momento, desde la perspectiva de Dios, dijimos que el paquete de datos se envió al host del siguiente salto, pero en la comunicación real, el encabezado MAC debe estar encapsulado y la dirección MAC de destino es desconocida, entonces, ¿cómo encapsularlo? el encabezado MAC? De hecho, aquí falta un papel clave, el protocolo ARP. Aunque no conocemos la dirección MAC de destino, ¡sabemos la dirección IP del próximo salto! Lo que hace el protocolo ARP es convertir la dirección IP en una dirección MAC. Después de conocer la dirección MAC, el mensaje IP se puede entregar hacia abajo y el encabezado de la trama MAC se encapsula en la capa MAC y luego a través de la interfaz Ethernet Iface. La trama de datos se envía al host de destino.
Podemos entender que el protocolo ARP está por encima de la capa MAC en la capa de enlace de datos. Si el remitente no conoce la dirección MAC del nodo del siguiente salto, primero puede obtener la dirección MAC del nodo del siguiente salto a través de ARP. protocolo, y luego se entrega a la capa MAC, se encapsula el encabezado de la trama MAC y finalmente se envía a la LAN.

2.
El siguiente es el formato de trama MAC para encapsular la solicitud/respuesta ARP. El tipo de hardware se refiere al tipo de red de la capa de enlace, 1 es Ethernet y el tipo de protocolo indica el tipo de dirección que se va a convertir. El valor es 0x800, indica la dirección IP, hardware El valor de la longitud de la dirección es 6, lo que indica la longitud de la dirección MAC de Ethernet, y el valor de la longitud de la dirección del protocolo es 4, lo que indica la longitud de la dirección IP. Los valores de estos cuatro campos son fijos y no tienen valor.
Si el campo op es 1, significa una solicitud ARP, si el campo op es 2, significa un mensaje de respuesta ARP, los últimos cuatro campos, solo la dirección Ethernet de destino, no sabe qué completar cuando no obtenga el valor de la dirección MAC de destino, generalmente configure este campo. Para todos los F, los campos principales son estos 5 campos.

inserte la descripción de la imagen aquí
No importa cuál sea su tecnología LAN, debe tener la capacidad de convertir una dirección IP en una dirección MAC, porque tecnologías como LAN inalámbrica, Ethernet, Token Ring, etc., todas usan direcciones MAC.
Debido a que el protocolo ARP se encuentra en la capa superior de la trama MAC, el formato de trama Ethernet no solo puede encapsular paquetes IP, sino también solicitudes o respuestas ARP.

inserte la descripción de la imagen aquí

3.
(1) De hecho, el principio de la solicitud ARP es muy similar a la tecnología Ethernet. El host m1 ha completado todos los campos en el encabezado ARP en la capa ARP. El campo más importante es la IP de destino (en realidad, la IP de destino). IP del nodo del siguiente salto La dirección no es la dirección IP del host de destino final), no es difícil completar este campo, puede consultar la tabla de enrutamiento del nodo para determinar la dirección IP del nodo del siguiente salto. después del llenado, se entrega a la capa MAC. MAC Después de que la capa encapsula el encabezado MAC, envía la trama MAC a la LAN.
(2) Dado que la dirección MAC de destino en el encabezado MAC es toda F, todos los hosts en todas las LAN recibirán la trama de datos y separarán el encabezado de la carga útil, y luego observarán el campo de operación del mensaje ARP y encontrarán que es 1, significa que es una solicitud ARP, y luego todos los hosts compararán si su dirección IP es igual a la dirección IP en la solicitud ARP. Si son iguales, encontrará que esta solicitud ARP se envía a mi host, y luego este host leerá el contenido restante del encabezado ARP, completando así el proceso de solicitud ARP (3) y luego el host receptor construirá una respuesta ARP y la enviará de regreso al host de origen. La respuesta ARP es simple, porque al leer una solicitud ARP, el host receptor ya conoce la dirección MAC y la dirección IP del remitente, por lo que para crear una respuesta ARP, solo necesita ingresar su propia dirección IP y dirección MAC en el ARP. mensaje de respuesta, y complete el campo op con 2 para indicar el mensaje de respuesta ARP, y luego complete otros campos fijos y finalmente encapsule una capa de encabezado de trama MAC y luego envíelo a la LAN.
Cuando todos los hosts reciben el mensaje, el host que no es de destino descartará el mensaje en la capa MAC, porque después de leer el encabezado MAC, se descubre que la dirección MAC de destino no coincide con su propia dirección MAC, y solo el host m1 Después Al recibir el mensaje, el encabezado y la carga útil se dividirán y la respuesta ARP se entregará a la capa ARP. Después de que m1 lea el contenido de la respuesta ARP, sabrá la dirección MAC del nodo del siguiente salto. En este momento , puede encapsular el paquete IP en posición vertical y enviar la trama de datos de tipo 0800 a la LAN.

inserte la descripción de la imagen aquí
4.
(1) Otra situación es que solo conocemos la dirección MAC de la otra parte, pero no su dirección IP. Un enrutador no puede enviar tramas de datos y ahora solo conoce la dirección MAC del enrutador. Quiere verificar si la dirección IP que asignó al enrutador ha cambiado, por lo que en este momento otro host necesita comunicarse con el enrutador a través del protocolo RARP y el enrutador inicia una solicitud RARP para obtener la dirección IP del enrutador.
(2) El formato de RARP es el mismo que el de ARP, y el principio es en realidad similar: el host de destino recibe la solicitud RARP a través de transmisión, y luego el host de destino encapsula su propia dirección IP en un mensaje de respuesta RARP y la envía. Volver al host de origen El principio Es similar a ARP, por lo que no entraré en detalles aquí.

inserte la descripción de la imagen aquí

2.caché ARP

(1) Cuando el host emisor determinará primero la dirección IP del nodo del siguiente salto a través de la tabla de enrutamiento ip + de destino en la capa IP y luego enviará la trama de datos a la LAN, pero si el host no conoce la MAC dirección de la dirección del nodo del siguiente salto, se puede realizar una solicitud ARP para convertir la dirección IP conocida del nodo del siguiente salto en una dirección MAC desconocida, y luego el host emisor puede encapsular la trama MAC para la transmisión de datos.
(2) Una LAN no es muy grande, por lo que el enrutador puede enviar solicitudes ARP a todos los hosts en la LAN que administra, primero obtener las direcciones MAC de todos los hosts con anticipación y luego crear una tabla de caché ARP y enviar a cada host. La relación de mapeo entre la dirección IP y la dirección MAC se guarda en la tabla de caché ARP como una entrada. De esta manera, si un paquete de datos llega al enrutador la próxima vez, después de que el enrutador determine la posición del siguiente salto del paquete de datos en su propia capa IP, puede consultar la tabla de caché ARP y obtener la dirección MAC a través de la dirección IP. mapeo del siguiente nodo sin realizar ARP nuevamente. Solicitud, después de obtener la dirección MAC, el enrutador puede encapsular el mensaje IP en una trama MAC y enviarlo a la LAN. El nodo del siguiente salto recibirá la trama MAC y realizará el procesamiento posterior. del paquete de datos.
(3) Dado que la demanda de ARP es muy grande, para evitar que cada nodo realice solicitudes ARP con frecuencia antes de enviar tramas de datos, además de la tabla de caché ARP del enrutador, siempre que se haya comunicado previamente con algunos hosts en la LAN, luego, cuando le envíe un paquete de datos la próxima vez, no es necesario realizar una solicitud ARP y el propio host almacenará en caché su dirección MAC para un posible uso futuro.
(4) Cabe señalar que este tipo de caché está en el nivel de minutos y se descartará después de un tiempo, porque la dirección IP en la LAN cambia y DHCP asignará dinámicamente la dirección IP del dispositivo conectado a la red. la dirección IP cambia, la relación de mapeo original entre ip y MAC cambiará, por lo que el caché ARP está en el nivel de minutos. Cuando la dirección IP cambia, la entrada de relación de mapeo correspondiente se descartará automáticamente.

El caché arp en la parte derecha de la figura siguiente es el resultado de mi servidor en la nube y mi máquina con Windows, respectivamente.
inserte la descripción de la imagen aquí

3. Suplantación de ARP por parte del intermediario

1.
De hecho, es muy sencillo convertirse en intermediario, siempre que las partes en la comunicación se vean obligadas a actualizar constantemente el caché arp, permítales actualizar el caché arp a la dirección MAC del intermediario y luego el intermediario reenvía los datos. paquetes que envían a la otra parte, completando así el Engaño ARP, de modo que el intermediario obtiene los datos de la comunicación entre las dos partes.
Sin embargo, también tenemos una solución correspondiente, que es el protocolo HTTPS, que cifra el contenido del paquete de datos. A continuación se muestra el enlace al artículo que escribí antes y los detalles se pueden mover.

[Linux] Protocolo de capa de aplicación: HTTP y HTTPS

inserte la descripción de la imagen aquí

2.
Si queremos jugar solos, no necesitamos ser intermediarios. Si quieres matar un determinado host, solo necesitas capturar el paquete de solicitud ARP enviado por este host al enrutador (puedes pisar el punto por adelantado y obtenga la dirección IP del enrutador, filtre los paquetes capturados, averigüe que la IP de destino es el paquete de solicitud de la IP del enrutador al pisar el punto), y luego construya una respuesta ARP, escriba un valor aleatorio del destino Dirección MAC en él y devuélvala a este host. En este momento, el host no se puede conectar a Internet porque la trama de datos enviada por él no puede encontrar el enrutador y la dirección MAC de destino en la trama de datos es incorrecta.

Supongo que te gusta

Origin blog.csdn.net/erridjsis/article/details/132132982
Recomendado
Clasificación