前回の「信頼性のある通信を実現するTCPプロトコル(1)」では、TCPの通信モデルの概略について解説した。 TCPは信頼性のある双方向のストリーム型通信を実現するためのプロトコルである。信頼性があるとは、送信したデータが、送信した順番どおりに、欠落や重複なく、相手にまで届けられるということを意味している。これを実現するための基本的な仕組みは、あらゆるデータ送信に対して、必ず受信確認(ACK)による送達確認を行い、パケットが入れ替わっていたり、欠落していたりした場合には再送を行うというものである。 また信頼性だけでなく、パフォーマンスを向上させるための工夫も凝らしている。具体的には、パケットを1つ送るたびにいちいち確認応答を行うのではなく、まとめて受信確認を行うこと、順不同で到着したパケットの再整列、フロー制御などが挙げられる。これらを実現するスライディング・ウィンドウ制御についても解説した