通信機器に割り当てられるIPアドレスやサブネットマスクについて解説します。
MACアドレスとは
MACアドレス(Media Access Control address)とはネットワークにつながるすべての機器に割り当てられている識別番号です。
下図のとおり「ベンダ識別子」「ベンダ内管理番号」からなり、0~Fの16進数で表されます。このアドレスは世界で唯一の番号です。
IPアドレスとは
IPアドレス(Internet Protocol Address)もコンピュータが通信相手を特定するという意味において、MACアドレスと同じ役割です。ただし、MACアドレスが、モデムなどに固定的に割りあてられるのに対して、IPアドレスは人間やコンピュータが割り当てます。
IPアドレスは、人間にわかりやすいように10進数の4つの数字で表されます。範囲は、「0.0.0.0~255.255.255.255」までです。下図のようにコンピュータ通信上は2進数で扱います。
IPアドレスとMACアドレスの違い
コンピュータによるインターネット通信は、さまざまなプロトコルからなっており、MACアドレスはもっとも基礎的な第1層です。IPアドレスはコンピュータのOSや機器のファームウェアで設定される第2層にあたります。
実際の通信は、第1層のモデムなどの通信媒体を介して行われます。そのためにMACアドレスが設定されており、さらにIPアドレスを設定する必要があるわけです。
IPアドレスとサブネットマスク
一般にIPアドレスは規模に応じて、以下のIPアドレスが使われます。
クラスA :10.0.0.0 ~ 10.255.255.255
クラスB :172.16.0.0 ~ 172.31.255.255
クラスC :192.168.0.0 ~ 192.168.255.255
たとえば、コンピュータに以下のIPアドレスの設定をします。サブネットマスクは、文字通りマスクの役割をするのです。10進数の「255」は16進数で「FF」、2進数で「11111111」になります。
これで、このコンピュータは192.168.2.0(0はネットワークを表します)に属するコンピュータである。IPアドレスは192.168.2.1のコンピュータであるという設定になるのです。
同じLAN(イーサネット)の中では違うネットワークアドレスをもつ、コンピュータは通信ができず、192.168.2.0のネットワークに設定する必要があります。
【参考】TCP/IP通信における「ポート番号」とは
MACアドレスやIPアドレスは原則として、通信をするモデムなどに1つずつ割り当てられています。しかし、コンピュータの中ではさまざまなアプリケーションが動作しており、通信はアプリケーションごとに行われます。
TCP/IP通信における「ポート番号」とは、どのアプリケーションと通信するのかを明示的に区別していると考えてください。
下図はWebサーバとメールサーバの通信の一例です。
WebページにクライアントからブラウザでWebサーバ(192.168.10.1)にアクセスします。この時、ブラウザは明示していませんが、ポート番号80を指定しているのです。この例では、サーバからの返信はクライアント(192.168.10.2)のポート番号4839に返信をしています。
さらに同じサーバにブラウザでアクセスすると、同じようにポート番号80で通信して、返信は同じクライアントのポート番号4899に返信されます。ブラウザを2つ起動して、同じサーバにアクセスしても通信が成立するには、アプリケーションごとに管理されているポート番号が必要なのです。
よく知られているポート番号には以下のものがあります。
ポート番号の範囲は0~65535です。それらは以下のように区分されています。
範囲 | 名称 | 用途 |
0~1023 | ウェルノウンボード | インターネット標準として管理されているポートでありサーバプログラムが待ち受けポートとして利用する |
1024~49151 | 登録済みポート | ユーザーが実行するサーバプログラムが待ち受けポートとして利用する |
49152~65535 | 動的/非公式ポート | クライアント側の送信元ポートや非公式のサーバプログラムの待ち受けポートとして利用する |
とくにポート番号0~1023はインターネットの標準として割り当てられています。
上の図のサーバにクライアントがアクセスする場合は、ブラウザに以下のURLを入力してアクセスします。
「https://192.168.10.1」
もし、この時、Webサーバのポート番号が1234に設定されていたら、このように入力する必要があります。
「https://192.168.10.1:1234/」
このようにサーバのアドレスの後ろに「:ポート番号」を追加する必要があります。
逆にいうと、ポート80番の時は、標準的なポートを使うので省略できるというわけです。
【参考】Windows 10におけるIPアドレスの設定とファイヤーウォールの設定
BlueROV2水中ドローンの設定を例に説明します。
① ドローンが192.168.2.2のIPアドレスなので、制御PCは192.168.2.1のIPアドレスに設定します。(同じネットワーク192.168.2.0のネットワークにする必要があるため)
② 制御PCのファイヤーウォールの設定をする。
通常、パソコンはセキュリティ対策で使わないポートを閉じたり、通信を制限したりしています。そのため水中ドローンの制御プログラムがファイヤーウォールを通過できるように設定します。
下図のとおり、「Open source ground control app provided by QGroundControl dev team」または「QGroundControl」の「Private」「Public」の両方を許可します。
③ 制御用PCから水中ドローンにブラウザで通信する方法
この水中ドローンは、IPアドレス 192.168.2.2にポート番号2770でアクセスする仕様になっています。同様に「/network」で水中ドローンのWi-Fi設定。「/system」で水中ドローンのソフトウェアの確認・アップデートができます。
水中ドローンのネットワーク設定の時、制御用PCのブラウザURLは以下を入力
「192.168.2.2:2770/network」(https://は省略できます)
水中ドローンのソフトウェア確認・アップデートの時、制御用PCのブラウザURLは以下を入力
「192.168.2.2:2770/system」(https://は省略できます)