我们总是提到TCP与UDP,因此我们对于它们大概有所了解.相信大家肯定都知道:TCP和UDP都使用相同的网络层(IP),但TCP向应用层提供一种面向连接的并可靠的字节流服务,UDP则向服务层提供面向数据报的,同时是不可靠的.
下面介绍TCP两个特点.
特点一:面向连接
面向连接意味着两个使用TCP的应用,在彼此交换数据之前必须先建立一个TCP连接.这其实就像我们打电话一样,先拨号码振铃通知对方,等待对方接通电话,然后说明自己是谁.
特点二:可靠性
可靠性将从以下几个方面体现:
应用数据被分割成TCP认为最适合发送的数据块.由TCP传递给IP的信息单位称为报文段或段(segment).
当TCP发出一个段后,他启动一个定时器,等待目的端确认收到这个报文段.
当TCP收到发自TCP收到连接另一端的数据,他将发送一个确认.这个确认并不是立即发送,通常将推迟几分之一秒.
TCP将保持它首部和数据校验和.
因为TCP报文段作为IP数据报来传输,而IP数据包的到达可能会失序,因此TCP报文段的到达也可能会失序.如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层.
既然IP数据报会产生重复,TCP的接收端必须丢弃重复的数据.
TCP还能提供流量控制.TCP连接的每一方都有固定大小的缓冲空间.
下面我们一起来看看TCP数据报首部:
注:上图来自网络.
具体介绍稍后再写 -.-