UUUMエンジニアブログ

UUUMのエンジニアによる技術ブログです

マスタリングTCP/IP 入門編(1)

ミーティング(Meating)って楽しいですね!

system.blog.uuum.jp

はじめまして。攻殻機動隊見習いの小川と申します。
10月からインターン生としてお世話になっています。

攻殻機動隊では毎週勉強会を行っており、金曜日は「マスタリングTCP/IP 入門編」(ページ数は400弱!)という書籍の輪読を行っています。 こちらはネットワーク系の基礎を学ぶ上で定番の一冊になっており、応用編も存在します(応用編はさらに分厚いです)。


このテーマでは勉強会で行った内容をまとめつつ、章を追って簡単に説明していけたらと思います(続くかわかりませんが...)。
僕自身基本情報程度の知識しかないため、内容に不備があるかもしれません。

今日は第1章です!!


第1章 ネットワーク基礎知識

1. ネットワークの背景

導入の部分です。コンピュータやネットワークが大規模化するにつれて一般の人々にも普及し、とても身近なものになりました。

  • コンピュータの普及とともにネットワークが必要になる(スタンドアロンからネットワーク利用の時代へ)。
  • ネットワークの規模も膨らんでいく(プライベートなネットワークからインターネットへ)。
  • コンピュータやインターネットがとても身近になっている(ブログやSNSなど)。

スタンドアロンというのは、ここではコンピュータをネットワークに接続せずに単独で使用する状態をいいます。

2. コンピュータやネットワークの発展の歴史

コンピュータの利用形態の変遷を、1950年代から現在まで大きく7つに分けて紹介しています。

1. バッチ処理(Batch Processing)[1950年代]
  • バッチ処理とは、プログラムなどを一括にまとめて処理する方式。
  • プログラムはカードに打ち込み、それをカードリーダーに読み込ませてコンピュータが処理を行う。
  • コンピュータはとても高価で巨大。操作は複雑だった。
2. タイムシェアリングシステム(TSS)[1960年代]
  • TSSとは1台のコンピュータに複数の端末を接続し、同時に利用できるようにしたもの。
  • インタラクティブ(対話的)な操作が可能になる(BASIC)。
  • ここからネットワークとコンピュータの結びつきが始まる。
3. コンピュータ間通信[1970年代]
  • コンピュータが普及し、一般の企業にも導入されるようになる。
  • コンピュータ間通信を行う技術が開発され、複数のコンピュータでの分散処理が可能になった。
4. コンピュータネットワーク[1980年代]
  • メーカーの異なる様々なコンピュータがネットワークにより結ばれる。
  • ウィンドウシステム(コンピュータの画面上で複数のウィンドウを開くことができるシステム)の登場。
5. インターネット[1990年代]
  • ユーザーがコンピュータを専有して使用できる環境になる。
  • ダウンサイジング、マルチベンダ接続により安価にシステムを構築する。
  • 通信技術が発達し、インターネットが社会に浸透するようになる。
6. インターネット技術中心の時代[2000年代]
  • インターネットが従来の通信を支えてきた電話網に取って代わる。
  • コンピュータ以外の機器(家電製品、ゲーム機など)にまで広がる。
7. インターネットセキュリティ[2010年代]
  • 利便性が増すとともにインターネット利用によるトラブルも増えている。
  • 安全につなぐことが求められる。

3. プロトコルについて

プロトコルとは、コンピュータ同士がネットワークを利用して通信するために決められた「約束ごと」のことです。ここでは、このプロトコルについて説明しています。

  • コンピュータは機械なので、ルールを決めないとうまく通信することができない。そのときのルールがプロトコルである。
  • 様々なプロトコルを体系的にまとめたものをネットワークアーキテクチャということがある。
  • パケット交換を行うための通信プロトコルが存在する。

ではプロトコルは誰が決めるのでしょうか?
異なるメーカーのコンピュータ間でも自由に通信できるように、ISO(国際標準化機構)は国際基準としてOSIと呼ばれる通信体系を標準化しました。

  • 現在OSIの定めるプロトコルは普及していないが、OSI参照モデル(本来このモデルはOSIのために策定された)はよく使われる。
  • TCP/IPはISOの国際標準ではなくIETFで標準化されたものであり、通信プロトコルのデファクトスタンダードになっている。

デファクトスタンダードというのは、国家機関のような公的機関の標準ではないが、事実上の標準のことをいいます。

4. プロトコルの階層化とOSI参照モデル

OSI参照モデルとは、通信に必要な機能を7つの階層に分け機能を分割することで、ネットワークプロトコルを単純化するためのモデルのことです。
以下のようになっています(物理層からアプリケーション層に向けて上位になります)。

7. アプリケーション層
6. プレゼンテーション層
5. セッション層
4. トランスポート層
3. ネットワーク層
2. データリンク層
1. 物理層
  • 上位層と下位層の間でサービスのやり取りをするときの約束ごとをインターフェースと呼び、同じ階層とやり取りをするときの約束ごとをプロトコルと呼ぶ。
  • 階層化することで独立性が高まり、拡張性や柔軟性に富んだシステムを構築できるようになる。

これはネットワークについて理解するのに便利なものではありますが、あくまでモデルなのでプロトコルやインターフェースが完全に各層に割り当てられるわけではありません。しかし、多くの通信プロトコルはこの層のどれかに割り当てて考えることで理解しやすくなります。
ここで各層で行う詳細な機能については省略します。

5. 通信方式の種類

次に通信方式について見ていきます。
ネットワークや通信はデータの配送方法によって分類できるため、いくつかの分け方が存在します。

コネクション型とコネクションレス型
  • コネクション型
    • データを送る前に送信ホストと受信ホスト間で回線の接続をする。
    • 無駄なデータを送らずに済む。
  • コネクションレス型
    • いつでもデータを送信することができる。
    • データを受け取っていないかどうか常に確認する必要がある。
回線交換とパケット交換
  • 回線交換
    • 一度コネクションを確立すると回線を占有するため、複数のコンピュータを接続し相互にデータをやり取りすることができない。
  • パケット交換
    • データをパケットとして細分化することで各コンピュータが一斉にデータを送受信できるようになり、回線を効率的に利用できる。
    • ルーターによって通信回線が結ばれる。
通信相手の数による分類
  • ユニキャスト : 1対1の通信
  • マルチキャスト : 特定のグループ内の通信
  • ブロードキャスト : すべてのコンピュータ(同一データリンク内)
  • エニーキャスト : 特定のグループのいずれか1つ

6. アドレスについて

通信の送信元と受信先はアドレスによって特定されます。また、このアドレスは層によって異なります。
TCP/IPでの通信を例にすると、データリンク層ではMACアドレス、ネットワーク層ではIPアドレス、トランスポート層ではポート番号といったイメージです。
アドレスには以下の性質があります。

唯一性
  • アドレスは必ずユニークでなければいけない。
  • マルチキャストなどの場合も、機器の集団をユニークに特定できるため、唯一性は備わっているといえる。
階層性
  • アドレスを探しやすくするためのもの。
  • IPアドレスにはネットワーク部とホスト部の2つの部分があり、先にネットワーク部を調べることで目的のアドレスを探しやすくなる。

7. ネットワークの構成要素

ここではコンピュータ同士を接続するためのハードウェアについて見ていきます。

通信媒体とデータリンク
  • コンピュータ同士を接続するケーブルとして、ツイストペアケーブル、光ファイバーケーブル、同軸ケーブルなどが利用される。
  • データリンクの種類によって利用するケーブル類は異なる。
ネットワークインターフェース
  • コンピュータをネットワークに接続するためには、ネットワークインターフェースが必要。
  • このインターフェースはNICやネットワークアダプタ、LANカードと呼ばれる。
  • 最近はイーサネット(Ethernet)の1000BASE-Tや100BASE-TXのポートをはじめから備えたコンピュータが増えている。
リピーター
  • 物理層でネットワークを延長する。
  • ケーブル上を流れてきた電気や光の信号を受信し、増幅や波形の整形をして流す。
  • データリンクレベルでエラーが発生してもデータは流れる。
ブリッジ / レイヤ 2 スイッチ
  • データリンク層でネットワーク同士を接続する。
  • 壊れたフレームを他のセグメントへ送信しない。
  • アドレスの学習機能とフィルタリング機能により無駄なトラフィックを流さない。
ルーター / レイヤ 3 スイッチ
  • ネットワーク層でパケットを中継する。
  • 異なるデータリンクを相互に接続できる。
  • ネットワークの負荷を仕切ったり、セキュリティ機能を備えたものも存在する。
レイヤ 4-7 スイッチ
  • トランスポート層からアプリケーション層の情報に基づいて配送処理を行う。
  • サーバーの負荷分散や帯域制御など、用途に応じて様々なものが利用される。
ゲートウェイ
  • トランスポート層からアプリケーション層までの階層で、データを変換して中継する。
  • 互いに直接通信できない2つの異なるプロトコルの翻訳作業を行い、通信できるようにする。

8. 現在のネットワークの姿

最後の節になります。ここでは実際に利用されているネットワークの姿を見ていきます。

実際のネットワークの構成

コンピュータネットワークを道路を例に説明します。

  • 道路網で高速道路に相当するのがバックボーン(コア)と呼ばれる部分で、ネットワークの中心的存在である。
  • バックボーンは大量のデータを高速に送受信することを目的として作られていて、通常は高速なルーターでつながれている。
  • 高速道路の出入口であるインターチェンジに相当する部分はエッジと呼ばれ、多機能ルーターや高速なレイヤ 3 スイッチが利用されている。
  • コンピュータネットワークでエッジへと接続されている部分をアクセス(アグリゲーション)と呼び、この部分で内側のネットワーク情報が集約され、エッジを越えてやり取りする情報とネットワーク内に留まる情報を制御している。

道路のようにネットワークでも渋滞や混雑が起きるが、物理的な回線ではなくその上の層の論理的な回線で考えることで、道路の幅を仮想的に広げたり制限したりして遅延を防いでいる。

インターネット接続サービスを利用した通信
  • 家庭や会社から外部のネットワークを利用するとき、インターネット接続サービスを利用することが多い。
  • 最寄りのスイッチや無線LANルーターで集約された通信は前述したアクセスに接続され、必要な場合はエッジやバックボーンを経て通信相手に接続される。
携帯電話による通信
  • 携帯端末の電源を入れるとすぐに基地局と通信が行われる。
  • 基地局には契約している携帯電話提供会社の携帯電話用アンテナが設置されており、この基地局がアクセスになる。
  • 基地局に集められた情報が局舎(エッジ)に集約され、局舎間の基幹ネットワーク(バックボーン)に接続されている。
情報発信者側にとってのネットワーク
  • 最近ではブログサービスやホスティングサービスを利用して、自分でサーバーを用意することなくWebサイトを作成 / 公開することができる。
  • 動画投稿サイトでは、人気の動画には1日で何十万というアクセスがある。
  • ホスティングサービスではこのような大量のトラフィックを瞬時に処理するため、たくさんのストレージ機器を一か所に集中し、高速なネットワークにつなぐことによってより多くの要求に答えられるようになっている。これをデータセンターと呼ぶ。
  • 大規模なデータセンターは直接バックボーンに接続されており、小規模なものでもエッジに接続されている場合が多い。

9. まとめ

  • ネットワークの基礎知識とTCP/IPの関係を中心に説明を行った。
  • 現代の日本ではインターネットの閲覧だけでなく、テレビや電話のような日常的な活動もTCP/IPとそれに関連する技術で実現されている。

少し長くなってしまいました...。うまく説明できたでしょうか。

攻殻機動隊ではインターンも募集しております!
気になった方はぜひ!

www.wantedly.com



さて、ミーティングに戻るとするか。


www.wantedly.com