13

私の知る限り、パケットが通過したすべての MAC アドレスはパケットに含まれています。これは、特定のパスに入る各パケットも同様のパスで返される必要があるためです。では、サーバーのルーターがクライアント (すべて) の MAC アドレスを知っている場合、なぜサーバー ページ (aspx など) はこの情報を取得できないのでしょうか?

説明をお願いします。(私が間違っているとだけ言わないでください)。

正しく理解できれば、クライアントは MAC アドレスを含むパケットを送信します。パケットがプロキシ (クライアント ルーターなど) を通過する場合、プロキシのアドレスもパケットに追加されます。等々。

TCP/IP データ ライン レイヤーに関するウィキペディアのスニペットを次に示します

データ リンク層は、同じリンク上の 2 つの異なるホストのインターネット層インターフェイス間でパケットを移動するために使用されます。特定のリンクでパケットを送受信するプロセスは、ネットワーク カードのソフトウェア デバイス ドライバーと、ファームウェアまたは特殊なチップセットの両方で制御できます。これらは、パケットヘッダーを追加して送信の準備をするなどのデータリンク機能を実行し、実際に物理メディアを介してフレームを送信します。TCP/IP モデルには、インターネット プロトコルで使用されるネットワーク アドレス指定方法をメディア アクセス制御 (MAC) などのデータ リンク アドレス指定に変換する仕様が含まれていますが、そのレベルより下の他のすべての側面はリンク層に存在すると暗黙的に想定されていますが、明示的に定義されていません。

4

9 に答える 9

25

実際には、パケットに格納されている MAC アドレスは、パケットが移動するたびに変更されます。

MAC は Media Access Control の省略形であり、メディアはローカル通信メディアを指します。送信元と送信先の IP アドレスは旅全体で同じままですが (長距離ルーティングの決定に使用されます)、送信元と送信先の MAC アドレスはネクスト ホップを示すだけです。

このため、サーバーが受信したパケットに格納されている MAC アドレスは、ポイント オブ プレゼンス ルーターまたはプロバイダーの機器の MAC アドレスである必要があります。

OSI Layer modelencapsulationを見たいと思うかもしれません。

于 2010-05-18T06:02:44.700 に答える
3

IP スタックと物理スタックの関係が逆転しています。MAC アドレスは、IP 情報をラップする部分にあり、その逆ではありません。そのため、たとえば自分のコンピューターからあなたのコンピューターに何かを送信すると、LAN (この場合はイーサネット) の物理セグメントが IP 要素をラップし、MAC が含まれます。次に、ルーターは抽出しますIP 情報を取得し、その過程で独自の MAC を使用して DSL モデムに (この場合は再びイーサネット経由で) 前方および上方に渡します。DSL モデムは IP をアンラップし、使用するプロトコル (その時点では不明であり、気にしない) を使用して、それを電話回線に送信します。各物理リンク ホップは、関係する基礎となる物理層がローカル送信用に付加する追加情報を使用して、IP 情報をラップおよびアンラップします。

于 2010-05-18T06:14:20.670 に答える
2

IPv6 では、ホスト アドレスの 64 ビットにエンコードされている場合、IPv6 アドレスからコンピュータの MAC アドレスを実際に取得できます

IPv6 の使用時に MAC アドレスを公開しないようにする方法も参照してください。スーパーユーザーで。

于 2011-02-09T19:39:57.050 に答える
1

残っているのは送信元と宛先の IP アドレスです。インターネットワークの考え方は、基本的にホップツーホップ配信に基づいています。中間ルーター/ホストは、MAC アドレスのみを認識します。私の知る限り、ルーティング テーブルはマシン アドレスを理解する必要があります。

パケットの移動中に MAC アドレスが残る可能性がある場合。つまり、インターネット プロトコル アドレスを発明する必要はありませんでした。そして、すべてのインターネットはMACアドレスのみを使用していたでしょう:-)

サーバーとクライアントの両方が同じローカル ネットワーク上に存在する場合にのみ、目的を達成できます (両方のホストが L1 メディアによって接続されています)。

そうは言っても、アプリケーションは Web サーバーのように見えますが、同じネットワーク上にある必要はありません。

それでも、受信ホストで送信元ホストの MAC アドレスが必要な場合。ペイロードとして送信すると思いますか?

添加:

ネットワークは、世界中で同じタイプである必要はありません (つまり、イーサネット、フレーム リレーなど)。ネットワーク層は、下層の層 (データ リンク層) または下層の L1 テクノロジを区別することなくルーティングの柔軟性を提供します。要するに、IP はインターネットワークを提供し、データ リンク層 (MAC アドレスが登場する場所) はマイクロ レベル (つまり、ローカル ネットワーク) での通信を処理します。これが、Mac と IP アドレスが共存する正当な理由です。:-)

于 2010-07-22T13:52:10.193 に答える
1

「サーバーのルーター」はありません。パケットは多くのルーターからサーバーに到達する可能性があります。

「クライアントのルーター」はありません。パケットは、クライアントから多くのルーターに送信される場合があります。

MAC アドレスを認識できるデバイスは、同じ LAN にあるデバイスだけです。おそらく、同じケーブル セグメントにあるデバイスだけです。

ところで、クライアントがプロキシ サーバーの反対側にある場合、サーバーはクライアントの IP アドレスも取得できません。

于 2010-05-18T05:34:53.573 に答える
0

クライアントがサーバーに対してローカルでない限り、できません。提供されている場合は、arp ping を実行して、クライアントの MAC アドレスを取得することができます。

于 2010-05-18T05:38:46.347 に答える
0

サーバーの LAN とクライアントの LAN を直接接続するという観点から考えていますが、それはインターネットの仕組みではありません。2 つの LAN 間に任意の数のホップが存在する可能性があります。ちなみに、どちらの LAN も MAC のようなものを使用するという制約はないため、「MAC アドレス」は IP パケットには配置されません。「MAC」は LAN 内でのみ意味を持ち (実際には、最下層が MAC のようなものを使用するものだけです;-)、ARP および RARP プロトコルで検出/アナウンスされます (これらはルーティングされません;-)。

于 2010-05-18T05:41:19.743 に答える
0

単純な違いは次のとおりです。IP アドレスはエンド ツー エンド アドレス (もちろん IP パケット内) ですが、MAC アドレスはホップごとにのみ使用されます。さらに、基礎となる MAC プロトコルは、クライアントの知識がなくてもホップごとに変更される可能性があるため、クライアントは IP パケットの途中にあるすべてのアドレスを理解することさえできない場合があります。

于 2010-05-18T06:20:08.367 に答える