インターネットにおける主要な通信プロトコルである。ネットワークに接続されている全てのコンピュータに対して、IPアドレスと呼ばれる数字を付与し、その数字を用いて通信先の指定及び呼び出しを行う(この考え方は電話番号と似ている)。俗にIPアドレスを「IP」と呼ぶことがあるが、厳密には誤記・誤称である。移行を推奨している人たちがいる[1]。外部リンク概要編集IPは、インターネット・プロトコル・スイートに基づくインターネットワークにおいて、データグラム(またはパケット)を中継するのに使われる主要な通信プロトコルである。インターネット層の主たるプロトコルであり、送信元ホストから宛先ホストへIPアドレスに基づいてデータグラムを送付する役割を担っている。そのため、送付すべきデータをカプセル化したデータグラム構造が定義されている。送信元と宛先を示すのに使われるアドレッシング方法も定義されている。OSI参照モデルのネットワーク層にほぼ対応する機能を持つ。コネクションレスのデータグラムサービス部分がIPとなった。そのため、インターネット・プロトコル・スイートをTCP/IPと呼ぶことが多い。IPは、最も基本的な通信単位であるパケットを相手に送信する役割を担う。パケットは、発信者、受信者(手紙でいう宛て先)などの情報を持つIPヘッダ(最小20オクテット、最大60オクテット)と、通信内容を格納するペイロードとで構成される。パケットのうちIPが受け持つネットワーク層の部分はデータグラムと呼ばれる。発信者、受信者は、IPアドレスにより特定する。IPは自己のインタフェース(ネットワークカードやモデムのこと)からパケットを送出するだけであり、相手まで確実にパケットが届くことに責任を持たない(保証しない)。そのため、不慮の事故でパケットが失われた場合には単に到着しないだけである。確実な送受信を保証する必要がある場合には、IPより上位のトランスポート層のプロトコルであるTCPなどを使用する必要がある。現在主に利用されているのは32ビットのアドレス空間を持つIPv4であり、IPアドレスの不足が発生することが予測されることから128ビットのアドレス空間を持つIPv6が作られた。IPv5(ST)、IPv7(TP/IX)、IPv8(PIP)、IPv9(TUBA)というプロトコルも存在するが、いずれも実験的なプロトコルであり実用には至っていない。IPのバージョン番号はIETFによる割り振りであり、優劣などの他意はない。IPの仕組み編集IPでは、各々のLANで通信可能な範囲をセグメントと呼び、セグメント内のコンピュータをホストと呼ぶ。同じセグメントに属するホスト同士はそのLANで使用されている通信プロトコルをデータリンク層とし、その上のネットワーク層で稼動する。同じセグメントに属するホスト同士は、IP以前からそうであったように直接通信する。このため、セグメント内で通信するだけであればIPの存在意義は特にない[要出典]。IPがその存在意義を発揮するのはセグメントの外と通信することが可能であり、そして何も変更せずに(全く同じ機器/ソフトウェア構成で)セグメント内とセグメント外との区別なく通信が可能となることである。そのため、最近はLAN内の通信なのにわざわざIPを使うイントラネットを採用することで、インターネット用のソフトウェア資産やノウハウをそのままLAN内通信に利用することが多くなってきている。同じセグメント内のホスト同士の通信では、そのLANで使われているプロトコルを使って通信する。そのためIPの各実装では、そのLANで使われているプロトコルから完全に独立することはできない。送信先となるIPアドレスを持つホストにデータリンク層のデータとして送信するために必要な情報を収集しなければならない。イーサネットであれば、送信先となるIPアドレスを持つホストのインターフェースが持つMACアドレスである。そのためにブロードキャストによって「このIPアドレスの人は返事して!」とメッセージを送る。そのIPアドレスを持っているホストはそれに対して返答する。その返答の送信元が、送信先IPアドレスを持つホストのMACアドレスである。一般にブロードキャストは負荷が高くLAN内の通信を阻害するため、こうして得られたMACアドレスは今後同じIPアドレスに送信するときにはブロードキャストせずに再利用できるように、キャッシュに控えておく。IPの実装では、こうしたアドレス解決と実際の送受信部分だけはデータリンク層のプロトコルに依存することになる。使うホストでだけ必要になるため、世界中に散らばる各セグメントとの通信の際には問題にならない。使うセグメントに分かれたホスト同士の通信の場合は、後述するゲートウェイがこれを解決する。異なるセグメント同士の相互通信編集セグメントとセグメントの間、あるいはセグメントとWANの間にはルーティングを行なうための特別なホストであるルータがある。ルータにはあらかじめ、自身が繋がれているそれぞれのセグメントにいるホストのIPアドレスを教えてある。これはルーティングテーブルと呼ばれる。ルータは、一方のセグメントのホストから他方のセグメントのホストにパケットが送られようとしていると、一旦後者のホストの代わりにパケットを(前者のLANのプロトコルで)受け取り、ルーティングテーブルを参照してどのセグメントに送ればいいかを選択し、そのパケットを後者のLANのプロトコルで後者のホストに送る。ルータはルーティングテーブルによって、あるIPアドレスに送るにはどのセグメントに送ればよいかを把握している。一部が破壊されても、このルーティングテーブルを書き換えるだけで破壊箇所を迂回することが可能になる。ルータと似ているが、ルーティングテーブルを持たず、異なるLANのプロトコルを変換して互いに中継するブリッジと呼ばれるものがある。ブリッジはIPより下位の層(OSI参照モデルのデータリンク層)の機器であり、IPとは関係なく動作する。異なるプロトコルを用いるセグメント同士の間をつなぐルータはゲートウェイ(門)と呼ばれる。本来ゲートウェイはOSI参照モデルのネットワーク層におけるブリッジに相当するルータの基本機能の一部なのだが、セグメントのほとんどがイーサネットになっているため、特にセグメントとWANとの間にあるルータだけがゲートウェイであることが多い。ルータが知らないIPアドレスは(ルーティング処理の一環として)全てデフォルトゲートウェイと呼ばれる特別なゲートウェイに送られる。デフォルトゲートウェイは通常WANとの接続部分にあるため、未知のIPアドレスへのパケットは全てWAN側(外の世界)のルータにパケットを送信することになる。WANのルータが送信先となるIPアドレスの存在するセグメントのゲートウェイにパケットを送信し、ゲートウェイが送信先となるIPアドレスを持つホストにパケットを送信することで世界中のホストと通信が行なわれる。ホストのアドレッシングとデータグラム(パケット)の送信元ホストから宛先ホストまでの1つまたは複数のIPネットワークをまたいだルーティングを担当する。このために、ホストの識別と論理的位置サービスの提供という2つの機能を持つアドレッシング体系を定義している。これは、標準データグラムと標準アドレッシング体系を定義することでなされる。リンク層プロトコルのフレームまで、アプリケーションのデータをカプセル化する例データグラムはヘッダとペイロードで構成される。IPヘッダには、送信元IPアドレス、宛先IPアドレス、データグラムのルーティングや転送に必要なメタデータが含まれる。ペイロードは転送すべきデータである。このようにデータ・ペイロードにパケットのヘッダを付与して入れ子状に構成していくことをカプセル化と呼ぶ。詳細は「IPアドレス」を参照IPの最も複雑な部分がIPアドレッシングとルーティングである。アドレッシングとは、各ホストにIPアドレスを割り当てる方法であり、IPホストアドレス群を分割・グループ化してサブネットワークを形成する方法である。信頼性編集IPの設計原理は、ネットワーク基盤はどのネットワーク要素や伝送媒体をとっても本質的に信頼できないと仮定しており、リンクやノードの可用性の面でも一定でないと仮定している。ネットワークの状態を追跡し維持する集中監視機能や性能測定機能は存在しない。ネットワークを単純化するため、知的な部分は意図的に各データ転送の端点であるノードに担わせ、これをエンドツーエンド原理と呼ぶ。転送経路の途中に位置するルーターは、宛先アドレスのルーティングプレフィックスにマッチする最も近いゲートウェイにパケットを転送するだけである。このような設計の結果、IPはベストエフォート式配送のみを提供し、「信頼できない」と見なされている[誰によって?]。ネットワークアーキテクチャとしては「コネクションレス」プロトコルであり、コネクション指向の転送モードとは対照的である。信頼性がないため、データが壊れたり(英語版)、パケットを消失したり、パケットが複製されたり、パケットの順序が入れ替わって受信されたりする。ルーティングはパケット毎に動的に行われ、ネットワークは以前のパケットが通った経路についても状態情報を保持しない。そのため一部のパケットが他より長い経路を通ることがあり、受信側でパケットを受信する順序がおかしくなる可能性がある。信頼性のないIPv4で唯一確かなのは、IPパケットのヘッダには誤りがないという点である。ルーティングするノードは、パケットのチェックサムを計算する。チェックサムが合わない場合、そのノードはそのパケットを捨てる。そのような通知をすることも可能である。IPv6ではルーティングの高速化を優先してチェックサム計算をやめた。上位層プロトコルは、この信頼性問題への対処を担う。アプリケーションにデータを渡す前にデータをキャッシュして正しい順序に並べ替えたりする。信頼性問題に加え、動的性質とインターネットおよびその構成要素の多様性に関連し、データ転送経路のうちどれが適当かは全く保証できない。技術的制約の1つとして、リンクごとにデータパケットのサイズ上限が異なる。アプリケーションは適切な伝送特性を使うことを保証しなければならない。この責任の一端は、IPとアプリケーションの中間に位置する上位層プロトコル群にもある。サイズを調べるファシリティがあり、IPv6の場合は宛先までの経路全体を考慮したMTUサイズを調べるファシリティもある。IPv4には元のデータグラムを自動的に断片化する機能がある。この場合、IPは断片化されたパケット群の到着順序を正しく保つ必要がある[2]。セグメントサイズをMTUより小さく調整するプロトコルである。MTUサイズを無視するので、必要ならIPが断片化を行う[3]。題した論文を公表した[4]。この論文で筆者ヴィントン・サーフとロバート・カーンは、ノード間のパケット交換を使ってリソースを共有するインターネットワーキング・プロトコルを記述した。コネクション指向のリンクとデータグラムサービスの両方を含んでいた。呼ばれ、正式にはインターネット・プロトコル・スイートと呼ばれている。インターネットを定義する要素の1つである。インターネット層におけるインターネットワーキング・プロトコルで2012年現在主に使われているのはIPv4である。この4という番号はプロトコルのバージョン番号で、全てのIPデータグラムの先頭に書かれている。IPv4の後継がIPv6である。バージョン4からの最大の変更点はアドレッシング体系である。3.4×1038)を使っている。IPv6の採用はゆっくりとしていたが、2008年6月、アメリカ合衆国連邦政府がバックボーンレベルのみではあるが全システムでIPv6をサポートしてみせた[5]。IPのバージョン0から3まではIPv4の開発途中のバージョンで、1977年から1979年までに使われた[6]。バージョン6から9までは、IPv4の後継として提案された各種プロトコルである。して採用されることになった。名乗ったプロトコルが提案されたことがあるが、全く支持されていない[7]。1994年4月1日、IETFはエイプリルフールのジョークとしてIPv9を発表したことがある[8]。脆弱性編集IPは様々な攻撃に対して脆弱である。網羅的な脆弱性アセスメントが対策の提案と共に2008年に公表され[9]、その後IETF内で対策を検討中である[10]。3.0のもとで利用可能です。プライバシーデスクトップ。