アプリケーション層
アプリケーション層は、ユーザが直接触ることになる便利な機能のような、ソフトウェアなどによるサービスなどを付加するためのデータのフォーマットや手順を決める役割を担います。アプリケーション層によって実現される具体的な機能としては、HTMLの閲覧、メールの送受信、ファイルの転送、ネットワークを介した時計合わせ、遠隔ログイン、などがあります。
アプリケーション層の主なプロトコル
FTP | File Tranfer Protocol、サーバとクライアントの間でファイル転送を行う際に使われるプロトコル |
HTTP | Hypertext Transfer Protocol、WebサーバとWebブラウザの間で、Web情報をやり取りするためのプロトコル |
SMTP | Simple Mail Transfer Protocol、電子メールを送信するためのプロトコル |
IMAP | Internet Message Access Protocol、電子メールを受信するためのプロトコルの一つ |
NTP | Network Time Protocol、コンピュータに内蔵されているシステムクロックをネットワークを介して正しく同期させるためのプロトコル |
SSH | Secure Shell、遠隔地にあるサーバやルータなどを安全にリモート操作する際に使用されるプロトコル |
DNS | Domain Name System、ドメイン名をIPアドレスに自動的に変換するためのプロトコル |
どれもネットワーク通信を行うためには重要なプロトコルですが、中でも特に重要なDNSについてピックアップして説明します。
DNSとは
DNS(Domain Name System)とは、インターネット上でドメイン名を管理・運用するために開発されたシステムです。現在、インターネットを利用するときに必要不可欠なシステムの一つとなっています。
TCP/IPではネットワークに接続されているコンピュータを識別するために、各ホストにユニークなIPアドレスを設定し、そのIPアドレスを元に通信が行われます。しかしIPアドレスは人間にとって扱いづらいため、現在はドメイン名と呼ばれる識別子を使用することでインターネット上のコンピュータおよびサービスへの通信を行っています。
DNSでは通信をしたいユーザがドメイン名を入力すると、自動的にドメイン名やIPアドレスが登録されているデータベースサーバが検索され、そこからIPアドレスの情報を得るようになっています。
ドメイン名の構造
ドメイン名とは、ホストの名前や組織の名前を識別するための階層的な名前のことです。
ドメイン名は複数の短い英字がピリオドによってつながれた階層構造(ツリー構造)を持っています。
下図の通り、ドメイン名の一番右側からトップレベルドメイン、第2レベルドメイン、第3レベルドメイン、第4レベルドメインと続きます。
ドメインレベル | 説明 | ドメイン名の例 |
---|---|---|
トップレベルドメイン
(Top Level Domain) | トップレベルドメイン(TDL)では、国別、地域、商用などを表すドメインとなっている |
jp(日本)
us(アメリカ) com(商用) |
第2レベルドメイン | 第2レベルドメイン(SLD)では、組織の種類を表すドメインとなっている。ただしトップレベルドメインによりこのポリシーは異なる。 |
co(一般企業)
ac(教育機関) go(政府機関) |
第3レベルドメイン | 第3レベルドメインでは、具体的な企業名や組織などを表すドメインとなっている。ただし、トップレベルドメインによりこのポリシーは異なる。 |
yahoo
keio |
第4レベルドメイン | 第4レベルドメインは、「ホスト名」に位置づけされるドメインです。一般的にWebサーバであれば「www」として、FTPサーバであれば「ftp」とする。 |
DNSによる名前解決の仕組み
クライアント(スタブリゾルバ)からDNSサーバへ問い合わせ(DNSリクエスト)を行い、ドメイン名からIPアドレス(もしくはIPアドレスからドメイン名)へ変換することを「名前解決」と言います。
DNSサーバにはキャッシュDNSサーバと権威DNSサーバの大きく2種類があります。キャッシュDNSサーバはフルサービスリゾルバとも呼ばれています。
キャッシュDNSサーバ | ドメイン名→IPアドレスなどの問い合わせ(名前解決)を行い、その結果をキャッシュするサーバ |
権威DNSサーバ | ドメイン名とIPアドレスの関連付けを「DNSレコード(ゾーンファイル)」として管理し、問い合わせに対して自身が管理するゾーン情報のみ応答するサーバ |
また、ドメイン名とIPアドレス対応に関する問い合わせに関しても、再帰問い合わせと反復問い合わせの2種類があります。
再帰問い合わせ | リゾルバからの問い合わせ要求を受けた(キャッシュ)DNSサーバが、他のDNSサーバに問い合わせを行い、その最終的な結果を再びリゾルバへ応答する問い合わせのこと |
反復問い合わせ
(非再帰問い合わせ) |
キャッシュDNSサーバ から 権威サーバ に送られる問い合わせを非再帰問い合わせという。非再帰問い合わせを受け取ったDNSサーバは、自分が知ってる情報のみを返す。
非再帰問い合わせを上位の権威サーバから下位の権威サーバまで繰り返して問い合わせを行うことを反復問い合わせという。 |
参考: https://www.infraexpert.com/study/tcpip15.html
DNS関連RFC
日本語翻訳
参考: https://jprs.co.jp/topics/2020/200515_2.html