TCP/IPとは?通信プロトコルTCP/IPの基礎知識を初心者向けにわかりやすく解説
TCP/IPとは、インターネット通信の際に必要不可欠なTCPとIPを組み合わせた通信プロトコルで、数あるネットワークの中から1対1のセッションによる信頼性の高い通信を実現します。普段、私達がパソコンやスマートフォンなどでウェブサイトを閲覧できているのは、このTCP/IPのおかげです。今回は、TCP/IPそれぞれの通信の仕組みや、違いについて詳しく解説します。
TCP/IPとは?
TCP/IPは、Transmission Control Protocol/Internet Protocolの略称で、現在インターネットを含むコンピュータネットワークにおいて世界的に最も広く利用されているインターネットプロトコル(インターネット通信する上の取り決めを行なう通信規約)です。コンピュータ同士が通信する際、それぞれ通信するデータの形式や順番、エラーの対処方法といった規格や手順をお互いに把握しておくために利用されています。
TCPとIPの両方のプロトコルを利用することで、ウェブサイトの閲覧は実現します。今では当たり前のように感じますが、ひと昔前にネットワークを使用する際にはハードウェアやOSなどが同じだった場合にのみ通信することができ、異なる場合は繋がりませんでした。しかし、TCP/IPの登場によって、機器やOSが異なる場合でも共通のプロトコルを用いることで通信可能になりました。
TCP/IPには、オープン、パケット通信、エンドツーエンド、シンプルの4つの特徴があります。まず、他の規格は仕様が未公開だったり、参照に費用がかかる場合がありますが、TCP/IPは規格がシンプルで誰でも無料で使用できます。また、パケット通信はデータを複数に分割してやり取りするので、通信中に回線を占有する回線交換方式に比べても、一つの回線を複数の通信で同時に使用できるので回線の利用効率が高まります。データ転送においては、エンドツーエンドを採用しており、負担のかかる処理をコンピュータ端末で実行させることでネットワークに余計な負荷がかからず、システムの拡張性や柔軟性を向上させ、より大規模なインターネットの構築が可能となります。
また、オンライン上でデータ転送する際にパケットの再送やエラー訂正などを実行する機能を兼ね備えているため、信頼性の高い通信を行ないたい場面で利用されます。オンラインにおいて安全で効率的なデータ転送の要件を満たしていることからネットワーク・プロトコル・スイートとも呼ばれ、ウェブサイトの閲覧だけでなく、メールの送受信やオンラインゲームなど幅広い分野で利用されています。
TCPとIP:主要なプロトコル
通信プロトコルにはさまざまな種類がありますが、ここではその中でもインターネット通信において重要なプロトコルであるTCP/IPを構成するTCPとIPそれぞれについて詳しく解説します。
TCPとは?
TCPとは通信プロトコルのひとつで、日本語では「伝送制御プロトコル」とも呼ばれており、主に特定のデバイスから他のデバイスへのデータを伝送する際に安全性を重視します。TCP通信の特徴としては、通信する機器同士がお互いの送信データをその都度確認できることです。データの破損や紛失をはじめ、送信データは全て届いているかどうかなどを細かく確認しあいながら通信するので、必然的に信頼性は高くなります。また、TCPプロトコルの通信には、パケットごとに「TCPヘッダー」と呼ばれるデータ情報が付与されていますが、実はこれのおかげでデータを送受信する機器同士が互いに転送されたデータの中身をチェックすることができ、安全なデータの送受信が実現します。ただ、毎回確認するのに時間がかかる分、転送速度が遅いという特徴もあります。
IPとは?
IPとは、Internet Protocolの略称で、IPプロトコルを使用するネットワークにおいて、各コンピュータを識別するために割り当てられている番号です。IPプロトコルには、IPアドレスを用いた通信方式が実行されています。インターネット上での自分のIPアドレスは位置情報のことで、オンライン上での住所のようなイメージです。このIPプロトコルは、宛先のIPアドレスを見つけるのが主な役割で、これはネットワーク管理プロトコルであるDHCP(Dynamic Host Configuration Protocol)の仕組みによってデバイスにIPアドレスを自動的に割り当てることができています。一般的にパブリックとプライベート、静的と動的とIPアドレスにはさまざまな種類がありますが、TCP/IPはすべてのタイプのIPアドレスでも動作することができるのに加えて、ユーザーがお使いの端末でどんなインターネットプロトコルを使用している場合も、TCP/IPの一部として機能します。
TCP/IPの階層モデル
TCP/IPは通信プロトコルの集合体であり、プロトコル群とも呼ばれています。TCP/IPには4つの層があり、それぞれのルールやプロトコルが適用される特定の条件が設けられていることで、異なるデバイスやアプリ間の通信を可能にし、効率的にデータを転送できるようにしています。ここでは、TCP/IPのそれぞれの階層モデル(model)について紹介します。
アプリケーション層
最上位層であるアプリケーション層には、私達がパソコンやスマートフォンからウェブサイトを閲覧する際に利用する「HTTP(Hypertext Transfer Protocol)」や「HTTPS」、メールの送信に使われる「SMTP(Simple Mail Transfer Protocol)」など、実際にアプリを活用する際のプロトコルが含まれています。通信する各アプリのほとんどは、文字や画像、動画などの人が目で見て認識できるデータを扱っています。これらのデータの中で使われている文字コードや画像の形式、送信するデータ形式などを細かく設定することで、データを転送することができています。加えて、データの暗号化など、セキュリティ関連の仕組みに関してもこのアプリケーション層で定義されています。
トランスポート層
トランスポート層は、膨大なプログラムやネットワークが存在するインターネット上でデータを送信先まで正しく届けるための重要な役割を担っています。そして、このトランスポート層では、TCPとUDPの2種類のプロトコルが利用されています。もちろん、TCPとUDPの違いはあります。前述した通りTCPは、データを伝送する際により安全性を重視するプロトコルのことです。一方、UDP(User Datagram Protocol)は、TCPほど安全性を必要としませんが、利用速度が速くて即時性が求められるアプリでよく使用されています。具体的には、TCPはウェブサイトの閲覧やメール送受信で利用されるパケットを交互に送り続ける「コネクション型」と呼ばれる方式で、UDPの場合は音声通話や動画配信など送信側から受信側に一方的に送り続ける「コネクションレス型」、もしくは「データグラム型」方式で、用途によってどちらかの通信方法を活用します。
インターネット層
インターネット層は、複数の異なるネットワーク間でのデータパケットの移動を管理しています。TCP/IPの4階層モデルでは、IPプロトコルが利用されていますが、その中でもIPv4とIPv6と呼ばれる2種類のプロトコルがIPアドレスを管理するために活用されています。また、インターネット層のプロトコルには、IPの他にもARP(アドレス解決プロトコル)、IGMP(インターネットグループ管理プロトコル)、ICMP(インターネット制御メッセージプロトコル)などがあります。
ネットワークインターフェース層
ネットワークインターフェース層は、データ転送の最深層でデータリンク層とも呼ばれており、主に同じネットワーク内でデータを送受信するための転送を管理しています。具体的には、有線LANのEthernetや無線LANのWi-Fiのような同一ネットワークを構築する際に、目的のデバイスを識別する固有の番号であるMACアドレスを特定し、ルーターに正しく接続します。ただし、場合によっては「データの転送速度」や「直接データ転送可能な距離」や「Wi-Fiの場合の転送速度の違い」などによって細分化されます。
TCP/IP通信の仕組み
ここからはTCP/IP通信における仕組みについて説明します。
まず、TCP/IP通信を行なうには、お互いのIPアドレスを把握している必要があります。送信元のコンピュータは、オンライン上で無数にあるインターネット通信から送信相手のIPアドレスを探してデータを送信し、同様に送信元のコンピュータのIPアドレスも、この通信の返答先として利用します。その際、IPがデータを細かく分割したIPパケットにして送信先に届け、その後TCPがパケットの内容をしっかりチェックし、正しい順番にデータを組み立て直すという仕組みとなっています。このようにTCP/IPは、TCPとIPの2つを組み合わせることで、より信頼性の高い通信を実現することができます。
また、データ転送はエンドツーエンドを採用していますが、インターネット上でデータをやり取りする際に送信データが暗号化されていないと第三者によってデータを盗み見られたり、漏えいする危険性があります。この問題の解決策として、インターネット上の通信内容を暗号化するVPN(仮想プライベートネットワーク)が有効的といえます。VPNに接続することで、通信内容が暗号化されて漏えいの心配がなくなり、安全にデータを送受信することができます。
TCP/IPのソケット通信
こちらでは、TCP/IPモデルにおけるソケット通信について紹介します。
ソケットとは、プログラムとネットワークを繋げる窓口のことで、正確には各デバイスがIPアドレスをもとに相手先を特定してやりとりする際に経由する出入口のことです。このソケットを介して通信処理をプログラムするネットワークプログラミングのことをソケット通信と呼びます。
また、TCP/IPのソケット通信は、TCP/IPのトランスポート層のことで、主にプログラムの世界とTCP/IPの世界を結ぶ特別な出入口を意味し、別名ソケットインターネットとも呼ばれています。通常、ウェブやスマホのアプリを制作する際はプログラム言語を用いて開発しますが、ソケット通信の場合は、プログラムで実行される処理を各項目に分けて組み込む形で設計します。コンピュータの通信機能を使って出入口であるソケットに指示を送ると、コンピュータ同士によるデータの送信方法などを自動的にコントロールすることができるなど、ソケット通信を用いてアプリ開発を実行することができます。具体的には、ソケット通信をすることで、トランスポート層レベルのアプリ開発することができ、HTTP(ハイパーテキストトランスファープロトコル)通信よりもコンパクトな通信を使ってのデータ送信が可能になります。さらにはサーバーとクライアントが特定のポートを通じて、双方向にリアルタイムでの通信が可能になり、チャットや動画通話などに使用されます。
TCP/IPのセキュリティ
TCP/IPにはさまざまな脆弱性があることがわかっています。ここでは、TCP/IPにおけるセキュリティについて説明します。
近年、ネットワーク通信のプロトコルを統合したコード群であるTCP/IPスタックで「NAME:WRECK」と呼ばれる脆弱性をはじめ、IoTデバイス内に「Ripple20」と呼ばれる脆弱性群など、いくつもの脆弱性が発見されています。サイバー犯罪者がこれらの脆弱性を悪用してデバイスを攻撃した場合、遠隔操作や使用不能などの大規模な被害を引き起こす可能性があります。特にインフラ面や医療機関、製造業などへの影響はより深刻になることが予想され、IoTデバイスやサーバーに侵入された場合はシステム全体が混乱に陥ってしまいかねません。さらにはDDoS攻撃によって他のネットワークやデバイスも次々と被害を受けてしまう可能性もあります。DDoSとは分散型サービス拒否攻撃のことで、特定のサーバーなどの機器に一斉攻撃を仕掛けるために複数のデバイスが踏み台として利用され、真犯人の追跡を難しくするという特徴があります。この他にもTCP/IPの脆弱性を狙って、フィッシング攻撃をはじめ、ハイジャック攻撃、マルウェア攻撃、などを受けてしまう可能性があります。
しかし、ファイアウォールやセキュリティ対策ソフトなどを導入することでこれらの攻撃を防ぐことができます。まず、ファイアウォールの仕組みを簡単に説明すると、内部のネットワークやデバイスと外部のインターネット通信との間に障壁を築き、外部からの攻撃に対して保護する役割があります。同様にセキュリティ対策ソフトも外部から侵入を試みるマルウェアやウイルスからネットワークとデバイスを守り、被害を未然に防ぎます。
また、すぐに行なえる対策もあります。シンプルですが、お使いのOSやアプリを常に最新の状態にすることでサイバー攻撃を防ぐことができます。さらにはパスワードの使い回しや推測されやすいものを避けることも、初心者にでもすぐに実行できる一番の防衛対策といえ、TCP/IPの脆弱性を悪用される心配がなくなるでしょう。なお、推測されにくいパスワードの作り方のコツはこちらを参照ください。
TCP/IPとOSI参照モデルの比較
コンピュータが通信するための規格は、上記で紹介したTCP/IP4階層モデルの他に、「OSI参照モデル」と呼ばれる通信モデルがあります。OSI参照モデルは、7つの階層に分割されており、公式には関連性はありませんが、以下のように取り扱う範囲が似ているのが特徴です。
OSI参照モデル | TCP/IPモデル |
---|---|
(7層)アプリケーション層 | |
(6層)プレゼンテーション層 | (4層)アプリケーション層 |
(5層)セッション層 | |
(4層)トランスポート層 | (3層)トランスポート層 |
(3層)ネットワーク層 | (2層)インターネット層 |
(2層)データリンク層 | |
(1層)物理層 | (1層)ネットワークインターフェース層 |
まとめ
これまでインターネットを構成するTCP/IPとは、一体どのようなものなのかを初心者の方にもわかりやすいようにわかりやすく説明してきました。次々と脆弱性が見つかっていることからもわかる通り、TCP/IPはセキュリティが優れているとはいえません。被害に遭わないためにも今回説明したTCP/IPの仕組みや脆弱性を理解した上で、しっかりとしたセキュリティ対策を講じることが重要です。
中でもNordVPNのような優れたVPNアプリをお使いのデバイスに導入すると、TCP/IPプロトコルが動作している間の通信を暗号化することができるのでISPやサイバー犯罪者など外部に通信内容が漏れる心配がなくなります。さらにNordVPNは、マルウェアに感染したファイルを特定し、危険なウェブサイトへのアクセスを阻止し、トラッカーや侵入型広告をその場でブロックする脅威対策Pro機能も搭載しています。TCP/IPの脆弱性を狙うあらゆる脅威からデバイスや個人情報を保護するために、総合的なセキュリティ対策の導入を検討しましょう。