【NW基礎】tcpについて理解を深める① | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

通信プロトコルの1つとしてよく使われる、tcp(Transmission Control Protocol)について、

3回に分けて基礎を解説してみます。

 

初回は、tcpを理解するうえで前提となる、ネットワークの基礎知識をメインで書いていきます。

 

もくじ

 1.ネットワーク通信のしくみ概要

 2.パケット通信のしくみ概要

 3.tcpとは

 

 

1.インターネット通信のしくみ概要

今回のテーマであるtcpの基礎を理解するためには、

まずはインターネット通信のしくみを簡単に知っておく必要がある。

 

 

インターネット通信の仕組みを知るために、

自分のスマホからAmebaのサイトにアクセスする時を考えてみよう。

 

Amebaのサイトへのアクセスは、Amebaが管理するサーバに、スマホから

「Amebaのページを見せて」というリクエストを送り、

Amebaのサーバがそのリクエストに応えてページを返してくれることで成り立つ。

 

 

 

だがリクエストは、自分のスマホからAmebaのサーバに、直接送信するわけではない。

 

近くにあるルーターにリクエストが送られ、

そのルーターから別のルーター(Amebaサーバに近そうなルーター)にリクエストが渡され、

さらにまた別のルーターへ…

というふうに、リレーのような形式でリクエストが送られていく。

そしてようやくAmebaのサーバに到達して、サーバがリクエストを読み込むことになる。

 

イメージはこんな感じ。↓

 

このように、インターネット通信では、データがリレー形式で進んでいくことを抑えておいてほしい。

 

2.パケット通信のしくみ

「このページを見たい!」といった要求や、

実際にサーバから送られてくるページの情報などのデータは、

実は細かく分けられて、インターネット上を移動する。

 

細かく分けられた1つ1つは、「パケット」と呼ばれる。

よく携帯各社のCMで「パケット通信料」という言葉が出てくるが、その「パケット」のことである。

 

各パケットは、それぞれ単体でインターネット上を移動し、通信先まで運ばれていく。

通信先にたどり着いたら、再び合体して、もとのデータの形を成すことで、

通信元から通信先のデータ通信が可能となっている。

 

パケットは、分けられたデータの情報本体だけでなく、

通信元・通信先や、分けられる前の自身の場所の情報なども持っている。

 

自分はどこから来たのか、どこに向かって移動するのか、

いざ通信先に着いた後、もとのデータの形を成すために、自分は元データのどの部分に位置していたのか等が分からないと、動くに動けないからである。

 

 

ここまで要点をざっくりまとめておく。

 

 ・通信は、リレーのような形で行われる

 ・通信されるデータは、「パケット」に小分けされ、ネットワーク上を進んでいくが、

  各パケットは元のデータの形に戻れるように付加情報も持っている

 

 

 

以上を踏まえ、本題のtcpの役割の概要を、以下で説明したい。

 

3.tcpとは

tcp(Transmission Control Protocol)は、トランスポート層で標準的に使われる通信プロトコル(プロトコル=取り決め・規約・ルール)の1つ。

特徴を一言でいうと、より確実に通信を行うための役割を果たしてくれるプロトコルである。

 

 

本記事前半で見てきたように、通信はインターネット上をリレー形式で進むことで成り立っており、

データも小分けにして送られる。

 

本物のリレーでは、1人の走者がこけてしまったらバトンはつながれない。

通信も本物のリレーと同じで、途中でこけると成り立たなくなる。

 

しかも通信では、インターネット上を、いくつものパケットが進んでいくので、

パケットが移動する途中で迷子になったり、壊れてしまったり、

そもそもデータのやりとり以前に通信要求がうまく接続先に届かなかったりと、

途中でこけてしまうことがよくある。

 

 

通信がこけました、、、

となると困るのは、想像に難くないだろう。

 

そこで、できるだけこけないようにし、こけたとしてもどうにかして持ち直す、

すなわち、通信の確実性を保証する役割を持つのが、tcpなのである。

 

 

 

…では具体的に、どのようにして、通信の確実性を保証するのか??

次回記事にて解説していきます!