首页 文章 精选 留言 我的

精选列表

搜索[tcp/ip],共10021篇文章
优秀的个人博客,低调大师

tcp拥塞机制完整过程

- **完整过程** ![](https://developer.qcloudimg.com/http-save/audit-9879380/f3a43b807b0736d60c8d08de85bbbdb0.png) - **关键词** - cwnd: 拥塞窗口 - rwnd: 接收窗口 - swnd: 发送窗口 = min(cwnd, rwnd) - ssthresh:初始无穷大 - RTT: 只是从数据包发出到接收到对方的包中间经过的时间, 五层协议中RTT定义的概率是不一样的, - 应用层:是指进程发出消息到收到回复消息的整个过程 - 链路层: - RTO: 超时重传,主要依赖RTT动态计算 - **关键过程** - **慢启动** - 概念: 刚开始建立连接执行慢启动 - 数值 - 老版本教材 cwnd=1, ssthresh=无穷大,rwnd>cwnd, swnd=min(1,rwnd) = 1 - 新版本 cwnd=10, ssthresh=无穷大, rwnd>cwnd, swnd=min(10,rwnd) = 10 (**原因是带宽和网页都越来越大,而RTT就变成了影响消息速度的卡点,所以将cwnd初始值调大,跳大之后一个 RTT 内回来的 ACK 数量变多了,连接建立之后的消息响应会加快很多**) - **从链路层来说,所有的报文从介质中传播都是串行的,只是说一个rtt内传播的报文可能有多个** - **超时** - 概念:发出报文后等待RTO还没收到ack,就认为是超时了 - 新阶段: 进入慢启动 - **收到三次重复的ack** - 概念: 收到三次重复的ack,就意味着大概率丢包了,需要重发 - 新动作:立刻重传报文 - 新阶段:进入快速恢复阶段 - **快速恢复** - 概念: 快速恢复降低cwnd不会降到1,所以恢复起来较快 - 进入信号: 收到三次重复的ack - 退出信号: 收到新的报文的ack就结束快速恢复阶段 - 新阶段: 进入拥塞避免阶段 - 数值 - (假设超时是cwnd=16) - ssthresh = max(cwnd / 2, 2) = max(8, 2) = 8 - cwnd = ssthresh + 3 = 8+3 = 11 (这里的3对应收到的三次重复的ack) - **拥塞避免** - 概念:在通过慢启动探测到网络上限时开始缓慢增加 - 进入信号:cwnd >= sstresh - 退出信号:超时或者收到三次重复的ack - **其他概念** - **延迟ack** - 影响: 由于ack变少, - 慢启动 cwnd的增长会变慢 - 拥塞避免阶段 cwnd的增长会变慢 - 减少了纯ack包,可以让ack携带数据返回 - 使用场景 - 数据包较大,会被切分成多个报文,每个报文都回复无太大意义 - 返回的ack无实际意义的情况 - 不使用场景 - 需要实时交互的场景,比如游戏,需要及时响应,延迟ack会降低玩家体验感 - 一些小数据包请求,本身切割后的报文数量较小,不太需要延迟ack - 请求数据包较小,但响应数据包较大,,相应数据包本身就要被切分成多个报文,再延迟,基本就是灾难了

优秀的个人博客,低调大师

DOCKER_HOST have a weird tcp

[html] view plain copy print ? [piqiu@benjaminpro~]$boot2dockerstart WaitingforVMandDockerdaemontostart... ..........................................................................oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo Started. TryingtogetDockersocketonemoretime Errorrequestingsocket:exitstatus255 AutodetectionoftheVM'sDockersocketfailed. Pleaserun`boot2docker-vup`todiagnose. [html] view plain copy print ? [piqiu@benjaminpro~]$boot2dockerip FailedtogetVMHostonlyIPaddress. WastheVMinitializedusingboot2docker? how to solved it? i google the issue:https://github.com/boot2docker/boot2docker/issues/392 我发现是我在操作VirtualBox的时候把Port forwarding里的本机映射删除了。 解决方法: [html] view plain copy print ? [piqiu@benjaminpro~]$boot2dockerdelete [piqiu@benjaminpro~]$boot2dockerinit Initializationofvirtualmachine"boot2docker-vm"complete. Use`boot2dockerup`tostartit. [piqiu@benjaminpro~]$boot2dockerup WaitingforVMandDockerdaemontostart... ........................ooooooooooooooooooooooo Started. Writing/Users/piqiu1/.boot2docker/certs/boot2docker-vm/ca.pem Writing/Users/piqiu1/.boot2docker/certs/boot2docker-vm/cert.pem Writing/Users/piqiu1/.boot2docker/certs/boot2docker-vm/key.pem Yourenvironmentvariablesarealreadysetcorrectly. [piqiu@benjaminpro~]$boot2dockerip 192.168.59.103 [piqiu@benjaminpro~]$boot2dockerssh ##. ######== ##########=== /"""""""""""""""""\___/=== ~~~{~~~~~~~~~~~~~~~~~/===-~~~ \______o__/ \\__/ \____\_______/ ________ ||________||_|___\__||______||________ |'_\/_\/_\|__|__)/_`|/_\/__||//_\'__| ||_)|(_)|(_)||_/__/(_||(_)|(__|<__/| |_.__/\___/\___/\__|_____\__,_|\___/\___|_|\_\___|_| Boot2Dockerversion1.7.1,buildmaster:c202798-WedJul1500:16:02UTC2015 Dockerversion1.7.1,build786b29d

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册