はじめに
ネットワークというのは、実は通信の処理を担当する7つのレイヤー(階層)に分かれています。
ネットワークのレイヤーは下層に行くほど物理機器寄りの、上層に行くほどアプリケーション寄りの処理を担当します。
この7つのレイヤーに分けて考えるモデルをOSI基本参照モデルと言います。
ネットワークは、ネットワークを構成する機器やコンピュータ、コンピュータの中で動いているOSやアプリケーションがそれぞれ連携して通信をしているものです。
なので、ネットワークを構成しているそれぞれのレイヤーについても理解を深めておく必要がありそうです。
本記事ではネットワークのレイヤーの説明し、ネットワークのトラブルシューティングについても解説します。
ネットワークの基礎知識
ネットワークは、複数のコンピュータを接続しデータをやりとりする仕組みです。
ネットワーク上でデータを送受信するためには相手先と通信するための取り決めとして、プロトコルと呼ばれる規約が必要です。
データは、電気信号や光のパルスなどの形で伝送されます。
ネットワークについては以下の記事で説明しています。
詳しくはそちらをご覧ください。
OSI基本参照モデル
7つのレイヤーがあり、それぞれが異なる処理を担当します。
上位のレイヤーから順に、アプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データリンク層、物理層となります。
これの覚え方としてアプセトネデブというのがありますね。
各レイヤーの担当する処理は以下のようになります。
アプリケーション層(第7層)
実際に利用するアプリケーションが担当するレイヤーです。
メールをするための通信ならOutlookなどのメールソフトが、インターネットをするための通信ならGoogleChromeなどのブラウザが担当します。
プレゼンテーション層(第6層)
通信するデータを通信に適した形に変換します。
例えばメールの添付ファイルであればテキスト形式に変換したり、通信量を抑えるために圧縮してから通信したりということをします。
セッション層(第5層)
アプリケーション層、プレゼンテーション層が担当していたのは、通信の準備でした。
そして実質セッション層から通信が開始されます。
セッション層では、通信をするプログラムとのやりとりを行なって接続の管理をします。
トランスポート層(第4層)
通信で利用するプロトコルとして、どのプロトコルを利用するのかを管理します。
TCPやUDP、RSDPなどのプロトコルがあり、それぞれに役割の違いや通信品質の違いがあります。
そのプロトコルの中から最適なものを利用します。
ネットワーク層(第3層)
ネットワーク上で通信が始点から終点まで届くように管理します。
ルータでネットワーク間を接続して中継するのもネットワーク層の役割です。
ネットワーク層では始点から終点までの通信を中継するためのプロトコルとしてIP(Internet Protocol)を利用します。
データリンク層(第2層)
コンピュータやスイッチングハブなどの機器をケーブルで接続している範囲でデータが伝送されるよう管理します。
データリンク層は、ネットワーク層のように始点から終点までというような広い範囲を管理していません。
コンピュータのLANコネクタからスイッチングハブのLANコネクタまでというような、ネットワークとしてデータリンクしている間での通信を管理しています。
コンピュータからスイッチングハブまで、スイッチングハブからルータまでという感じで、直接接続されたデータリンクの中で通信を管理しています。
物理層(第1層)
物理層では、デジタル信号を物理的な信号に変換します。
コンピュータやスイッチングハブなどの機器がUTPケーブルなどで接続されているなら、デジタルデータを電圧の高低に変換します。
光ケーブルで接続されているなら、光のパルスに変換します。
ネットワーク内のデータの流れ
OSI基本参照モデルに沿って各レイヤーの役割について記載させていただきました。
これに基づいて、メールの送信を例にデータの流れについて見ていきたいと思います。
OSI基本参照モデルの7つのレイヤーは大きく分けて、以下の二つに分けられます。
・アプリケーション層 〜 トランスポート層
・ネットワーク層 〜 物理層
アプリケーション層 〜 トランスポート層
この4層のレイヤーは、コンピュータの中で処理されるものになります。
メール送信を例に挙げた際のコンピュータは、メールを送信するパソコンとメールを受信して保管しておくメールサーバがそれにあたります。
パソコンとメールサーバは、メールの送受信を行うために必要な色々な取り決めを行い、通信の経路を確保します。
その上で送信するデータの形式を予め知らせて受け取り準備ができた上で、やっとデータの送信を行います。
ちなみに、予め知らせたデータの形式と、送ったデータが合っていないと、
正常に表示されなくなります。
身近なことだと、文字化けなどがその一種です。
ネットワーク層 〜 物理層
この3層のレイヤーは、コンピュータ外でも処理されるものになります。
コンピュータ外でもなので、コンピュータ内でも処理されます。
コンピュータとスイッチングハブがネットワークケーブルで接続されている中でデータのやりとりをしたり、ルータを利用してネットワークとネットワークを接続したりする部分なので、どちらかというとネットワークとして認識されやすいのはこの3層の部分になります。
この3層の部分でパソコンとメールサーバがネットワークとして通信が可能な状態になっていないと、アプリケーション層 〜 トランスポート層の処理を行うことができません。
そのため、それぞれのレイヤーは下のレイヤーに乗っている形で表現されることが多いです。
メールの送信を例にこのことを図にすると以下のようになります。
コンピュータは一瞬で処理を終わらせてしまう割に、石橋を叩いて渡るように一つずつ確実に終わらせていくような慎重なタイプなんですね。
ネットワークのトラブルシューティング
トラブルシューティングでは、ネットワークのレイヤーごとにデータの流れを確認し問題が生じた箇所を特定することが重要です。
例えば、ネットワーク層で問題が生じた場合物理的な問題が原因である可能性が高いため、ケーブルの接続を確認することが必要です。
一方、トランスポート層で問題が生じた場合は、TCPやUDPの設定やポートの問題が原因である可能性が高いため、これらの設定を確認することが必要です。
少し詳しく見てみましょう。
1.ネットワーク層までの通信が確保されているか確認する
物理層からネットワーク層まではコンピュータやスイッチングハブ、ルータなどのネットワークを構成する機器間の通信を司っています。
そのため、ネットワーク層までの通信が正常であるかどうかを最初に判断しましょう。
ネットワーク層までの通信に異常がないかを確認するためにはICMPプロトコルを利用して自分のIPアドレスから相手のIPアドレスまでの通信が可能な状態か調べます。
そこで利用するのが「ping」コマンドです。
pingの詳しい利用方法はこちら
pingで調べた結果、通信が可能な状態なのであればネットワーク機器の接続や設定に問題はありません。
逆に通信ができない状態になっているのであれば、「traceroute」コマンドで通信がどこまで通っているのかを確認してトラブルシューティングに役立てましょう。
tracertの詳しい利用方法はこちら
2.通信を行なっているアプリケーションの設定を確認する
ネットワーク層までに異常がないのであれば、調べる場所は通信を行なっているコンピュータなどの機器に限定されます。
通信をしようとしているアプリケーションの設定が間違っていないかを調べたり、通信に必要なポートがファイアウォールで閉じられていないかを調べてみましょう。
ここでの対処方法は通信に利用しているアプリケーションで異なります。
アプリケーションの設定や通信に必要なポートを調べて、一つずつ調査してみてください。
まとめ
ネットワークは7つのレイヤーに分かれており、それぞれ異なるレイヤー(役割)を担当しています。
下位レイヤーでは、ネットワーク機器を通じてデータを伝送する処理を担当し、上位レイヤーではコンピュータ同士で通信をするための取り決めを行なってデータを送受信する処理を担当します。
ネットワークのトラブルシューティングではどのレイヤーで問題が生じたかを特定することは、素早くトラブルを解消するために重要なことです。
ネットワークのレイヤーを理解しておくことで身の回りで起きているトラブルに対する理解や解像度が上がります。
一緒に勉強して少しずつトラブルに強くなっていきましょう!
コメント