編集部からのお知らせ
Topic 本人認証の重要性
宇宙ビジネスの記事まとめダウンロード

OSI参照モデルのお勉強・その2--ネットワークのイロハ(3) - (page 2)

宮本健一(ノーテルネットワークス)

2007-06-18 08:00

 アプリケーションを扱うサーバ(PC)上では、Webサービスやメールサービス、ネットワークの監視など数多くのサービスが実行されており、様々なアプリケーションが存在する。そして、ウェブを閲覧するためのHTTPやメールを送信するためのSMTP、ネットワークを監視するためのSNMP、SSLなど、様々なアプリケーション層のプロトコルが存在している。

 インターネット層(レイヤ3)まで配送したパケットをアプリケーション層に届けるには、それをつなげるためのインターフェースが必要になり、「ポート番号」がそれを担う。つまり、「ポート番号」がパケットとアプリケーションの仲介役となる。よく「http:80番ポート」などの記述を目にすると思うが、これは各々のアプリケーション層のプロトコルが何番の「ポート番号」を与えられているのかを示す。それぞれのアプリケーション層のプロトコルには、そのサーバ上において、固有の「ポート番号」が割り当てられる。

 余談だが、このポート番号は、あらかじめ決まっている「ウェルノーンポート」(0〜1023番)と、アプリケーションにより決められている登録ポート(1024〜49151番)、自由に使える「ダイナミックポート」(49152〜6553番)がある。

 さてこのレイヤには、代表的な2種類のプロトコルがある。「TCP(Transmission Control Protocol)」と「UDP(User Datagram Protocol)」だ。両方とも、ポート番号はフレーム内に含まれているが、性格が全く違う。

 TCPは「コネクション型」で、信頼性を求めるために使用するプロトコルだ。送信する相手にポート番号を教え、こちらと送信相手とで仮想的なネットワークをつないでデータが正しくデリバリされているか確認し合う。通信開始時には「スリーウェイハンドシェーク」と呼ばれる手順が使われる。

スリーウェイハンドシェーク スリーウェイハンドシェーク

 図の通り、まず接続する側(クライアント側)から「SYNパケット」と呼ばれる接続要求を意味するパケットを相手側(サーバ側)に送る。接続可能な場合、サーバ側は接続許可を意味する「ACKパケット」と、クライアント側への接続を要求するSYNパケットを送り返す。それを受け、クライアント側ではACKパケットをサーバ側へ返す。

 この作業には「シーケンス番号」が付けられるので、パケット損失が発見でき、再送要求が掛けられ、重複制御もできる。これにより確実な通信が可能となる。TCPはウェブ閲覧のためのHTTPプロトコルを利用する際や、信頼性の高い通信を行う際に用いられる。

 逆に、UDPにはこれらの作業がない。よって確実な通信よりも速さを求める時に使用される。ストリーミングやVoIPなど、速度が求められる通信や、同報性が必要な通信に適している。TCPは確実だが、1つのパケットを送るにも最低3回のやり取りが必要となるので、当然通信効率は悪くなる。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]