- 浏览: 763747 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
滑动窗口:用作流量控制:
1.发送端和接收端各维护一个独立的发送缓冲区和接收缓冲区
2.窗口是一段允许被发送的字节序列
3.接收端会根据接收端缓冲区告诉发送端自己的接收窗口大小,它不像发送端,当发出一个数据段超时,就可以认为网络已经拥塞了
4.发送端会根据这个窗口大小发送数据
5.接收端收到数据后会回复确认ACK,此ACK有可能累积,收到多个报文端回复一个ACK
6.发送端收到确认号,发送窗口向前移动,并关闭重传定时器,将数据备份从队列中删除,否则要重传数据
拥塞控制:流量控制只考虑发送端和接收自身的状况,而拥塞控制则是基于整个网络来考虑的,如果网络中所有的超时都重传则会导致更大的丢包
cwnd(拥塞窗口):发送方为一个动态变化的窗口取名拥塞窗口,大小取决于网络的拥塞程度.发送方一般让自己的发送窗口等于拥塞窗口.网络好的时候,它会不断变大
ssthresh(慢速启动阈值):由发送方保存这样一个变量,当拥塞窗口中的字节达到这个阈值时,拥塞控制算法需调整,在大多数实现中,ssthresh值是65536个字节
拥塞控制算法:
例:初始cwnd等于1,ssthresh等于20,网络拥塞等于28
1.拥塞避免:1,2,3,4,5,6...28
2.慢启动(AMID:加法增大,乘法减小):
a.1,2,4,8,16,20(cwnd翻倍时不能超过ssthresh)...28(出现拥塞,将ssthresh设置为cwnd的一半14,cwnd设置1,然后重复此过程)//乘法减小*1/2
b.1,2,4,8,14,(cwnd(14)等于sthresh(14),停用慢启动,采用拥塞避免算法),15,16,17,...27//加法增大,+1
3.快重传:接收方收到一个失序的报文段后就立刻发出重复确认,而不是等待自己发送数据时才进行捎带确认
a.1,2,4,8,16,20,21...28
b.发送方发送...27,28时,收到...25,26,27的ack,但没有收到28的ack
c.接收方是会确认...27的ack,但不会确认28的ack,这样会不断回复28的ack
d.发送方在连接收到三个28的ack时,则不必等重传计时器超时,直接进行重传未确认的28
4.快恢复
a.1,2,4,8,16,20...28
b.发送方在连接收到三个28的ack时,将(ssthresh减半设置为14,cwnd设置为ssthresh的一半7)
c.7,8...28
无论是慢启动,还是快恢复在出现网络拥塞时,都会快速下降ssthresh和cwnd,以减小注入到网络中的分组数
1.发送端和接收端各维护一个独立的发送缓冲区和接收缓冲区
2.窗口是一段允许被发送的字节序列
3.接收端会根据接收端缓冲区告诉发送端自己的接收窗口大小,它不像发送端,当发出一个数据段超时,就可以认为网络已经拥塞了
4.发送端会根据这个窗口大小发送数据
5.接收端收到数据后会回复确认ACK,此ACK有可能累积,收到多个报文端回复一个ACK
6.发送端收到确认号,发送窗口向前移动,并关闭重传定时器,将数据备份从队列中删除,否则要重传数据
拥塞控制:流量控制只考虑发送端和接收自身的状况,而拥塞控制则是基于整个网络来考虑的,如果网络中所有的超时都重传则会导致更大的丢包
cwnd(拥塞窗口):发送方为一个动态变化的窗口取名拥塞窗口,大小取决于网络的拥塞程度.发送方一般让自己的发送窗口等于拥塞窗口.网络好的时候,它会不断变大
ssthresh(慢速启动阈值):由发送方保存这样一个变量,当拥塞窗口中的字节达到这个阈值时,拥塞控制算法需调整,在大多数实现中,ssthresh值是65536个字节
拥塞控制算法:
例:初始cwnd等于1,ssthresh等于20,网络拥塞等于28
1.拥塞避免:1,2,3,4,5,6...28
2.慢启动(AMID:加法增大,乘法减小):
a.1,2,4,8,16,20(cwnd翻倍时不能超过ssthresh)...28(出现拥塞,将ssthresh设置为cwnd的一半14,cwnd设置1,然后重复此过程)//乘法减小*1/2
b.1,2,4,8,14,(cwnd(14)等于sthresh(14),停用慢启动,采用拥塞避免算法),15,16,17,...27//加法增大,+1
3.快重传:接收方收到一个失序的报文段后就立刻发出重复确认,而不是等待自己发送数据时才进行捎带确认
a.1,2,4,8,16,20,21...28
b.发送方发送...27,28时,收到...25,26,27的ack,但没有收到28的ack
c.接收方是会确认...27的ack,但不会确认28的ack,这样会不断回复28的ack
d.发送方在连接收到三个28的ack时,则不必等重传计时器超时,直接进行重传未确认的28
4.快恢复
a.1,2,4,8,16,20...28
b.发送方在连接收到三个28的ack时,将(ssthresh减半设置为14,cwnd设置为ssthresh的一半7)
c.7,8...28
无论是慢启动,还是快恢复在出现网络拥塞时,都会快速下降ssthresh和cwnd,以减小注入到网络中的分组数
发表评论
-
NAT
2018-12-04 14:48 4051.在NAT网关,将不同设备的服务请求用NAT映射到不同端口号 ... -
TCP与性能优化
2017-10-13 15:14 477TCP的可优化点: 1.TCP三次握手增加了整整一次的往返时间 ... -
rawsocket发送tcp包
2017-09-25 11:52 984testTcp.h #ifndef TESTTCP_H ... -
柔性数组
2017-09-20 09:53 508#include <iostream> #i ... -
rawsocket发送dns包
2017-09-14 15:18 616#include <stdio.h> #in ... -
rawsocket发送icmp包
2017-09-06 09:54 662#include <stdio.h> #in ... -
netfilter
2016-10-04 20:31 479http://blog.chinaunix.net/uid-2 ... -
gdb的简单使用
2016-09-19 15:18 417注意编译的时间加上-g参数 1.调试运行 gdb a.out ... -
TCP各状态的意义
2016-03-01 14:06 421各个状态的意义如下: LISTEN - 侦听来自远方TCP端 ... -
Nagle算法
2016-01-07 21:13 952在一个Rlogin连接上客户一般每次发送一个字节到服务器,这就 ... -
TCP半打开连接
2016-01-03 10:08 879如果一方已经关闭或异常终止而另一方却还不知道,这样的TCP连接 ... -
TCP的半关闭
2016-01-02 08:08 588TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的 ... -
名字服务器
2015-12-20 09:03 464一个独立管理的DNS子树称为一个区域(zone). 一个名字 ... -
ICMP源站抑制差错
2015-12-12 09:28 901ICMP源站抑制差错: 当一个系统(路由器或主机)接收数据报的 ... -
动态选路
2015-11-29 09:20 664当相邻路由器之间进行 ... -
简单路由表
2015-11-23 23:27 587netstat -rn Flags:对于一个给定的路由器,可以 ... -
TTL
2015-11-01 09:18 556TTL(time-to-live):生存时间字段设置了数据报可 ... -
log
2015-03-30 17:42 452log.h #ifndef __LOG_H__ #def ... -
TIMEWAIT与CLOSEWAIT
2015-03-17 11:32 660http://blog.csdn.net/kobejayand ... -
TcpClient
2015-01-16 17:46 473TcpClient.h #ifndef TCPCLIENT ...
相关推荐
TCP 滑动窗口、流量控制及拥塞控制详解 TCP 滑动窗口是 TCP 协议中的一种流量控制机制,它可以控制发送方的发送速度,避免网络拥塞和数据丢失。下面我们将详细介绍 TCP 滑动窗口、流量控制及拥塞控制的原理和机制。...
"TCP 重传、滑动窗口、流量控制、拥塞控制" TCP 是一个可靠的传输协议,它为了保证可靠性,使用了许多机制来保证,如序列号、确认应答、重发控制、连接管理以及窗口控制等。今天,我们将重点介绍 TCP 的重传机制、...
TCP 使用滑动窗口大小作为流量控制的手段,接收方会告诉发送方其当前可以接收的缓冲区大小,发送方据此调整发送速率。 4. **拥塞控制** - 拥塞控制是防止过多的数据同时充斥在网络中,造成网络拥塞。TCP 使用慢...
TCP重传、滑动窗口、流量控制、拥塞控制 TCP重传机制是保证数据传输的可靠性的重要机制。其中超时重传是TCP重传机制的一种方式,即在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对端的ACK确认应答...
TCP滑动窗口协议是传输控制协议(TCP)中一种重要的流量控制机制,它确保了数据在两...在实际网络环境中,滑动窗口协议与拥塞控制算法(如慢启动、快速重传和快速恢复等)相结合,为互联网提供了高效且可靠的通信服务。
计算机网络课件:TCP协议的流量控制与拥塞控制 ...通过滑动窗口协议、慢开始和拥塞避免算法、拥塞窗口和慢开始门限等机制,TCP 协议能够避免发送方的数据传输速度超过接收方的接收能力,防止网络出现拥塞的情况。
6. **拥塞控制**:在TCP中,滑动窗口还用于检测和缓解网络拥塞。一旦检测到可能的拥塞,窗口大小会减小,从而减少网络中的数据流量。 在这个大作业中,"datalink.c"可能包含了实现滑动窗口协议的逻辑,包括窗口管理...
此外,滑动窗口协议还涉及到流量控制和拥塞控制。流量控制确保发送方不会过快地发送数据,使得接收方能够处理;拥塞控制则是防止网络中过多的数据导致拥塞,两者通常通过调整窗口大小来实现。 例如,当接收方发现...
4. **TCP滑动窗口**:TCP协议使用滑动窗口来实现流量控制和拥塞控制。它的窗口大小不仅取决于接收方的能力,还根据网络状况动态调整。TCP使用慢启动、拥塞避免、快速重传和快速恢复算法来适应网络环境。 滑动窗口...
3. **滑动窗口**:这是实现UDP可靠性传输的关键技术,通过动态调整发送窗口的大小来控制数据发送速率。 4. **网络**:涵盖了整个网络通信的背景知识。 5. **课程设计**:可能是指这是一个教育项目或课程的一部分,...
此外,滑动窗口协议还可以结合其他协议,如TCP的滑动窗口机制,它在传输层使用累积确认和选择重传,有效地实现了流量控制和拥塞控制。TCP的滑动窗口不仅考虑了接收方的能力,还通过慢启动、拥塞避免和快速重传/快速...
在TCP中,滑动窗口机制结合了确认、重传和流量控制策略,确保了数据的可靠传输和网络拥塞的预防。TCP连接的每一端都有一个动态调整的滑动窗口,通过ACK(确认)报文来反馈接收情况,通过窗口大小通告来限制发送速率...
滑动窗口协议是一种数据传输协议,它能够解决网络拥塞问题,提高数据传输的效率。在本课程设计报告中,我们将对滑动窗口协议的基本原理进行深入的分析和讨论,并使用 VC++ 进行编程模拟。 一、滑动窗口协议的基本...
滑动窗口协议是计算机网络中传输层的一种流量控制机制,主要应用于TCP(传输控制协议)中,用于确保数据的正确顺序接收和防止拥塞。在本实验“计网滑动窗口.zip”中,北邮计算机网络课程的学生们将深入理解和实践这...
通过本文的分析,我们了解了流量控制的滑动窗口协议、接收窗口调整,以及拥塞控制的多种算法和协同工作方式。同时,我们也探讨了实际应用中的考虑和现代TCP的改进方向。 本文详细介绍了TCP的流量控制和拥塞控制机制...
滑动窗口算法是一种在网络通信中用于流量控制的重要机制,尤其是在数据链路层和传输层中,它有效地解决了数据包的有序传输和拥塞控制问题。本文将深入探讨滑动窗口算法的工作原理、关键概念以及在有限序列号空间中的...
然而,UDP缺乏TCP的可靠性机制,如滑动窗口和确认应答,因此在面临网络拥塞和丢包时,需要一套专门的解决方案来确保数据的可靠传输。为了充分发挥RDMA的性能,构建无损网络至关重要,这意味着网络需要能有效防止丢包...
滑动窗口协议是计算机通信网络中一种重要的流量控制机制,主要应用于数据传输的可靠性与效率。在TCP/IP协议栈中,TCP(传输控制协议)就使用了滑动窗口协议来确保数据的正确发送和接收。滑动窗口协议允许发送方在...