Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

TCP SYN(ティーシーピーシン)とは | 意味や読み方など丁寧でわかりやすい用語解説

TCP SYN(ティーシーピーシン)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ティーシーピーシン (ティーシーピーシン)

英語表記

TCP SYN (ティーシーピーシン)

用語解説

TCP SYNとは、Transmission Control Protocol(TCP)におけるコネクション確立の最初のステップで用いられる特別なフラグがセットされたパケットである。TCPはインターネットプロトコル(IP)の上位層プロトコルであり、アプリケーション間で信頼性のあるデータの送受信を行うための規約を定義する。データの信頼性を確保するため、TCPは通信を開始する前に、まず通信を行う両者間で論理的な接続(コネクション)を確立する必要がある。このコネクション確立のプロセスは「スリーウェイハンドシェイク」と呼ばれ、TCP SYNはその中でも特に重要な役割を担う要素である。

スリーウェイハンドシェイクは、クライアントとサーバー間の通信準備を整えるための3段階のやり取りである。まず、通信を開始したい側のクライアントが、サーバーに対して接続要求を送信する。このとき、クライアントはTCPヘッダ内の「SYN」フラグを「1」にセットしたTCPセグメントを生成し、サーバーへ送る。このSYNフラグが「同期」(Synchronize)を意味する。クライアントは、このSYNパケットに自身の初期シーケンス番号(Initial Sequence Number: ISN)を含める。シーケンス番号とは、TCPが送信するデータの順序を管理し、欠落や重複を検出するために用いられる一意の番号であり、この最初のSYNパケットでその基準となる番号が交換される。ISNは、通常、一定時間ごとにランダムに生成されることで、セキュリティ上のリスクを軽減し、以前の接続のパケットと混同されることを防ぐ役割も持つ。

SYNパケットを受け取ったサーバーは、クライアントからの接続要求を受理し、自身の準備が整っていることをクライアントに伝える。この応答として、サーバーは「SYN-ACK」パケットをクライアントに送り返す。このSYN-ACKパケットでは、サーバーもまたTCPヘッダ内の「SYN」フラグを「1」にセットし、自身の初期シーケンス番号を含める。同時に、クライアントからのSYNパケットで受け取ったシーケンス番号に対して「ACK」(Acknowledgement)フラグを「1」にセットし、そのACK番号としてクライアントのISNに「1」を加えた値をセットする。これは、「クライアントからの接続要求を受け取り、次のデータはクライアントが送ったISN+1から期待している」という意思表示を意味する。つまり、SYN-ACKパケットは、サーバーからクライアントへの接続要求(SYN)と、クライアントの接続要求に対する確認応答(ACK)の両方を兼ねているのである。

最後に、クライアントはサーバーからのSYN-ACKパケットを受け取ると、サーバーの接続要求に対する確認応答として「ACK」パケットをサーバーに送る。このACKパケットでは、クライアントは「ACK」フラグを「1」にセットし、ACK番号としてサーバーのISNに「1」を加えた値をセットする。これにより、「サーバーからの接続要求を受け取り、次のデータはサーバーが送ったISN+1から期待している」ことをサーバーに伝える。この3段階目のACKパケットがサーバーに到達した時点で、クライアントとサーバー間のTCPコネクションは完全に確立され、両者は互いにデータを送受信できる状態となる。

このように、TCP SYNは、信頼性のある通信を開始するための最初の重要な一歩である。これを通じて、両通信主体は互いの存在を確認し、通信の初期パラメータ(シーケンス番号など)を同期させる。この同期プロセスが成功することで、TCPは後続のデータ転送において、パケットの順序保証、欠落パケットの再送要求、重複パケットの破棄、フロー制御といった高度な信頼性機能を実現できる基盤を築くのである。もしこのSYNパケットが相手に届かなかったり、応答がなかったりすれば、コネクションは確立されず、通信は開始されない。これは、ネットワーク上でデータが確実に、そして正しい順序で届けられるために不可欠な手順と言える。

しかし、この重要なTCP SYNのプロセスは、悪意のある攻撃に利用されることもある。例えば、「SYN Flood攻撃」と呼ばれるDDoS攻撃の一種では、攻撃者が大量のSYNパケットをサーバーに送信するが、最後のACKパケットを返さないことで、サーバーのリソースを枯渇させようとする。サーバーは大量の半開状態のコネクションを維持しようとすることで過負荷になり、正規のユーザーからの接続要求に応答できなくなる。この攻撃からもわかるように、TCP SYNは単なる接続開始の信号であるだけでなく、ネットワークセキュリティの観点からも考慮すべき重要な要素である。

結論として、TCP SYNは、TCPプロトコルが提供する信頼性の高い通信を実現するためのスリーウェイハンドシェイクの最初のステップであり、通信の開始と初期パラメータの同期を行う極めて重要な機能を持つ。このプロセスを通じて、アプリケーションは安心してデータの送受信を行うことができ、現代のインターネット通信の基盤を支えていると言える。

関連コンテンツ