見出し画像

ネットワークはなぜつながるのか

今回は、「ネットワークはなぜつながるのか」のレビューをしていこうと思います。


手に取った理由

Webエンジニアを目指すにあたり、ネットワークに関しての知識を増やしたいと思ったからです。プログラミングやWebに関して学習していると、ふと疑問に思う仕組みや意味の分からない用語がいくつも出てきていました。基礎?知識は身につけなければと、思い本書籍を手に取りました。

書籍の内容

本書籍では、Webを利用する際に実際に我々(クライアント)が何かWeb上のリソースにアクセスして、Webページが表示されるまでの仕組みを流れに沿って解説されています。具体的には以下の通りです。

  1. Webブラウザ(リクエスト)

  2. TCP/IP(プロトコル・スタック、LANアダプタ)

  3. LAN(ハブ、スイッチ、ルーター)

  4. アクセス回線、プロバイダ

  5. サーバー側のLAN(ファイアーウォール、キャッシュサーバー)

  6. Webサーバー(レスポンス)

Webブラウザ

ここでは、主にクライアントがWeb上のリソースにアクセスしたときにブラウザが最初に何をするのか、どんな仕事をしているかが解説されています。
ブラウザはまず、アクセスしたURLを解読します。それをもとにリクエストメッセージを作し、送信を試みます。この際に、どこに送信すればよいかをDNSサーバーに問い合わせます。ここで送信先であるIPアドレスを入手しプロトコルスタックに送信を依頼して最初の仕事は終了です。

特にDNSサーバーの働きが面白かったです。まったくわからないIPアドレスをDNSサーバがどのようにして見つけてくるのか、なぜ見つけることができるのか、そのようなWebの仕組みを知ることができました。

TCP/IP

ここでは、主にプロトコルスタックとLANアダプタの働きについて知ることができます。つまり送信するデータをパケットに格納がネットワークに入っていく仕組みと流れが解説されています。
まず、プロトコルスタックの内部にはTCPとUDPがあり、その下にIPがあります。TCP、UDPでパケットに送信を行い、IPで送信先の特定を行います。

ここで出てきた説明は、プロトコルスタック?から始まり、出てくる用語がほとんど所見の内容でした。ここで理解でき内容は、

  1. データの送受信を行うのがプロトコルスタックで、その内部にTCP,UDPとIPが備わっている。

  2. TCP,UDPはデータの送受信の安全性を確保しており、宛先まで届くことは保証されていない。

  3. 宛先までデータを届けることを保証しているのがIPである。IPアドレスをもとに宛先を探しているのがIP。

LAN(ハブ、スイッチ、ルーター)

ここでは、データが送信されてからインターネットの中に入っていくまでの道中で起きていることを知ることができます。ハブやルーターはよく耳にすると思います。ではこれらの機器がどのような働きをしているのかは知る由もありませんでした。
送信されたデータのうちほとんどは、長い長い道のりを経てサーバーに届きます。データというのは信号(波)によって送られていくので、途中で弱くなったりします。また複数のLAN機器を仲介するので、都度都度行き先を確認しながら目的地まで進んでいかなければいけません。
そこで、データを正確に届けるための各LAN機器の働きを知ることができます。

ここで解説されているのは、送信されているデータが弱くならない工夫であったり、仲介されているLAN機器の働き(仕組み)です。機器の仕組みの解説のように感じますが、広義な意味ではWeb技術といえる?のかと思いました。ただあるに越したことのない知識ではあるのと同時に、身近にあるものの内容なので読んでいて面白かったです。

アクセス回線、プロバイダ

ここでは、いよいよインターネットの内部の話になります。アクセス回線を用いて運ばれプロバイダのルーターにつながります。そこから複数のプロバイダを中継し、サーバーの最寄りのルーターに到達します。ルーター間でパケットを運ぶ仕組みは基本的に家庭や会社用のルーターと同じ仕組みで運ばれます。
アクセス回線に関しては、電話回線の方式を用いたADSL技術の回線と光ファイバを用いた回線があります。それらの仕様が解説されています。

アクセス回線という言葉だけ聞いたことがありました。携帯電話の通信とかでよく聞く言葉だと思います。今までなんとなく聞いていたものを具体的に学ぶことができたことと、インターネットの内部で、どのようにこの広い世界をデータが行き来しているのかを知ることができました。

サーバー側のLAN

さて、いよいよサーバーに近づいてきました。ここではサーバーの最寄りのLANまで到達しますが、その際にどのようなことが起きているのかが解説されています。
まずはセキュリティであるファイアーウォールです。サーバーには多くのリクエストが送られてきます。中にはウイルスをもったデータなど受け取りたくないものもあります。なのでフィルタリングによる選別を行います。どのようにしてフィルタリングをするのか、なぜそのような条件にするのか、などの設計の目線に立った解説がされています。
次に考えるのが大量のアクセスに対する処理です。サーバーは短時間に多くのリクエストが流れてくるので、効率よく処理をしていく必要があります。そのためにつかうのがキャッシュです。サーバーにキャッシュデータがあれば同じクライアントからのリクエストを一から処理する必要がなくなり、その分負荷を軽くすることができます。

セキュリティの考え方を知ることができました。インターネットには様々なセキュリティがありますが、サーバーのファイアーウォールの仕組みが頭に入ったことは自分にとってとても価値のあるものだと感じました。その仕組みも案外単純なフィルタリング機能であったことも興味深いものでした。

Webサーバー

ついにサーバーにたどり着きました。送られてきたパケットの中身をもとにリクエストメッセージを復元します。その後サーバーのアプリケーションに渡されますが、この働きもリクエストの際と同様にプロトコルスタックが行います。そしてサーバーはレスポンスメッセージを作成し送信します。以降の流れは、これまでの流れの逆になります。

レスポンス作成後のデータ送信手順はリクエストの際とほぼ同じですが、サーバーはまずリクエストを待たなければいけません。そのために、サーバー側がどのような準備をしているのかを具体的に知ることができました。バックエンドのプログラムを組む際に必須の知識になると感じたので、学ぶ機会があったらまた見返して読んでみようと思います。

感想

直感的にわかりやすい内容もありますが、ほとんどが機械の内部で行われているものなので理解が難しい内容でした。しかし、具体的で専門的な説明の後に単純な例を用いてかなりかみ砕いて解説されているので、業界知識0の自分でもとても理解しやすかったです。
大雑把な流れから、各機器の細かい仕様まで丁寧に書かれているため、もう一度読み返すとより深く理解できるのだろうと感じました。とてもお勧めできる良本でした。

最後までご愛読ありがとうございました。


いいなと思ったら応援しよう!