[ネットワーク]ネットワークとTCP/IPをざっくり理解する

2020年2月1日

はじめに

エンジニアとして仕事をしていますが、ネットワークについてはきちんと理解できていないと思い、ネットワークを基本から勉強し直しています。
学んだことをまとめていきます。

ネットワークとは?

ネットワークとは、コンピュータ同士のつながりのこと。
つながったコンピュータはお互いにデータを送受信できます。

社内ネットワークなど閉じた範囲内でのネットワークをプライベートネットワーク、公開されていて誰でもアクセスできるネットワークをインターネットと言います。
あるネットワークが、別のネットワークとつながり、「ネットワークのネットワーク」を形成しているのがインターネットです。
「インターネットで世界中とつながる」という言葉はよく聞きますが、比喩ではなく本当につながっています。

ネットワークを実現する技術

インターネットでしていることを極めて簡単に説明すると、「コンピュータ同士のデータのやり取り」です。
ブラウザでWebサイトを見ることができるのも、自分のコンピュータがインターネットを通じ、Webサイトが構築されたコンピュータにデータを要求し、返ってきた結果をブラウザが表示しているだけです。

イメージとしては、目的地のコンピュータの情報(住所)と、届ける内容を含んだデータが、自分のコンピュータから発信され、ネットワーク間・コンピュータ間でバケツリレーが行われるかのごとく運ばれていく感じです。

必要なのは、「目的のコンピュータにデータを届けること」。その実現に様々な技術が使われています。

データを届ける : 階層とプロトコル

データはコンピュータからコンピュータへ、回線や電波を通って運ばれます。

バケツリレーのようにデータを運んで行きますが、ある処理では特定の形式のデータがないと処理することができません。
この決まった形式のことを「プロトコル」といいます。
プロトコルが違うと、そのデータは処理されず、そこで消えてしまいます。

それでは困るので、データは運ばれる過程でデータにはプロトコルを合わせる情報・「ヘッダ」が付加されていきます。(カプセル化)
ヘッダによってプロトコルが合い、データは適切に処理・転送されていきます。
そして、運ばれる先で、取り付けられたヘッダが一つ一つ剥がされ(非カプセル化)、最終的に中のデータが相手に届きます。

階層ごとに大まかな役割分担が決まっており、各階層に属する様々なプロトコルを利用しながらデータを届けていきます。

TCP/IP

様々なプロトコルがありますが、その役割によってTCP/IPモデルのいずれかに属します。

階層 主な役割 主なプロトコル
アプリケーション層 アプリケーションごとにデータを処理する HTTP, SSH, FTP
トランスポート層 データを必要なアプリケーションに振り分ける TCP, UDP
インターネット層 届けるべき相手にデータを届ける IP
ネットワークインターフェイス層 同一ネットワーク内で通信する イーサネット、Wi-Fi

データ転送がどのような流れで行われているか見てみます。

まず、アプリケーション層からデータを送信します。
アプリケーション層のデータは、次のトランスポート層で処理されます。
データ送信に失敗した場合に再送する機能やデータサイズを分割し、正しい順序で送る機能などがあります。

続いてインターネット層で、インターネット上のどこの誰宛のデータなのか確認し、届けます。

最後にネットワークインターフェイス層。
インターネット層で届け先がわかったら、電気信号や電波などに変換にして、物理的にデータを運んでいきます。
※この階層では、通信相手のプロトコルを問わず、データを届けることができます。規格が異なる有線LANと無線LANで問題なく通信できるのはこのためです。

ネットワークインターフェイス層とインターネット層のおかげで、
あるネットワークから別のネットワーク、そのまた別のネットワークにデータが渡され、宛先となるネットワークの、固有のコンピュータにデータが届けられます。

OSI参照モデル

現在ネットワークの規格はTCP/IPがほぼ全てです。
似たようなキーワードでOSI参照モデルがありますが、これは実装されているものでもないため、TCP/IPをまずは押さえておきます。

OSI参照の各層について

  • プレゼンテーション層
  • アプリケーション層
  • セッション層
  • トランスポート層
  • インターネット層
  • データリンク層
  • 物理層

まとめ

このように、ちょくちょく、コード系以外のことも備忘録がてら書いていきます。
誤解や知識不足があればぜひご指摘いただけると幸いです。

参考書籍

  • 図解まるわかり ネットワークのしくみ
  • マスタリングTCP/IP―入門編