TCP/IP -TCP/IPの概要-

1.TCP/IPとは…

インターネットで採用されているコンピュータネットワークを実現している通信プロトコル群のことです。現在全世界共通の通信プロトコルとして使用されています。通信プロトコルとはコンピュータどうしが円滑にデータのやり取りを行うためのルールのような物です。TCP/IPは特定の機器に依存しないことや、データの伝達速度、信頼性において大変優れた仕組みとなっています。インターネットサーバーを設置したり、ソフトウェア開発を行っていくうえで避けて通ることのできない項目のようです。
[expand title=”Trigger Text”]

pc

2.5つの階層について…

TCP/IPは5つの階層で構成されています。送受信に関わる一連の作業をいくつかの階層に分けて行い、その各段階をレイヤーと言います。5つのレイヤーはそれぞれアプリケーション層トランスポート層ネットワーク層データリンク層物理層に階層化されています。

tcpip

受信側と送信側の各層どうしが情報を交換するために、送信側の各層でヘッダ(データよりも前に付加した情報)やトレーラ(後ろに付加した情報)を付加しています。

3.アプリケーション層

アプリケーション層には、通信サービスにおけるサーバーとクライアントのやり取りを定めたプロトコル(アプリケーションプロトコル)があります。その一例であるwwwサービスを支えているプロトコルであるHTTPプロトコルについてみていきます。HTTPプロトコルは「要求」と「応答」という2種類のパケットを使って、1つの要求に対して1つの応答を返す非常にシンプルなプロトコルです。

httppc

パケットはヘッダボディ(データ)に分かれています。要求パケットのヘッダ部分には要求の種類を示すメソッド要求ヘッダと呼ばれるサーバーへ伝えるクライアント情報(対応しているファイルの種類や文字コード、言語など)が記述されています。項目名と情報はコロンで区切られています。ボディには要求時に必要なデータが入りますが、メソッドがGETの場合は空になります。以下要求パケットの例です。ヘッダとボディの間には空行が入ります。

 GET/home/index.html HTTP/1.1 (メソッド:GETの他にPUTなどがある)
——————————————————————————————————————-
Host:www.○○○.○○○.co.jp
Accept:
text/html, text/plain, text.sgml */*;u=0.01
Accept-encoding:gzip, compress
Accept-Language:ja, en
If-modified-Since:Wed, 31 Aug 2013 12:00:00 GMT
User-Agent:Internet Exploer7.0
  空行———————————————————————————————————————————
  ●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●

サーバーがクライアントに送る応答パケットのヘッダは処理結果を示すステータス行とクライアントに渡すデータに関する情報を記述する応答ヘッダに分かれています。ボディにはクライアントに渡すデータが入っています。

 HTTP/1.1 200 OK (ステータス行:正常に処理できた場合は200番台の数字が入る)
—————————————————————————————————————
Date:Wed, 31 Aug 2013 23:59:59 GMT
Server:NCSA/1.5.2
Last-modified:Wed, 31 Aug 2013 12:00:00 GMT
content-Type:home/gif
Content-length:334
   空行—————————————————————————————————————-
<html>●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●

HTTPプロトコルはもともと要求されたデータを返すことだけを目的に作られています。そのため一回の要求と応答で通信は完結し、過去に行った通信と関係づけられることはありません。このような一回完結のプロトコルをステートレスプロトコルと言います。

アプリケーションプロトコルにはほかにも電子メールの送信に関わるSMTPプロトコルと受信に関わるPOP3プロトコルなどがあります。

[/expand]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>