https://blog.csdn.net/guoweimelon/article/details/50878503
TCP发送的报文段是交给IP层传送的,但IP层只能提供尽最大努力交付的服务,也就是说,TCP下面的网络所提供的是不可靠的传输。因此,TCP采用了一些适当的措施来提供可靠的传输,使得两个传输层直接的通信变得可靠。
----------工作原理--------------------------------------------------------------------------------------------------------------
一、可靠传输的要求
可靠的传输应该满足下面两个要求:
(1)传输的信道不产生差错;
(2)保证传输数据的正确性,无差错、不丢失、不重复、并且按序到达。
这里有两层意思,一是能够正确地传输数据,二是接收方能够及时处理发送方发送的数据。
二、可靠传输的工作原理
TCP为了提供可靠传输:
(1)首先,采用三次握手来建立TCP连接,四次握手来释放TCP连接,从而保证建立的传输信道是可靠的。
(2)其次,TCP采用了连续ARQ协议(回退N,Go-back-N;超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时处理所接收到的数据,进行流量控制。
(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。
----------实现过程--------------------------------------------------------------------------------------------------------------
一、三次握手建立连接
详见:TCP三次握手建立连接 http://blog.csdn.net/guoweimelon/article/details/50878730
二、四次握手释放连接
详见:TCP四次握手释放连接 http://blog.csdn.net/guoweimelon/article/details/50879302
三、连续ARQ协议和滑动窗口协议
详见:TCP连续ARQ协议和滑动窗口协议 http://blog.csdn.net/guoweimelon/article/details/50879588
四、拥塞控制
详见:TCP的拥塞控制 http://blog.csdn.net/guoweimelon/article/details/50880109
参考资料:
1、TCP可靠传输&流量控制&拥塞控制 http://my.oschina.net/manmao/blog/601585
2、可靠传输的工作原理 https://xiaoxueying.gitbooks.io/computer-networks-5th-/content/ke_kao_chuan_shu_de_gong_zuo_yuan_li.html
3、计算机网络【六】:传输层-TCP概述 http://blog.chinaunix.net/uid-26275986-id-4109209.html
4、TCP/IP(三) —— 可靠传输工作原理 http://pmghong.blog.51cto.com/3221425/1242470