在传输层,我们知道最重要的协议就是TCP传输协议了。那么什么是TCP传输协议呢?我们现在就来简单的为大家介绍一下,另外还对它的服务特点进行一个总结。希望从中能让大家清楚地掌握这部分内容。
TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的***传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP传输协议为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK); 如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
首先,TCP传输协议建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。
在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。
在拥塞控制上,采用慢启动算法。
TCP所提供服务的主要特点
(1)面向连接的传输;
(2)端到端的通信;
(3)高可靠性,确保传输数据的正确性,不出现丢失或乱序;
(4)全双工方式传输;
(5)采用字节流方式,即以字节为单位传输字节序列;
(6)紧急数据传送功能。
TCP的重传策略
TCP传输协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重发定时器,如果在定时器超时前收到确认就关闭该定时器,如果定时器超时前没有收到确认,则重传该数据段。
这种重传策略的关键是对定时器初值的设定。目前采用较多的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个变量RTT,用于存放当前到目的端往返所需要时间最接近的估计值。当发送一个数据段时,同时启动连接的定时器,如果在定时器超时前确认到达,则记录所需要的时间(M),并修正RTT的值,如果定时器超时前没有收到确认,则将RTT的值增加1倍。
TCP协议是如何确保数据传输高可靠性
为了保证可靠性,发送的报文都有递增的序列号。序呈和确认号用来确保传输的可靠性。此外,对每个报文都设立一个定时器,设定一个***时延。TCP传输协议对那些超过***时延仍没有收到确认信息的报文就认为已经丢失,需要重传。