スポンサーリンク

【応用情報技術者試験】ネットワーク理解のためにまずはOSI基本参照モデルを理解しよう(トランスポート/アプリケーション層)

ネットワークとは、複数のコンピューターや機器を相互に接続し、情報やデータを共有する仕組みのことです。また、コンピューター同士で通信を行うためには、ケーブルの種類や、データの送信方法、伝送経路、データフォーマットといったように、様々な要素について取り決めをしておく必要があります。

画像参照:https://diamond.jp/articles/-/248953

そこで分野ごとにグループ分けを整理しているOSI基本参照モデルが使用されます。OSI基本参照モデルは、コンピューター間の通信ルールを7つの階層に分けて整理したモデルです。異なるメーカーの機器同士でも通信できるよう、通信機能を標準化するために制定されています。各階層が特定の役割を担っており、物理的なデータ伝送からアプリケーションのサービス提供までを段階的に定めています。現在、インターネットで広く使われているのはTCP/IPモデルですが、OSI基本参照モデルはネットワークの仕組みを理解するための基礎として広く参照されています。 

階層特徴プロトコル役割
アプリケーション層
(第7層)
通信を行う各種のアプリケーションの動作を定める①:HTTP
②:FTP
③:SMTP
④:SNMP
⑤:DNS
①:Webサービスの提供
②:ファイル転送サービスの提供
③:電子メールの配送
④:ネットワーク上の機器の動作情報集
⑤:ホスト名とIPドメイン名の変換
プレゼンテーション
(第6層)
各アプリケーションが送信するデータを共通の転送構文に変換する
セッション層
(第5層)
アプリケーション間で取り交わす会話を成立させる
トランスポート層
(第4層)
ネットワークごとの品質の差を吸収した透過的な伝送路を上位層に提供するTCP,UDP宛先/送信元アプリケーションプログラムの指定
ネットワーク層
(第3層)
データの中継や経路選択を行うIP宛先/送信元ホストの指定
データリンク層
(第2層)
隣接ノード間のデータ転送を行う
物理層
(第1層)
伝送を行う上での物理的な条件を規定する

トランスポート層(第4層,L4)

トランスポート層とは、ネットワーク通信における信頼性を確保しながら、アプリケーション同士を効率的につなぐ役割を担う層です。データの分割・再組み立て、誤り訂正、再送制御などを行います。具体的には、ポート番号を使用することで、コンピュータ内のどのアプリケーションにデータを届けるべきかを識別する役割も担います。 

主な役割

  • データの信頼性確保: 誤りの訂正や、データが欠落した場合の再送要求などを行い、データが正確に届くように制御します。
  • アプリケーション間の橋渡し: 上位のアプリケーション層と下位のネットワーク層を仲介し、通信の「橋渡し」をします。
  • サービス識別: ポート番号を使用して、同じコンピュータ内で同時に複数のサービスが通信している場合に、どのアプリケーションにデータを渡せばよいかを識別します。
  • データ転送の制御: データを適切な単位に分割したり、届いたデータを元の形に再組み立てしたりします。 

代表的なプロトコル

  • TCP(Transmission Control Protocol): コネクションを形成して、信頼性のある通信を実現するためのプロトコルです。
  • UDP(User Datagram Protocol): コネクションを形成せず、信頼性のない通信を実現するためのプロトコルです。

コネクション
機器やソフトウェア間の通信で、仮想的な専用通信路が確立された状態を指します。

TCP

TCP(伝送制御プロトコル)は、インターネットなどのネットワークで信頼性の高いデータ通信を実現するためのプロトコルです。通信前に接続を確立し(コネクション型)、データの到達確認と再送を確実に行うことで、データが順序通りに正確に届くことを保証します。Webサイトの閲覧やメールの送受信など、信頼性が重要な多くの通信で使用されています。

TCPの特徴

  • 信頼性の高い通信:ネットワーク経由で送信したデータが、正しく相手に届くことを保証します。送信されたデータに欠損や順序の乱れがあった場合は、再送を要求して修復します。
  • コネクション型通信:データ通信の前に、送信側と受信側の間でコネクションを確立します(3ウェイハンドシェイク)。通信中も相手からの応答(ACK)を待ちながらやり取りを行うため、通信状態が確認できます。
  • 順序保証:データを「セグメント」と呼ばれる単位に分割して送信し、相手側で元の順序通りに再構築します。
  • 輻輳制御:ネットワークの混雑具合に応じて、データ送信量を調整する仕組みを持っています。
  • 用途:信頼性が求められるWebサイトの閲覧やメールの送受信など、多くのインターネット通信の基盤となっています。
  • デメリット:接続の確立や状態管理に手間がかかるため、通信コストや負荷が高くなります。そのため、リアルタイム性が求められる音声・動画ストリーミングなどでは、より高速なUDPが使われることもあります。

UDP

UDP (ユーザーデータグラムプロトコル) は、信頼性の低い高速通信を特徴とするインターネットの通信プロトコルです。接続確認なしでデータを送信する「コネクションレス型」を採用しており、リアルタイム性が求められる音声や動画、オンラインゲームなどの分野で広く利用されています。 

UDPの特徴

  • コネクションレス型: 通信開始前に相手との接続を確立する「ハンドシェイク」を行わないため、オーバーヘッドが少なく高速です。
  • 信頼性がない: データの到達確認や、パケットの順序保証、再送処理を行いません。そのため、データが一部欠落しても上位のアプリケーションで補うか、欠落が許容される用途で利用されます。
  • 高速性: エラー処理などが不要なため、通信コストが低く、遅延が少ないという利点があります。
  • ブロードキャスト・マルチキャストに対応: 複数の宛先に一度にデータを送信するブロードキャストやマルチキャスト通信が可能です。 

「セグメント」と「パケット」の違い
通信データがネットワークでやりとりされる際の分割単位が異なるプロトコルに由来します。セグメントはTCP/IPのトランスポート層で使用される単位で、アプリケーションのデータを分割し、ポート番号などの制御情報が付与されます。一方、パケットはネットワーク層(IP)で使われる単位で、IPアドレスなどの制御情報が付与され、セグメントをデータ部分として含んで運ばれます。 

ポート番号

ポート番号は、ネットワーク通信において、あるコンピュータ上で動いている特定のアプリケーションを識別するための16ビットの整数です。IPアドレスが「家(コンピュータ)」を特定する住所だとすれば、ポート番号はその家の中の「部屋番号」に例えられ、どのアプリケーションにデータを届けるかを決める役割を担います。

ポート番号の役割

  • アプリケーションの特定:IPアドレスだけでは、どのコンピュータにデータを送るかはわかりますが、そのコンピュータ内のどのプログラム(Webサーバー、メールソフトなど)に届けるかはわかりません。ポート番号があることで、アプリケーションを特定できます。
  • 通信の窓口:ポートはネットワーク通信におけるアプリケーションの窓口です。例えば、ウェブサイトの閲覧にはポート80番(HTTP)が使われ、SSL通信には443番(HTTPS)が使われます。

ポートの表記方法
IPアドレスの後ろに「:」をつけて指定します。

下記に例として、PC(192.168.1.100)のブラウザがWebサーバ(192.168.1.5)と通信する場合を記載します。
※PC(ポート:5858)→Webサーバ(ポート:80)

送信元 192.168.1.100 :5858
送信先 192.168.1.5 :80

ポート番号の分類

ポート番号は、使用目的によって3つの種類に分かれています。

  • ウェルノウンポート番号:0番から1023番までで、特定のサービスに割り当てられています。
  • 登録ポート番号:1024番から49151番までで、IANAによって正式に登録されたポート番号です。
  • ダイナミック/プライベートポート番号:49152番から65535番までで、一時的な通信などで自由に割り当てられるポートです。

アプリケーション層(第7層,L7)

アプリケーション層とは、OSI参照モデルの第7層(最上位層)で、ユーザーが操作するアプリケーションの通信手順やデータ処理を定める層です。Webサイトの閲覧(HTTP)、電子メールの送受信(SMTP)、ファイルのアップロード・ダウンロード(FTP)など、具体的なサービスを実現するためのルール(プロトコル)が定義されています。この層は、人間とコンピュータの間の橋渡し役となり、アプリケーションが理解できる形式でデータをやり取りできるようにします。 

アプリケーションプロトコル

アプリケーションプロトコルとは、特定のアプリケーションが相互に通信を行うためのルールです。ウェブブラウジングやメール送受信、ファイル転送など、具体的な目的のために使用されるプロトコルの総称で、HTTPやFTP、SMTPなどがあります。これらのプロトコルは、データの形式や通信の手順を定義し、異なるシステム間で円滑なやり取りを可能にします。 

下記に表として代表的なアプリケーションプロトコルを整理します。

プロトコルポート番号サービス概要
DNS53ドメイン名とIPアドレスの変換
HTTP80Webサービスの提供
FTP20/21ファイル転送
SMTP25電子メール配送(メールサーバ間での配送、パソコンからメールサーバへのメール送信)
POP3110パソコンへの電子メールのダウンロード(パソコンからのメール受信)
IMAP143/993メールサーバ上でメールを送受信
SNMP161/162ネットワーク上の機器を管理し、動作情報を収集する。情報を収集する側をマネージャ、ネットワーク上の機器をエージェントという
SSH22遠隔ログイン。暗号通信を行うための安全である。ユーザ認証をパスワードで行う方法に加え、公開鍵を用いて行う方法も利用できる。
NTP123時刻を合わせる(時刻を同期させる)

コメント