Wiele księżyców temu, kiedy był tylko wee bairn rozpoczynających karierę, miałem kwalifikacyjnej do roli dewelopera niskim poziomie. Po tym, jak właśnie dowiedziałem się, jak zaimplementowano CIDR, chciałem pochwalić się swoją wiedzą.
Niestety ta taktyka nie wyszła mi zbyt dobrze. Pamiętam, że pierwsze pytanie, które mi zadano, całkowicie mnie przeraziło (a potem potargałem, wszystko poszło w dół). Pytanie brzmiało:
Dlaczego adresy IPv4 są 32-bitowe?
I łatwo przyznać, że nie wiem, odpowiedź, ale ja nie wiem, że pierwotny projekt protokołu dzieli przestrzeń adresową pod numerem sieciowego 8-bitowy i 24-bitowy identyfikator hosta, więc starałem się zracjonalizować go na tej podstawie, że projektanci protokołów wyobrazić internetowy z kilku sieci (mimo wszystko, był pierwotnie przeznaczony do połączenia razem specyficzne kilka) z których każdy zawiera wiele hostów, a dla uproszczenia programowania, utrzymane wszystko wyrównane do granic bajtów.
Pamiętam, że ankieter był niezadowolony z mojej odpowiedzi i zasugerował mi, że prawdziwym powodem jest to, że z pewnością mieści się long int
w C, więc upraszcza szczegóły implementacji. Będąc wtedy młody i zielony, zaakceptowałem to jako rozsądną odpowiedź i (przed dniem dzisiejszym) już o tym nie myślałem.
Z jakiegoś powodu ta rozmowa właśnie do mnie wróciła, a teraz, gdy się nad nią zastanawiam, nie wydaje się to całkowicie prawdopodobne:
Zgodnie z pierwotnym schematem adresowania obejmującym pola sieci i hosta o stałej wielkości, mało prawdopodobne jest, aby deweloper chciał przypisać konkatenację dwóch pól do jednej zmiennej (nie mam dostępu do żadnych wczesnych implementacji IP, aby zweryfikować, co one faktycznie zrobił w praktyce); i
W momencie, gdy zaczęły działać TCP / IP, C nie było ani standaryzowane, ani de facto „lingua franca” rozwoju oprogramowania niskiego poziomu, jakim stało się dzisiaj.
Czy sugestia ankietera była faktycznie uzasadniona? Jeśli nie, to jakie były prawdziwe powody, dla których projektanci protokołów wybrali adresowanie 32-bitowe?
źródło
640 kB ought to be enough for anybody.
nikt nie oczekiwał, że tostery i lodówki będą miały dostęp do Internetu.Odpowiedzi:
Oto link do Hangouta z Vintem Cerfem (kwiecień 2014), w którym wyjaśnia, jak myślał, że ten internet miał być tylko eksperymentem:
Opublikowałem to już jako komentarz do odpowiedzi Jensa Link, ale czułem, że nieco bardziej się pojawi.
źródło
Łatwa odpowiedź: ponieważ tak zdecydował Vint Cerf . Myślał, że projektuje protokół eksperymentalny i uznał 32-bitowe za wystarczające do tego celu; nie spodziewał się, że IPv4 będzie stosowany w systemach produkcyjnych, dlatego nie poświęcono więcej uwagi rozmiarowi przestrzeni adresowej.
Na konferencji Google IPv6 2008 poprowadził dyskusję panelową zatytułowaną Jak będzie wyglądał Internet IPv6? podczas którego opowiedział :
Transkrypcja : Peter E. Murray .
źródło
Rozmiar słowa Piszą oprogramowanie, a nie projektują sprzęt komputerowy - choć jestem pewien, że mieli na myśli wydajność i przenośność. W tym czasie, 32 bit był
word
Thelongword
alboint
albolongInt
albo cokolwiek. Zobacz Wybór rozmiaru słowa .Napisali to oprogramowanie „w ciągu pierwszych dziesięcioleci architektury 32-bitowej (od 1960 do 1980)”. - Wikipedia
źródło