http://blog.sina.com.cn/s/blog_63ec18bc01016gcv.html

在TCP的连接中,数据流必须以正确的顺序送达对方。TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,为准备重传而首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。TCP在协议中就对数据可靠传输做了保障,握手与断开都需要通讯双方确认,数据传输也需要双方确认成功,在协议中还规定了:分包、重组、重传等规则;而UDP主要是面向不可靠连接的,不能保证数据正确到达目的地。      


    另外,TCP是面向流的,发送和接收对于此协议来说,没有什么头和尾,全部顺序投递;而UDP是面向包的,每次接收与发送都是一个数据块。这样在编程时需要注意程序应提供不同的处理模型。在进行传输之前,首先发送请求信号,目的端接收信号后,回复信息,之后建立连接开始传输数据,俗称TCP三次握手。

TCP如何保证可靠传输_UDP



TCP如何保证可靠传输_UDP_02



TCP如何保证可靠传输_重传_03