7月2日(金)2コマ目

今日、やったこと

イーサネット、IP、ARP

今日のホワイトボード

以下のネットワークでホストAからホストCにデータ送信する際にやりとりされるパケットを推測する。

図 ネットワーク図


ホストAからいきなりホストCあてのパケットを送信するわけではない。

場合によってはMACアドレス取得のためのARPリクエストやARPレスポンスが送受信される。


ホストAでの処理

図 ホストAでの処理


1.IPがルーティング

宛先はホストC、ホストAのルーティングテーブルから次に送る宛先はルーターのポート1に決まる。


2.ARPでポート1のMACアドレス取得

イーサネットがパケットをルーターのポート1に送信するにはルーターのポート1のMACアドレスが必要。ARPでIPアドレスからMACアドレスへ変換する。


①ARPテーブルチェック

別紙のホストAのARPを見るとルーターのポート1(192.168.10.1)の情報はない。

よって、ARPリクエストを送信してMACアドレスを調べる。


②ARPリクエスト送信 

ホストAから一番最初に送信されるパケットはARPリクエストになる。

ARPリクエストのイーサネットヘッダは

イーサネットヘッダ 宛先MACアドレス FF:FF:FF:FF:FF:FF
送信元MACアドレス ホストA

のようになっている。

※ FF:FF:FF:FF:FF:FF はMACアドレス版ブロードキャストアドレス(全PCが対象)


③ルーターがARPリクエストを受信すると

ARPリクエストパケットの宛先MACアドレスはブロードキャストアドレスになっているため、ルーターも受信する。

ルーターは自分が問い合わされていることを確認すると、ポート1のMACアドレスを伝えるARPレスポンスを送信する。


④ホストAがARPレスポンスを受信

ルーターが送信したARPレスポンスをホストAが受信することで、ホストAはルーターのポート1のMACアドレスを取得できる。

ポート1のIPアドレスとMACアドレスはARPテーブルに追加する。


3.ホストAがホストCあてデータを送信

ルーターのポート1のMACアドレスを取得できたため、データ送信パケットを送信できる。

このパケットのイーサネットヘッダ、IPヘッダは以下のとおり。

イーサネットヘッダ 宛先MACアドレス ルーターのポート1
送信元MACアドレス ホストA
IPヘッダ 宛先IPアドレス ホストC
送信元IPアドレス ホストA

ホストCあてのパケットはとりあえず、ルーターのポート1へ送られる。


ルーターでの処理

図 ルーターでの処理


0.ホストCあてパケットをルーターのポート1が受信する

宛先MACアドレスがポート1になっているため、受信。


1.IPがルーティング

受信パケットのIPヘッダ中の宛先IPアドレスはホストC。

ルーターのIPは自分のルーティングテーブルを使ってルーティングする。

結果、ポート3からホストCへ直接送信することになる。


2.ARPでホストCのMACアドレス取得

①ARPテーブルを確認

ルーターのARPテーブルにはホストCの情報はなし。

よって、ARPリクエストを送信してMACアドレスを調べる。


②ARPリクエスト送信

ポート3からARPリクエストパケットを送信。

ルーティングした結果、ポート3から送信するため、ARPリクエストもポート3から送信。


③ホストCがARPリクエスト受信

受信したARPリクエストパケット中のARPヘッダをチェックすると、自分が問い合わされていることがわかる。

自分のMACアドレスを伝えるためにARPレスポンスをルーターのポート3(ARPリクエスト送信元)へ送信する。


④ルーターがARPレスポンス受信

ホストCのMACアドレスが取得できる。

ホストAのときと同じように、ARPテーブルに追加する。


3.ルーターのポート3からホストCあてデータを送信

ホストAから送信されたホストCあてのパケットをポート3からホストCへ送信する。

各ヘッダは以下のとおり。

イーサネットヘッダ宛先MACアドレスホストC
送信元MACアドレスルーターのポート3
IPヘッダ宛先IPアドレスホストC
送信元IPアドレスホストA

IPヘッダは変わらない。

  • 宛先IPアドレスはデータの届け先。
  • 送信元IPアドレスはデータの送り主。


イーサネットヘッダは各機器でルーティングされるたびに変わる。


しばらくは

これをやります。

で、そのうちテストします。




コメント

このブログの人気の投稿

8月18日(水)1コマ目

6月7日(月)2コマ目

5月31日(月)2コマ目