OSIモデル
OSIモデルとは
OSI(Open Systems Interconnection)モデルは、ネットワーク通信のプロトコルを階層的に分類した標準的なモデルです。OSIは7つの階層から構成されています。
OSIモデル一覧
Lv | 層 | 説明 | 例 |
---|---|---|---|
7 | アプリケーション層 | 最上位の層で、ユーザーが直接触れる通信を提供 | HTTP、FTP、SMTP |
6 | プレゼンテーション層 | データ形式を管理し、暗号化、圧縮、表現形式の変換 | HTML |
5 | セッション層 | PC間の通信を確立、維持、終了の手順を管理 | HTTPS |
4 | トランスポート層 | パケット管理、エラー・フロー制御、エンドツーエンド通信 | TCP,UDP |
3 | ネットワーク層 | パケットのルーティングや転送を管理 | IPアドレス |
2 | データリンク層 | ネットワーク上の直接的な接続を管理 | MACアドレス |
1 | 物理層 | ネットワークの物理的な接続や伝送手段 | ケーブル、電波など |
HTTPプロトコル
WebとURL
普段何気なく利用しているSNS、ショッピング決済、検索サイトは Webブラウザで様々なデータを送受信しています。 ユーザ(利用者)は Webブラウザやスマホアプリを利用して、インターネット上のWebサーバに URL でアクセスします。
URLのルール
Web通信で必須のURLを分解すると 「プロトコル」「ホスト名」「ポート番号」 に大きく分けられます。ホスト名はインターネットではドメインとして利用されます。
プロトコルとドメインの間は :// で区切り、その他の / はフォルダと決められています。
プロトコル
Webシステムの開発では、Webブラウザ(クライアント)とWebサーバ(サーバ)の通信プロトコルというルールで決まっています。主なプロトコルは、 「HTTP」と「HTTPS」プロトコルがあります。
HTTP プロトコル
HTTPプロトコルは「Hypertext Transfer Protocol」の略で、http でブラウザやスマホからWebサーバと通信します。
HTTPS プロトコル
HTTPSプロトコルは「Hypertext Transfer Protocol Secure」の略で、http と基本的に同じですが、暗号化された通信です。例えば、GoogleのURLは 「https://www.google.com」でアクセスします。
ドメイン
ドメインとは
ドメインはインターネット上の住所で、Webサーバを特定するための文字列です。例えばGoogleのドメイン「google.com」は世界で1つしかないURLで、ブラウザにドメインを入力するとGoogleのWebページにアクセスできます。
グローバルIPアドレス
グローバルIPアドレスはインターネット上で世界で1つだけのIPアドレスです。ドメインでWebサーバに接続すると、内部的にはグローバルIPアドレスで通信しています。 Webページをインターネットに公開するには、グローバルIPアドレスとドメインの取得は必須です。
DNS(ドメインネームサーバ)
DNS(ドメインネームサーバ) はグローバルIPアドレスとドメインを紐づける情報サーバで、世界中に配置されています。クライアントがドメインでアクセスすると、DNSがグローバルIPアドレスを特定してサーバに接続します。
グローバルIPの取得
グローバルIPは通常、AWS、GCP、Azure といった外資系のクラウドサービスや、さくらインターネット、GMOなどの国内クラウドサービスなどで取得できます。ただ、あまり安いサービスだとグローバルIPを共用で使うこともあるので、注意が必要です。
グローバルIPアドレスが変更になった場合
将来、サーバの移行や故障などでグローバルIPアドレスが変わっても、DNSにグローバルIPアドレスを再登録すれば大きな影響はありません。
ドメインの取得
ドメインはレジストラというドメイン管理の業者を通じて取得します。レジストラは「AWS Route53」「Google Domain」「お名前.com」など数多く存在します。
AWS Route53
Google Domain
お名前.com
ホスト
ホストとは
ホスト(host)はインターネット通信しなくても名前でPCを特定できる仕組みで、ホスト(hostname)の名前をホスト名といいます。ローカルネットワークであればドメインがなくても、ホストでアクセスできます。
localhost
自分PCのホスト名でよく利用されるのがlocalhost(ローカルホスト) です。自分のPCにWebサーバを起動していれば、http://localhostでアクセスできます。
ポート番号
ポート番号とは
ポート番号は、さまざまなネットワーク通信に対応するための番号(1〜65535)です。同じIPアドレス接続でもポート番号が違えば別通信になります。Web通信ではHTTPプロトコルが「80」、HTTPSプロトコル「443」となっています。
主なポート番号
ポート番号 | TCP/UDP | プロトコル | 説明 |
---|---|---|---|
80 | TCP | http | デフォルトのWeb通信 |
443 | TCP | https | セキュアなWeb通信 |
22 | TCP | ssh | セキュアなコンソール通信 |
25 | TCP | smtp | SMTPメール送信 |
110 | TCP | pop3 | POPメール受信 |
ブラウザのポート番号は省略
ブラウザの正式なURLは以下の通りですが、ポート番号 80、443 はデフォルトの設定なので通常省略します。
http://www.google.com:80
https://www.google.com:443
ポート番号のカスタマイズ
またポート番号はカスタマイズすることができます。例えば、開発で複数のWebサーバを利用したい時に 88 や 8080 といった任意のポート番号を設定することができます。
http://localhost:88
http://localhost:8080
TCPとUDPの違い
TCP (Transmission Control Protocol)とUDP(User Datagram Protocol)はともにネットワーク通信のポート番号を管理するプロトコルです。TCPはデータを確実に送信できることを確保し、UDPはTCPより高速データ通信が可能ですがエラー発生しやすくなります。
プロトコル | 方式 | 特徴 |
---|---|---|
TCP | 1対1 | 安全性重視の通信 |
UDP | 1対多 | スピード重視の通信 |
演習
問題1
https://google.com/ でプロトコルはどれですか?
1)https
2)google.com
3)google
4)/
問題2
世界で1つだけのIPアドレスを何といいますか?
1)グローバルIPアドレス
2)ローカルIPアドレス
3)ホスト
4)ドメイン
問題3
インターネット通信しなくても名前でPCを特定できる仕組みを何といいますか?
1)グローバルIPアドレス
2)ローカルIPアドレス
3)ホスト
4)ドメイン
問題3
HTTPプロトコルのポート番号は何番ですか?
1)80
2)443
3)22
4)25
問題4
HTTPSプロトコルのポート番号は何番ですか?
1)80
2)443
3)22
4)25