ネットワーク基礎知識

ネットワークについてまとめてみました。

# コンピューターネットワークとは</span>

人で言えば人脈の様なもので、生活する上で周りとのコミュニケーションなどがあると思います。
コンピューターネットワークは、コンピューター同志の繋がりの事を言います。
お互いの送受信などなど・・・。
コンピューターネットワークのメリット
データやリソースの共有ができ、遠距離でも、多数に対して素早く低コストで情報を発信、受信できます。
例えば、データなどの共有や、リソースの共有、情報の送受信など、今の私たちの身近のあるsnsなど、様々な場面で使われています。

# LANとWAN

LAN(Local Area Network)は、建物内、敷地内などで、狭い範囲のネットワークです。自前で構築できます。

WAN(Wide Area Network)は地理的に離れたLANとLANを結びつけることで構築する広い範囲のネットワークです。電気通信事業者(キャリア)がサービスを提供しています。

# インターネット

インターネットはWANの一種です。インターネットはプロバイダ(ISP : Internet Service Provider)と呼ばれる通信事業者を介して構築されている世界規模のネットワークです。世界中のネットワークをTCP/IPという技術で相互接続しています。
インターネットの技術(TCP/IP)を用いて作られた社内ネットワークをイントラネットと言います。使用を限定しているアプリケーションや情報を共有できます。インターネットとさほど変わらないですが、組織内(大学など)で使うインターネットをイントラネットと呼びます。

イントラネットとイントラネットを結んだものをエクストラネットと言います。簡単に説明すると、A社とB社で社内の情報を共有したいときなどに使う大きいイントラネットです。

# サーバーとクライアント

ある機能を持ったソフトウェアのことをアプリケーションと言います。
自身が保有するアプリのサービス他に提供するコンピューターをサーバーと言います。
他が保有するアプリのサービスを利用する側のコンピューターをクライアントと言います。
例えば、みなさんが使っているGoogleのシステムがサーバーで、そのGoogleのサービスを使うPCやコンピューター端末がクライアントです。
サービスをする側がサーバーで受ける側がクライアントです。

# ネットワークユーザーアプリケーション

ネットワークを利用したアプリケーションをネットワークユーザーアプリケーションと言います。
日頃私たちが使っているLINEやGoogleなどが、ネットワークユーザーアプリケーションです。
ネットワークユーザーアプリケーションの中にも種類があります。
ユーザの実行や予め設定されたタイミングで自動実行や終了するものをバッチアプリケーションと言います。
例えば更新プログラムなどボタンを押したら勝手に更新される様なものです。
次に、クライアントとサーバーでデータ通信が発生するものをインタラクティブアプリケーションと言います。
これは、ブラウザでのゲームや動画サイト、ネットサーフィンをするものなどは大体インタラクティブアプリケーションです。
次に、クライアントとクライアントでデータ通信が発生するものをリアルタイムアプリケーションと言います。
これは、ビデオチャットや音声通話などです。

# データが送られる仕組み

PCはどんな情報2進数データ(0と1を組み合わせた数値のデータ)に変換して扱います。
私たちは日本語、英語など様々な言語を使いますがPCの世界では0と1しかありません。
例えば、LINEでHelloと相手に送るとその文字を`1000000100100010101001`このように0と1に変換します。
この変換された2進数データをバイナリデータとも言います。
この変換されたバイナリデータを電気信号に変換し、送りたい相手の元でまた、バイナリデータに変換され、画面上にHelloと表示されるわけです。
順を追って説明すると
人間にわかる情報→2進数データ(バイナリデータ)→電気信号→2進数データ(バイナリデータ)→人間にわかる情報
この様に伝達されていきます。
また、情報を二進数データに変換することを符号化(エンコード)、逆に戻すことを復号化(デコード)と言います。
世に存在する様々な文字に対する番号を文字コードと言います。
文字コードは、一文字一文字に対するバイナリデータが書かれたメモ帳みたいなイメージです。
例えば、

```
「すき」と送信する時
「す」と「き」を文字データの中から探す。。。
す→1000001010110111
き→1000001010111100
```

これを、バイナリデータとして送るというイメージです。
受信する時も同じイメージになります。

文字コードは、世界中で統一されているわけではなく、EUC,Shift_JIS,Unicodeなど様々な様式があるため種類ごとに存在します。
これでよくあるのが、文字化けです。文字化けは対応している文字コード以外の文字を送受信すると、決められた文字コードが見つからずに文字化けという現象が起きているわけです。

バイナリデータが電気信号に変換されるとどのように電気信号で送っているかを簡単にこんなイメージぐらいで説明します。
厳密ではないので、イメージ程度で見てください。
バイナリデータを送信すると、「０」が電気off、「１」が電気onに見立てた電気信号に変換されます。
電気信号が、モールス信号の様に送られていく感じです。

# 帯域幅

帯域幅とは、1秒間にどれだけの情報を送ることができるかを表す言葉です。bandwidthとも言います。
(電気物理本来の意味は取り得る周波数の最大←→最小の差分)
帯域幅の広さに比例して１秒間に送ることのできるデータ量が増える為通信速度と同じ意味合いで使われる様になり、
1秒間に何bit送ることができるかを表すbps(bits per second)という単位で表します。
帯域幅は1秒間にどれだけ送ることができるかと言いましたが、
1秒間に５bpsと1秒間に13bpsだとしたら、1秒間に13bpsの方が多くの情報を送っているので、つまりは通信速度が速いということです。
ちなみに、bitとは、pcでの01の世界における１文字分を1bit、同様に2文字分を2bitとなり、8bitになると8bit=1バイトとなります。
バイトはデータの重さを表す単位になります。

# 通信障害

* 輻輳(ふくそう)
輻輳とは、大量データ通信などが原因でネットワークが混雑し、データ通信が困難になることを言います。
イメージとしては、狭い一本の道路に多方面から車が入ってきて入り口で混雑する感じです。

* ジッタ(jitter)
信号を想定より早く、または遅く宛先に到着することがあります。
ジッタはデータの変質・劣化を引き起こし、音声や映像の乱れなどを引き起こします。
物理的な面では同線にに傷がついていたり、妨害電波があったりと、何かしらの原因でデータにズレが生じて起こります

# ネットワークの構成

* ノードとリンク
ノードはネットワークにおける機器のことで、コンピュータ、プリンタ、ルーターなどがあります。
リンクはノードとノードの間のデータの通り道のことで、ケーブルや電話回線などです。

# トポロジー

トポロジーとは、ノードの繋ぎ方のことです。
コストを抑えたい、耐障害性を強めたいなど用途に合わせてバス型トポロジー、スター型トポロジー、リング型トポロジー、メッシュ型トポロジー
と、どのトポロジーを選ぶべきか変わってきます。
一つ一つ説明していきます。

* バス型トポロジー
バスと呼ばれる１本の同軸ケーブルに複数のノードを接続するトポロジーをバス型トポロジーと言います。
バスの終端には電気信号の反射によるノイズを防ぐターミネータ(終端抵抗)が取り付けられています。
一箇所でも断線すると全体が機能しなくなり、拡張性も低いため現在はあまり使われていません。

* スター型トポロジー
一つの集線装置(ハブ)を中心にノードを接続するトポロジーをスター型トポロジーと言います。
扱いやすく耐障害や拡張性に優れていて、LAN構築で最も使用されているトポロジーです。
大量ノードに対応するためハブ同士を接続して、スター型トポロジーを拡張させることもあり。これを拡張スター型トポロジーと言います。

* リング型トポロジー
ノード同士を輪のように繋げたトポロジーをリング型トポロジーと言います。
トークンという信号が周回しており、これを受け取ったノードのみがデータ送信可能になります。
トークンを受け取ったノードのみが順番に送信されていくため、トポロジー内での衝突(コリジョン)が発生しません。

* メッシュ型トポロジー
複数のノードを網目状に接続するトポロジーのことをメッシュ型トポロジーと言います。
全部のノードに繋ぐものをフルメッシュ、重要なノードに絞り繋いだものをパーシャルメッシュと言います。
リンクを沢山用意しないといけないためコストはかかりますが、冗長性(問題が起きても他でカバーできる)を持ったトポロジーです。

# 通信の種類
ネットワーク内でのデータ通信の方法はユニキャスト(1:1)、ブロードキャスト(1:全て)、マルチキャスト(1:特定のグループ)の３つが主流です。