【无标题】(网络原理(中)TCP机制)

网络原理(中)TCP机制

拥塞控制

TCP拥塞控制这样的过程,就好像 热恋的感觉,指数增长的过程就是热恋期,感情随着时间快速上升。当到达一定的时间,感情趋于平稳,增长速度缓慢了一些,呈线性增长。当增长到一定节点就以有矛盾吵架,就会分手,感情一落千丈。复合了之后又会经历一次从指数增长开始...

总结:

1.一开始成指数增长,增长速度很快,然后以线性增长。
2.在指数增长的过程中,如果达到阈值,就要从指数增长,变成线性增长。
3.线性增长也是增长,传输速度会越来越快,如果增长到一定程度,网络上就可能出现丢包。

4.当TCP开始启动的时候,慢启动阈值等于窗口最大值;在每次超时重发的时候,慢启动阈值会变成原来的一半,同时拥塞窗口置回1;

延迟应答(效率机制)

如果接收数据的主机立刻返回ACK应答,这时候返回的窗口可能比较小。

假设接收端缓冲区为1M。一次收到了500K的数据;如果立刻应答,返回的窗口就是500K;如果接收端稍微等一会再应答,比如等待200ms再应答,那么这个时候返回的窗口大小就是1M;这样窗口就变大了

举个栗子:我拖欠了一个星期的作业,老师来联系我的时候。我没有先回复,而是熬了一个通宵赶了五天的作业,然后再给老师发过去。相当于多了一点应答时间,获得了更大的窗口

!!注意:窗口越大,网络吞吐量就越大,传输效率就越高。我们的目标是在保证网络不拥塞的情况下尽量提高传输效率;

TCP协议段格式:


源/目的端口号 :表示数据是从哪个进程来,到哪个进程去;

4位TCP报头长度:表示该TCP头部有多少个4字节;TCP头部最大长度是15 * 4 = 60

6位标志位:

URG:紧急指针是否有效

ACK:确认号是否有效

PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走

RST:对方要求重新建立连接;我们把携带RST标识的称为复位报文段

SYN:请求建立连接;我们把携带SYN标识的称为同步报文段

FIN:通知对方,本端要关闭了,我们称携带FIN标识的为结束报文段

滑动窗口(效率机制)

这个机制是为了提高效率 。缩短确认应答的响应时间。

TCP的可靠传输,是会影响传输效率的,多了等待ack的时间,单位时间内能传输的数据就少了。

1.一次发送多条数据,就可以很容易提高性能。

2.发送前四个段的时候,不需要等待任何ACK,直接发送;

3.收到第一个ACK后,滑动窗口向后移动,继续发送第五个段的数据;依次类推;

4.操作系统内核为了维护这个滑动窗口,需要开辟 发送缓冲区 来记录当前还有哪些数据没有应答;只有确认应答过的数据,才能从缓冲区删掉;

5.窗口越大,则网络的吞吐率就越高;

流量控制

站在接收方的角度,反向制约发送方的传输效率。

发送方发送的效率,不应该超过接收方的处理能力。

相关推荐
眼镜哥(with glasses)20 分钟前
蓝桥杯 国赛2024python(b组)题目(1-3)
数据结构·算法·蓝桥杯
rorg3 小时前
使用 Laravel 中的自定义存根简化工作
php·laravel
DevSecOps选型指南5 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
int型码农5 小时前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
利刃大大5 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
UFIT5 小时前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面5 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked935 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,5 小时前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
国科安芯6 小时前
抗辐照MCU在卫星载荷电机控制器中的实践探索
网络·嵌入式硬件·硬件工程·智能硬件·空间计算