ネットワークにおけるプロトコルとは、データのフォーマットや処理に関する標準化されたルールのことです。プロトコルを使用することで、コンピュータ同士の通信が可能にります。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
ネットワークにおけるプロトコルとは、データのフォーマットと処理の一連のルールのことです。ネットワークプロトコルは、コンピュータの共通言語のようなものです。ネットワーク内のコンピュータは、ソフトウェアやハードウェアが大きく異なっていても、プロトコルを使用することで、相互に通信することができます。
標準化されたプロトコルは、コンピュータが使用できる共通言語のようなもので、世界の異なる地域から来た2人がお互いの母国語を理解できなくても、共通の第3の言語を使ってコミュニケーションをとることができるようなものです。1台のコンピュータがインターネットプロトコル(IP)を使用し、2台目のコンピュータも同様にそれを使用すれば、2台のコンピュータは通信することができます。これは、国連が6か国の公用語を使って世界中の代表者間のコミュニケーションを図っているのと同じです。しかし、一方のコンピュータがIPを使用し、もう一方のコンピュータがこのプロトコルを知らない場合、両者は通信することができません。
インターネットでは、処理の種類に応じてさまざまなプロトコルが存在します。プロトコルは多くの場合、OSI 参照モデルのどのレイヤーに属しているかという観点から議論されます。
Open Systems Interconnection(OSI)参照モデルは、インターネットの仕組みを抽象的に表現したものです。7つのレイヤーがあり、各レイヤーはネットワーク機能の異なるカテゴリーを表しています。
これらのネットワーク機能を実現するのがプロトコルです。例えば、インターネットプロトコル(IP)は、データをルーティングする役割を担っており、データパケット*がどこから来て、何の目的であるかを示します。IPはネットワーク間の通信を可能にします。そのため、IPはネットワーク層(レイヤー3)のプロトコルと考えられます。
別の例として、Transmission Control Protocol(TCP)は、ネットワーク上でデータパケット転送がスムーズに行われるようにします。そのため、TCPはトランスポート層(レイヤー4)のプロトコルと考えられます。
*パケットはデータの小片で、ネットワーク上で転送されるデータはすべてパケットに分けられます。
前述の通り、IPはルーティングの役割を担うネットワーク層のプロトコルです。しかし、ネットワーク層のプロトコルはIPだけではありません。
IPsec: インターネットプロトコルセキュリティ(IPsec)は、仮想プライベートネットワーク(VPN)上で、暗号化、認証されたIP接続を確立します。技術的には、IPsecはプロトコルではなく、暗号ペイロード(ESP)、認証ヘッダ(AH)、セキュリティアソシエーション(SA)を含むプロトコルの集合体です。
ICMP: インターネット制御メッセージプロトコル(ICMP)は、エラーを報告し、ステータスの更新を行います。例えば、ルーターがパケットを配信できない場合、ルーターはパケットの送信元にICMPメッセージを送り返します。
IGMP: インターネットグループ管理プロトコル(IGMP)は、1対多のネットワーク接続を確立します。IGMPは、マルチキャスト通信の確立役立ちます。これは、1つのIPアドレスから発信されたデータパケットを複数のコンピュータが受信できるようするものです。
知っておきたい重要なプロトコルをいくつかご紹介します。
TCP: 前述の通り、TCPは信頼性の高いデータ転送を実現するトランスポート層のプロトコルです。TCPはIPと併用することを前提としており、多くの場合この2つのプロトコルをまとめてTCP/IPとして参照されます。
HTTP: Hypertext Transfer Protocol(HTTP) は、ほとんどのユーザーが利用しているインターネットであるWorld Wide Webの基盤となっています。デバイス間のデータ転送に使用されています。HTTPは、アプリケーション層(レイヤー7)に属しています。これは、データをアプリケーション(ブラウザなど)が解釈を加えずに直接使用できる形式にするためです。OSI 参照モデルの下位層は、アプリケーションではなく、コンピュータのオペレーティングシステムによって処理されます。
HTTPS: HTTPの問題点は、暗号化されていないことです。HTTPメッセージを傍受した攻撃者は誰でもその内容を読むことができます。HTTPS(HTTP Secure)は、HTTPメッセージを暗号化することでこの問題を修正します。
TLS/SSL: Transport Layer Security(TLS)は、HTTPS が暗号化に使用するプロトコルです。TLSはかつてSecure Sockets Layer(SSL) と呼ばれていました。
UDP:User Datagram Protocol (UDP) は、TCPよりも高速ではあるが信頼性が低いトランスポート層のプロトコルです。ビデオストリーミングやゲームなど、高速なデータ配信が求められるサービスでよく使用されています。
ネットワークルーターは、特定のプロトコルを使用して、他のルーターへの最も効率的なネットワーク パスを見つけ出します。これらのプロトコルはユーザーデータの転送には使用されません。ネットワークルーティングで重要なプロトコルには以下のものがあります。
BGP: Border Gateway Protocol(BGP) は、ネットワークが管理するIPアドレスをブロードキャストするために使用するアプリケーション層のプロトコルです。この情報をもとに、ルーターはデータパケットが目的地に到達するまでにどのネットワークを経由すべきかを決定します。
EIGRP: Enhanced Interior Gateway Routing Protocol(EIGRP)は、ルーター間の距離を特定します。EIGRPは、各ルーターの最適なルートのレコード(ルーティングテーブルと呼ばれる)を自動的に更新し、その更新をネットワーク内の他のルーターにブロードキャストします。
OSPF: Open Shortest Path First(OSPF)プロトコルは、距離や帯域幅などのさまざまな要素に基づいて、最も効率的なネットワークルートを算出します。
RIP: Routing Information Protocol(RIP)は、ルーター間の距離を特定する古いルーティングプロトコルです。RIPはアプリケーション層のプロトコルです。
コンピュータのあらゆる側面と同様に、攻撃者はネットワークプロトコルの機能を悪用して、システムを危険にさらしたり、過負荷状態にすることができます。このようなプロトコルの多くは、分散サービス妨害(DDoS)の攻撃に使用されます。例えば、SYNフラッド攻撃では、攻撃者はTCPプロトコルの仕組みを利用します。攻撃者はサーバーとのTCPハンドシェイク開始しするSYNパケットを繰り返し送信して、偽のTCP接続によってすべてのサーバーリソースが拘束され、正当なユーザーにサービスを提供できなくなるまで攻撃します。
Cloudflareでは、このようなサイバー攻撃やその他のサイバー攻撃を阻止するために、さまざまなソリューションを提供しています。 Cloudflare Magic Transitは、OSI 参照モデルのレイヤー3、4、7に対する攻撃を軽減することができます。SYNフラッド攻撃の例では、Cloudflareがサーバに代わってTCPハンドシェイクプロセスを処理することで、サーバのリソースがオープンなTCPコネクションで過負荷状態になることはありません。