如何保证网络传输的可靠性?

2019/04/10 10:10
阅读数 14

<div class="output_wrapper" id="output_wrapper_id" style="font-size: 15px; color: rgb(62, 62, 62); line-height: 1.8; word-spacing: 2px; letter-spacing: 2px; font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', 'Microsoft YaHei', Arial, sans-serif; background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%); background-size: 20px 20px; background-position: center center;"><blockquote style="line-height: inherit; display: block; padding: 15px 15px 15px 1rem; font-size: 0.9em; margin: 1em 0px; color: rgb(0, 0, 0); border-left: 5px solid rgb(239, 112, 96); background: rgb(239, 235, 233); overflow: auto; overflow-wrap: normal; word-break: normal;"> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px;">多点头发,少点代码</p> </blockquote> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">https://github.com/midou-tech/articles</p> <h3 id="h" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; border-bottom: 2px solid rgb(239, 112, 96); font-size: 1.3em;"><span style="font-size: inherit; line-height: inherit; margin: 0px; display: inline-block; font-weight: normal; background: rgb(239, 112, 96); color: rgb(255, 255, 255); padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;">唠叨几句</span><span style="display: inline-block; vertical-align: bottom; border-bottom: 36px solid rgb(239, 235, 233); border-right: 20px solid transparent;"> </span></h3> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">前几天在群里问了下大家最近春招的状态。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdio4tz2blj30i60kiacd.jpg" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">如果你还在参加春招,不管是社招还是校招。龙叔都想唠叨几句,今年整体经济形势很差,可能有些人还没意识到有多差,但我相信很多人都能感受到。很多公司入不敷出,基本都在裁员和压缩成本,很多公司把原来的扩张计划改成了<strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">活下去</strong>。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdioorm6pkj30ik0vmwoe.jpg" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">正在找工作的各位,不可对市场预期太高,不要感觉我专业的学长学姐都是非bat不进的,现在市场供求关系变了,需求变得越来越少了,供给却一直在增加,找工作的你也应该调整自己的预期。当然好能力的人还是会非bat不去的,但很重要的点是 <strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">好能力</strong>,但不可能人人都是好能力的,所以你要有正确的心里预期和不断的打磨自己的能力。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">准备跳槽的你也一定要思考清楚在跳,以前每年都是金三银四跳槽季。今年,听到几个准备跳槽的学长说,好多公司都是象征性的面面,根本不发offer。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">顺便说一下什么叫象征性的面面,公司是对外的,公司不管在什么时候都会招人的,如果你看到一个公司的对外网站不招人了,基本说明该公司凉了。除非真的倒闭,一般情况下公司都会在官网放出招聘信息,但是真的在招人么?</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">所以就有了面了好多就是不过,面的也非常好,就是不发offer。如果是这样,不是你不行,是市场不行。如果有个公司真心要你,就好好珍惜吧。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">行了,龙叔就唠叨这么多,接下来上干货。今天主要说TCP的可靠性问题,包括一些重点面试题。</p> <h3 id="h-1" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; border-bottom: 2px solid rgb(239, 112, 96); font-size: 1.3em;"><span style="font-size: inherit; line-height: inherit; margin: 0px; display: inline-block; font-weight: normal; background: rgb(239, 112, 96); color: rgb(255, 255, 255); padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;">正文</span><span style="display: inline-block; vertical-align: bottom; border-bottom: 36px solid rgb(239, 235, 233); border-right: 20px solid transparent;"> </span></h3> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">计算机网络知识在面试中可算是继数据结构之后问的最为频繁的了。龙叔对这块的知识非常重视,由此校招的时候可是没少被面试官夸,这也是龙叔拿了20几个offer中一个不可或缺的因素。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">之前讲了计算机网络的体系架构 <a href="https://mp.weixin.qq.com/s/5aQGwlKHkdTG4j9eMjr6pg" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; text-decoration: none; color: rgb(30, 107, 184); overflow-wrap: break-word;">计算机网络五层结构的解析</a> 、 <a href="https://mp.weixin.qq.com/s/5oDim8z_xJhMKhHR9w-V3A" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; text-decoration: none; color: rgb(30, 107, 184); overflow-wrap: break-word;">TCP粘包问题怎么解</a> 、<a href="https://mp.weixin.qq.com/s/DSIYKt7qX6n0bMNrw5HA8g" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; text-decoration: none; color: rgb(30, 107, 184); overflow-wrap: break-word;">流量控制&amp;拥塞控制</a> (戳我即可看到该文章喔)。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">今天再讲讲TCP的可靠性问题,网络里面的重要知识点基本都说完了,要是还有什么不懂那就后台获取龙叔微信,悄咪咪的暗示下龙叔。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">可靠性很好理解吧,就是可靠。什么是可靠?我们经常听到老师说某某同学很靠谱,同学之间会说谁谁很靠谱,在社会上领导也会很喜欢那些靠谱的下属,老板喜欢靠谱的员工。靠谱就是交代的事情都能如期、保质的完成。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdinttlob0j308c087t9f.jpg" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP的功能是交付数据,所以TCP的可靠就是保证每次数据按序、按时、不丢数据,顺利的交付给对端。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">龙叔必须说清楚一件事情,可靠<strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">不等于</strong>安全,TCP尽最大可能的保证数据可靠性,但是没有任何措施保证数据的安全性。所谓安全就是你的数据不会被别人看到或者窃取到,TCP上的数据是明文传输的。</p> <h3 id="htcp" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; border-bottom: 2px solid rgb(239, 112, 96); font-size: 1.3em;"><span style="font-size: inherit; line-height: inherit; margin: 0px; display: inline-block; font-weight: normal; background: rgb(239, 112, 96); color: rgb(255, 255, 255); padding: 3px 10px 1px; border-top-right-radius: 3px; border-top-left-radius: 3px; margin-right: 3px;">TCP如何保证可靠性</span><span style="display: inline-block; vertical-align: bottom; border-bottom: 36px solid rgb(239, 235, 233); border-right: 20px solid transparent;"> </span></h3> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP是一种可靠传输协议,到底如何保证可靠性呢?TCP协议里面有如下几种机制去保证</p> <h4 id="h-2" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">一、字节编号机制</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">编号机制很好理解,就是给TCP的数据段里面的<strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">数据部分</strong> ,每个字节都进行编号。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">为什么需要编号?</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">好说,就是为了更清楚的接收和发送。TCP数据是按序的,接收完之后按序组装好,才会交付给上层。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">日常生活中也经常遇到这样的情况,你去银行还不得在门口取个号,先取号的先办理,既保证处理事情不乱,也不用大家站着长长的队,叫到号就是你。</p> <h4 id="h-3" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">二、数据段的确认机制</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">也就是我们常常听到的确认应答机制,一问一答,保证问的问题,对方一定接收到,如果确实没有接收到就会重复去问。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP确认应答就是每一个数据段发送都会收到接收端返回的一个确认号,收到的确认号表示该号前面的数据全部接收。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">确认应答机制里面有几个重要的问题,也是面试高频问题,龙叔必须唠叨几句。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdj4wt19gbg308c08c0t0.gif" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <ol style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; padding-left: 32px; list-style-type: decimal;"> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">TCP可以一次连续发送多个数据段</strong></li> </ol> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP可以连续发送多个数据段,具体发送数据段的多少取决于对方返回的窗口大小。只要满足窗口大小可容纳,Negale 算法处于关闭状态就可以连续发送多个数据段。</p> <ol start="2" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; padding-left: 32px; list-style-type: decimal;"> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">仅对连续接受的数据段进行确认</strong></li> </ol> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">假设你发送了数据段序号为101、201、301、401、501、601,接收端接收到了101、201、501,此时接收端只会返回201的确认,不会返回501确认,因为301和401还没接收到。当收到301和401之后才会返回501的确认(在不超时的情况下)。</p> <ol start="3" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; padding-left: 32px; list-style-type: decimal;"> <li style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; margin-bottom: 0.5em;"><strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">不连续序号的数据先缓存下来</strong></li> </ol> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">如上面的例子,接收端收到101、201、501,此时501不能被确认,因为有不连续的数据,但是501的会被缓存在本地,后面收到301、401立即返回501的确认。</p> <h4 id="htcp-1" style="color: inherit; line-height: inherit; padding: 0px; margin: 1.6em 0px; font-weight: bold; font-size: 1.2em;"><span style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;">三、TCP的超时重传机制</span></h4> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">前面两条都是预防和减少出错,超时重传机制是保证TCP在传输过程中数据丢失了一个回复措施。因此超时重传机制是保证可靠性很重要的机制。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">每发送一个TCP数据段都会启动一个超时重传计时器(Retransmission Timer,RTT)。如果在计时器时间内没有收到确认应答号,会启动重传,重新发送该数据段。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">这里面还有个点,TCP每发送一个数据段不是立刻把该数据段从缓冲区删除的,收到确认应答以后才会从发送队列丢掉。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">超时重传原理看起来比较简单,重传的步骤也比较简单,其实也就是如此简单。有一个难的点是,超时重传计时器的时间是一个很复杂的问题。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">表面看起来很简单,不就是一次数据发送到出去到接收端收到消息的时间*2么?</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">事情并没有那么简单</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdj5y3w7bbj3073073dfx.jpg" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">一次往返中间经过的网络路段是<strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">不固定</strong>的,网络拥塞程度<strong style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; font-weight: bold; color: rgb(233, 105, 0);">不确定</strong>的。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">就像你平时开车,导航不可能只给你一条路线,每次给出的路线也会不同,因为道路的拥堵程度不同。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP保证可靠性,因此TCP要求不论处在何种网络环境下都要提供高性能通信,并且无论网络拥堵情况发生何种变化,都必须保持这一特性。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">TCP目前采用一种自适应的算法计算RTT值。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">给定一个初始的RTT值,初始RTT值是6s,后面每次收到确认应答会进行一次计算,计算本次往返的时间和RTT波动,也就是RTT偏差。最终把RTT+RTT偏差得到新的RTT值。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;"><span class="katex" style="font: 1.21em / 1.2 KaTeX_Main, 'Times New Roman', serif; text-indent: 0px; text-rendering: auto; font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 8px 3px;"><img src="data:image/png;base64,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" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;"></span> = (1-α)<span class="katex" style="font: 1.21em / 1.2 KaTeX_Main, 'Times New Roman', serif; text-indent: 0px; text-rendering: auto; font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 8px 3px;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABCCAYAAACCTCKqAAAIvElEQVR4Xu1bZYiVTRQ+azcqiKioP8RkbcU/YiAWKti1tmJgYXdid+vatavYYncXoiI2IiZ2Yfd+PAPzMve+fWO4O98cuCz3vjNz3nmeOWfOOTMbl5KSkkJalEMgThOrHKdsQppYNXnVxCrKqyZWE6sqAorOS++xmlhFEVB0WtpiNbGKIqDotLTFamIVRUDRaWmL1cQqioCi09IWq4lVFAFFp6UtVhOrKAKKTktbrCZWUQQUnZa2WE0s0ePHj2nSpEn09+9fSzjSpk1LadKkYZ8MGTJQwYIFqVKlSlShQgXKkSOHK4QPHjygrVu3urazaxAXF8d0Z8yYkZo1a0YFChSwbHry5Em6ePFiWHrSp09PmTJloh49ehDmHWviy2KvXbtGM2bMoO/fv9OHDx8C5pIlSxYGKMTq2YABA6hOnTqO8588eTIdPnw4IhgtX76cihcvbhrr379/1LRpU9M7hqoUiwQLKtbEF7Hiy48aNYrOnj3LfqpRowaNHz8+YILv37+nnTt30vr1641uvXv3ppYtW1pi8OPHD6pbty57hkXSoUMHqlKlCmXPnp3SpUtHT548oX79+hl9hw0bRlWrVmXff/78Sc+fP6ekpCS6dOkS+23fvn2ULVs2k64bN25Qnz592O/58+enLl26sAUAnbC8gwcP0rJly4x+q1atorx58xIWxNevXwleZcmSJUxfsWLFaMWKFbHGKXufkIlt3LixseqHDx9O9evXt5xgYmIiJScnG8/27Nlj6ZaxSLBYihQpQvPmzTO1OXbsGE2cONEYBwRkzpw5QOfbt2+ZC86VKxft2rXL8n0WL15MW7ZsoYYNGxK8CBaNKHPmzKHdu3ezn0qXLk2LFi0yjQMrHTduHNWrV49GjBihDrFYrW3atDEmBOLs9rPjx4/ThAkTjLYgrXz58iYwuBuGtZQsWdL0XAS8TJkytHDhQktAq1evzvb12bNnm55zN4wHsO6sWbOa2mBemB8E1tyxY0dTm9u3b1OvXr2oe/fulJCQoA6x2AdBBMTJOvB848aNAe4KBFWsWDEAjF+/flHt2rXJiTAvgH/58oUaNGjA3D3cfrBwQuwIe/36NbVo0cLoNn/+fCpXrpxpnAsXLhC8FDDg20GssRuSK0YAhT0MAheMSdoJVjYA5Ytg8+bNLJoUBfvi0KFDaezYsVSrVi3TUF4Bv3//PnXr1o2GDBnCXG2wIKCCpcIVY98MlmB3f+jQIdO7os+OHTsIpG/YsIEKFSoUa5yy9wmJ2ObNm9ObN2/YACNHjjSCnuAZ3rx5M8BysIdaRcbY0/BZunSpEVmLY3kF/M6dO2wfxqdo0aImwGFhCJDsFuKsWbMIMQAElgryrARB4fbt22nt2rWmPTpWWPZN7KtXrwIi202bNrHoMlgePnzIghOe+sCCBg0axPJMvzJz5kzau3evK+B+xw1uLy5YO3ftpAP/3xYrqY9vYo8cOcKKFBCkCCtXrmSTwT6JlOXly5d05swZOnr0KGuDPRhJvF3U7IUMEfCuXbuyVCjSgvdu1aqVMeyCBQuobNmyvtQg9jhx4gR17tyZpUIQeBEUdOLj413HQmaQO3duKlWqlGtbtwa+iRWtx23w/v37M0KD0xK3fuLzFy9eUOvWrcMC3Is+MSBEe3znBRcv/XkfHlTybYePi0WDaN1OUPRBjAFBFoHaQDjim1jRetq1a8dWNVzQnz9/6N27d7R69WrD/Q4ePJgaNWoUzvsxgDlYoQLu5QWmT59O+/fvZ02d9lensXh+ixIqxkNZlf+G8qqTB4DH41U3eELk4X4XlvhuvogNth6r/TV4D0YUnC9fPi/YWrYRAQdgc+fODXksp45iwQWRdfv27X3rOX/+PCtYIOVClA/BtjR69GjbFIwrEStvWGBWObafF/JFrNf8FUHT1atX2Xs4VaW8vGgkAHfTE1xwQfEDObVf4WlbuMSeOnXKr2pTe1/EitbjlL8iokRNFRJOsBMpwN1QQr46ZcoUo1ko+ys6p1pivdSHP3/+HFAcgPWiXyhy4MABmjZtWtiAu+mGDuiChOPuUyWxz549C6iL2tWHz507x4oWXMKJ8KZOncpOW8IF3I3YSLn7VEksCgRIdSBO9eF169axyJgLqjmVK1dmXy9fvszOcqtVq+aGNYu0mzRpYkTY4bh0J2U4DhQDpVDyVz5+qiRWPH9FWRDfrQRltjVr1hiPEMXCvaFAjwI7zlhxdusm9+7dY6cnXKwOD9zG8PIcdWMc5XGxqw97GcuJWBiD1akVHxdFDH6WHNXgCYqw93z8+JFQhH/06JExN+RZqKzgLwIlsS575coVGjhwoNEWpyywPBCMgwO7ExMU1G/dusWqNJ8+faK7d+8GYAlgChcuzIodOEPt27evZSHfiQCMjSAJB+a/f/9m3oAHebwf8s08efKw4j8O6u0WsJUeJ2JRcMDNDTtBHou8HxJVYpGPdurUib59+8aUgUQu/Dd8xw0JAC4KXDFcMhf0RR8cvfXs2dNybih2PH361KQLP4j6eGccGuTMmdOLIRlt+EG8+F7iAMF6SpQoQbgo4FVSpSv2OjneDnsXrBd/UUuGC8ZHZflfEKsygXZz08QqyromVlFiI1UrjmrwpCj2UZ0WCMHRm1grPn36NI0ZM8bXIYAmNqo0+R+cX0IQieUHJ8gM3E65eOqlifWPfVR7IE/HRT+RWNyPwpVbHJq0bdvWVj/yWFTXILiyG+6/jfg63YkqKgoMvm3bNnbfWSQWhRdcH7K7EsunLZ7H2l2q9wORJtYPWi5t+R1q8SI5/gUEv7udcqEShgIObpxYXVL3+5qaWL+IObS/fv06obpVs2ZN4zYmCjSwRn65LYLqHIfSxMpCWrIeTaxkwGWp08TKQlqyHk2sZMBlqdPEykJash5NrGTAZanTxMpCWrIeTaxkwGWp08TKQlqyHk2sZMBlqdPEykJash5NrGTAZanTxMpCWrIeTaxkwGWp+w9SwXuGEOGLpAAAAABJRU5ErkJggg==" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;"></span> + α <span class="katex" style="font: 1.21em / 1.2 KaTeX_Main, 'Times New Roman', serif; text-indent: 0px; text-rendering: auto; font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 8px 3px;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAABCCAYAAADOiu0XAAAPL0lEQVR4Xu2dCdBO1R/HfxKlUIoKIy0TWVNZRhOiXRo7SSK0SLYWUfb20oq02BVGC03RqpQKNW1ayDJopVIGLfb/fM78f8+c9z733ufe+7yvnqc5v5l3Xs97z73nnN/5nt/5/pb7KLZ///794sRpIM80UMwBN89WzA3XaMAB1wEhLzXggJuXy+YG7YDrMJCXGnDAzctlc4N2wHUYyEsNOODm5bK5QTvgOgzkpQYccPNy2dygHXAdBvJSAw64eblsbtAOuA4DeakBB9y8XDY3aAdch4G81IADbl4umxu0A67DQF5qwAE3L5fNDdoB12EgLzXggJuXy+YG7YDrMJCXGogF3I0bN8qdd94pe/fu9Z1s8eLF5aCDDjI/JUuWlCpVqkj9+vXljDPOkLJly2ZU0Lp16+S5557L2C6oQbFixUzfhxxyiLRv314qV67s23Tx4sWybNmyrPopUaKEHHrooXLttdcK83ZyYDUQC7ifffaZ3H///fL333/LH3/8UWCkhx12mAEM4ndt0KBBcsEFF4TO7q677pI33nijUDTw1FNPSfXq1dOetW/fPmnXrl3aGJN2yiZgwzg5sBqIBVx7aLfffru8//775k/nnHOOjBo1qsAC/v777zJv3jyZMWNG6ra+fftKp06dfGf4zz//yIUXXmiusQmuvPJKadSokZQpU0YOPvhg+e6776R///6pe2+99VY5++yzzeedO3fKTz/9JM8++6wsX77c/G3BggVSunTptL6+/PJLueGGG8zfK1WqJD179jQAp08s52uvvSZPPPFE6r7JkyfLscceKwD+zz//FE6Fxx9/3PRXrVo1efrppw/sirnejAYSA7dNmzYpqzVkyBC5+OKLfVX65JNPyqxZs1LXXn75ZV/awCZgM5x88snyyCOPpLVZtGiRjBkzJvUcAFaqVKkCff7222+GIpQrV07mz5/vO54JEybI3LlzpVWrVsIpwKaw5aGHHpKXXnrJ/KlOnToyfvz4tOdgZUeOHCkXXXSRDB061EHpX9BAIuBibbp06ZIaLsAM4pNvv/22jB49OtUWUJ5++ulpU1WagLWrUaNG2nUbUHXr1pVx48b5qqtZs2aGVz/44INp15UmcAHrfPjhh6e1YV7MD8Ead+/ePa3NN998I336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" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 0px auto; max-width: 100%; display: inline-block; vertical-align: middle;"></span> </p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">RFC 6298推荐的α值为1/8,即0.125。</p> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">数据也不会被无限、反复地重发。达到一定重发次数之后,如果仍没有任何确认应答返回,就会判断为网络或对端主机发生了异常,强制关闭连接。并且<br>通知应用通信异常强行终止。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdipjy0ly9g308c06oaa6.gif" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure> <p style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; margin: 1.7em 0px;">我是龙叔,一个分享互联网技术和心路历程的大叔,感谢你的阅读。你的小小点赞将成为我继续授人以渔的大大动力。</p> <figure style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px;"><img src="https://tva1.sinaimg.cn/large/00831rSTly1gdjy2023y3j30p00dw0tn.jpg" alt="" title="" style="font-size: inherit; color: inherit; line-height: inherit; padding: 0px; display: block; margin: 0px auto; max-width: 100%;"><figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption></figure></div>

原文出处:https://www.cnblogs.com/zhonglongbo/p/12655598.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部