TCP窗口知识汇总

最近两次面试都遇到的问题,有必要补缺。

可靠传输工作原理:

  1. 停止等待协议 超时重传
  2. 连续ARQ协议 使用滑动窗口,累积确认,回退N

TCP可靠传输:

  1. 以字节为单位的滑动窗口
  2. 超时重传时间
  3. 选择确认sack

TCP流量控制:

  1. 利用滑动窗口
  2. 发送零窗口报文后,非零窗口报文丢失。解决方法是持续计数器机制超时发送探测报文段。
  3. 糊涂窗口综合症 接收缓存慢,取数据很少,导致每次传输少。解决方法是让接收方等待一段时间或者等到接收缓存空闲一半。

TCP拥塞控制:

方法分为开环控制和闭环控制。闭环控制基于反馈。

  1. 慢开始和拥塞避免

慢开始:窗口单位为MSS。收到N个确认后窗口增加N。慢开始门限ssthresh为切换极限。
拥塞避免:往返时间RTT后窗口加一。拥塞后ssthresh减为一半。窗口置1执行慢开始。

  2. 快重传和快恢复

快重传:接收方遇到失序报文及时发送有序报文的重复确认。发送方一连收到三个重复确认立即重传尚未收到的报文,不必等待重传计时器。
快恢复:发送方连续收到三个重复确认,将慢开始门限减半。窗口设为门限值,窗口假发增大。

时间: 2024-10-29 01:10:55

TCP窗口知识汇总的相关文章

JavaScript弹出窗口方法汇总_javascript技巧

本文实例汇总了常用的JavaScript弹出窗口方法,供大家对比参考,希望能对大家有所帮助.详细方法如下: 1.无提示刷新网页: 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点"确定"才会刷新. 而有的页面不会提示,不弹出提示窗口,直接就刷新了. 如果页面没有form, 则不会弹出提示窗口 如果页面有form表单, a)<form  method="post" ...>     会弹出提示窗口 b)<form  method=&quo

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

Vue.js基础知识汇总_其它

介绍 vue.js 是用来构建web应用接口的一个库 技术上,Vue.js 重点集中在MVVM模式的ViewModel层,它连接视图和数据绑定模型通过两种方式.实际的DOM操作和输出格式被抽象的方式到指令(Directives)和过滤器(Filters) 在哲学领域内,尽量让MVVM数据绑定API尽可能简单.模块化和可组合性也是重要的设计考虑.vue不是一个全面的框架,它被设计成简单的和灵活的.你可以用它快速原型,或混合和匹配与其他库定义前端堆栈. Vue.js的API是参考了AngularJS

JSON相关知识汇总_json

JSON:JavaScript 对象表示法(JavaScript Object Notation) JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种类型的值: 对象.数组.字符串.数字.布尔值.null JSON对象是一个容纳"名/值"对的无序集合 名字:任意字符串 值:任意类型的JSON值,包括数组和对象(对象中可以嵌入对象) 注:JSON字符串必须使用双引号(单引号会报错) 一.对象 javascript中创建字面量: var

PHP错误机制知识汇总_php实例

PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课. 特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解php有哪些错误.截至到php5.5,一共有16个错误级别 注意:尝试下面的代码的时候请确保打开error_log: error_reporting(E_ALL); ini_set('display_errors', 'On'); E_ERROR 这种错误是致命错误,会在页面显示Fatal Error, 当出现这种错误的时候,程序就无法继

Android开发权限知识汇总

本文总结了在Android开发过程中,有关权限(permission)相关知识点的汇总,有需要的朋友可以看看. 1.android.permission.WRITE_USER_DICTIONARY 允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS 写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM 读取用户的社交信息流 4.android.permission.WRITE

PHP中iconv函数知识汇总_php技巧

今天在修改论文在线的时候,遇到了iconv这个函数.学习一下 header('Content-Type: application/vnd.ms-excel;charset=UTF-8"'); $name=iconv('utf-8', 'gb2312', $data['year'].'年,第'.$data['period'].'期通信录'); header('Content-Disposition: attachment;filename="' . $name . '.xls"

PHP数组函数知识汇总_php技巧

本文为大家分享了PHP数组函数基础知识,供大家参考,具体内容如下 数组array是非常重要的数据类型.相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值.数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值. 在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 一.创建数组 array(key => value) 1.创建索引数组 使用array()函数声明数组.PHP属于

jquery获取文档高度和窗口高度汇总_jquery

jquery获取窗口高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).height():浏览器可视窗口的高度 $(window).scrollTop():浏览器可视窗口顶端距离网页顶端的高度(垂直偏移) $(document.body).height();//浏览器当前窗口文档body的高度 $(document.body).outerHeight(true);//浏览