##IPの役割
主な役割は、アドレスの管理と経路の選択。
つまり、終端のノード間における通信を実現する役割を担っている。
IPはOSI参照モデルのネットワーク層に該当する。TCP/IPの核ともいえる
ネットワーク層の下位層に位置するデータリンク層は、同一の直接リンクされたノード間での通信を行う。ネットワーク層がデータリンク層を制御し、パケットを送ることで、同一の直接リンクされていないコンピュータ間での通信が可能となる。
用語
- ノード:ネットワーク接続されている終端のコンピュータなどの機器を指す。
- TCP/IP:IPとTCPのふたつのプロトコルを指すのではなく、多くの場合は、IPを利用したり、IPで通信をするときに必要となるプロトコル群の総称として用いられる。
- OSI参照モデルは、あくまでモデルで通信の役割をそれぞれ概念的に理解しやすいようにしたもの。詳細なプロトコルの定義がされているわけではない。
##なぜネットワーク層とデータリンク層が分かれているのか
データリンク層:直接つながった機器での通信をおこなう。
ネットワーク層:直接接続されていないネットワーク間の通信を行う。
データリンクは、パソコンA~ルーターA、ルータA~ルータB、ルータB~パソコンBのように1区間で有効ごと(1区間を1ホップという。今回は3ホップで到達している)。
そしてネットワーク層は、そのデータリンクの区間ごとの通信で最終的にどこに行くかという全体の流れを司っている。
旅行で例えると、A駅からX駅に行きたい。というとき、その時の経路A駅、B駅、C駅で乗り換えてX駅に着くというときは、A駅からB駅までの1区間ごとに届ける役割がデータリンクであり、その全体の行程を制御して最終的にX駅まで到着するという目的を達成させるのがネットワーク層であるIPの役割である。
IPは複数のデータリンク間の通信を実現するプロトコルである。
##IPアドレスについて
インターネットに接続されるホストやルータは、必ずIPアドレスを設定しないといけない。IPアドレスの形式は、どのデータリンクでも全く同じ形式であり、ユニークでなければいけない(オンリーワン)。
データリンク内でもMACアドレスが使われている。これは、同一のリンク内つまり、LAN内で識別するために使われる。
##ルーティング(経路制御)
IPでもっとも重要な役割。これがあるから、地球のどこにいても目的の場所でデータを送ることができる。
####終点までのパケットはどう送られるか
IPではホップバイルーティングという方法が、利用されている。それは、行き当たりばったり(英語では"Ad Hoc")と呼ばれている。
データ送信元のコンピュータは、送信先はどこかわかるがその送信先への経路はわからない。
ルータも全体でどのような経路かはわからないが、一つ先の経路までわかるようになっている。
ルータで逐一行先を告げることで、途中までの経路(1ホップ先)を教えてくれる。それが繰り返されていくことで、届けたい先に情報を届けることができる。
すべてのルータは、経路制御表(ルーティングテーブル)という情報を持っている。
この表のおかげで、IPパケットを次にどのルータへ送ればよいのかという情報がわかる。
##フラグメンテーション(分割化処理)
データリンク間の通信を実現するプロトコルであるIPは、それぞれのデータリンクの違いを感じさせない抽象化する仕組みがある。
その一つが、最大転送単位(MTU:Maximum Transmission Unit)である。データリンクごとに異なるものであり、データの大きさである。1度の通信での最大の大きさである。EthernetやFDDIなどのデータリンクごとに異なっている。
具体的には、イーサネットでは、1500バイト。FDDIでは、4352バイトとなっている。
IPの上位層は、このMTUよりも大きなデータを要求するかもしれない。そんな時は、フラグメンテーションを行う。
フラグメンテーションは、送るパケットを複数の小さなパケットに分割して、宛先のホストで再び1つにまとめられてIPの上位層に渡される。
IPの上位層からは、データリンクでのデータサイズの違いに関係なく、まとまった1つのデータが届くことになるので、上位層はネットワークの細かい構造を気にしなくてもよくなっている。
##コネクションレス型のIP
通信相手との間にコネクションの確立を行わない。
一方的にデータを流す。
コネクションレス型のデメリットは、
相手がいなくてもデータを送れる。
データを取りこぼしてしまう可能性がある。
以上のことから無駄が多くなる可能性がある。
しかしながら、機能の簡略化と、高速化をコネクションレス型は実現可能なのである。
通信するたびにコネクションを確立すると、そのたびにコネクション確立のための通信を行うので、処理速度の低下につながる。
IPは、信頼性が低いので、信頼性の高い通信を行う必要があるときは、ネットワーク層の上層であるトランスポート層においてTCPのプロトコルを用いて通信の信頼性を高い通信を行えるようにしている。
#####参考
マスタリングTCP/IP
データリンクやMACアドレスについてわからない人は以下を参考にしてください。
TCPやコネクションについては、以下を参考にしてください。