目次
TCP/IPにおけるデータ転送の方法 ~ユニキャスト/ブロードキャスト/マルチキャスト
TCP/IP(IPv4)でデータを転送するには、次の3つの方法があります。
- ユニキャスト
- ブロードキャスト
- マルチキャスト
マルチキャストの仕組みをきちんと理解するために、ユニキャスト/ブロードキャストのデータ転送についても振り返ります。
ユニキャストは1対1のデータ転送で、あて先は1つのホストのみです。一方、ブロードキャスト、マルチキャストは1対多のデータ転送です。ブロードキャストはあて先が同じネットワーク上のすべてのホストになります。マルチキャストのあて先は特定のグループに所属するホストです。
マルチキャストによるデータ送信の特徴を明らかにするため、まずユニキャストとブロードキャストによるデータ転送を考えていくことにします。特にそれぞれのデータのアドレス情報とレイヤ2スイッチでの扱いに注目します。
ユニキャストのデータ転送
ユニキャストは1対1のデータ転送を意味します。あて先は1つのホストです。ユニキャストのデータのアドレス情報を考えましょう。アドレス情報は階層ごとに捉える必要があり、ユニキャストのデータのアドレス情報は次のようになります。
- レイヤ3のアドレス情報
クラスA~クラスCのユニキャストIPアドレス
データを送信したいルータやホストのインタフェースに設定されているユニキャストIPアドレスを宛先IPアドレスに指定。 - レイヤ2のアドレス情報
NIC(イーサネットインタフェース)のMACアドレス
宛先ホストが同じサブネットの場合-送信先ホストのMACアドレス
宛先ホストが違うサブネットの場合-デフォルトゲートウェイのMACアドレス
(レイヤ2のアドレス情報は、イーサネット環境に限定して考えています)
下記のネットワーク構成をサンプルにしてユニキャストによるデータ送信を考えてみます。イーサネットの環境はよくバス型のトポロジで表されますが、現在はほぼスイッチを中心としたスター型トポロジです。そのため、スイッチを中心としたスター型トポロジのネットワーク構成で考えます。
このネットワーク構成のホストAからホストDにユニキャストでデータを送信するとき、アドレス情報は次のようになります。
- レイヤ3のアドレス情報
宛先IPアドレス:192.168.1.4
送信元IPアドレス:192.168.1.1 - レイヤ2のアドレス情報
宛先MACアドレス:D
送信元MACアドレス:A
宛先MACアドレスは、ARPによって自動的に解決します。ARPの処理については省略しています。
ホストAからホストDのユニキャストによるデータ送信を図に表すと次のようになります。
この図では、レイヤ2スイッチですでにMACアドレステーブルが完成していると仮定しています。ホストAから送信されたユニキャストのパケットは、レイヤ2スイッチで宛先MACアドレスを参照してホストDが接続されているポートにのみ転送されていきます。
ブロードキャストのデータ転送
次にブロードキャストのデータ転送を考えます。ブロードキャストは同じサブネット上の全ホスト宛にデータを転送します。ホストAからブロードキャストする場合のデータのアドレス情報は次のとおりです。
- レイヤ3のアドレス情報
宛先IPアドレス:255.255.255.255
送信元IPアドレス:192.168.1.1 - レイヤ2のアドレス情報
宛先MACアドレス:FF-FF-FF-FF-FF-FF
送信元MACアドレス:A
ホストAからデータをブロードキャストしている様子は次の図のようになります。
ホストAから送信されたブロードキャストはレイヤ2スイッチでフラッディングされます。フラッディングとは受信したポート以外のすべてのポートに転送することです。フラッディングするためには元々1つのデータを複数にコピーしなければいけません。レイヤ2スイッチがデータを必要な数分だけコピーして転送します。
転送されたデータは、ホストB、ホストC、ホストDに伝わります。このデータの送信先MACアドレスや送信先IPアドレスがブロードキャストアドレスなので、各ホストは受信してデータを処理します。
マルチキャストのデータ転送
最後にマルチキャストのデータ転送について見てみましょう。マルチキャストは、特定のマルチキャストグループに所属するホスト宛にデータを送信します。マルチキャストグループはクラスDのIPアドレスで定義します。
たとえば、ホストC、ホストDでマルチキャストグループ239.1.1.1というグループを作成し、ホストAから239.1.1.1へのマルチキャストする場合のアドレス情報は次のようになります。
- レイヤ3のアドレス情報
宛先IPアドレス:239.1.1.1
送信元IPアドレス:192.168.1.1 - レイヤ2のアドレス情報
宛先MACアドレス:239.1.1.1に対応したMACアドレス
送信元MACアドレス:A
ホストAから239.1.1.1へマルチキャストでデータを送信する様子を表すと次の図になります。
ホストAから送信されたマルチキャストのデータはレイヤ2スイッチによってフラッディングされます。つまり、レイヤ2スイッチはブロードキャストもマルチキャストも同じように取り扱います。
フラッディングによってホストB、ホストC、ホストDにマルチキャストのデータが届きます。ホストBは、マルチキャストグループに参加していないので、届いたマルチキャストのデータを受信しません。一方、マルチキャストグループに参加しているホストC、ホストDは届いたマルチキャストを受信して処理を行っていきます。
関連記事
以上のようにユニキャスト、ブロードキャスト、マルチキャストのデータ送信はそれぞれレイヤ3、レイヤ2のアドレス情報やレイヤ2スイッチでの転送の様子が異なっています。
IPマルチキャストの仕組み
- ユニキャスト/ブロードキャスト/マルチキャストの振り返り
- IPマルチキャストの用途 ~同じデータの同報~
- マルチキャストグループへの参加 ~マルチキャストデータを受信できるようにする~
- マルチキャストアドレス ~レイヤ3とレイヤ2のマルチキャストアドレス~
- IGMPの概要 ~マルチキャストグループへの参加を通知~
- IGMPの仕組み
- IGMPの設定と確認コマンド
- IGMPスヌーピング
- マルチキャストルーティングの概要
- ディストリビューションツリー
- RPFチェック
- PIM-DMの仕組み
- PIM-DMの設定と確認コマンド
- PIM-SMの仕組み ~ディストリビューションツリー作成~
- PIM-SMの仕組み ~ディストリビューションツリー作成例~
- PIM-SMの設定と確認コマンド
- PIM-SM ダイナミックなRPの設定 ~Auto RP/BSRの概要~
- PIM-SM AutoRPの設定例
- PIM-SM BSRの設定例
- Bidirectional PIMの設定と確認コマンド
- PIM SSMの設定と確認コマンド
- PIM-SMの設定演習 [スタティックRP]
- PIM-SMの設定演習 [Auto RP]
- PIM-SMの設定演習 [BSR]
- PIM-SMの設定演習 [Bidirectional PIM]
- PIM-SMの設定演習 [SSM]
- PIM-SMの設定演習 [トラブルシュート]
- Anycast RP ~RPの負荷分散~
- Anycast RPの設定と確認コマンド
- Anycast RPの設定例
- マルチキャストパケットの転送経路の制御 ~ip mrouteコマンド~
- ip multicast rate-limitコマンド ~マルチキャストパケットのレート制限~
- ip multicast rate-limitコマンドの設定例
- IGMPレポートの制限
- PIM-SM 設定ミスの切り分けと修正 Part1
- PIM-SM 設定ミスの切り分けと修正 Part2
- PIM-SM 設定ミスの切り分けと修正 Part3