TCP/IP サービスの解説

TCP/IP サービスの解説
調査担当者
長島
TCP/IP とは
Transmission Control Protocol/Internet Protocol の略。
広義には TCP/IP 階層モデル(関連する TCP/IP プロトコル群もしくはプロトコルスイート)を、狭
義には TCP と IP(もしくは IP 上で動く TCP)を意味する。
TCP も IP もネットワークプロトコル(※1)のひとつである。
80 年代はじめに UNIX4.2BSD に標準で実装されたために急速に普及が進み、現在、
インターネットにおける標準プロトコルとなっている。
※ 1 プロトコルとは
コンピュータ同士でデータを通信するときの規約、約束事のこと。
パソコンで通信するときに、それぞれ同じ通信プロトコルを使用しないと通信はできない。
インターネットでは TCP/IP が基盤になっており、 そのうえでさらに「http」や「ftp」などの用途別のプロ
トコルにしたがって情報の送受信が行われている。
階層構造について
TCP/IP 階層モデルでは 4 層の階層構造を為している。
OSI 基本参照モデルの物理層とデータリンク層をネットワークインターフェース層、ネットワー
ク層をインターネット層、トランスポート層をトランスポート層、セッション層以上の 3 階層を
アプリケーション層と呼んでいる。
■階層構造の利点
・ネットワークを間歇した機能ごとに層を作ることで、部分的に入れ替えが可能となる。
つまり、新しいシステムを実装したいというような場合、ある一部の層のみを置き換え、他は既
存のシステムを用いることができる。
・メンテナンスにも都合が良い。
■階層構造の欠点
・効率が悪い
■参照:OSI 基本参照モデル
国際標準化機構 (ISO) により制定された、 異機種間のデータ通信を実現するためのネットワーク
構造の設計方針「OSI(Open Systems Interconnection)」のこと。いわば理論モデル。ここでは 7 層構
造となっている。
注:OSI 基本参照モデルよりも層が分かれていないのは、TCP/IP モデルがこの理論モデルを軽視したためではな
く、この理論モデルよりも早い段階で出来たためである。
TCP/IP の由来
冷戦中、核攻撃で部分的に破壊されても全体が停止することのないコンピュータネットワークを
1
開発するという米国防総省の資金援助によるネットワークプロジェクト DARPANET(Defense
Advanced Research Project Agency Network)で開発されたネットワークプロトコルであると言われ
ている。
TCP/IP の特徴
IP について
IP は OSI モデルでの第 3 層のネットワーク層(最終的な通信相手との通信経路の確立・制御を行う
層)にあたる。
IP では、それ以下の層とは独立した IP アドレスという番号を用いて通信を行う。
■ IP アドレスとは
■インターネット上でコンピュータを識別するための番号(電話番号や住所のようなもの)。
■よって、基本的には(グローバル IP アドレスを用いた場合には)1 つの IP アドレスにつき 1 つ
のコンピュータが対応する。
■ IP アドレスのうち、サブネットマスクがかかった部分がある 1 つのネットワークを示している。
■各ネットワークには、ネットワークアドレスとブロードキャストアドレスが存在する。
■プライベート IP アドレス
グローバル IP アドレスの他に、プライベート IP アドレスというものが存在する。
プライベート IP アドレスは、インターネットに直接通信できないアドレスであり、組織内でのプ
ライベートな利用のために存在する特別な IP アドレスのことである。
具体的には、10/8 と 172.16/12 と 192.168/16 が割り当てられている。
■ IPv6
一時期 IP アドレスの枯渇という問題が騒がれたことで、IP アドレスを 32bit から 128bit に伸ば
した IPv6 が作られたが、プライベート IP アドレスが用いられることで IPv4 はいまだに枯渇せず、
お金をかけてまで IPv6 に変えるほどの利点がないために、IPv6 の利用がそれほど広まっていな
い。
TCP について
実際に、アプリケーション間で通信を行う場合、IP レベルだけでは不十分である。
なぜなら・・・実際にそのデータを必要にしているのはアプリケーション(プログラム)なのに、
IP レベルでは目的のシステムまでデータをパケット単位で届くようにするのみだからである。
よって、「受信すべきアプリケーションの識別情報」を補完する必要がある。
TCP とは、この情報を補完を行うOSIモデル第 4 層トランスポート層におけるプロトコルのこ
とである。
つまり、このプロトコルは、ネットワーク上の 2 つのシステムの間で信頼性の高い双方向の通信
手段を提供するため(つまり、2 つのシステムの間に仮想的な回路を作ってくれる)のものとなる。
具体的には…IP アドレスに加えてポート番号を付加することで、アプリケーションを識別してい
2
る。
■ポート番号
両端のシステムを識別するための 16bit の番号のこと。
サーバー側が好きに決められる。
しかし、広く用いられているアプリケーションでは標準的に用いられるポートがある(Well known ポート)
■ TCP と UDP
''TCP/IP のトランスポートプロトコルには、主に TCP と UDP のふたつが挙げられる。
これらはアプリケーションによって使い分けられている。
通信の信頼性が高いのは TCP であるが、時間軸が重要となる場合には UDP が用いられる。
■ TCP
ポート番号によって 2 つのシステム間に仮想的な回路が出来るのに加えて、各パケットの上に
シーケンス番号がつくことで、送信するデータを 1 つのものとして考えることができるようにし
たプロトコル。
■シーケンス番号
実際のネットワーク上では、一連のデータが細切れになって送られてくる。
その際、細切れの一部が何らかの障害によって欠落したり、順番が分からなくなったりすることが頻繁にある。
このよう名細切れのデータから元のデータに正しく再構成できるように TCP で用いる仕掛けが Sequence Number
である。
このシーケンス番号によって、データ通信が信頼性の高いものとなり、到達順序も保証される。
■シーケンス番号の仕組み
各パケットの頭にシーケンス番号(このデータは全体の中のどこか他のデータかを示す)を書いて送る。
データを受信する側は、受け取ったから次のデータを頂戴という内容の返信を送る。
この返事が長い時間来なければ、最初から全部のデータが送りなおされる。
■ UDP
UDP は、IP アドレスにポート番号を付加するのみ。
つまり、IP パケットをほとんどそのままアプリケーションから使えるようにしただけのプロトコ
ルである。
そのため、パケットが相手に確実に届くという保証はなく、
再送や受信確認応答、フロー制御、大きなデータの分割や再合成(フラグメント化)などはすべ
て
アプリケーション側で自分で制御する必要がある。
ただし、これらのオーバーヘッドがないので、処理は簡単であり、高速という特徴がある。その
ため、時間軸が重要となるような情報の通信に適している。
(アスキーデジタル用語辞典 http://yougo.ascii24.com/ より引用)
TCP/IP の実装
今日、TCP/IP はほぼ全ての OS に組み込まれ、標準で TCP/IP スタックが導入されている。そのた
めに、ほとんどの利用者は実装するためにこれらを探す必要は無い。 TCP/IP は Microsoft
Windows はもとより、全ての商用 UNIX システム、Mac OS X、そして Linux ディストリビューショ
ンや BSD システムなどの全てのフリーの UNIX ライクオペレーティングシステムシステムに組み
込まれている。
独特な実装には、組み込みシステムのために設計されたオープンソースのプロトコル・スタック
である Lightweight TCP/IP、アマチュアパケット無線システムおよびシリアルケーブルで接続され
3
たパーソナルコンピュータのためのプロトコル・スタックおよび関連プロトコルである KA9Q
NOS が有る。
【出展:Wikipedia】
参考文献・サイト
・村 山 公 保 (1995)『基 礎 か ら わ か る TCP/IP コ ン ピ ュ ー テ ィ ン グ 入 門 』東 京 : オ ー ム 社
・慶應義塾大学 応用情報処理(ネットワーク技術)
・『情報処理技術者用語辞典』 日経 BP 社
・Wikipedia http://ja.wikipedia.org/wiki/
・アスキーデジタル用語辞典 http://yougo.ascii24.com/
コメント
4