新米ネットワークエンジニアだわよ!

ネットワークエンジニアとして勉強していく中で大事だなー!!と思ったことを忘れないようにするために書いてます。このブログで不明点が解決できたら嬉しいです^^

データの届き方

データを送信する際、必ず必要となる情報が4つある。

 

送信元MACアドレスIPアドレス

送信先MACアドレスIPアドレス

 

これが最低限必要な情報になる。

 

送信元は自分だからいいとして、送信先MACIPアドレスを調べる必要がある。

送信元、先のIPアドレスは始まりと最終的な宛先のアドレスを指定する。

 

※当たり前だけどIPはNATすりゃ変わるよ。。

 

対してMACアドレスはルータを経由する際に、その都度変える。

セグメント内であれば、arp要求をブロードキャストで送付して

宛先のIPアドレスと合致するホストがarp応答を返してくれる。

 

セグメントを超える通信の場合は、デフォゲ宛へarpをしてパケットを送付する。

 

パケットというのは、データを小分けにしたもの。

大きなデータの場合、それを一気に送らずに1500byte (MTU)に分けて送付する。

※ちなみにヘッダ情報を除いたものをMSSという。

※フレームとの差は、MACアドレスヘッダをつけたかそうでないか。

 

ヘッダ情報とは、パケットにつける制御情報のようなもの。

手紙でいうところの宛名と自分の住所の部分。

 

この部分に上記に記載したmac,ipのアドレスを入れる。

 

MACヘッダ、IPヘッダ、TCP or UDPヘッダーがある。

 

 

macヘッダには、送信元送信先macアドレス

Ipヘッダには、送信元送信先IPアドレスプロトコル番号。

tcp:6 , udp:17 , icmp :1 とかとか。

 

TCP,UDPヘッダーは、送信先送信元のポート番号。

http : 80とか。

 

Routerの動作として、ルーティングテーブルとMACアドレステーブルを

基本的に確認して、Next-hopと送出インタフェースを決める。

 

ルーティングテーブルに宛先のルートがない場合は、

デフォルトルートがある場合は問題ないがない場合はパケットがdropする。

 

MACアドレスはなくても、ARPにて解決することができる。

その場合、Next-hopのIPアドレスARP要求をする流れとなる。

 

そこでわかったMACアドレスをヘッダ情報の宛先に変えて、

自身の送出インタフェースのMACを送信元に変えてnext-hopへ送信する。

 

これを繰り返してデータが最終的な宛先に届く。

ちなみに、スイッチはMACアドレスを見て、自身のMacアドレステーブルから

送出インタフェースを決めて送出する。データはいじらない。 

 

余談だが、戻りの通信もちゃんと意識することが大事。

 

L3でパケット→L2でフレームになる。

カプセル化されているMACアドレスを見たらパケットになるわな。

 

だからルータでは一旦パケットにしてまたMacアドレスを書き換えて

フレームにするみたい。