1.
通信プロトコルに関しての知識問題です。これは、問題文から、ひとつずつ覚えていきましょう。まずは、解答群で出ている選択肢を並べておきましょう。かるーく、一通り読んでおくのが良いでしょう。
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、HTTP)はアプリ間コネクション上のリクエスト/レスポンス型・ステートレス・メッセージ指向通信プロトコルである。
概要
TCPやQUICはアプリケーション間のコネクション型通信を提供する。HTTPはこのコネクション上を、リソース要望と返答が、メッセージ単位で、1往復のクライアントリクエスト&サーバーレスポンスという形で通信される、と定めたプロトコルである。
HTTPの発明により、インターネット上でのリソース公開とアクセスが容易になった。クライアントがサーバーとコネクションを確立し1つのHTTPメッセージを書いて送るだけで、サーバー上のリソースがHTTPメッセージとして帰ってくる。ゆえにHTTPで公開されるあらゆるリソースにHTTPという単一の手法でアクセスできるようになった。
HTTPを開発した理由でありかつ現在も広く利用される用途はWorld Wide Webである。WebサーバとWebブラウザはHTTPで主に通信しており、ブラウザからのHTTPメッセージに応答してサーバーがHTMLテキストやJavaScriptコードを送り返し、これをブラウザで表示することでウェブが成立している。
またHTTPはメッセージ形式を定める。基本的な考え方は単純で「何を」「どうして」欲しいのかを伝える。例えばリクエストメッセージ GET /apple.jpg
は「apple.jpg 画像を、手に入れたい」を意味する。URLが「何を」に、メソッドが「どうして」に当たる。
World Wide WebにおけるWebページなどのリソースは、Uniform Resource Identifierによって指定される。HTTP を使用してリソースにアクセスするときは、http: が先頭についた URL を使用する。下にURL の例を挙げる。
最初の HTTP/0.9 ではURLを指定してコンテントをダウンロードするのみの簡単なやりとりだったが、HTTP/1.0 で改良された。
- リクエストのセマンティクスを指定する、様々なリクエストメソッドが追加された。POSTを使って、アップロード(クライアントからサーバへのデータの転送)が可能になった。
- NNTPやSMTPのような各種ヘッダが定義され、HTTP cookieなどの利用が可能になった。
HTTP/1.1 では複数データを効率よく転送するための持続的接続や、プロキシの利用なども想定した仕様になった。さらに HTTP/2やHTTP/3が策定された。現在ではHTTPセマンティクスと各バージョンの手続きが分離して定義されている(#規格を参照)。
このほかの点を箇条書きで示す。
- TCPのポート番号80をデフォルトとして使用する(HTTP/0.9〜1.1とHTTP/2の場合)。
- TLSで暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれる(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSまたはHTTP/3が用いられる)。
- HTTP は基本的にサーバが状態を保持しない (stateless) プロトコルだが、データベースなどを使用するWebアプリケーションにおいては状態保持が必要だったため、いわゆる Cookie(クッキー)とよばれる機構が Netscape Communications Corporation によって導入された。Cookie を使用することによって状態を管理し、セッションを維持することが可能になる。
- 行末文字はCRLFで、インターネット・プロトコル・スイートにおいてアプリケーション層に属する他の多くのプロトコルと同じである(HTTP/0.9〜1.1の場合)。
「Hypertext_Transfer_Protocol」『フリー百科事典 ウィキペディア日本語版』。2023年1月6日 (金) 05:37 UTC、
Network Time Protocol(ネットワーク・タイム・プロトコル、NTP)は、パケット交換による遅延時間が変動するネットワーク上のコンピュータシステム間で時刻同期させるための通信プロトコルである。1985年以前から運用されており、現在使用されている中で最も古いインターネットプロトコルの1つである。NTPは、デラウェア大学のデイヴィッド・L・ミルズによって設計された。NTPによって提供される数ミリ秒以下の誤差の時刻同期は情報システムにおいて時刻で管理される様々なデータや処理の整合性を保つために必要であり、NTPが利用できなくなり時刻同期が行えなくなった場合には直ちにシステム障害が発生するため非常に重要な通信プロトコルであると言える。
概要
NTPは、全ての参加コンピュータを協定世界時(UTC)の数ミリ秒以内の時刻に同期させることを目的としている。
ネットワークに接続され、互いにデータの交換を行う機器において、各機器が持つ時計(以下、各機器が持つ時計を「RTC」として説明する)の時刻が機器間で異なると、時刻に依存した機器間のデータ交換、例えば電子メールやファイルの送受信、ログの配信などに異常をきたすおそれがある。よって、RTCの時刻は機器間で互いに同期していることが望ましい。ネットワークに接続される機器のRTCを正しい時刻に合わせる古典的な方法としてTime Protocolがある。Time Protocolは正しい時刻を提供するサーバから各機器が時刻値を取得する方法を定めている。しかし Time Protocol を用いて取得した時刻値にはサーバから機器に時刻値が到達するまでの通信時間が含まれない。よって、取得した時刻値には通信時間に起因する遅れの誤差が含まれてしまいRTCを正しい時刻に同期できない。NTPは通信時間による時刻値の誤差を小さくする工夫がなされた時刻同期のためのプロトコルである。
正確なタイムサーバを選択するために、マルズーロのアルゴリズムの修正版である交差アルゴリズムを使用し、ネットワーク遅延の変化の影響を軽減するように設計されている。NTPは通常、インターネット上で数十ミリ秒以内の時間を維持することができ、理想的な条件の下ではLAN上で1ミリ秒以下に誤差を抑えることができる。非対称なルートやネットワークの輻輳により、100ミリ秒以上のエラーが発生することがある。更に後に追加されたオプション仕様ではNTPインターリーブモードで約5マイクロ秒、ハードウェアタイムスタンプで約100ナノ秒[5]の誤差に抑えることも可能になっている。
このプロトコルは通常、クライアントサーバモデルで記述されるが、相手側をタイムサーバとみなすことでピアツーピアネットワークにおいても使用することができる。実装としては、UDPのポート番号123を使用する[4][5][注釈 1]。また、ブロードキャストやマルチキャストを使用することもでき、この場合、クライアントは最初に時刻同期のためにサーバと通信した後、時間の更新を受動的に受信することができる[3]。NTPは、直近の閏秒の情報は送信するが、タイムゾーンや夏時間に関する情報は送信しない[2][3]。
最新のプロトコルバージョンはバージョン4(NTP v4)で、RFC 5905で文書化されている。これはRFC 1305で規定されているバージョン3との後方互換性があり RFC 4330 (SNTP v4) の置き換えでもある。その後もRFC 7822, 8573, 9109 が発行されているが NTP v4 の拡張フィールドとメッセージ認証コードについての補足、認証コードの推奨アルゴリズム変更、ソースポートのランダマイゼーションの推奨と実質的な変更はない。(SNTP v4 については全く触れられていない)
「Network_Time_Protocol」『フリー百科事典 ウィキペディア日本語版』。2022年12月23日 (金) 21:51 UTC、URL: Network Time Protocol - Wikipedia
Post Office Protocol(ポスト オフィス プロトコル、POP)は、電子メールで使われる通信プロトコル(通信規約)のひとつ。ユーザがメールサーバから自分のメールを取り出す時に使用する、メール受信用プロトコル。現在は、改良されたPOP3 (POP Version 3) が使用されている。
概要
電子メールは、いつ・誰から送られてくるか分からない。しかし、ユーザが自分のコンピュータを常にインターネットに接続してメールを受信できるように待機させておく必要はない。これは、インターネットサービスプロバイダ (ISP) や企業ネットワーク内にメールを配達・受信するためのメールサーバが設置されており、メールサーバが常にメールを受信できるように待機しているからである。メールサーバにメールが届いた後に、ユーザがメールサーバからメールを取り出して、自分のコンピュータに取り込めばよい。この時に使われるプロトコルがPOPである。この作業は、郵便局(メールサーバ)に届けられた手紙をユーザーが郵便局へ取りに行く作業に似ている。メールサーバにメールが届いているかどうかもPOPで確かめることができる。
POPのユーザ認証機能をメール送信時の送信者認証に使用することがあり、これをPOP before SMTPと言う。
通常使用するTCPポート番号は、POP2では109番、POP3では110番を使用する。
「Post_Office_Protocol」『フリー百科事典 ウィキペディア日本語版』。2022年3月22日 (火) 09:43 UTC、URL: Post Office Protocol - Wikipedia
Simple Mail Transfer Protocol(シンプル メール トランスファー プロトコル、SMTP)または簡易メール転送プロトコルは、インターネットで電子メールを転送するプロトコルである。通常 ポート番号 25 を利用する。 転送先のサーバを特定するために、DNS の MXレコードが使われる。RFC 5321 で標準化されている。
概要
SMTPはIETFにおいて標準化されたメール転送のためのプロトコルである。1980年9月にメール転送プロトコル(Mail Transfer Protocol)という名称のプロトコルが RFC 772 において提案され、2回の改訂を経て1982年8月に簡易メール転送プロトコル(SMTP)という名称で RFC 821/ STD0010 として標準になった。
その後 2001年4月に SMTPは他のRFCの内容もあわせて改訂され、RFC 2821 として提案標準(Proposed Standard)になった。RFC 821 から約20年を経て改訂版が発行されたのは、おもにインターネットの普及にともなって様々なメール拡張機能が実装され、それらをささえる部分を整理する必要があったからである。サーバ外からの攻撃や、IPv6のアドレスにも対応できるよう、またSPF(Sender Policy Framework、RFC 4408)、DKIM(DomainKeys Identified Mail、RFC 4871)などにも対応すべく 2008年10月に再度改訂(RFC 5321)された。
SMTP はメールサーバ間の転送だけでなく、電子メールクライアントからメールサーバにメールを送信するときにも使われる。この2つを元々は区別していなかったがスパムなどを防ぐために現在では配送(transfer)と提出(submission)として分けて考え、メール配送の通信ではポート番号25をそのまま使うが、メール提出ではポート番号587で認証を必須とし暗号化する場合が多い。ポート番号25に接続しようとしても、ほとんどのインターネットサービスプロバイダがブロックしている。またポート番号587やTLSで暗号化した場合のポート番号465をSubmissionポートという。
SMTPは本来テキストベースのプロトコルであり、全ての要求/応答メッセージやメールデータが7ビットASCIIでなければならないという制限があったが、英語以外の言語やバイナリファイルを扱う需要があった。そのため、電子メールにMIMEという規格がつくられ、SMTP自体にも8ビットで伝送する拡張が標準化された。
「Simple_Mail_Transfer_Protocol」『フリー百科事典 ウィキペディア日本語版』。2022年8月16日 (火) 05:25 UTC、
Internet Message Access Protocol(インターネット メッセージ アクセス プロトコル、IMAP(アイマップ)) は、メールサーバ上の電子メールにアクセスし操作するためのプロトコル。クライアントとサーバがTCPを用いて通信する場合、通常サーバー側はIMAP4ではポート番号143番、IMAP over SSL(IMAPS)では993番を利用する。
概要
POP はユーザが利用中のサーバからクライアントにメールをダウンロードし、ダウンロードがすんだメールはサーバから削除することを標準的な利用形態とするのに対し、IMAP はメールをメールサーバ上に保存したまま管理する(RFC 1733 参照)。この特性により、Webメールや複数のコンピュータから同一アカウントのメールを読む場合に、メールの未読状態等の属性やメールフォルダの構成等が一元的に管理できる利点がある。もともとはオリジナルであるIMAPが開発されたが、IMAP2、IMAP3、IMAP2bisなどが作られ、現在IMAPと呼ぶときにはIMAP4を指すことが通常である。プロトコルの仕様が複雑であったためあまり広く普及しなかったが、Netscape や Internet Explorer に標準で含まれているメールソフトが IMAP4 に対応し、また相互接続試験やプロトコルの様々な改訂・拡張により相互運用性が高まったため、利用者が広がった。
「Internet_Message_Access_Protocol」『フリー百科事典 ウィキペディア日本語版』。2021年5月20日 (木) 22:50 UTC、URL:Internet Message Access Protocol - Wikipedia
Multipurpose Internet Mail Extension(多目的インターネットメール拡張)は、規格上US-ASCIIのテキストしか使用できないインターネットの電子メールでさまざまなフォーマット(書式)を扱えるようにする規格である。通常はMIME(マイム)と略される。RFC 2045、RFC 2046、RFC 2047、RFC 4288、RFC 4289、RFC 2049 で規定されている。
概要
インターネットでメールの書式を定めている RFC 5322 (旧 RFC 822、RFC 2822)では、英数字といくつかの記号を7 ビットで表現する「US-ASCII」と呼ばれる文字コードを利用し、1行あたり1000 バイト(改行を含む)のテキストデータしか許していない。そのため、規格に不適合になるような長い行、US-ASCIIだけで表現できない文字や、バイナリデータ、画像、音声などの非文字データを利用することができなかった。
MIMEはこれらのデータを取り扱うために新しくいくつかのヘッダを定義し、かつUS-ASCII上でさまざまなデータタイプを表現するための符号化方式を規定している。
RFC 5322 (旧 RFC 822、RFC 2822)では1 通のメールで1つの本文しか扱うことができないが、MIMEでは本文を分割して複数のコンテンツを扱うことができるようにした。これをマルチパートと呼ぶ。MIMEヘッダには、MIMEメッセージヘッダとMIMEパートヘッダの二つがある。MIMEメッセージヘッダはメッセージ全体に適用され、MIMEパートヘッダはマルチパートメッセージの各部分に適用される。マルチパートにより、1つのメールに複数の種類のファイルを扱うことができるようになった。
また、HTTPにおけるデータの伝送に関しても、MIMEの枠組みが援用されている。
「Multipurpose_Internet_Mail_Extensions」『フリー百科事典 ウィキペディア日本語版』。2020年3月24日 (火) 07:00 UTC、
Transport Layer Security(トランスポート・レイヤー・セキュリティ、TLS)は、インターネットなどのコンピュータネットワークにおいてセキュリティを要求される通信を行うためのプロトコルである。主な機能として、通信相手の認証、通信内容の暗号化、改竄の検出を提供する。TLSはIETFによって策定された。
当プロトコルは(特に区別する場合を除いて)SSL (Secure Sockets Layer) と呼ばれることも多い。これは、TLSの元になったプロトコルがSSLであり、そのSSLという名称が広く普及していることによる。
2022年現在の最新版はTLS 1.3である。
概要
TLSは多くの場合、コネクション型のトランスポート層プロトコル(通常はTCP)とアプリケーション層の間で使われる。特にHTTPでの利用を意識して設計されているが、アプリケーション層の特定のプロトコルには依存せず、様々なアプリケーションにおいて使われている。TLS 1.1以降を元にしたプロトコルが、UDPやDCCPといったデータグラム型プロトコル上でも実装されており、こちらはDatagram Transport Layer Security (DTLS) として独立して標準化されている。
TLSはHTTPなどのアプリケーション層のプロトコルと組み合わせることで、HTTPSなどセキュアな通信プロトコルを実現している。そのようなプロトコルとして以下のものがある。
SSLと組み合わせたプロトコル | ポート番号 | 元のプロトコル | ポート番号 |
---|---|---|---|
HTTPS | 443 | HTTP | 80 |
SMTPS | 465 | SMTP | 25 |
LDAPS | 636 | LDAP | 389 |
FTPS (data) | 989 | FTP (data) | 20 |
FTPS (control) | 990 | FTP (control) | 21 |
IMAPS | 993 | IMAP | 143 |
POP3S | 995 | POP3 | 110 |
「Transport_Layer_Security」『フリー百科事典 ウィキペディア日本語版』。2023年1月3日 (火) 15:53 UTC、
User Datagram Protocol(ユーザ データグラム プロトコル、UDP)はIPネットワーク上のアプリケーション間データグラム送信を実現する通信プロトコルである。
概要
UDPはインターネットを始めとしたInternet Protocolネットワーク上で利用される通信プロトコルである。ホスト間通信を担うIP上でアプリケーション間通信を可能にする。通信はデータグラム方式、すなわち到達保証・流量制御・順序制御をせず、データグラムをステートレス・コネクションレスに相手側へと送信する。またブロードキャストとマルチキャストをサポートしている。
デイヴィッド・P・リードが1980年に設計し、RFC 768 で定義した(STD番号: 6)。非常にシンプルに設計されており公式仕様のRFC 768はわずか3ページである。インターネット・プロトコル・スイートの観点ではトランスポート層プロトコルに属する。IPヘッダにおけるプロトコル番号は17である。OSI参照モデルに当てはめるのであればトランスポート層に相当する。しばしば対比されるプロトコルにTCPやSCTPがある。
アプリケーション間通信に必要な最低限の機能をもった軽量プロトコルであり、適時性・低レイテンシが要求されるサービスで利用される[5]。特に途中でデータが抜け落ちても問題が少ない音声や画像のストリーム形式での配信(VoIP、MPEG-TS、IP放送など)、小さなデータをリアルタイムで大量に転送するオンラインゲームなどで活用される。上位プロトコルとしてはSNMP、TFTP、DNS、DHCP、RTPなどが挙げられる。
設計方針として輻輳制御を持たないため、ネットワークが輻輳する原因となるケースが問題点として存在する。
「User_Datagram_Protocol」『フリー百科事典 ウィキペディア日本語版』。2023年1月4日 (水) 10:25 UTC、
① Web ブラウザと Web サーバ間でデータを送受信する際に用いられる。
➡ この説明はHTTPです。
② 電子メールクライアントソフトが、メールサーバに保存されている電子メールを取得する際に用いられる。
➡ メールの3点セットとして、POP3、SMTP、IMAPを覚えておきましょう。
POP3が、メールクライアントが、電子メールを取得する際に用いられるプロトコルです。この説明ですね。
SMTPは、インターネットで電子メールを転送するプロトコルです。通常 ポート番号 25 を利用します。まあメールを送信するときのやつです。
IMAPは、メールサーバ上の電子メールにアクセスし操作するためのプロトコルです。GmailとかWebでのメール操作のやつです。
③ 電子メールの送受信において、テキストとともに画像・音声・動画などのデータを扱う際に用いられる。
➡ さて惑わさられる場合があるのが、この③です。電子メールって見て、メール3点セットを思い浮かべるかもしれあmせん、しかし、その後ろを読むと、メールとはちょっと違っていますね。
答えを言ってしまうと、MIMEのことです。
MIMEとは、規格上US-ASCIIのテキストしか使用できないインターネットの電子メールでさまざまなフォーマット(書式)を扱えるようにする規格です。しっかり、この辺の違いを認識しておきましょう。
④ クライアントとサーバ間で送受信されるデータを暗号化する際に用いられる。
➡ 暗号化ときたら、SSL/TLSです。少し詳しいところまで覚えておくと良いかもしれません。
さて、というわけで、①がHTTP、②がPOP3、③がMIME、④がSSL/TLSとなり、答えは1となります。