第三章 標頭壓縮之適應性聚集封包機制
3.2. 適應性聚集封包機制
描述本論文所提出之方法。
3.1. 問題描述
在車載無線網路環境中,因為並無 association,導致當 WBSS 使用者移出 了 WBSS 提供者的範圍時,WBSS 提供者無法知道 WBSS 使用者移出此範圍,
因此我們整合了 solicitation-based 在車載無線網路傳輸裡,而 solicitation-based 的方式即是傳輸資料都由 WBSS 使用者所啟動發出請求,所以當車輛如果可以 solicitation-based 的方式去向 RSU 請求資料,那麼我們可以在 sender 端(RSU) 以自然的方式加入聚集封包作為傳輸,此外,當車輛在做 solicitation 的時間時 可配合來做封包聚集,則 receiver 端 solicitation 完成之後再去取得聚集封包。
另外,我們的機制能傳輸一般性的各種應用服務,我們利用標頭壓縮和聚 集多個封包變成一個大封包的概念,能使網路上傳輸的封包量減少自然而然也 能降低封包的碰撞,那麼資料傳輸的效能也就能提高,而且我們考慮了網路上 傳輸的 delay 狀況來聚集封包,因此也能降低 end to end delay。
圖 3-1:動態聚集封包
由於我們希望在車載無線網路環境中為了可以使頻寬更有效率的使用,因 此我們藉由標頭壓縮的技術來達成,如圖 3-1 所示,我們在第一部分也是先做 靜態壓縮,而在第二部分則配合我們提出的適應性聚集封包機制並把重覆的動 態欄位資訊再做壓縮,因此壓縮方式也是採用 2 個部分來執行。
由於在聚集時若只固定聚集 2 個封包,會造成壓縮效益不高且會有一個固 定的 delay 時間在等待形成聚集封包,所以我們基於 solicitation-based 提出適應 性聚集封包演算法來提高壓縮效益,且根據 delay 時間來調整聚集的封包數目。
3.2. 適應性聚集封包機制
適應性聚集封包機制主要可分成 adaptive 與 aggregation 這 2 部分,如圖 3-2 所示,我們先找出合適的聚集封包的大小,再去做聚集的動作,由於我們分為 adaptive 程序和 aggregation 程序,使得在程式撰寫維護上可增加其便利性,
adaptive 程序是找出合適的聚集封包數目,aggregation 程序是做聚集的功能,
delay 是網路的 round trip time (RTT) 時間,threshold 我們假設是 delay 時間 80ms,
QueueingMaxDelay 是我們可自定的在 queue 裡最大等待時間,n 是聚集封包的 數目,我們假設 n 初始值為 1,首先,我們每一個 round 都先量測 RTT 的時間,
再去呼叫 adaptive 程序,在 adaptive 程序裡,當 delay 小於等於門檻值 (threshold) , 則 n=n+1,之後呼叫 aggregation 程序,一旦 n 值越加越大,delay 時間也會越來 正在準備的聚集封包,MTU 是最大傳輸單元,MAX_PACKET_NUM 是 MTU 時 的 封 包 數 目 , aggablesize function 可 計 算 目 前 queue 裡 的 封 包 數 目 , add_by_maxdelay function 可計算超過 QueueingMaxDelay 的封包有哪幾個,一 旦 queue 裡有超過 QueueingMaxDelay 的封包就聚集 n 個封包送出,設置 QueueingMaxDelay 的目的為可避免封包等待聚集的時間過久,我們可根據傳輸 不同的應用選擇不同的 QueueingMaxDelay,例如:若傳輸即時性的應用時,可 設定較低的 QueueingMaxDelay。aggregation 程序一開始若接收到聚集封包數目 時,如果 queue 的大小大於 n,表示 queue 有足夠大小可接收,則將流量裡的封 包放入 n 個到 queue 裡,然後,若 n 大於 MAX_PACKET_NUM 則 n 等於 MAX_PACKET_NUM,避免聚集封包大小超過 MTU,首先先取得 queue 裡可 聚集的封包數目,若可聚集的封包數目大於等於 n,則將 queue 裡的封包聚集起 來並將聚集封包送往目的端,如果 queue 裡可聚集的封包數目小於 n,則搭配 QueueingMaxDelay 判斷有沒有在 queue 裡的時間大於 QueueingMaxDelay 的封
包,若有則將 queue 裡所有的封包聚集直到 MTU size 並將聚集封包送往目的 端。
procedure adaptive(delay, threshold, n) if delay ≦ threshold then end procedure
procedure aggregation(n)
// P:packet being queued at a node;
//A:aggregation packet being prepared;
//MTU:maximum transmission unit;
//MAX_PACKET_NUM:The number of packets MTU;
//num_packets:number of packets;
find queue of P;
if size(queue) > n then
//adding the number of n-packet from flow(P);
num_packets = add_by_maxdelay();
switch(num_packets) end procedure
圖 3-2:適應性聚集封包演算法
利用調整聚集封包數目,我們預期 delay 會控制在一個區間,例如當一直在
門檻值附近作 n+1 或 n-1 時,delay 的時間可能就在門檻值附近達到穩定的狀態,
且由於是適應性的聚集封包大小,所以相較於固定的聚集更能提升壓縮效益。
我們也根據以上的adaptive程序再作進一步的改良,我們提出了5種改良 adaptive程序的方法,以下會一一說明,如圖3-3所示,首先,每一個round都先 量測RTT的時間,再去呼叫adaptive程序,當delay小於等於門檻值 (threshold) , 則n=(n*2),之後呼叫aggregation程序,使得當delay小於等於門檻值,n會呈指數 增加,當delay超過門檻值且n不等於1時,則做n=1,之後呼叫aggregation程序,
相似於slow-start機制可減少聚集的封包數目,則每次一旦delay超過門檻值,聚 集的封包數目就會降成1,下一個round時n則從1緩啟動指數增加。
procedure adaptive(delay, threshold, n) if delay ≦ threshold then end procedure
圖 3-3:slow-start adaptive 程序
如圖 3-4 所示,首先,每一個 round 都先量測 RTT 的時間,再去呼叫 adaptive 程序,當 delay 小於等於門檻值 (threshold) ,則 n=(n*2),之後呼叫 aggregation 程序,使得當 delay 小於等於門檻值,n 會呈指數增加,且當 delay 小於等於門 檻值一半時,用 temp 儲存 n 值,當 delay 超過門檻值且 n 不等於 1 時,則做 n=temp,
之後呼叫 aggregation 程序,相似於 fast-recovery 機制可減少聚集的封包數目,
所以當 delay 超過門檻值,聚集的封包數目會降低到門檻值一半時的 n 值,下 一個 round 時 n 可能繼續指數增加。
procedure adaptive(delay, threshold, n) end procedure
圖 3-4:fast-recovery adaptive 程序
如表 1 所示,由於我們原始的 1.adaptive 程序,n 值屬於線性增加和線性減 少,所以可再將n值延伸變化為 2.指數增加、線性減少 3. 線性增加、指數減少 4. 指數增加、指數減少,以上這 3 種 adaptive 程序的改良和緩啟動 adaptive 程 序及 fast-recovery adaptive 程序,均可能會對網路的情況造成不同的影響,例如:
end to end delay 、封包到達的成功率,我們藉由實驗分析可找出一種較好的方 法,使 end to end delay 降低且封包到達的成功率提升,並且能讓網路情況維持 在一個良好的情況,不會使網路太擁塞導致 packet loss 情況太高。