20210515_アウトプット(TCP / IP)

アウトプット画像

今日行ったこと

  • 1日で読めてわかるTCP /IPのエッセンス



学んだこと

TCP /IPって?

🤔私:「TCP / IP」と聞くけれど、これって何?
🥸先生:それぞれ最後の「P」は「プロトコル」を指しており、ネットワーク上においてデータ転送するにあたって必要なプロトコルの集合体という意味だよ。
🤔私:なぜプロトコル(規約)を作る必要があったの?
🥸先生:今では様々な機器が当たり前のように自由に通信することが出来るけれど、数十年前までは製造元が異なる機器、異なる製品のグループなどは簡単に接続できなかったんだ。プロトコルという形で共通の規約を決めて、様々な機器がその規約に対応することによって、機器の種類・製造元・ソフトウェア・製造時期に関わらず、様々な危機と通信できるんだよ。
😲私:「TCP / IP」のおかげで多数の組織のネットワークを相互に接続して、個々の機器の間で自由にデータ交換ができるんだね!

ここで注意点(TCP /IPには含まれていないもの・異なるもの)

  • ネットワーク方式(有線のイーサネットや、無線LAN、モデムや専用線などのシリアル通信ごとの規格や規約)は含まれていないよ。(特定のネットワーク方式に依存せずネットワーク方式と連携するための仕組みは含まれている。)
  • アプリケーションプロトコル(使用するアプリケーションの動作を定めるもの)とは異なるよ。

👉つまり、TCP /IPはネットワークシステムとアプリケーションの間に位置している💡
 間を取り持つことによって、ネットワーク上でソフトウェアとハードウェアを繋ぎ、汎用的な通信サービスを提供できる。



TCP / IPを構成するプロトコル

中心となる、IP、UDPTCP。他にもいくつかの関連したプロトコルが含まれている。


IPとは?「あなたのPCへデータを届けます!(機器まで)」👉機器間のデータ伝送。

  • Internet Protocol
  • 複雑に接続されたネットワーク上において、接続されている個々の機器が任意の相手にデータを送れるようにすること。
  • 多数のネットワークに接続するには、ルーターと呼ばれる中継する機器を使って通信が必要。それをサポートするプロトコルが、IPである。
  • IPにおいて重要や役割を果たすのが「IPアドレス」である。その機器が接続されているネットワークを識別する情報と、機器そのものを識別する情報が含まれており、それを使って特定の相手を指定できる。
  • IPは、目的のプログラムを示すことはしない。エラー通知を送り返すが回復処理はしない。
ここでポイント!
  • IPでは任意の機器を識別することが出来るが、目的のプログラムを識別し、プログラム間でデータ転送をすることまでは出来ないよ!それらを行うのがこれから紹介するUDPTCPだよ!


UDPとは?「あなたのPCに(IPでデータを必要な機器に届けた後)目的のプログラムまで届けます!」👉プログラム間のデータ伝送。

  • User Datagram Protocol
  • IPで届けたデータに、ポート番号を付加して、プログラムに割り当てるプロトコル


TCPとは?「エラーがあったときに対処します!」👉プログラム間のデータ伝送。

  • Transmission Control Protocol
  • 一方が送ったデータが、目的地へ全て届けられるのが任務だが、それがうまく行かなかった時に問題に対処するプロトコル
  • UDPと同じように、ポート番号を使って、データを相互にやりとりする通信路を提供。
  • 明示的な接続関係であるコネクションをつくり、「どこまで送ったか」「どこまで受け取ったか」をチェック。
  • 問題を発見したら、回復のために再送信を行う。(双方向のデータのやりとりを実現できることがポイント✨)


そのほかの関連プロトコル

プロトコル 内容 補足
ARP アドレス解決プロトコル IPアドレスMACアドレスの対応づけを行う。(Media Access Control) TCP/ IPではIPアドレスを使うが、実際のネットワーク通信では個々の方式ごとに規定されているMACアドレスを使う。
ICMP インターネットコントロールメッセージプロトコル TCP / IPを使ったエラーを通知したり、診断機能を提供したり、各種の制御を行ったりする管理プロトコル。(Internet Control Message Protocol)
ルーティングプロトコル ネットワークを使ってルーター間でルーティング情報を交換する。 中継のための管理情報(ルーティング情報)が膨大な量になるため
DHCP ダイナミックホストコンフィギュレーションプロトコル IPの設定をサーバーで集中管理する。(Dynamic Host Configuration Protocol) このサービスがあることによって、個々のパソコンで個別にIPアドレスの設定をする必要がなくなる。
SNMP シンプルネットワークマネージメントプロトコル ネットワークを構成するスイッチやルーター、各種コンピュータなどのエラーや統計情報を収集し、動作を管理するためのプロトコル。(Simple Network Management Protocol) ある程度規模以上の際、情報を自動的に収集/管理することでトラブル対応や運用の効率化が図れる。
DCS ドメインネームシステム サーバーの指定やメールアドレスなどに使うドメイン名をIPアドレスに変換する。(Domain Name System)



感想

  • SymfonyCLIの導入がうまく行かず、Kindleを検索していた時に、ふとTCP /IPってなんだっけ?と気になった題名の本を読み始めてしまった😂
  • AWSで識別するためのIPアドレスを割り当てる作業をする時などにIPアドレスという単語に触れたが、識別するために「Elastic IPアドレスをアプリケーションと紐付ける」というざっくりとした理解だった。
  • なので作ったアプリケーションの情報を送るにあたって階層に別れて必要なデータを送っていたり、アドレスの部分とそれを使えるホストの部分がIPアドレスの中に含まれていると知り、面白かった。
  • Railsに比べてSymfonyの記事が全然見つからない😭見つけるのが下手なのかな。見つけてもバージョンが古かったりして「なんか違う気がする」と思うものが多かった💦チュートリアル全然進まなかった(;;)
  • ここ一週間は気の向くままにプログラミングに関連する知りたいことを学べて幸せだった。知らないこと尽きなくて楽しい😍 でも、その分、読んだり見たりして、満足してしまい、アウトプットが疎かだった😅