TCPとはどのようなプロトコル?主な特徴4つやTCPの仕組みを紹介

TCPとはどのようなプロトコル?主な特徴4つやTCPの仕組みを紹介のアイキャッチイメージ

TCPとはどのようなプロトコル?


プロトコルというのは、ネットワークで情報をやりとりする際、その方法について双方の取り決めを行うことです。取り決めを行っていないと、双方の対話が成立しないため、あらかじめ取り決めておかなければいけません。TCPは、通信プロトコルのひとつで、安全面を重視したプロトコルです。そのため、確実に届けるという信頼性は高いのですが、転送速度はその分低いといった特徴があります。

TCP/IPとは

TCP/IPとは、インターネットなどで一般的に使われているプロトコルのことです。「TCP(Transmission Control Protocol)」と「IP(Internet Protocol)」という2つの通信プロトコルを組み合わせたもので、ネットワークを介して情報を送信する際に必要になるものです。TCP/IPで規定されている通信手順に従うことで、異なるOSでも相互の情報交換が可能になります。

TCPとは?主な特徴4つ


TCPは安全面を重視しているため、データ伝送の信頼性が高い通信プロトコルです。そのため、TCPを利用することでより安全性を重視した通信が可能となりますが、通信速度は遅くなります。それでは、TCPとは具体的にどのような特徴を持ったプロトコルなのでしょうか。ここではTCPの主な特徴を4つご紹介していきますので、どのような特徴を持つプロトコルなのか参考にしてみてください。

1:コネクション型である

TCPは、英語の「Transmission Control Protocol」を略したものです。「Transmission」は、伝達とか伝送と訳されますので、つまりTCPは、伝送を制御するプロトコルという意味になります。ここで言う伝送とはコネクションという、通信する相手との、仮想の通信経路を確立させるもののことであり、ここでは「コネクション型」という言い方をされます。TCPはコネクション型の特徴を持ち、コネクションを制御して、安全で信頼性の高い通信を実現させています。

2:信頼性がある

TCPとは、コネクションを制御することで信頼性が高い通信を実現するものです。データ通信における信頼性が高いとは、データが紛失したり、データの順序が乱れたりしないということを指します。TCPは通信の前にしっかりと準備を行い、信頼性を確保した通信を行います。そのため、TCPを使用する場合、利用するアプリケーション側では信頼性を保障する仕組みを保有する必要が無くなります。

3:全二重通信が可能

データ伝送を行う際に、経路が二本あれば、方向の違うものを同時に送受信することが可能ですが、経路が一本だと、同時に流すことはできません。この経路が二本ある状態のことを全二重通信といい、片方しかない経路のことを半二重通信といいます。
TCPは全二重通信が可能なため、半二重通信のように途中でぶつかったりすることがなく、同時に二つの信号をスムーズに流すことができます。

4:シーケンス番号とACK番号の同期を取り接続の確立

TCPではデータを細かく分けて送信しています。そのため、細かく分かれたデータを元通りにするための順序を管理する仕組みとして、「シーケンス番号」と「ACK番号」というものを持っています。シーケンス番号とACK番号については後述しますが、通信を行う際には接続要求先にSYNビットを送り、受け取り側もSYNを返すことでこの2つの番号の同期を取り、さらにACKを返すことで接続を確立する仕組みになっています。

TCPとは?主な仕組み5つ


TCPとは、大きくわけて5つの仕組みがあります。TPCヘッドやシーケンス番号、確認応答番号(AKC番号)、セグメントの制御機能、コネクションの管理機能など、さまざまな仕組みがそれぞれの役割を果たし、機能していることで、正しく構成されているといえます。ここでは、TCPのそれぞれの仕組みがどのような役割を果たしているのかをご紹介していきますので、ぜひ参考にしてみてください。

1:ヘッダのみを参照する

TCPのデータ伝送をする際、その宛先や送信元のポート番号を文書の頭に付与して、ポート番号が何番であるかをヘッダに付け足しています。文書の頭にデータの情報を格納して付与し、新しいデータが作成されて、ネットワーク層へと送信されます。TCP形式の通信の際に付けられるヘッダをTCPヘッダといいます。TCPヘッダには属性や設定などが格納されており、そこに続く領域に本体が格納されており、ヘッダのみを参照すればわかります。

2:シーケンス番号の役割

インターネット上で長いデータを伝送する際には、一定の長さに分割する必要があり、それをパケットとして独立させてそれぞれのデータを送ります。シーケンス番号はパケットに付与する通し番号です。受信側でシーケンス番号を確認することで、通信途上でパケットを失ったり、正しい順番に並べたりすることができます。パケットに付ける番号をシーケンス番号といいます。

3:確認応答番号の役割

TCPはデータ伝送でデータを細かく分割しています。分割したパケットごとに番号がふられ、それがシーケンス番号と確認応答番号(ACK番号)と呼ばれています。シーケンス番号はTCPの接続時に番号の生成が行われます。確認応答番号は、送信時に「シーケンス番号+1」となっていた番号が、相手方へ受信した場合、「シーケンス番号+受信データバイト数」として応答するため、送信元が正しく相手方が受信したかを確認することができます。

4:制御機能がある

TCPにはフロー制御、誤り制御、ふくそう制御という3つの制御機能が備わっており、この制御機能によって、信頼性の高い通信を実現させているのです。フロー制御は、データを受け取る側の能力に合わせて、送信側のパケット量を調整するというものです。また、誤り制御は、パケットの順番が間違っていたり、途中で故障したりしたものを検出するものです。ふくそう制御は、ネットワークの混雑状態を見て、パケットの量を調節させます。

セグメントの順序制御

TCPには、シーケンス番号によって、伝送するセグメントに順序を与えています。シーケンス番号を付与することで、順序がバラバラになったり、セグメント消失の際、なにが消失してしまったかを見極めたりすることができます。シーケンス番号によって、セグメントの正しい順序制御ができる仕組みとなっています。

消失したセグメントの再送

もしデータ伝送を行う際に途中でセグメントが消失してしまった場合には、受信したとしても、ACK番号が更新されることはないので、再送されて正しく受信がされるまで、同じ番号のACK番号を返信し続けることになります。このことで、送信側は消失したセグメントがあることに気づくことができますし、またどこに消失したセグメントがあるかがわかるという仕組みになっています。

送信セグメント量の制御

データ伝送を効率よく行うには、送信するセグメントの量を調節する必要があります。スライディングウィンドウというフロー制御という仕組みは、受信したデータを一次的にためておくための領域のことです。この領域の容量は、セグメントサイズの整数の倍以上となっているため、データが完了するまで、受信したセグメントをたくさんためておくことができるため、送信セグメントの混雑が避けられるというものです。

5:コネクションの管理機能

TCPが通信を行う際には、送受信の双方から接続をする必要があります。それはTCPが全二重通信を提供するプロトコルのためです。そのためには、通信する双方で、コネクションを確立する必要があるので、双方で接続の確立を要求しなければなりません。TCPのコネクションの管理機能は、コネクションの確立において、3ウェイハンドシェイクという手順で行われます。またコネクションを切断するにはハーフクローズというプロセスで行います。

3ウェイハンドシェイク

TCPのコネクション管理機能として、3ウェイハンドシェイクというのは、3回送信することでコネクションを確立させるというものです。1.送信側からコネクションの確立のための要求を行い、TCPパケットを送信します。2.受信側は、これに対してACK番号を付与し、同時に受信側からの接続の確立の要求として、同TCPヘッダを送信します。3.送信側が受信側からのコネクションの確立の要求に対してACKパケットを送信します。

ハーフクローズ

TCPは片方だけが終了しても、もう片方の転送が継続され続けている可能性があるため、片方ずつ終了させる必要があります。コネクションを全て切断完了するには、送信側がコネクション終了の要求(FIN)を行い、受信側はこれを受けてACKを送信します。その後FINを続けて送信し、送信側が受け取ったら、最後にACKを送信します。その後しばらくしてコネクションは終了となります。このコネクション終了のことを、ハーフクローズと言います。

TCPに向いているもの3つ


TCPのさまざまな特徴や仕組みを見てきました。TCPにはさまざまな能力が備わっていることがわかりましたが、この通信機能が向いているものとはどういったものがあるのでしょうか。それぞれの性質や特性を生かした場所での活躍が、現在のインターネットを支え、発展していく鍵でもあります。安全で信頼性の高い、TCPの通信データ伝送に向いているものとして以下の、Web通信、メール通信、ファイル転送の3つをあげてみました。

1:Web通信

TCPに向いているものとして、Web通信があります。Web通信は通信される相手に、ちゃんとデータ伝送されていることが求められていますので、伝送されたものがちゃんと届いているかということをはっきりとさせておかなければいけません。そのため、全二重通信であり、それぞれの通信に制御機能が備わっているTCPは、Web通信に向いている機能ということが言えます。

2:メール通信

TCPに向いているものとしてメール通信があります。メール通信はデータ伝送の最も基本的な通信機能といえ、全二重通信など構造はまさしくメール通信を行うにあたって必要な機能を備えています。メール通信は必ず相手に送信受信することが求められ、失敗の許されない通信機能といえます。そのためには必ず相手に届いているか、逐一確認を行ってくれるTCPの機能は最適だといえるでしょう。

3:ファイル転送

TCPプロトコルに向いているものとして、ファイル転送があります。Web通信やメール通信にも言えることですが、ごく個人的な通信作業においての、安全性というものは、もっとも通信機能に求められるものです。ファイル転送にしても、特にビジネスなどで使用される場合には、個人情報やコンプライアンスなどの観点から見ても、確実に双方で確認が取れることが重要視されており、その点、TCPはとても信頼性の高い通信プロトコルであるといえます。

TCPプロトコルの特徴や仕組みを理解しよう


TCPとは、インターネット上で安全な通信を行うための仕組みです。通信速度は遅いですが、安全性や信頼性が高いことから、さまざまな通信に採用されています。このようなTCPの特徴を知ることは、インターネットを利用する上でも重要なポイントだと言えます。ぜひこの記事でご紹介したTCPの特徴や仕組み、TCPに向いている通信などを参考にTCPの仕組みを理解し、より安全で安心な通信を利用してみてはいかがでしょうか。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。