TCP流量控制(flow control)
首先,为什么进行流量控制?
一般地说,我们总是希望数据传输的更快,但是如果发送方传送的很快,而接收方来不及接收的话,数据就会丢失。
TCP使用滑动窗口来进行流量控制。
TCP窗口单位是字节。
其实,滑动窗口只不过是一个装B的说法,“每次传输容量”这个名词更适合这个地方。
注意看上图,上图是从谢老师的《计算机网络》中截出的一幅TCP流量控制的说明图,下面我也来说明一下:
首先先想一个问题,发送方A与接收方B,A想要发送600个字节的内容给B,要如何发送?
有人说,简单,直接全部送过去。
可实际上并不是个简单的问题,要考虑A的发送能力,A一次能发多少字节的数据出去呢?还得考虑B的接收能力,B一次能接收多少字节的数据?还得考虑网络原因,中途出现数据丢失怎么办?
首先,针对A,B的每次发送接收能力问题,先约定一个比较合适的容量rwnd,这个容量一般来说,是接收方B的每次处理能力,只要A每次发送的数据不超过这个容量rwnd,那么B就有能力处理地过来。
这个容量rwnd不是恒定的,而是要根据接收方B的实际情况和网络状况而改变的,而且也可能随着发送数据的多少而改变,例如数据发送完毕,则rwnd = 0。
现在我们可以看上图了。
在看第一行之前,还得说明一下,A与B之间已经约定好了:rwnd=400字节,至于它们之间是怎么约定的,其实大部分情况下,发送一个1字节的确认信号到B,完成一次数据交互,即可获得B的rwnd。
1 现在看第一行:seq=1,DATA,表示A发送了1-100字节的数据到B,此时B的处理容量还没满,还有300字节的处理能力。A可以继续发送。
2 再看第二行:seq=101,DATA,表示A发送101-200字节的数据到B,B的处理容量还没满,还差200字节。
3 看第三行:seq=201,DATA,但是出现“丢失”,不必管怎么丢失的,此时相当于出现了严重的错误了,A不能继续发数据了,B也要调整一下状态了。
4 ACK=1,ack=201,rwnd=300,ACK表示首部确认位,ack表示确认字段的值,此时,B返回自己的rwnd=300,那么A只能发300字节的数据,就要重新确认rwnd了。
5 seq=301,DATA,参照第二步
6 seq=401,DATA,参照第二步
7 seq=201,DATA,这个时候是重发旧的数据,此时,300字节的rwnd满了,要重新确认新的rwnd
8 ACK=1,ack=501,rwnd=100,参照第4步
9 seq=501,DATA,参照第二步
10 ACK=1,ack=601,rwnd=0,因为上一步,就已经把600字节的数据传送完毕了,没必要在继续传了,这个时候,就把rwnd设置成0了。
rwnd=0的问题
有人又要问了,如果rwnd=0,那么发送方A岂不是一直不能传数据了吗?
这个时候,一个叫做“持续计数器”的东东出现了,在发送方,如果收到rwnd=0的通知,那么“持续计数器”启动,经过一段时间之后,发送试探消息到B,如果还是收到rwnd=0的结果,那么继续等待,如果不是0,就可以继续传数据了。
分享到:
相关推荐
该仪器的核心处理单元是89C55微控制器,它能处理桥流、温度和不平衡电势三路信号,确保数据的准确性和实时性。采用液晶显示屏,用户可以直观地查看实时参数,如桥流、温度和不平衡电势。 仪器的主要技术参数包括...
《IEEE Std 802.1AE-2018—Cor 1-2020 Local and metropolitan area networks—Media Access Control (MAC) Security Corrigendum 1》是IEEE组织发布的一份重要的标准文档,它针对局域网和城域网的媒体访问控制(MAC...
TCI协议是控制接口的标准,它定义了设备间的交互方式,包括消息类型、消息约束以及消息的具体定义。 4.1节中,文档规定了测试过程中的一些基本约定,例如错误处理、同步机制等。4.2节深入探讨了TCI协议,其中4.2.1...
VLAN的产生源于对传统LAN网络中广播流量控制的需求。在无VLAN的网络中,广播包会传播到整个网络,可能导致网络性能下降。通过路由器可以分割网络,但每个子网仍然可能面临广播问题。VLAN的出现使得网络管理员可以将...
- **TCI字段**:在802.1Q TAG中,TCI提供了用户优先级和VLAN ID,允许网络对不同流量进行优先级划分和隔离。 这两种帧格式在以太网通信中起到了关键作用。基本帧格式适用于传统以太网,而扩展帧格式则为现代网络...
3. **控制通信量**:VLAN能够有效地控制局域网内的单播、多播和广播流量,这些流量仅限于特定的VLAN内传播,从而提高了网络的安全性和效率。 4. **兼容现有设备**:VLAN设计时考虑到了与现有网络设备(如交换机、...
4. Priority Flow Control(PFC):PFC是802.1Q标准的一部分,用于实现基于端口的流量控制,确保高优先级的数据流不会因为低优先级流量的拥塞而受到影响。 5. QinQ:也称为双层VLAN,是802.1Q的一个扩展,允许在...
VLAN ID用于识别帧所属的VLAN,优先级则用于流量控制。 交换机的端口类型有两种:Access端口和Trunk端口。Access端口通常连接用户终端,只允许一个VLAN的流量通过;而Trunk端口用于交换机之间的连接,可以承载多个...
- **流量控制**:VLAN有助于管理网络流量,避免了由于过多设备在同一广播域内导致的性能下降。 2. **VLAN帧格式**: - VLAN帧与普通以太网帧的区别在于增加了4字节的Tag,其中包含了TPID(Tag Protocol ...
数据链路层则处理帧的传输,包括错误检测、流量控制和介质访问控制。 二、TCP/IP参考模型的层次结果 TCP/IP参考模型与ISO/OSI模型类似,但简化为四层:网络接口层(对应OSI的物理层和数据链路层)、网络层、传输层...
VLAN(Virtual Local Area Network,虚拟局域网)是一种网络技术,用于在单一物理局域网...通过有效的VLAN配置,网络管理员可以更有效地控制流量,减少广播风暴,同时增强网络安全,实现不同部门或服务之间的隔离。
VLAN,即虚拟局域网,是一种将物理上的局域网逻辑地划分为多个子网的技术,以便更好地管理和控制网络流量。通过VLAN,可以将网络用户按照部门、功能或安全需求等进行分组,即使这些用户在物理上分布在不同的位置。...
VLAN标签(IEEE 802.1Q)用于对网络流量进行分割,可以提高网络的带宽使用效率和安全性能。 在标准中还提及了IEC60044-8,它涉及的是电力系统测量和控制设备的数据通信。IEC61850-9-2则是IEC 61850标准系列的另一个...
在PROFINET应用中,通过使用VLAN可以更有效地管理和控制网络流量,尤其是在大型或复杂网络环境中。例如,可以通过配置特定的VLAN来专门处理实时数据,以确保这些数据的传输不受其他类型流量的影响。 **2. IEEE 802....
其中,Tag字段包含了TPID、TCI等信息,TCI又包括Priority、CFI(Canonical Format Indicator)以及VLAN ID。 通过以上内容的学习,可以更好地理解和掌握路由基础知识,为后续深入学习网络技术和华为IPRAN解决方案...
VLAN标签由标签协议标识(TPID)和标签控制信息(TCI)两部分组成。其中,TPID为2字节,固定值为0x8100,用于标识帧的类型,表明这是一个802.1Q标签帧;TCI为2字节,包括用户优先级(UserPriority)、规范格式指示器...
DSCP允许网络管理员更精确地控制流量,例如,为VoIP或视频流分配更高的优先级。DSCP值通过组合不同的服务类别,可以实现更复杂的流量管理和调度策略。 4. 802.1p优先级: 802.1p是IEEE制定的一种二层优先级标准,...
4. GCB:群控控制按钮,用于多台电梯协同工作,优化交通流量。 5. CHC:切断厅外召唤,防止非正常信号干扰电梯运行。 6. PRK:停梯状态,电梯因故停止运行,等待恢复。 二、电梯运行运动状态 电梯的运行状态涵盖了...
Tag TPID Priority CFI VLAN ID TCI ``` Tag字段包含了Priority、CFI和VLAN ID,其中VLAN ID用于区分不同的VLAN。 ### VLAN的配置方式 VLAN的配置可以通过多种方式实现,包括: 1. **基于端口的VLAN**:将交换机...
总的来说,VLAN技术是现代网络架构中的重要组成部分,它提供了一种有效管理和控制网络流量的方法,有助于构建高效、安全和可扩展的网络环境。在处理网络故障时,理解和熟练运用VLAN原理与配置技巧,将有助于快速定位...