@@ -719,16 +719,107 @@ QoS路由问题我们需要考虑的有:
719
719
更多与安全相关的内容请移步《网络通信与安全》。
720
720
721
721
722
+ # Chapter 7 流量控制
723
+ ---
724
+
725
+ - 概论
726
+ - 基于窗口的流量控制
727
+ - 窗口流量控制
728
+ - 基于速率的流量控制
729
+ - 速率控制方案
730
+ - 速率调节方法
731
+ - 多跳网路的流量控制
732
+ - EXACT
733
+
734
+ ## 7.1 概论
735
+
736
+ 流量控制的** 意义** 在于通过这种方法,可以提高网络的吞吐量,从而在有限网络资源的条件下最大化网络效用。
737
+ 随着网络负载的增大,不控制流量的话吞吐量会逐渐变小,而控制的话可以保持在一个较高的吞吐量。
738
+
739
+ 流量控制的** 主要目的** 在于** 限制延迟** ,** 缓存溢出** 以及** 维持公平性** 。
740
+
741
+ 流量控制发生的** 位置** 主要在入网口,网络层,传输层几个地方。
742
+
743
+ 流量控制的** 主要方法** 有:
744
+
745
+ - 呼叫阻止/接入控制
746
+ - 分组丢弃
747
+ - 分组阻止
748
+ - 分组调度
749
+
750
+ 具体的,我们可以将流量控制分为基于窗口控制和基于速率控制两类。
751
+
752
+ ## 7.2 窗口流量控制
753
+
754
+ ** 窗口** 是指在传输点和接收点之间(即路径上)所允许保有的数据包上限。简单的讲,就是被传送但不知道是否被接收的数据单位的数量有上界。
755
+
756
+ 窗口控制是指根据设定的窗口大小进行流量控制,一般可以分为** 端到端窗口控制** 和** 点到点端口控制** 。
757
+
758
+ ** 端到端** :
759
+
760
+ 记窗口大小为W,默认单位数据包传输时延为X,通信往返时间为d,则受控流量速率为\\ (r = \\ min\\ bigg\\ {\\ frac{1}{X},\\ frac{W}{d}\\ bigg\\ }\\ )
761
+
762
+ 端到端窗口控制反应快,开销低,但没办法保证最小的通信速率,窗口大小、延时、吞吐量之间的关系很难掌控,且对公平性支持不好。
763
+
764
+ ** 点到点** :
765
+
766
+ 点对点相比端对端最大的优势在于它把流量控制中的反压这一行为均匀的分布在了链路的每一段(端到端就是最尽头被压住),这样每个节点防止溢出所需要的内存需求就变小了,公平性问题也得到了比较好的保障。
767
+
768
+ ** 窗口的动态调整** :拥塞发生时,调整窗口的大小显然是十分必要的。如何调整,调整的信息以及调整的策略是需要确认的。
769
+
770
+ 一般调整信息通过如下几种途径获取:
771
+ 1 . 拥塞发生,拥塞发现节点回传扼流数据包
772
+ 2 . 源节点根据许可延迟或数据包重传行为确认
773
+ 3 . 一般的数据包在传输过程中收集拥塞信息发送给目的节点,目的节点通过许可(如:ACK)调整源节点的行为
774
+
775
+ 比较典型的窗口动态调整策略:AIMD(用于TCP协议)
776
+
777
+ ## 7.3 速率流量控制
778
+
779
+ 速率控制是指根据源节点的发送速率进行控制,最常见的速率控制方案是漏水桶方案。
780
+
781
+ ** 漏水桶方案** :要进入传输队列中,数据包必须从许可队列中得到一个许可。只要许可的数目不超过一个给定的阈值,新的许可会每个\\ (\\ frac{1}{r}\\ )产生一个,其中\\ (r\\ )是期望的输入率。
782
+
783
+ 速率控制可以提供可保证的数据率。最优的速率调节算法可以通过扩展最优化路由的方式来解决(增加一溢出链路,然后采用相同的优化方式即可)。
784
+
785
+ 如果需要将公平性纳入优化范围,将优化目标改为最大-最小即可(最大的值最小)。
786
+
787
+ ## 7.4 多跳网络的流量控制
788
+
789
+ 多跳网路与有线网络的流量控制相比
790
+
791
+ - 流干扰区不同
792
+ - 路径稳定性不同
793
+ - 网络完整性不同
722
794
795
+ 多跳网络与无线网络的流量控制相比
723
796
797
+ - 带宽变化特性不同
798
+ - 媒体共享特性不同
799
+ - 多跳网络会频繁重新路由
724
800
801
+ 由此可知,多跳网络的流量控制不是一个单一问题,需要与MAC、路由、资源调度结合在一起考虑。
725
802
803
+ 一个典型的多跳网络流量控制方案——** EXACT** (Explicit Rate-based Flow Control in MANET)
726
804
805
+ ** 包头变换** :在IP包包头增加两个字段:ER和CR
727
806
807
+ - ER(Explicit Rate):申请的最大速率,由发送节点初始化,中间节点修改
808
+ - CR(Current Rate):当前速率,在节点的Flow Table中存储,由发送节点初始化,中间节点修改
728
809
810
+ ** 节点行为** :节点间通过特殊字段交换信息
729
811
812
+ - 发送节点:在每个数据包发送时,将ER设为最大速率,CR设为当前速率,当收到反馈包后,将本地保有的CR改为收到包中的值
813
+ - 接收节点:收到数据包后,将数据包中的ER值写入反馈包中并返回
814
+ - 有一个可选的方案是仅当收到数个数据包,或者收到的包的ER值改变了才返回反馈包
815
+ - 中间节点:收到数据包后,将CR值保存至Flow Table中,根据网络状况调整当前带宽,根据当前带宽计算当前速率,根据当前速率更新包头的特殊字段(CR)
730
816
817
+ ** 支撑技术** :
731
818
819
+ - MAC层:动态带宽测量
820
+ - 传输层:安全计数器
821
+ - 传输层:路由探针
822
+ - 传输层:可靠性控制
732
823
733
824
734
- To Be Continued...
825
+ That's all. Good Luck!
0 commit comments