ネットワーク:アプリケーション層のプロトコル

メール関連

メールプロトコル

SMTP:メールを送信・転送するプロトコル。ポート番号TCP25番
POP3:メールをサーバから受信するプロトコル。ポート番号TCP110番
メール受信プロトコル
POP3:ユーザーIDとパスワードで本人認証。パスワードは平文で送信
APOP:パスワードを暗号化。本文は平文
IMAP4:サーバ側でメール管理。ヘッダだけを取り出したり、検索が可。パスワード・本文は平文
IMAPS:SSL/TLSを使用し、暗号化対応

メール関連のプロトコル・規格

SMTP-AUTH SMTPに利用者認証を追加。通所のSMTPとは独立したサブミッションポートを利用(TCP587番)。
POP before SMTP POP3の認証機能を利用。メール送信時にPOP3によるメール受信を行い、認証が成功した利用者に対して、一定期間だけSMTP接続を許可。
SMTP over TLS SMTPに通信を暗号化するTLS(SSL)を組み合わせたもの
S/MIME MIMEは様々なデータをSMTPメールで扱えるように機能拡張を定義したもの。送信データはBase64方式などでASCII文字列に変換される。
S/MIMEMIMEを拡張し、メールの暗号化とデジタル署名の機能を提供する。S/MIMEではメール本文の暗号化に共通かぎを用い、共通鍵の受け渡しには認証局が保証する公開鍵を用いる

PGP S/MIMEと同様、電子メールの暗号化やデジタル署名の機能を提供。公的な認証局を介さず、利用者が利用者を紹介しあう相互認証方式を採用。

Web関連

HTTP

Webサーバとwebクライアント間でHTMLなどのweb情報をやり取りするためのプロトコル。WebクライアントがwebサーバにHTTPリクエストを発行することで通信が始まる。使用ポートはTCP80番。
HTTPリクエストには下記のメソッドがよく使われる
GET 指定URLのデータを取得
POST 指定URLにデータを送信
PUT 指定URLへデータを保存
DELETE 指定URLのデータを削除
CONNECT プロキシにトンネリングを要求

GETメソッドとPOSTメソッド

GETは本来は情報取得だが、情報の送信にも利用できる。ただし、GETで情報を送る場合は、情報はクエストリングに埋め込まれるため、ログとしてサーバやキャッシュに残る可能性がある。
CONNECTメソッド
プロキシサーバを使うHTTPS通信などでよく使われる。プロキシサーバは通信の中身を解釈し、再構成することで通信の中継を行うが、HTTPSなどの暗号化通信ではそれが出来ない。そのためCONNECTメソッドを使ってトンネリングを行うことで、中継をする。

WebDAV

Webサーバ上のファイルを管理できるようにHTTPを拡張したプロトコル。ファイルの作成変更削除などは従来FTPなどが使われてきたが、webDAVを使うことによってHTTP/HTTPSだけでファイル管理が可能に。ポートは80/443を使用。
HTTPS(HTTP over TLS
HTTPに伝送データの暗号化、デジタル署名及び認証機能を付加した拡張プロトコル
TLSを使うことによって、セキュアな通信が可能。
HTTPSと組み合わせで使われる技術にHSTSがある。HSTSが設定されているWEBサイトにWEBクライアントがHTTPでアクセスした場合、クライアントに対して、当該webサイトへのアクセスをHTTPSで行うように指示する。これにより経路に介入する中間剛撃を防ぐことが出来る。ポートは443

Websocket

クライアントとwebサーバ間で双方向通信を行うための技術。利用するためにはクライアントからサーバへHTTPのGETメソッドでUpgradeWebSocketリクエスト」を送信。サーバ側がそれに答えてハンドシェイクを行うことで、恒常的なコネクションが確立。
チャットなどのリアルタイム性の高いアプリで使われる。
HTTPはリクエスト/レスポンスの一組に対して個別のTCPコネクションを確立。また、クライアントからの要求に対してサーバが応答するプル配信が基本。サーバが自発的にクライアントにデータを送るプッシュ型配信を行う仕様にはなっていない。

Webサーバがクライアントの中に情報を保存しておく仕組み。
HTTPは一回限りの通信の仕様なので、前後の通信から情報を引き継ぐことは出来ない。Cookieはwebサーバが保存しておきたい情報を生成、httpヘッダを使ってクライアントに送信する。クライアントはこれをテキストファイルの形で保存し、必要に応じてサーバに送信する。

アドレス管理及び名前解決技術

DHCP

TCP/IPを利用する環境では、それぞれのノードがIPアドレスを保持することが通信の絶対条件。ノードへのIPアドレスの割り当てを自動的に行うプロトコルDHCP
使用ポートはDHCPクライアント:UDP67 DHCPサーバー:UDP68
動作フローは下記
DHCPサーバに利用できるIPアドレスを登録しておく
DHCPクライアントは起動時にDHCPサーバに対してブロードキャストを利用したDHCPディスカバリパケットを送信してアドレスの取得要求を行う
DHCPサーバはプールしているアドレス群から空いているものを自動的に割り当て
・終了時にはIPアドレスを回収
DHCPクライアントはブロードキャストが到達する範囲内にDHCPサーバがないとIPアドレスを取得できない
ルータが用いられたネットワーク構成でDHCPサーバとクライアントが同一LAN上にいない場合、ディスカバパケットをDHCPサーバまで中継するリレーエージェント機能が必要

DHCPでやり取りされるメッセージ

DHCPクライアントはサーバを探すためにDHCPディスカバ(DHCPDISCOVER)をブロードキャストで送信
DHCPサーバは提供できるIPアドレスなどの設定情報をDHCPクライアントに通知するためDHCPOFFERを送信
DHCPクライアントはネットワーク設定情報の使用要求をネットワーク上のDHCPサーバに伝えるためDHCPREQUESTをブロードキャストで送信
DHCPサーバはネットワーク設定情報の使用要求が認められたことをDHCPクライアントに通知するためDHCPPACを送信する

DNS

TCP/IPでは、各ノードに対して一意なIPアドレスが割り当てられているが、それとは別にドメイン名がつけられた。
ドメイン名とIPアドレスの対応を管理してるのがDNSサーバ。DNSは基本的にUDPを使うが、DNSのレコードバイトが512バイト制限を超える場合はTCPが使われる。ポート番号は53番。
特定のホストまで指定したドメイン名はFQDN(完全修飾ドメイン名)という。
DNSの規約では、対応表作成の負担を細分化して、DNSを分散データベースとすることで対応している。
一つのドメインを管理するDNSサーバはプライマリサーバとセカンダリサーバの2台で構成される。

DNSレコード

DNSサーバに保存されている名前解決情報をDNSレコードという

Aレコード IPv4ホストのIPアドレス情報
AAAAレコ0度 IPv6ホストのIPアドレス情報
NSレコード DNSサーバを指定
CNAMEレコード ホストの別名を指定
MXレコード メールサーバを指定
DNSラウンドロビン

負荷が集中するwebサーバやAPサーバなどは複数のサーバで負荷分散を行う。
この時使用される機能の一つがDNSラウンドロビン。一つのドメイン名に対して複数のIPアドレスを登録し、名前解決の度に応答するIPアドレスを順番に変えることで負荷分散を図る。

コンテンツサーバとキャッシュサーバ

自らのゾーンのDNSレコードを保持したDNSサーバをコンテンツサーバという。
DNSクライアントが名前解決を要求するとき、毎回コンテンツサーバに問い合わせするのは非効率なので、通常は自組織内にキャッシュサーバを置く。

再帰的な問い合わせ

キャッシュサーバはリゾルバからの問い合わせに対して情報を持っていない場合、ルートDNSサーバから順に問い合わせを行って、ドメイン名情報を取得する。
キャッシュサーバは一定期間この情報を保持してリゾルバへ回答する。

その他のアプリケーション層用プロトコル

SOAP

ソフトウェア同士がメッセージを交換するためにプロトコル。データ構造の記述にXMLを用いる。汎用性が高い。

SNMP

ネットワーク上にある機器を監視し、管理するためのプロトコル
SNMPに準拠することで、マルチベンダ環境でのネットワークの障害情報などの一元管理を行うことが出来る。
 SNMPマネージャとSNMPエージェントの間でPDUと呼ばれる管理情報のやり取りを行う。
 エージェントにはMIBと呼ばれるデータベースがあり、そこに故障情報やトラフィックの情報が蓄積される。
PDUの種類

Get-Request Get-Next-Request マネージャがエージェントから情報を引き出す
Set-Request 管理オブジェクトの設定値を変更する
Get-Response マネージャからの要求に返答する
Trap エージェントからの情報をマネージャに通知する

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

FTP ファイルの送受信に用いるファイル転送プロトコル。ファイルをダウンロードする機能(データコネクション)とコマンド送受信(制御コネクション)で異なるポートを使用する(TCP20, TCP21)
Telnet 遠隔地からログインを行い、マシンを操作するプロトコル
SSH Secure SHell。テキストベースの通信であるTelnetに対し、暗号化や認証技術を利用して安全に遠隔操作するためのプロトコル
NTP Network Time Protocol。ネットワーク上の各ノードが持つ時刻の同期を図るためのプロトコル。使用するポートはUDP123番。NTPの簡易版がSNTP。
LDAP Lightweight Directory Access Protocol。ディレクトリサービスにアクセスするためのプロトコル

インターネット上の電話サービス

VoIP

IPネットワーク上で音声をやり取りするための技術。UDPベースのRTPが使われている。構築したIP電話網を従来の音声回線と接続するためにはVoIPゲートウェイを使う。

SIP

電話番号とIPアドレスの対応管理や帯域管理、セッションの開始終了を管理するのがSIPサーバ。
SIPサーバがセッションの開始と終了を制御するために使うプロトコルSIP、帯域管理のために使うプロトコルRSVP