【インフラ系】
・ネットワークを導入・構築・管理する人
【ハード開発系】
・ネットワーク機器の設計や製造をする人
【ソフト開発系】
・ネットワーク接続する機器のプログラミングをする人
![IT初心者](https://beyondonestep.com/wp-content/uploads/2022/06/study_night_boy.png)
ネットワークに関わる人はとりあえずTCP/IPが何か知って損はなし!
私はソフト開発の中でネットワーク制御を携わることになり、TCP/IPについて学びました。
・TCP/IPってなに?
・TCP/IPってどんなもの?
・TCP/IPの階層モデルってなに?各層で何をしているの?
もくじ
TCP/IPとは
ネットワークで現在最も多く利用されている通信手段(プロトコル)になります。
もっと自由に多くの機器を簡単に接続することを目的として開発されたのがTCP/IPです。
※TCP/IP登場以前・・・限られたコンピュータ間で情報の交換を行う手法が中心でした。
・インターネット環境の通信を実現されるためのプロトコル
・最も使用されているプロトコル
・TCPはTransmission Control Protocolの略称
・IPはInternet Protocolの略称
TCP/IPは何を指す?
TCP/IPという言葉を見ると、TCPとIPの2つのプロトコルを意味するように見えます。
しかし、多くの場合はTCP/IPという言葉は、IPを利用したり、IPで通信したりするときに必要となる多くのプロトコル群の総称(下図)として使われます。
つまり、インターネットを構築するうえで必要なプロトコルのセット(インターネットプロトコルスイート)という意味です。
![](https://beyondonestep.com/wp-content/uploads/2022/06/image-8.png)
TCP/IP(プロトコル群)とはどのようなもの?
TCP/IPの全体像をOSI参照モデルの関係(下図)を用いて説明します。
![](https://beyondonestep.com/wp-content/uploads/2022/06/image-11.png)
TCP/IPプロトコル群のプロトコルは
・基本的にOSI参照モデルに当てはまる
・OSI参照モデルのどの層に該当するかで何をするためのものか見当がつく
(OSI参照モデルの各層について別途理解が必要)
・技術的にどのような仕組みで動作するかを理解する
![IT初心者](https://beyondonestep.com/wp-content/uploads/2022/06/kotowaza_mekara_uroko_man.png)
TCP/IPが何って言われたら、「TCP/IPの階層モデルの各層のプロトコルたちでそれぞれ役割をもっているよ」って答えればいいね!
TCP/IPの階層モデルは「プロトコルをコンピュータに実装するにはどのようにプログラミングしたらよいか」を中心に考えてモデル化されています。
TCP/IPの階層モデルの各層について説明します。
TCP/IPの階層モデル
インターネットにおいて利用されている通信プロトコルのセットであるインターネット・プロトコル・スイートを、階層構造に分類したモデルです。
ハードウェア(物理層)
ハードウェアは物理的にデータを転送してくれる階層のこと。
例)イーサネット、電話回線など
しかし、内容については何も決まっておらず、TCP/IPはネットワークで接続された装置間で通信できることを前提にして作られているプロトコルです。
ネットワークインタフェース層
イーサネットなどのデータリンクを利用して、同一ネットワーク上で通信をするための階層のこと。
インターネット層(ネットワーク層)
インターネットワークでの通信をするための階層のこと。
インターネット層ではIPが使用されます。
IPはIPアドレスをもとにパケットを転送します。
インターネットに接続されるすべてのホストやルーターは、必ずIPの機能を実装しなければなりません。
トランスポート層
アプリケーションプログラム間の通信、通信の制御を実現する層のこと。
コンピュータの内部では複数のプログラムが同時に動作しているため、どのプログラムとどのプログラムが通信しているかをポート番号と呼ばれる識別子を用いて識別します。
2つの代表的なプロトコルを紹介します!
TCP (Transmission Control Protocol)
・コネクション型
・ポート番号を利用した上位プロトコルへのデータ受け渡し
・コネクションの確立、維持、切断
・パケットの順序制御、再送制御、ウィンドウ制御、フロー制御
【メリット】
・信頼性が高い
【デメリット】
・転送速度が低速
【用途】
Webの閲覧、メールの送受信、ファイル転送など
UDP(User Datagram Protocol)
・コネクションレス型
・ポート番号を利用した上位プロトコルへのデータ受け渡し
・パケットロスしても再送しない
【メリット】
・転送速度が高速
【デメリット】
・信頼性が低い
【用途】
音声通話、動画ストリーミング、小量のデータ転送など
![IT初心者](https://beyondonestep.com/wp-content/uploads/2022/06/study_night_boy.png)
トランスポート層はアプリケーションのプログラム同士を接続する役割!
接続するプロトコルにはTCPやUDPなどがあって、使用用途によって使い分ける必要があるんだね!
プロトコルと設計するシステムの特徴を抑えねば・・・
アプリケーション層(セッション層以上の上位層)
アプリケーション間のやり取りを実現する層のこと。
TCP/IPの階層モデルでは、OSI参照モデルの
・セッション層
・プレゼンテーション層
・アプリケーション層
はすべてアプリケーションプログラムの中で実現されると考えられています。
TCP/IPのアプリケーションのほとんどは、クライアント/サーバーモデルで作られている。
・サーバー:サービスを提供するプログラム
・クライアント:サービスを受けるプログラム
クライアントはいつでも好きな時にサービスを要求することができます。
サーバーが動作していないときや、要求が集中しサービスを受けられないときは、しばらく待ってあからサービスを要求することになる。
まとめ
・TCP/IPとは? | インターネット環境の通信を実現されるためのプロトコル |
・TCP/IPが指しているものは? | IPを利用、IPで通信するときに必要となる多くのプロトコル群の総称 インターネットを構築するうえで必要なプロトコルのセット (インターネットプロトコルスイート) |
・TCP/IPとはどのようなもの? | 「TCP/IPの階層モデル」で説明される プロトコルが属する層の役割を理解することで、 そのプロトコルが何をしているかおおよそ見当がつく |
・TCP/IPの階層モデルとは? | TCP/IPのプロトコル群を階層構造に分類したモデル |
![IT初心者](https://beyondonestep.com/wp-content/uploads/2022/06/lucky_yotsuba_clover_boy.png)
TCP/IPについて少しでも理解できましたでしょうか?
TCP/IPという言葉はよく使われますが、どんな意味合いで使っているか場面で変わってくると思います。また、大事なのはTCP/IPの特徴をたくさん知り使い分けていくことです。
今回のTCP/IPの説明は氷山の一角で、まだまだ奥が深い分野です。少しでも興味がでたり、理解するきっかけになりましたら幸いです。