インターネット層

インターネット層とはインターネット・プロトコル・スイートにおける、インターネットワーキング手法、プロトコル、そして仕様をまとめたものである。インターネット層は、送信元ホストからネットワーク境界を越えてデータグラム（パケット）を転送するために使われる。さらに必要な場合にはこの目的のためにInternet Protocolによって定義されたIPアドレスで送信先ホストを指定することもできる。インターネット層という名前はインターネット（ここでは固有名詞としてのインターネットのことではなく、「相互ネットワーク」という意味の一般名詞を指す）を形成したり、インターネットワーキングを容易にする機能に由来する。インターネットワーキングとはゲートウェイを通じて複数のネットワークを互いに接続する概念である インターネット層のプロトコルはIPベースのパケットを使用する。インターネット層には、ローカルネットワーク・トポロジーなどのローカルノード間のリンク状態維持の目的にかなう、ローカル（オンリンク）ネットワークノード間の通信を定義するプロトコルは含まれないため、リンクのタイプに特有のパケット構造をベースとしたプロトコルを使用することが多い。このようなプロトコルはリンク層に属する。 インターネット層において共通の設計側面は、ロバストネス原則（英語版）である。つまり「受け入れるものは自由に、送るものは慎重に」という設計である。このため、無作法に振る舞うホストは他の多くのユーザーに対してインターネットサービスを提供しない可能性がある。 インターネット層には以下の3つの基本的な機能がある: 送信されるパケット用に次のホップのホストを選択し、適切なリンク層実装にパケットを渡しそのホストへ転送する機能。 受信したパケット用にパケットをキャプチャし、可能ならばそのパケットペイロードを適切なトランポート層プロトコルまで渡す機能。 エラー検出と診断機能を提供する機能。 Internet Protocolのバージョン4 (IPv4) においては送信および受信の両方の操作中に、リンク要素のMaximum Transmission Unit (MTU) などをベースにして、IPが自動的または意図的にパケットのフラグメンテーションやデフラグメンテーションを行える。しかしながらIPv6ではこの機能は削除され、通信エンドポイントであるホストはPath MTU Discovery（英語版）を実行して、エンドツーエンドの送信量が検出された最大値を超えないことを保証しなければならない。 インターネット層はその操作において、信頼できる送信に対する責任を負わない。インターネット層は信頼できないサービスと「ベストエフォート」な転送しか提供しない。これはネットワークがパケットを適切に届けることを保証しないことを意味する（Internet Protocol#信頼性を参照すること）。これは重要な設計原則であり、初期のARPANETで使用されていた以前のプロトコルからの変更点である。多様なネットワークを渡るパケットの転送は本質的に信頼できず故障しやすい操作だからであるため、ネットワークではなく通信経路のエンドポイント、すなわちホストが信頼性を提供する負担を背負うことになった。インターネット（固有名詞としての）が個々のリンク障害や実績のあるスケーラビリティに対して柔軟に対応できる理由の1つがこれである。 サービスの信頼性を提供する機能は、トランスポート層におけるTransmission Control Protocol (TCP) など、より高い層におけるプロトコルの義務である。 IPv4（IPv6ではない）においては、各データグラムのヘッダを保護するためにチェックサムが利用される。チェックサムは受信したヘッダの情報が正確であることを保証するが、IPは各パケット内のデータに発生した可能性のあるエラーの検出を試みることはしない。 インターネット層における主要なプロトコルはInternet Protocol (IP) であり、それにはIPv4とIPv6の2つのバージョン実装が存在する。Internet Control Message Protocol (ICMP) は主にエラーと診断機能のために利用され、IPv4とIPv6とでは実装がそれぞれ異なる。Internet Group Management Protocol (IGMP) は、マルチキャストグループのメンバーシップを確立するために、IPv4ホストと隣接したマルチキャストルーターによって利用される。 Internet Protocol Security (IPsec) は、データストリーム内の各IPパケットを認証して暗号化することによりInternet Protocol (IP) 通信を確保するためのプロトコルスイートである。IPsecには暗号鍵用のプロトコルも含まれる。IPsecは元々1995年にIPv6の基本仕様として設計され、後にIPv4に採用され、Virtual Private Networkのセキュリティ確保のため広く使われている。 明確な一級参照文献と標準的な標準文書にもかかわらず、インターネット層はネットワーク層と不適切な呼ばれ方をされることが多い。なぜならTCP/IPモデルのインターネット層は、開放型システム間相互接続 (OSI) OSIプロトコル（英語版）スタックのネットワーク層（レイヤ3）と直接比較されやすいからである。 インターネット層とネットワーク層には重複しているところがあるが、OSIとTCP/IPの2つのモデルが表す分類方法はそれぞれ異なる。特にこれら2つの層に配置されたプロトコルで許容される特質は、それぞれのモデルで異なる。OSIのネットワーク層では、ネットワーク機能を手助けする全てのプロトコルに対する包括的な層である。他方インターネット層は、具体的にはInternet Protocolを利用してインターネットワーキングを手助けするプロトコルのスイートである[要出典]。 RFC 791, Internet Protocol (IP), J. Postel, September 1981 RFC 792, Internet Control Message Protocol (ICMP), J. Postel, September 1981 RFC 815: IP Datagram Reassembly Algorithms, D. Clark, July 1982 RFC 816: Fault Isolation and Recovery, D. Clark, July 1982 RFC 879, The TCP Maximum Segment Size and Related Topics, J. Postel, November 1983 RFC 950, Internet Standard Subnetting Procedure, J. Mogul and J. Postel, August 1985 RFC 1108: Internet Protocol Security Options, B. Schofield, October 1989 RFC 1112, Host Extensions for IP Multicasting, S. Deering, August 1989 RFC 1122, Requirements for Internet Hosts?Communication Layers, IETF, R. Braden (Editor), October 1989 RFC 1123, Requirements for Internet Hosts?Application and Support, IETF, R. Braden (Editor), October 1989 RFC 3439, Some Internet Architectural Guidelines and Philosophy, R. Bush, D. Meyer, December 2002 エンドツーエンド原理 ^ a b R. Braden, ed. (October 1989), Requirements for Internet Hosts -- Communication Layers, IETF, RFC 1122  ^ R. Atkinson (August 1995), Security Architecture for the Internet Protocol, IETF, RFC 1825  ^ P. Karn; P. Metzger; W. Simpson (August 1995), Security Architecture for the Internet Protocol, IETF, RFC 1829  ^ RFC 1123 ^ http://electronicdesign.com/what-s-difference-between/what-s-difference-between-osi-seven-layer-network-model-and-tcpip ^ http://www.studytonight.com/computer-networks/comparison-osi-tcp-model ^ http://www.omnisecu.com/tcpip/tcpip-model.php ^ http://www.dummies.com/programming/networking/cisco/network-basics-tcpip-and-osi-network-model-comparisons/