请教大家一个拓扑更新的问题,假设我有一个五元组f(a,b,c,d,e)
c++吧
全部回复
仅看楼主
level 1
感谢大家!!!!
问题描述如下:
是属于数据中心流调度的问题,我不懂的地方在于如何编写代码在流传输完成时更新我的拓扑呢?
假设我的数据流模型如下f=(a,b,c,d,e),a,b,c,d,e分别代表流的源主机节点,目的主机节点,到达时刻,最晚截止时间,传输的带宽量,对于每个数据流我应该通过控制器给他进行流调度方案,这里也就是我选择最短路,一个数据流在其传输过程中是要占用网络拓扑的带宽的,在其传输完毕后,他所占用的带宽应该释放,问题在于我要怎么设计代码让该流在其传输完成时释放呢,因为在他传输的过程中也许还有其他的流在传输,所以路径上的可用带宽是实时变化的,举个例子,假设目的节点和源节点一样
假设有流f1=(u,v,0,7,30)
f2=(u,v,3,8,40)
f3=(u,v,2,5,30)
理论上是f1先到,其次f3,最后f2,但是f1传输时直到时刻7才传输完毕,那么这段时间,由于区间[2,5]在[0,7]的范围内,所以这段带宽事实上要考虑已经占用了30带宽的流f1的,我要怎么写循环或者怎么存储去判断每个流传输后更新拓扑同时又兼顾在其传输时间内的其他流接入分配路径时用的是实时带宽情况呢?
PS:可以对流先进行自主排序,然后再调度
2022年05月26日 10点05分 1
level 11
实在不行按时刻模拟呗
你这流的规则也没说清楚,数据报型还是虚电路型
2022年05月26日 12点05分 3
请问具体我要如何按时刻模拟呢,最外面放的循环是时间吗?我现在只能对于每个新到达的流进行FLOYD分配路径,但是每次下个新流到的时候,我要怎么保证我的拓扑都是实时最新的呢,就是比如可能边uv的带宽在[0,7]秒是占用30带宽的,然后对应到流上,由于截止时间或到达时间的不同
2022年05月26日 15点05分
可能要到第3个流,或第4个流到达时这段带宽才会释放,我要怎么去描述这个过程呢,怎么判断他的时间还要让其他流也跑着
2022年05月26日 15点05分
1