TCP/IPでのアプリケーション層での,インターネットに関する主なプロトコルについて学習します。Webページ閲覧のためのHTTP,電子メールのためのSMTP/POP3,ファイルのダウンロードのためのFTPなどがあります。なお,DNSに関しては別章「DNSとネームサーバ(nw-dns)」で取扱います。
ウエルノーンポート番号,HTTP,HTTPS,CGI,クッキー,Apache,MIME,S/MIME,SMTP,POP3,APOP,IMAP4,不正中継,sendmail,FTP,TELNET
TCP/IPでのアプリケーション層は,OSI参照モデルの
第5層 セッション層
第6層 プレゼンテーション層
第7層 アプリケーション層(応用層)
にまたがっています(OSI参照モデルのように明確な階層化がなされていないのです)。

アプリケーションプロトコルは,TCPヘッダのなかのポート番号(ウエルノーン(Well Known)ポート番号)により伝えられ,それぞれのアプリケーションがサービスを提供します。その主なものを示します。
ポート番号 プロトコル サービス内容 80 http Webページ閲覧 443 https 同上(セキュリティ) 25 smtp 電子メール(送信・転送) 110 pop3 同上(受信) 220 imap3 同上(受信) 20 ftp ファイルの転送(データ) 21 ftp 同上(制御) 23 telnet 遠隔ログイン
HTTPは,WebブラウザとWebサーバとの間でのデータ交換のための通信プロトコルです。WebブラウザからURLを入力したとき,リンク部分をクリックしたとき,フォームで「送る」をクリックしたときなどに応じて動作します。ブラウザが自動的に処理しているので,利用者は明示的には認識していませんが,内部ではコマンドの送信や応答メッセージの受信を行っているのです。
100〜199 一時的なレスポンス 200〜299 正常な処理 300〜399 転送要求 400〜499 クライアントのエラー 401 Unauthorized 403 Forbidden 404 Not Found 該当するファイルが存在しない 500〜599 サーバのエラー
Webサーバは,単にWebページを保管して閲覧要求に応じるだけでなく,多様な機能を必要とします。
HTMLだけでは,提供できるサービスが限定されます。特にインタラクティブな利用をするには,HTMLのフォームによりデータを入力させ,それによって,HTMLとは独立したプログラムにより処理をして,その結果をWebブラウザに戻すような機能が必要になります。その機能の標準的なプロトコルがCGIです。CGIを利用すると多様な機能が実現できますが,逆に,悪意のある第三者に悪用される危険も増大します。

HTTPはステートレスな通信です。ステートレスとは,リクエストとレスポンスが1回のコネクションで終わってしまい,次にリクエストするときには,新規にコネクションを行うので,以前に行ったときの情報が継続しないということです。例えば,先のA画面で氏名を入力し,次のB画面で住所を入力するようなとき,BのときにはAで入力した氏名が引き渡されないのです。
これでは,業務にWebを使うのには困ります。コネクションを超えてデータを引き渡す手段として,CGIを用いることもありますが,Aでのデータをファイルに保存しておき,Bの処理でそれを参照することが考えられます。そのファイルをWebブラウザ側に置いて,WebブラウザとWebサーバの間で交換する方法あるいはそのファイルをクッキーといいます。
クッキーはこのような連続した処理にも使えますし,これまでの閲覧履歴を入れておくような断続的な情報記録にも使えます。Webブラウザを閉じるたび(セッションが切れるたび)に消去されるクッキーを一時的クッキー,有効期限を決めておきそれまで残るクッキーを永続的クッキーといいます。
クッキーは便利なのですが,個人情報を記録していることもありますし,これ自体には暗号化の機能もないので,セキュリティの面で慎重な取扱が必要になります。
Webページは一般公開が原則ですが,場合によっては利用者を限定する必要もあります。Webサーバは,任意のディレクトリ単位あるいはファイル単位でアクセス制限をします。
また,認証には次のレベルがあります。
通信の暗号化では,SSL(Secure Sockets Layer)が広く用いられています。それをWebブラウザとWebサーバの間の通信に組み入れたものです。個人情報やクレジット番号を入力するとき,URLが「https://」となっています。
これらの機能をすべてHTTPでカバーすることはできません。それで,Webサーバ管理のためのツールが必要になります。その代表的なものに,フリーソフトの Apache やマイクロソフトのIISなどがあります。
電子メールのシステムは,歴史的な経緯から,ASCIIコードのみを送受信することを前提として設計され発展してきました。MIMEは,その制限を外して,各種の文字コード,画像やプログラムなどのバイナリデータも取扱えるようにしたものです。
MIMEを理解するには,エンコード,コンテント・ヘッダ,マルチパートが重要です。
上記のように,MIMEで使われるエンコード方式は2種類あります。
郵便に私書箱というのがあります。送信者がポストに投函した郵便物は,郵便局員にて収集され最寄の郵便局(これをここでは「送信者側郵便局」とします)にまとめられ,宛先の郵便番号により宛先の郵便局(「受信側郵便局」とします)に送られて,受信側郵便局に設けられた受信者の私書箱に保管されます。受信者は鍵を用いて私書箱から郵便物を取り出します。

電子メールでは,送信者はメールソフトを用いて電文を送信側郵便局に相当するLANやプロバイダのメールサーバーに送ります。送信側メールサーバは宛先のIPアドレスを見て,受信側のメールサーバに電子メールを転送します。受信側メールサーバはそれをメールボックスに保管します。受信者はメールソフトを用いて,自分宛のメールをメールボックスから自分のパソコンに取り出します。
通常は送信も受信も同じメールソフトを用いていますが,内部では,送信および転送にはSMTP,受信にはPOP3(あるいはIMAP4)という異なるプロトコルが使われているのです。
以下,メールアドレス kogure@mail.highway.ne.jp の送信者からメールアドレス hitoshi@kogures.com の受信者にメールを送受信することを例として説明します。
電子メールを送るには,受信側のメールサーバのIPアドレスが必要になります。それにはメールサーバのホスト名からDNSによる名前解決を行います(別章「DNSとネームサーバ」参照)。
なお,メールサーバの名前は,mail.highway.ne.jp のようにホスト名(完全修飾ドメイン名)を持つものもありますし,kogures.com のようにドメイン名だけのものもあります。後者の場合は,メールサーバのMXレコードで,
kogures.com IN MX 10 mail.kogures.com
mail.kogures.com IN A 192.168.0.20
SMTPは,電子メールの送信および転送を行うプロトコルです。TCPヘッダのポート番号が25であることから,SMTP要求だとわかり,SMTPサーバに送られます。SMTPサーバは宛先のSMTPサーバのIPアドレスをDNSに問合せ,そこへ転送します。受け取ったSMTPサーバは,それを受信者のメールボックスに格納します。
SMTPでの動きは次のようになります。
: ここまでにポート番号25でのコネクションを確立している
←
→EHLO xxx.highway.co.jp こちらはxxx.highway.co.jp。メール転送開始
←
→MAIL FROM: kogure@highway.co.jp 送信信者は kogure@highway.co.jp。
←
→RCPT TO: hitoshi@kogures.com 宛先は hitoshi@kogures.com。
←
→DATA メール本文送信
←
→こんにちは
→・・・・・ 本文
→さようなら
→. (本文の最後は「.」)
←
→QUIT 終了。コネクション解放。
←
主な応答メッセージは,次の通りです。
(正常)
220 サービス開始
221 サービス終了
250 要求処理完了
354 データ入力開始(.だけの行で入力完了)
(転送エラー)
421 サービス提供できないので終了
450 メールボックスが存在しない
452 メールボックスの容量不足
(処理継続不能エラー)
500〜504 コマンドのエラー
550〜553 メールボックスのエラー
551 利用者が登録されていない
このように,SMTPでは発信者のユーザIDは必要ですが,パスワード認証をしていません。第三者がなりすますことが容易なので,発信者が本人かどうかは信じられないのです。
SMTPサーバの代表的な管理用ソフトです。UNIX用に作成されたフリーソフトウェアですが,現在では多くのOSに移植されており,事実上の標準ソフトウェアになっています。
POP3は,電子メールをメールボックスから受け取るためのプロトコルです。POP3サーバは大きく次の3つの動作をします。
認証:アクセスしてきた者が電子メールの正規の受取人であるか
トランザクション処理:メールボックスにある電子メールの情報提供,ダウンロード
更新:メールボックスからの電子メールの削除など
POP3での動きは次のようになります。 : ここまでにポート番号110でのコネクションを確立している ← →USER hitoshi 私は hitoshi です ← →PASS xxxxxx パスワードは xxxxxx です ← →STAT 電子メールの状態は? ← →LIST その一覧表は? ← →RETR 1 1通目の表示を ← →DELT 1 1通目をメールボックスから削除 ← →QUIT 終了 ←
このように,POP3では電子メールを1通ごとにダウンロードしたり,メールボックスから削除したりするのですが,通常のメールソフトではそれを自動化して,すべての電子メールをクライアントにダウンロードして,メールボックスから削除するようにしています(すべて削除しないように設定することもできます)。
POPサーバでは米QUALCOMMから無償配布されている Qpopper というサーバプログラムが広く利用されています。
IMAP4もPOP3のように電子メールを受信するプロトコルですが,POP3が電子メールの管理をクライアント側で行うとは異なり,原則としてメールサーバ側で管理します。
IMAP4の特徴を列挙します。通常のメールソフトがクライアントで実現していることをサーバで実現しています。
このように,サーバ側で管理することにより,次の利点があります。
IMAP4を用いるには,クライアントとメールサーバの両方に実装する必要があります。多くのメールソフトがIMAP4を取り入れていますが,メールサーバは企業やISPの都合もあり,実装されていないことも多いのが現状です。
電子メールでは,なりすましや盗聴などへのセキュリティ対策が重要な課題になっています。SMTPやPOP3自体は,セキュリティへの考慮が不十分ですので,それらの発展的なプロトコルが採用されるようになりました。
本人確認には,次のような方法がとられています。
暗号化するには,暗号方式や電子署名などがありますが,ここではメールソフトによる暗号化を掲げます。
FTPはファイル転送のプロトコルです。プログラムのダウンロードやWebページ作成でのアップロードに利用されます。FTPの特徴は,転送するファイルに制約がないことで,テキストデータもバイナリデータも元のまま転送できます。
FTPには,制御用(ポート番号21)とデータ転送用(ポート番号20)の二つからなっています。
制御用FTPでは,次のようなコマンドがあります。 USER ユーザIDの入力 PASS パスワードの入力 RETR FTPサーバからデータをダウンロードする STOR FTPサーバにデータをアップロードする DELE FTPサーバのファイルの削除 LIST ファイル一覧表の表示 QUET 正常終了 ABOR 処理の異常打切り 例えば,次のようなやりとりになります。 ← 220 ftp FTP server ready. →USER kogure ← 331 Password required for username. →PASS xxxxxx ← 230 User username logged in. →PORT 10,0,0,1,120,55 ← 200 PORT command successful. →RETR prog.exe ← 150 ・・・ 'prog.exe' (1563 bytes). ここでダウンロードが行われる ← 226 Transfer complete. →QUIT ← 221 Goodbye.
データ用FTPは,RETRコマンドやSTORコマンドにより,実際にファイルを転送します。このように二つにわけている理由は,これらを一つにすると,ファイル転送中にコマンドを送信できないとか,転送を中止することができないからです。
上記のように,FTPではパスワードを要求しますが,不特定多数にフリーソフトなどのファイルのダウンロードをサービスする目的のFTPサーバもあります。それを匿名(anonymous)FTPサーバといいます。ユーザIDで「anonymous」や「guest」とすれば,パスワードは何でもよく(一般には電子メールアドレス)で使えるようになっています。
逆に,セキュリティを重視して,SSHを用いたSFTP(Secure FTP)やSCP(Secure CoPy)などを備えたFTPサーバもあります。
TELNETは,クライアントとサーバを接続して,サーバの持つ機能をクライアントから使おうとするものです。TSS(Time Sharing System)と同じような利用形態です。通常はポート番号23で接続して,それかた多様なサービスを利用しますが,
telnet ホスト名 ポート番号
として,例えばポート番号を80にすればHTTPに直接入ることができます。
TELNETは,Webブラウザが出現する以前には標準的に用いられていましたが,
利用者からみると,テキストデータしか使えないこと
サーバからみると,セキュリティ対策が面倒なこと
などにより,サポートしない(接続させない)サーバも多くなってきました。
ネットワークやそれにつながるホスト(コンピュータやルータなど)の状況を収集して管理するためのものです。これに関しては別章「ネットワークセキュリティ技術(nw-sec-gijutsu)」で取扱います。
ドメイン名やホスト名からIPアドレスを探す(またはその逆)名前解決のためのプロトコルです。これについては,別章「DNSとネームサーバ」で詳述しています。
ネットワークに接続した複数のコンピュータで,ネットワークに置かれたハードディスクを共有するためのプロトコルです。NFS自体で転送されるデータの重複や欠除,順序管理などを行うので,TCPだけでなく,UDPでも利用されます。
次の文のうち,正しいものには〇印をつけ,誤りである文には×印をつけて誤りの個所を訂正しなさい。
問1 テクニカルエンジニア(ネットワーク)平成16年度秋期問23
TCP/IPネットワークにおいて,TCPを使用するアプリケーションはどれか。
ア DHCP イ FTP ウ ICMP エ NTP
問2 ネットワークスペシャリスト午前平成12年秋問12
インターネットを利用した電子メールの規約で,メッセージヘッダの拡張を行い,テキスト文書だけでなくワープロ文書・音声・画像データなども扱えるようにしたものはどれか。
ア HTML イ MHS ウ MIME エ SMTP