TCP協议传输机制.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP協议传输机制

TCP协议传输机制 摘要:本文简要介绍了TCP协议的特点、可靠传输的实现、流量控制、拥塞控制等 关键词:TCP 传输 流量控制 拥塞控制 TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。 1 TCP协议的主要特点 TCP协议是TCP/IP体系中非常复杂的一个协议,下面先介绍其主要特点。 (1)TCP是面向连接的传输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。 (2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。 (3)TCP提供可靠交付的服务。也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。 (4)TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序在把数据传送给TCP的缓存后,就可以做自己的事,而TCP在合适的时候把数据发送出去。在接收时,TCP把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。 (5)面向字节流。虽然在应用程序和TCP的交互式一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系,但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。 2 TCP可靠传输的实现 2.1 以字节为单位的滑动窗口 TCP的滑动窗口是以字节为单位的。假定A收到了B发来的确认报文段,其中窗口是20字节,而确认号是31。根据这两个数据,A就构造出自己的发送窗口。 先讨论发送方A的发送窗口。发送窗口表示:在没有收到B确认的情况下,A可以把窗口内的数据都发送出去。凡是已经发送过的数据,在未收到确认之前都必须暂时保留,以便在超时传送中使用。 发送窗口里面的序号表示允许发送的序号。窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据,但接收方必须来得及处理这些收到的数据。 发送窗口后沿的部分表示已发送且已收到了确认。这些数据显然不需要再保留。而发送窗口前沿的部分表示不允许发送的,因为接收方都没有为这部分数据保留是存放的缓存可空间。 发送窗口的位置由窗口前沿和后沿的位置共同确定。发送窗口后沿的变化情况有两种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口后沿不可能向后移动,因为不能撤销掉已收到的确认。发送窗口前沿通常是不断向前移动,但也有可能不动。这对应于两种情况:一是没有收到新的确认,对方通知的窗口大小也不便;二是收到了新的确认但对方通知的窗口缩小了,使得发送窗口前沿正好不动。 要描述一个发送窗口的状态需要三个指针P1,P2和P3,,指针都指向字节的序列号。这三个指针指向的几个部分的意义如下: 小于P1的是已发送并已收到确认的部分,大于P3的是不允许发送的部分。 P3-P1=A的发送窗口 P2-P1=已发送但尚未收到确认的字节数 P3-P2=允许发送但尚未发送的字节数 再看一下B的接收窗口。B的接收窗口大小是20。在接收窗口外面,到30号为止的数据是已经发送过确认,并且已经交付给主机了。因此B可以不再保留这些数据。接收窗口内的序号是允许接收的。 现在假定B收到了序号为31的数据,并把31到33的数据交付给主机,然后B删除这些数据。接着把接收窗口向前移动3个序号,同时给A发送确认。A收到B的确认后,就可以把发送窗口向前滑动3个序号,但指针P2不动。 A在继续发送完后面的数据后,指针P2向前移动和P3重合,发送窗口内的序号都已用完,但还没有再收到确认。由于A的发送窗口已满,可用窗口减小到零,因此必须停止发送。若发送窗口内所有数据都已正确到达B,B也早已发出了确认,但这些确认滞留在网络中。为了保证可靠传输,A只能认为B还没收到这些数据。于是,A在经过一段时间后就重传这部分数据,,,直到收到B的确认位置。如果A收到的确认号落在发送窗口内,A就可以是发送窗口继续向前滑动,并发送新的数据。 2.2 超时传送时间的选择 上面讲到,TCP的发送方在规定时间内没有收到确认解就要重传已发送的报文段。为了使超时重传时间不至于过长或过短,TCP采用了一种自适应算法,它记录一个报文段发出的时间,以及接收到相应的时间,这两个时间差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时间RTTS。每当第一次测量到RTT样本时,RTTS值就为所测量到的RTT样本值。但以后没

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档