Java每日一面(Part1:计算机网络)[19/11/02]
个人微信公众号:程序猿的月光宝盒
1.TCP的滑动窗口
1.1 RTT和RTO的区别
RTT:发送一个数据包到收到对应的ACK,所花费的时间
RTO:重传时间间隔,TCP在发送一个数据包之后,会启动一个重传定时器,RTO就是这个定时器的重传时间,再通俗的讲就是,一开始先算一个定时器时间,如果你回复了ACK,那重传定时器就自动失效,也就是说不用重传了,但是如果没有回复给我ACK,RTO定时器的时间又到了,就重传,由于RTO是本次数据包所发送的超时时间,那么RTO就需要一个很好的算法去统计,来更好的预测这次的超时时间,RTO不是固定写死的配置,而是经过RTT计算出来的,有了RTT才能计算出RTO.基于RTO才有了重传机制,而后才有滑动窗口
1.2 TCP使用滑动窗口做流量 控制与乱序重排
滑动窗口主要有两个作用:
1.保证TCP可靠性
2.保证TCP的流控特性
1.3 窗口数据的计算过程
◇EffectiveWindow = AdvertisedWindow-(LastByteSent-LastByteAcked)
1.4 滑动窗口的基本原理
1.4.1 TCP会话的发送方
任何时候都能分为4类
1:已经发送并且得到端的回应的
2:已经发送但是没有得到端的回应的
3:未发送,但允许对端发送的
4:未发送,且不允许对端发送的
其中:2+3即为发送端口
1.4.2 滑动原理:
1.5 TCP会话的接收方
在某一时刻,在接受缓存范围内有四种状态
1+2.已接收,已发送回执
3.未接收,但是可以接收(准备接收)
4.未接受,也不能接收
其中3为接收窗口
由上可知,TCP最基本的传输可靠性,来源于确认重传机制,TCP滑动窗口的可靠性,也是建立在确认重传基础上的
滑动窗口的大小可以根据一定策略动态调整.
Java每日一面(Part1:计算机网络)[19/11/02]的更多相关文章
- Java每日一面(Part1:计算机网络)[19/11/25]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[2] 1.1Get请求和Post请求的区别 从三个层面来回答: 1.1.1 从HTTP报文层面: Get请求将请求信息放在UR ...
- Java每日一面(Part1:计算机网络)[19/11/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[1] 1.1 HTTP简介 HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议. ...
- Java每日一面(Part1:计算机网络)[19/10/21]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.UDP简介 1.1UDP报文结构: Source Port:源端口 Destination Port:目标端口 Length:数据包长度 C ...
- Java每日一面(Part1:计算机网络)[19/10/14]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.1 说一说TCP的四次挥手 "挥手",即终止TCP连接,断开一个TCP连接池. 需要客户端和服务端总共发出四个包,以 ...
- Java每日一面(Part1:计算机网络)[19/10/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.说说TCP三次握手 1.0 在此之前,什么是TCP? TCP(传输控制协议) 1.面向连接的,可靠的,基于字节流的传输层通信协议 2. ...
- Java每日一面(Part2数据库)[19/11/28]
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1.如何设计一个关系型数据库 如上图,首先划分成两大部分: 1.存储部分:类似一个文件系统,把数据存储到一个持久化设备中,如机械硬盘,固态等 ...
- star ccm+ 11.02安装
STAR CCM+是CD-Adapco公司的主打软件,其安装方式较为简单,这里以图文方式详细描述STAR CCM+11.02安装过程. 1 安装准备工作2 正式安装3 软件破解4 软件测试 1 安装准 ...
- 【Java每日一题】20161122
package Nov2016; import java.util.ArrayList; import java.util.Iterator; public class Ques1122 { publ ...
- 【Java每日一题】20161018
20161017问题解析请点击今日问题下方的"[Java每日一题]20161018"查看 package Oct2016; public class Ques1018 { publ ...
随机推荐
- Python自定义包引入【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...
- MIT-6.824 操作系统 汇总
MIT-6.828-JOS-环境搭建 ELF文件格式 lab1:C, Assembly, Tools, and Bootstrapping lab2:Memory management lab3:Us ...
- Winform中实现拖拽文件到ListView获取文件类型(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个for ...
- 区块链技术驱动金融.mobi
链接:https://pan.baidu.com/s/1yY8f_PglsPoudb76nru9Ig 提取码:c58o 想一起学习区块链的朋友可以加好友一个学习哦,共同进步
- latex 对中文字体设置的一些解决
latex 对中文字体设置的一些解决 直接使用Xelatex编译带中文的文件时,会出现无法识别的错误,这是因为latex默认的环境不支持中文,这时可以使用CTex 宏集.ctex 宏包或xeCJK 宏 ...
- webpack生成的css文件background-image url图片无法加载
之前在使用webpack3构建基于less预处理的项目时,在对指定的元素使用background-image: url(xxx)来设置背景图片时,本地开发是ok的,但是在项目编译产出后背景图片就找不到 ...
- C# 面向切面编程 AOP
AOP(Aspect Oriented Programming) 面向切面编程 起源 引言 http://wayfarer.cnblogs.com/articles/241012.html AOP技 ...
- 防止sql注入的最好方式
避免 SQL injection 攻击的传统方法之一是,把它作为一个输入合法性检查的问题来处理,只接受列在白名单中的字符,或者识别并避免那些列在黑名单中的恶意数据.白名单方法是一种非常有效方法,它可以 ...
- Fortify---Detail--Sql注入
Abstract: 在 PaperDao.java 的第 40 行,checkQuesUsed() 方法调用通过不可信来源的输入构建的 SQL 查询.通过这种调用,攻击者能够修改指令的含义或执行任 ...
- 计算几何 val.2
目录 计算几何 val.2 几何单位结构体板子 旋转卡壳 基础概念 求法 模板 半平面交 前置芝士:线段交 S&I算法 模板 最小圆覆盖 随机增量法 时间复杂度 模板 后记 计算几何 val. ...