【ネットワーク】インターネット・プロトコル・スイート

本日は、ネットワーク編として、
インターネット・プロトコル・スイート
についてです。

インターネット・プロトコル・スイート

インターネットにで情報の通信を行うために取り決められているルールのことです。
TCP/IPともいわれます。

これは、4つのレイヤーからなり、

第4層:アプリケーションレイヤー
第3層:トランスポートレイヤー
第2層:インターネットレイヤー
第1層:リンクレイヤー

となります。
この各レイヤーでそれぞれの役割を持っており、このプロトコルが連携することで通信機能を果たす。

第4層:アプリケーションレイヤー

HTTP、FTP、SMTP、SSHなどのユーザーが使用するサービスのこと

第3層:トランスポートレイヤー

受信確認や再送要求確認、エラーチェックのある信頼性重視のTCPと、信頼性よりも速度重視のUDPが主たる通信方式です、
UDPは、ストリーミングサービスなどの送りっぱなしで問題ない通信に用いられることが多いです。

第2層:インターネットレイヤー

IP、インターネット上での経路選択

第1層:リンクレイヤー

イーサネットやWi-Fiなどの通信規格のこと。

似ている概念で、OSI参照モデルというのがあります。
これもTCP/IPのレイヤーと似ているのですが、厳密には違うため分けて考えます

第7層:アプリケーションレイヤー
第6層:プレゼンテーションレイヤー
第5層:セッションレイヤー
第4層:トランスポートレイヤー
第3層:ネットワークレイヤー
第2層:データリンクレイヤー
第1層:物理レイヤー

このOSI参照モデルは、例えばロードバランサーの種類でも出てきます。
よくL4のロードバランサー、L7のロードバランサーという言い方をしますが、

L4・・・トランスポートレイヤーの機能を有するロードバランサー。
リクエスト元のIPアドレス、ポート番号での振り分けをするもの。

L7・・・アプリケーションレイヤーの機能を有するロードバランサー。
IPアドレス、ポート番号に加え、CookieやURLなどのHTTPヘッダーの内容で振り分けが可能な頭のいいロードバランサー。
例えば、特定のURLでのリクエストのときに特定のサーバーに振り分けを行いたい場合は、L7のロードバランサーを使わないと純粋な分散はできない。
※厳密には、L4のロードバランサーで振り分けをして、Nginxなどのプロキシで振り分けをし直すなどできるらしい。。。

リクエストIPアドレス

ロードバランサーを通した場合、REMOTE ADDR のIPアドレスがロードバランサーのIPアドレスになります。
※オリジンのWebサーバーではなく。
多くのロードバランサーでは、元のREMOTE ADDR を「X-Forwarded-For」ヘッダーとして、オリジンサーバーにリクエストを行います。

今日はこのへんで!

用語

REMOTE ADDR

アクセス元のIPアドレスのこと。ネットワークレイヤーの情報。
確認方法は、ブラウザの開発者ツール、「Network」タブから確認できる。
ただし、途中にプロキシサーバーやロードバランサーが入っているとそのIPアドレスが表示される。

X-Forwarded-For

HTTPヘッダの一つで、ロードバランサーやプロキシを経由するとオリジンサーバーのIPアドレスがわからなくなってしまう。
その対策として送信元を判別するために利用。アプリケーションレイヤーの情報。

Leave a Reply

Your email address will not be published. Required fields are marked *