gaya_udonのブログ

学んだことを自分の言葉にすることで理解が深まると思ったので、ブログ開設しました。主にPythonについて学習したことを書こうと思います。

ネットワークの回線について

同時に複数の通信を行う際に発信先と目的地を合わせて通信すること→交換方式という。
なぜ交換が必要なのか?
例えばそれぞれの通信元をすべて線でつないだ場合線の数が端末の数*(端末の数-1)/2で小数点は繰り下げとなり、膨大になる。→これをフルメッシュという。
フルメッシュでn台の端末からn+1に増やすときに増やす線はn本である。なぜなら新たに追加した端末はこれまでにある端末のすべてとつながなけらばならないから。
しかし間に交換機をつなげば線の数は端末と交換機をつなげばいいだけになるので端末の数だけで通信ができるようになる。

回線交換とは?
 通信元と目的地の間に一つの経路を設定し独占して通信する方法。一つの線しか使えないから通信の要求がたくさん発生した場合、呼損が初声精してしまう。
パケット交換とは?
 通信のデータをパケット化する。一つのルータをパケット化されたデータがそれぞれ分けられ通信元に向かっていく方法。たくさんのパケットが同時にルータにたどり着くこと(輻輳)があるとパケットの遅延やロスが発生してしまう。

ARPとは?
 Address Resolution Protocolの略である。データをやり取りする際に目的地のインターネットアドレスに紐づけられたリンク層アドレスなどが検出できるプロトコル
 例えば目的地のIPあどれすがわかっていればそのMACアドレスを検出することができる。
ARPの手順
 目的地のIPアドレスがわかっている場合は単純にそのIPアドレスMACアドレスを見つけることができる。

例えば192.168.1.0/24のネットワークがあり、そのデフォルトゲートウェイは192.168.1.1としたとき発信地192.168.1.3が192.168.1.15と通信したときARPテーブルに記録されるIPアドレスは192.168.1.15である。なぜならこの場合は同じネットワーク内にあるときの通信だから。なぜ同じネットワーク内にあるかと分かったかというと168の後がおなじ1であるから。
次に192.168.2.10への通信を行ったとするとARPテーブルに記録されるIPアドレスは192.168.1.1になる。なぜなら違うネットワークへの通信だから発信地のデフォルトゲートウェイが記録されるから。なぜ違うかというと168の後が2と発信地と異なるから。

Routing
 とどいたパケットが次のルータのどことマッチするかを当てはめてデータのやり取りをする方式。
例えば192.168.1.115のパケットがルータに届いたとしてそのルータが次のルータにデータを渡すときに参照する方法が、
最初に届いたアドレスを2進数に変換する。→今回は11000000 10101000 00000001 01110011になる。
次に見るところが次のルータのアドレスの最後の数字。これが26であれば左から26桁を使う。→11000000 10101000 00000001 01 110011
この残りを全部0すると→11000000 10101000 00000001 010000000になる。これを10進数に直すと192.168.1.64となる。これで次の渡す先とマッチさせる。