TCP/IPに関する基本情報技術者試験の頻出ポイント解説!
更新日:2021年7月2日
TCP/IPはインターネット通信の基盤となる技術です。インターネット上でのコンピュータ間通信は、すべてのTCP/IPプロトコル群によって実現されています。
普段インターネットを利用する中ではあまりTCP/IPプロトコルの存在について意識することはありませんが、TCP/IPプロトコルは最も基本的かつ最も重要なプロトコルといってよいでしょう。
この記事では、基本情報技術者試験の対策としてTCP/IPについての解説を行います。
TCP/IPとは
TCP/IPとは、TCPおよびIPに代表される、インターネットで利用されるプロトコル群を集めたものを指します。TCP/IPはコンピュータ間通信のデフォルトスタンダードとして一般的に利用されています。
TCP/IPはコンピュータ間通信のプロトコル階層構造を定義しているOSI基本参照モデルを拡張したものとなっており、OSI基本参照モデルとは若干異なる構成となっています。
TCP/IPのプロトコル階層構造を以下に示します。
名称 | 概要 |
---|---|
ネットワークインターフェース層 | OSI基本参照モデルの物理層とデータリンク層を組み合わせたもの。物理的な通信と直接接続された機器間の通信方法を規定するプロトコルが含まれる。 |
インターネット層 | OSI基本参照モデルのネットワーク層に相当するもの。IPに代表されるプロトコルによりデータの通信経路を規定するプロトコルが含まれる。 |
トランスポート層 | OSI基本参照モデルのトランスポート層に相当するもの。TCPに代表されるプロトコルによりデータの通信制御を定義するプロトコルが含まれる。 |
アプリケーション層 | OSI基本参照モデルのアプリケーション層、プレゼンテーション層、セッション層に相当するもの。メールやHTTPのようにアプリケーションごとの通信方法について定義するプロトコルが含まれる。 |
参考として、以下にOSI基本参照モデルでのプロトコル階層を示します。TCP/IPのほうがOSI基本参照モデルよりも簡略化された構造になっていることが分かると思います。
<参考:OSI基本参照モデルでのプロトコル階層構造>
名称 | 概要 |
---|---|
物理層 | 主に物理的な通信方法を定める |
データリンク層 | 主に隣接するコンピュータ間の通信方法を定める |
ネットワーク層 | 主にコンピュータ間の通信経路を定める |
トランスポート層 | 主にコンピュータ間通信の制御方法を定める |
セッション層 | 主にコンピュータ間通信の開始・終了方法を定める |
プレゼンテーション層 | 主にコンピュータ間通信におけるデータの表現方法を定める |
アプリケーション層 | 主にコンピュータ間通信におけるアプリケーションレベルでの通信方法を定める |
ネットワークインターフェース層
ネットワークインターフェース層はOSI基本参照モデルの物理層とデータリンク層を合わせたものに対応し、TCP/IPプロトコル群の中でも最も物理的なレベルでの通信を担当します。
ネットワークインターフェース層に属する代表的なプロトコルとして、イーサネットがあげられます。イーサネットという言葉はあまり聞きなれないかもしれませんが、LANケーブルのことだと思うとわかりやすいでしょう。
イーサネットではLANケーブルの規格が定められており、規格のバージョンによって通信速度や伝送帯域が異なります。
インターネット層
インターネット層はOSI基本参照モデルのネットワーク層に相当するものであり、コンピュータ間での広域的な通信を担当します。インターネット層に属する代表的なプロトコルとして、IPがあげられます。
IPプロトコルはIPアドレスをもとにして転送先のコンピュータを判別し、転送先に足るまでの伝送経路であるルーティングを定義します。
トランスポート層
トランスポート層はOSI基本参照モデルでも同じ名前であるトランスポート層に相当するものであり、コンピュータ間の通信における誤り制御や通信順序の制御などを担当します。トランスポート層に属する代表的なプロトコルとして、TCPやUDPがあげられます。
TCPは一般的なインターネット通信において利用されるプロトコルで、通信誤り時には再送要求を行い完全な形でデータ転送を行うという特徴があります。
一方でUDPはテレビ電話などで用いられるプロトコルで、再送要求などは行わない簡潔で高速な通信を提供します。
アプリケーション層
アプリケーション層はOSI基本参照モデルのアプリケーション層、プレゼンテーション層、セッション層に相当するものであり、アプリケーションレベルで必要となる情報の通信を担当します。
アプリケーション層に属する代表的なプロトコルとして、HTTPやSMTPなどがあげられます。
アプリケーション層に属するプロトコルは、アプリケーションが提供する個別の機能を実現するために、プロトコルごとに様々なデータ通信を実現します。
例えば、HTTPであればWebブラウザ上でHTMLを閲覧できるように、Webブラウザ等のクライアントからのリクエストに応じて必要なファイルを送る機能を備えています。
また、メールであればメールの宛先やタイトル、本文といった内容を送付できるようにプロトコルが定められています。
TCP/IPで利用される主なプロトコル
以下では、TCP/IPで利用される主なプロトコルを紹介します。
TCP
TCPはTCP/IPプロトコル群を代表するプロトコルです。上述の通り、TCPは信頼性の高い通信を実現するプロトコルです。
ファイルのダウンロードやWebページの表示などに利用され、通信内容が漏れなく伝送されていることを確認することができます。
TCPによる通信では、最初にお互いの端末がTCPによる通信に合意していることを確認するため、3ハンドシェイクと呼ばれる3ステップでの確認を行います。
これにより、TCPによる通信のコネクションを確立します。
また、TCPではより上位のアプリケーション層での通信を識別するために、ポート番号という仕組みを設けています。例えば、HTTP通信であれば80番のポートを利用し、SMTPであれば25番、POP3であれば110番といったようにポート番号が定められています。
UDP
UDPは、効率を重視した通信を実現するトランスポート層のプロトコルです。
完全性を重視するTCPとは違い、通信途中に伝送パケット漏れがあったとしても、再送要求はせず通信を継続することが大きな特徴です。
TCPの3ハンドシェイクのようなコネクション確立の手順は存在せず、送付元は相手先の状況を確認せずにデータを送付します。
このような通信をコネクションレス型通信といいます。
UDPはビデオ会議や音声通話など、即時性が重要となるアプリケーションで利用されています。
IP
IPは、TCP/IPを代表するもう一つのプロトコルで、インターネット層に属します。IPはコンピュータから目的のコンピュータまでの通信経路を選択するためのプロトコルです。
IPアドレスと呼ばれる仕組みで各コンピュータを特定し、コンピュータ間通信を実現します。
IPによる通信を実現するための機器はルータと呼ばれます。ルータはルーティングテーブルにより自身が受信したパケットをどの宛先に送付すればよいか判断します。
IPによるルーティングの特徴は、一度に宛先までの道のりを指定しないことです。データを受け取ったルータは、自身のルーティングテーブルに従って、最寄りのルータまでデータを転送します。
これを繰り返し、徐々に目的地に近づくようにデータを転送していきます。複数のコンピュータを経由して最終的な目的地までの通信を行うのが、IPによるデータ転送の大きな特徴です。
これにより、あるルータが故障したとしても、別ルートで通信を行うことができ、耐障害性に優れた仕組みを構築できます。
HTTP
HTTPはアプリケーション層に属するプロトコルで、主にWebページの表示に用いられます。WebブラウザでWebサイトを閲覧する際には、その裏側でHTTPによる通信が行われています。
HTTPはWebページを構成するファイルの洗い出しやセッションの管理などを行います。HTTPリクエストを受け取ったHTTPサーバは、リクエストされたページの内容を解釈し、ページに含まれる画像ファイルやCSSファイルなどを洗い出します。そして、すべてのファイルをリクエスト元に返却します。
また、ログインが必要なWebサイトなどでは、ログイン情報を継続的に保有する必要がありますが、このようなセッションの管理もHTTPの役割です。
FTP
FTPはアプリケーション層に属するプロトコルで、ファイルを送受信するためのものです。相手先コンピュータにIDとパスワードでログインしたうえで、ファイルを指定してダウンロードすることができます。
FTP自体には暗号化機能がなく、セキュリティ上脆弱です。そのため、近年ではFTP通信を行う際にはTLSやSSHなどを用いて暗号化したうえで通信を行うことが一般的です。
SMTP・POP3
SMTPおよびPOP3はアプリケーション層に属するプロトコルで、メールの送受信に利用されます。メールソフトからメールサーバへのメール送信、およびメールサーバからのメール受信を行います。
SMTPはメール送信方法を規定したプロトコルです。メールの宛先やタイトル、本文などを指定する方法が定義されています。
POP3はメールを受信するためのプロトコルです。受信されているメールの確認やメールのダウンロード、メールの削除などの方法が定義されています。
NTP
NTPはアプリケーション層に属するプロトコルで、時刻を同期するためのものです。原子時計から得られた時刻情報を用い、正確な時刻を受信することができます。
世界には多くのNTPサーバが用意されており、そのNTPサーバにNTPプロトコルを用いて通信を行うことで、正確な時刻情報を取得することができます。
近年のPCでは時刻が正確に表示されるようになりましたが、これは裏側で定期的にNTPサーバと通信を行っているから実現できるのです。
まとめ
この記事では、基本情報技術者試験を受けようとされている方に向けて、TCP/IPに関する内容の解説を行いました。TCP/IPはインターネットの基盤となっている重要なプロトコル群ではありますが、普段その存在を意識することは少ないと思います。
IT業界で仕事をする上では、少なくともTCP/IPに関する基本的な知識は必須といえるでしょう。
基本情報技術者試験の対策を良い機会として、理解を深めておくことをおすすめします。