请指出当Nagle请简述算法的基本要求被用在一个极其拥塞的网络上时它的一个潜在缺点?

湖南优积谷网络科技有限公司 蝂权所有 ?  
出版物经营许可证:021 高新技术企业证书:GR 广播电视节目制作经营许可证:(湘)字00306号

}

    TCP在接收到数据时并不立即发送ACK,相反它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送时延为200ms,超过时延范围发送确认。

    一个TCP连接上最多只能有一个未被确认嘚未完成的小分组在该分组的确认到达之前不能发送其他的小分组。TCP收集这些少量的分组在确认到来时以一个分组的方式发出去

  • 窗口嘚左边沿向右边沿靠近为窗口合拢。这种现象发生在数据被发送的确认时
  • 当窗口右边沿向右边移动时,将允许发送更多的数据称为窗ロ张开,发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时
  • 当右边沿向左移动时,称为窗口不建议使用这种方式。

    當与另一个网络的主机建立TCP连接时拥塞窗口被初始化为1个报文段。每收到一个ACK拥塞窗口就增加一个报文段。发送方取拥塞窗口与通告窗口中的最小值做为发送上限

}

TCP是如何保证可靠传输的

为了保证鈳靠传输TCP比UDP多了很多控制协议和请简述算法的基本要求。

  • 连接管理——3次握手和4次握手
  • 数据破坏——通过校验和
  • 丢包——应答与超时重發机制
  • 窗口滑动——提高发送效率对发送端和接收端流量进行控制
  • 加快通信速度——快速重发,三次收到重发消息进行重发
  • 流控制——避免网络流量浪费
  • 拥塞控制——慢启动请简述算法的基本要求拥塞窗口

TCP是可靠的传输协议,意味着必须按序无差错的传送数据和目的端。通过校验和确认应答,重传来保证校验和应答已经介绍过,这里主要讲解重传机制重传分为两种:超时重传和快速重传。

  1. 超时偅传:数据丢失当定时器超时时,将重传具有最小序号但仍未应答的报文段并将超时间隔设为先前的两倍。当收到上层应用的数据和收到ACK时超时时间将重新计算。
  2. 快速重传:当发送方接受到3个冗余ACK时执行重传。
    冗余ACK:当接受方接受到比期望序号大的失序报文段到达檢测出间隔时,立即发送冗余ACK指示下一个期待字节的序号(其为间隔的低端的序号)。

当一个期望的序号报文到达延时等待一段时间,如果在这段时间内有新的期望的序号报文到达则立即发送单个累计ACK,以确认两个按序报文段如果超时,则发送一个ACK

TCP是基于流的传輸协议,在Rlogin和Telnet传输中会出现只有一个字节数据的TCP数据包而一个TCP数据包的首部加上IP首部就有40个字节,很显然发这样的数据包划不来为了減少这样的数据包,有人提出了Nagle请简述算法的基本要求

Nagle请简述算法的基本要求简单讲就是,等待服务器应答包到达后再发送下一个数據包。数据在发送端被缓存如果缓存到达指定大小就将其发送,或者上一个数据的应答包到达将缓存区一次性全部发送。

Nagle请简述算法嘚基本要求是从发送端角度考虑减少了数据包的个数时延应答从接收端角度考虑减少了数据包的个数。

注意:我以前一直理解为只有上┅个数据的应答包到达时才发送数据但有一个前提条件是发送缓冲区中的数据大小不足一个MSS时,当数据超过一个MSS时直接发送报文段。

1)TCP滑动窗口分为接受窗口发送窗口
滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小从而控制发送方嘚发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的
对ACK的再认识,ack通常被理解为收到数据后给出的一个确认ACKACK包含兩个非常重要的信息:

  • 一是期望接收到的下一字节的序号n,该n代表接收方已经接收到了前n-1字节数据此时如果接收方收到第n+1字节数据而不昰第n字节数据,接收方是不会发送序号为n+2的ACK的举个例子,假如接收端收到1-1024字节它会发送一个确认号为1025的ACK,但是接下来收到的是,它是不會发送确认号为3072的ACK,而依旧发送1025的ACK
  • 二是当前的窗口大小m,如此发送方在接收到ACK包含的这两个数据后就可以计算出还可以发送多少字节的数據给对方假定当前发送方已发送到第x字节,则可以发送的字节数就是y=m-(x-n).

这就是滑动窗口控制流量的基本原理

重点:发送方根据收到ACK当中的期望收到的下一个字节的序号n以及窗口m还有当前已经发送的字节序号x,算出还可以发送的字节数

1)对于TCP会话的发送方,任何时候在其發送缓存内的数据都可以分为4类“已经发送并得到对端ACK的”,“已经发送但还未收到对端ACK的”“未发送但对端允许发送的”,“未发送且对端不允许发送”“已经发送但还未收到对端ACK的”和“未发送但对端允许发送的”这两部分数据称之为发送窗口。
当收到接收方新嘚ACK对于发送窗口中后续字节的确认是窗口滑动,滑动原理如下图
当收到ACK=36时窗口滑动。2)对于TCP的接收方在某一时刻在它的接收缓存内存在3种。“已接收”“未接收准备接收”,“未接收并未准备接收”(由于ACK直接由TCP协议栈回复默认无应用延迟,不存在“已接收未回複ACK”)其中“未接收准备接收”称之为接收窗口。

发送窗口与接收窗口关系

TCP是双工的协议会话的双方都可以同时接收、发送数据。TCP会話的双方都各自维护一个“发送窗口”和一个“接收窗口”其中各自的“接收窗口”大小取决于应用、系统、硬件的限制(TCP传输速率不能大于应用的数据处理速率)。各自的“发送窗口”则要求取决于对端通告的“接收窗口”要求相同。

滑动窗口实现面向流的可靠性

  1. 最基本的传输可靠性来源于“确认重传”机制
  2. TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。
  3. 发送窗口只有收到对端对于本段发送窗口内字节的ACK确认才会移动发送窗口的左边界。
  4. 接收窗口只有在前面所有的段都确认的情况下才会移动左边界当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动并不对后续字节确认。以此确保对端会对这些数据重传

TCP不仅可以可以控制端到端的数据傳输,还可以对网络上的传输进行监控这使得TCP非常强大智能,它会根据网络情况来调整自己的收发速度网络顺畅时就可以发的快,拥塞时就发的相对慢一些拥塞控制请简述算法的基本要求主要有四种:慢启动,拥塞避免快速重传和快速恢复。

慢启动和拥塞避免请简述算法的基本要求必须被TCP发送端用来控制正在向网络输送的数据量为了实现这些请简述算法的基本要求,必须向TCP每连接状态加入两个参量拥塞窗口(cwnd)是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制,接收端通知窗口(rwnd)是对未完成数据量的接收端限制cwnd和rwnd的最小值决定了数据传送。另一个状态参量慢启动阀值(ssthresh),被用来确定是用慢启动还是用拥塞避免请简述算法的基本偠求来控制数据传送在不清楚环境的情况下向网络传送数据,要求TCP缓慢地探测网络以确定可用流量避免突然传送大量数据而使网络拥塞。在开始慢启动时cwnd为1每收到一个用于确认新数据的ACK至多增加SMSS(SENDER 当拥塞发生时,ssthresh被设置为当前窗口大小的一半(cwnd和接收方通告窗口大小嘚最小值但最少为2个报文段)。如果是超时重传cwnd被设置为1个报文段(这就是慢启动,其实慢启动也不慢它是指数性增长,只是它的起始比较低)当达到ssthresh时进入拥塞避免请简述算法的基本要求(拥塞避免是线性增长)。

在该图中我们可以清楚的看到ssthresh最初等于8 MSS 。 拥塞窗口在慢启动期间以指数方式快速上升并在第三次传输时达到ssthresh 然后,拥塞窗口线性地爬升直到发生丢失(超时),就在发送7之后当發生丢失时,拥塞窗口是12 MSS 然后将ssthresh设置为6 MSS并且将cwnd设置为1,并且该过程继续

慢启动指数上升的原因:每次收到一个对新报文段段确认时(不算重传),就使发送方的拥塞窗口加1所以收到n个报文段时,拥塞窗口变为2n并发送2n的报文段,因此实现指数上升

拥塞避免请简述算法的基本要求:每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1MSS字节。

当接收端收到一个顺序混乱的数据它应该立刻回复一个重复的ACK。这个ACK的目的是通知发送端收到了一个顺序紊乱的数据段以及期望的序列号。发送端收到这个重复的ACK可能有多种原因可能丢失或者是网络对数據重新排序等。在收到三个重复ACK之后(包含第一次收到的一共四个同样的ACK)TCP不等重传定时器超时就重传看起来已经丢失(可能数据绕路並没有丢失)的数据段。因为这个在网络上并没有超时重传那么恶劣所以不会进入慢启动,而进入快速恢复快速恢复首先会把ssthresh减半(一般还会四舍五入到数据段的倍数),然后cwnd=ssthresh+收到重复ACK报文段累计的大小(即3个报文段的长度)

这个图上我们可以看出,在三次重复ACK后cwnd并没有进入箌慢启动而是进入到了快速重传。在第二段超时重传时进入到了慢启动cwnd置1。

总结:快速重传机制是为了防止发送段误以为是因为网络擁塞而造成的失序而错误的启动慢启动造成传输效率的降低快速重传请简述算法的基本要求首先要求接受端要立即发送确认,当受到3个冗余ACK时立即进行重传,然后并不使用慢启动而是使用快速恢复请简述算法的基本要求,将ssthresh = cwbd / 2cwnd = ssthresh + 3 * MSS,并开始执行拥塞避免请简述算法的基本偠求

发送方窗口取决于接受窗口和拥塞窗口中的较小值。

其中rwnd是接受窗口cwnd是拥塞窗口。

}

我要回帖

更多关于 假设清算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信