【无标题】(网络原理(中)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.窗口越大,则网络的吞吐率就越高;

流量控制

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

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

相关推荐
嵌入式AI的盲1 小时前
数组指针和指针数组
数据结构·算法
limengshi1383922 小时前
通信工程学习:什么是TFTP简单文件传输协议
网络·网络协议·学习·信息与通信
reyas3 小时前
B树系列解析
数据结构·b树
Indigo_code3 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
芒果作者3 小时前
dcatadmin 自定义登录页面
php
麻辣韭菜4 小时前
网络基础 【HTTP】
网络·c++·http
阿史大杯茶4 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
LluckyYH4 小时前
代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会
算法·深度优先·动态规划·软件构建·图论·dfs
转调5 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
不穿格子衬衫5 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序