技術アウトプット(CCNA編)
皆さんこんにちは!エンジニアファーストの会社、株式会社CRE-COのTaiseiと申します!今回も技術アウトプットやっていきたいと思いますのでよろしくお願いいたします!本日はTCP/IPモデルについて紹介していきたいと思います!
※本記事では下記を中心に参考文献から学習した結果、要点をまとめて投稿しています。
前回OSI参照モデルについて紹介していきましたが、その際に現在は、TCP/IPモデルが主流というお話をしたと思います。そこでまずは二つを比較してみましょう。
TCP/ IPモデルはOSI参照モデルに合わせて作られたわけではないので、それぞれの階層は正確に紐づけられたりはできませんが、大まかに比較すると次のようになります。
![](https://assets.st-note.com/img/1675918407366-dl2b2g6E68.png)
物理層、データリンク層を合わせてネットワークインターフェース層、ネットワーク層をインターネット層、トランスポート層はそのままトランスポート層、残り3つをアプリケーション層といった違いがあります。それでは1階層ずつ紹介していきましょう。
第1層:リンク層(ネットワークインターフェース層)
まず初めに、リンク層についてです。役割についてOSI参照モデルとほぼ、変わらないものではありますが、二つの物理的な機器同士を結ぶ線を総じてリンクと飛ぶことからリンク層と呼びます。主な役割として、直接接続されている二つの機器同士の通信を制御することです。インターネット層から渡されたパケットを処理し、電気信号に変換してケーブルに送ります。
またリンク層で使用されるプロトコルがいくつかありますが現在ほとんどのLANで使われているのがイーサネットです。
イーサネットとはリンク層で利用されるプロトコルでデータの形式や物理ケーブルの仕様などを想定しています。イーサネットについては後ほど詳しく説明したいと思います。
第2層:インターネット層
続いて、インターネット層についてです。インターネット層の役割はエンドツーエンドの通信を制御することです。インターネットそうで利用される主なプロトコルは次の通りです。
IP IPアドレスを使用して送信元から宛先までデータを送信する。
ICMP 宛先までのルートが使用可能かどうかの確認を行う。
IGMP データのマルチキャスト通信で宛先の端末のグループを制御する。
IPsec 暗号化通信を行う。
ARP IPアドレスからMACアドレスを取得する。
RARP MACアドレスからIPアドレスを取得する。
上記の中でIPアドレスとMACアドレスはよく使われるので紹介していきたいと思います。
IPアドレスとはTCP/IPネットワーク上で、PCやルーターなどの機器の場所を特定するために使用されるインターネット層の識別子のことです。それに対してMACアドレスとはネットワークインターフェースカード(NIC)に割り振られているリンク層で使用される識別子のことです。MACアドレスを物理アドレス、IPアドレスを論理アドレスと言います。
第3層:トランスポート層
続いてトランスポート層についてです。トランスポート層の役割はアプリケーション層で利用されているプロトコル間での通信を制御することです。
トランスポート層では、上位層のプロトコル間通信の橋渡し役として主にTCPとUDPを使用します。TCPはデータの信頼性を重視しますが、UDPはデータの通信速度を優先します。続いて、TCPとUDPについて紹介していきたいと思います。
TCPとはデータの信頼性を保証するプロトコルです。
TCPを利用するアプリケーション層のプロトコルにはWebの閲覧を行うためのHTTP、ファイル転送を行うFTP、電子メールの送受信を行うSMTPやPOP3があります。
TCPで扱うデータをTCPセグメントと言います。TCPセグメントはアプリケーション層から渡され、分割したデータにTCPヘッダを付加したものです。
UDPとは通信速度を優先するプロトコルです。
UDPは、データの信頼性より通信速度を重視するアプリケーションで使用
されます。
例えば、通信の途中で多少データが欠落しても遅れを生じさせずにデータを送る必要がある、音声や画像などのリアルタイム通信アプリケーション(RTP)などが挙げられます。また、複数の相手にデータを送信する必要のあるDHCPやSNMP、IPアドレスやホスト名を問い合わせるDNSなどで利用されます。
UDPで扱うデータをUDPデータグラムと言います。UDPデータグラムは、アプリケーション層から渡されたデータに、UDPヘッダを追加したものです。
以上、2種類のプロトコルを紹介しましたが、詳しくはこちらも後ほど紹介したいと思います。
第4層:アプリケーション層
アプリケーション層は、Webサイトや電子メールなどのインタネット上で提供されている各種サービスとデータのやり取りをする階層です。
アプリケーション層で利用される主なプロトコルは次の通りです。
HTTP インターネット上のWebサイトを閲覧するためにサーバとクライアント間の通信で利用される。
SMTP メールの送信に利用される。
POP3・IMAP メールの受信に使用される。
TELNET リモートでサーバなどにログインするときに利用される。
FTP ファイル転送に利用される。
TCP/IPモデルは以上4層に分けられます。続いて、各階層をデータがどのように流れていくのかを紹介していきます。
![](https://assets.st-note.com/production/uploads/images/97668841/picture_pc_02fcdec398365f3374b2591eb0079902.gif?width=1200)
上記はクライアント側からWebサーバに対してデータを送信する場間のデータの流れです。アプリケーション層ではHTTP、トランスポート層ではTCP、インターネット層でIP、リンク層でイーサネットの各プロトコルを使うことを想定しています。
送信元では、上の階層から順番に送信するデータをカプセル化して下の階層に渡していきます。OSI参照モデルの時と同様に、各階層でその階層に必要なデータをヘッダとして付加していきます。
アプリケーション層では、データにHTTPヘッダが追加されます。それを下位のトランスポート層に渡します。
トランスポート層では、データにTCPヘッダを追加します。TCPヘッダが追加されたものをセグメントと言います。
インターネット層ではトランスポート層から渡されたセグメントにIPヘッダを追加します。このIPヘッダが追加されたデータをパケットと言います。
リンク層では、インターネット層から渡されたパケットにイーサネットヘッダとトレーラと呼ばれる誤りを検出するための情報を後ろに付加します。この付加されたデータをフレームと言います。このフレームを0と1の電気信号に変換し、ケーブル上に流します。
受信側のWebサーバでは、受信したデータをデータを非カプセル化して上の階層に渡していきます。主に送信元と逆の動きをします。
リンク層では、LANケーブルから流れてきた電気信号をフレームに変換し。イーサネットヘッダとトレーラを確認し、それらを外したパケットを上位層に渡していきます。
インターネット層では、渡されたパケットのIPヘッダを確認し、それを外したセグメントを上位層に渡します。
トランスポート層では、渡されたセグメントのTCPヘッダを確認し。それを外したデータを上位層に渡します。
アプリケーション層では、HTTPヘッダを確認し最終的にデータを処理します。
以上の流れでクライアント側からWebサーバへのデータの送信が完了します。
今回はTCP/IPモデルについて紹介していきました。前回のOSI参照モデルと比較されることも多く、覚えずらいところもありますが各階層で使用されるプロトコルについてしっかり覚えていきたいですね。プロトコルの役割について覚えておけば、データの流れやエラーが起きた時に対処しやすくなると思います。僕もこのネットワークの基本はしっかり抑えた上でこれからさらにスキルアップしていきたいと思います。
次回はイーサネットLANについて紹介していきたいと思います。イーサネットLANは第1層で利用されるプロトコルで通信の入口みたいな物だと思うので抑えておきたいですね。次回もなるべくわかりやすいようにまとめていきたいと思いますのでよろしくお願いいたします。
今回はここまでです。最後まで読んでくださってありがとうございました。
エンジニアファーストの会社
株式会社CRE-CO Taisei
この記事が気に入ったらサポートをしてみませんか?