はじめてUNIX で仕事をする人が読む本 の備忘録 17
お世話になった本
この連載ブログを書くにあたり、お世話になった本がこちら。LPICと被っているところもありますが、実務での使い方なんかも扱っており、良書だと思います。
- 作者: 木本雅彦,松山直道,稲島大輔
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/03/25
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
第3部
第17章 アプリケーションプロトコル
ネットワークアプリケーションには様々なものがある。基本的には、ネットワークを使って情報通信を行うアプリケーションは全てネットワークアプリケーションと呼ばれる。
Webアクセス(HTTP/HTTPS)
HTTP/HTTPSは主にWebアクセスに使用されるプロトコル。
おそらく現在最も広く利用されている。
複数の文書間の垣根を越えて、用語などの参照関係を相互にたどることが出来るハイパーテキスト
と呼ばれる仕組み/考え方を元に、ネットワーク上に分散した情報相互の間に気づかれた関係を参照することを実現するプロトコルとして策定されたのが、HTTP
である。
全世界的に分散した情報全体が網の目のように参照し合っている状態をWorld Wide Web (WWW)
と称し、WWWのリンクをたどることに特化したUIをWWWブラウザまたは単にブラウザと呼ぶ。
URL
ネットワーク上に存在するリソースの所在を表す統一的な表記
URI
URLをより一般的な識別子として拡張した概念
URI には以下のような情報を含めることが出来る
- リソース自体の場所を表す情報
- そのリソースにアクセスするためのスキーム
- アクセス権限を行使するための認証情報
- ユーザ名やパスワードなど
- アクセスする際に情報提供側で参照されるパラメータ情報
- など
HTTPS
はSSL
あるいはそれを拡張したTLS
と呼ばれる通信の安全を確保する仕組みを利用して、HTTP通信を第三者の攻撃から守るようにしたプロトコル。
HTTPS
では、通信内容を暗号化したり、改ざんを検出したり、デジタル証明書の技術を利用して通信相手であるサーバやクライアント(ブラウザ)に対する一方向あるいは双方向の認証を行うことが出来る。
一般によく利用されるのは、正式に運用されていることを保証するサーバ証明書の導入と、それを利用した暗号化通信。
証明書は、信頼できるCA
が発行したものである必要がある。
現在利用されているほとんどのブラウザでは知らないCA
が発行した証明書を使用している場合には、警告を出すか、通信を行わないようになっている。プライベート証明書(オレオレ証明書)を利用するなら、ユーザ側でブラウザやOSにプライベートCA
を信頼できるCA
として登録する必要がある。
電子メール(SMTP/POP/IMAP)
未だに無くならない、インターネット上で古くから使われているサービスの一つ。
MTA
Mail Transfer Agent でメールを転送し、
MUA
Mail User Agent でメールを送受信する
SMTP
はメールを送信する際に利用されるプロトコル
最初は、シンプルに英文テキストしか遅れなかった。
MIME
の登場により、多言語対応や添付ファイルが出来るようになった。
POP
や、IMAP
はメールを受信するときに使用するプロトコル
POP
は基本的に、サーバにあるメールボックスからメールを全てダウンロードする。
IMAP
は、サーバ上のメールボックス上で管理して、手元のPCからはリモートメールボックスを操作する仕組み。
端末が一つの場合は、POPでいいだろうが、複数で一つのメールアドレスを確認する場合はIMAPが便利だろう。
リモートログイン(TELNET/SSH)
リモートログインは、物理的に離れた場所からネットワーク経由でコンソール操作を行うネットワークアプリケーション。
TELNET
は古いので、認証情報などを暗号化しておらず、全て平文で送られる為、現在あまり使わないことが推奨されている。しかし、地味にHTTP
の接続テストとかで使えたりするので、侮れない。
どうしても、TELNET
を使いたいときは、先にIPsec などで通信そのものを暗号化した上で使うとよい。
SSH
は暗号化を前提としたリモートログイン用のアプリケーションプロトコルである。
パスワード認証や公開鍵認証も利用できるため、より安全に利用できる。
ポートフォワード機能もあり、特定のTCPポートの接続をリモートログイン先との間で双方向に転送することが出来る。
これを利用することで、SSHトンネル
と呼ばれる簡易的なVPNが実現できる。
類似の技術に、RCP
/ VNC
がある。
ファイル転送(FTP/rsync)
ファイル転送のプロトコル。特に、FTP はTELNET と並ぶ最古のアプリケーションプロトコルの一つ。
FTP は暗号化に対応していない。IPsecなども併用しないと全て平文でネットワークを流れてしまう。
さらに、FTPでは、コントロールセッションとデータセッションの2つのセッションを利用する特殊なプロトコル。
rsync
は、UNIX上のファイルシステムのコピーをリモート環境に作成し、両者を同期するネットワークアプリケーションである。リモート環境への接続は、SSH などの他のプロトコルを利用するため、通信内容は暗号化される。
NFS / SMB
講義にはファイル転送の一種と言えるが、通常のファイルシステムの一部としてリモートのディスクをマウントすることを前提としたアプリケーションプロトコルである。
ユーザとしては、ネットワーク越しにファイルを転送したという意識はない。ローカル環境のファイルと同じように扱える。
NFS は古くからUNIX環境で広く使われている。SMB / CIFS は主にWindows 環境で広く利用されている。 いずれも、LAN環境で利用することが前提。
VoIP(SIP/RTP)
VoIP (Voice over IP)は、IPを使った音声通信アプリケーションプロトコル。
使用しているプロトコルは、SIP / UDP / RTP が主だったところだろう。
SIPで発呼着呼を管理し、さらに、SIPサーバでDNSの仕組みを利用して電話番号から通信相手のサーバを検索できるようになっている。音声データの転送はUDPパケットにカプセル化されたRTP(Real time Transport Protocol)を使い、音声通話を実現している。
システム運用管理(DNS/DHCP/NTP/SNMP)
他にも様々なプロトコルが活躍している。
NTP は時刻を正確に合わせるために使われている。階層的にサーバ構成を構築できる。最上位のサーバは、原子時計やGPS衛星からの情報を元に正確な時刻を設定している。
SNMP はネットワーク管理用のアプリケーションプロトコル。監視対象機器にSNMPエージェントを設定し、SNMP マネージャが定期的若しくはイベント発生毎にエージェントに対して状態を取得するのが基本的な仕組み。
Xプロトコル
X Window System は、UNIX 上で広く利用されているウインドウシステムである。ほとんどのデスクトップ環境は、X Window System 上に構築されている。
ディスプレイ、キーボード、マウスなどのポインティングデバイスを管理するのが、X Server
ここのウィンドウアプリケーションが X Client
画面上の更新はX Client から、X Server に対する描画指示として送られる。この際のX Client と X Server 間のアプリケーションプロトコルがXプロトコルである。
X Protocol はネットワーク上を流れる普通のIPプロトコルなので、X Server と X Client が同一のホスト上で動いている必要はない。
両者が別のホストで稼働している場合、
ユーザの手元のPC上でディスプレイやデバイスを管理しているのが X Serve で、
リモートホスト上で動くアプリケーションが X Client となる。
一般的な認識と立場が逆になる点は留意しておこう。
以上で、第17章 アプリケーションプロトコル を終わります。
次回は、第18章 IP関連の技術です。
全19章なので、ゴールは後もう少し。がんばっていきまっしょい。