Qual è la necessità di avere il checksum a vari livelli? Ad esempio, c'è un checksum nel livello TCP e di nuovo nel livello IP e anche il livello Ethernet ce l'ha. Non è sufficiente avere il checksum su un livello?perché esiste un checksum separato nelle intestazioni TCP e IP?
risposta
Probabilmente perché coprono dati diversi, no?
sono necessari i tre strati, per molteplici ragioni:
IP non sempre correre over Ethernet (immaginate IP over seriale RS-232, qualcosa ogni scatola di Cisco e Unix può fare)
IP non checksum i dati
pacchetti TCP possono essere rimontati correttamente dai pacchetti IP e frammenti che ogni hanno checksum ideale
Anche se assemblati correttamente, software o altri errori potrebbero essere introdotti negli strati tra IP e TCP
Anche se tutte le funzioni del software correttamente, e TCP/IP è ethernet, la dimensione limitata delle checksum può essere corregge accidentalmente (e sarà ad un certo punto, dato abbastanza pacchetti) di fronte a errori persistenti, quindi avere più di un checksum è utile.
Ogni volta che viene introdotta una nuova intestazione, c'è più del checksum e il nuovo livello non può vedere i bit di intestazione del livello sottostante.
Il checksum Ethernet è un checksum hop hop - ovvero viene ricalcolato ogni volta che i campi dell'intestazione Ethernet cambiano. Il checksum TCP/UDP è un checksum end-to-end che significa che è calcolato dal mittente e verificato dal ricevente. I checksum TCP/UDP coprono l'intero segmento. Il checksum IP copre solo l'intestazione. Ethernet CRC copre l'intero frame.
I progettisti di IPv6 hanno deciso che non è necessario a tutti questi livelli e rimosso a favore di checksum su altri livelli (come quelli che hai citato).
- 1. Socket Java: checksum TCP errato
- 2. Come calcolare il checksum TCP
- 3. Prestazioni di IPX/SPX e TCP/IP
- 4. Client TCP/IP Objective-c
- 5. checksum nell'intestazione della risposta HTTP - perché no?
- 6. Comunicazione vocale su TCP/IP
- 7. La MTU di un pacchetto TCP include le intestazioni TCP e IPv4?
- 8. Perché in un pacchetto IPV4, il checksum viene calcolato rispetto all'intestazione IP e non all'intero pacchetto come i protocolli di trasporto tcp/udp?
- 9. Come convalido il checksum ICMPv6? (Perché continuo a ricevere un checksum di 0x3fff?)
- 10. Come ottenere l'indirizzo IP di boost :: asio :: ip :: tcp :: socket?
- 11. Esiste già un listener su endpoint IP 0.0.0.0:13000. ?? (TCP using WCF)
- 12. Connessione TCP/IP su un'interfaccia specifica
- 13. Esperienze con stack TCP/IP incorporati (gratuiti)?
- 14. Perché esiste una discrepanza nelle dimensioni tra strutture e unioni?
- 15. boost :: asio :: ip :: tcp :: socket è connesso?
- 16. Come generare pacchetti Tcp, ip e Udp in Python?
- 17. Perché utilizziamo il rilevamento lineare nelle tabelle hash quando esiste un concatenamento separato collegato con le liste?
- 18. "using namespace" nelle intestazioni C++
- 19. Il checksum IP è controllato su ogni router nel percorso?
- 20. Determinazione dell'indirizzo IP e della porta di una connessione TCP/IP in entrata in Erlang
- 21. Connessione a un server TCP/IP tramite script php
- 22. Un checksum TCP può produrre un falso positivo? Se sì, come viene affrontato?
- 23. Ignora le intestazioni IP con tcpdump
- 24. Configurare un client TCP/IP e un server per comunicare su una rete
- 25. Perché c'è un messaggio separato per WM_ERASEBKGND
- 26. TCP e PF_RING
- 27. Perché HTTP usa TCP?
- 28. Come vengono identificate diverse connessioni TCP nelle richieste HTTP?
- 29. Intestazioni di righe e colonne nelle sottotrame di matplotlib
- 30. Come inviare frame Ethernet in Java senza stack TCP/IP
"transport layer", "network layer" e "data-link layer" sono i nomi effettivi btw. – TheTrowser