- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP是一种面向连接的、可靠的、字节流的协议; TCP使用滑动窗口机制实现流量控制; TCP使用检验和、确认和超时机制实现差错控制; TCP软件在两个设备之间传输的数据单元成为报文段,包含20-60B的首部和来自应用进程的数据; 被损坏和丢失的报文段被重发,重复的报文段被丢弃; TCP建立连接需要3次握手;释放连接需要4次握手; TCP状态及相互间的转换以有限状态机的形式来表示; TCP管理4个不同的定时器:重传、持续、保活和时间等待。 8.11 本章小结 * * * 将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 * 只要建立TCP连接,就能支持双向的数据流。即数据可在同一时间在两个方向上独立地进行传输。每一端都有自己的发送缓存和接收缓存。 * * * * * * * * * * * * 为了表达TCP在建立连接、释放连接和数据传输期间所发生的所有状态及各状态可能发生的转换,可以通过有限状态机来描述。 有限状态机是这样一种机器,它通过有限的状态。在任何时刻,机器只处于某一种状态,并一直保持这个状态,直到某个事件发生。发生的事件使机器进入一个新的状态,即事件可使机器完成某种操作。状态转换表示一个状态到另一个状态的迁移,包括迁移的条件和迁移的动作。下页图给出了TCP的各种状态。 在这个图中,状态都用椭圆表示。从一个状态通过有方向的线可转换到另一个状态。每一条线都注上用斜杠隔开的两个字符串。第一个字符串是输入,即TCP所收到的。第二个字符串是输出,即TCP所发送的。图中的虚线表示服务器的,实线表示客户的,而较细的线对应与非正常情况。 8.5 TCP的连接管理状态 状态转换图 8.6 流量控制 两种极端情况 运输层协议只发送一个字节的数据,然后在发送下一个字节之前等待确认。 传输层协议能够发送它的全部数据,而不考虑确认。 流量控制:发送端在收到从目的站发来的确认之前源站可以发送的数据量。 TCP采用可变大小的滑动窗口协议进行流量控制。以防止发送端的数据发送得过快以致于接收端来不及处理。TCP发送数据的多少是由这个窗口定义的。 滑动窗口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 a. 滑动之前 b. 滑动之后 滑动窗口 功能:流量控制。 窗口随着数据的发送和确认的接收能够在缓存内移动。 下图表示窗口大小为10。在收到目的站发来的任何确认之前,源站可以发送一直到10个字节。但是,源站若收到对前3个字节的确认,它就将窗口向右滑动3个字节。这就表示,它现在可以再发送10个字节还不需要考虑到确认信息。 下图画出了前一个窗口,但增加了一个指针,源站用它指出哪些字节是已经发送出去的,哪些字节是可以发送的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 字节4至7已被 发送 已确认的 字节 字节8至13可以发送 字节14至16不能发送 指针 带有指针的滑动窗口 滑动窗口 增大窗口 目的站可以在确认报文中增大窗口,下图画出了窗口在滑动的同时也增大了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 滑动窗口 滑动窗口 a.窗口大小为7 b.3个字节被确认,窗口大小增加到10 增大窗口 减小窗口 目的站可以在确认报文中减小窗口,下图画出了窗口在滑动的同时也减小了。但是,这里有一个限制:窗口在减小时其前沿不能向左滑动。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 滑动窗口 滑动窗口 a.窗口大小为7 b.3个字节被确认,窗口大小缩小到5 窗口减小 使用滑动窗口可使传输更加有效,同时也可以控制数据流,使得目的站不致因数据来的过多而瘫痪。 TCP的滑动窗口是面向字节的。 窗口包括已发送的字节和未被确认的字节,以及可以发送的字节。 接收方窗口是说明接收方还能再接收的字节数。 在TCP报文段首部的窗口大小字段的值就是当前给对方设置的窗口值。 滑动窗口 TCP的滑动窗口要点如下: 窗口管理 TCP使用两个缓存和一个窗口来控制数据的流动。发送端的TCP有一个缓存,用来存储从发送应用程序来的数据。应用程序产生数据,并将其写入缓存。发送端对这个缓存设置一个窗口,只要这个窗口大小不是零就可以发送报文段。TCP的接收端也有一个缓存。它接收数据,检查它们,并将它们存储在缓存中,以便接收应用程序将其取走。 发送
文档评论(0)