【基本情報】ネットワーク

###LANとWAN
事業所などの局地的な狭い範囲のネットワークをLAN（local area network）、
LAN同士をつなぐ広域ネットワークをWAN（wide area network）と呼ぶ。

回線交換方式、、、送信元から送信先にまで至る経路を交換機がつなぎ、通信路として固定する。通信路に選ばれた回線は使用中のペアに占領されるので他の端末がその回線を使うことはできない。

パケット交換方式、、、パケットという単位に分割された通信データを、交換機が適切な回線へと送り出すことで通信路を形成する。回線が使用中になるのはパケットという小さなデータが送られる短時間だけ。


| name | explanation |
|:-------:|:--------|
|専用線|拠点間を専用回線で結ぶサービス。回線速度と距離によって費用が決まる。セキュリティは高いが、非常に高額。|
|フレームリレー方式|パケット交換方式を元に、伝送中の誤り制御を簡略化して高速化を図ったもの。データ転送の単位は可変長のフレームを用いる。|
|ATM交換方式（セルリレー方式）|パケット交換方式を元に、データ転送の単位を可変長ではなく固定長のセル（53バイト）とすることで高速化を図ったもの。パケット交換方式と比べて、伝送遅延は少ない。|
|広域イーサネット|LANで一番使われているイーサネット技術を用いて拠点間を接続するもの。高速で、しかも一般的に仕様している機器をそのまま使えるためコスト面でのメリットも大きい。WAN構築における近年の主流サービス。|

#####LANの接続形態
* スター型
* バス型
* リング型

現在のLANはイーサネットがスタンダード。IEEEによって規格化されていて、接続形態や伝送速度によって、10BASE5や10BASE2などの規格に別れている。

イーサネットはアクセス制御方式としてCSMA/CD方式を採用している。この
方式では、他に送信を行っている者がいない場合に限ってデータの送信を開始します。
それでも同時に送信してしまい、通信パケットの衝突（collision）が発生した場合は、各々ランダムに求めた時間分待機してから、再度送信を行う。

このように通信を行うと、1本のケーブルを複数のコンピュータで共有することができる。

######トークンリングとトークンパッシング方式
トークンリング、、、リング型LANの代表格である。アクセス制御方式にトークンパッシング方式を使う。
トークンパッシング方式、、、平常時は、トークンだけがネットワーク上をぐるぐる回っている。これにデータをくっつけて次へ流していく。データがない時をフリートークンといい、ある時をビジートークンという。

無線LAN、、、ケーブルを必要とせず、電波などを使って、無線で通信を行うLANのこと。アクセスポイントからの電波が届く範囲であればどこへ移動しても大丈夫。その反面、電波を盗聴されてしまう恐れがあるため、セキュリティ対策が必要になる。


######クライアントとサーバ
集中処理、、、ホストコンピュータが集中的に処理をして、他のコンピュータはそれにぶら下げる方式。データの一貫性を維持し、整理しやすいが、システムの拡張が大変で、ホストが故障すると全体が止まる。

分散処理、、、複数のコンピュータに負荷を分散させて、それぞれで処理を行うようにした構成。システムの拡張が簡単で一部のコンピュータが壊れても全体には影響しないが、データの一貫性を維持、管理しづらく、セキュリティの確保や運用管理が大変である。

この二つのいいところを取り込んだのが、
**クライアントサーバシステム**
、、、集中的に管理した方がいい資源（プリンタやハードディスク領域など）やサービス（メールやデータベースなど）を提供するサーバと、必要に応じてリクエストを投げるクライアントという、2種類のコンピュータで処理を行う構成で、現在の主流となっている。


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

ネットワークを通じてコンピュータ同士がやりとりをするための約束事。これを**プロトコル**という。
プロトコルを7階層に分けたもの⇨**OSI基本参照モデル**

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

なんでパケットに分けて流すのか、、、通信路上を流せるデータ量は有限だから。

######ネットワークの伝送速度
ネットワークの伝送に要する時間は次の式で求められる。
**伝送時間　＝　データ量/回線速度**
（理論値通りにいくとは限らない。）

一般的な使用法で実際に出る速度のことを実効速度という。

理論値に伝送効率を掛け算すると、実効速度が算出される。

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

ゲートウェイ、、、プロトコル変換を行うことで、トランスポート層（第4層）以上が異なるネットワーク同士を中継する。
ルータ、、、ネットワーク層（第3層）に位置する装置。パケットのIPアドレス情報を使って、ネットワーク間を中継する。
ブリッジ、、、データリンク層（第2層）に位置する装置。パケットのMACアドレス情報を使って、ネットワーク内のセグメント間を中継する。
LANケーブル、NIC、リピータ、、、物理層（第1層）に位置していて、電気的な信号をおくったり受けたり増幅したりする。

ハブ、、、LANケーブルの接続口（ポート）を複数もつ集線装置。
リピータハブ、、、パケットが流れてくると、無条件に全てのポートへ送出する。
スイッチングハブ、、、パケットが流れてくると、宛先MACアドレスに該当するコンピュータが繋がってるポートにだけ送出する。

###データの誤り制御
**パリティチェック**
送信するビット列に対して、パリティビットと呼ばれる検査用のビットを付加することでデータの誤りを検出する。
付加する方法は、偶数パリティと奇数パリティの2種類。
「１ビットの誤り」しか検出できない。

**水平垂直パリティチェック**
縦横両面から誤りを検出できるので、１ビットの誤りであれば位置を特定でき、誤りを訂正できる。

**CRC（巡回冗長検査）**
ビット列を特定の式（生成多項式と呼ばれる）で割り、その余りをチェック用のデータとして付加する方法。
データの誤り訂正はできないが、連続したビットの誤りなど、複数ビットの誤りを検出することができる。

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

TCPとIPという二つのプロトコルの組み合わせが、インターネットにおけるデファクトスタンダード（事実上の標準）である。

IP、、、IPは経路制御を行い、ネットワークからネットワークへとパケットを運んで相手に送り届ける。IPによって構成されるネットワークでは、IPアドレスを割り当てて管理している。
TCP、、、通信相手とのコネクションを確立してからデータを送受信するコネクション型の通信プロトコル。信頼性は高い。
UDP、、、事前に送信相手と接続確認をとったりせず、一方的にパケットを送りつけるコネクションレス型の通信プロトコル。信頼性にかけるが、高速である。


IPアドレスはネットワークの住所である。
グローバルIPアドレス、、、インターネットの世界で使用する。
プライベートIPアドレス、、、企業内などのLANで使える。

ブロードキャスト、、、同一ネットワーク内の全てのホストに対して、一斉に同じデータを送信すること。
ユニキャスト、、、特定の一台のみに送信すること。
マルチキャスト、、、複数ではあるが、不特定多数ではなく決められた範囲内の複数ホストに送信。

サブネットマスク、、、ホスト数がそこまでいらない時にネットワークを分割することができる。

パケットの配送はイーサネット。そこで近距離をバケツリレーしてつなぐのはMACアドレス。中継はIP。そのために使われるのはIPアドレス。


DHCP、、、このプロトコルを使うと、IPアドレスの割り当てといったネットワークの設定作業を自動化することができる。

NAT、、、グローバルIPアドレスとプライベートIPアドレスとを１対１で結びつけて、相互に変換を行う。同時にインターネット接続できるのは、グローバルIPアドレスの個数分だけ。

IPマスカレード、、、グローバルIPアドレスに複数のプライベートIPアドレスを結びつけて、１対複数の変換を行う。

ドメイン名とDNS、、、IPアドレスは覚えづらいので、文字で別名をつける。これをドメイン名という。
このドメイン名とIPアドレスとを関連付けして管理しているのがDNS（Domain　Name　System）。

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

ネットワーク上で動くサービスには、それぞれに対応したプロトコルが用意されている。

**代表的なサービス**

|プロトコル名|説明|ポート番号|
|:-----:|----------|:-----------:|
|HTTP|Webページの転送に利用するプロトコル。Webブラウザを使ってHTMLで記述された文書を受信するときなどに使う。|80|
|FTP|ファイル転送サービスに利用するプロトコル。インターネット上のサーバにファイルをアップロードしたり、サーバからファイルをダウンロードしたりするのに使う。|     20（転送用）    21（制御用）|
|Telnet|他のコンピュータにログインして遠隔操作を行う際に使うプロトコル|23|
|SMTP|電子メールの配送部分を担当するプロトコル。メール送信時や、メールサーバ間での送受信時に使う。|25|
|POP|電子メールの受信部分を担当するプロトコル。メールサーバ上にあるメールボックスから、受信したメールを取り出すために使う。|110|
|NTP|コンピュータの時刻合わせを行うプロトコル。|123|


サーバというのは、プロトコルを処理してサービスを提供するためのプログラムが動くことでサーバになっている。
一つのコンピュータがさまざまなサーバを兼任するのは当たり前にある。
サービスは、ポート番号で識別している。

###www(World Wide Web)

Webサーバの仕事は、Webブラウザから「くれ」と言われたファイルを渡すだけ。
このとき、やりとりに使われているプロトコルがHTTP。

WebページはHTMLという言語で記述されている。

URLはファイルの場所を示すパス。URLによって記述されたアドレスは、次のような形式になっている。
**http:(プロトコル)// www .gihyo .co.jp (ドメイン名) /book(ディレクトリ名)/index.html(ファイル名)**



###電子メール

電子メールは手紙のコンピュータネットワーク版。
メールアドレスを使ってメッセージをやりとりする。

昔はテキスト情報しかやりとりできなかったが、MIME(Multipurpose Internet Mail Extension)という規格の登場によって、さまざまなファイル形式が扱えるようになった。メール本文に画像や音声など、何らかのファイルを添付する場合に、このMIME規格が使われる。

メールアドレスは、名前＠住所でできている。
kitami(ユーザ名)@gihyo.co.jp(ドメイン名)


#####メールの宛先
* TO
本来の意味の宛先。送信したい相手のメールアドレスをこの欄に記載する。
* CC
Carbon Copyの略で、参考までにコピー送っとくから一応アナタも見といてね。としたい相手のメールアドレスをこの欄に記載する。
* BCC
Blind Carbon Copyの略で、他者には伏せた状態でコピー送っとくから、一応アナタも見といてね。としたい相手のメールアドレスをこの欄に記載する。

CCやBCCは、同じメールを複数の相手に出す「同報メール」の時にもちいられる。

######電子メールは文字化け注意

文字コードにはいろんな種類があるからあるコンピュータで表示できる文字だからといって、それが他のコンピュータでも表示できるとは限らない。
このように、特定のコンピュータでしか表示できない文字のことを**機種依存文字**という。