Ordine byte di rete


8

In base all'ordine dei byte big endian o all'ordine dei byte di rete, i bit vengono trasmessi in questo ordine: prima i bit 0-7, quindi i bit 8-15, quindi i 16-23 e i bit 24-31. Questo significa che i bit della versione, dell'identificazione, del TTL ecc vanno prima e poi i bit dei campi successivi?

inserisci qui la descrizione dell'immagine

Risposte:


6

C'è una confusione qui. L'ordine dei byte di rete non specifica come vengono trasmessi i bit sulla rete. Specifica come vengono memorizzati i valori nei campi multibyte.

Esempio :

Il campo Lunghezza totale è composto da due byte. Specifica in byte la dimensione del pacchetto.

Diciamo che abbiamo il valore 500 per quel campo. Usando il Network Byte Order sarà visto sopra il filo in questo modo, essendo trasmesso da sinistra a destra:

00000001 11110100

Se avessimo usato il formato little endian, sarebbe stato visto sul filo in questo modo:

11110100 00000001

Dopo che l'intero pacchetto è stato creato, i bit verranno inviati a partire dal bit indirizzato più basso dell'intestazione (bit 0), quindi la trasmissione inizierà con il campo Versione .

Un ultimo punto da sottolineare qui è che l'ordine dei byte di rete è, come hai detto, il Big Endian Order. Questo è stato scelto arbitrariamente per avere un formato comune per tutti i protocolli e le implementazioni di rete.


1
Quindi, nel caso in cui il primo campo che andrà sul filo sia la versione, quindi HL, quindi Tipo, quindi Lunghezza totale, quindi Identificazione e così via. Big endian e little endian determinano solo come i bit sono memorizzati nei campi di intestazione.
MUSR,

Sì, hai capito :)
dragosb,

@MUSR: no, determinano l'ordine in cui vengono trasmessi i byte in un campo multi-byte.
EML

3

È molto facile pensare che i pacchetti Internet passino sul filo in un modo molto semplice di "porta seriale". In pratica non c'è nulla di intrinsecamente seriale al riguardo.

Se pensi ad alcuni dettagli dell'interfaccia, potresti rendere questo più chiaro:

  • Prendi in considerazione l'IP della porta parallela, che in realtà invia i dati a 4 bit alla volta su quattro fili. https://en.wikipedia.org/wiki/Parallel_Line_Internet_Protocol
  • Il 100baseTX effettivo crea blocchi a 4 bit e li invia come 5 bit in serie ma i dati originali non sono visibili nell'output, quindi la domanda su quale ordine vanno non ha una risposta. https://en.wikipedia.org/wiki/4B5B
  • Quando si invia un pacchetto attraverso un'interfaccia di loopback, potrebbe essere copiato all'interno del bus del computer a 64 bit alla volta; o in effetti semplicemente rimappando la memoria che sarebbe davvero l'intero pacchetto in parallelo.

Naturalmente l'IP della porta parallela non è comune, ma illustra il punto; gli altri due sono onnipresenti.

spero che aiuti

Jonathan.


2

Altri protocolli possono essere diversi, ma Ethernet trasmette prima l'ottetto / byte più significativo e prima all'interno di ogni bit il bit meno significativo . Quindi, un campo a 16 bit viene trasmesso 8-9-10-11-12-13-14-15 - 0-1-2-3-4-5-6-7 (0 = bit meno significativo, 15 = più bit significativo). Controllare le clausole IEEE 802.3 3.1.1, 3.2.6 e 3.3.

(Questo è per Ethernet puramente seriale - a seconda del livello fisico, è possibile trasferire contemporaneamente fino a otto bit. Inoltre, l'ordine dei bit vale solo per il livello 1 non codificato).

Anche IPv4 utilizza prima l'ottetto più significativo, controllare RFC 791. Tuttavia, la numerazione nelle RFC IETF è in ordine di trasmissione con la numerazione dei bit inversa a Ethernet : Bit 0 = bit più significativo = trasmesso per primo (dove non altrimenti definito).


Gli ottetti confusi e l'ordine dei bit dovrebbero essere: 7-6-5-4-3-2-1 15-14-13-12-11-10-9-8 il primo ottetto è 0-7 il 7 ° bit è il minimo significativo.
Gopoi,

@Gopoi Se numeri i bit in questo modo hai ragione. Tuttavia, di solito "0" è il bit meno significativo (ultimo in forma scritta umana) e "15" è il bit più significativo (primo in forma scritta umana) - in base alla loro potenza di due valori.
Zac67

Ho sempre pensato alla numerazione dei bit come all'ordine di trasmissione poiché le intestazioni RFC sono mostrate in questo modo. Più si conosce!
Gopoi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.