<プロトコル一覧> アプリケーション層

# 概要
アプリケーション層の主要プロトコルを一覧でまとめました。できる限り簡潔に、プロトコルの意味が初心者にも分かるように心がけました。

# Remote Control (遠隔操作)
|Protocol|Overview|
|:--|:--|
Telnet (Teletype Network)|ネットワークに接続された機器を遠隔操作をするためのプロトコル (平文)
SSH (Secure SHell)|ネットワークに接続された機器を遠隔操作をするためのプロトコル (暗号化)

:::note info 
<INS>***Note***</INS>
ネットワークを介したやり取りは、途中経路での**盗聴リスク**がつきものです。"<INS>SSH (Secure Shell)</INS>"はパスワード情報を含む***データを暗号化***して通信をすることで、安全性を確保しています。
:::

# File Transfer (ファイル転送)
|Protocol|Overview|
|:--|:--|
FTP (File Transfer Protocol)|ファイル転送プロトコル (平文)
FTPS (File Transfer Protocol over SSL/TLS)|ファイル転送プロトコル (SSL/TLS)
SCP (Secure Copy Protocol)|ファイル転送プロトコル (SSH)
SFTP (SSH File Transfer Protocol)|ファイル転送プロトコル (SSH)[転送再開]

:::note info 
<INS>***Note***</INS>
・<INS>SSL/TLS</INS> =「***公開鍵暗号***」と「***共通鍵暗号***」を利用した暗号化通信
・<INS>SCP</INS> = ***SFTPより高速***で転送
・<INS>SFTP</INS> = 転送を中断した場合でも***再開できる***
:::


# e-mail (電子メール)
|Protocol|Overview|
|:--|:--|
SMTP (Simple Mail Transfer Protocol)|電子メールを転送するための通信プロトコル
POP (Post Office Protocol)|電子メールを受信するための通信プロトコル (実態:Local)
IMAP (Internet Message Access Protocol)|電子メールを受信するための通信プロトコル (実態:Server)

:::note info 
<INS>***Note***</INS>
・<INS>POP</INS> = サーバからローカル環境にダウンロードする。***1つのクライアントのみ***が使用する。
・<INS>IMAP</INS> = サーバから実態ではなく、キャッシュを保存。***常時インターネット接続が必要***。
:::

# WWW (World Wide Web)
|Protocol|Overview|
|:--|:--|
URI (Uniform Resource Identifier)|URL (リソースの場所) + URN (リソースの名前)
HTML (HyperText Markup Language)|WEBページのコンテンツ構造を記述するためのマークアップ言語
HTTP (HyperText Transfer Protocol)|WEBサーバとクライアントがHTMLなどのデータ通信を行うためのプロトコル (平文)
HTTPS (HyperText Transfer Protocol Secure)|WEBサーバとクライアントがHTMLなどのデータ通信を行うためのプロトコル (SSL/TLS)
SSL/TLS (Transport Layer Security / Secure Sockets Layer)|「公開鍵暗号」と「共通鍵暗号」を利用したデータ通信を暗号化するためのプロトコル

:::note info 
<INS>***Note***</INS>
・<INS>URL (Uniform Resource Locator)</INS> = "http://test.com" のような、インターネット上の***WEBコンテンツの住所***
・<INS>URN (Uniform Resource Name)</INS> = "urn:isbn:123456" のような、インターネット上の***WEBコンテンツの名前***
・<INS>マークアップ言語</INS> = 「***文章構造***」や「***装飾情報***」を"***文章***"とあわせてテキストファイルに記述する言語
:::

# IP (Internet Protocol)
|Protocol|Overview|
|:--|:--|
DNS (Domain Name System)|ドメイン名を運用/管理し、ドメイン名とIPアドレスを変換するシステム
DHCP (Dynamic Host Configuration Protocol)|ネットワークへ接続時に通信に必要なIPアドレスなどの基本的な設定を自動的に行うプロトコル

:::note info 
<INS>***Note***</INS>
<INS>ドメイン名</INS> = 通信を行う場合にIPアドレスを交換する必要がある。例えば、IPアドレス"192.168.0.1"のように***数字は人間にとって覚えづらい***ため、「test.com」のような***文字列に変換***して通信を行う。この文字列のこと。
:::

# Network Monitoring (ネットワーク監視/管理)
|Protocol|Overview|
|:--|:--|
SNMP (Simple Network Management Protocol)|ネットワーク機器の状態を遠隔で監視/制御するプロトコル
MIB (Management Information Base)|ネットワークの監視/管理で使用する機器の状態の情報や設定情報が格納されたツリー構造のデータベース (機器単体の情報を管理)
RMON (Remote network MONitoring)|ネットワーク内の全てのMIB情報だけでなく、通信状況を遠隔で監視するプロトコル

# Multimedia Telecommunication (マルチメディア通信)
|Protocol|Overview|
|:--|:--|
RTP (Realtime Transport Protocol)|音声(VoIP)/動画などの連続する「データの転送」をリアルタイムでするためのプロトコル
RTSP (RealTime Streaming Protocol)|音声(VoIP)/動画などのストリーミング伝送を行うための「制御データ」の送受信プロトコル
SIP (Session Intiation Protocol)|音声(VoIP)/動画などをリアルタイムで伝送するための「呼制御」プロトコル
H.323|音声(VoIP)/動画などをリアルタイムで伝送するための「全体的なプロトコル」

:::note info 
<INS>***Note***</INS>
・<INS>SIP</INS> = メッセージは***テキスト形式***でやり取り。アプリケーションに組み込めるなど拡張性が高い。
・<INS>H.323</INS> = メッセージは***2進数のバイナリ形式***でやり取り。データ転送はRTP、制御はRTCPなど通話システム全体をまとめたプロトコル
・<INS>ストリーミング</INS> = ***データを受信しながら同時に再生***する方式
:::

# Routing Protocol
|Protocol|Overview|
|:--|:--|
Link-State|隣接したルータ同士で接続情報(Link-State)を交換し、それに基づいて経路を選択する
├　OSPF (Open Shortest Path First)|├ Cost(単位) = 100Mbps ÷ 帯域幅(Mbps)
└　IS-IS (Intermediate System to Intermediate System)|└ Narrow Metric (単位)
Distance-Vector|距離(Distance)と方向(Vector)に基づいた経路を選択する
├　RIP (Routing Information Protocol)|├ Hops(単位) = 経路上のルータ数
└　IGRP (Interior Gateway Routing Protocol)|└ Hops(単位) = 複合メトリック
Path-Vector|パス属性(Path Attribute)と方向(Vector)に基づいた経路を選択する
└　BGP (Border Gateway Protocol)|通常最小のAS-PATH(属性)の経路、属性の変更ができる
Advanced Distance-Vector (Hybrid)|距離(Distance)と方向(Vector)に基づいた経路を選択するが、接続情報(Link-State)も交換する
└　EIGRP (Enhanced Interior Gateway Routing Protocol)

:::note info 
<INS>***Note***</INS>
・<INS>パス属性 (Path Attribute)</INS> = ASの管理者が設定した経路の優先度
・<INS>AS (Autonomous System)</INS> = インターネットを構成する一つの個人/組織などが管理している独立したネットワーク
・<INS>AS-PATH</INS> = 経由したASを記録する属性、宛先までの最短ASパスを優先
:::


# Other
|Protocol|Overview|
|:--|:--|
NTP (Network Time Protocol)|ネットワーク機器がネットワークを介して時刻同期するためのプロトコル
LDAP (Lightweight Directory Access Protocol)|ネットワーク機器やユーザ情報などを管理するディレクトリサービスへ接続するためのプロトコル
P2P (Peer to Peer)|ネットワーク上で機器同士が対等に1:1で接続/通信する方式
MGCP (Media Gateway Control Protocol)|VoIPゲートウェイの機能をインターネット上で制御するプロトコル
IRC (Internet relay Chat)|インターネットを介して、ユーザ同士がリアルタイムにチャットをするためのプロトコル
MQTT (Message Queuing Telemetry Transport)|デバイス間での短いメッセージを頻繁に送受信することを目的として開発された軽量なデータ配信プロトコル
NNTP (Network News Transfer Protocol)|ネットワーク上で記事の投稿/配信/閲覧などを行うためのプロトコル
ONC RPC (Open Network Conputing Remote Procedure Call)|ネットワークに接続されている他のコンピュータのプログラムを呼び出して実行するプロトコル
XMPP (Extensible Messaging and Presence Protocol)|オープンソース(OSS)のインスタントメッセンジャーの通信方式/データ形式を定めたプロトコル

:::note info
<INS>***Note***</INS>
・<INS>ディレクトリサービス</INS> = ネットワーク上のリソースの所在/属性/設定などの情報を記録/検索出来るようにしたサービス
・<INS>VoIP (Voice over Internet Protocol)</INS> = IPネットワーク上で音声通話するためのプロトコル
・<INS>VoIP Gateway</INS> = アナログ電話網とIP電話網の中継/変換を行う通信装置
・<INS>OSS (Open Source Software)</INS> = ソフトウェアを構成しているプログラムなどの「ソースコード」が無償で改変/再配布が可能なこと
・<INS>ソースコード</INS> = 人間に分かりやすくするために、プログラミング言語で記述されたコンピュータに命令を与える文字列
:::


# References
・[マスタリング TCP/IP 入門編 (第6版)](https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP%E2%80%95%E5%85%A5%E9%96%80%E7%B7%A8%E2%80%95-%E7%AC%AC6%E7%89%88-%E4%BA%95%E4%B8%8A-%E7%9B%B4%E4%B9%9F/dp/4274224473/ref=sr_1_1?keywords=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0tcp%2Fip+%E5%85%A5%E9%96%80%E7%B7%A8+%E7%AC%AC6%E7%89%88&qid=1686740326&sprefix=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%2Caps%2C185&sr=8-1)
・[ファイル転送プロトコルとは？FTPやSFTP、HTTPなどの種類も解説](https://it-trend.jp/file_transfer/article/protocol)
・[POPとIMAPの違いと選択](https://www.wareportal.co.jp/contents/pop_imap.html)
・[アプリケーション層 (Wikipedia)](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4)