当前位置: 首页 > news >正文

企业网站营销优缺点常州兼职网站建设

企业网站营销优缺点,常州兼职网站建设,建设大型网站,北京市装修公司前10名文章目录 TCP核心机制TCP核心机制四: 滑动窗口为啥要使用滑动窗口?滑动窗口介绍滑动窗口出现丢包咋办? TCP核心机制五: 流量控制 TCP核心机制 书接上文~ TCP核心机制四: 滑动窗口 为啥要使用滑动窗口? 之前我们讨论了确认应答策略,对每一个发送的数据段,都要给一个ACK确…

文章目录

  • TCP核心机制
    • TCP核心机制四: 滑动窗口
      • 为啥要使用滑动窗口?
      • 滑动窗口介绍
      • 滑动窗口出现丢包咋办?
    • TCP核心机制五: 流量控制


TCP核心机制

书接上文~

TCP核心机制四: 滑动窗口

为啥要使用滑动窗口?

之前我们讨论了确认应答策略,对每一个发送的数据段,都要给一个ACK确认应答.收到ACK后再发送下一个数据段.这样做有一个比较大的缺点,就是性能较差,尤其是数据往返的时间较长的时候.

在这里插入图片描述
既然这样一发一收的方式性能较低,那么我们一次性发送多条数据,就可以大大的提高性能(其实是将多个段的等待时间重叠在一起了).

这里的提高效率,只是"亡羊补牢",使传输效率的损失,尽可能降低,引入滑动窗口,不能使传输效率比UDP还高的~

滑动窗口介绍

改进方案:
在这里插入图片描述

  • 窗口大小指的是无需等待确认应答而可以继续发送数据的最大值,上图的窗口大小就是4000个字节(四个段).
  • 发送前四个段的时候,不需要等待任何ACK,直接发送.
  • 操作系统为了维护这个滑动窗口,需要开辟发送缓冲区来记录当前还有哪些数据没有应答,只有确认应答过的数据,才能从缓冲区删掉.
  • 窗口越大,则网络的吞吐率就越高.

滑动窗口出现丢包咋办?

滑动窗口的前提,是可靠性,如果在滑动窗口传输中,出现丢包,咋办??

  • 情况一: 数据包已经到达,ACK被丢了.
    在这里插入图片描述
    在这种情况下,我们不需要做任何处理.
    批量发数据,批量ACK,多个ACK,只是丢其中的一部分吧,不可能全丢.

    为啥不做处理?
    要想搞清楚这个问题,我们首先要理解确认序号的含义.
    确认序号表示的是收到的数据最后一个字节的下一个序号.
    进一步可以理解成,确认序号之前的数据,主机B都已经收到了.接下来你要发的数据就从确认序号这里往后发就行了~

    举个例子,虽然1001 ACK丢了,但是2001 ACK到达了.发送方收到2001之后,意味着2001之前的数据都已经收到哩~
    也就是说,后一个ACK能够涵盖前一个ACK的意义~

  • 情况二: 数据包就直接丢了.
    在这里插入图片描述

    • 当某一段报文段丢失之后,发送段会一直收到1001这样的ACK,就像是在提醒发送端,"我想要的是1001"一样.
    • 如果发送端主机连续三次收到了同样一个"1001"这样的应答,于是主机就会意识到1001数据丢包了,就会将对应的数据1001-2000重新发送.
    • 这个时候接收端收到了1001之后,再次返回的ACK就是7001了(因为2001-7000)接收端其实之前就已经收到了,被放到了接收端操作系统内核的接收缓冲区中.

    这种机制被称为"高速重发控制"(也叫"快重传").

TCP核心机制五: 流量控制

滑动窗口的窗口大小,对于传输数据的性能是直接相关的.

那么问题就来了,窗口大小能无限大吗?
通信,是双方的事情,发送方发的快了,你也得确保,接收方能处理过来啊~

接收方处理数据的速度是有限的,如果发送端发的太快,导致接收端的缓冲区被打满,这个时候如果发送端继续发送,就会造成丢包,继而引起丢包重传等等一系列连锁反应.

TCP支持根据接收端的处理能力,来决定发送端的发送速度,这个机制就叫做流量控制.

流量控制,不是TCP独有的机制.其他的协议也可能会涉及到流量控制(比如,数据链路层中有的协议,也支持流量控制~)

在这里插入图片描述

  • 接收端将自己可以接受的缓冲区大小放入TCP首部中的"窗口大小"字段,通过ACK端通知发送端.
  • 窗口大小字段越大,说明网络的吞吐量越高.
  • 接收端一旦发现自己的缓冲区快满了,就会将窗口大小设置成一个更小的值通知给发送端.
  • 发送端接受到这个窗口之后,就会减慢自己的发送速度.
  • 如果接收端缓冲区满了,就会将窗口设置为0,这时发送方不再发送数据,但是需要定期发送一个窗口探测数据段,来让接收端把窗口大小告诉发送端.

在这里插入图片描述

接收端如何把窗口大小告诉发送端呢?回忆一下我们之前提到的TCP首部.
在TCP首部中有一个16位窗口字段,这里就存放了窗口大小信息.
在这里插入图片描述

16位窗口字段这个属性,只有在ack这一位位1时才有效~

窗口大小,此处是16位,它能表示的范围0~64kb,这是否意味着发送方窗口大小最大就是64kb呢?

不是的!!
其实,在TCP首部的选项中,可以设置一个特殊的选项,“窗口扩展因子M”.
实际的窗口大小是窗口字段的值左移M位~

本文到这里就结束啦~

在这里插入图片描述

http://www.yayakq.cn/news/293631/

相关文章:

  • 丰台手机网站设计公司什么叫软文推广
  • 网站开发语言分类网页设计代码开头
  • 外贸网站框架个人网站 做导航
  • 建设网站流程图中文网页设计模板下载
  • 建站平台软件网站开发公司如何做直播
  • 响应式网站适合用什么框架做青岛seo排名扣费
  • 自己做个网站多少钱亿网中国网站管理系统
  • ps做网站首页步骤广州市几个区
  • 有想做企业网站建设网站地图在哪里展现
  • 长春企业网站排名优化做网站需要用到什么技术
  • 咸宁网站设计短网址生成系统设计
  • 帝国建站教程wordpress添加快速添加按钮
  • 外国网站架构南宁seo平台费用
  • 网站建设的一般步骤wordpress仿互站
  • 汕头网站排名推广做qq的网站
  • 网站服务运营队伍与渠道建设wordpress文章页加一言
  • 网站建设是干什么的wordpress outdoor
  • 公司网站建设模板下载成都开发小程序的公司
  • 网站免费正能量入口免费下载的视频网站
  • 江西网站制作wordpress广告代码没显示
  • 全球十大网站访问量排名网络服务商能删除网站
  • 中国建设银行招聘网站报名系统wordpress数据过滤
  • 韩国建筑网站怎么查网站是不是正规
  • PHP网站开发案例12源代码西安的网站设计单位
  • 网站开发开发小游戏吗蚌埠网络推广
  • 威海市做网站的商城建站模板
  • 新余做网站的拼多多代运营
  • 先搭建网站还是先做ui临汾花果街网站建设
  • 学科专业网站建设企业邮箱地址怎么注册
  • 网站后台服务器内部错误网站程序授权怎么做