加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

TCP协议疑难杂症全景解析

发布时间:2018-11-09 19:47:05 所属栏目:教程 来源:cpp软件架构狮
导读:声名: 1).本文以TCP的成长过程理会轻易引起夹杂,误会的方方面面 2).本文不会贴大量的源码,大大都是以笔墨情势描写,我信托笔墨看起来是要比代码更轻松的 3).针对工具:对TCP已经有了全面相识的人。由于本文不会理会TCP头内里的每一个字段可能3次握手的

前面我们描写的拥塞节制方法都是摸索性的检测,然后拥塞窗口被动的举办乘性减,这样在吸取端窗口很大的环境下(一样平常都是这样,收集拥堵,分段就不会等闲达到吸取端,导致吸取端的窗口大量空置)就也许呈现锯齿外形的“时刻-窗口”图,相同在一个拥堵的北京X环上开车,发送无邪员,车开动,遏制,守候,动员无邪员,车开动...听声音也能听出来。

固然TCP看不到下面的IP收集,然而它照旧可以通过检测RTT的变革以及拥塞窗口的变革推算出IP收集的拥堵环境的。就例如说北京东四环一家快递公司要一连送快递到西四环,当发件人发明货到时刻越来越慢的时辰,他会心识到“放工岑岭期快到了”...

可以通过一连视察RTT的方法来主动调解拥塞窗口的巨细而不是一味的加性增。然而尚有更猛的算法,那就是计较两个差值的乘积:

(当前拥塞窗口-上一次拥塞窗口)x(当前的RTT-上一次的RTT)

假如功效是正数,则拥塞窗口镌汰1/8,若功效是负数可能0,则窗口增进一个MSS。留意,这回不再是乘性减了,可以看出,减的幅度比乘性减幅度小,这是由于这种拥塞节制是主动的,而不是之前的那种被动的摸索方法。在摸索方法中,乘性减以一种处罚的方法实现了公正性,而在这里的主动方法中,当意识到要拥塞的时辰,TCP发送者主动的镌汰了拥塞窗口,为了对这种自首举动举办勉励,回收了小幅镌汰拥塞窗口的方法。必要留意的是,在拥塞窗口减小的进程中,乘积的前一个差值是负数,假如后一个差值也是负数,那么功效就是继承缩减窗口,直到拥塞缓解可能窗口镌汰到了必然水平,使得后一个差值成了正数可能0,这种环境下,着实后一个差值只能变为0。

疑难杂症21:路由器和TCP的互动

固然有了5.2.4节先容的主动的拥塞检测,那么路由器能不能做点什么辅佐检测拥塞呢?这种对路由器的扩展是须要的,要知道,天天有无数的TCP要通过路由器,固然路由器不管TCP协议的任何事(虽然解除毗连跟踪之类的,这里所说的是尺度的IP路由器),可是它却能以一种很简朴的方法汇报TCP的两头IP收集产生了拥堵,这种方法就是当路由器检测到本身产生稍微拥堵的时辰随机的丢包,随机丢包而不是持续丢包对付TCP而言是有重大意义的,随机丢包会使TCP发明扬弃了个此外分段尔后续的分段如故会达到吸取端,这样TCP发送端就会吸取到3个冗余ACK,然后进入快速重传/快速规复而不是慢启动。

这就是路由器能帮TCP做的事。

6.其余

疑难杂症22:怎样进修TCP

许多人发帖问TCP相干的内容,接下来稀里哗啦的就是让看《TCP/IP详解》和《Unix收集编程》内里的特定章节,我认为这种答复很不认真任。由于我并不以为这两本书有多大的辅佐,写得确实很不错,然而可以看出Richard Stevens是一个适用主义者,他喜好用实例来表明统统,《详解》通篇都是用tcpdump的输出来报告的,这种方法只是得当于已经对TCP很领略的人,然而大大都的人是看不大白的。

假如想从计划的角度来说,这两本书都很烂。我认为应该先看点入门的,好比Wiki之类的,然后看RFC文档,793,896,1122等),这样你就大白TCP为何这么计划了,而这些你永久都不能在Richard Stevens的书中获得。最后,假如你想,那么就看一点Richard Stevens的书,最重要的照旧写点代码可能敲点呼吁,然后抓包本身去说明。

疑难杂症23:Linux,Windows和收集编程

我认为在Linux上写点TCP的代码是很不错的,假若有BSD那就更好了。不保举用Winsock进修TCP。固然微软声称本身的API都是为了让工作更简朴,但现实上工作却更伟大了,假如你用Winsock进修,你就要花大量的时辰去把握一些和收集编程无关可是windows平台上却少不了的对象

6.1.总结

TCP协议是一个端到端的协议,固然话说它是一个带流量节制,拥塞节制的协议,然而正是由于这些所谓的节制才导致了TCP变得伟大。同时这些特征是相互杂糅的,流量节制带来了许多题目,办理这些题目的方案最终又带来了新的题目,这些题目在办理的时辰都只思量了端到端的意义,但现实上TCP必要极力而为的IP提供的收集,因此拥塞成了最终的结症,拥塞节制算法的改造也成了一个单独的规模。

在进修TCP的进程中,切忌一锅粥一盘棋的方法,必然要分清晰每一个算法到底是办理什么题目的,每一个题目和其他题目到底有什么关联,这些题目的办理方案之间有什么关联,其它TCP的成长汗青也最好相识一下,这些都搞大白了,TCP协议就彻底被你掌控了。接下来你就可以进修Socket API了,然后高效的TCP措施出自你手!

【编辑保举】

  1. IPFS可否倾覆HTTP协议?
  2. 一篇文章读懂TCP ,UDP观念和TCP三次握手毗连
  3. 叹为观止,TCP/IP处事协议,收集拓扑汇总
  4. TCP三次握手道理,你到底知道几多?
  5. 互换神秘具有哪些手段才可归分事变协议层的
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读