マスタリングTCP/IP―入門編

概要

かかった時間

  • 28.7 時間

感想

  • わかりやすく全体観つかめてよかった

読書メモ

1: ネットワーク基礎知識

  • コンピュータネットワーク登場の背景
    • スタンドアロンからネットワーク利用へ
      • スタンドアロン
        • コンピュータをネットワークに接続せず、単体で使用する状態
      • ネットワーク利用
        • 複数のコンピュータを互いに接続すると、個々のコンピュータに格納されている情報を複数のコンピュータの間で共有したり、遠くのコンピュータへ瞬時に送ったりできる
    • コンピュータ通信から情報通信環境へ
      • 初期のコンピュータネットワークは、管理者が指定した特定のコンピュータ同士を接続したもの
        • プライベートなネットワーク
      • これらの私的なネットワークを相互に接続することが活発になり、公共ネットワークとしてインターネットが利用されるようになる
  • コンピュータとネットワーク発展の 7 つの段階
    • 1: バッチ処理
      • 処理するプログラムやデータをカードやテープに記録しておき、それを順番にコンピュータに読み込ませて一括処理する形式
    • 2: タイムシェアリングシステム(TSS)
      • 1960 年代に登場
      • 1 台のコンピュータに複数の端末を接続し、複数のユーザーが同時にコンピュータを利用できるようにしたシステム
    • 3: コンピュータ間通信
      • それまではコンピュータから別のコンピュータにデータを移したい時は、磁気テープやフロッピーディスクなどの外部記憶媒体にデータを一旦保存して、それを物理的に輸送しなければいけなかった
      • コンピュータ間の通信が可能になったことで、データを瞬時にやり取りできるようになった
    • 4: コンピュータネットワークの登場
      • 1980 年代になると、いろいろな種類のコンピュータを相互に接続できるコンピュータネットワークが登場した
      • ウィンドウシステム
        • コンピュータの画面上で複数の窓(ウィンドウ)を開くことのできるシステム
        • 複数のプログラムなどをウィンドウごとに割り付け、次々と切り替えて実行できる
    • 5: インターネットの普及
      • 1990 年代はじめには、情報処理に力を注ぐ企業や大学にて 1 人に 1 台ずつコンピュータが割り当てられ、ユーザーがコンピュータを専有して使用できる環境になってきた
      • 企業や一般家庭にインターネットが普及し始めた
    • 6: インターネット技術中心の時代へ
      • 電話網の代わりに、インターネットの技術でもある IP 網が用意され、その上で電話やテレビ放送、コンピュータ通信、インターネットが構築されるようになった
    • 7:「単につなぐ」時代から「安全につなぐ」時代へ
      • いまやインターネットは社会のインフラとして必須のものになった
      • 接続後の運用などを検討して十分な自己防衛を行い、安全で健全な通信手段として維持していくことが不可欠な時代
  • プロトコルとは
    • ネットワークアーキテクチャ
      • 様々なプロトコルを体系的にまとめたもの
      • TCP/IP もネットワークアーキテクチャの 1 つで IP・TCP・HTTP などのプロトコルの集合体
    • プロトコル
      • コンピュータとコンピュータがネットワークを利用して通信するために決められた「約束ごと」
  • プロトコルは誰が決める?
    • コンピュータ通信の登場から標準化へ
      • コンピュータ通信が始まった当初は、体系化や標準化が重要とは考えられていなかった
      • しかし、コンピュータの重要性が増し、多くの企業でコンピュータネットワークが導入されていくと、メーカーが違っても互いに通信できるような互換性が重要であると認識されるようになった
        • これがネットワークのオープン化、マルチベンダ化
    • プロトコルの標準化
      • ISO(International Organization for Standization: 国際標準化機構) は、国際標準として OSI(Open Systems Interconnection) と呼ばれる通信体系を標準化した
      • 現在 OSI の定めるプロトコルは普及していないが、OSI プロトコルを設計する際の指針として提唱された OSI 参照モデルはネットワークプロトコルを考える時によく引き合いに出される
      • TCP/IP は ISO の国際標準ではない。TCP/IP は IETF(Internet Engineering Task Force) で提案や標準化作業が行われているプロトコル
  • プロトコルの階層化と OSI 参照モデル
    • プロトコルの階層化
      • OSI 参照モデルでは、通信に必要な機能を 7 つの階層に分け、機能を分割することで複雑になりがちなネットワークプロトコルを単純化する
      • 上位層と下位層の間でサービスのやり取りをする時の約束ごとを「インタフェース」と呼び、通信相手の同じ階層とやり取りをする時の約束ごとを「プロトコル」と呼ぶ
      • 各階層は、階層から特定のサービスを受け、上位層に特定のサービスを提供する
      • 利点
        • 階層化すると、各階層を独立なものとして扱うことができる
        • また、通信の機能分割が行われるため、それぞれの階層のプロトコルの実装が容易になり、それに伴って責任の分界点も明確になる
      • 欠点
        • モジュール化を進めすぎてしまうと、処理が重くなったり、各モジュールで似たような処理が必要になる場合がある
    • OSI 参照モデルの各層の役割
      • 7: アプリケーション層
        • 特定のアプリケーションに特化したプロトコル
      • 6: プレゼンテーション層
        • 機器固有のデータフォーマットと、ネットワーク共通のデータフォーマットの変換
        • データ形式に関する責任を持つ
      • 5: セッション層
        • 通信の管理
        • コネクションの確立・切断
      • 4: トランスポート層
        • 両端ノード間のデータ転送の管理
        • データを確実に相手に届ける役目
      • 3: ネットワーク層
        • アドレスの管理と経路の選択
      • 2: データリンク層
        • 直接接続された機器間でのデータフレームの識別と転送
        • 0 と 1 の数字の列を意味のあるかたまり(フレーム)に分けて、相手に伝える
      • 1: 物理層
        • 0 と 1 を電圧の高低や光の点滅に変換する
  • 通信方式の種類
    • コネクション型とコネクションレス型
      • コネクション型
        • データの送信を開始する前に、送信ホストと受信ホストの間で回線の接続をする
        • 通信の前後にコネクションの確立と切断の処理を行う必要があるが、相手が通信不可能な場合には無駄なデータを送らずに済む
      • コネクションレス型
        • コネクションの確立や切断処理がない
        • 送信したいコンピュータはいつでもデータを送信できる。逆に受け取る側は、いつ誰からデータを受信するかわからない
          • そのため、データを受け取っていないかどうかを常に確認しなければならない
        • 通信相手がいるかどうかの確認を行わないため、受信相手がいない場合や、相手に届かない場合にもデータを送信できる
    • 回線交換とパケット交換
      • 現在のネットワークでは、大きく 2 つの通信方法が利用されている。回線交換とパケット交換である
      • 回線交換
        • 従来の電話で利用されてきた方式
        • 交換機がデータの中継処理をする。コンピュータは交換機に接続され、交換機間は複数の通信回線で接続される
        • 通信をしたい場合には目的のコンピュータとの間にコネクションを確立する。コネクションが切断されるまで、その回線は占有利用される
        • 回線を占有してしまうと、他のコンピュータはその回線を利用できないので、ユーザーの数が多くなると通信できなくなってしまう
      • パケット交換
        • 回線に接続しているコンピュータが送信するデータを複数の小包に分け、転送の順番を待つ行列に並べる方法が考え出された
        • データをパケットとして細分化することで、各コンピュータが一斉にデータを送受信できるようになり、回線を効率的に利用できる
    • 通信相手の数による通信方式の分類
      • ユニキャスト
        • 1 対 1 の通信
      • ブロードキャスト
        • 1 台のホストから接続される全てのホストへ向けて情報を発信する
      • マルチキャスト
        • ブロードキャストと同様に複数のホストへの通信を行うが、通信先を特定のグループに限定している
      • エニーキャスト(Anycast)
        • 1 台のホストから特定の複数のホストに向けて情報を発信する通信だが、マルチキャストとは振る舞いが異なる
        • 特定の複数台のうちからネットワーク上で最適な条件を持つ対象が 1 つ選別され、その対象 1 つにだけ送られる
  • アドレスとは
    • 通信の主体、すなわち送信元と受信先は、「アドレス」によって特定される
    • アドレスの唯一性
      • 1 つのアドレスとして表される対象は明確に特定される必要があり、同じアドレスで表されるものが複数存在してはならない
    • アドレスの階層性
      • コンピュータ通信で用いる MAC アドレスと IP アドレスは、両方とも唯一性はあるが、階層性は IP アドレスだけにある
      • IP アドレスはネットワーク部とホスト部という 2 つの部分から構成され、ホスト部が異なる IP アドレスでも、同じネットワーク部を持つものは必ず同じ組織やグループに接続されている
      • ネットワークの途中にある通過点では、各パケットの宛先アドレスを見て、どのネットワークインタフェースから送り出すか決める
        • そのためにアドレスごとに送出インタフェースを記したテーブルを参照する
        • これは MAC アドレスでも IP アドレスでも同じ
          • MAC アドレスの場合は、このテーブルを転送表(フォワーディングテーブル)という
          • IP アドレスの場合は、このテーブルを経路制御表(ルーティングテーブル)という
          • 転送表には MAC アドレスがそのまま書かれるのに対し、経路制御表に書かれる IP アドレスは集約されたネットワーク部である
  • ネットワークの構成要素
    • 通信媒体とデータリンク
      • データリンク
        • 直接接続された機器間で通信するためのプロトコルやネットワークを指す言葉
        • データリンク名: イーサネット
        • 通信媒体
          • 同軸ケーブル: 伝送速度 10Mbps
          • ツイストペアケーブル: 伝送速度 10Mbps - 10Gbps
          • 光ファイバーケーブル: 伝送速度 10Mbps - 100Gbps
    • ネットワークインタフェース
      • コンピュータをネットワークに接続するには、ネットワークに接続するためのネットワークインタフェースが必要になる
      • このインタフェースは NIC(Network Interface Card)、ネットワークアダプタ、ネットワークカード、LAN カードと呼ばれる
    • リピーター
      • リピーターは OSI 参照モデルの第 1 層の物理層でネットワークを延長する機器
      • ケーブル上を流れてきた電気や光の信号を受信し、増幅や波形の整形などをしたのちに別の側へ再生する機器
      • リピーターによるネットワークの延長では、リピーターの接続段数に制限がある場合がある
        • 10Mbps のイーサネットでは最大 4 つのリピーターを多段接続できるが、100Mbps のイーサネットでは最大で 2 つのリピーターしか接続できない
      • 複数の線を収容できるリピーターもあり、リピーターハブと呼ばれる
    • ブリッジ / レイヤ 2 スイッチ
      • ブリッジは OSI 参照モデルの第 2 層、データリンク層でネットワーク同士を接続する装置
      • データリンクのフレームを認識してブリッジ内部のメモリにいったん蓄積し、接続された相手側のセグメントに新たなフレームとして送出する
      • データリンクのフレームには、フレームが正しく届いたかどうかをチェックするための FCS(Frame Check Sequence) と呼ばれるフィールドがある。ブリッジはこのフィールドをチェックして、壊れたフレームを他のセグメントへ送信しないようにする働きがある
      • セグメント
        • 分割、区分といった意味だが「ネットワーク」を指して使われる
    • ルーター / レイヤ 3 スイッチ
      • ルーターは OSI 参照モデルの第 3 層、ネットワーク層の処理を行う
      • ブリッジは物理アドレス(MAC アドレス)で処理を行うが、ルーターはネットワーク層のアドレスで処理を行う
        • TCP/IP でのネットワーク層のアドレスは IP アドレスになる
      • ルーターは異なるデータリンクを相互に接続できる
        • イーサネットとイーサネットを接続したり、イーサネットと FDDI を接続できる
    • レイヤ 4-7 スイッチ
      • レイヤ 4-7 スイッチは、OSI 参照モデルのトランスポート層からアプリケーション層の情報に基づいて配送処理を行う
      • 負荷分散を実現する方法の 1 つとして、Web サーバーの手前にロードバランサーというレイヤ 4-7 スイッチの一種を設置する場合がある
      • また、通信が混雑した場合などは音声通話のような即応性が求められる通信を優先し、メールやデータ転送といった多少遅延しても問題ない通信を後回しに処理することがある。このような処理を帯域制御と呼び、これもレイヤ 4-7 スイッチの機能の一部
    • ゲートウェイ
      • ゲートウェイとは、OSI 参照モデルのトランスポート層からアプリケーション層までの階層で、データを変換して中継する装置のこと
      • レイヤ 4-7 スイッチと同じく、トランスポート層以上の情報を見てパケットを処理しますが、ゲートウェイにはデータを中継するだけでなく、データを変換する役割がある
  • 現在のネットワークの姿
    • 実際のネットワークの構成
      • 道路を例に説明する
      • 高速道路に相当するのが「コア(バックボーン)」
      • インターチェンジに相当する部分は「エッジ」
      • コンピュータネットワークでエッジへと接続されている部分を「アクセス(アグリゲーション)」

2: TCP/IP 基礎知識

  • TCP/IP 登場の背景とその歴史
    • 軍事技術の応用から
      • 1960 年代、通信している途中にネットワークの一部が敵の攻撃によって破壊されても、迂回経路を通してデータが配送され、通信が停止しないようなネットワークが望まれた
      • パケット通信の必要性が唱えられるようになった
    • ARPANET の誕生
      • 1969 年、当初ネットワークは、アメリカ西海岸の大学と研究機関のうちの 4 つのノードを結んだものだった
        • パケット交換技術の実用性を試験するためのネットワーク
      • このネットワークは、一般のユーザーも取り込み大規模なネットワークに発達した
      • これが ARPANET と呼ばれるネットワークで、インターネットの期限と言われている
    • TCP/IP の誕生
      • ARPANET の実験では、信頼性の高い通信手段を提供する総合的な通信プロトコルの実験も行われた。そして 1970 年代前半に TCP/IP が開発された
      • その後、1982 年頃まで仕様が決定され、1983 年には ARPANET で使う唯一のプロトコルになった
    • UNIX の普及とインターネットの拡大
      • 1980 年前後の大学や研究所では、コンピュータの OS として BSD UNIX が広く利用された。この OS の内部に TCP/IP が実装された
      • 1980 年代は LAN が発達するとともに、UNIX ワークステーションの普及が急速に進んだ。同時に TCP/IP によるネットワークの構築が盛んに行われるようになった
      • TCP/IP による世界的なネットワークを「インターネット」と呼ぶようになったのはこの頃から
      • 1980 年代半ばごろからは、企業などを中心に導入が進んでいた各コンピュータメーカー独自のプロトコルも、次第に TCP/IP に対応するようになっていった
    • 商用インターネットサービスの開始
      • 1990 年代になると、企業や一般家庭に対してインターネットへの接続を提供するサービスが普及し、広く利用されるようになった。このようなサービスを提供する会社を ISP と呼ぶ
      • TCP/IP は研究ネットワークとしてインターネットで長い間運用されてきたことで、商用サービスにも耐えうる成熟したプロトコルになっていった
  • TCP/IP の標準化
    • TCP/IP という言葉は TCP と IP という 2 つのプロトコルだけでなく、TCP や IP に関係する多くのプロトコルを含む
    • TCP/IP 標準化の精神
      • 他の標準化と比べると 2 つの点が大きく異なる
        • 1 つはオープンであること
        • もう 1 つは標準化するプロトコルが実際に使えるプロトコルであるかどうかを重視すること
          • 開発重視の姿勢でプロトコルが決められてきた
      • TCP/IP に比べて OSI が一般に普及しなかったのは、動作するプロトコルを早く作れなかったこと、急速な技術革新に対応できるようなプロトコルの決定や改良を行える仕組みがなかったこと
    • TCP/IP の仕様書 RFC
      • TCP/IP のプロトコルは、IETF で議論され標準化される。標準化しようとするプロトコルは、RFC(Request For Comments) と呼ばれるドキュメントになり、インターネット上で公開される
      • RFC になったドキュメントには番号が付けられ、IP は RFC791 で TCP は RFC793 で仕様を決められている。主要なプロトコルや標準に対しては、変化しない番号付けも行われている
    • TCP/IP プロトコルの標準化の流れ
      • 次のような段階を経る
        • 仕様を煮詰めるインターネットドラフト(ID: Internet-Draft)の段階
          • インターネットドラフトの有効期間は 6 ヶ月
        • 標準化したほうがよいと認められると RFC となり、提案標準(Proposed Standard)になる
        • そして標準の草案であるドラフト標準(Draft Standard)になる
        • 最後に標準(Standard)になる
      • 標準を決めてから普及させるような標準化団体とは根本的に考え方が違う。TCP/IP の世界では、標準になった時にはすでに十分に普及している
    • RFC の入手方法
  • インターネットの基礎知識
    • インターネットとは
      • 英語の internet はもともとは複数のネットワークを結んで 1 つのネットワークにすることを表していた
      • 現在インターネットというと、ARPANET から発展し、全正解を接続しているコンピュータネットワークのことを指す
    • インターネットと TCP/IP の関係
      • インターネットで通信するためにはプロトコルが必要
      • インターネットのプロトコルといえば TCP/IP で、TCP/IP といえばインターネットのプロトコル
    • ISP と地域ネット
      • インターネットに接続するためには、ISP や地域ネットに接続を依頼することになる
      • 会社や家庭のコンピュータをインターネットに接続する場合、インターネットへの接続契約を ISP との間で交わすことになる
  • TCP/IP プロトコルの階層モデル
    • ハードウェア(物理層)
      • TCP/IP の階層モデルでは最下位層に物理的にデータを転送してくれるハードウェアを置いている
        • ハードウェアとは、イーサネットや電話回線などの物理層のこと
    • ネットワークインタフェース層(データリンク層)
      • ネットワークインタフェース層は、イーサネットなどのデータリンクを利用して通信するためのインタフェースとなる階層
        • NIC を動かすための「デバイスドライバ」と考えてよい
    • インターネット層(ネットワーク層)
      • インターネット層では IP プロトコルが使われる。IP プロトコルは IP アドレスをもとにして、パケットを転送する
      • TCP/IP の階層モデルでは、一般にこのインターネット層とトランスポート層がホストの OS に組み込まれることを想定している
      • 特にルーターには、インターネット層を利用してパケットを転送する機能を実装しないといけない
        • ブリッジやリピーター、ハブの場合は必ずしも IP や TCP を実装する必要はない
      • IP(Internet Protocol)
        • ネットワークをまたいでパケットを配送し、インターネット全体にパケットを送り届けるためのプロトコル
        • それぞれのホストを識別するために、IP アドレスと呼ばれる識別子を使う
      • ICMP(Internet Control Message Protocol)
        • IP パケットの配送中に何らかの異常が発生してパケットを転送できなくなった場合に、パケットの送信元に異常を知らせるために使われるプロトコル
      • ARP(Address Resolution Protocol)
        • パケットの送り先の物理的なアドレスを IP アドレスから取得するプロトコル
    • トランスポート層
      • トランスポート層の最も重要な役割はアプリケーションプログラム間の通信を実現すること
      • どのプログラムとどのプログラムが通信しているか識別する必要がある
        • ポート番号と呼ばれる識別子が使われる
      • TCP(Transmission Control Protocol)
        • TCP はコネクション型で信頼性のあるトランスポート層のプロトコル
        • ただし、コネクションの確立・切断をするだけで制御のためのパケットを約 7 回もやり取りするので、転送するデータの総量が少ない場合には無駄が多くなる
        • ネットワークの利用効率を向上させるための複雑な仕組みがいろいろと組み込まれているため、ビデオ会議の音声・映像データなどのように一定間隔で決められた量のデータを転送する通信にはあまり向いていない
      • UDP(User Datagram Protocol)
        • UDP は TCP とは異なり、コネクションレス型で信頼性のないトランスポート層プロトコル
        • UDP は送信したデータが相手に届いているかどうかの確認はしない
        • パケット数が少ない通信や、ブロードキャストやマルチキャストの通信、ビデオや音声などのマルチメディア通信に向いている
    • アプリケーション層(セッション層以上の上位層)
      • TCP/IP 階層モデルでは、OSI 参照モデルのセッション層やプレゼンテーション層、アプリケーション層はすべてアプリケーションプログラムの中で実現されると考えられている
      • TCP/IP のアプリケーションの多くは、クライアント / サーバーモデルで作られている
      • WWW(World Wide Web)
        • ブラウザとサーバーの間の通信で使われるプロトコルが HTTP
        • WWW では、HTTP が OSI 参照モデルのアプリケーション層のプロトコル、HTML がプレゼンテーション層のプロトコルといえる
      • 電子メール
        • 電子メールの配送では SMTP(Simple Mail Transfer Protocol) というプロトコルが利用される
        • 当初、インターネットの電子メールではテキスト形式でしかメッセージを送信できなかった。現在はデータ形式を拡張する MIME の仕様が一般的となり、映像や音声のファイルなど様々な情報を送れる
          • この MIME は OSI 参照モデルの第 6 層、プレゼンテーション層の機能といえる
      • ファイル転送(FTP: File Transfer Protocol)
        • ファイル転送とは、異なるコンピュータのハードディスク上に存在するファイルを自分のコンピュータのハードディスクに転送したり、あるいは自分のコンピュータのファイルを別のコンピュータへ移したりすること
        • ファイル転送のプロトコルとしては、FTP が古くから利用されている
      • 遠隔ログイン(TELNET と SSH)
        • 遠隔ログインとは、遠く離れたコンピュータにログインして、そのコンピュータでプログラムを走らせる機能
        • TCP/IP では、遠隔ログインでは、TELNET プロトコルや SSH プロトコルがよく用いられる
      • ネットワーク管理(SNMP: Simple Network Management Protocol)
        • TCP/IP では、ネットワーク管理に SNMP というプロトコルが利用される
        • SNMP で管理されるルーターやブリッジ、ホストなどはエージェントと呼ばれる。ネットワーク機器を管理するプログラムをマネージャと呼ぶ
        • SNMP はこのエージェントとマネージャの通信に使われるプロトコル

3: データリンク

  • データリンクの役割
    • 「データリンク」という言葉は、OSI 参照モデルのデータリンク層を指す用語として使われる場合と、具体的な通信手段(イーサネット、無線 LAN など)を指す一般的な用語として使われる場合がある
    • TCP/IP では OSI 参照モデルのデータリンク層以下(データリンク層と物理層)を定義していない。これらが透過的に機能していることを前提にしている
      • しかし、TCP/IP とネットワークの理解を深めるためには、データリンクについての知識が重要になる
    • データリンク層のプロトコルは、通信媒体で直接接続された機器間で通信するための仕様を定めている
      • 通信媒体にはツイストペアケーブル、同軸ケーブル、光ファイバー、電波、赤外線などがある
  • データリンクの技術
    • MAC アドレス
      • MAC アドレスはデータリンクに接続しているノードを識別するために利用される
      • イーサネットや FDDI では IEEE802.3 で規格化された MAC アドレスが利用される
      • MAC アドレスは 48 ビットの長さを持つ
        • 3 - 24 ビットはベンダ識別子と呼ばれ、NIC の製造メーカーごとに特定の数字が割り当てられている
        • 25 - 48 ビットはメーカーが製造したカードごとに違う数字を割り当てる
      • このアドレスは一般的なネットワークインタフェースカードの場合には ROM に焼き込まれており、同じ MAC アドレスが付けられているネットワークインタフェースカードは世界中で 1 つしかないことになっている
        • 同じ MAC アドレスが存在しても、それが同じデータリンク内になければ問題ない
    • 媒体共有型のネットワーク
      • 媒体共有型のネットワークとは、通信媒体を複数のノードで共有するネットワーク
      • 媒体共有型のネットワークで優先権を制御する仕組みとしては、コンテンション方式やトークンパッシング方式がある
        • コンテンション方式(Contention)
          • コンテンション方式とは、データの送信権を競争で奪い取る方式。CSMA(Carrier Sense Multiple Acess) 方式とも呼ばれる
          • 各ステーションは、データを送信したくなったら、早いもの勝ちで通信路を使用してデータを送信する
            • データリンクではノードのことをステーションと呼ぶことが多い
          • 複数のステーションからデータが同時に送信された場合には、互いのデータが衝突し壊れてしまう
            • この状態をコリジョンという
          • イーサネットの一部では CSMA 方式を改良した CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 方式が採用されている
            • 衝突(collision)を早期に検出して、素早く通信路を解放する制御が加えられている
        • トークンパッシング方式
          • トークンと呼ばれるパケットを巡回させ、このトークンで送信権を制御する。トークンを持っているステーションだけがデータを送信できる
          • この方式には衝突が発生しないことと、誰にでも平等に送信権が回ってくるという特徴がある
            • このため、ネットワークが混雑しても性能があまり低下しない
          • 一方で、トークンが回ってくるまでデータを送信できないため、混雑していない時に、データリンクの性能を 100% 出しにくくなる
    • 媒体非共有型のネットワーク
      • 通信媒体を共有せずに専有する方式
      • ステーションはスイッチと呼ばれる装置に直接接続され、そのスイッチがフレームを転送する
      • この方式では、送受信の通信媒体が共有されないため、多くの場合、全二重通信となる
        • 半二重通信とは、送信をしている間には受信できず、受信をしている間は送信できないような通信のこと。無線式のトランシーバーと同じで、こちらが話す時には相手からの声を聞けない
        • 全二重通信は送信と受信を同時に行える通信
      • この方式は ATM などで採用されている他、最近のイーサネットでも主流になっている
      • この方式では、スイッチに高度な機能を持たせることにより、仮想的なネットワークの構築やデータ流量の制御なども可能になる。その反面、スイッチが故障するだけで接続されたすべてのコンピュータ間の通信が不可能になってしまう欠点もある
    • MAC アドレスによる転送
      • 媒体非共有型で利用されていたスイッチ技術をイーサネットなどでも利用できるようにする機器が登場した。これがスイッチングハブやイーサネットスイッチと呼ばれるもの
      • イーサネットスイッチは複数のポートを持ったブリッジといえる
      • これらデータリンク層における各フレームの通過点では、そのフレームの宛先 MAC アドレスを見て、どのインタフェースから送り出すかを決める。その決定の時に参照する、送出インタフェースを記したテーブルのことを、転送表(フォワーディングテーブル)という
        • MAC アドレスには階層性はないので、転送表のエントリはそのデータリンク内に存在する機器の数だけ必要
    • ループを検出するための技術
      • ブリッジでネットワークを接続する時に、ループを作った場合
        • 最悪の場合、フレームが次々にコピーされ、それがぐるぐると永久に回り続ける
      • そこでループを解決する方法としてスパニングツリーと呼ばれる方式と、ソースルーティングと呼ばれる方式の 2 つが考えられた
      • スパニングツリー
        • 各ブリッジは 1 - 10 秒の間隔で BPDU(Bridge Protocol Data Unit) と呼ばれるパケットを交換する
        • そして、通信に使用するポートと使用しないポートを決定し、ループを消すように制御する
        • 障害が発生した場合には、通信路が自動的に切り替わり、使用されていないポートを使って通信が行われるようになる
        • スパニングツリーには、コンピュータやルーターの機能には関係なく、ブリッジの機能だけでループを解消できるという特徴がある
      • ソースルーティング
        • この方式では、送信コンピュータがどのブリッジを経由してフレームを流すかを決定し、フレームの RIF(Routing Information Field) に書き込む
        • ブリッジはその RIF 情報をもとに配送処理を行う
        • これにより、ブリッジによるループがあったとしても、フレームはループすることなく目的地に到達する
        • この場合、送信コンピュータ自体がソースルーティング機能を持っていないといけない
    • VLAN(Virtual LAN)
      • ネットワークの負荷を分散させたり、部署や席の入れ替えをしたりするたびに、ネットワークのトポロジーを変更しなければならない場合がある
        • 通常は配線を変更する必要がある
      • VLAN 技術を利用できるブリッジ(スイッチ)を使えば、ネットワークの配線を変えずに、ネットワークの構造を変えることができる
      • 単純な VLAN
        • スイッチのポートごとにセグメントを分けることで、ブロードキャストのトラフィックが流れる範囲を区切ることができ、ネットワークの負荷を軽減したり、セキュリティを向上させることができる
        • 異なるセグメント間で通信するためには、ルーターの機能を備えたスイッチ(レイヤ 3 スイッチ)を利用するか、セグメント間をルーターで結ばなければならない
      • 上記の VLAN を拡張し、異なるスイッチをまたいだセグメントを構築できるようにしたものが IEEE802.1Q で標準化されたタグ VLAN
        • タグ VLAN ではセグメントごとに一意となる VLAN ID を設定する
        • スイッチ間でフレームを転送する時は、イーサネットのヘッダの中に VLAN タグを挿入し、その値をもとにしてどのセグメントにフレームを転送するかを決定する
  • イーサネット(Ethernet)
    • データリンクの代表選手は、現在最も普及しているイーサネット
    • 他のデータリンクと比べて制御の仕組みが単純なため、NIC やデバイスドライバが作りやすいという特徴がある
      • そのためイーサネットの NIC は LAN の普及期に他の NIC よりも安い価格で販売されていた
      • 低価格で利用できたことが、イーサネットの普及に大きな影響を与えた
    • イーサネットにはいろいろな種類がある。通信速度が違う場合には、速度変換機能を持つブリッジやスイッチングハブまたはルーターでなければ相互に接続できない
    • イーサネットの歴史
      • イーサネットは、同軸ケーブルを使うバス型接続の 10BASE5 が最初に規格化された
      • 当初のイーサネットでは、アクセス制御方式として CSMA/CD が採用されており、半二重通信が前提とされていた
      • その後、媒体非共有でスイッチと接続されるようになったイーサネットには衝突検知が必要なくなり、高速化への障壁もなくなった
    • イーサネットのフレームフォーマット
      • イーサネットフレームの先頭には、1 と 0 を交互に並べたプリアンブルと呼ばれるフィードが付けられる
        • これは「ここからイーサネットフレームが始まるよ」ということを示し、相手の NIC がフレームとの同期をとれるようにする
        • プリアンブルは末尾が「11」の SFD(Start Frame Delimiter) と呼ばれるフィードで終わり、それ以降がイーサネットフレームの本体になる
      • フレーム本体の先頭に来るイーサネットのヘッダは合計 14 オクテットある
        • 1 オクテットは 8 ビット。バイトとほぼ同じ意味
        • 宛先 MAC アドレスのフィールドが 6 オクテット、送信元 MAC アドレスのフィールドが 6 オクテット、そしてデータ部分で運んでいる上位層のプロトコルの種類を表すフィールドが 2 オクテット
      • また、フレームの末尾には FCS(Frame Check Sequence) という 4 オクテットのフィールドがある
  • 無線通信
    • 無線通信では、電波や赤外線、レーザー光線などを利用する
    • 無線通信の中で、オフィス内のような LAN の範囲を比較的高速で接続するものを無線 LAN と呼ぶ
    • 無線通信の種類
      • 無線通信はその通信距離に応じて、分類できる
      • 短距離無線
        • 通信距離: 数 m
      • 無線 PAN(Personal Area Network)
        • 通信距離: 10m 前後
        • 関連団体や技術名称: Bluetooth
      • 無線 LAN(Local Area Network)
        • 通信距離: 100m 前後
        • 規格化団体など: IEEE802.11
        • 関連団体や技術名称: Wi-Fi
      • 無線 MAN(Metropolitan Area Network)
        • 通信距離: 数 km - 100km
        • 関連団体や技術名称: WiMAX
      • 無線 RAN(Regional Area Network)
        • 通信距離: 200km - 700km
      • 無線 WAN(Wide Area Network)
        • 関連団体や技術名称: 3G、LTE、4G
    • IEEE802.11
      • IEEE802.11 は無線 LAN プロトコルの物理層とデータリンク層の一部(MAC 層)を定義した規格
      • IEEE802.11 は IEEE802.11 関連の規格の基礎であり、ここで規定されるデータリンク層の一部(MAC 層)は、IEEE 802.11 のすべての規格で利用されている
      • MAC 層ではイーサネットと同じ MAC アドレスが利用され、CSMA/CD とよく似た CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance) というアクセス制御方式を採用している
    • IEEE802.11b、IEEE802.11g
      • IEEE802.11b と IEEE802.11g は 2.4GHz 帯の電波を利用する無線 LAN
      • データ転送速度は、最大 11Mbps および 54Mbps で通信可能な距離は 30 - 50m 程度
    • IEEE802.11a
      • 無線 LAN の物理層として 5GHz 帯の周波数を利用し、最大 54Mbps までの伝送速度を実現する規格
      • IEEE802.11b/g とは互換性がないが、両方に対応した基地局も製品化されている
    • IEEE802.11n
      • IEEE802.11g および a をベースに、複数のアンテナを同期させて通信する MIMO(Multiple-Input Multiple-Output) という技術を採用することで高速化を実現したのが、IEEE802.11n
      • 物理層としては 2.4GHz 帯または 5GHz 帯を使う
      • 最大 150Mbps の伝送速度が利用できる
    • 無線 LAN を使用する場合の留意点
      • 無線 LAN は利用者の移動性、機器配置の自由性を確保するために、電波の性質を利用して広い範囲で利用できるようになっている
      • これは、通信可能範囲内であれば、許された利用者以外でもこの電波を受信できることを意味する
      • このため、盗聴や改ざんといった危険に常にさらされていることになる
    • Bluetooth
      • Bluetooth は IEEE802.11b/g などと同じ 2.4GHz 帯の電波を使って通信する規格
      • データ転送速度はバージョン 2 で 3Mbps(実際のスループットは 2.1Mbps)
      • 通信可能な距離は、電波強度によって最大 1m、10m、100m の 3 種類がある
      • 通信可能な端末は原則として最大 8 台
    • WiMAX(Worldwide Interoperability for Microwave Access)
      • WiMAX はマイクロ波を使って、企業や自宅への無線接続を行う方式
      • WiMAX は、無線 MAN に属し、大都市圏をエリアとする広範囲なワイヤレスネットワークをサポートする
    • ZigBee
      • 家電などに組み込むことを前提に、低消費電力で短距離の無線通信を実現する規格
      • 最大 65536 個の端末間を無線通信でつなぐ
      • 伝送速度は使用する周波数によって変わるが、日本で利用可能な 2.4GHz 帯を利用するものでは最大 250kbps とされている
  • PPP(Point-to-Point Protocol)
    • PPP とは
      • 1 対 1 でコンピュータを接続するためのプロトコル
      • PPP は OSI 参照モデルの第 2 層に相当するデータリンクプロトコルと言える
      • イーサネットや FDDI などは OSI 参照モデルのデータリンク層だけではなく、物理層にも関係する。具体的には、イーサネットは同軸ケーブルやツイストペアケーブルを使い、その中で 0 と 1 をどのような電気信号で表すかを決めている
      • これに対して、PPP は純粋なデータリンク層で、物理層は何でも構わない
      • PPP は電話回線や ISDN、専用回線、ATM 回線などで利用される
      • また PPPoE(PPP over Ethernet) というイーサネットのデータ部に PPP のフレームを格納して転送する方式も登場し、ADSL やケーブルテレビなどを使ったインターネット接続で利用される
    • LCP(Link Control Protocol) と NCP(Network Control Protocol)
      • PPP ではデータ通信を開始する前に PPP レベルでコネクションを確立する
      • コネクションを確立する時には、認証や圧縮、暗号化などの設定を行う
      • PPP の機能のうち、上位層に依存しないプロトコルが LCP、上位層に依存するプロトコルが NCP
        • 上位層が IP の時の NCP が IPCP(IP Control Protocol)
      • LCP はコネクションの確立や切断、パケット長の設定、認証プロトコルの設定、通信品質の監視をするかどうかなどの設定を行う
      • IPCP は IP アドレスの設定や TCP/IP のヘッダ圧縮をするかどうかなどのやり取りをする
      • PPP で接続する時には、通常ユーザー ID やパスワードによる認証が行われる。PPP では通信する双方向で認証を行えるようになっている
        • PPP で利用される認証方式には、PAP(Password Authentication Protocol) と CHAP(Challenge Handshake Authentication Protocol) の 2 種類がある
        • PAP はコネクションの確立時に 1 回だけ ID とパスワードをやり取りする方法。やり取りするパスワードは暗号化されずに平文のまま送信されるため、盗聴や、コネクション確立後に回線を乗っ取られるなどの危険性がある
        • CHAP は毎回パスワードが変更される OTP(One Time Password) を使用して、盗聴の問題を防ぐ。また、コネクション確立後に定期的にパスワードを交換することにより、通信相手が途中から入れ替わっていないかどうかをチェックできる
    • PPP のフレームフォーマット
      • PPP は HDLC(High Level Data Link Control Procedure) と呼ばれるプロトコルを参考に作られている
      • HDLC ではフレームの区切りを「01111110」で表現する。これをフラグシーケンスと呼ぶ
        • フラグシーケンスではさまれたフレーム内部では、「1」が 6 つ以上連続することは許されない
      • コンピュータでダイアルアップ接続をする時、PPP はソフトウェアで実現される。そのため「0」の挿入や削除の処理、FCS の計算をすべてコンピュータの CPU が処理しなければならず、PPP はコンピュータに大きな負荷をかける方式と言える
    • PPPoE
      • インターネット接続サービスによっては、イーサネットを利用して PPP の機能を提供する PPPoE が利用される場合がある
      • そのようなサービスでは、通信回線をイーサネットであるかのようにエミュレートする
        • しかし、イーサネットには認証機能がなく、コネクションの確立や切断の処理もないため、利用時間による課金などもできない
      • PPPoE によりイーサネット上でコネクションを管理すれば、PPP の認証機能などを利用してプロバイダが顧客の管理をしやすくなる
  • その他のデータリンク
    • ATM(Asynchronous Transfer Mode)
      • ATM はデータをヘッダ 5 オクテット、データ 48 オクテットのセルと呼ばれる単位で処理するデータリンク
      • 回線の専有時間を短くすることで大容量のデータを効率よく転送できるようにしており、主に広域を結ぶネットワークで利用されてきた
      • 特徴
        • ATM はコネクション指向のデータリンク
          • 通信を開始する前に必ず通信回線の設定をしなければならない
          • ただし、同時に複数の相手と通信回線を接続できる
        • ATM にはイーサネットや FDDI のように送信権の制御はない
      • ATM と上位層
        • イーサネットでは 1 つのフレームで最大 1500 オクテット、FDDI では 4352 オクテットのデータを転送できるが、ATM ではセル 1 つで 48 オクテットのデータしか運べない
        • この 48 オクテットのデータ部に IP ヘッダや TCP ヘッダを入れたのでは、上位層のデータをほとんど送れない
        • このため、ATM は通常単独で利用するのでなく、AAL(ATM Adaptation Layer) と呼ばれる上位層とともに利用する
          • IP の場合は AAL5 と呼ばれる上位層が利用される
        • IP のパケットは最大で 192 個のセルに分割されて送信される
          • 逆に言うと、192 個のセルのうち 1 つでも失われると、IP パケットは破壊されてしまう。この場合最大で 192 個すべてのセルを再送することになる
          • これは ATM の大きな問題と言われる
    • POS(Packet over SDH/SONET)
      • POS はデジタル信号を光ファイバーでやり取りするための物理層の規格である SDH(SONET) 上でパケット通信を行うためのプロトコル
      • SDH は電話回線や専用線などで、信頼性の高い光伝送ネットワークとして広く利用されている
    • FDDI(Fiber Distributed Data Interface)
      • FDDI は光ファイバーやツイストペアケーブルを用いて 100Mbps の伝送速度を実現できるため、ネットワークのバックボーンやコンピュータ間を高速に接続するために利用されていた
      • 現在は、高速 LAN としてはギガビットイーサネットなどに押され、使われなくなってきている
      • FDDI はトークンパッシング方式を採用していて、ネットワークが混雑した時の輻輳に強い
        • 輻輳(ふくそう): ネットワークが非常に混雑して、ルーターやスイッチがパケットやセルを処理しきれなくなった状態のこと
    • Token Ring
      • Token Ring は IBM によって開発されたトークンパッシング形式の LAN で 4Mbps または 16Mbps のデータ伝送速度を実現する
      • FDDI はこの Token Ring を発展させたものといえる
      • IBM の環境以外にはあまり普及していない
    • その他、以下がある
      • 100VG-AnyLAN
      • ファイバーチャネル(Fiber Channel)
      • HIPPI
      • IEEE1394
      • HDMI
      • iSCSI
      • InfiniBand
      • DOCSIS
      • 高速 PLC (高速電力線搬送通信)
  • 公衆アクセス網
    • ここでは LAN のような構内の接続ではなく、外部と接続する場合に使用する公衆通信サービスについて解説する
    • 公衆通信サービスとは、電話のように NTT や KDDI、ソフトバンクなどの通信事業者に料金を払って通信回線を借りる形態
    • アナログ電話回線
      • いわゆる固定電話回線を利用して通信を行う
      • コンピュータを電話回線で接続するためには、デジタル信号とアナログ信号を変換するモデムが必要になる
      • モデムによる通信速度は 56kbps 程度と低速、現在はほとんど利用されていない
    • 移動体通信サービス
      • 日本では移動体通信サービスとして、携帯電話と PHS が利用できる
      • 従来、それほど高速での通信はできなかったが、現在では Mobile WiMAX や LTE といった技術により、携帯電話によって数 Mbps - 数十 Mbps 程度のデータ通信を行える
    • ADSL
      • ADSL は既存のアナログ電話回線を拡張利用するサービス
    • FTTH(Fiber To The Home)
      • 高速の光ファイバーを、ユーザーの自宅や会社の建物内に直接引き込む手法
      • 建物の中まで光ファイバーが来るが、それを直接コンピュータに接続するのではなく、ONU という装置で光を電気信号に変換してからコンピュータやルーターに接続するのが普通
      • FTTH を利用すると、常時安定した高速通信が可能になる
    • ケーブルテレビ
      • 本来、電波を使うテレビ放送を、ケーブルを使って放送するサービスがケーブルテレビ
      • 放送局側から加入者宅までの通信はテレビ放送と同じ周波数帯を使用し、加入者宅から放送局側へは放送では利用されていない低周波数帯を使用する
        • このためケーブルテレビでは、下りのデータ転送速度に比べて、上りのデータ転送速度が低い
    • 専用回線(専用線)
      • インターネット利用者の急速な増加により、専用回線サービスの低価格化、広帯域化、多様化が進み、現在様々な「専用線サービス」が提供されている
      • 専用回線の接続形態は必ず 1 対 1 になる
    • VPN(Virtual Private Network)
      • 離れた地域を結ぶ VPN サービスには、IP-VPN、広域イーサネットがある
      • IP-VPN
        • IP ネットワークに VPN を構築する
        • IP ネットワーク上に MPLS(Multiprotocol Label Switching) 技術を用いて VPN を構築するサービスを通信事業者が提供しているものがある
        • MPLS はラベルと呼ばれる情報を IP パケットに付加して通信を制御する
        • 複数の顧客の VPN を 1 つの MPLS 網状で区別し、保護されて閉じた形のプライベートなネットワークとして利用できる
        • 通信事業者が提供している IP-VPN サービスを利用する以外に、企業などが独自にインターネット上に VPN を構築する場合もある
      • 広域イーサネット
        • 通信事業者が提供する、離れた地域を結ぶイーサネット接続のサービス
        • IP-VPN が IP 層での接続サービスであるのに対して、広域イーサネットはデータリンク層であるイーサネットを用いた VLAN を利用する
    • 公衆無線 LAN
      • 公衆無線 LAN とは、Wi-Fi を利用したサービス
      • ホットスポットと呼ばれる電波受信可能エリアを駅、飲食店などの人が集まる場所に設置し、無線 LAN インタフェースを持ったラップトップ型のコンピュータやスマートフォンから接続する
    • その他の公衆通信サービス
      • X.25
        • X.25 は電話網の改良版的なネットワーク
      • フレームリレー
      • ISDN

4: IP プロトコル

  • IP はインターネット層のプロトコル
    • TCP/IP の心臓部とも言えるのが、インターネット層。これは主に IP と ICMP(Internet Control Message Protocol) という 2 つのプロトコルから構成される
    • この章では IP について説明する
    • IP(IPv4、IPv6) は OSI 参照モデルの第 3 層に相当
      • ネットワーク層の役割を一言で言うと「終点ノード間の通信を実現する」ことにある
      • ネットワーク層の下位に位置するデータリンク層は、同じ種類のデータリンクだけで接続されているノード間のパケット転送を行う。データリンクを超えた通信をするためには、ネットワーク層が必要
    • ネットワーク層とデータリンク層の関係
      • データリンク層は直接接続された機器同士の通信を提供する。それに対し、ネットワーク層である IP は直接接続されていないネットワーク間での転送を実現する
  • IP の基礎知識
    • IP には大きく 3 つの役割がある。IP アドレス、終点ホストまでのパケット配送(ルーティング)、IP パケットの分割処理と再構築処理の 3 つ
    • IP アドレスはネットワーク層のアドレス
      • MAC アドレスは、同一のデータリンク内にあるコンピュータを識別するために使われる
      • IP アドレスは、「ネットワークに接続されているすべてのホストの中から、通信を行う宛先を識別する」時に使用される
      • IP アドレスの形式はホストがどのようなデータリンクに接続されていてもまったく同じものが使われる
      • ブリッジやスイッチングハブなど、物理層やデータリンク層でパケットを中継する機器には IP アドレスを設定する必要はない
    • 経路制御(ルーティング)
      • 経路制御は宛先 IP アドレスのホストまでパケットを届けるための機能
      • TCP/IP ではネットワークの 1 区間を IP パケットが跳ぶことをホップといい、この 1 区間のことを 1 ホップという
      • IP の経路制御はホップバイホップルーティングという方式で行われる
        • ホップバイホップルーティングでは、ルーターやホストは IP パケットに次の転送先となるルーターやホストを指示するだけで、最終目的地までの経路を指示するわけではない
      • 経路制御表(ルーティングテーブル)
        • 宛先のホストまでパケットを送るため、すべてのホストやルーターは経路制御表と呼ばれる情報を持っている
        • IP アドレスが付けられた機器のことを「ホスト」と呼ぶ。より正確には「IP アドレスが付けられているが、経路制御を行わない機器」をホスト、「IP アドレスが付けられていて、経路制御を行う機器」を「ルーター」、ホストとルーターをあわせて「ノード」と呼ぶ
    • データリンクの抽象化
      • データリンクには、その種類によって固有の特徴がある。それを抽象化するのも IP の重要な役割
      • データリンクのアドレスは IP アドレスによって抽象化される
      • 最大転送単位(MTU: Maximum Transmission Unit) もデータリンクごとに異なるが、これを抽象化するために、IP では分割処理を行う
    • IP はコネクションレス型
      • パケットを送信する前にコネクションの確立を行わない
      • 上位層に送信すべきデータが発生し IP に送信要求をしたら、すぐに IP パケットにデータを詰めて送信する
      • なぜ IP はコネクションレス型なのか?
        • 機能の簡略化と高速化のため
  • IP アドレスの基礎知識
    • IP アドレスとは
      • IP アドレス(IPv4 アドレス)は 32 ビットの正製数値で表される
      • IP アドレスはホストごとではなく、NIC ごとに割り当てる
    • IP アドレスはネットワーク部とホスト部から構成される
      • 「ネットワーク部」はデータリンクのセグメントごとに値が割り当てられる
      • 「ホスト部」は同一セグメント内で重ならない値を割り当てる
    • IP アドレスのクラス
      • IP アドレスはクラス A、クラス B、クラス C、クラス D という 4 つのクラスに分類されていた
      • これらのクラスは IP アドレスの先頭から 4 ビットまでのビット列の組み合わせによって、ネットワーク部とホスト部を決めている
      • クラス A
        • クラス A は IP アドレスの先頭 1 ビットが「0」で始まる場合
        • IP アドレスの先頭から 8 ビットまでがネットワーク部となる
        • 下位 24 ビットはホストアドレスとして割り当てられる
      • クラス B
        • クラス B は IP アドレスの先頭 2 ビットが「10」で始まる場合
        • IP アドレスの先頭から 16 ビットまでがネットワーク部となる
        • 下位 16 ビットはホストアドレスとして割り当てられる
      • クラス C
        • クラス C は IP アドレスの先頭 3 ビットが「110」で始まる場合
        • IP アドレスの先頭から 24 ビットまでがネットワーク部となる
        • 下位 8 ビットはホストアドレスとして割り当てられる
      • クラス D
        • クラス D は IP アドレスの先頭 4 ビットが「1110」で始まる場合
        • IP アドレスの先頭から 32 ビットまでがネットワーク部となる
        • ホストアドレスの部分はなく、クラス D は IP マルチキャスト通信に使われる
      • IP ホストアドレス割り当て上の注意
        • ホスト部をビットで表した時に、全てのビットを 0 にすることや全てのビットを 1 にすることはできない
    • ブロードキャストアドレス
      • ブロードキャストアドレスは、同一リンクに接続されたすべてのホストにパケットを送信するためのアドレス
      • IP アドレスのホスト部のビットをすべて 1 にすると、ブロードキャストアドレスになる
      • ブロードキャストには、ローカルブロードキャストとダイレクトブロードキャストの 2 つがある
        • 自分が属しているリンク内のブロードキャストがローカルブロードキャスト
        • 異なる IP ネットワークへのブロードキャストには、ダイレクトブロードキャストアドレスを指定する