IT用語

ネットワークがつながるまでの流れを図解してみた

takahide

おはようございます。タカヒデです。

ネットワークって難しいですよね。

教科書みたいな参考書を読んでもなかなか理解できないもの。

私も何冊か本を読んだり、資格勉強をしてしましたが、いまいち頭に定着しません。

そこで本日は「ネットワークがつながるまでの流れを図解してみる」ことで私の頭に定着させよう。
そして、この記事を読んだ人も理解してWin-Winになろう。

そんな記事です。

細かなところまで図解するつもりはなく、ざっと全体像がイメージできれば良いかと思っています。

ぜひ、ネットワークの勉強をし始めた人は参考にしてみてください。

ネットワークがつながるまでの全体像

ではさっそく、まずはネットワークがつながるまでの流れを全体像で見てみます。

流れをSTEPにしてみるとこんな感じです。

  1. PCがルータ―内のDHCPからIPアドレスを取得
  2. DNSにURLのIPアドレスを確認する
  3. PCがパケットに分割してWebサーバーにリクエストを送る
  4. ルーターを経由してインターネットに送信される
  5. ファイアウォールで通信してよいかチェックする
  6. Webサーバーがリクエストを受け取りレスポンスを返す
  7. PCがレスポンスを受け取りブラウザで画面に表示する

どうでしょう?イメージできそうですか?

実際にはそれぞれのSTEPはさらに細分化され、もっと細かなことをしています。

いきなりそんな細かなところを見ても理解できない(私も理解していない)のでまずは大まかな流れを見ていきます。

ではこれから一つ一つのSTEPを細かく見ていきましょう。

それぞれの用語を抑えておこう

と、その前に、全体像のなかでよく分からない用語がいくつか出てきましたね。

先に用語の意味を超簡単に理解しておきましょう。

①IPアドレス

機器ごとに割り当てられる、通信相手を特定する番号のことです。

よく「ネットワーク上の住所のようなもの」として例えられます。

具体的には「192.168.1.1」こんな番号を指しています。

②DHCP

ネットワークに接続した機器にIPアドレスを自動で割り当てる仕組みのことです。

通常はルーターにDHCPの機能が割り当てられており、私たちが手動で設定しなくても、Wi-Fiにつなぐだけでネットが使えるようになります。

③ルーター

ネットワーク同士をつなぎ、データを適切な場所へ送る役割を持つ機器のことです。

家の固定回線でインターネットを使っている方は、Wi-Fiルーターにこのような機能が備わっています。

④DNS

ドメイン名とIPアドレスを対応付ける仕組みのことです。

「172.217.32.0/20」このようなIPアドレスでは人が覚えることが難しいので、「https://www.google.com/」というドメイン名にしています。

このIPアドレスとドメイン名の変換を行うものです。

⑤ファイアウォール

外部からの通信を監視し、安全なものだけを通すセキュリティ機能のことです。

送信元や通信内容をチェックし、不正アクセスを防ぎます。

⑥サーバー

Webサイトやデータを保管し、リクエストに応じて情報を提供するコンピュータです。

ブラウザからの要求を受け取り、ページや画像などを返します。

ネットワークがつながる流れを7STEPにまとめてみた

ではネットワークがつながるまでの流れをSTEP形式でもう少し細かく見てみましょう。

STEP1:PCがルータ―内のDHCPからIPアドレスを取得

STEP1では、「PCがルータ―内のDHCPからIPアドレスを取得」します。

PCがネットワークに接続すると、まず自分を識別するための「IPアドレス」を取得しなければいけません。

この役割を担うのが「DHCP」です。

一般的には家の中にある「ルーター」がDHCPサーバーとして動作し、接続してきたPCに対して自動でIPアドレスを割り当てます。

ルーターっていうのはこんなやつですね。
あなたの家にもおいていませんか?

これによって、自分で面倒な設定を行うことなく、Wi-Fiに接続するだけでネットを利用できるようになるわけですね。

もしDHCPがなければ、IPアドレスを手動で設定する必要があり、初心者には非常にハードルが高くなります。

STEP2:DNSにURLのIPアドレスを確認する

STEP2では、「DNSにURLのIPアドレスを確認」します。

インターネットでWebサイトにアクセスしようとすると、「https://www.google.com/」のURLにアクセスしますよね。

「https://www」は省略されていますがこんな感じ。

もうちょっと具体的にいうと、検索画面から「Google」とかのキーワードを調べてURLにアクセスしていくわけです。

しかし、ネットワーク上では、すべてIPアドレスで通信が行われます。

つまり、ユーザーがブラウザに「https://www.google.com/」のようなURLを入力しても、そのままでは通信できないのです。

ではどうするか?

「https://www.google.com/」→「172.217.32.0/20」こんな感じでURL(ドメイン)をIPアドレスに紐づける必要があるんですね。

そこで登場するのがDNSです。

DNSは「ドメイン名」と「IPアドレス」を対応付けてくれます。

PCはまずDNSサーバーに対して「このURLのIPアドレスは何か?」と問い合わせを行い、その結果を受け取ることでIPアドレスを確認できます。

STEP3:PCがパケットに分割してWebサーバーにリクエストを送る

STEP3では、「PCがパケットに分割してWebサーバーにリクエストを送信」します。

さて、STEP②でIPアドレスを知ったので、次は「https://www.google.com/」のWebサーバーにリクエストを送りましょう。

このとき、データはそのままの形で送られるわけではありません、「パケット」と呼ばれる小さな単位に分割して通信を行います。

インターネットを使ったことがあれば一度は聞いたことがあるのではないでしょうか?

このパケットを分割するのは、大きなデータが途中で破損したり、通信効率が悪くなることを防ぐためです。

バラバラに分割されたパケットを、最終的に正しい順番で再構築することでデータを送信できるわけですね。

STEP4:ルーターを経由してインターネットに送信される

STEP4では、「ルーターを経由してインターネットに送信」されます。

PCから送信されたパケットは、まずルーターに到達します。

そして、ルーターは「どこにデータを送るべきか」を判断し、適切な経路へ転送する役割を持っています。

家庭内のルーターから次のルーターに、そしてそのまた次のルーターにバケツリレーをしていくことで目的のサーバーまでパケットを届けます。

STEP5:ファイアウォールで通信してよいかチェックする

STEP5では、「ファイアウォールで通信してよいかチェック」します。

さあ、ルーターを経由して、サーバーはもう目の前です。

しかしすぐにはサーバーに到達することはできません。

インターネットを通ってサーバーに到達する前に、ファイアウォールによって「通信して良いか」をチェックされます。

安全な通信は通行を許可し、不正なアクセスや不要な通信は遮断されます。

もう少し具体的に言うと、送信元のIPアドレスやポート番号、通信の種類などを確認し、許可された通信のみを通過させます。

これによってセキュリティが守られているわけですね。

STEP6:Webサーバーがリクエストを受け取りレスポンスを返す

STEP6では、「Webサーバーがリクエストを受け取りレスポンス」を返します。

ようやくWebサーバーにリクエストが到達しました。
長い道のりでしたね。

こんなイメージのWebサーバーまで届いたわけです。

Webサーバーはリクエストを受け取り、対応するHTMLファイルやデータベースの情報を取得し、結果をまとめてPCにレスポンスとして返します。

STEP7:PCがレスポンスを受け取りブラウザで画面に表示する

STEP7では、「PCがレスポンスを受け取りブラウザで画面に表示」します。

長かったネットワークがつながる流れもこれが最後です。

サーバーから返ってきたレスポンスは、再びインターネットとルーターを経由してPCに届きます。

PCは受け取ったパケットを元のデータに復元し、それをブラウザに渡します。

あなたが今見ている、Chrome/Edge/Firefox/Safariなどがブラウザですね。

ブラウザはHTMLを解析してページの構造を作り、CSSで見た目を整え、JavaScriptで動きを加えます。

これでようやく「https://www.google.com/」の画面が表示されました。

長かったですね…

私たちが見ているWebサイトも過去にこれだけの技術を開発した人のおかげで快適に閲覧できているわけですね。

まとめ

以上が、「ネットワークがつながるまでの流れを図解してみる」という記事です。

まとめ
  1. PCがルータ―内のDHCPからIPアドレスを取得
  2. DNSにURLのIPアドレスを確認する
  3. PCがパケットに分割してWebサーバーにリクエストを送る
  4. ルーターを経由してインターネットに送信される
  5. ファイアウォールで通信してよいかチェックする
  6. Webサーバーがリクエストを受け取りレスポンスを返す
  7. PCがレスポンスを受け取りブラウザで画面に表示する

何となくイメージできましたか?

ぼやっとでも全体像を知っておくことで、より詳細な知識を入れる際にイメージしやすくなると思います。

今はよく分からなくても、「あっなんか聞いたことあるなー」って少しでもなっていただけると幸いです。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代
非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中
IT初心者が楽しいと思えるように発信することを目指しています
↓Xもやっているのでフォローしてね
記事URLをコピーしました