普段何気なく使っている技術や言葉について、表面的な知識にせず、しっかりとイメージできるまで自分なりに調べて整理し、理解するシリーズ。
目次
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol)は、現在のインターネット通信において最も利用されている通信プロトコルです。
TCP/IPは複数のプロトコルからなりますが、中心的な役割を果たすのがTCPとIPであることから TCP/IPと呼ばれるようになりました。
OSI参照モデルとTCP/IP階層モデル
OSI参照モデル
OSI参照モデルとはISO(国際標準化機構)が定めた異なるベンダー間で相互通信するためのネットワーク・モデルと言われる統一規格のことです。
TCP/IP階層モデル
OSI参照モデルは7階層あるのに対し、TCP/IPは4階層しかありません。
OSI参照モデルよりも実装面で効率的 かつ 現実的な仕様となっているのがTCP/IPの階層モデルです。
TCP/IPの階層モデルの各層の主な役割は次の通りです。
- アプリケーション層:利用者が使うアプリケーションが通信するためのルールを定義
- トランスポート層:データ(セグメント)を届けるための信頼性についてのルールを定義
- インターネット層:宛先のコンピュータまでデータ(パケット)をどう届けるのかについてのルールを定義
- リンク層:LANケーブルや光ケーブル、無線などにデータを流すため、ビット列を電気信号、光信号、無線などに変える
OSI参照モデルでの層名
OSI参照モデルでの層名 | 主なプロトコル | 機器 | TCP/IPでの階層名 |
アプリケーション層 | HTTP、FTP、POP、SMTP、Telnet、DNS | ゲートウェイ | アプリケーション層 |
プレゼンテーション層 | mp3、lzh、zip | ||
セッション層 | NetBIOS、PAP | ||
トランスポート層 | TCP、UDP | トランスポート層 | |
ネットワーク層 | IP、ICMP、ARP、RARP | ルータ | インターネット層 |
データリンク層 | Ethernet | スイッチ、ブリッジ | リンク層 |
物理層 | ケーブルの規格、形状 | 各種ケーブル コネクタ |
アプリケーション層
アプリケーション層は、ソフトウェアによる便利なサービスなどを付加するための機能を持っています。
具体的な機能としては、ファイルの転送、HTMLの閲覧、メールの送受信などがあります。
トランスポート層
ポート番号
アプリケーションが通信を行う際、アプリケーション毎に通信するデータの送受信を行うための出入り口が用意されています。
この出入り口を ポートといい、各ポートには ポート番号 が割り振られています。通信を行う際は、このポート番号を使って情報をやり取りします。
ポート番号には、0~65535番 まであり、この内0~1023番 までは通信サービス毎にあらかじめ予約されており、ウェルノウンポートといいます。
TCPとは
TCP (Transmission Control Protocol) は、IPの上位プロトコルのトランスポート層で動作するプロトコルです。
TCPの特徴
コネクション型プロトコル
TPCで通信を行う場合、まずは通信相手とのコネクションを確立させることで相手に通信が届いていることを確認させます。TCPにおいて使用されるコネクションの確立のことを3ウェイハンドシェイクと呼びます。
信頼性がある
TCPでデータ通信を行う場合は前述のとおり事前にコネクションを確立し、双方で送受信ができていることをその都度確認するため、データ転送プロトコルとしては非常に信頼性の高いと言えます。
重複を排除する仕組みがある
TCPでは重複を排除することで、データが1つであることを保障しています。例えば何らかの理由でデータが複数伝送された場合でも、TCPでは複数送信されたデータを除去する仕組みを持っています。
UDPとは
UDP(User Datagram Protocol)とは、IPやTCPなどと同様にインターネットにて標準的に利用されているプロトコルです。
UDPの特徴
コネクションレス型プロトコル
TCPはデータを伝送するために毎回コネクションを確立するコネクション型プロトコルですが、UDPはスピードを重視するため、TCPのように確認作業を行うことはありません。
このように、確認機能などを排除してデータ伝送のみを目的としたプロトコルはコネクションレス型プロトコルと呼ばれています。
処理が速い
UDPでは遅延を少なくするために、処理をできるだけ簡単にしています。
TCPのように送受信の確認を行わずデータを送信しても相手に届いたかどうかをチェックしないため、遅延するということがほとんどありません。
TCPとUDPとの比較
プロトコル | TCP | UDP |
通信方式 | コネクション型 | コネクションレス型 |
信頼性 | 高い | 低い |
転送速度 | 低速 | 高速 |
上位プロトコル | HTTP、Telnet、FTP、POPなど | DNS、NTP、DHCP,SNMPなど |
主な用途 | Webの閲覧、メールの送受信、ファイル転送など | 音声通話、Videoストリーミング、マルチキャスト通信など |
インターネット層
役割
インターネット層での役割は通信相手と宛先までの経路の特定です。通信における誰が誰に届けるかという重要な情報を扱っています。
また、ネットワークはコンピュータが相互に接続されているため、あるコンピュータからあるコンピュータまでの経路が複数パターン存在する場合があります。宛先までの経路が複数ある場合に、適切なルートを決定するして届けるのもネットワーク層の役割です。
IP
IPはインターネット層で中心的なやきう割を担うプロトコルでネットワーク世界における住所のようなものです。IPアドレスによってEnd to Endの通信を可能にします。
IPの特徴
パケット通信
パケット通信とは、 データをある特定の大きさに区切って伝える方法です。 宛先と発信者、何番目のデータかなどの情報(ヘッダ)を一緒につけて送ります。
コネクションレス型
コネクションレス型プロトコルでは事前にコネクションを確立しません。送信元からデータを転送しても、そのデータを通信相手が受信できるかどうかは感知しないのが特徴です。
ベストエフォート型
パケットが行き先に送られるように努力はするが、必ず到達するという保証はありません。これを補うために、IPの上でTCPというプロトコルを使い信頼性を上げています。
IPアドレス
IPアドレスにはバージョンがあり、普及しているのがIPv4です。
IPアドレス(IPv4)の構成:172.1(←ネットワーク部) .2.3(←ホスト部)
ただIPアドレス枯渇問題でIPv4(43億)では割り当てることができるIPアドレスに限界がきており、現在はIPv6(340澗)の普及が進んでいます。
ARP
ARPはIPアドレスに紐づくMACアドレスを調べるためのプロトコルです。このIPアドレスからMACアドレスを調査する一連の処理をアドレス解決と呼びます。
APRに対して知りたいMACアドレスをIPアドレスを元に依頼し、ブロードキャストを通してMACアドレスを調べてもらうイメージです。
また、何度もブロードキャストされることを防ぐために、ARPテーブルが使われます。
リンク層(ネットワークインタフェース層)
リンク層はOSI参照モデルのデータリンク層と物理層とを組み合わせたものです。
データリンク層
直結した端末同士での、電気信号の伝送制御、誤り検出、再送要求などの機能を持っています。トランスポート層と類似した役割ですが、こちらはより物理的な部分でデータというよりも電気信号そのものを扱います。
物理層
直接接続された機器や端末において、電気信号を届けるための各種機能を扱っています。
プロトコルとしては、接続するケーブルの形状やコネクタの種類などにあたります。広義の意味では、電柱を伝っている電線や光ファイバーなどもここに位置します。
イーサネット
イーサネットは データリンク層と物理層で使用されているプロトコルです。
イーサネットではインターネット層から受け取ったパケットに以下の情報を付加することによってフレームを作成します。
- プリアンブル : 受信側にフレームを 受け取る準備 をさせ、フレームが 始まることを示す値
- イーサネットヘッダー : 宛先と送信元の MACアドレスなどが記載される
- FCS : フレームが破損していないかをチェックするための値
MACアドレス
MACアドレスは物理アドレスとも呼ばれ、ネットワーク機器それぞれに、製造段階で割り当てられる装置固有の12桁の識別番号です。
インターネットなどのネットワークにおいて、コンピューター同士が通信を行う際、通信相手を特定するためにMACアドレスを利用します。
参考
クライアントとサーバー|ヒヨコでもわかる TCP/IP 入門
TCPとUDPの主な特徴6つ|代表的なポート番号や使い分ける方法も紹介 | テックマガジン from FEnetインフラ
TCP/IPの概要 | ネットワークアーキテクチャ | ネットワークのおべんきょしませんか?