ログイン
編集不可のページディスカッション情報添付ファイル
komekome09/NetworkSeminar2014

MMA

Network Seminar 2014

自分へのメモも兼ねています。スライド->http://www.slideshare.net/slideshow/embed_code/35562225

いい加減書かないとなーと思いつつ気づいたらこんなに時間が立っていました。 まともに書いてるととんでもない量になりそうなので、講習では要所をうまく区切ってやるつもりです(できるとは言っていない)。

コンピュータ・ネットワークってなんぞや

簡単にいえば、別々であるが相互に接続されたいくつかのコンピュータが何らかの作業を行うモデルのこと(コンピュータ・ネットワーク)。 昔はコンピュータが高価だったため、1台のコンピュータがすべてを賄うモデルが多く採用されていた。 最も知られる例として、インターネットがあげられる。 ネットワークの分類的には以下の2つの分類が重要となる。

インターネット・ハードウェア

伝送技術

規模

ネットワーク・ソフトウェア

プロトコル階層

各層における設計上の問題点

  1. 信頼性
    1. データの誤り
      • 受信した情報に誤りがないという確証はどこにもない。なぜならそれを知る手段がないからである。 これを防ぐために、誤り検出用の符号を用いて通信を行うことによって正しい情報が得られるまで取得し直すことができる。 もっと強力な場合、検出だけでなく訂正も可能となる。
    2. ルーティング
      • 信頼性でもう一つ重要になる課題である。大抵の場合、送信元のマシンと送信先のマシンの間には複数の経路があり、大規模なネットワークとなるとどこか使えない回線があったり、ルーターが動いていない回路もあるかもしれないのである。ネットワークはこの判断を自動的に行い、現状での最短経路を見つけ出そうとする。これをルーティングという。 (ちょうど目的地までの最短ルートを教えてくれるカーナビと同じようなものである。)
  2. ネットワークの進化
    • 時間とともにネットワークは大きくなり、新しい設計が出現すると既存のネットワークと接続する必要があるかもしれない。こういう時に新しい設計だから繋げないという柔軟ではない設計だと困ってしまうので、ネットワークには柔軟な設計が求められている。その考えから出来たのは上に述べたプロトコル階層である。つまり問題となる部分を細く分割し、実装の詳細をブラックボックス化してしまうことによって解決しようとするのだ。(こんなかんじでいいのかな…?)

      他にもアプローチ方法はある。いかなる層においても送信者と受信者を識別するための機構が必要となる。これを下位層ではアドレス付け、上位層では名前付けとよんでいる。

  3. 資源割り当て
    • ネットワークにも当然資源があり(伝送回線の容量など)、ネットワークはホストに対して資源を提供する。ただしこれだとある特定のホストが資源を占有しすぎてしまうなどの問題点があるため、干渉し過ぎないようにする機構が必要となってくる。 多くのネットワークの設計では、とりあえずホストに帯域を割り当てる(通信するしないは別として)という方式を採用しておらず、ホストからの短い時間内での要求に対して帯域を動的に割り当てている。この設計を系統的多重化(statistical multiplexing)と呼ぶ。
    • どのレベルでも起こりうる問題として、フロー制御と輻輳があげられる。 フロー制御は速い送信者が遅い受信者をデータで溢れ返してしまうという問題である。基本的には受信者から送信者へのフィードバックが解決策として用いられる。 また輻輳は、多くのコンピュータが大量のトラフィックを送信し、ネットワークが処理しきれないために定員超過を起こしてしまってることである。この場合輻輳が起きた時に要求を減らすことで解決しようとする。
  4. コネクション指向とコネクションレス・サービス
  5. サービス・プリミティブ

参照モデル

OSI参照モデル

  1. 物理層(Phisical Layer)
    • 通信チャンネル上で生のビットデータを伝送する。
  2. データリンク層(Data Link Layer)
    • 物理層の設備を伝送誤りのない回線に見せること(要は送るデータが間違っていないように見せること)が主な仕事である。これを満たすために送信側はデータをデータ・フレームに分割し、フレームを順に送信する。誤りが検出されなければ確認通知フレームという正しく受信したことを示すフレームを返して確認する。
    • また、フロー制御が起きないようにトラフィックの制御機構も備えている。
  3. ネットワーク層(Network Layer)
    • サブネット(大きなネットワークを小さなネットワークに分割したもの)の動作を制御する。
    • 最も重要な役割として、送信元から送信先へパケットを送る経路をどのように決定するかを決めることである。
    • サブネット内のパケットが多すてしまうために起こる輻輳に対処するのもネットワーク層の仕事である。
    • 異なるネットワーク同士での相互接続で起こる問題(プロトコル、アドレス方式の違いなど)を解決するのも仕事の一つである。
  4. トランスポート層(Transport Layer)
    • 上の層からデータを受け取り、適切な形にしてネットワーク層に送信し、ネットワーク層から与えられたデータを逆に上の層に正しく届くことを保証するのが主な仕事である。
    • また、上の層に対して提供するサービスの種類を決定するのも仕事である。(大抵はポイント・トゥー・ポイントチャネルだが、トランスポートサービスなどいろいろある)
  5. セッション層(Session Layer)
    • 異なるマシンのユーザー上でのセッションを設定するのが仕事である。
    • セッションには、対話制御、同期、トーク管理などの様々なサービスが存在する。
  6. プレゼンテーション層(Presentation Layer)
    • 下位層とは異なり、この層では転送される情報の文法、意味を取り扱う。
    • マシンごとに異なるデータ構造を回線上での標準的な符号化方式と一緒に定義する。

  7. アプリケーション層(Application Layer)
    • ネットワークの利用者から一般的に必要とされているプロトコルを複数提供する。最も広く用いられているアプリケーション・プロトコルの一つは、HTTP(HyperText Transfer Protocol)である。

TCP/IP参照モデル

  1. リンク層(Link Layer)
  2. インターネット層(Internet Layer)
  3. トランスポート層(Transport Layer)
  4. アプリケーション層(Application Layer)

Ethernet

IP(Internet Protocol)

ICMP(Internet Control Message Protocol)

ARP(Address Resolution Protocol)

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

DNS(Domain Name System)

BIND

DHCP(Dynamic Host Configureation Protocol)

Routing

AS

EGP

IGP

BGP

komekome09/NetworkSeminar2014 (最終更新日時 2014-06-06 19:11:32 更新者 komekome09)