通信経路選択と通信手順
■ルーター
ルーターはネットワークの橋渡しを行うなどの役割を
もっていますので、その役割を紹介したいと思います。
①.ネットワークの橋渡し
ルーターは自分たちが所属しているネットワークから
別のネットワークへの橋渡しを行っています。
LANからインターネットにつなぐ場合、
ネットワーク間の出入り口(ゲートウェイ)になっているので
必ずルーターを介して接続が行われます。
②.伝送経路の選択
ルーターはインターネット側にデータを送り出す際に
送信先への伝送経路を決めます。
これをルーティングと呼び、目的地への適切なルートを記した
ルーティングテーブルを利用しています。
ここにはあて先までの距離や次に中継するルーターのアドレスなどが
記録されています。
ルーターはパケットに記載されたあて先IPアドレスと
ルーティングテーブルを比較し、適切な経路を見つけたら
次の中継点へデータを転送します。
③.伝送媒体のコンバート
ユーザーは様々な通信手段を用いてインターネットにアクセスしますが
ルーターは回線の違いを吸収して、同一の環境を提供します。
■ルーティングテーブル
ルーティングテーブルは宛先への適切なルートを記載したデータで
経路選択(ルーティング)を行うために欠かせない情報です。
テーブルの作成は静的(スタティック)ルーティングか
動的(ダイナミック)ルーティングによって行われます。
●静的ルーティングの特徴
・全ての経路を自分で決める
・管理者がルーティングテーブルを入力する必要がある
・手動なので臨機応変に対応することが難しい
・ネットワーク障害が起こった際に対応が遅れやすい
・経路が少なかったり、決まっている場合に使用される
・経路が固定しているのでルータへの負担が低い
まとめ
全ての伝送経路を自分で設定しなくていけないので
すごい手間がかかるがルータへの負荷は低い
●動的ルーティングの特徴
・全ての経路をルーターが決める
・ルーターが自動でルーティングテーブルを作成、編集する
・隣接するルーターと経路情報を随時交換し、
情報の変更に臨機応変に対応する
・ネットワークで障害が起こっても素早く別の経路に変更できる
・大規模なネットワークでは必要不可欠
・情報交換が定期的に行われるので通信負荷がかかる
まとめ
ルーター任せなので管理の負荷が少ないが
情報交換を頻繁するので通信の負荷がかかる
■動的ルーティングのルーティングプロトコル
動的ルーティングでの情報交換やルーティングテーブルの作成は
ルーティングプロトコルにより作成されています。
ルーティングプロトコル:
ルーター同士がネットワーク上で経路を選択するための
情報のやり取りを行う通信プロトコルのこと
このルーティングプロトコルはAS(Autonomous System:自律システム)と
呼ばれるネットワークグループ内部で使用されるものと
AS同士のやり取りで使用されるものの2つがあります。
●AS(Autonomous System:自律システム)
ASはルーティングの効率化をはかるためにグループ化された
ネットワークの集合です。
グループは地域や組織ではなくYahooBBやOCNなどのプロバイダ単位で
作成されており、AS間で経路情報の交換を行うことにより、
インターネット上で効率的な経路制御を実現します。
また、ASにはAS番号というものが設定されており、
AS番号はICANN(日本はJPNIC)から割り当てられています。
ルーティングプロトコルはAS間のルーティングプロトコルの
EGP(Exterior Gateway Protcol)とAS内のルーティングプロトコルの
IGP(Interior Gateway Protcol)に大別できます。
●ルーティングプロトコルで使用する単語
ルーティングプロトコルの説明をする上で使用する単語の
説明を行いたいと思います。
・ポップ数
送信先へ届くまでに経由するルーターの数で
送信先のルータも数に含める
自身のネットワーク内に送信する場合は0
・帯域幅
回線の通信速度
・メトリック
ポップ数や帯域幅、回線の混雑状況や
回線のエラー発生率などの経路判断基準のこと
●ルーティングプロトコルの種類
ルーティングプロトコルはEGPとIGPに大別できますが、
最適な経路をどの観点から導き出すかでいくつかのタイプに
分類することも可能です。
・ディスタンスベクタ型
宛先までのポップ数で最適な経路を決める
・リンクステート型
所属するAS内のネットワーク構成を把握したデータベースを持ち
これを元にして最短経路を計算して適切なルートを決める
・ハイブリット型
ディスタンスベクタとリンクステートの
長所を取り入れたプロトコル
上の図ではディスタンスベクタによる経路選択を行っており、
ルートAはポップ数(送信先までの距離)が4、
ルートBはポップ数(送信先までの距離)が3です。
ディスタンスベクタはポップ数を経路選択の
メトリック(基準)とする経路選択方法なので、
ポップ数の少ないルートBが伝送経路として決定します。
■ICMP
ここからはデータの伝送手順の話になります。
ICMP(Internet Control Message Protcol:アイシーエムピー)とは
通信中に発生したエラー通知や動作確認などを行う際に
利用するプロトコルです。
メッセージにはエラー内容を通知するエラーメッセージと
ネットワークの状態の調査を要求するクエリメッセージがあります。
●ICMPのタイプ
ICMPには11種類のタイプがあり、タイプごとに
エラー内容や要求内容が異なります。
●ping(ピング)
pingはICMPのエコーメッセージを利用した機能のことで、
データを送信したい相手のコンピュータがネットワークに
つながっているかどうかを確認する際に使用されます。
・pingの流れ
まず、宛先に対してエコー要求(type:11)を送信し、
宛先のコンピュータがネットワークに接続されていれば
エコー応答(type:0)を返してきます。
これによって相手がインターネットに接続されているかどうか
確認できます。
また、要求から応答までの時間を計ることで
回線の混雑状況を知ることもできます。
・pingの使用方法
コマンドプロンプトを開き、ping URLで実行可能です。
■3ウェイハンドシェイク
3ウェイハンドシェイクの説明の前にTCPの説明をしておきたいと思います。
●TCP
TCP(Transmission Control Protcol)とは
インターネットでデータを確実に宛先へ届けるために
使用するプロトコルのことです。
●3ウェイハンドシェイク
TCPを使ったデータのやり取りは、事前に送信先に
「これから通信を行う」という確認を行って
通信可能な状況を作り出します。
確実にデータを届けるために事前の段階から準備を行います。
この「これから通信を行う」という事前確認を3度のやり取りで
行うことから3ウェイハンドシェイク(3方向の握手)と呼ばれています。
●事前確認の流れ
1.送信元 => 宛先
SYNという通信許可を求める情報を送る
2.宛先 => 送信元
通信を許可するACKという情報と
送信元への通信許可を求めるSYNを送信
3.送信元 => 宛先
宛先へACKを送る
■確認応答
確認応答とはTCPでデータをパケット送信した際に
データが届いたことを送信先が送信元へ伝えるメッセージのことです。
パケットデータにはシーケンス番号とデータのサイズが設定されています。
確認応答ではACK番号を設定して送信側へ送ります。
シーケンス番号:
パケットに分割されたデータの先頭のバイト番号
(データ全体の何番目にあたるのかを示す数値)
ACK番号:
次に送ってほしいデータの先頭バイトの先頭番号
●応答確認が来なかったら
応答確認が受信側に届かなかった場合、通信中にエラーが
発生した可能性が高いので、送信側は一定時間待って、
再度パケットデータを送信します。
もし、再送したパケットデータ重複していたり、
シーケンス番号がずれていた場合は確認応答で
送ってほしいACK番号を設定して送信します。
■TCPとUDP
データ送信のプロトコルはTCPの他にUDPと呼ばれるものがあります。
UDP(User Datagram Protcol)とはデータの正確性よりも
即時性(リアルタイム性)を重視した通信になります。
●TCPの特徴
・データの正確性が高い
・応答確認を待つ必要があったりするので
伝送に時間がかかる
・メールなどの正確性を重視した通信に適している
●UDPの特徴
・データの正確性が低い
・応答確認を行わないので伝送速度は速い
・IP電話やライブ映像などの通信に適している