0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HTTPにおけるTCPによる通信

Posted at

WebブラウザからのHTTPリクエストと、それに対してのWebサーバーからのHTTPレスポンスを繰り返し行うことでWebサイトを閲覧できるが、これらのやりとりを行うのは**TCP(Transmission Control Protocol)**である。TCPはWebサイト閲覧だけでなく、メールの送受信やファイル転送といったさまざまなデータ転送時に利用されている。

TCPの役割

TCPでは、まずクライアントとサーバーがお互いに通信できる状態なのかを確認し、「コネクション」とよばれる通信経路を確立してからデータのやりとりをする。
コネクションの確率は、次の3回のやりとりにより行われる。

  1. クライアントからの接続要求(SYN
    クライアントからサーバに対して接続を要求するためのSYNパケットを送る。SYNパケットを受け取ったサーバーはそれに対して応答する。
  2. クライアントに対して確認応答および、サーバーからの接続要求(SYN+ACK
    TCPでは信頼性を確保するために、データ送信後必ず送信相手からの確認応答を受け取ってデータの送信が完了したと判断する。この確認応答がACKパケットである。
    クライアントからの接続要求に対してサーバーがACKパケットを送信することで、接続可能であることを伝える。また、同時にクライアントに対して接続を要求するためにSYNパケットを送信する。
  3. サーバーに対して確認応答(ACK
    サーバーからの接続要求に対してクライアントはACKパケットを送信する。
    お互いにSYNパケットを送りACKパケットで応答することで、双方向で通信が可能なことを確認し、コネクションを確立する。
    イラスト (1).jpg

コネクション確立は3回のやりとりで行われるため、「3ウェイハンドシェイク」と呼ばれる。データの送受信が終了して通信を終了(コネクションの切断)する際は、4回のやりとりが必要になる。
また、信頼性を担保するため、データ転送時に一定時間ACKの応答がなかった場合、データを再送信する「再送制御」や、順序が入れ替わっていた場合に番号通りに組み立てる「順序制御」を行なっている。
さらに、データを送るたびにACKを送るのでなく、複数のデータを受け取ってからACKパケットを送信する。

参考

イラスト図解式 この一冊で全部わかるWeb技術の基本

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?