La frammentazione e il riassemblaggio sono stati illustrati esclusivamente nell'RFC 791. Passare attraverso lo Internet Protocol Specification RFC. La RFC ha varie sezioni che spiegano la frammentazione e il riassemblaggio del campione. Tutti i tuoi dubbi e domande sono ben soddisfatti.
Ans 1: Per quanto riguarda le lunghezze del pacchetto: Il pacchetto originale contiene 4000 byte. Questo pacchetto è un pacchetto IP completo e quindi contiene anche l'intestazione IP. Quindi la lunghezza del carico utile è in realtà 4000 - (Lunghezza intestazione IP i, e. 20).
effettiva Payload Lunghezza = 4000 - 20 = 3980
Ora il pacchetto è frammentato dovuto al fatto che la lunghezza è maggiore della MTU (1500 byte).
Così il 1 ° pacchetto contiene 1500 byte che include intestazione IP + frazione di carico utile.
1500 = 20 (intestazione IP) + 1480 (Payload Data)
Analogamente per l'altro pacchetto.
Il terzo pacchetto contengono rimanendo rimasto dati (3980 - 1480 -1480) = 1020
Così lunghezza del pacchetto è 20 (IP Header) + 1020 (payload) = 1040
Ans 2 : L'offset è l'indirizzo o il localizzatore da cui i dati iniziano con riferimento al carico utile di dati originale. Per IP il carico utile di dati comprende tutti i dati dopo l'intestazione IP e l'intestazione Opzioni. In questo modo il sistema/router prende il carico utile e lo divide in parti più piccole e mantiene la traccia dell'offset con riferimento al pacchetto originale, in modo da poter eseguire il riassemblaggio.
Come indicato nel RFC pagina 12.
"offset campo Il frammento comunica al ricevitore la posizione di un frammento nel datagramma originale. Il frammento Offset e lunghezza determinano la porzione del datagramma originale comprese il frammento di più-frammenti indica (ripristinando) l'ultimo frammento Questi campi forniscono informazioni sufficienti per riassemblare i datagrammi "
Lo scostamento del frammento viene misurato in Unità di 8 byte ciascuno. Ha un campo a 13 bit nell'intestazione IP. Come detto nella pagina RFC 17
"Questo campo indica dove nel datagramma questo frammento belongs.The frammento offset è misurata in unità di 8 ottetti (64 bit). Il primo frammento ha compensato zero."
Così come è stato chiesto nella domanda da dove è venuto questo 8, è lo standard che è stato definito per la specifica del protocollo IP, dove 8 ottetti sono presi come un valore. Questo ci aiuta anche a trasmettere pacchetti di grandi dimensioni tramite questo.
Pagina 28 delle scritture RFC: * I frammenti vengono contati in unità di 8 ottetti. La strategia di frammentazione è progettata in modo che un datagramma non frammentato abbia tutte le informazioni di frammentazione zero (MF = 0, framment offset = 0). Se un datagramma Internet è frammentato, la sua porzione di dati deve essere interrotta su 8 ottetti. Questo formato consente 2 ** 13 = 8192 frammenti di 8 ottetti ciascuno per un totale di 01.di 65.536 ottetti. Si noti che ciò è coerente con la la datagramma lunghezza totale del campo (ovviamente, l'intestazione è contato nella lunghezza totale e non nei frammenti). *
Grazie! Questo ha risposto chiaramente alla prima parte della mia domanda, ma per quanto riguarda la seconda parte, perché dividiamo 1480 per 8 per ottenere l'offset? – JimmyK
aggiornerò la risposta. –
Grazie mille, questo risponde a tutto! Mi sto solo chiedendo, dividiamo SEMPRE per 8? Ci sono circostanze che ci causerebbero di dividerci per un numero diverso? – JimmyK