ネットワークについて

## LANとWAN

### LAN（Local Area Network）
会社内や学校内など局地的で狭い範囲のネットワーク

### WAN（Wide Area Network）
地理的に遠く離れたLANとLANをつないだ広域ネットワーク


### 交換方式

#### 交換機

コンピュータ同士の間にいて**通信路の確立**を行う


* 回線交換方式

送信元と送信先を交換機がつなぎ通信路を確立する
通信中は、他の機器がその通信路に介入することはできない


* パケット交換方式

#### パケット
分割された通信データの単位のこと

コンピュータが回線にパケットを送り出し、交換機が送信先に適切に振り分けて送信する
また、次に振り分け予定のパケットも交換機が蓄積しておくので、回線を共有して使用できる
これが今の主流の方式


## LANの接続形態

#### トポロジー

コンピュータ同士をつなぐ接続形態のこと
主に３つ

* スター型
ハブを中心に放射状に各コンピュータを接続する

![スター.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/9742489d-07ea-338b-d4ce-ddc9a5bde77d.png)



* バス型
基幹となるケーブルに各コンピュータを接続する

![バス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/34925af2-ab3a-a15e-5d4a-1e59f9330e57.png)


* リング型
リング状に各コンピュータを接続する
**トークンリング**という規格で使われる

![トークン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/a3c3a72c-f055-138a-745d-237a8704fa8d.png)


### LANの規格

#### イーサネット（Ethernet）

現在最も普及しているLAN規格で、米国電気電子技術者協会（IEEE）により標準化されており、接続形態、伝送速度によって規格が分かれる

#### CSMA/CD方式（Carrier Sense Multiple Access/Collision Detection）

イーサネットが採用するアクセス制御方式のこと
ネットワーク上を監視し、**他のコンピュータが送信していない時にデータ送信を行う**

万が一、他のコンピュータと同時に送信を行っていた場合は通信路でデータの**衝突（コリジョン）**が発生する
その場合は、再度時間が経ってから再送信が行われる

このようにして１本のLANケーブルを共有できる仕組み

### トークンパッシング方式

#### トークンリング

リング型LANの代表で、アクセス方式にトークンパッシング方式が使われる

#### トークン

送信の権利を表す小さなデータのこと
通信路をバケツリレーで流れる

#### トークンパッシング方式

1.送りたいデータをトークンにはっつけて送る
2.コンピュータは自分宛じゃないと次に回すのでバケツリレーのようになる
3.自分宛のものを受け取ったら受信を知らせるため、マークを付けて返す
4.送信元はマークを確認後、トークンをフリートークンに戻して流す
5.フリートークンはまたバケツリレーされ、データを送りたいものがいれば、それに貼り付けて送信を行う

### 無線LAN

ケーブルを使わず、電波で通信を行う
無線LANアクセスポイントの範囲であればどこでも通信可能

**ただしセキュリティを万全にする必要がある**
電波の中ににウイルスが侵入すると危険

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

複数のコンピュータが組み合わさって働く処理形態がある

* 集中処理
ホストコンピュータが集中的に処理を実行
各コンピュータはその下で処理結果などの情報をもらう

メリットは

*  データの一貫性を維持•管理しやすい
*  セキュリティ確保の維持•管理が簡単

デメリットは

* システム拡張がきつい
* ホストコンピュータが壊れたら終わる


* 分散処理
各コンピュータで負荷を分散させる
処理も各自で行う

メリット、デメリットはそれぞれ集中処理の逆


#### クライアントサーバシステム

分散処理であるが、集中処理の要素を取り入れたシステム
今の主流

* サーバ
集中的に管理すべき資源とサービスを提供する


* クライアント
サーバにリクエストをする


**基本的にはクライアントが自分で処理を行うが、サーバの管理下にあるサービスは
リクエストを行い処理をお願いする仕組み**

サーバでは...

* ファイルサーバ
ファイル保存や提供を行う

* プリントサーバ
印刷を行う

* データベースサーバ
データベースへのリクエストを処理

* webサーバ
webページを公開

* メールサーバ
電子メールの送受信を行う

などの管理を行う

## プロトコルとパケット

### プロトコル

コンピュータがネットワークを上でお互いにやりとりするためのルール

### OSI参照モデル

プロトコルを第1階層から第7階層まで細かく分けたもの

階層|種類|内容
-|-|-
第7層|アプリケーション層|どんなサービスを提供するのか
第6層|プレゼンテーション層|データはどんな形式か
第5層|セッション層|通信開始から終了までの管理
第4層|トランスポート層|通信の信頼性をどう確保するのか
第3層|ネットワーク層|ネットワーク同士をどう中継させるか
第2層|データリンク層|同一ネットワーク内でどう通信するか
第1層|物理層|物理的にどうつなぐか


このように**プロトコルを階層ごとに分けることで、変更が生じたときに扱いやすい**
というメリットがある

### TCP/IP
現在標準的に使われているプロトコル

TCP/IPプロトコルではデータをパケットに分割し送信する



### ネットワークの伝送速度

#### 伝送時間 ＝ データ量 ÷ 回線速度

ただし正確に時間を求めることはできず大抵誤差が生じてしまう

* 実効速度

  一般的な使用方法で実際に出る速度のこと

~~~
理論値 × 伝送効率
~~~

* 伝送効率

理論値に対して実際に出る速度の割合のこと

~~~
実効速度 ÷ 理論値
~~~

## ネットワークを構成する各装置

### 各種装置とOSI基本参照モデルとの関係

階層|種類|装置|役割
-|-|-|-
第7層|アプリケーション層|ゲートウェイ|プロトコル変換を行い第4層以上が異なるネットワーク同士を中継
第6層|プレゼンテーション層|ゲートウェイ|〃
第5層|セッション層|ゲートウェイ|〃
第4層|トランスポート層|ゲートウェイ|〃
第3層|ネットワーク層|ルータ|パケットのIPアドレスでネットワーク間を中継
第2層|データリンク層|ブリッジ|パケットのMACアドレスで、ネットワーク内のセグメント間を中継
第1層|物理層|LANケーブル、NIC、リピータ|電気的信号を送受信したり増幅したり



* NIC（Network Interface Card）
  コンピュータをネットワークに接続するための拡張カード
  **データを電気信号に変換し通信路に流す**

  MACアドレスが振り分けられている

#### MACアドレス

NICのようなネットワーク機器に割り振られている唯一無二の番号で、
IEEEと製造メーカ番号の組み合わせでできている


* リピータ
  ケーブルの中間地点にいて受け取った電気信号を増幅させ、通信を助ける

* ブリッジ
  セグメント間で中継を行う役割

#### セグメント
1本のケーブルでつながっている範囲のこと
無条件でデータが流される範囲



* ハブ
  LANケーブルの接続口を複数持つ集線装置


  - リピータハブ
     複数のコンピュータがつながっている状態で、１台がパケットを送ると無条件で、全ケーブルにパケットを送り出す

  - スイッチングハブ
     １台のパソコンがデータを送っても、宛先MACアドレスのみにパケットを送り出す

* ルータ
  LAN（ネットワーク）通しをつなげる中継役

![ルータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/e53c6dad-12e5-6c6b-c81b-8e702540b379.png)


  ルータはパケットに描かれたIPアドレスを見て近くのルータに渡していく
  **バケツリレーのようにルータが宛先の書かれたネットワークに運び届ける仕組み**



* ゲートウェイ
  ネットワークがそれぞれ使っているプロトコルに対して変換させる役割
  
  例えば、ケータイメールとPCの電子メールがやりとりできるようになる
  のはゲートウェイがいるから


## データの誤り制御

データの通信中にノイズが入り、正確なデータで無くなる可能性は十分にある

### パリティチェック

送信するデータのビット列に、パリティビットという検査用のビットを付加する
ことでノイズを見つける

* 偶数パリティ
  
  ~~~
  01000001

  0(パリティ部分) 1000001（データ部分）
  ~~~

**ビット列の中の1が偶数になるように0をセット**

* 奇数パリティ
  
  ~~~
  11000001

  1（パリティ部分）1000001（データ部分）
  ~~~

**ビット列の中の1が奇数になるように0をセット**

### 水平垂直パリティチェック

例えば、ABCDEの文字列があるとして

![スクリーンショット 2021-11-08 20.36.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/ec86ce1e-270e-b115-f141-a0800e085084.png)

水平垂直にパリティをセットすることで、誤りを検出する

### CRC（巡回冗長検査）

ビット列を特定の式で割り余りをチェック用データとして使う


## TCP/IPを使ったネットワーク

### TCP/IPの中核

* IP(Internet Protocol)
  ネットワークからネットワークへとパケットを運び届ける
  コンピュータやネットワーク機器に割り当てられたIPアドレスを頼りに運ばれる

* TCP(Transmission Control Protocol)
  
  送信先との通信路が確立されたと判断してからデータを送受信するコネクション型プロトコル
  最初にデータを送ると送信先から受信の合図が届き、そしたら新しいデータを送る

* UDP（User Dategram Protocol）
  送信先との通信路確立を確認せず一方的にデータを送りまくるコネクションレス型プロトコル
  信頼性に欠けるが、その分高速


### IPアドレス

ネットワークや機器に振り分けられる唯一無二の番号
基本的に32ビット

例えば...

~~~
11000000101010000000000100000011
~~~

という32ビットの数字があれば

~~~
192 168 1 3

192.168.1.3
~~~
というように10進数で表すとこうなる

IPアドレスには２種類あり

* グローバルIPアドレス
  インターネット内で使用するIPアドレス

* プライベートIPアドレス
  企業内のLANの中で使えるIPアドレス
  システム管理者が自由に割り当てて使える


### IPアドレスを分ける

**IPアドレスにはネットワーク部とホスト部で分かれる**

例えば...

~~~
192.168.1.(ネットワークアドレス部)3（ホスト部）
~~~

* インターネット部
  どのネットワークの

* ホスト部
  どのPCか

というような意味

分け方は多数あり

* クラスA（大規模ネットワーク用）
  ネットワーク部8ビット

* クラスB（中規模ネットワーク用）
  ネットワーク部16ビット

* クラスC（小規模ネットワーク用）
  ネットワーク部24ビット


#### ブロードキャスト
同一ネットワーク内全てのPCに同時にデータを送信すること

#### サブネットマスク
１つのネットワークの大量のPCをグループに分けることもできる

例えば、クラスCのIPアドレスでは

![スクリーンショット 2021-11-08 21.15.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1803385/54a6ecc6-fcd0-e149-c30c-96461a982256.png)


**本来24ビットだったネットワーク部が26ビットに拡張され、サブネットで4グループ
62台ずつに分けれるようになった**


### DHCP(Dynamic Host Configuration Protocol)

LANにつないだPCにIPアドレスを自動的に割り当てなどネットワーク設定作業
をしてくれるプロトコル

### NATとIPマスカレード

#### NAT
グローバルIPアドレスとプライベートIPアドレスを結び変換する

#### IPマスカレード
グローバルIPアドレスに複数のプライベートIPアドレスを結び変換する


### ドメイン名とDNS

#### ドメイン名

IPアドレスの別名がドメイン名

~~~
www(コンピュータの名前).japan(組織の名前).co(組織の種類).jp(国の名前)
~~~

#### DNS(Domain Name System)
IPアドレスとドメイン名を管理している



## ネットワーク上のサービス

ネットワーク上のサービスにはそれぞれプロトコルが用意されている

プロトコル|内容
-|-
HTTP|Webページの転送に使う
FTP|ファイル転送サービス
Telnet|他のPCを遠隔操作
SMTP|電子メールの送受信
POP|電子メールの受信部分を担いメールを取り出す
NTP|PCの時刻合わせを行う

サービスにはそれぞれポート番号が決められている
IPアドレスとポート番号は常にセットなので、
**どのPCのどのサービスか識別できるようになる**

### URL

~~~
http:(プロトコル)//www.japan.co.jp（ドメイン名）/book（ディレクトリ名）/index.html（ファイル名）
~~~
URLはこのような意味を持っている
1.HTTPプロトコルの
2.japan.co.jpというネットワークの
3.wwwというサーバ上の
4./bookというディレクトリ下の
5./index.htmlというファイル

を表している

#### CGI（Common Gateway Interface）

CGIプログラムが実行されるとWebサーバは外部のプログラムを実行して処理結果を示す

## 電子メール

~~~
nihon(ユーザ名)@japan.co.jp（ドメイン名）
~~~


* ドメイン名は所属ネットワークのこと
* ユーザ名は名前のこと


### 電子メールに関するプロトコル

#### SMTP

* クライアントから送信メールを預かる
* メールアドレスを見て相手先メールサーバに配送する
  
#### POP

* クライアントからメールの受信確認依頼が来る
* 受信メールを確認しあれば渡す


#### IMAP

* メース受信を行う
* POPと違うのはサーバ上で管理するので、どのPCからも受け取れる






>参考書籍

>>きたみりゅうじ　『キタミ式　イラストIT塾　基本情報技術者　令和０３年』 技術評論社 2020年