##前提知識:通信プロトコルとは?
○○通信をするときは××なルールに従ってやり取りしようねという事。
プロトコルを日本人に例えると「会話する時は日本語使いましょう」みたいな感じ。
いきなり宇宙語で話されても99%の人が理解できないですよね?
会話1つとってもルールが自然と出来上がるものです。
TCPとは?
通信するときに使うルールのひとつ。主なルールは「安全重視で通信しましょう」
TCPを使った通信では、
- 送信者がデータ送信
- 受信者は受け取った!と伝えます。
- 送信者は受け取った!の返事がくれば「ちゃんと送信された!」と安心できる。
- 受け取った!の返答が来なければ、もう1回データを送信すればいい
TCPの特徴
ポイントはちゃんと届いたか確認しながらやり取りをするので下記の特徴があります。
- 漏れなく伝わる可能性は高い
- スピードは遅くなる
TCPは何をしてくれるの?
クライアント(ユーザー)とサーバー(提供者)がお互いに通信ができる状態なのか確認し、
コネクションと呼ばれるネットの道路的なものを作った上でデータのやり取りを行います。
コネクションの確立は次の3種類のやり取りにより行われる。
データ送っていい?(SYN)
クライアントからサーバーに対して、接続を要求するためのSYNパケットと呼ばれるデータを送る。
ざっくり説明するとクライアントが「データを送っていいですか?」という質問をサーバーにする感じ。
※パケットは通信用に細切れしたデータのこと。
データ送っていいよ!(ACK)
TCPでは安全な通信を実現するためにデータを送信した後、必ず相手からの返答を確認してからデータを送信します。この確認方法がACKパケットです。ざっくり説明すると「送信してOK!」という返答する感じ。
データ送っていいよ!こっちも送っていい?(ACK+SYN)
上記2つを一気に行う行為。
クライアントが最初にSYN(送っていい?)に対してサーバーが
OKだよ!(ACK)こっちもデータ送っていい?(SYN)を行う。