¿Cuál es la necesidad de tener checksum en varias capas? Por ejemplo, hay una suma de comprobación en la capa TCP y nuevamente en la capa IP y también la capa Ethernet lo tiene. ¿No es suficiente tener suma de comprobación en una capa?¿por qué hay una suma de comprobación separada en los encabezados TCP e IP?
Respuesta
Probablemente porque cubren datos diferentes, ¿no?
se necesitan las tres capas, por múltiples razones:
IP no siempre se ejecute a través de Ethernet (imagine IP a través de RS-232 en serie, algo que cada cuadro de Cisco y Unix puede hacer)
IP no se suma de comprobación de los datos
paquetes TCP se pueden volver a montar de forma incorrecta de paquetes IP y fragmentos que tienen cada uno sumas de comprobación perfectos
Incluso si a montar correctamente, software u otros errores podrían introducirse en las capas entre IP y TCP
Incluso si todas las funciones de software correctamente, y TCP/IP es a través de Ethernet, el tamaño limitado de las sumas de comprobación puede ser accidentalmente correcto (y será estar en algún momento, con suficientes paquetes) frente a errores persistentes, por lo que tener más de una suma de comprobación es útil.
Cada vez que se introduce un nuevo encabezado, hay más en la suma de comprobación, y la nueva capa no puede ver los bits del encabezado de la capa siguiente.
La suma de comprobación de Ethernet es una suma de comprobación de salto a salto, lo que significa que se vuelve a calcular cada vez que cambian los campos del encabezado de Ethernet. La suma de comprobación TCP/UDP es una suma de comprobación de extremo a extremo, lo que significa que el emisor la calcula y el receptor la verifica. Las sumas de comprobación TCP/UDP cubren todo el segmento. La suma de comprobación de IP cubre solo el encabezado. Ethernet CRC cubre todo el marco.
Los diseñadores de IPv6 decidieron que no era necesario en todas esas capas y lo eliminaron en favor de sumas de comprobación en otras capas (como las que mencionas).
- 1. Cómo calcular la suma de comprobación TCP
- 2. ¿Cómo valido la suma de comprobación ICMPv6? (¿Por qué sigo recibiendo una suma de comprobación de 0x3fff?)
- 3. Socket de Java: suma de comprobación TCP incorrecta
- 4. ¿Por qué en un paquete IPV4, la suma de comprobación se calcula contra el encabezado IP y no el paquete completo como los protocolos de transporte tcp/udp?
- 5. ¿Por qué no usar SO_REUSEADDR en servidores Unix TCP/IP?
- 6. reparación SVN suma de comprobación
- 7. Suma de comprobación en la cadena
- 8. ¿Comprobación de dominio IP inversa?
- 9. Objective-c Cliente TCP/IP
- 10. ¿Qué algoritmo de suma de comprobación debería usar?
- 11. Omita los encabezados IP con tcpdump
- 12. ¿Por qué request.env ['REMOTE_ADDR'] devuelve dos direcciones IP?
- 13. ¿Se verifica la suma de comprobación de IP en cada enrutador de la ruta?
- 14. Cliente TCP \ IP - EHOSTUNREACH (No hay ruta al host)
- 15. ¿Cómo rompo una conexión TCP/IP arbitraria en Linux?
- 16. Crear una suma de comprobación agregada de una columna
- 17. ¿Liberar un puerto TCP/IP?
- 18. Calcule una suma de comprobación en el iPhone desde NSData
- 19. ¿Por qué SNMP generalmente se ejecuta en UDP y no en TCP/IP?
- 20. ¿Puede Android admitir Zeroconf/Bonjour a través de Bluetooth? ¿Qué hay de TCP/IP?
- 21. ¿Suma de comprobación para una matriz de enteros?
- 22. cálculo de suma de comprobación UDP
- 23. Por qué el módem GPRS proporciona una pila TCP/IP incorporada
- 24. ¿Por qué no hay una comprobación de vacío explícita (por ejemplo, `está vacío`) en Python
- 25. Python, suma de comprobación de un dict
- 26. Cómo volver a calcular la suma de comprobación IP con Scapy?
- 27. ¿Qué alternativa hay para escribir un retransmisor de datos TCP/IP?
- 28. API TCP/IP simple de plataforma cruzada?
- 29. Conectividad TCP/IP a través de DataSnap
- 30. ¿Cómo encontrar una suma de comprobación de la misma suma de comprobación? (pregunta de entrevista de trabajo)
"capa de transporte", "capa de red" y "capa de enlace de datos" son los nombres reales por cierto. – TheTrowser