前回の「信頼性のある通信を実現するTCPプロトコル(1)」では、TCPの通信モデルの概略について解説した。 TCPは信頼性のある双方向のストリーム型通信を実現するためのプロトコルである。信頼性があるとは、送信したデータが、送信した順番どおりに、欠落や重複なく、相手にまで届けられるということを意味している。これを実現するための基本的な仕組みは、あらゆるデータ送信に対して、必ず受信確認(ACK)による送達確認を行い、パケットが入れ替わっていたり、欠落していたりした場合には再送を行うというものである。 また信頼性だけでなく、パフォーマンスを向上させるための工夫も凝らしている。具体的には、パケットを1つ送るたびにいちいち確認応答を行うのではなく、まとめて受信確認を行うこと、順不同で到着したパケットの再整列、フロー制御などが挙げられる。これらを実現するスライディング・ウィンドウ制御についても解説した
![第15回 信頼性のある通信を実現するTCPプロトコル(2)](https://cdn-ak-scissors.b.st-hatena.com/image/square/6e84fc6ab06f31b2e64248cbfc92fe06deb5bab5/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fimages%2Flogo%2F1200x630_500x500_ait.gif)