IPv4 adresleri neden 32 bit?


33

Sadece iken Birçok aylar önce, çiş bairn kariyerimi başlamadan, bir alt düzey geliştirici rol için bir iş görüşmesine vardı. O zamanlar sadece CIDR'nin nasıl uygulandığını öğrendikten sonra bilgilerimi göstermeye istekliydim.

Ne yazık ki, bu taktik benim için çok iyi sonuç vermedi. Sorulan ilk soruya tamamen yerleştiğini hatırlıyorum (ve sonra karıştırıldı, hepsi yokuş aşağı gitti). Soru şuydu:

IPv4 adresleri neden 32 bit?

Cevabı bilmediğimi kolayca itiraf ettim , ancak orijinal protokol tasarımının adres alanını 8 bitlik bir ağ numarasına ve 24 bitlik bir ana bilgisayar tanımlayıcısına böldüğünü biliyordum - bu nedenle gerekçelerini rasyonalize etmeye çalıştım. protokol tasarımcıları, her biri birçok ana bilgisayarı içeren ve programlamanın basitliği için her şeyi bayt sınırlarına göre tutmuş birkaç ağ içeren bir İnternet düşündü (sonuçta, başlangıçta belirli bir kaçını bir araya getirmeyi amaçlıyordu ).

Mülakatçının cevabımdan memnun olmadığını hatırlıyorum ve bana asıl nedenin bir long intC'nin içine sığmasının garanti edildiğini ileri sürdüğünü ve uygulama detaylarını basitleştirdiğini hatırlıyorum . O zaman genç ve yeşil olduğum için, makul bir cevap olarak ve (bugünden önce) daha fazla düşünmemiştim.

Bir nedenden ötürü, sohbete yeni döndüğüm için ve şimdi üzerine düşündüğümde, tamamen mantıklı görünmüyor:

  1. Sabit boyutlu ağ ve ana bilgisayar alanlarını içeren orijinal adresleme şeması altında, bir geliştiricinin iki alanın birleştirilmesini tek bir değişkene atamak istemesi muhtemel değildir (ne olduğunu doğrulamak için herhangi bir erken IP uygulamasına erişimim yok) aslında pratikte yaptım); ve

  2. TCP / IP üzerinde çalışmaya başladığında, C ne standartlaştırıldı ne de düşük seviyeli yazılım geliştirmenin fiili "lingua franca "'sı bugün oldu.

Anketörün önerisi gerçekte kurulmuş muydu? Değilse , protokol tasarımcılarının 32 bit adreslemeyi seçmelerinin gerçek nedenleri nelerdi ?


3
Aynı nedenden dolayı 640 kB ought to be enough for anybody.kimsenin ekmek kızartma makinesi ve buzdolabı kullanmasının internet erişimine izin vermemesinin nedeni de aynıydı.

1
@afwe: Hm. Soru, neden başlamak için daha büyük bir sayı seçmediler? aka neden sadece 32-bit? (bu gerçekten \ @Jens'in mükemmel cevap adresleri olduğu nokta), ama daha fazlası 32-bit (16-bit veya 24-bit veya 48-bit gibi) hakkında özel olan şeydi?
eggyal

@Downvoter: Yorum yapmak ister misiniz?
eggyal

Yanıtlar:


23

İşte bu internetin sadece bir deney olması gerektiğini düşündüğünü açıkladığı Vint Cerf ile Hangout'a (Nisan 2014) ait bir link :

İnterneti düşündüğümüzde (iyi düşünürsek, bu, birbirine bağlı bazı keyfi ağlar olacak - kaç tane olduğunu bilmiyoruz ve bunların nasıl bağlanacağını bilmiyoruz), ancak ulusal ölçekte ağlar yapıyoruz. " peki, belki ülke başına iki tane olur " diye düşündüm (pahalıydı: bu noktada Ethernet icat edilmişti ama birkaç yıl sonra olduğu gibi her yerde çoğalmıyordu).

Sonra " kaç ülke var? " (Ülke başına iki ağ, kaç ağ?) Sorduk ve Google’a sormamız gerekmedi, bu yüzden 128’e çıktık ve bu 2’de 128’in 256 ağ olacağını söyledi (8 bit) ve sonra " her ağda kaç bilgisayar olacak? " demiştik ve " yaklaşık 16 milyon? " (24 bit başka bir tane daha olacak) dedik, böylece 4.3 milyar sonlandırmaya izin veren 32 bit bir adresimiz vardı. 1974 / 3'te yapılan deneyi yapmak için yeterliydi!

Bunu zaten Jens Link'in cevabına bir yorum olarak göndermiştim, ancak biraz daha yüzeysel bir şok olduğunu hissettim.


"Yüzeye biraz daha" den daha fazla, bunun asıl soruyu Jens'in cevabından daha doğrudan yanıtladığını düşünüyorum .
eggyal

34

Kolay cevap: çünkü Vint Cerf buna karar verdi . Deneysel bir protokol tasarladığını ve 32-bit'in bu amaç için fazlasıyla yeterli olduğunu düşündüğünü; IPv4'ün üretim sistemlerinde kullanılmasını beklemiyordu ve bu nedenle adres alanının büyüklüğü hakkında daha fazla düşünülmüyordu.

Google IPv6 Konferansı 2008'de, IPv6 İnternetinin neye benzeyeceği başlıklı bir panel tartışmasına ev sahipliği yaptı. bu süre boyunca o anlattı :

Buraya 32 bitlik bir adres alanı koyma kararı, yaklaşık 32, 128 veya değişken uzunluktaki kararlarını veremeyen bir grup mühendis arasındaki bir yıllık savaşın sonucuydu. Bir yıl süren kavgadan sonra dedim ki - şu an ARPA’dayım, programı çalıştırıyorum, bunun için para ödüyorum ve Amerikan vergi dolarlarını kullanıyorum - ve biraz ilerleme istedim çünkü bunun olup olmadığını bilmiyorduk işe gidiyor. Ben de 32 bit dedim, bir deney için yeterli, 4.3 milyar fesih - savunma departmanı bile 4.3 milyar hiçbir şeye ihtiyaç duymuyor ve yine de test yapmak için 4.3 milyar uç cihaz satın almaya gücü yetmiyordu. O zaman, teknolojiyi ispatlamak için bir deney yaptığımızı ve işe yaraması durumunda bunun bir üretim versiyonunu yapma fırsatımız olacağını düşündüm. Şey - [kahkahalar] - kaçtı!

Transkript Peter E. Murray tarafından .


7
Agh, beni ne kadar aptal! Occam'ın usturası yine grevde. En azından, görüşmecinin yanlış olduğunu bilmenin verdiği memnuniyeti verdin.
eggyal

2
@ user5025: Evet, mümkün (genel durumda). Fakat eğer Vint, IPv4 için 32-bit seçmenin nedenleri olduğunu söylüyorsa, başkalarının da olduğunu iddia etmek zor.
eggyal

5
@ user5025: Tamam, bu adil bir nokta. Gerçekten de, mühendislerin uzunluğunun ne olması gerektiği konusunda kavga ettiklerini, bazılarının 32-bit savunuculuğunu belirtti. Öyleyse, sanırım soru 32 bit'i savunmak için motivasyonlarının ne olduğunu (yani Vint için kabul edilebilir kılan)?
eggyal

2
@eggyal: My nokta 32 bit tamsayı "kesinlikle" motive edici faktör, ama daha ziyade bunun saydığını önermek değil mi son derece makul olduğunu boyutunu düşündüren mühendislerin yeterli kabul olabileceğini bir faktör, buna devamsızlık kanıt Aksine, nihai seçimde bir faktör olarak göz ardı edilebileceğini düşünmüyorum.
supercat

2
@eggyal: Mühendisleri 32 bit seçmeye neyin motive edebileceğini sordunuz . Niyetim bu soruyu cevaplamaktı. "Çıplak metal" üzerine bir TCP / IP yığını yazdım ve çeşitli durumlarda adreslerle uğraşmak zorunda kaldım, ancak onları ayrıştırmakla hiç ilgilenmedim - yalnızca eşleşip eşleşmediklerini belirlemekle [bu belirli yığın yalnızca gelen TCP / IP bağlantılarını ele aldı, bu yüzden ARP ile uğraşmak zorunda kaldı, ancak geçit yollarını değil].
supercat,

0

Kelime büyüklüğü. Yazılım yazıyorlardı, bilgisayar donanımı tasarlamıyorlardı - akılda performans ve taşınabilirliğe sahip olduklarından emin olmama rağmen. O zaman, 32 bit oldu word, longwordya intya longIntya da her neyse. Kelime Boyutu Seçimi'ne bakın .

Bu yazılımı "32 bit mimarilerin ilk on yılında (1960'lar 1980'lerde)" yazdılar. - Wikipedia


3
TCP / IP mimarlarının aklında belirli bir makine mimarisine sahip olduğunu öne sürmüyorsanız, bu argümanla nereye gideceğinizden emin değilim ... 32- bit mimarileri, hatta kelime büyüklüğünün bile ağ adresi için seçtikleri uzunluk ile ilgili bir dikkate alınıyor olması?
eggyal

@eggyal: 8 bit ve 16 bit makinelerin dilleri genellikle 32 bit tam sayı veri türü içeriyordu, ancak 32 bit makinelerde dillerin çok kelimeli tam sayı veri tiplerine sahip olması çok daha az yaygındı. En azından kaynak kodu düzeyinde, 32 bitlik değerlerle çalışmak aslında 16 bitlik değerlerle çalışmak kadar elverişlidir ve kesinlikle daha büyük türlerle çalışmaktan daha uygundur. Ayrıca, sınırlı iletişim gereksinimi olan cihazlar için, daha karmaşık ağ geçitleri üzerinden iletişim kurmaları durumunda 32 bit adresleme iyi olabilir.
supercat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.