TCP/IPの概要・アプリケーション層について

『基礎から復習 ネットワーク編』の第一回目として「TCP/IPの概要・アプリケーション層について」記述します。

はじめに、本記事は学生時代にITに興味を持って勉強を始めた頃の自分自身に当てて執筆しています。内容は以下の書籍を参考にしておりますので、より詳しく理解するためには是非以下の書籍を手にとってご覧になって下さい。また、アイキャッチ画像はxreschによるPixabayからの画像を使用させていただいております。

TCP/IPって何???

10年前のわい
10年前のわい

ソフトウェアエンジニアになるにはTCP/IPを勉強しないといけないらいいけど、何それ美味しいの?

10年前のわい
10年前のわい

まあ、知らんくても何とかなるでしょ…

いや、ちょっと待て!ちゃんと勉強せんとお前は10年後ネットワークトラブルで死を見る事になるぞ!!!

今のわい
今のわい

まあ、実際10年後無事ネットワークトラブルに嵌って、私が今患っている適応障害の引き金を引く事になりました。…という事で、ネットワークのお勉強です。

TCP/IPはコンピュータ間のネットワーク通信に採用されている通信プロトコル群の総称です。現在は全世界共通の通信プロトコルとしてTCP/IPが採用されています。通信プロトコルとはコンピュータどうしが円滑にデータのやり取りを行うためのルールのような物です。TCP/IPは特定の機器に依存しないことや、データの伝達速度、信頼性において大変優れた仕組みとなっています。

5つの階層について…

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

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

アプリケーション層について

アプリケーション層には、通信サービスにおけるサーバーとクライアントのやり取りを定めたプロトコル(アプリケーションプロトコル)があります。その一例であるwebサービスを支えているプロトコルであるHTTPプロトコルについてみていきます。

HTTPプロトコルは「要求(Request)」と「応答(Responce)」という2種類のパケットを使って、1つの要求に対して1つの応答を返す非常にシンプルなプロトコルです。

パケットはヘッダボディ(データ)に分かれています。要求パケットのヘッダ部分には要求の種類を示すメソッド要求ヘッダと呼ばれるサーバーへ伝えるクライアント情報(対応しているファイルの種類や文字コード、言語など)が記述されています。

項目名と情報はコロンで区切られています。ボディには要求時に必要なデータが入りますが、メソッドがGETの場合は空になります。以下要求パケットの例です。ヘッダとボディの間には空行が入ります。

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

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

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

TELNET
ルータや高機能スイッチなどの設定を行うときに機器に遠隔ログインするために使用します。
行モード:改行キーが入力されるたびに1行分のデータをまとめて送る。
透過モード:入力された1文字ごとにサーバに送信する。

SSH
暗号化された遠隔ログインシステム。TELNETと比較し、より強固な認証機能を利用可能です。またファイルの転送も可能です。ポートフォワード機能(特定のポート番号に届けられたメッセージを特定のIPアドレス、ポート番号に転送する仕組み)を利用する事ができます。

FTP
相手先コンピュータにログインした上でファイル転送を行います。アクティブモードの場合、制御用(21番)、転送用(20)の2つのポートが利用されます。制御用コネクション上でPUT、GET、LISTといったコマンドが実行されるたびにデータ転送用のコネクションが確立されます。但し、パッシブモードでは、ランダムなポート番号が割り当てられその情報がFTPクライアントにその情報が伝えられます。

10年前のわい
10年前のわい

TCP/IPには5つの階層があり、それぞれデータ通信するための決まり事に乗っ取って通信しているのかぁ。

10年前のわい
10年前のわい

アプリケーション層のプロトコルはたくさんあってなかなか覚えるのが大変そうですな…

コメントを残す

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