TCP/IPの基本
はじめに
本記事では「Webを支える技術」で学んだ内容と別途気になって調べた内容や知識も含めアウトプットしています。
書籍に記載されている内容を順序立ててまとめるというよりは、整理しておきたい周辺の知識と深ぼった内容を雑多に書いています。
TCP/IPとは
TCP/IP(Transmission Control Protocol / Internet Protocol)は、インターネット上でデータの送受信を行うための基本的なプロトコル(通信規約)です。
TCP (Transmission Control Protocol)
データ送信の信頼性を確保する役割を果たします。TCPは、データをパケットと呼ばれる小さな部分に分割し、それらをインターネットを通じて送信します。
また、パケットが正しく送信されたかどうかを確認し、必要に応じて再送信を行います。
IP (Internet Protocol)
データパケットを適切な送信先までルーティング(転送)する役割を果たします。
IPは、各デバイスがインターネット上で一意のIPアドレスを持つことを可能にし、このIPアドレスを用いてパケットの送信先を特定します。
これら2つのプロトコルが組み合わさることで、TCP/IPはインターネットを通じてデータを効率的に、かつ信頼性高く送受信することを可能にしています。
HTTPはTCP/IPがベース
HTTP(HyperText Transfer Protocol)は、これらTCP/IPプロトコルの上に構築され、ウェブページなどのリソースを送受信するための高レベルのプロトコルです。
HTTP通信は基本的にTCPを用いて行われ、データの送受信の信頼性が確保されます。
パケットとは
コンピュータネットワークを通じて送受信されるデータの単位のことを指します。
データ通信において、大きなデータを一度に送るのではなく、管理しやすい小さなブロックに分割して送受信する方法をパケット通信と言います。
その際に分割された小さなデータブロックがパケットです。
階層型プロトコル
インターネットのネットワークプロトコルは階層型になっています。
階層型プロトコルは、通信の過程を複数の階層に分ける仕組みで、各階層は特定の機能を持ち、相互に独立して動作します。
ネットワークインタフェース層
実際のネットワークハードウェアが通信を実現するため一番下の層で、各種イーサネット、無線LANなどがこの層に属します。
インターネット層
ネットワークインタフェース層の上にはインターネット層があります。
この層が担当するのは、ネットワークでデータを実際にやりとりする部分です。
TCP/IPではIPが相当します。指定したIPアドレスを送り先として、パケット単位(基本的な通信単位)でデータをやりとりして通信します。
IPでは、自分のネットワークインタフェースでデータを送りだすことだけを保証しているため送り出したデータが、多数のルータを経由して最終的な送り先まで届くかどうかは保証しません。
トランスポート層
インターネット層の上にはトランスポート層があります。
IPが保証しなかったデータの転送を保証するのがトランスポート層の役割です。
TCP/IPではTCPが相当します。TCPでは接続先の相手に対してコネクションを張ります。このコネクションを使ってデータの抜け漏れをチェックし、データの到達を保証します。
アプリケーション層
最上位の層で、ユーザが直接利用するソフトウェア(Webブラウザ、メールクライアントなど)がこの層で動作します。
TCPでプログラムを作るときは、ソケット(Socket)と呼ばれるライブラリを使うのが一般的です。
ソケットはネットワークでのデータのやりとりを抽象化したAPIで、接続、送信、受信、切断などの基本的な機能を備えています。
ネットワークサービスの提供、ユーザインターフェース、セキュリティ等が担当されます。
参考
おしまい
コメント
本記事の内容は以上になります!
書籍の続きのアウトプットも随時更新したいと思います。
プログラミングスクールのご紹介 (卒業生より)
お世話になったプログラミングスクールであるRUNTEQです♪
こちらのリンクを経由すると1万円引きになります。
RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。
もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。