Perché gli indirizzi IPv4 a 32 bit?


33

Molte lune fa, quando ero solo un wee bairn con inizio la mia carriera, ho avuto un colloquio di lavoro per un ruolo sviluppatore di basso livello. Avendo appena appreso come era stato implementato il CIDR, desideravo mostrare le mie conoscenze.

Purtroppo, quella tattica non ha funzionato troppo bene per me. Ricordo di essere stato completamente pavimentato dalla prima domanda (e poi increspata, tutto è andato in discesa). La domanda era:

Perché gli indirizzi IPv4 a 32 bit?

Ho prontamente ammesso che non conosco la risposta, ma ho fatto sapere che il disegno protocollo originale diviso lo spazio di indirizzamento in un numero di rete a 8-bit e 24-bit del PLC-identificatore così ho cercato di razionalizzare il fatto che i progettisti del protocollo hanno immaginato una rete Internet di poche reti (dopotutto, inizialmente era intesa a collegarne alcune specifiche ) ognuna comprendente molti host e, per semplicità di programmazione, manteneva tutto allineato ai confini dei byte.

Ricordo che l'intervistatore non era soddisfatto della mia risposta e mi suggeriva che il vero motivo è che è garantito che si inserisca in una lettera long intC, semplificando così i dettagli di implementazione. Essendo giovane e verde all'epoca, l'ho accettato come una risposta ragionevole e (prima di oggi) non ci avevo pensato più.

Per qualche ragione quella conversazione è appena tornata da me e, ora che ci rifletto, non sembra del tutto plausibile:

  1. In base allo schema di indirizzamento originale comprendente campi di rete e host di dimensioni fisse, è improbabile che uno sviluppatore avrebbe voluto assegnare la concatenazione dei due campi a una singola variabile (non ho accesso a nessuna delle prime implementazioni IP per verificare ciò che loro effettivamente fatto in pratica); e

  2. Nel momento in cui lavori su TCP / IP ha cominciato, C è stata né standardizzato né il de facto "lingua franca" di basso livello di sviluppo software che è diventato oggi.

Il suggerimento dell'intervistatore è stato effettivamente fondato? In caso contrario, quali sono state le vere ragioni per cui i progettisti del protocollo hanno scelto l'indirizzamento a 32 bit?


3
Lo stesso motivo per cui 640 kB ought to be enough for anybody.nessuno si aspettava che i tostapane e i frigoriferi avessero accesso a Internet.

1
@afwe: Hm. La domanda non era perché non hanno scelto un numero più grande per cominciare? aka perché solo 32 bit? (qual è il punto in cui gli eccellenti indirizzi di risposta di \ @Jens), ma cosa c'è di
Eggyal

@Downvoter: Vuoi commentare?
Eggyal,

Risposte:


23

Ecco un link a un Hangout con Vint Cerf (aprile 2014) in cui spiega come pensava che questa rete avrebbe dovuto essere solo un esperimento:

Mentre pensavamo a Internet (pensandoci bene, si tratterà di un numero arbitrario di reti tutte interconnesse - non sappiamo quante e non sappiamo come saranno collegate), ma le reti su scala nazionale ho pensato " bene, forse ce ne saranno due per paese " (perché era costoso: a questo punto Ethernet era stata inventata ma non stava proliferando ovunque, come è successo qualche anno dopo).

Quindi abbiamo detto " quanti paesi ci sono? " (Due reti per paese, quante reti?) E non abbiamo avuto Google per chiedere, quindi abbiamo indovinato a 128 e che sarebbe 2 volte 128 è 256 reti (cioè 8 bit) e poi abbiamo detto " quanti computer ci saranno su ciascuna rete? " e abbiamo detto " quanti circa 16 milioni? " (ovvero altri 24 bit), quindi avevamo un indirizzo a 32 bit che consentiva 4,3 miliardi di terminazioni - che io pensato nel 1974/3 era abbastanza per fare l'esperimento!

L'avevo già pubblicato come commento alla risposta di Jens Link, ma mi è sembrato che dovesse apparire un po 'più in superficie.


Più che "emergere un po 'di più", penso che questo risponda alla domanda reale più direttamente della risposta di Jens.
Eggyal

34

Risposta semplice: perché Vint Cerf l'ha deciso . Pensava che stesse progettando un protocollo sperimentale e considerava i 32 bit più che sufficienti a tale scopo; non si aspettava che IPv4 venisse utilizzato nei sistemi di produzione e quindi non si pensava più alle dimensioni dello spazio degli indirizzi.

Alla conferenza IPv6 di Google del 2008, ha ospitato un panel di discussione intitolato Che aspetto avrà Internet IPv6? durante il quale ha raccontato :

La decisione di inserire uno spazio di indirizzamento a 32 bit fu il risultato di una battaglia di un anno tra un gruppo di ingegneri che non riuscirono a decidersi a circa 32, 128 o lunghezza variabile. E dopo un anno di combattimenti ho detto - Sono ora all'ARPA, sto gestendo il programma, sto pagando per queste cose e usando i dollari delle tasse americane - e volevo alcuni progressi perché non sapevamo se questo è andare a lavorare. Quindi ho detto 32 bit, è sufficiente per un esperimento, sono 4,3 miliardi di terminazioni - anche il dipartimento della difesa non ha bisogno di 4,3 miliardi di nulla e non può permettersi di acquistare 4,3 miliardi di dispositivi periferici per fare comunque un test. Quindi all'epoca pensavo che stessimo facendo un esperimento per provare la tecnologia e che se avesse funzionato avremmo avuto l'opportunità di farne una versione di produzione. Bene - [risate] - è appena sfuggito!

Trascrizione di Peter E. Murray .


7
Eh, quanto sono sciocco da parte mia! Il rasoio di Occam colpisce ancora. Almeno mi hai dato la compiaciuta soddisfazione di sapere che l'intervistatore aveva torto.
Eggyal

2
@ user5025: Sì, è possibile (nel caso generale). Ma se Vint afferma che quelli erano i suoi motivi per scegliere 32 bit per IPv4, allora è difficile sostenere che ne avesse anche altri.
Eggyal

5
@ user5025: Ok, questo è un punto giusto. In effetti, afferma che gli ingegneri stavano litigando per la lunghezza, con alcuni sostenitori a 32 bit. Quindi suppongo che la domanda sia: quali erano le loro motivazioni per sostenere i 32 bit (cioè cosa lo ha reso accettabile per Vint)?
Eggyal

2
@eggyal: il mio punto non è che gli interi a 32 bit fossero "sicuramente" un fattore motivante, ma piuttosto suggerirei che lo considererei altamente plausibile che un numero sufficiente di ingegneri che suggeriscono che le dimensioni avrebbero potuto considerare quel fattore che, in assenza di prove al contrario, non credo che potrebbe essere escluso come fattore nella scelta finale.
supercat,

2
@eggyal: hai chiesto cosa avrebbe potuto motivare gli ingegneri a scegliere 32 bit. La mia intenzione era di rispondere a quella particolare domanda. Ho scritto uno stack TCP / IP su "bare metal" e ho avuto a che fare con indirizzi in varie occasioni, ma non sono mai stato interessato a analizzarli - solo per determinare se corrispondessero [questo particolare stack ha gestito solo le connessioni TCP / IP in entrata, quindi ha dovuto fare i conti con ARP, ma non con i gateway].
supercat,

0

Dimensioni della parola . Stavano scrivendo software, non progettando hardware per computer, anche se sono sicuro che avessero in mente prestazioni e portabilità. A quel tempo, 32 bit era il word, il longword, intoo longInto altro. Vedi Scelta della dimensione della parola .

Hanno scritto questo software "durante i primi decenni di architetture a 32 bit (dagli anni '60 agli anni '80)". - Wikipedia


3
A meno che tu non stia suggerendo che gli architetti di TCP / IP avevano in mente una particolare architettura di macchina, non sono sicuro di dove stia andando con questo argomento ... hai qualche prova che stessero usando / progettando per 32- architetture di bit, o anche che la dimensione della parola era una considerazione rilevante per la lunghezza selezionata per l'indirizzo di rete?
Eggyal

@eggyal: le lingue per macchine a 8 e 16 bit includevano spesso un tipo di dati interi a 32 bit, ma era molto meno comune per le lingue su macchine a 32 bit avere tipi di dati a più parole. Almeno a livello di codice sorgente, lavorare con valori a 32 bit è essenzialmente conveniente come lavorare con valori a 16 bit ed è sicuramente più conveniente che lavorare con tipi più grandi. Inoltre, per i dispositivi con esigenze di comunicazione limitate, l'indirizzamento a 32 bit potrebbe andare bene se comunicano attraverso gateway più sofisticati.
supercat,
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.