情報セキュリティ講座(18) TCP
TCPは、データの完全性を重視したプロトコルです。そのため、相手とのコネクションを確立し、パケットの順番制御を行います。パケットの順番がずれた場合は、パケットの再送要求をします。
コネクション確立には、3ウェイハンドシェークという方法をとります。クライアントとサーバの間で、SYN→SYN/ACK→ACKというやりとりが行われます。
TCPでは、プロトコルによってポート番号が割り当てられます。よく使うプロトコルには、ウエルノウンポートという、決まったポート番号が使われます。メールで使われるSMTPは25、ホームページで使われるhttpが80、といった具合です。
TCPパケットには、それぞれTCPヘッダが付加されます。TCPヘッダのサイズは、IPと、同じく20byteです。
その中で、シーケンス番号、応答確認番号は、TCPならではのもので、パケットの完全性を担保するためのものです。シーケンス番号に欠番が生じれば、上記の通り、データに欠損が発生したと判断されて、パケットの再送要求が行われます。
また、コントロールフラグには、上記のSYN, ACK, RSTなどの区分がセットされます。
その他にも、データオフセット、ウィンドウサイズなどの項目があります。
TCPはインターネットでもっとも使われる通信プロトコルだと思います。よく把握しておくべきだと思います。