數(shù)據(jù)中心網(wǎng)絡(luò)中tcp共流的調(diào)度方法和裝置的制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)中心網(wǎng)絡(luò)中TCP共流的調(diào)度方法和裝置。該方法包括:發(fā)送端根據(jù)共流初始信息生成每個待調(diào)度共流的初始優(yōu)先級,并向待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包;在檢測到待調(diào)度共流被服務時,根據(jù)生成待調(diào)度共流的共流優(yōu)先級;根據(jù)與發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流的數(shù)據(jù)量每個TCP流的內(nèi)部優(yōu)先級;根據(jù)與發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量和發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的期望速率;由交換機根據(jù)共流優(yōu)先級、內(nèi)部優(yōu)先級和期望速率對TCP流分配速率,以使發(fā)送端根據(jù)交換機分配的速率對TCP流進行調(diào)度。本發(fā)明采用共流間和共流內(nèi)兩項調(diào)度協(xié)調(diào)工作,能有效的減少CCT、降低系統(tǒng)開銷。
【專利說明】
數(shù)據(jù)中心網(wǎng)絡(luò)中TCP共流的調(diào)度方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及,具體設(shè)及一種數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法和裝置。
【背景技術(shù)】
[0002] 數(shù)據(jù)中屯、網(wǎng)絡(luò)支撐著多種分布式計算和存儲框架(比如,MapReduce ,Spark和 皿FS)。在運些框架中,存在著若干W shuffle ,aggregation和broadcast等形式出現(xiàn)的并行 數(shù)據(jù)傳遞過程。運些并行數(shù)據(jù)傳遞過程顯著地影響著分布式框架的性能。通常而言,一個并 行數(shù)據(jù)傳遞過程包含若干個并行的TCP流。一個過程能夠被完成當且僅當它里面的所有TCP 流都完成了數(shù)據(jù)傳遞。一個并行數(shù)據(jù)傳遞過程中的所有TCP流被抽象為一個共流(coflow)。 最近的研究表明減少共流的完成時間(Cof 1OW Comp 1 etion Time,CCT)能大大地提高分布 式框架的性能。
[0003] 已有提高CCT性能(減少CCT)的工作都集中在共流的調(diào)度上。典型的共流調(diào)度方法 可W分為兩類:集中式調(diào)度和分布式調(diào)度。集中式調(diào)度方法的代表為Varys。在Varys中,一 個集中式控制器會實時地收集網(wǎng)絡(luò)和共流的相關(guān)信息,并根據(jù)SEBF(Smallest Effective Bottleneck First)的策略為所有的共流計算和指派調(diào)度信息。分布式調(diào)度方法的代表為 Baraat和D-CAS。分布式調(diào)度方法Baraat采用FIFO-LM化irst In First Out with Limited Multiplexing)策略。該策略一方面W先進先出的方式處理共流,另一方面,當它檢測到高 優(yōu)先級的共流已經(jīng)被傳輸了較多數(shù)據(jù)的時候,它會動態(tài)地更改復用的級別讓優(yōu)先級低的共 流能夠被服務。D-CASW分布式的形式把SEBF簡化為子共流級別的化-11^(5加(3〇'1〇訊-Level Minimum Remaining Time First)策略。雖然運些方法都能提高CCT性能,然而它們 都存在著不同的性能瓶頸,比如:系統(tǒng)開銷大,隊頭阻塞,共流語義利用率低,帶寬利用率不 足等等。
[0004] 對于WVarys為代表的集中式調(diào)度方法,雖然能夠取得很好的性能,它的系統(tǒng)開銷 卻是一個很大的問題,尤其是當網(wǎng)絡(luò)規(guī)模變得較大的時候。Varys的控制器在收集信息,計 算調(diào)度結(jié)果和下發(fā)控制信息運些方面都存在著極其嚴重的額外開銷。在化rys中,平均一次 的調(diào)度開銷就高達30毫秒??紤]到數(shù)據(jù)中屯、網(wǎng)絡(luò)中的傳播時延僅僅只有數(shù)百微妙,運么大 的開銷在實際網(wǎng)絡(luò)中是難W忍受的。
[0005] 分布式調(diào)度方法Baraat,有兩個主要的缺點。首先運個基于先進先出的方法嚴重 地依賴共流的到達順序。所W該方法在共流到達順序差別很大的時候,它的性能是極其不 穩(wěn)定的。其次,當Baraat的復用級別提高之后,它的性能甚至會退化為基于流的公平性調(diào)度 策略。而運種調(diào)度策略是完全無法優(yōu)化CCT性能的。對于D-CAS,也有兩個主要的缺點。首先, D-CAS在獲取共流優(yōu)先級信息的時候并沒有充分使用共流的語義。特別地,D-CAS中用于計 算優(yōu)先級的子共流運個概念僅僅是共流的一個很小的部分。用子共流來進行優(yōu)先級的設(shè) 置,很有可能會給一個本來優(yōu)先級不用太高的共流分配一個大很多的優(yōu)先級,而真正需要 被優(yōu)先服務的共流卻只能獲得較小的優(yōu)先級。其次,D-CAS很容易浪費接收端處的鏈路資 源。
[0006] 此外,已有的調(diào)度策略都無區(qū)別地對待同一個共流的中的所有TCP流。然而共流中 的不同流是存在著優(yōu)先級差異的,運樣的調(diào)度會一定程度上損害CCT性能。
【發(fā)明內(nèi)容】
[0007] 針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種一種數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度 方法和裝置,用于解決現(xiàn)有TCP共流調(diào)度CCT長、系統(tǒng)開銷大的問題。
[000引本發(fā)明提出了 一種數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法,包括:
[0009] 共流控制器將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端;
[0010] 被通告發(fā)送端在接收到所述初始信息時,根據(jù)所述初始信息生成每個待調(diào)度共流 的初始優(yōu)先級,并向所述待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包;
[0011] 在檢測到所述待調(diào)度共流被服務且接收到所述接收端反饋的調(diào)度AO(時,根據(jù)所 述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級,所述第一剩余數(shù)據(jù) 為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量;
[0012] 根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度共流的每個TCP流的內(nèi) 部優(yōu)先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的所述TCP流的數(shù)據(jù)量;
[0013] 根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP 流的期望速率;
[0014] 通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率發(fā)送至 交換機;
[0015] 交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配,并通過接收端的調(diào)度ACK 將分配的速率發(fā)送至所述發(fā)送端,W使所述發(fā)送端根據(jù)交換機分配的速率對TCP流進行調(diào) 度。
[0016] 優(yōu)選地,所述初始信息包括:初始瓶頸;
[0017] 所述初始瓶頸包括:所有發(fā)送端的初始剩余TCP流量中的最大值;
[0018] 相應地,所述根據(jù)所述初始信息生成每個待調(diào)度共流的初始優(yōu)先級的步驟具體包 括:
[0019] 根據(jù)所述最大的初始剩余TCP流量生成每個待調(diào)度共流的初始優(yōu)先級。
[0020] 優(yōu)選地,所述初始信息還包括:初始流量信息;
[0021] 相應地,所述將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端的步驟具 體包括:
[0022] 將所述初始瓶頸發(fā)送至所有發(fā)送端;
[0023] 向每個發(fā)送端發(fā)送與所述發(fā)送端存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息;
[0024] 或,向每個接收端發(fā)送與所述接收端存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息;
[0025] 其中,所述節(jié)點為發(fā)送端或者接收端。
[0026] 優(yōu)選地,在所述將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端的步驟 之前,該方法還包括:
[0027] 共流控制器從第一記錄表中獲取每個節(jié)點與其余節(jié)點的關(guān)聯(lián)關(guān)系,W及每個節(jié)點 的ID;
[0028] 相應地,所述將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端的步驟具 體包括:
[0029] 根據(jù)所述關(guān)聯(lián)關(guān)系,向每個節(jié)點發(fā)送與該節(jié)點存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信 息。
[0030] 優(yōu)選地,所述根據(jù)所述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共 流優(yōu)先級的步驟具體包括:
[0031] 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值;
[0032] 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu) 先級;
[0033]
公式一
[0034] 其中,priority為共流優(yōu)先級,QS為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的 最大值,4為可擴展口限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的 時間點至當前時間點的時間長度。
[0035] 優(yōu)選地,所述根據(jù)所述第一剩余數(shù)據(jù)量和該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生 成每個TCP流的期望速率的步驟具體包括:
[0036] 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值;
[0037] 根據(jù)公式二和公式=,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的 期望速率;
[0040] 其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率, desirecLrate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量,
[00;3 引
[0039]
為硬件設(shè)備的影響系數(shù)。
[0041] 優(yōu)選地,在所述交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配的步驟之 前,該方法還包括:
[0042] 交換機獲取所述第二調(diào)度數(shù)據(jù)包中每個TCP流的共流優(yōu)先級、所述內(nèi)部優(yōu)先級和 所述期望速率,并根據(jù)共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率獲取所述TCP流的ID;
[0043] 相應地,所述交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配的步驟具體 包括:
[0044] 在所述第二調(diào)度數(shù)據(jù)包從發(fā)送端傳遞至對應接收端的過程中,沿途的交換機依次 對所述TCP流進行分配速率;
[0045] 并在接收到接收端發(fā)送的調(diào)度ACK后,獲取所述TCP流的ID,并將根據(jù)所述ID將分 配給所述TCP流的速率置為沿途交換機分配的速率中的最小值。
[0046] 本發(fā)明還提出了一種數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度裝置,包括:
[0047] 第一接收模塊,用于接收至少一個待調(diào)度共流的初始信息;
[0048] 第一處理模塊,用于根據(jù)所述初始信息生成每個待調(diào)度共流的初始優(yōu)先級,并向 所述待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包;
[0049] 第二處理模塊,用于在檢測到所述待調(diào)度共流被服務且接收到所述接收端反饋的 調(diào)度AC即寸,根據(jù)所述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級, 所述第一剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量;
[0050] 第S處理模塊,用于根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度共 流的每個TCP流的內(nèi)部優(yōu)先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的所 述TCP流的數(shù)據(jù)量;
[0051] 第四處理模塊,用于根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流的 數(shù)據(jù)量生成每個TCP流的期望速率;
[0052] 發(fā)送模塊,用于通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述 期望速率發(fā)送至交換機;
[0053] 第二接收模塊,用于接收端反饋的調(diào)度ACK,并根據(jù)所述調(diào)度ACK中攜帶的交換機 分配的速率對每個TCP流進行調(diào)度。
[0054] 優(yōu)選地,所述第二處理模塊,具體用于根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān) 聯(lián)的發(fā)送端剩余的TCP流量中的最大值;
[0055] 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu) 先級;
[0056]
公武一
[0057] 其中,priority為共流優(yōu)先級,QS為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的 最大值,4為可擴展口限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的 時間點至當前時間點的時間長度。
[0058] 優(yōu)選地,所述第四處理模塊,具體用于根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān) 聯(lián)的發(fā)送端剩余的TCP流量中的最大值;
[0059] 根據(jù)公式二和公式=,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的 期望速率;
[0060]
[0061 ] 公式吉
[0062] 其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率, desirecLrate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量,
3硬件設(shè)備的影響系數(shù)
[0063] 由上述技術(shù)方案可知,本發(fā)明提出的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法,通過采 集發(fā)送端剩余的TCP流總的數(shù)據(jù)量和每個TCP流的數(shù)據(jù)量,W實現(xiàn)共流間調(diào)度和共流內(nèi)調(diào)度 的協(xié)調(diào)工作,能有效的減少CCT、降低系統(tǒng)開銷。
【附圖說明】
[0064] 通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點,附圖是示意性的而不應理 解為對本發(fā)明進行任何限制,在附圖中:
[0065] 圖1示出了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法的流程示 意圖;
[0066] 圖2示出了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中連通圖 的流程示意圖;
[0067] 圖3示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在網(wǎng)絡(luò)規(guī) 模變化時的平均CCT性能對比圖;
[0068] 圖4示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在網(wǎng)絡(luò)規(guī) 模變化時的90thCCT性能對比圖;
[0069] 圖5示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在網(wǎng)絡(luò)負 載變化時平均CCT性能對比圖;
[0070] 圖6示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在網(wǎng)絡(luò)負 載變化時的90thCCT性能對比圖;
[0071] 圖7示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在共流數(shù) 量變化時平均CCT性能對比圖;
[0072] 圖8示了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中在共流數(shù) 量變化時的90thCCT性能對比圖;
[0073] 圖9示出了本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度裝置的結(jié)構(gòu)示 意圖。
【具體實施方式】
[0074] 為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明的一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人 員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0075] 圖1為本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法的流程示意圖, 參照圖1,該方法包括:
[0076] 110、共流控制器將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端;
[0077] 需要說明的是,共流控制器掌管著所有共流的初始信息。當一個共流到達網(wǎng)絡(luò)的 時候,與此對應的共流控制器將把運個共流的初始信息分發(fā)給運個共流對應的發(fā)送端和接 收端。
[0078] 120、被通告發(fā)送端在接收到所述初始信息時,根據(jù)所述初始信息生成每個待調(diào)度 共流的初始優(yōu)先級,并向所述待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包;
[0079] 可理解的是,第一調(diào)度數(shù)據(jù)包即為一種發(fā)送端發(fā)出的用于收集信息的工具,第一 調(diào)度數(shù)據(jù)包傳遞至對應接收端后,由接收端將第一調(diào)度數(shù)據(jù)包在沿途收集的數(shù)據(jù)提取出 來,并通過調(diào)度ACK反饋給發(fā)送端。
[0080] 130、在檢測到所述待調(diào)度共流被服務且接收到所述接收端反饋的調(diào)度ACK時,根 據(jù)所述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級,所述第一剩余 數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量;
[0081] 140、根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度共流的每個TCP流 的內(nèi)部優(yōu)先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的所述TCP流的數(shù)據(jù) 量;
[0082] 150、根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個 TCP流的期望速率;
[0083] 160、通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率發(fā) 送至交換機;
[0084] 170、交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配,并通過接收端的調(diào) 度ACK將分配的速率發(fā)送至所述發(fā)送端,W使所述發(fā)送端根據(jù)交換機分配的速率對TCP流進 行調(diào)度。
[0085] 本發(fā)明提出的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法,通過采集發(fā)送端剩余的TCP流 總的數(shù)據(jù)量和每個TCP流的數(shù)據(jù)量,W實現(xiàn)共流間調(diào)度和共流內(nèi)調(diào)度的協(xié)調(diào)工作,能有效的 減少CCT、降低系統(tǒng)開銷。
[0086] 本實施例中,初始信息包括:初始瓶頸;
[0087] 所述初始瓶頸包括:所有發(fā)送端的初始剩余TCP流量中的最大值;
[0088] 需要說明的是,一個共流的實際完成時間僅僅取決于它當中最慢的TCP流何時完 成數(shù)據(jù)傳遞。也就是說,一個共流的瓶頸最終會決定它的CCT。
[0089] 由此,步驟120具體包括:
[0090] 根據(jù)所述最大的初始剩余TCP流量生成每個待調(diào)度共流的初始優(yōu)先級。
[0091] 在另一可行實施例中,初始信息還包括:初始流量信息;
[0092] 為了進一步減輕分發(fā)信息的負載,共流控制器只通知每個發(fā)送端和接收端和它們 在同一個連通圖內(nèi)的所有節(jié)點的初始流量信息;
[0093] 由此,在步驟110之前,共流控制器從第一記錄表中獲取每個節(jié)點與其余節(jié)點的關(guān) 聯(lián)關(guān)系,W及每個節(jié)點的ID;
[0094] 相應地,步驟110具體包括:
[00M]將所述初始瓶頸發(fā)送至所有發(fā)送端;
[0096] 根據(jù)所述關(guān)聯(lián)關(guān)系,向每個節(jié)點發(fā)送與該節(jié)點存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信 息;其中,節(jié)點為發(fā)送端或者接收端。
[0097] 也就是說,共流控制器將向每個發(fā)送端發(fā)送與所述發(fā)送端存在關(guān)聯(lián)關(guān)系的節(jié)點的 初始流量信息;
[0098] 或者,向每個接收端發(fā)送與所述接收端存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息;
[0099] 在一可行實施例中,步驟130具體包括:
[0100] 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值;
[0101] 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu) 先級;
[0102]
[0103] 其中,priority為共流優(yōu)先級,〇s為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的 最大值,4為可擴展口限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的 時間點至當前時間點的時間長度。
[0104] 在一可行實施例中,步驟150具體包括:
[0105] 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值;
[0106] 根據(jù)公式二和公式=,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的 期望速率;
[0109] 其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率, desire^rate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量,
[0107]
[010 引
洲更件設(shè)備的影響系數(shù)。
[0110] 在步驟170之前,該方法還包括:
[0111] 交換機獲取所述第二調(diào)度數(shù)據(jù)包中每個TCP流的共流優(yōu)先級、所述內(nèi)部優(yōu)先級和 所述期望速率,并根據(jù)共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率獲取所述TCP流的ID;
[0112] 相應地,步驟170具體包括:
[0113] 在所述第二調(diào)度數(shù)據(jù)包從發(fā)送端傳遞至對應接收端的過程中,沿途的交換機依次 對所述TCP流進行分配速率;
[0114] 并在接收到接收端發(fā)送的調(diào)度ACK后,獲取所述TCP流的ID,并將根據(jù)所述ID將分 配給所述TCP流的速率置為沿途交換機分配的速率中的最小值。
[0115] 圖2為本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法中連通圖的流 程示意圖,下面參照圖2對進行詳細說明:
[0116] ?共流:一組處于同一個并行數(shù)據(jù)傳遞過程并且具有相同目標的TCP流的集合。一 個共流的大小被定義為共流中所有TCP流的大小之和。共流的寬度是指共流中TCP流的數(shù) 量。共流的長度是共流中最大的TCP流的大小。共流的瓶頸被定義為共流設(shè)及到的所有節(jié)點 的最大數(shù)據(jù)處理量(包含所有發(fā)送端需要發(fā)送的數(shù)據(jù)和所有接收端需要接受的數(shù)據(jù))。
[0117] ?無向圖:由于一個TCP連接包含前向的數(shù)據(jù)傳輸和后向的ACK反饋傳輸,一個TCP 流可W被看成一條無向邊??紤]到運個情況,一個共流和它相關(guān)的服務器可W被抽象為一 個無向圖G = <V,E〉。所有的發(fā)送端和接收端組成了點集合V,所有的TCP流組成了邊集E。
[0118] ?連通圖:根據(jù)圖的連通性,一個無向圖可W被劃分為若干個連通子圖。每個連通 的部分就是一個連通圖。
[0119] ?部分共流(PartialCof low): -個部分共流是TCP流的集合。其中,運些TCP流可 W被抽象為同一個連通圖中所有的邊。
[0120] 圖2中的fi為第i個TCP流,共19個TCP流。所有的節(jié)點和邊組合成為了無向圖。該無 向圖被分為了 =個連通圖。與此相應地,一個共流被分成了 =個部分共流,其中,fi-f 12為一 個部分共流,f 13-f 15為一個部分共流,f 16-f 19為一個部分共流;
[0121] 基于如上定義和示例,我們可W總結(jié)出W下關(guān)系:
[0122] ?-個共流對應一個無向圖;一個部分共流對應一個連通圖。
[0123] ?每個共流包含一個或多個部分共流。與此對應地,一個無向圖包含一個或多個 連通圖。
[0124] ?信息可W通過同一個部分共流中的TCP流,在對應的連通圖內(nèi)的服務器間相互 傳遞。
[0125] 由此本發(fā)明給出另兩個定義。一個共流的信息表示運個共流中,所有發(fā)送端要發(fā) 送的屬于運個共流的總共剩余流量大小,所有接收端要接收的屬于運個共流的總共剩余流 量大小。同樣地,一個部分共流的信息意味著運個部分共流中,所有對應的發(fā)送端要發(fā)送的 屬于運個部分共流的總共剩余流量,所有對應的接收端要接受的屬于運個部分共流的總共 剩余流量大小。很顯然的是,一個部分共流信息是它對應的共流信息的子集。
[01 %]基于上面的定義,本發(fā)明給出CGM-PS的框架,CGM-PS方法被分為兩個部分:共流間 調(diào)度和共流內(nèi)調(diào)度。共流間調(diào)度指的是給不同的共流指派不同的優(yōu)先級,而共流內(nèi)調(diào)度指 的是給每個共流中的TCP流分配流層面的優(yōu)先級并指定發(fā)送速率。
[0127]下面對共流間調(diào)度的原理進行詳細說明:
[01%]共流間調(diào)度策略命名為P-SEBFdP-S邸F由S部分組成:信息獲取,策略生成W及調(diào) 度執(zhí)行。其中:
[0129] ?信息獲取:每個發(fā)送端W半分布式的形式收集共流的信息。也就是說,在一個共 流被網(wǎng)絡(luò)服務之前,每個發(fā)送端從集中式共流控制器那兒去獲取運個共流的信息(運個控 制器可W是SDN控制器)。當運個共流被網(wǎng)絡(luò)服務后,每個發(fā)送端通過和在同一個連通圖中 的所有發(fā)送端和接收端相互交互信息去獲取它所在的部分共流的信息。運個信息獲取過程 每個RlT將會被執(zhí)行一次。
[0130] ?策略生成:根據(jù)獲取到的信息W及共流間調(diào)度策略,每個發(fā)送端為它上所有的 共流本地地計算優(yōu)先級。值得注意的是,如果發(fā)送端僅僅只獲取到部分共流的信息,它會根 據(jù)運個信息計算部分共流層面的優(yōu)先級。然后它會把運個優(yōu)先級近似當成運個共流的優(yōu)先 級。也就是說,在我們的方法中,部分共流層面的優(yōu)先級被當成了共流層面的優(yōu)先級。運個 過程會被周期性地執(zhí)行。周期長度為S。
[0131] ?調(diào)度執(zhí)行:每個發(fā)送端給共流中的每個TCP流分配優(yōu)先級。具有較高共流優(yōu)先級 的流會被率先調(diào)度。具有相同共流優(yōu)先級的TCP流的調(diào)度順序W及每個流的發(fā)送速率會在 共流內(nèi)調(diào)度部分進行介紹。
[0132] 下面對共流間調(diào)度的原理進行詳細說明:
[0133] 共流內(nèi)調(diào)度策略被命名為FP-MDFS。該策略由兩部分組成:流優(yōu)先級生成W及流速 率分配:
[0134] ?流優(yōu)先級生成:每個發(fā)送端根據(jù)共流優(yōu)先級W及關(guān)于運個流的一些本地信息, 給每個TCP流分配流優(yōu)先級。運個過程將會在運個發(fā)送端結(jié)束共流間調(diào)度中的策略生成步 驟后被執(zhí)行。
[0135] ?流速率分配:首先,每個發(fā)送端為它上面的每個流計算一個期望速率。其次,每 個發(fā)送端向TCP流傳播路徑中的沿途交換機通告流優(yōu)先級和期望速率。然后,每個交換機為 運個流指定一個可接受的速率。接著,接收端把運些關(guān)于可接受速率的反饋信息通過ACK傳 遞給發(fā)送端。最終,發(fā)送端根據(jù)運些反饋信息更新流的發(fā)送速率。運個過程每個RTT重復一 次。
[0136] 下面對共流間調(diào)度和共流內(nèi)調(diào)度的算法實現(xiàn)原理進行詳細說明:
[0137] 在P-SEBF中,當一個共流到達網(wǎng)絡(luò)的時候,共流控制器會向運個共流的所有發(fā)送 端通告有關(guān)運個共流的初始信息。當共流被網(wǎng)絡(luò)服務前,運個離線信息是有效的。根據(jù)運個 信息,每個發(fā)送端可W獲得運個共流的共流優(yōu)先級。運意味著共流間調(diào)度策略在共流被傳 輸服務前是工作在集中調(diào)度模式的。
[0138] 然而,當運個共流中的部分TCP流被傳輸后,即被網(wǎng)絡(luò)服務后,運個共流的初始信 息將變得無效了。為了在不影響網(wǎng)絡(luò)性能的前提下,減少系統(tǒng)開銷,本發(fā)明采用在連通圖模 型的基礎(chǔ)上,讓處于同一個連通圖內(nèi)部的服務器可W通過梢?guī)畔⒌姆绞竭M行消息共享。 運也就意味著,當共流被網(wǎng)絡(luò)傳輸后,共流間調(diào)度策略工作在分布式模式。在該模式中,每 個發(fā)送端獲取到部分共流的信息。通過計算部分共流優(yōu)先級來獲取共流優(yōu)先級。另外,用運 種方式,沒有額外的TCP流被用來進行信息交換,運大大減小了網(wǎng)絡(luò)的負載。
[0139] 表1為關(guān)鍵符號定義表,下面參照表1對共流間調(diào)度和共流內(nèi)調(diào)度的實現(xiàn)過程進行 詳細說明,親1中的發(fā)謀端巧按收端挽可Pi為服各器:
[0140]
[0141] 表1
[0142] 共流控制器操作:共流控制器掌管著所有共流的初始信息。當一個共流到達網(wǎng)絡(luò) 的時候,與此對應的共流控制器需要把運個共流的初始信息分發(fā)給運個共流對應的發(fā)送端 和接收端。為了進一步減輕分發(fā)信息的負載,共流控制器只通知每個發(fā)送端和接收端和它 們在同一個連通圖內(nèi)的所有節(jié)點的初始流量信息。運個分發(fā)信息的形式是化iM,DiM)a = I,2....)。此外,控制器會通知所有的發(fā)送端運個共流的初始瓶頸(LM,DM)。控制器把運些 信息梢?guī)г谕ǜ鏀?shù)據(jù)包的頭部,并把運些通告數(shù)據(jù)包發(fā)送給對應的發(fā)送端和接收端。運個 操作也就是我們方法的集中式部分。
[0143] 發(fā)送端操作:共流的每個發(fā)送端會為運個共流維護一個共流變量表。運個表中包 含1,1,化15,015)。= 1,2...,1),化5,05)和邑1^'5(1 = 1,2,...1^ = 1,2,...,扣。發(fā)送端 會通過每個TCP流每隔一個RlT發(fā)送一個調(diào)度數(shù)據(jù)包。如果運個TCP流本身有發(fā)送速率,那么 運個調(diào)度包就是一個攜帶了調(diào)度信息頭部的正常的數(shù)據(jù)包。運里調(diào)度信息頭部是用來記錄 調(diào)度相關(guān)信息的。如果運個TCP流本身的發(fā)送速率為0,我們使用一個只有調(diào)度信息頭部但 沒有數(shù)據(jù)的TCP包,把運個包作為調(diào)度數(shù)據(jù)包進行信息交互。類似地,一個調(diào)度ACK是一個梢 帶有調(diào)度頭部的ACK包。
[0144] 發(fā)送端的操作如下所示。
[0145] 當一個新的共流到達網(wǎng)絡(luò)的時候,更新運個共流的初始信息:
[0146] 1.1當接收到共流控制器發(fā)送的化iM,DiM)(i = l,2. ..,1)和(LM,DM)的時候,把運 些值轉(zhuǎn)化為本地信息化iM,DiM)a = l,2. . .,1)和(LM,DM),并更新I和J。
[0147] 1.2把數(shù)組[gi,jS] (i = 1,2,. . . I; j = 1,2,. . .,J)設(shè)置為全0。把P設(shè)為0。
[0148] 步驟1.每過一個RTT,給每個TCP流的接收端,發(fā)送一個調(diào)度包。
[0149] 2.1.獲取共流ID C,本地剩余數(shù)據(jù)量D,流ID j',服務器ID i'。
[0150] 2.2.如果D比Di'S小,更新Di'S并設(shè)置[gi',j'引為1。
[0151] 2.3.對于所有i,如果[gi,j'S]等于1,把化iS,DiS)添加到調(diào)度包頭并設(shè)置[gi,j' S]為0。
[0152] 2.4.如果調(diào)度包頭非空,發(fā)送一個調(diào)度數(shù)據(jù)包給運個流的接收端。
[0153] 步驟2.當收到一個調(diào)度ACK,更新對應共流的本地信息:
[0154] 3.1 獲得共流ID C。
[01W] 3.2把所有關(guān)于化iR,DiR)(上標R表示運個變量是由接收端維護的)的反饋信息放 進集合T中。
[0156] 3.3對于1'中的每對化11?,011〇,如果0巧比015小,設(shè)置015為011?,^1^5]〇' = 1, 2,...,扣為1。
[0157] 步驟3.每隔5,為運個發(fā)送端上的所有共流計算共流層面的優(yōu)先級:
[0158] 4.1從本地共流集合中移除已經(jīng)完成的共流。
[0159] 4.2對于每個共流,根據(jù)運個共流到目前為止是否被服務更新P的值。
[0160] 4.3對于每個共流C,如果P等于0,保持化S,DS)不變并把共流優(yōu)先級設(shè)置為DS;如 果P等于1,設(shè)置DS為DiS(i = 1,2,. . .,I)的最大值,LS為對應的LiS,設(shè)置它的共流優(yōu)先級為 DS。運是P-沈BF的核屯、步驟。
[0161 ] 4.4使用公式(1)來調(diào)整共流C的共流優(yōu)先級。
[0162] 步驟4.把共流優(yōu)先級賦予給所有TCP流。
[0163] 在步驟4.3中,當共流不被網(wǎng)絡(luò)服務的時候(也就是P等于0),發(fā)送端使用被通告的 瓶頸DM作為共流的瓶頸,然后根據(jù)運個值計算共流優(yōu)先級;否則,發(fā)送端根據(jù)部分共流的瓶 頸(DiS的最大值)來計算部分共流優(yōu)先級并把運個優(yōu)先級近似為共流優(yōu)先級。
[0164]
…
[0165] 然而運種基于大小的調(diào)度策略會導致某些大的共流被餓死。所W,為了減輕運個 問題,我們調(diào)整P-SEBF為一個關(guān)于時間的函數(shù)來重新計算共流優(yōu)先級。其中,口是共流的平 均到達間隔。N*是一個經(jīng)驗性的參數(shù),它反映了本共流需要等待多少其他共流。d)是一個可 擴展口限值。通過大量的實驗,我們發(fā)現(xiàn)把N*設(shè)置為5~20,(1)設(shè)置為0.05~0.2可W取得很 好的性能。從(1)中我們可W看到,隨著時間流逝,共流優(yōu)先級會提高,運會有效地縮短大共 流的完成時間。也就是說,我們的共流間調(diào)度策略是不會餓死大共流的。
[0166] 接收端操作:接收端的操作和發(fā)送端很類似。在開始,每個接收端會被通知共流的 初始信息。它便開始維護運些信息。運和發(fā)送端Stepl中的操作是一樣的。當它接收到一個 調(diào)度數(shù)據(jù)包,一個與發(fā)送端step3中類似的操作將會被促發(fā)。然后它便會進入如發(fā)送端 St邱2中類似的本地過程。在運個過程中,它將會發(fā)送一個調(diào)度ACK而不是一個調(diào)度數(shù)據(jù)包。 在運里我們就展示運些操作的細節(jié)。此外接收端沒有step4和Steps。簡而言之,接收端的核 屯、思想是用半分布式的形式,幫助發(fā)送端來收集信息。
[0167] 我們共流內(nèi)調(diào)度策略是一個啟發(fā)式算法,該算法基于W下兩點認識:
[0168] ?-個共流的瓶頸對于共流的完成時間有很強的影響作用。所W,對于同一個共 流中的所有TCP流而言,我們應當優(yōu)先調(diào)度傳播路徑在共流瓶頸上的流。
[0169] ?我們僅僅需要給共流中的所有流分配合適的速率來保證所有流在最慢的那條 流之前完成數(shù)據(jù)傳遞。
[0170] 我們把運個共流內(nèi)調(diào)度策略命名為FP-MDFS。在FP-MDFS中,我們根據(jù)一個流的傳 播路徑是否在它所在共流的瓶頸鏈路上給運個流分配一個內(nèi)部優(yōu)先級。根據(jù)內(nèi)部優(yōu)先級和 共流優(yōu)先級,我們設(shè)計了流優(yōu)先級。具有同樣的流優(yōu)先級的流會被劃分到一個分類中去。此 夕h我們給每個TCP流分配一個期望速率。FP-MD!^試著給TCP流分配一個合適的速率。分配 的運個速率盡量讓比運個流優(yōu)先級更高和一樣的所有流都能夠滿足需求;否則的話,F(xiàn)P-MDFS將會使用平均分配的方式來分配一個合適的速率。
[0171] 為了實現(xiàn)FP-MDFS,我們讓發(fā)送端,交換機和接收端W分布式的形式協(xié)同工作。接 下來,我們介紹所有相關(guān)網(wǎng)元的操作。
[0172] 發(fā)送端操作:每個發(fā)送端為它上的每個TCP流計算一個流的優(yōu)先級和一個期望速 率。流優(yōu)先級被設(shè)計為一個二元組。_111*日'^_111*'日),運里1^_111*日'是共流優(yōu)先級,口_ intra是內(nèi)部優(yōu)先級,也是一個標志位。發(fā)送端查看共流間調(diào)度的本地消息。如果它的傳輸 路徑在運個共流的瓶頸上,把P_intra設(shè)置為0;否則把它設(shè)為1。我們說,當且僅當時,P_ 1]1161'1沖_;[]116'2或者口_;[]1161'1=]^_;[]116'2且]^_;[]1化日1<口_;[]1化日2的時候,。_;[]1161'1,口_ intra2)是一個比(P_inte;r ,P_intra)更高的優(yōu)先級。
[0173] 值得注意的是一個共流的實際完成時間僅僅取決于它當中最慢的TCP流何時完成 數(shù)據(jù)傳遞。也就是說,一個共流的瓶頸最終會決定它的CCT。一個共流期望的完成時間可W 如下得到:
[0174] (?)
[0177]
[0175] 運里R表示服務器的網(wǎng)卡速率。[0176] 根據(jù)運個,我們?yōu)門CP流計算了一個期望的發(fā)送速率:
徵
[017引其中,d是運個TCP流的剩余大小。
[0179] 當發(fā)出一個調(diào)度數(shù)據(jù)包的時候,發(fā)送端會添加八個額外的參數(shù)到運個數(shù)據(jù)包的頭 部。在運八個參數(shù)中,一個為流優(yōu)先級,一個為當前的期望發(fā)送速率,其余六個預留給至多6 個中間交換機來分配速率。運六個參數(shù)被初始化為R。
[0180] 交換機操作:每個交換機把每一個流優(yōu)先級映射為一個類。它為每個輸出端口中 的每個類維護四個變量。它們分別是Clas s_id ,Demand ,Alloc ,Fl ow_num。運里Demand表不 運個類中所有流總的期望速率,Alloc表示為運些流分配的總的速率,F(xiàn)low_num是流的數(shù) 目。
[0181 ]交換機工作在如下幾個步驟:
[0182] 步驟1.當收到一個調(diào)度包,更新本地信息并分配一個合適的速率給運個TCP流:
[0183] 1.1獲取速率相關(guān)的參數(shù)和流優(yōu)先級。獲得運個流的Class_id。
[0184] 1.2把運屯個關(guān)于速率的參數(shù)的最小值當成運個流的期望速率。更新Demand和 Flow_num〇
[0185] 1.3通過累加所有具有更高優(yōu)先級類的的Alloc來計算tot_alloc。用輸出鏈路容 量減去 tot_al Ioc 得到 avai l_band。
[Om] 1.4如果avail_bancl比0小,分配0給運個流;如果比Demand大,分配它期望的速率; 否則分1
合運個流。
[0187] 1.5更新Alloc。添加分配的速率到調(diào)度包的包頭,并把調(diào)度包向下一跳轉(zhuǎn)發(fā)。
[0188] 步驟2.當接收到一個ACK調(diào)度包的時候,更新本地信息。
[0189] 2.1.獲取所有速率相關(guān)的參數(shù)和流優(yōu)先級。獲得TCP流的Class_id。
[0190] 2.2.把給運個流分配的速率設(shè)置為運屯個速率相關(guān)參數(shù)的最小值,并更新Alloc。 然后把運個數(shù)據(jù)包向下一跳傳遞。
[0191] 接收端操作:當接收到一個調(diào)度包的時候,接收端取出包頭的八個參數(shù),把運八個 參數(shù)添加到調(diào)度ACK的頭部,并發(fā)出ACK。
[0192] 下面討論下我們調(diào)度算法的系統(tǒng)開銷。
[0193] 根據(jù)W上設(shè)計,一個調(diào)度頭部最多包含18~78字節(jié)。對于共流間調(diào)度策略,我們使 用1字節(jié)來確定有多少對化iS,DiS)或化iR,DiR)需要被傳輸,并且我們讓運個固定在范圍0 到20之間。一對的化S,DS)占用3個字節(jié)。也就是說,我們使用1~61字節(jié)來編碼共流間調(diào)度 相關(guān)的參數(shù)。對于共流內(nèi)調(diào)度,我們使用17字節(jié)進行編碼。我們把流優(yōu)先級設(shè)置為2字節(jié)。我 們把速率相關(guān)的參數(shù)也編碼為2字節(jié)。此外,我們需要一個額外的字節(jié)來保持交換機的編 號一一當每個交換機傳遞完調(diào)度包/ACK到下一跳的時候把它加1。
[0194] 通告包的頭部需要1~64字節(jié)的額外開銷。運是由于除去化iM,DiM)需要的1~61 字節(jié),共流控制器需要傳遞一對(LM,DM)給共流的所有發(fā)送端。
[0195] 總的來說,調(diào)度包、調(diào)度ACK和通告包平均需要48,48,33個額外的字節(jié)。運個開銷 比其他的分布式方法如Baraat和D-CAS要高一點。運兩類方法只需要20~30字節(jié)的額外開 銷。但是它卻比集中式方法如化rys低很多?;痳ys中需要大量額外的TCP流來進行調(diào)度。
[0196] 對于共流間調(diào)度,在共流傳遞的開始,共流控制器向服務器傳播消息運一過程會 產(chǎn)生2~3個RlT的調(diào)度時延。其中1~2個RlT用來建立TCP連接。緊接著,根據(jù)前面的分析,連 通圖內(nèi)的消息傳播需要大概幾個RTT(往往小于10個)。對于共流內(nèi)調(diào)度,調(diào)度時延是1~2個 RTT。
[0197] 總的來說,系統(tǒng)總的調(diào)度時延最多為15個RTT。運個值通常比1毫秒要小,運比起 化rys的30ms要小很多。
[0198] 綜上所述,1、本發(fā)明所提出的CGM-PS是一種半分布式的調(diào)度方法,它既克服了集 中式方法系統(tǒng)開銷大的缺點,也能很好的解決分布式方法性能較差的問題;
[0199] 2XGM-PS具有搶占性,非餓死,工作保持等特點,運些特點都能優(yōu)化共流的CCT性 能;
[0200] 3、CGM-PS的共流間調(diào)度算法P-SEBF基于部分共流運一新的概念,W半分布式的形 式近似地實現(xiàn)了集中式方法才能達到的最優(yōu)調(diào)度策略;
[0201 ] 4、CGM-PS的共流內(nèi)調(diào)度算法FP-MDFS創(chuàng)新性地提出了共流中不同流不同優(yōu)先級的 思想,并讓網(wǎng)絡(luò)中交換機協(xié)同給每個流分配最合理的發(fā)送速率,運對于CCT的性能優(yōu)化有著 重要的作用。
[0202] 5XGM-PS在不同的網(wǎng)絡(luò)規(guī)模、網(wǎng)絡(luò)負載和共流數(shù)量的情況下,它的CCT性能都優(yōu)于 其他對比方法。
[0203] 圖3和圖4分別示出了在網(wǎng)絡(luò)規(guī)模變化時本申請?zhí)岢龅腃GM-PS與現(xiàn)有技術(shù)中的D-CAS ,Baraat,化巧S和最普通的基于流的CCT性能的對比圖;
[0204] 參照圖3和圖4可知,為了驗證本方法的具體效果,本發(fā)明使用基于trace的仿真器 來驗證CGM-PS的性能。其中,本發(fā)明對比了D-CAS,Baraat,Varys和最普通的基于流的公平 性方法。
[0205] 設(shè)置:本發(fā)明根據(jù)共流的寬度和長度把所有的共流劃分為四個類型:窄短型,窄長 型,寬短型,寬長型。本發(fā)明認為一個共流包含低于50條流的時候,它被當成窄的。本發(fā)明把 共流的長度的上限設(shè)置為1000MB。一個共流被認為是短的當且僅當它的長度小于10MB。每 類共流的占比情況如下:52% ,16% ,15%和17%。
[0206] 所有共流的到達時間服務滿足參數(shù)的A泊松分布。本發(fā)明設(shè)置 其中 avg化是平均的網(wǎng)絡(luò)負載,C是網(wǎng)絡(luò)容量,avgCS表示平均的共流大小。通過調(diào)整平均網(wǎng)絡(luò)負 載avg化,本發(fā)明可W模擬不同的到達速率。
[0207] 在本發(fā)明的仿真中,拓撲被抽象為了一個連接所有服務器的非阻塞交換機模型。 本發(fā)明僅僅關(guān)注服務器到交換機之間的接入鏈路。接入鏈路帶寬被設(shè)置為IGbps。
[020引參數(shù)設(shè)置:在CGM-PS中,本發(fā)明設(shè)置5為100ms,d)為0.1,N*為10。對于D-CAS,我們 設(shè)置T為13,6為1001113,*11'631101(1¥01皿6為謹8。對于8曰^曰*,本發(fā)明設(shè)置它的大流識別的上 限為80th百分比的共流大小。在化rys中,本發(fā)明設(shè)置T為Is,S為100ms。對于每組參數(shù),本發(fā) 明做了 10次仿真,去掉最大值和最小值后再對剩余值取平均。
[0209]在本部分,本發(fā)明把共流的大小固定為200,平均網(wǎng)絡(luò)負載設(shè)置為1。通過改變集群 中服務器的數(shù)量,本發(fā)明探究集群/網(wǎng)絡(luò)規(guī)模對CCT的影響。由圖3和圖4可W看到,無論是平 均值還是90th百分比,CGM-PS都可W取得最小的CCT。同時,隨著網(wǎng)絡(luò)規(guī)模的提高,CGM-PS的 曲線都先增加到某個點然后再下降。運是由于當網(wǎng)絡(luò)規(guī)模變得足夠大的時候,網(wǎng)絡(luò)中會有 足夠的冗余鏈路,運會加速共流的傳輸。
[0210] 圖5和圖6分別示出了在網(wǎng)絡(luò)負載變化時本申請?zhí)岢龅腃GM-PS與現(xiàn)有技術(shù)中的D-CAS ,Baraat,化巧S和最普通的基于流的CCT性能的對比圖;
[0211] 在本部分,共流數(shù)量被固定為200,集群中服務器的數(shù)量被設(shè)置為50。本發(fā)明讓網(wǎng) 絡(luò)負載從0.5增長到2.5。仿真結(jié)果表明,對于所有的調(diào)度方法,網(wǎng)絡(luò)負載越大,CCT也會越 大。然而,在所有方法中,CGM斗S仍然能夠取得最小的平均和90 th百分比CCT。
[0212] 圖5和圖6分別示出了在共流數(shù)量變化時本申請?zhí)岢龅腃GM-PS與現(xiàn)有技術(shù)中的D-CAS ,Baraat,化巧S和最普通的基于流的CCT性能的對比圖;
[0213] 在本部分,本發(fā)明設(shè)置集群中服務器的數(shù)量為50,平均網(wǎng)絡(luò)負載為1。本發(fā)明把共 流數(shù)量從50增長到400來考察共流數(shù)量對CCT性能的影響。由圖5和圖6可知,幾乎所有的曲 線都會隨著共流數(shù)量增加而增長。運是由于共流數(shù)量的增加會減少平均的可用網(wǎng)絡(luò)帶寬資 源。然而,CGM-PS的平均和90th百分比的曲線都只是輕微的增長并且它們的曲線始終都在 其他方法的曲線的下面。運意味著本發(fā)明的CGM-PS方法在共流數(shù)量改變的情況下性能很好 很穩(wěn)定。
[0214] 對于方法實施方式,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng) 域技術(shù)人員應該知悉,本發(fā)明實施方式并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明 實施方式,某些步驟可W采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應該知悉, 說明書中所描述的實施方式均屬于優(yōu)選實施方式,所設(shè)及的動作并不一定是本發(fā)明實施方 式所必須的。
[0215] 圖9為本發(fā)明一實施例提供的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度裝置的結(jié)構(gòu)示意圖, 參照圖9,該裝置包括:
[0216] 第一接收模塊910,用于接收至少一個待調(diào)度共流的初始信息;
[0217] 第一處理模塊920,用于根據(jù)所述初始信息生成每個待調(diào)度共流的初始優(yōu)先級,并 向所述待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包;
[0218] 第二處理模塊930,用于在檢測到所述待調(diào)度共流被服務且接收到所述接收端反 饋的調(diào)度AC即寸,根據(jù)所述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先 級,所述第一剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量;
[0219] 第S處理模塊940,用于根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度 共流的每個TCP流的內(nèi)部優(yōu)先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的 所述TCP流的數(shù)據(jù)量;
[0220] 第四處理模塊950,用于根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流 的數(shù)據(jù)量生成每個TCP流的期望速率;
[0221] 發(fā)送模塊960,用于通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所 述期望速率發(fā)送至交換機;
[0222] 第二接收模塊970,用于接收端反饋的調(diào)度ACK,并根據(jù)所述調(diào)度ACK中攜帶的交換 機分配的速率對每個TCP流進行調(diào)度。
[0223] 本發(fā)明提出的數(shù)據(jù)中屯、網(wǎng)絡(luò)中TCP共流的調(diào)度方法,通過采集發(fā)送端剩余的TCP流 總的數(shù)據(jù)量和每個TCP流的數(shù)據(jù)量,W實現(xiàn)共流間調(diào)度和共流內(nèi)調(diào)度的協(xié)調(diào)工作,能有效的 減少CCT、降低系統(tǒng)開銷。
[0224] 本實施例中,第二處理模塊930具體用于根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端 關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值;
[0225] 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu) 先級;
[0226]
公式一
[0227] 其中,priority為共流優(yōu)先級,DS為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的 最大值,4為可擴展口限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的 時間點至當前時間點的時間長度。
[0228] 本實施例中,第四處理模塊950,具體用于根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端 關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值;
[0229] 根據(jù)公式二和公式=,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的 期望速率;
[0232] 其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率, desirecLrate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量,
[0230]
[0231]
對硬件設(shè)備的影響系數(shù)。
[0233] 雖然結(jié)合附圖描述了本發(fā)明的實施方式,但是本領(lǐng)域技術(shù)人員可W在不脫離本發(fā) 明的精神和范圍的情況下做出各種修改和變型,運樣的修改和變型均落入由所附權(quán)利要求 所限定的范圍之內(nèi)。
【主權(quán)項】
1. 一種數(shù)據(jù)中心網(wǎng)絡(luò)中TCP共流的調(diào)度方法,其特征在于,包括: 共流控制器將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端; 被通告發(fā)送端在接收到所述初始信息時,根據(jù)所述初始信息生成每個待調(diào)度共流的初 始優(yōu)先級,并向所述待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包; 在檢測到所述待調(diào)度共流被服務且接收到所述接收端反饋的調(diào)度ACK時,根據(jù)所述調(diào) 度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級,所述第一剩余數(shù)據(jù)為與 所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量; 根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度共流的每個TCP流的內(nèi)部優(yōu) 先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的所述TCP流的數(shù)據(jù)量; 根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的 期望速率; 通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率發(fā)送至交換 機; 交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配,并通過接收端的調(diào)度ACK將分 配的速率發(fā)送至所述發(fā)送端,以使所述發(fā)送端根據(jù)交換機分配的速率對TCP流進行調(diào)度。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述初始信息包括:初始瓶頸; 所述初始瓶頸包括:所有發(fā)送端的初始剩余TCP流量中的最大值; 相應地,所述根據(jù)所述初始信息生成每個待調(diào)度共流的初始優(yōu)先級的步驟具體包括: 根據(jù)所述最大的初始剩余TCP流量生成每個待調(diào)度共流的初始優(yōu)先級。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述初始信息還包括:初始流量信息; 相應地,所述將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端的步驟具體包 括: 將所述初始瓶頸發(fā)送至所有發(fā)送端; 向每個發(fā)送端發(fā)送與所述發(fā)送端存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息; 或,向每個接收端發(fā)送與所述接收端存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息; 其中,所述節(jié)點為發(fā)送端或者接收端。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述將至少一個待調(diào)度共流的初始信息 通告至發(fā)送端和接收端的步驟之前,該方法還包括: 共流控制器從第一記錄表中獲取每個節(jié)點與其余節(jié)點的關(guān)聯(lián)關(guān)系,以及每個節(jié)點的 ID; 相應地,所述將至少一個待調(diào)度共流的初始信息通告至發(fā)送端和接收端的步驟具體包 括: 根據(jù)所述關(guān)聯(lián)關(guān)系,向每個節(jié)點發(fā)送與該節(jié)點存在關(guān)聯(lián)關(guān)系的節(jié)點的初始流量信息。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述調(diào)度ACK中攜帶的第一剩余 數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級的步驟具體包括: 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值; 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu)先級;其中,priority為共流優(yōu)先級,DS為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值,Φ為可擴展門限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的時間 點至當前時間點的時間長度。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述第一剩余數(shù)據(jù)量和該發(fā)送端 剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的期望速率的步驟具體包括: 根據(jù)所述第一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值; 根據(jù)公式二和公式三,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的期望 速率;其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率,desirecL rate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量 硬件設(shè)備的影響系數(shù)。7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述交換機對所述第二調(diào)度數(shù)據(jù)包中的 TCP流進行速率分配的步驟之前,該方法還包括: 交換機獲取所述第二調(diào)度數(shù)據(jù)包中每個TCP流的共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述 期望速率,并根據(jù)共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望速率獲取所述TCP流的ID; 相應地,所述交換機對所述第二調(diào)度數(shù)據(jù)包中的TCP流進行速率分配的步驟具體包括: 在所述第二調(diào)度數(shù)據(jù)包從發(fā)送端傳遞至對應接收端的過程中,沿途的交換機依次對所 述TCP流進行分配速率; 并在接收到接收端發(fā)送的調(diào)度ACK后,獲取所述TCP流的ID,并將根據(jù)所述ID將分配給 所述TCP流的速率置為沿途交換機分配的速率中的最小值。8. -種數(shù)據(jù)中心網(wǎng)絡(luò)中TCP共流的調(diào)度裝置,其特征在于,包括: 第一接收模塊,用于接收至少一個待調(diào)度共流的初始信息; 第一處理模塊,用于根據(jù)所述初始信息生成每個待調(diào)度共流的初始優(yōu)先級,并向所述 待調(diào)度共流的每個TCP流對應的接收端發(fā)送第一調(diào)度數(shù)據(jù)包; 第二處理模塊,用于在檢測到所述待調(diào)度共流被服務且接收到所述接收端反饋的調(diào)度 ACK時,根據(jù)所述調(diào)度ACK中攜帶的第一剩余數(shù)據(jù)生成所述待調(diào)度共流的共流優(yōu)先級,所述 第一剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量; 第三處理模塊,用于根據(jù)所述調(diào)度ACK中攜帶的第二剩余數(shù)據(jù)生成所述待調(diào)度共流的 每個TCP流的內(nèi)部優(yōu)先級,所述第二剩余數(shù)據(jù)為與所述發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的所述TCP 流的數(shù)據(jù)量; 第四處理模塊,用于根據(jù)所述第一剩余數(shù)據(jù)量和所述發(fā)送端剩余的每個TCP流的數(shù)據(jù) 量生成每個TCP流的期望速率; 發(fā)送模塊,用于通過第二調(diào)度數(shù)據(jù)包將所述共流優(yōu)先級、所述內(nèi)部優(yōu)先級和所述期望 速率發(fā)送至交換機; 第二接收模塊,用于接收端反饋的調(diào)度ACK,并根據(jù)所述調(diào)度ACK中攜帶的交換機分配 的速率對每個TCP流進行調(diào)度。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第二處理模塊,具體用于根據(jù)所述第 一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值; 根據(jù)公式一,結(jié)合所述剩余的TCP流量中的最大值生成所述待調(diào)度共流的共流優(yōu)先級;其中,priority為共流優(yōu)先級,DS為與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大 值,Φ為可擴展門限值,N*為經(jīng)驗性的參數(shù),passTime為所述待調(diào)度共流從到達網(wǎng)絡(luò)的時間 點至當前時間點的時間長度。10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第四處理模塊,具體用于根據(jù)所述第 一剩余數(shù)據(jù)獲取與該發(fā)送端關(guān)聯(lián)的發(fā)送端剩余的TCP流量中的最大值; 根據(jù)公式二和公式三,結(jié)合該發(fā)送端剩余的每個TCP流的數(shù)據(jù)量生成每個TCP流的期望 速率;其中,desirecLCCT為所述待調(diào)度共流的完成時間,R為服務器的網(wǎng)卡速率,desirecL rate為每個TCP流的剩余流量,d為該發(fā)送端剩余的一個TCP流的數(shù)據(jù)量 硬件設(shè)備的影響系數(shù)。
【文檔編號】H04L12/851GK105827545SQ201610251502
【公開日】2016年8月3日
【申請日】2016年4月21日
【發(fā)明人】張舒黎, 張棪, 孫繼燕, 曹玖玥, 陳鑫
【申請人】中國科學院信息工程研究所