[TCP/IP] TCP如何实现流量控制和拥塞控制
2023-02-18 15:47:03 时间
流量控制:数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发方进行控制,以免数据丢失。流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过将阻塞信号发送回源地址实现的。流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行。
1.通信双方主机上都分别有一个“发送窗口”和一个“接受窗口”
2.TCP连接阶段,双方协商窗口尺寸
3.发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认,等待确认机制
4.发送方根据确认信息,改变窗口的尺寸
拥塞控制:网络拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。拥塞控制是处理网络拥塞现象的一种机制。
1.TCP发送方首先发送一个数据报,然后等待对方的回应
2.得到回应后就把这个窗口的大小加倍,然后连续发送两个数据报
3.直到出现超时错误,这样,发送端就了解到了通信双方的线路承载能力,也就确定了拥塞窗口的大小
相关文章
- [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现
- [PHP]算法-最大子数组问题思路
- [PHP] 数据结构-反转链表PHP实现
- [PHP] 数据结构-单链表头插法PHP实现
- [PHP] 数据结构-从尾到头打印链表PHP实现
- [PHP] 数据结构-输出链表倒数第k个结点PHP实现
- [PHP]算法-归并排序的PHP实现
- [PHP] 数据结构-二叉树的创建PHP实现
- [PHP] 数据结构-循环链表的PHP实现
- [PHP] 数据结构-链表创建-插入-删除-查找的PHP实现
- [PHP] 算法-两个n位的二进制整数相加问题PHP实现
- [PHP] 数据结构-线性表的顺序存储结构PHP实现
- [日常] 链表-头结点和头指针的区别
- [日常] C语言中指针变量
- [日常] 算法-单链表的创建-尾插法
- [日常] 算法-单链表的创建
- [日常] 算法-旋转字符串-三步翻转法
- [日常] 算法-旋转字符串-暴力移位法
- [日常] C语言中的字符数组和字符串
- [日常] 高性能MySQL-索引