TCP面向连接中的“连接”和“可靠”与“不可靠”

转载自:http://blog.csdn.net/haizhongyun/article/details/7621199点击打开链接

连接是对状态的保持

实际上就是在客户端和服务器端都维护一个变量,这个变量维护现在数据传输的状态,例如传输了哪些数据,下一次需要传输哪些数据,等等,并不是真的我们想象中的真的有什么东西连接着这两端,因为无论对于有连接还是无连接,都有网线连着呢(不包括无线网),所以连接根本就不是是否真的有什么东西把他们连接起来,真实的含义就是我上面说的,两边维护一个状态变量。


UDP通讯有四个参数:源IP、源端口、目的IP和目的端口。而TCP通讯至少有有六个参数:源IP、源端口、目的IP和目的端口,以及序列号和应答号。
序列号和应答号是TCP通讯特有的参数,TCP通讯利用序列号和应答号来保持和确认数据的关联与正确性,是在三次握手中确定的,不正确的序列号和应答号会导致无法正常通讯。因此对TCP连接的连接概念可以简单理解成为同UDP通讯相比,用序列号和应答号确定了相互之间的连接特征,来保证数据传输的正确性。

TCP保证可靠,面向连接而UDP不保证可靠,非面向连接,UDP的报头长度远远小于TCP的报头长度。TCP使用了三种基础机制来实现面向连接的服务:1 使用序列号进行标记,以便TCP接收服务在向目的应用传递数据之前修正错序的报文排序;2 TCP使用确认,校验,和定时器系统提供可靠性。3 TCP在应用层数据上附加了一个报头,报头包括序列号字段和这些机制的其他一些必要信息,如叫做端口号的地址字段,该字段可以标识数据的源点和目标应用程序。

UDP发出去的包是不管的,对方也不会应答是否收到.TCP发出包之后对方会应答是否完整收到

可以在发包的时候采取类似创建TCP连接那样的操作,发消息,然后对方给一个ACK,然后发消息方再发一个ACK,这样算发送成功。
通过最简单的重传确认即可达到QQ现在做到的效果,简单说就是发送方一直发送数据,直到收到接收方的反馈再停止即可。 


猜你喜欢

转载自blog.csdn.net/see__you__again/article/details/52744464
今日推荐