IPを使用せずにイーサネットネットワークを作成できますか


14

ISO-OSIモデルから理解したように、MACアドレスはIPアドレスとは異なるレイヤーで動作します。これは私には明らかです。

イーサネット(LAN)は通信にIPアドレスを使用せず、MACアドレスを使用することを受け入れることができます。これらのMACアドレスは、階層的に定義されていないため、LANの外部のルーティングに使用できないことを理解しています。また、IPが大規模なインターネット上でルーティングを行うための最良の方法であることも理解しています。私が完全に確信していないのは、MACアドレスがLANで通信するための最良の方法であるということです


私の質問は次のとおりです。

  1. イーサネットはIPアドレスを使用してメッセージを送信できませんでしたか?私はそうすべきだと言っているのではなく、そうすることを選んだのかどうかを尋ねているだけです。
  2. イーサネットは通信にMACアドレスを使用するので、デバイスにIPアドレスはなく、MACアドレスだけを持つイーサネットネットワークを作成できますか?

定義上、イーサネットネットワークは、デバイスにIPアドレスがないネットワークです。ご指摘のとおり、TCP / IPネットワークはまったく別のものであり、IPはIEEE 802.3、802.11、または802.5のいずれで実行されているかを気にしません。
miken32 14

回答:


5

イーサネットは、それ自身のデータリンク層アドレスの代わりにIPアドレスを使用できましたか?確かにそうではありませんが、どのレイヤー3プロトコルを使用したかについて不可知論的になりたいのであれば。

レイヤーを組み合わせて一致できるように、レイヤーでネットワークプロトコルを設計します。

イーサネットは当初、Xerox PARCでBob-Metcalfeなどによってネットワーク層にとらわれないように開発されました。なぜなら、彼らの目標はTCP / IPアクセスだけでなく、Xerox独自のXNSネットワークプロトコルスタック/スイートでもあったからです。

DEC(Digital Equipment Corporation)は、もう1つの早期採用者となり、主にDECnetプロトコルスタック/スイートに使用しました。

80年代後半から90年代初頭に、企業のイーサネットLAN上で実行される競合するLANプロトコルスイート(すべてTCP / IPから完全に独立したもの)が多数ありました。XNSとDECnetのほかに、AppleのAppleTalk(EtherTalk)、NovellのIPX、Banyan VINES、NetBEUI、DLC / LLC、IBM SNA、OSI / ISOなど、忘れてしまったものがありました。

そのため、はい、IPなしでイーサネットを使用できます。多くの企業ネットワークが80年代および90年代にそれを行いました。

イーサネットは、レイヤ3(ネットワークレイヤ)プロトコルが実行しているものを気にしないように設計されているため、それらの企業LANはさまざまなベンダーの機器の混在をサポートするのが比較的容易であり、それらのLANがIPv4を追加するのは比較的簡単でした90年代半ばから後半にインターネットが普及したときのサポートでしたが、現在IPv6サポートを追加するのは比較的簡単です。


1
コンテキストに物事を置く答えをくれてありがとう!ただし、質問の2番目の部分でももう少し拡張してほしいと思います。ネットワーク層プロトコルを使用せずに、イーサネットベースのLANを機能させることは可能でしょうか?別のホストへのクロスケーブルイーサネット接続をセットアップした場合、そのホストと通信するためにIPを使用する必要があるのはなぜですか?TCP over IPの代わりにTCP over MACを使用することは可能ですか?
jj_

4

イーサネットは通信にMACアドレスを使用するので、デバイスにIPアドレスはなく、MACアドレスだけを持つイーサネットネットワークを作成できますか?

独自のソフトウェアをすべてゼロから作成している場合は、間違いなくこれを実行できます。ソフトウェアに、そのプログラムの通常の対応物がIPアドレスを受け入れる場所であればどこでもMACアドレスを受け入れさせてください。すべてのシステムコールを使用して、IPアドレスではなく生のイーサネットパケットを送信すると、動作しますが、非常に面倒です。

一般に、ネットワーク上のMACアドレスはパターンに従いません。それらはメーカーによってハードウェアに焼き付けられます。それらは長くてかさばります。私のものは現在C8-60-00-CA-4B-9Aです。私の隣のコンピューターは00-40-F4-48-1B-88です。

マシンが互いに通信できるようにするには、ネットワーク上の他のすべてのマシンのすべてのMACアドレスのハードコードされたリストを各マシンに与えて、パケットの送信先を認識させることができます。これはエラーが発生しやすいタイプであり、ネットワークハードウェアを変更した場合は、新しいMACアドレスを反映するようにすべてのリストを変更する必要があります。

これは非常に面倒なので、おそらくネットワーク上のマシンがブロードキャストパケットを使用して互いのMACアドレスを自動的に検出する方法を思い付くでしょう。次に、「telnet C8-60-00-CA-4B-9A」などのコマンドを入力する必要があるため、意味のあるアドレスで自分自身を識別する方法を提供します。

これはまさにIPが行うことです。MACアドレスをハードコーディングするのではなく、意味のある数字を使用してネットワーク上のホストをアドレス指定する方法です。IPの上にDNSを追加すると、「telnet webserver」のようなコマンドを入力できます。

イーサネットはIPアドレスを使用してメッセージを送信できませんでしたか?私はそうすべきだと言っているのではなく、そうすることを選んだのかどうかを尋ねているだけです。

MACアドレスは6バイトの情報で、IPアドレスは4バイトしかないため、1対1のマッピングは一切できません。IPアドレス(ネットワーク上の別のホストと通信したいソフトウェアが提供)から(パケットを入れるために)MACアドレスを見つける何らかの方法が必要です。

これを行う1つの(ハードコア)方法は、ネットワーク上のすべてのマシンにアクセスし、ハードウェアMACアドレスを変更して、上位2バイトをゼロ(または同じ他の固定数)にすることでIPアドレスのように見えるようにすることですネットワーク上のすべてのマシンに対して)、ネットワーク上で必要な「IPアドレス」に下部の4バイトを設定します。(ほとんどのネットワークカードでは、ベンダーに割り当てられたMACアドレスを変更できます)

これを実際に機能させるには、次に、ネットワークスタック内のコードをハッキングして、このシステムを実際に使用する必要があります。基本的に、ARP(IPアドレスをIPアドレスからMACアドレスに変換するために使用する方法)に関連するすべてを取り除いてください。IPヘッダーを構築/読み取る部分をリッピングします。代わりに、アドレスwxyzのホストに送信されるIPパケットを指定して、DESTアドレスを00-00-wxyzに設定してイーサネットフレームを構築する非常に単純なコードですべてを置き換えます。

また、パケットの受信者に、どのプロトコル(UDP、TCP)を対象としているかを示す方法も必要です。既存のフィールドをオーバーライドすることにより、おそらくこれをイーサネットヘッダーのどこかに貼り付けることができます。送信元アドレスの上位2バイトのいずれかを使用している可能性がありますか?これは宛先マシンの受信能力には影響しませんが、一部のスイッチを台無しにする可能性があります。また、プロトコルをイーサネットフレームの先頭または末尾に追加して、ペイロードサイズを1つ増やすこともできますが、IPヘッダーのような臭いがし始めています。

それで、このすべての仕事はあなたに何を買うでしょうか?

まず、すべての発信パケットでARPテーブルを検索するオーバーヘッドを節約します。これはおそらくわずか数マイクロ秒のオーダーです。

IPヘッダーチェックサムの計算作業と、それらを保持するために必要なメモリを節約します。これはおそらく現代のハードウェアでは重要ではありません。

IPヘッダーがないため、ネットワーク上のすべてのパケットで16バイトを節約できます。これは、アプリケーションによっては合計される可能性があります。

最大の利点は、ARP要求を行う必要がないことです。新しいホストに標準IPパケットを送信すると、ARP交換がトリガーされますが、これには数ミリ秒かかり、予測できません。これは、レイテンシーとジッターに非常に敏感な一部のアプリケーションにとっては大きな利益になります。

いくつかの非常に特殊なアプリケーションでは、これは実際に実行する意味があります。以前は、すべてのホスト間通信にブロードキャストUDPパケットのみを使用するリアルタイムシステムを使用していました。これは、ARPシーケンスが作動し、予測できない遅延とジッターを追加することを避けた唯一の理由です。また、私はかつて、IPパケット内で直接UDPペイロードを送信する(IPヘッダーなし)ことで動作するリソース制限のある組み込みシステムで働いていました。


1

イーサネットはIPアドレスを使用してメッセージを送信できませんでしたか?私はそうすべきだと言っているのではなく、そうすることを選んだのかどうかを尋ねているだけです

イーサネットでは、6バイトアドレスの代わりにIPv4のような4バイトアドレスを使用できたと思います。彼らが数字を使い果たしてしまったので、彼らがそうしなかったのはおそらく良いことでしょう。

イーサネットは通信にMACアドレスを使用するので、デバイスにIPアドレスはなく、MACアドレスだけを持つイーサネットネットワークを作成できますか?

IPアドレスの代わりにMACアドレスで動作するプログラムがある場合、できます。もちろん、あなたはそのネットワークにとどまり、ハッカーなしでは他の人に連絡することはできません。

特に、他のネットワークがトークンリングなど、イーサネットとは異なるレイヤー2テクノロジーを使用している場合、ルーティングを行う場合にのみ、IPレイヤーが必要になります。将来、別のレイヤー2テクノロジーが遍在する可能性があるかどうかは誰が知っています。


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

イーサネットをネットワーク層と呼んでいるなら、そうではありません。ネットワーク層には、ネットワークデバイスの物理アドレスが必要です。IPアドレスは、簡単にするためにMACアドレスに割り当てられる任意の番号です。IPアドレスはソフトウェアソリューションであり、ネットワークカードの一部ではなく、ハードウェアソリューションです。そのため、IPアドレスは簡単に変更できますが、MACアドレスはカードにハードコードされており、変更できません(MACアドレススプーフィングソフトウェアにもかかわらず、アドレスが何であるかについてはアドレスを変更しません) )

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

はい、できますが、機能が非常に制限されており、ユーザーフレンドリーではないため、使用するのは楽しいことではありません。トランスポート層が実装された理由があります。

WikiPediaから、トランスポート層は、フロー制御、セグメンテーション/デセグメンテーション、およびエラー制御により、特定のリンクの信頼性を制御します。一部のプロトコルは、状態指向および接続指向です。これは、トランスポート層がセグメントを追跡し、失敗したセグメントを再送信できることを意味します。また、トランスポート層は、正常なデータ送信の確認応答を提供し、エラーが発生しなかった場合は次のデータを送信します。

そのため、現在TCP / IPプロトコルを意味するトランスポート層を使用しないと、データが宛先に到達したことを確認したり、欠落している部分を自動的にリセットしたりすることができません。


MACアドレスは確実に変更できます。私の(長く亡くなった)PCは、壊れたイーサネットカードのMACを何年も使用していました。私のADSLプロバイダーはそれを縛り、変更するために請求していました(そして数日もかかりました)。
フォンブランド14

0

ローカルネットワーク上のマシンがルーティングレイヤーなしで通信することは確かに可能です。イーサネットフレームにメッセージを埋め込むだけで、最高の結果を期待できます。それは、はがきにメモを入れて、郵便局が仕事をすることを望んでいるようなものです。

受信者がリッスンしていることを期待する必要があります。そして、返信メッセージを注意深くリッスンします(他のノードからの多くのメッセージの中から)。これらのメッセージをすべて自分で整理する必要があります。

1:1メッセージングのようなものが必要な場合は、このすべてのリスニングを処理するために、イーサネットフレームの上に別のプロトコルが必要になります。これにはポイントツーポイントプロトコル(PPP)がよく使用されます。これはイーサネット経由でPPPoEと呼ばれます。PPPoEは、認証と暗号化を提供します。どちらも、ブロードキャストネットワーク上で非常に優れたアイデアです。

しかし、何らかの形のルーティング情報がなければ、ローカルネットワーク上のノードとしか通信できません。ルーティング情報を使用してメッセージを(インターネットなどに)中継し始めるとすぐに、IPやIPXなどの何らかのルーティングプロトコルが必要になります。そして、おそらく伝送制御(TCP)も必要になるでしょう...


0

IPネットワークは抽象化であり、間接的な層です。つまり、それらは仮想ネットワークであり、特定の物理的な通信方法やデバイスに永続的にバインドされているわけではありません。

イーサネットホストには、グローバルに一意に識別する1つのMACアドレス(NICごと)があります。ただし、このホストは、常に1つのMACアドレスを使用しながら、それぞれに異なるIPアドレスを持つ多くのIPネットワークに同時に属することができます。

物理アドレスと論理アドレスのこの分離、またはアドレスの仮想化により、IPホスト(サーバーなど)を1つの物理マシンから別のMACアドレスで別のMACアドレスに移動するなど、特定の柔軟性が可能になりますが、他のホストの再構成は不要です(クライアントソフトウェアなど)。

IP、またはインターネットプロトコル、およびイーサネットはさまざまな問題を解決します。イーサネットは、LANレベルでの通信を提供し、単一のLAN上でのみ、LANがルーターを介して他のネットワークに接続することを考慮しません。一方、IPはインターネットワーキングに関係しているため、LANに依存しません。それでは、イーサネットはMACアドレスの代わりにIPアドレスを利用できたでしょうか?もちろん、これらのメッセージはまだLANに制限されているため、実際には何も得られません。

2番目の質問に対する答えとして、この種の状況は、IPアドレスの割り当てに動的ホスト構成プロトコル(DHCP)を使用しているイーサネットLANの異なる時点に存在します。新しいホストがLANに接続するとき、IPアドレスを取得していないため、ブロードキャストされたイーサネットフレームをすべてのデバイスに送信し、DHCPサーバーからの応答を待ちます。この時点で、クライアントはDHCPサーバーのMACアドレスもIPアドレスも知らないため、ブロードキャストを認識します。リクエストを受信すると、サーバーはクライアントのMACアドレスを知っているため、応答を正しくアドレス指定できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.