初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

【読書記録】マスタリングTCP/IP入門編(第1章)

マスタリングTCP/IPの入門編を通じて学んだことをメモしていきます。本記事は第1章(ネットワーク基礎知識)を読んで新たに得られた知識をまとめたものです。

OSI参照モデルとは

OSI参照モデルについてまとめます。 OSI参照モデルとは、データ通信に必要な機能を7つの階層に分けたモデルです。各階層で担う役割を厳密に決めることで、データ通信に必要な処理を漏れなく実装することを目指したものです。

OSI参照モデルで定義された7つの階層は下記の通りです。

  1. 物理層
  2. データリンク層
  3. ネットワーク層
  4. トランスポート層
  5. セッション層
  6. プレゼンテーション層
  7. アプリケーション層

各層の役割について、電子メールを例に説明します。なお、データ処理の時系列にあてはめて説明したいので、7のアプリケーション層から説明し、1の物理層を最後に説明しようと思います。

アプリケーション層

アプリケーション層では、通信するデータのうち、アプリケーションに依存するものについての処理が行われます。
電子メールの場合、題名、本文、宛先などが入力されますが、これらの値をデータに変換する処理などが行われます。

プレゼンテーション層

プレゼンテーション層では、コンピュータに固有のデータ形式を共有のネットワークで扱えるデータ形式に変換する処理が行われます。
電子メールの場合、入力された日本語を文字コードにしたがって変換する処理などが行われます。

セッション層

セッション層では、データの転送方法を決める処理が行われます。
電子メールで5通のメールを送信したい場合、5通まとめて一つのコネクションで送信すべきかのか、別々に送信すべきなのかを決める処理などが行われています。

ここまで説明してきたアプリケーション層、プレゼンテーション層、セッション層はデータを送るための前準備をする層です。ここから紹介するトランスポート層ネットワーク層データリンク層物理層は実際にデータを送る処理を行う層です。

トランスポート層

トランスポート層では、コネクションの確立や切断などの管理が行われます。 また、もしデータが届かなかった場合や、部分的に欠損してしまった場合には再送処理を行います。トランスポート層は、データ転送の信頼性を担保している層です。

ネットワーク層

ネットワーク層では、データ転送時のネットワーク経路を決めます。 電子メールの場合だと、アプリケーション層で指定された宛先へと至るネットワークは複数ありますが、どの経路で送るのかをこの層で決めています。

データリンク層

データリンク層は、直接つながっている機器へのデータ転送を行います。 どこにデータを送る場合でも、コンピュータとつながっている機器にまずはデータを送ります。その転送を担うのがデータリンク層です。

物理層

物理層は、データを物理信号に変換する役割を担います。 どんなデータもネットワーク上では、電圧の変化や光信号などの物理媒体に変換されて送られていきます。 物理層では、その変換を担っています。

通信方式の種類

本書では3つの観点に基づいて通信方式を分類しています。その観点が、

  1. データ転送の前にあらかじめコネクションを確立するか否か?
  2. 通信時の回線を占有するか、共有するか?
  3. 1対何の通信か?

です。これについて見ていきます。

データ転送の前にあらかじめコネクションを確立するか否か?

データ転送をする際に、あらかじめコネクションを確立し、相手のコンピュータがデータを受け取れる状態であるかを確認する通信の方式をコネクション型と言います。 逆に、相手のコンピュータの状態に関わらずデータを送り付ける通信の方式をコネクションレス型と言います。

コネクション型には、相手の状態を確認してからデータを送るため、もしデータが届かなかった場合でも、送信側はそれを検知することができます。一方で、あらかじめコネクションを確立する必要があるため、実装の難易度はコネクションレス型よりも高くなります。また、データを送る際のリードタイムも長くなります。

コネクションレス型は、相手の状態を確認せずにデータを送るため、もしデータが届かなかった場合でも、送信側はそれを検知することができません。しかし、コネクションを確立する必要がないことから、実装の難易度が下がったり、データを送る際のリードタイムを短くすることができます。

通信時の回線を占有するか、共有するか?

通信相手との回線を占有する通信の方式を回線交換方式と言います。電話などがこの方式を採用しています。通信時は回線を占有するため、他の通信が混雑していても関係なくデータのやりとりをすることができます。回線を占有するため、その回線が使われている際は他の通信はその回線を使うことができないというデメリットもあります。

一方で、回線を他の回線と共有し、データを小分けにして送る方法をパケット交換方式と言います。この方法であれば、回線を共有することはないので、回線を誰かが使っていても、他の通信を行うことができます。しかし、回線を共有する分、回線が混雑していればデータ転送に遅延が発生したり、回線の容量を超えたデータは破棄されてしまうなどのデメリットもあります。

1対何の通信か?

これは言葉で説明するよりも図の方が説明しやすいのでテキストの図を掲載しておきます。

図1:通信相手の数による分類

まとめ

本記事では、OSI参照モデルの基礎と回線の方式についてまとめました。第2章以降でこれらの通信方式についてより詳細な解説があるみたいです。よくわからなくなったらこの第1章を読み返しながら読み進めたいと思います。