ネットワークとは、Net+Workの合成語で2台以上のコンピュータを接続し、互いに通信できることであり、最近ではスマートフォン、ノートパソコン、IPTV、ロボットクリーナーなどインターネットに接続される様々な機器が相互に接続して情報をやり取りすることも 含んでいると申し上げました。
そしてプロトコルとは、送信するデータの内容をそのまま保存し、受信者と送信者が同じ内容を受け取るための約束されたデータの形式です。このプロトコルはネットワークにとって最も重要な概念とも言われました。今日はこのプロトコルについて一緒に調べたいと思います。
URLは私たちがよく使う言葉です。それだけおなじみの概念でもあります。私たちがアドレスバーに入力するWebページのアドレスはURLです。URLはUniform Resource Locatorの略で、Webを使用している人が望むリソースを正確に見つけることができるように、区別できる固有のアドレスを意味します。URLはそれなりの作成ルールがあります。その作成規則も一緒に見てみましょう。
まず、URLの先頭にはそのリソースを得るための通信規約、プロトコルが来るようになります。私たちが検索するときによく見るhttpまたはhttpsはWeb通信規約であるため、一番前に来ることになるのです。もしWeb以外のリソースにアクセスするなら、メールを送受信するときはmailto、ファイル転送にはftpを使うことになるでしょう。
http または https の後には、ホストアドレスが表示されます。ホストアドレス(hostname)は、私たちがアクセスするサーバーコンピュータのアドレスを意味します。もともとはこの部分にIPアドレスが入るのが正しいですが、IPアドレスをすべて覚えにくいので代わりに文字型のドメインを使用しています。その後はポート番号が来ます。ポートはWebサーバー内の特定のリソースにアクセスするための関門であり、このポートを使用してのみ通信できます。しかし、私たちが通常Googleやネイバーを検索するときは、ポート番号を入力しなくても接続が可能です。その理由は、デフォルトでプロトコルが持つデフォルトのポート番号が自動的に適用されるためです。最後に、そのリソースの具体的な位置が入るパス(path)、次のパラメータ(parameter)が出てくるようになります。
URLの構造を説明するとき、IPアドレスが入るのが正しいのですが、IPアドレスをすべて覚えにくいので、代わりに文字型のドメイン(domain)を使用していると言いました。
インターネット通信可能なデバイスには、それぞれ識別できる特別な番号IPアドレスがあります。Webサーバーにアクセスするには必須ですが、現実的にすべてのIPアドレスを覚えて入力することは困難です。そのため、IPアドレスを知らなくてもWebサイトにアクセスできるようにするためにドメインができました。
私たちがよく知っているwww.naver.com、www.whatap.io、www.google.comなどが代表的なドメインです。
それでは、DNS(Domain Name System)とは何ですか? DNSは、ドメインとIPアドレスを相互に変換する役割を果たすシステムです。そして、このような変換システムを運営するサーバーをDNSサーバーあるいはネームサーバーといいます。このDNSのおかげでドメインを利用してもIPアドレスに自動的に変更されるため、ネットワーク通信においてDNSは非常に重要な役割を果たしています。
インターネットの通信方式は2つの主体によってなされる。それはクライアントとサーバーです。 クライアントが特定の情報をサーバーに要求すると、サーバーが要求した情報を見つけてクライアントに渡してくれるのです。しかし、要求が毎回1つだけ入ってくるわけではないので、サーバーも1つだけではありません。そのため、特定のアドレスを割り当て、そのアドレスを介して通信を行うことになります。この特定のアドレスはIP(Internet Protocol)です。そして名前が示すように、IPはインターネット上でデータを送受信するために使用されるプロトコルです。
IPの主な役割は、データを指定された宛先に転送することです。IPの特徴は、非信頼性(unreliable)と非接続性(connectionless)です。状態を保証する信頼性と受信者がいることを確認する接続性に対する保証はしないからです。それでは、データを完全に完全に受け取ることができますか?
TCPを介してデータを完全に受信できます。TCPはTransmission Control Protocolの略で、信頼性の高いデータ通信のためのプロトコルです。信頼性があるとは、エラーがないことを意味し、いつでもどこでもデータを完全に取得するという信念を意味します。データをやり取りするときは小さな単位でやり取りするため、途中でしばしば一部が消えることがあります。TCPは、これらのエラーを検出して解決し、データを完全に送信できるようにする役割を果たしています。信頼性の高い通信が注目のプロトコルであるため、データを送受信する前に、あらかじめクライアントとサーバーが互いに通信する準備ができていることを確認し、接続エラーによるデータの損失を防止することも行っています。 そのため、接続型プロトコルとも呼ばれます。
HTTPはURLパーツでもちょっと言及されていました。HTTPはHypertext Transfer Protocolの略で、WebブラウザとWebサーバー間でデータをやり取りするためのプロトコルです。名前からわかるように、もともとはHTMLのようなハイパーテキスト形式のデータしか通信できませんでしたが、今日は画像、動画のようにWebを実装するためのさまざまな形式も通信しています。HTTPはURLと一緒にWeb通信のためのプロトコルでもあります。
インターネットは単にウェブサイトのアドレスを入れるだけではありません。アドレスを入力すると、クライアントがサーバーに希望のデータを要求し、要求した内容に対する応答を受け取り、受け取ったリソースをうまく処理して目の前に示すプロセスを経ます。これらのプロセスでは、クライアントとサーバーとの通信を担当するプロトコルがHTTPです。HTTPは、一度通信を送受信したときに切断する非接続プロトコルでもあります。
HTTP通信中にデータがうまく入ってきたのか、問題が発生したのかを確認することは、ステータスコードで確認できます。
OSI 7階層は国際標準化機構(IOS)で1984年に開発したモデルです。データをやりとりする際、データの流れを大きく7段階に分けたことで、各段階がどんな役割をしているのか分かる一種のマニュアルです。OSI 7階層は以下の7段階で構成されています。
コンピュータネットワークが初めて出たとき、通信に必要なデバイスやシステムは特定の会社でしか作らないため、互いに互換性がないことが多かったです。しかし、ますますパーソナルコンピュータが普及し始め、他の機種のコンピュータ同士もネットワークを形成したいと考えており、その結果OSI 7層が作られました。異なるシステムがうまく接続され、互換性があるようにする標準案ができたのです。OSI 7階層ができ、階層内のデバイスや通信規約のプロトコルが変わっても通信できるようになり、新しく開発されたデバイスやプロトコルを素早く理解するのにも多くのお役に立ちました。また、異常が生じた特定の階層を把握できるようになり、他の階層は触れずに直すことができるようになるなど維持、管理も容易になりました。上記のIPは3階層、TCPは4階層に、HTTPは7段階に属します。
現在はOSI 7階層よりもTCP/IP 4階層を多く使用しています。 このTCP / IPは合計4つの層を介して作成され、再び逆に4つの層を通過します。
TCPはデータを送信するたびに確認応答を送受信する手順があり、通信の信頼性が高いです。 そのため、Webやメール、ファイル共有など、データが欠落したくないサービスに主に使用されます。 IPは、トランスポート層(第4階層)から受け取ったデータ(セグメント)にIPヘッダを付けてパケットにする役割をします。 IPヘッダーには、複数のフィールド値(バージョン、ヘッダー長、プロトコルなど)、出発地IPアドレス、宛先IPアドレスが入ります。
これまで紹介した2つの階層、イメージで見ても似たような内容が多く、どれが違いなのか分かりにくいでしょうか?
上の図を見ると、OSIモデルのセッション、表現、アプリケーション層はTCP/IPモデルのアプリケーション層で、OSIモデルの物理、データリンク層はTCP/IPモデルのネットワークアクセス層にまとめられたことが確認できます。
簡単に言えば、OSI 7階層の場合、互換性と標準化を目的として、TCP/IP 4層は実務適用を目的に作られたという違いがあります。OSI 7階層よりも実用性を強調したプロトコルで、現代ネットワークはほとんどTCP/IP 4階層モデルを使用しています。
どちらもネットワークモデルですが、それぞれの目的と性質が異なるため、2つのモデルをすべて比較して調べることは、ネットワークを理解するのに非常にお役に立つことだと思います。
これまで、ネットワーク通信に必要なプロトコルとデータ通信層まで調べました。どうでしたか?
ネットワークを理解するのに少しでもお役に立てたらと思います。