| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP协议八股文详解 -> 正文阅读 |
|
[网络协议]TCP协议八股文详解 |
TCP协议八股文详解TCP与UDP的区别
UDP的优势首部开销小,支持一对多,多对一的连接对象,传输速度快 TCP连接的建立和拆除TCP连接的建立:三次握手背烂了,懒得写了 TCP连接的拆除:四次挥手TCP的可靠性可靠传输机制及其用途
TCP的可靠数据传输
流量控制与拥塞控制的区别
序号与确认号报文段(Segment)的序号:该报文首字节的字节流编号 累积确认:TCP只确认按序到达的最后一个序号 流量控制TCP报文中,接收方维护一个rwnd(接收窗口)字段, rwnd为0的问题:当接受窗口为0时,发送方发送只有一个字节的报文段,获取最新的rwnd值 拥塞控制TCP如何感知到网络拥塞:出现丢包现象 丢包如何定义:
TCP拥塞控制算法拥塞控制算法包括三个部分:1. 慢启动(slow start) 2. 拥塞避免 3. 快速恢复,这三个阶段的名字就感觉很迷惑,不知道怎么起的= = 发送方需要维护两个变量:
慢启动慢启动的流程:
慢启动这个名字就很让人困惑,其实本质上是指数扩大拥塞窗口,这怎么能叫慢呢。。。其实在慢启动出现之前,有一个没有考虑拥塞的爆炸增长的版本,相对而言慢启动还是慢了一些的 ref。 拥塞避免当cwnd >= ssthresh时,发送方会从慢启动状态变为拥塞避免状态 拥塞避免的流程:
快速重传在报文段的定时器过期之前重传丢失的报文段(。。。本以为有什么高深的快速方法,结果就是timeout之前重传,又让我想到了令人困惑的慢启动,人和人对快慢的理解并不相通) 快速恢复当进入快速恢复阶段时,cwnd已经被减半了,另外对收到的每一个冗余ACK,cwnd += MSS。(例如,cwnd=12时收到了3个冗余ACK,ssthresh=6MSS, cwnd=6MSS+3MSS=9MSS),此后保持线性增长。 为什么超时和冗余ACK处理方式不同呢? TCP协议中,因为冗余ACK导致的丢包现象并不如超时导致的丢包那样严重。其实也很好理解,网络中出现了超时一定是因为当前的网络拥塞,而冗余的ACK既然可以不断的从接收方传到发送方,证明网络当前的状况其实还好。对于这种现象,TCP认为没必要再从慢启动阶段重新来过了。 Reference
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:16:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |