今回のテーマは「通信プロトコル」についてです。
通信プロトコル?
基本情報技術者試験や応用情報技術者試験で出題される「通信プロトコル」の問題。各プロトコルの役割を知らないと難しく感じる問題ですが、知っていればそこまで難しい問題ではありません。
本記事では、ネットワークの基本である「通信プロトコル」について解説しています。
スポンサーリンク
目次
通信プロトコルとは
プロトコルとは、対象の物事を複数の人が使えるようにするための「ルール(決まり事)」のことで、プロトコルの多くは、ネットワーク上での通信で使用されています。
そのため「通信プロトコル」とも呼ばれています。
通信プロトコルには、通信するために必要な手順や規格が定められています。
例えば、私たちの生活には、欠かせない存在となっている「パソコン」や「スマートフォン」で、Webサイトを閲覧するときに使うプロトコルは「HTTP」です。
「HTTP」で定められたルール(決まり事)に従い、通信しています。
それでは、情報処理試験でよく出題される、代表的な通信プロトコルを紹介します。
通信プロトコル一覧
OSI参照モデル または TCP/IP の階層モデルで使われている、主な通信プロトコルは次のとおりです。
OSI参照モデルの層 | TCP/IPの階層 | 主なプロトコル |
アプリケーション層 | アプリケーション層 | HTTP、SMTP、POP3、FTPなど |
プレゼンテーション層 | ||
セッション層 | ||
トランスポート層 | トランスポート層 | TCP、UDPなど |
ネットワーク層 | インターネット層 | IP、ICMPなど |
データリンク層 | ネットワークインターフェース層 | イーサネット、PPPなど |
アプリケーション層
【Web通信】HTTP(Hypertext Transfer Protocol)
HTTPとは、Webサイトを表示(Web情報をやり取りする)する際に使用するプロトコルです。
次の図は、HTTPのイメージ例です。
利用者のコンピュータ(クライアント)がWebサイトを閲覧するとき、Webサーバーに「HTTPリクエスト」を送信します。「HTTPリクエスト」を受け取ったWebサーバーは、クライアントからの要求に対し、「HTTPレスポンス」を返却します。
HTTPリクエストには、「HTTP GET」と「HTTP POST」などのメソッドが用意されており、用途に応じて使いわけます。
【メール送信】SMTP (Simple Mail Transfer Protocol)
SMTPとは、電子メールを送信する際に使用するプロトコルです。
次の図は、SMTPのイメージ例です。
送信者は、メーラーと呼ばれるメールソフトやWebメールからメールを送信します。このとき使用するプロトコルがSMTPです。
送信したメールは、まず送信者のメールを管理しているメールサーバーに送られます。そして、受信者のメールを管理しているメールサーバーへとメールを転送します。
【メール受信】POP(Post Office Protocol)
POPとは、電子メールを受信する際に使用するプロトコルです。
次の図は、POPのイメージ例です。
SMTPで受信者のメールサーバーに届いた後は、受信者がメールサーバーに「POP3」もしくは「IMAP」を利用して、受信者のメールサーバーにメールがないか、問い合わせをおこないます。
【メール受信】IMAP(Internet Message Access Protocol)
IMAPとは、電子メールを受信する際に使用するプロトコルです。
次の図は、IMAPのイメージ例です。
IMAPは、POPと同じで電子メールを受信する際に利用するプロトコルです。
メールサーバーに届いたメールをダウンロードする「POP」に対し、「IMAP」は、メールサーバに届いたメールを閲覧します。
IMAPのメリットは、メールサーバー上で、未読・既読といった操作も共有されているので、どの端末(パソコンやスマホなど)からメールを閲覧しても状態が変わらない(一元管理されている)ところです。
【ファイル転送】FTP(File Transfer Protocol)
FTPとは、ネットワーク上にあるサーバーとクライアント(利用者のコンピュータ)間でファイル転送をおこなうプロトコルです。
次の図は、FTPのイメージ例です。
FTPは、ネットワーク上にあるサーバーにファイルをアップロード、または、サーバーからファイルをダウンロードする際に使用します。
【IPアドレス自動割当】DHCP(Dynamic Host Configuration Protocol)
DHCPとは、コンピュータがインターネットに接続する際に必要となるIPアドレスを自動的に割り当てるプロトコルです。
次の図は、DHCPのイメージ例です。
インターネット上で通信するには、インターネット上の住所である「IPアドレス」が必要です。
この「IPアドレス」を自動的に採番するネットワーク機器を「DHCPサーバー」といい、このときに使用するプロトコルが「DHCP」です。
【時刻同期】NTP(Network Time Protocol)
NTPとは、コンピュータが持つ時計(システムクロック)を正しい時刻へ同期するためのプロトコルです。
次の図は、NTPのイメージ例です。
NTPクライアントからNTPサーバーに時刻を問い合わせ、NTPクライアントはNTPサーバーから受信した時刻に変更します。
【名前解決】DNS(Domain Name System)
DNSとは、名前解決機能を提供するプロトコルです。
名前解決機能とは、インターネット上の住所である「IPアドレス」と「ドメイン」の対応表を管理し、変換するシステムのことをいいます。
次の図は、DNSのイメージ例です。
「IPアドレス」と「ドメイン」の対応表を管理しているサーバーを「DNSサーバー」といい、「ドメイン」→「IPアドレス」もしくは「IPアドレス」→「ドメイン」に変換する機能(名前解決)を提供します。
【ネットワーク機器監視】SNMP(Simple Network Management Protocol)
SNMPとは、ネットワーク上にあるネットワーク機器を監視するためのプロトコルです。
次の図は、SNMPのイメージ例です。
SNMPは、SNMPマネージャとSNMPエージェントで構成されています。
SNMPマネージャは、ネットワーク機器を管理する側、SNMPエージェントは、管理される側のネットワーク機器(ルータ、スイッチ、サーバーなど)です。
SNMPを利用し、ネットワーク上にあるネットワーク機器を監視することで、仮にネットワーク機器に障害が発生した場合、どのネットワーク機器で障害が発生したのか、突き止められる仕組みになっています。
【遠隔操作】Telnet(Teletype network)
Telnetとは、遠隔地にある「サーバー」や「ルータ」などを遠隔操作する際に使用するプロトコルです。
次の図は、Telnetのイメージ例です。
Telnetを使えば、遠く離れた場所にあるサーバーなどを遠隔操作できます。
トランスポート層
【信頼性重視】TCP(Transmission Control Protocol)
TCPとは、トランスポート層で動作する「信頼性重視」のプロトコルです。
TCPはコネクション型のプロトコルです。コネクション型(コネクションを確立する)とは、まるで会話のように相手とやり取りをしながら通信する方式です。
次の図は、TCPのイメージ例です。
TCPは、通信相手と会話するようにやり取りをしてきます。データ送信に失敗した場合は、通信相手から返事が返ってきません。このような場合は、一定時間待機して再送します。
このようにTCPは信頼性の高い通信を提供しています。
【速度重視】UDP(User Datagram Protocol)
UDPとは、トランスポート層で動作する「速度優先」のプロトコルです。
UDPは、コネクションレス型のプロトコルです。コネクションレス型とは、通信相手と接続(コネクション)確立をおこなわずデータを送信する方式です。
次の図は、UDPのイメージ例です。
会話のように相手とやり取りをしながら通信するTCPとは違い、UDPは相手にデータが届いたかの確認をおこないません。一方的にデータを送信し、速度の速い通信を実現しています。
そのため、多少のデータ欠落があっても高速性やリアルタイム性を重視する通信で使われています。
ネットワーク層(インターネット層)
【IPアドレス】IP(Internet Protocol)
IPとは、インターネット上で通信する際に主要となるプロトコルで、インターネット上の住所である「IPアドレス」についての定義しています。
次の図は、IPのイメージ例です。
IPアドレスはインターネット上の住所です。IPアドレスを使うことで、インターネット上での通信を可能にしています。
【IP補助】ICMP(Internet Control Message Protocol)
ICMPは、主要プロトコルである「IP」を補助するプロトコルです。
ネットワーク層(インターネット層)で動作する「IP」は、コネクションレス型(コネクションの確立はおこなわず、一方的に送る)のプロトコルです。そのため、IPパケットの転送に失敗した場合、失敗を検知できません。
次の図は、ICMPのイメージ例です。
ICMPは、IPを補助する役割を持ちます。通信エラー発生時は、送信元に対して、ICMPによってエラー情報を通知します。
【IPパケット暗号化】IPsec(Security Architecture for Internet Protocol)
IPsecとは、IPパケット単位で安全な暗号通信をおこなうプロトコルです。
次の図は、IPsecのイメージ例です。
IPsecは、2つのIPsec対応ルータなどの間にSA(Security Association)という単方向コネクションを確立することで、セキュア(安全)な通信を確立します。
データリンク層(ネットワークインターフェース層)
【アドレス解決】ARP(Address Resolution Protocol)
ARPとは、IPアドレス(IPv4)からMACアドレスを取得するためのプロトコルです。
※本記事ではARPの階層をL2(データリンク層)で定義していますが、データリンク層とネットワーク層の橋渡しをおこなっているプロトコルのため、文献によってはL2.5やL3(ネットワーク層)で定義されています。
インターネット上で通信するには、インターネット上の住所である「IPアドレス」とコンピュータの識別番号である「MACアドレス」が必要です。
次の図は、「ARPリクエスト」と「ARPリプライ」のイメージ例です。
ARPリクエストは、「このIPアドレスが割り振られているコンピュータのMACアドレスを教えて」という内容のパケットです。
ARPリクエストは、ブロードキャストであり同じセグメント内の全コンピュータに送信します。
ARPリプライは、ARPリクエストに対する応答です。
ARPリクエストを受信した各コンピュータは、問い合わせのIPアドレスが自身のIPアドレスと同一であるかを確認し、一致している場合は、自身のMACアドレスを格納したARPリプライを送信元に返信します。
【アドレス解決】RARP(Reverse Address Resolution Protocol)
RARPとは、MACアドレスからIPアドレスを取得するためのプロトコルです。
※本記事ではRARPの階層をL2(データリンク層)で定義していますが、データリンク層とネットワーク層の橋渡しをおこなっているプロトコルのため、文献によってはL2.5やL3(ネットワーク層)で定義されています。
IPアドレスからMACアドレスを取得するARPとは逆の動作をします。
次の図は、RARPリクエストとRARPレスポンスのイメージ例です。
RARPリクエストは、「このMACアドレスに割り当てられているIPアドレスを教えて」という内容のパケットです。
RARPリクエストは、ブロードキャストであり同じセグメント内の全コンピュータに送信します。
RARPレスポンスは、RARPリクエストに対する応答です。
RARPリクエストを受け取ったRARPサーバは、事前に登録してある対応表からMACアドレスに対応するIPアドレスを抽出し、要求元にRARPレスポンスを返却します。
【有線LAN】イーサネット(Ethernet)
イーサネットとは、コンピュータをネットワークに接続する時に使うネットワークケーブル(有線LAN)の規格で、データリンク層(ネットワークインターフェース層)で定義されているプロトコルです。
無線LAN
無線LANとは、無線通信を利用してコンピュータ同士でデータの送受信を行うLANシステムの規格で、データリンク層(ネットワークインターフェース層)で定義されているプロトコルです。
PPP(Point-to-Point Protocol)
PPPとは、電話回線などの通信回線を利用したプロトコルです。
次の図は、PPPoEのイメージ例です。
電話回線やISDN回線を通じてインターネットに接続する際によく用いられていたPPPを、イーサネット上で利用できるようにしたのがPPPoE(Point-to-Point Protocol over Ethernet)です。
PPPoEは、ADSLやケーブルテレビ(CATV)、光ファイバー(FTTH)などのインターネットサービスプロバイダ(ISP)に契約することで利用可能となるサービスでよく利用されていた手法です。
スポンサーリンク
基本情報技術者試験 過去問の解説
基本情報技術者令和3年免除 問34
TCP/IPネットワークにおけるRARPの機能として,適切なものはどれか、ア~エを順番に確認していきます。
「イ」が正解です。
基本情報技術者平成31年春期 午前問33
トランスポート層のプロトコルであり,信頼性よりもリアルタイム性が重視される場合に用いられるものはどれか、ア~エを順番に確認していきます。
ア:HTTP
不正解:Webサイトを表示する際に使用するプロトコルで、アプリケーション層で動作します。
イ:IP
不正解:インターネット上で通信する際に主要となるプロトコル(IPアドレスを定義)で、ネットワーク層で動作します。
ウ:TCP
不正解:通信の信頼性を重視する通信に用いられるプロトコルで、トランポート層で動作します。
エ:UDP
正解:信頼性よりもリアルタイム性を重視(速度重視)するプロトコルで、トランスポート層で動作します。
「エ」が正解です。