本連載では、ネットワークを構成する基本的な要素「物理層」と「データリンク層」の解説を行ってきました。今回から複数回にわたり、その上位にあたるネットワーク層について、その役割や機能を学習していきます。
IP(Internet Protocol)という言葉をご存じでしょうか。「もちろん知っているし、使っている」という方も、「よく聞く」、「聞いたことはある」、という方もいらっしゃると思います。
IPは1970年代に登場したネットワーク層のプロトコルです。登場した当時はIP以外にもネットワーク層のプロトコルはいくつも利用されていました。しかしそれらは、インターネットの普及によってIPのネットワークへ統合が進み、徐々に使われなくなっていきました。
現在では、ネットワークを支える代表的なプロトコルとしてIPが利用されています。スマートフォンでSNSを利用する時、サブスクリプションサービスを使って音楽を聞く時、購入したチケットをコンビニエンスストアで発券する時、他にもあらゆるネットサービスが、IPというネットワーク層プロトコルを使って提供されています。
ネットワーク層とは
OSI階層モデルの第3層であるネットワーク層は、複数存在するネットワーク同士を結び付ける役割(機能)を持つレイヤです。つまり、ネットワーク層のプロトコルは、異なる物理層(第1層)やデータリンク層(第2層)のプロトコルで作られたネットワークであっても、それらを結び付けることができるという機能を持っています。
異なるネットワーク同士を結び付けるとき、そこには必ず「境界」となる場所が必要になります。ネットワーク層のプロトコルはその境界(出入り口)を用意し、「このネットワークへ入って良い」、「こちらの出口から違うネットワークへ進んで下さい」などの案内をすることで、広大なネットワークの中でもデータが迷子にならないようにしています。
比較のため、データリンク層のプロトコルについて少し振り返ってみましょう(表1参照)。データリンク層は、同じ物理的な媒体(メディア)に接続された相手と通信するための機能を提供しています。そのため、MACアドレスやフレームフォーマット、物理層にどういった規格を利用するかなどを決めています。
物理的な規格について | アドレッシング | ネットワークの境界 | |
---|---|---|---|
Ethernetの場合 | 定められている(依存する) | 機器(ポート)を識別するMACアドレスを使う | 論理的な境界を作る機能はない |
IPの場合 | 定められていない(依存しない) | グループ分けが出来るIPアドレスを使う | アドレスでグループ分けを行い、論理的な境界を作ることができる |
表1:Ethernet(データリンク層)とIP(ネットワーク層)の違い
しかし、ネットワーク全体に目を向けてみると、すべてのネットワークが同じデータリンク層のプロトコルを使っているわけではありません。
有線と無線、LANとWAN、社内ネットワークとクラウドネットワークというように、目的に応じてタイプの異なるさまざまなネットワークが存在しています(図1参照)。 一つのデータリンク層プロトコルでは、これら環境の違いを越えてデータを交換できないという限界も出てくるのです。
LANで使われるプロトコルは「Ethernet」や「Wi-Fi」が代表的ですが、WANではそれ以外のデータリンク層や物理層プロトコルが多く使用されています。それは、LANに求められること(安価で構築でき、メンテナンスがしやすい)と、WANに求められること(サービスとして顧客へ安全に貸し出せるだけの信頼性が確保でき、障害からの復旧が迅速にできる)が異なるからです。
適材適所で選択され、つなぎ合わされた物理層/データリンク層の個々のネットワークに依存せず、相互のデータ交換を実現することができるのが、ネットワーク層のプロトコルです。
IPヘッダ
IPは、異なるネットワーク同士をつなげて大きなネットワークを作ることができる、というお話をしました。このとき、ネットワーク層で行うべき機能を果たすために必要な情報を「ヘッダ」として、データに付加しています。IPが作るヘッダの中にはどのような情報があるのかを見ていきましょう(図2参照)。
IPのヘッダには以下の情報が含まれています。
フィールド | 説明 |
---|---|
Ver | IPのバージョン情報 |
IHL | ヘッダ長 |
ToS | サービスタイプ(品質保証に使用) |
Total Length | パケット長 |
Identification | 識別子(データを分割した場合に使用) |
Flags | フラグ(データ分割制御に使用) |
Fragment Offset | フラグメントオフセット(分割したデータの元の位置を指定) |
TTL | Time To Live(パケットの生存時間) |
Protocol | 上位層のプロトコルコード |
Header Checksum | ヘッダのエラーチェックに使用 |
Source Address | 送信元IPアドレス |
Destination Address | 宛先IPアドレス |
Options | オプション(可変長) |
Padding | ヘッダの長さを32ビット倍にするために”0”を埋める |
送信元IPアドレスや宛先IPアドレスという通信の発信元と宛先を識別するための部分以外にも、多くの情報が記載されているのがわかります。
第5回(データリンク層)で紹介した、Ethernetのフレームヘッダとも比較してみてください。IPヘッダにはたくさんの情報が含まれていますが、今回はその内容を覚えるというわけではなく、「ネットワークを越えてデータ交換が行われるためにはさまざまな情報が必要」というイメージを捉えていただければ十分です。アドレスについては、詳細を次回の記事で紹介する予定です。
IPを中心としたインターネット・プロトコル・スイート
ネットワーク層でデータ交換を行うプロトコル「IP」は、インターネットの中核を担っているプロトコルです。しかし、IP単独でサービスは成立しません。他の複数のプロトコルと連携する必要があります。
IPに限らず、インターネットで利用されている技術/プロトコルの大部分はIETF(Internet Engineering Task Force)という標準化団体で仕様が管理されています。IETFでは多くのプロトコルを標準化し、RFC(Request for Comments)と呼ばれる文書としてインターネット上で公開しています。
RFCは、誰でも閲覧することができ、RFCとしてプロトコルを提案(draft)することもできます。提案が採用されると「ドラフト」として公開され、さらに審議を経てワーキンググループの発足、動作テストの末に標準(Standard)として認定されるかどうかが決まります。
追加や更新、廃棄されるものもありますが、現在RFCは8000 を超える標準が公開されています。これら数多くのプロトコルを組み合わせることで、さまざまなサービスが実現されています。
これらIPを中心とした関連のプロトコルは “TCP/IP”や、“インターネット・プロトコル・スイート”と総称されています。これはネットワーク層が単独で通信サービスを担っているわけではないという良い例えです。
OSI階層 | プロトコル |
---|---|
アプリケーション層 | HTTP、FTP、DNS、SMTP、SSH、Telnetなど |
トランスポート層 | TCP、UDP |
ネットワーク層 | IP |
データリンク/物理層 | Ethernet、Wi-Fi、FTTH、5Gなど |
例えば、トランスポート層プロトコルのTCPでは、送信データが相手に届かなかった場合に再送する機能が設けられています。
アプリケーション層のプロトコルHTTPでは、文章や画像、動画などの異なる形式のデータを一緒に運ぶための機能が提供されています。本連載では今後、これら上位層のプロトコルの仕組みについても学習していきます。
IPと上下階層プロトコルとの連携
サービスを実現するには、「IPはさまざまなプロトコルと連携する必要がある」と前のセクションで紹介しました。IPとその上下の階層を例に、どのような連携をしているのか見てみましょう。
上位の階層と連携する
IPのヘッダ内には、「Protocol」という項目がありました。これは上位層のプロトコルに何を使っているかを表しています(TCPや、UDPなど)。この内容をIPが確認することで、IPとトランスポート層の関係性は正しく維持されることになります。下位の階層と連携する
Ethernetのフレームヘッダ内には、「Etype」 という項目がありました。これは、データリンク層から見て上位層のプロトコルに何を使っているかを表しています(IPなど)。この内容をEthernetが確認することで、確実にIPに処理を渡すことができるようになり、IPとEthernetの関係が正しく維持されることになります。
まとめ
・ネットワーク層のプロトコルは論理的にネットワークを分割できる機能を持っている
・ネットワーク層のプロトコルは異なるデータリンク層のプロトコル上で動作する、共通の通信規約として使用される
・ネットワーク層のプロトコル“IP”は大規模なネットワークを構築できる
・IPはネットワーク層のプロトコルで、IPヘッダがデータに付与される
・IPはネットワーク層のプロトコルだが、単独ではなくトランスポート層やアプリケーション層などの他のプロトコルと組み合わせて利用される
次回からは、IPのアドレス構成など、プロトコルの詳細を具体的に解説します。
著者プロフィール
髙橋 真樹(たかはし まさき)
1995年ネットワンシステムズ入社。前職ではシステム開発に携わっていたが、入社後は ネットワークインフラの構築業務を経て現在の技術インストラクター業務に就く。長年ネットワークエンジニアの育成を担当しており、シスコシステムズ社の認定インストラクターとしてCCSI Excellence Awardおよび Contribution Awardの受賞経験あり。近年はネットワークに加え、IoTや仮想化、自動化などのカリキュラム設計も担当している。