[超初心者向け!] TCP / IP ネットワーク層を図でわかりやすく解説
はじめに
TCP / IP ネットワーク層を初心者向けに図でわかりやすく解説してみました
この記事の対象者
・ネットワーク初心者
・インフラ初心者
目次
- IP アドレスいるよね
- case1: 同じネットワークにある場合
- case2: 違うネットワークにある場合
物理層からみたい方はこちら
1. IP アドレスいるよね
前回のデータリンク層で話した内容は、あくまで LAN 内の話でした
チェックしたい方はこちらから閲覧してください↓
しかし、複数のネットワーク( LAN )にまたがってデータを送信する場合、MAC アドレスとは別に IP アドレスを用いて、ネットワークを識別しながらデータを送信する必要があります。
デバイスを認識するための MAC アドレス、ネットワークを識別するための IP アドレス
2. case1: 同じネットワーク内に送信する場合
まずは、このように送信元と送信先が同じネットワーク内に存在するケースを考えてみましょう。
1.① ARP テーブルをチェック
まずは、ARP テーブルをチェックします
ARPテーブルは空です。
尚、もしここに送信先の IP アドレスが見つかった場合、リンクする MAC アドレスの情報が送信元に送られます。
2.ブロードキャストをネットワーク中に送る
送信元が送信先の MAC アドレスを知るため、ブロードキャストをネットワーク中に送ります。
3.該当する IP アドレスだけ MAC アドレスを教えてくれる
該当する IP アドレスが送信されてきたブロードキャストに対して、MAC アドレスを返信します。
それ以外のデバイスについては、何も返信せず無視されます。
4.次回のために PC 内の ARP テーブルに保存
IP アドレスとそれにリンクする MAC アドレスを ARP テーブルに保存します。
3. case2: 違うネットワーク内にある場合
次は、送信元と送信先が違うネットワーク内に存在するケースを考えてみましょう。
次、また同じ送信先に渡す場合、ブロードキャストを送る必要はなく送信先の IP アドレスが ARP テーブル内のリンクする MAC アドレスの情報が送信元に送られます。
1.ARP テーブルをチェック
まずは、ARP テーブルをチェックします
ARP テーブルは空です。
尚、もしここに送信先の IP アドレスが見つかった場合、リンクする MAC アドレスの情報が送信元に送られます。
2.ブロードキャストを LAN 中に送る(ARP)
送信元が送信先の MAC アドレスを知るため、ブロードキャストをネットワーク中に送ります。
3.該当する IP アドレスだけ MAC アドレスを教えてくれる(ARP)
該当する IP アドレスが送信されてきたブロードキャストに対して、MAC アドレスを返信します。それ以外のデバイスについては、何も返信せず無視されます。
4.次回のために PC 内に ARP テーブルに保存
IP アドレスとそれにリンクする MAC アドレスを ARP テーブルに保存します。
5.データを送信
データを送信します。
ここまでは case1. 同じネットワーク内にある場合と一緒ですね。ここからは違うネットワーク内と通信する方法を説明します。
6.NATを使ってグローバルIPアドレスに変換
NAT とは、プライベート IP アドレスに対応するグローバル IP アドレスに変換するときに必要なものです。ここまで話してきた IP アドレスはネットワーク内で使用されるプライベート IP アドレスと呼ばれるものです。
異なるネットワーク内ではグローバル IP アドレスを使って識別をします。
6.1.NAT を使ってグローバル IP アドレスに変換
プライベート IP アドレスをグローバル IP アドレスに変換します
6.2.渡したいネットワークのグローバル IP アドレスと通信
渡したいネットワークのグローバル IP アドレスと通信します
6.3.グローバル IP アドレスをルータ内のプライベート IP アドレスに変換
送信先のネットワークのグローバル IP アドレスをプライベート IP アドレスに変換します
7.同じ要領でネットワーク内を回る
バケツリレー方式で、送信先に渡るまで、これまでと同じ要領でネットワーク内を動きます。
まとめ
・MACアドレスは機器の識別、IPアドレスはネットワークの識別のために必要
・MACアドレスとIPアドレスの識別にはARPというプロトコルが用いられる
・通信にはARP/ARPテーブルからMACアドレスを取得する必要がある
・PCは次に渡す機器のルートしか知らない
・ネットワーク内では機器がデータをバケツリレー方式で渡す
最後まで見ていただきありがとうございました!
Discussion