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

招生门户网站建设方案wordpress 官方网站

招生门户网站建设方案,wordpress 官方网站,wordpress docker镜像,做个网站成功案例TCP 全称为 Transmission Control Protocol#xff08;传输控制协议#xff09;#xff0c;是一种面向连接的、可靠的、基于字节流的传输层通信协议#xff0c;其中可靠性是相对于其他传输协议的优势点。TCP 为了确保数据传输的可靠性主要做了以下几点#xff1a; 发送确…TCP 全称为 Transmission Control Protocol传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议其中可靠性是相对于其他传输协议的优势点。TCP 为了确保数据传输的可靠性主要做了以下几点 发送确认机制丢包重传机制滑动窗口拥塞控制 TCP 的传输基于字节流记录起始序列号、是否发送、是否接收。本文从实战出发使用 Wireshark 抓包工具来分析具体的请求。 确认和重传 TCP 报文头中有两个字段 Sequence number 序列号表示要发送数据的起始号Acknowledgment number 确认号表示消息已经接收返回下次要发送的起始号 发送确认 TCP 每次发送数据都有一个确认应答 ACK表示已经收到了数据包。确认号表示下一个传送的起始号。 发送一个 http 请求使用 Wireshake 抓取数据包打开 Statistics - Flow Graph在弹出的页面上将 Flow type 修改成 TCP Flows就能看到 TCP 的数据包请求 上图中标记了三个地方中间的的标记的发送确认,就表示数据发送和确认应答len 表示字节长度。发送 1 ~ 218 的字节确认应答返回了确认号 219。第二个发送确认也是类似原理所不同的是这个发送确认时接收端的发送确认。 重传机制 发送端的数据包一般都发送到接收端。但是在网络不好或者信号比较差的情况可能就无法正常发送到数据。 先介绍两个概念RTT 和 RTO。 RTT Round-Trip Time 表示往返时间表示网络一段到另一端所需要的时间也就是数据包的往返时间以 TCP 握手为例 RTT 表示数据包从发送到收到确认应答的时间。 RTO Retransmission Timeout 表示超时重传时间。超过这个时间没有确认应答就会重传报文段这个时间根据 RTT 来设置的。 重传机制是 TCP 基本的错误恢复功能常见的重传机制有两种 超时重传快速重传 1、超时重传 超时重传字面意思是超时规定的时间没有收到确认消息就会再次发送一个消息请求。TCP 发送方发送报文时会设置一个定时器如果在时间范围内没有收到接收方发来的 ACK 确认报文发送方就会重传已经发送的报文段。 TCP 有两种超时重传的情况 报文在发送途中丢失确认包在途中丢失 上面的 RTO 表示超时重传时间RTO 的设定不能过大的或者过小 如果过大请求等待的时间过长请求的效率低。如果过小正常返回的确认还未来得及返回就重传。加大网络符合。 设置一个适当的 RTO 才会让重传机制更加高效。超时时间 RTT 应该略大于往返时间 RTT。 如果超时重传的报文段又超时了该怎么办呢答案就是重传的超时时间加倍也就是再次超时重传的超时时间会增加到之前的两倍。 如果超时重传的报文段又丢包呢此时发送方会以 RTO 时间的 2、4、8倍的倍数尝试多次重传。 超时重传如果消息多次没有收到确认报文超时的周期也比较长有没有更加高效的方法减少超时重传的时间呢就引出下面的要讲的快速重传。 快速重传 快速重传不会等待超时时间到了再重传发送方收到 3 次重复确认报文端就不会等超时时间重试而是直接重传报文。 连续发送的报文段中间只要有一个丢失后续返回的确认号都是相同后面的报文段无论有没有返回都会重传一遍这种设置还是比较合理的。在一段时间内如果网络状况不好导致丢包情况后续的报文段一般也会丢包。 但是重传丢包后面所有的包也会造成网络传输的浪费。对于上面的例子如果只想传输 seq2其他有返回的确认包就不用重传。 TCP 有一种重传机制 SACK Selective Acknowledgment 选择性重传。 这种方式需要 TCP 报文段选项加一个 SACK 字段使用查看 Wireshake SYN 包中 SACK Permitted: 发送包有返回确认应答就会发送给发送方告知对应的数据被接收了发送方就能记录哪些数据被接收了哪些数据没有被接收。后面只会重传没有被接收的数据包这就是选择性重传。 滑动窗口 TCP 发送比较大的数据包TCP 会一次性发送大的数据包给接收方答案是不会的需要考虑网络带宽TCP 会将大的数据包拆分成多个大小适中的数据包发送一个 http 请求添加较大的参数使用 Wireshake 抓取数据包 数据包被拆分成五个小的数据包。 数据包被拆分成多个小的数据包之后数据包发送都有返回一个确认序列号每次发送一个新的包都等待上一个包的 ACK 回来之后才能发送这样一来一回的效率是很低的 TCP 为了解决这个问题引入窗口的概念在窗口范围内的数据包无需等待上一次 ACK 确认可以直接发送数据包 滑动窗口是 TCP 协议中的一种流量控制机制用来控制发送方和接收方数据传输的速率避免数据过多造成数据无法及时处理。 窗口的大小也就是 TCP 报文段的 windos 字段表示的就是接收方目前能接收的缓冲区的剩余大小发送端根据这个字段处理发送的数据。 发送端的窗口 发送窗口根据三个标准来划分是否发送、是否收到 ACK、是否在接收方处理范围内分成了四个部分: 四个部分组成 第一部分是已经发送并收到 ACK 确认的数据这部分数据已经发送成功了无需在缓存中保留了。第二部分数据是已经发生但是未收到 ACK 确认的数据。第三部分数据是未发送但是在接收方处理范围之内的数据。第二、第三部分共同组成发送的窗口。第四部分是需要发送但是未在接收方范围之内的数据。这部分数据在没有接收 ACK 确认之前是不会发送数据的。 如果发送方一直没有收到 ACK,数据不断的发送很快可用窗口也被耗尽这时发送方也不会继续发送数据了这时发送端可用窗口为零的情况我们成为“零窗口”。 随着 ACK 的确认窗口也会依次向右滑动比如发送端的窗口中比如 40 ~ 43 字节都收到了 ACK 确认那么整个可用的窗口就会顺次往右移动。此时 53 ~ 57的数据也都能发送了。 接收端的窗口 接收端的滑动窗口相对发送的窗口要简单的多主要分为三个部分 已经接收并确认的数据可以接收但是未接收的数据在接收范围之外不够缓存的数据也就是不可以接收的数据。 但数据接收后窗口也向右边滑动给发生端的数据提供数据缓存。如果读取缓存的数据速度有变化时接收端可能也会改变接收窗口的大小以此来控制发送端的发送速度。这就是滑动窗口进行流量控制的一种机制。 拥塞控制 网络中由于有大量的包传输在固定带宽下处理不过来数据包的传输可能会导致数据包阻塞网络传输的速度下降甚至会下降到 0 的情况。这就有点类似排队买东西如果正常排队速度虽然不快但处理速度比较稳定。但是如果一下涌来很多人口就会处理不过来导致堵死情况。 而 TCP 被设置成一个无私的协议当遇到网络拥塞时TCP 会减少自己发送数据包这样网络拥塞会得到很大的缓解。 为了实现拥塞控制首先在发送端定义一个拥塞窗口 CWND (congestion window),限制发送端发送数据最多没有收到 ACK 确认包的大小超过拥塞窗口范围后就不会继续发送数据了。 拥塞窗口会随着网络情况的变化动态的调用自身的大小大体的变化规则是如果没有出现拥塞就扩大窗口大小否则就缩小窗口的大小。 拥塞控制算法主要包含四个部分 慢启动拥塞避免拥塞发生快速恢复 慢启动 当一个新的TCP连接开始时无法确定是否用拥塞发生一开始不会发送大量的包而是从最小的发送窗口开始后续会采用倍增的方式增加窗口的大小窗口大小从 1 开始后续慢慢增大到 2、4、8 等。 指数增加速度会越来越快窗口扩大的一定的程度就会减慢增加的速度改成线性增加这时候就进入拥塞避免阶段。 拥塞避免 慢启动和拥塞避免的临界点叫做慢启动门限 ssthresh slow start threshold。 cwnd ssthresh 时使用慢启动算法。cwnd ssthresh 时就会使用「拥塞避免算法」。 ssthresh 大小一般是 65535 字节。拥塞避免的规则是每当收到一个 ACK 时cwnd 增加 1/cwnd。就变成线性增长了。 拥塞发生 拥塞避免将原来的指数增长改成了线性增长虽然增长速度减慢但 CWND 窗口还是在增长阶段。随着窗口进一步缓慢增加网络还是会遇到阻塞的状态会出现丢包的情况。就需要对丢包进行重传。 重传机制有两种 超时重传快速重传 当发生超时重传时sshresh 和 cwnd 的值会发生如下变化 sshresh 变成 cwnd 的一半cwnd 重置为 1 cwnd 重置为1表示直接进入慢启动状态。 上面的超时重传速度变化太快而快速重传是一个相对温和的方案。如果我们连续 3 次收到同样序号的 ACK包还能回传说明这个时候可能只是碰到了部分丢包网络阻塞还没有很严重无需重置 cwnd。 此时 ssthresh 和 cwnd 变化如下 cwnd cwnd/2 也就是设置为原来的一半;ssthresh cwnd 并进入到快速恢复阶段。 快速恢复 快速恢复主要是将 cwnd 恢复到正常大小上面说的 cwnd 设置成原来的一半ssthresh 设置成 cwnd 的大小。 快速恢复算法如下 重传丢失的数据包。如果接收到重复 ACK 确认cwnd 增加 1。如果接收到新数据的 ACK 确认就将 ssthresh 恢复到慢启动时期的值因为返回新数据的 ACK 确认表示网络阻塞已经结束可以恢复到之前的状态cwnd 也可以指数或者线性增加。 总结 TCP 提供基于字节流、可靠的数据传输为了确保数据的可靠性做了很多工作 报文段序号和确认号 每个报文都有序号和确认号序号表示报文段第一个字节号确认号表示下一个接收字节的序号。 发送确认和重传机制 每个报文段发送后都会确认应答 ACK表示已经报文段已经成功发送。当网络异常数据包无法达到时就会触发重传机制。重传主要有两种方式超时重传和快速重传。超时重传设置一个定时器超过时间未收到确认应答就会重新传数数据包。这个重传方式周期比较长。快速重传快速重传不会等待超时时间到了再重传是以数据为基点发送多次报文段当接受到重复的确认应答号 ACK 时直接重传所有的报文段。可以使用 SACK 记录哪些报文段已经成功接收了只重传没有被成功接收的报文段。 滑动窗口 报文段拆分TCP 将要发送的数据拆分适当大小的数据包。引入窗口的概念这个窗口大小是由接收方来决定表示接收方可以接收的缓存大小。在窗口范围之内 TCP 可以连续发送多个数据包给接收方当数据包发送并且有确认应答整个窗口会往后移动继续发送新的数据。随着数据传输的速度和网络情况接受方可能会动态修改窗口的大小以此来控制数据传输的速度。滑动窗口能流量进行控制控制数据发送的速度和频率避免出现拥塞情况。 拥塞控制在网络传输中可能会出现大量的数据请求而固定的网络宽带可能处理不过来这么多数据传输容易形成阻塞的情况。TCP 遇到网络拥塞时会自动减少自己发送包的数量这样网络拥塞情况就会缓解。TCP 发送端定义拥塞窗口 CWND,表示没有接收到 ACK 确认数据的最大发送量。拥塞控制算法主要包含四个部分 慢启动开始一个新的连接时从较小的发送窗口开始然后指数增长增加 CWND 窗口大小知道达到慢启动门限。拥塞避免窗口达到慢启动门限临界点时候慢启动阶段结束这个阶段窗口大小线性增加增长速度比较慢避免发生网络拥塞。拥塞发生窗口进一步缓慢增加网络还是会遇到阻塞的状态会出现丢包的情况。就需要对丢包进行重传。此时有两种重传机制超时重传和快速重传。超时重传是窗口大小重置为 1数据传输又恢复成慢启动时的速度。这种传输速度急剧下降不利于系统稳定由于窗口大小限制网络传输次数更多拥塞的情况也会更大。而快速重传是相对温和的方案此时认为网络只是暂时有阻塞情况将窗口大小 CWND 改成原来的一半并进入快速恢复阶段。快速恢复重传丢失的数据包如果接收到重复 ACK 确认cwnd 增加 1。如果接收到新数据的 ACK 确认就将 ssthresh 恢复到慢启动时期的值因为返回新数据的 ACK 确认表示网络阻塞已经结束cwnd 也可以指数或者线性增加。 参考 TCP 重传、滑动窗口、流量控制、拥塞控制 滑动窗口TCP是如何进行流量控制和拥塞控制的
http://www.dnsts.com.cn/news/35242.html

相关文章:

  • 用帝国cms做企业网站版权网站备案流程和规则
  • 盐山网站开发做网站赚钱的时代过去了吗
  • 网站 关键词 出现频率广告设计有哪些内容
  • 宜昌哪里做网站软件界面设计软件有哪些
  • 电子商务网站建设要多少钱广州越秀区二手房
  • 电子行业网站建设建免费的网站吗
  • 枣庄手机网站开发公司义乌推广公司
  • 网站营销概念上海有多少家公司
  • wordpress文章不分段东莞seo收费
  • 主体备案与网站备案wordpress数字中文主题
  • 优秀网站欣赏wordpress 圆形头像
  • 麻阳建设局网站网页版微信小程序页面入口
  • 东莞网站推广教程如何建立自己音乐网站
  • 佛山建网站哪里好做网店哪个网站好
  • 在线教育网站建设投标书近期网络舆情热点事件
  • wordpress关闭分享厦门seo顾问屈兴东
  • 汽车公司网站建设买域名做网站
  • wordpress搭建教育网站ps软件免费版在哪下载
  • 个体户能做网站备案吗建e网全景图
  • 没备案的网站可以做淘客做网站开发教程
  • win7 发布asp网站一般通过 什么意思
  • html个人网站案例网站模板 带数据库
  • 东莞公司注册哪家好seo排名工具快速提高
  • 黄页网站推广app免费下载牛商网做的包装盒网站
  • 提供企业网站建设制作网线视频
  • 网站建设开票项目是什么徐州京都网架公司
  • 母婴电子商务网站建设南和县住房和建设局网站
  • 行业类网站应如何建设怎么注册域名
  • 自考在线做试卷的网站手机怎么做网站
  • 网站开发模板图片wordpress文章添加自定义字段