1 / 7
文档名称:

TCP协议可靠性数据传输实现原理分析.doc

格式:doc   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

TCP协议可靠性数据传输实现原理分析.doc

上传人:xxj16588 2016/2/14 文件大小:0 KB

下载得到文件列表

TCP协议可靠性数据传输实现原理分析.doc

文档介绍

文档介绍:TCP协议是一种面向连接的,为不同主机进程间提供可靠数据传输的协议。TCP协议假定其所使用的网络栈下层协议(如IP协议)是非可靠的,其自身提供机制保证数据的可靠性传输。在目前的网络栈协议族中,在需要提供可靠性数据传输的应用中,TCP协议是首选的,有时也是唯一的选择。TCP协议是在最早由Cerf和Kahn[1]所提出的有关网络数据包传输协议的概念之上建立的。TCP协议被设计成符合分层协议结构,工作在ISO/OSI七层网络模型中的传输层中,使用网络层协议(如最常见的IP协议)提供的服务。网络层协议尽最大努力传输上层提供的数据但并不保证数据传输的可靠性。可靠性保证必须由上层协议(如TCP协议)提供。网络层协议主要完成的工作有:1>实现不同网络(主机)间的数据包路由传递。2>在发送端(或中转站)提供数据包分片功能以使数据包大小满足PMTU(Path-MTU)。3>在接收端提供数据包分片重组功能。4>负责数据包优先级,安全性等问题。传输层协议(主要针对TCP协议而言)主要完成的工作有(并非所有的传输层协议都需要提供这些功能如UDP协议就不提供可靠性数据传输):1>提供多路复用。2>实现数据基本传输功能。3>建立通信通道。4>提供流量控制。5>提供数据可靠性传输保证。数据可靠性传输保证是其中最为重要的方面,也是TCP协议区别于其它协议的最重要特性。所谓提供数据可靠性传输不仅仅指将数据成功的由本地主机传送到远端主机,数据可靠性传输包括如下内容:1>能够处理数据传输过程中被破坏问题。2>能够处理重复数据接收问题。3>能够发现数据丢失以及对此进行有效解决。4>能够处理接收端数据乱序到达问题。。TCP协议规范和当前绝大多数TCP协议实现代码均采用数据重传和数据确认应答机制来完成TCP协议的可靠性数据传输。数据超时重传和数据应答机制的基本前提是对每个传输的字节进行编号,即我们通常所说的序列号。数据超时重传是发送端在某个数据包发送出去,在一段固定时间后如果没有收到对该数据包的确认应答,则(假定该数据包在传输过程中丢失)重新发送该数据包。而数据确认应答是指接收端在成功接收到一个有效数据包后,发送一个确认应答数据包给发送端主机,该确认应答数据包中所包含的应答序列号即指已接收到的数据中最后一个字节的序列号加1,加1的目的在于指出此时接收端期望接收的下一个数据包中第一个字节的序列号。数据超时重传和数据确认应答以及对每个传输的字节分配序列号是TCP协议提供可靠性数据传输的核心本质。1)数据确认应答数据包中应答序列号的含义应答序列号并非其表面上所显示的意义,其实际上是指接收端希望接收的下一个字节的序列号。所以接收端在成功接收到部分数据后,其发送的应答数据包中应答序列号被设置为这些数据中最后一个字节的序列号加一。所以从其含义上来说,应答序列号称为请求序列号有时更为合适。应答序列号在TCP首部中应答序列号字段中被设置。而TCP首部中序列号字段表示包含该TCP首部的数据包中所包含数据的第一个字节的序列号(令为N)。如果接收端成功接收该数据包,之前又无丢失数据包,则接收端发送的应答数据包中的应答序列号应该为:N+LEN。其中LEN为接收的数据包的数据长度。该应答序列号也是发送端将要