IPv4アドレスが32ビットなのはなぜですか?


33

私はちょうどだったとき、多くの衛星前に、おしっこ bairn私のキャリアを開始、私は低レベルの開発者の役割のための就職の面接がありました。当時、CIDRがどのように実装されているかを学んだだけで、自分の知識を誇示したいと思いました。

悲しいことに、その戦術は私にとってあまりうまく機能しませんでした。最初に尋ねられた質問で完全に床に落ちていたことを思い出します(そして、波立たせて、すべてが下り坂になりました)。問題は:

IPv4アドレスが32ビットなのはなぜですか?

私はすぐに私はいなかったことを認め知っている答えを、私はなかったオリジナルのプロトコルの設計は、8ビットのネットワーク番号にアドレス空間を分割することを知っていて、24ビットのホストIが理由で、それを合理化しようとした識別子-ので、プロトコル設計者は、それぞれが多数のホストを含​​む少数のネットワーク(結局、特定の少数を相互にリンクすることを意図していた)のインターネットを想像し、プログラミングを簡単にするために、すべてをバイト境界に揃えました。

インタビュアーが私の答えに満足しておらず、本当の理由はlong intC に収まることが保証されているため、実装の詳細を簡素化することを示唆していることを思い出します。当時は若くて環境に優しいので、私はそれを合理的な答えとして受け入れ、(今日まで)それ以上は考えていませんでした。

なんらかの理由で会話が戻ってきたので、今振り返ってみると、完全に妥当とは思えません。

  1. 固定サイズのネットワークフィールドとホストフィールドで構成される元のアドレス指定スキームでは、開発者が2つのフィールドの連結を1つの変数に割り当てたいとは思わないでしょう実際に実際に行いました); そして

  2. TCP / IPで動作するようになった時点で、Cは標準化されておらず、今日の低レベルソフトウェア開発の事実上の「共通語」でもありませんでした。

インタビュアーの提案は実際に実際に設立されましたか?そうでない場合、プロトコル設計者が32ビットアドレッシングを選択した本当の理由何ですか?


3
640 kB ought to be enough for anybody.トースターや冷蔵庫にインターネットへのアクセスが期待されていなかったのと同じ理由。

1
@afwe:うーん。問題は、なぜ彼らがそもそもより大きな数を選択しなかったのではないのか?別名32ビットのみですか?(これは実際に\ @Jensの優れた回答が対処するポイントです)、しかし32ビット(たとえば、16ビットまたは24ビットまたは48ビットではなく)について
eggyal

@Downvoter:コメントしてください。
eggyal

回答:


23

以下は、Vint Cerfとのハングアウト(2014年4月)へのリンクです。このリンクでは、このインターネットは実験のみであると考えていた方法を説明しています。

私たちは、インターネットについて考えていた通り(よく考えて、これはすべての相互接続されたネットワークのいくつかの任意の数になるだろう-私たちは、彼らが接続されますかわからないどのように多くありません)が、全国規模のネットワークを我々 「まあ、多分国ごとに2つになるだろう考えました(高価だったため:この時点でイーサネットは発明されていましたが、数年後に行われたようにどこでも増殖していませんでした)。

次に、「国はいくつありますか?」(国ごとに2つのネットワーク、いくつのネットワーク?)と言って、Googleに尋ねる必要がなかったので、128で、128が256ネットワーク(つまり8ビット)、その後、私たちは言った、「各ネットワーク上存在しますどのように多くのコンピュータ?と私たちは言った」「どのように約16万人?(それは別の24ビットだ)、我々は4.3許可され、32ビットのアドレスだったので、」終端を-私は1974/3年に実験を行うのに十分だと思った!

Jens Linkの答えへのコメントとしてこれをすでに投稿していましたが、もう少し表面に触れるように感じました。


「もう少し表面化する」以上に、これは実際の質問にJensの答えよりも直接的に答えると思います。
eggyal

34

簡単な答え:Vint Cerfがそう決めたからです。彼は実験プロトコルを設計していると考え、32ビットはその目的に十分すぎると考えました。彼はIPv4が実稼働システムで使用されることを期待していなかったため、アドレススペースのサイズについてはそれ以上考慮されませんでした。

Google IPv6 Conference 2008で、彼は「IPv6インターネットはどのように見えるでしょうか?」というタイトルのパネルディスカッションを開催しましたその間に彼は語った

32ビットのアドレス空間を配置するという決定は、32、128、または可変長について思い悩むことができなかった多くのエンジニア間の1年間の戦いの結果でした。そして1年の戦いの後、私は言った-私は今ARPAにいる、私はプログラムを実行している、私はこのようなものに支払い、アメリカの税金を使っている-そしてこれが仕事に行きます。だから私は32ビットと言った、それは実験に十分であり、43億の終端です。防衛部門でさえ43億を必要とせず、とにかくテストを行うために43億のエッジデバイスを買う余裕はありません。そのため、当時、私たちは技術を証明するための実験を行っていて、それがうまくいけば、その製品版を作る機会があると思っていました。まあ— [笑い] —逃げたばかりです!

ピーターE.マレーによる転写


7
ああ、なんてバカなんだ! オッカムのかみそりが再び攻撃します。少なくともあなたは、インタビュアーが間違っていたことを知っていることの満足感を与えてくれました。
eggyal

2
@ user5025:はい、可能です(一般的な場合)。しかし、Vintが、これらがIPv4に32ビットを選択する理由だと言った場合、彼が他にも持っていると主張するのは困難です。
eggyal

5
@ user5025:わかりました、それは公正なポイントです。確かに、彼はエンジニアが32ビットを主張して、長さがどうあるべきかを争っていたと述べています。だから、私は質問が32ビットを提唱する彼らの動機は何だったのだと思います(つまり、それがVintに受け入れられたのですか)?
eggyal

2
@eggyal:私のポイントは、32ビットの整数は「間違いなく」動機づけ要因になったということではなく、むしろ、私はそれが検討することを示唆するために非常にもっともらしいそのサイズを示唆エンジニアの十分な因子に欠席証拠、そのことを考えたかもしれませんそれどころか、私はそれが最終的な選択の要因として除外される可能性があるとは思わない。
supercat

2
@eggyal:エンジニアが32ビットを選択する動機付けになった可能性があるものを尋ねました。私の意図は、その特定の質問に答えることでした。「ベアメタル」でTCP / IPスタックを記述し、さまざまな場面でアドレスを処理する必要がありましたが、それらの解析に興味はありませんでした。そのため、ゲートウェイではなくARPを処理する必要がありました]。
supercat

0

ワードサイズ。彼らはコンピューターのハードウェアを設計するのではなく、ソフトウェアを書いていました-パフォーマンスと移植性を念頭に置いていたと確信していますが。当時、32ビットだったwordlongwordまたはintまたはlongIntまたはものは何でも。ワードサイズの選択を参照してください。

彼らはこのソフトウェアを「32ビットアーキテクチャの最初の数十年間(1960年代から1980年代)に」書きました。- ウィキペディア


3
TCP / IPのアーキテクトが特定のマシンアーキテクチャを念頭に置いていることを示唆しているのでない限り、この議論をどこに進めるのかわかりません...彼らが32 /ビットアーキテクチャ、またはワードサイズがネットワークアドレスに選択した長さに関連する考慮事項であったことさえありますか?
-eggyal

@eggyal:8ビットおよび16ビットマシンの言語には32ビット整数データ型が含まれることがよくありましたが、32ビットマシンの言語でマルチワード整数データ型を使用することはそれほど一般的ではありませんでした。少なくともソースコードレベルでは、32ビット値を扱うのは基本的に16ビット値を扱うのと同じくらい便利で、大きな型を扱うよりも間違いなく便利です。さらに、通信のニーズが限られているデバイスの場合、32ビットのアドレス指定は、より洗練されたゲートウェイを介して通信するのであれば問題ありません。
-supercat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.