1.計劃摘要 近年來由於網路規模的蓬勃發展,衍生了許多的問題。首先IP位址的數量在未來將不敷使用,在這方面,未來將以128 bit的IPv6位址來取代現行32 bit 的IPv4。另外,目前的網際網路架構並未能提供傳輸服務品質(Quality of Services, QoS)保證,對於即時性的語音或視訊資料傳輸,可能無法在要求的時間之內到達目的地,造成服務的品質不佳,故提供服務品質保證是下一代網際網路必須具備的功能,差別式服務網路(Differentiated-Service,
DiffServ)即是針對此因素所提出的網路架構之一,該網路網域裡的路由器會利用封包分類(packet classification)決定選擇相對應的封包傳送方式,進行不同的排程(scheduling)處理,以提供不同服務品質的需求。 本計畫的構思,是針對未來網路的特性(IPv6、DiffServ),先做相關的研究,並在NBEN上架構IPv6網路,利用IPv6的DSCP(DiffServ Code Points)來做DiffServ,以期達到QoS的保證,並寄望未來能實用到一般的網路。 2.計畫之背景及目的 目前的網際網路架構並未提供傳輸服務品質(Quality of Services, QoS)保證,對於即時性的語音或視訊資料傳輸,可能無法在要求的時間之內到達目的地,造成服務的品質不佳。IETF(Internet Engineering Task
Force)組織所提出的差別式服務(Differentiated-Service, Diffserv)網路架構則提供服務品質保證,在差別式網路網域裡的路由器會依照資料需求進行封包分類(Packet Classification)並標記出適當的DSCP(DiffServ Codepoint)值,再依照不同的DSCP值,決定選擇相對應的封包傳送方式並進行不同的排程(Scheduling)處理,以提供不同服務品質的需求。 差別式服務網路區域(DiffServ
Region)是由一群彼此相連的差別式服務網路網域(DiffServ
Domain)所構成的整體網路,網域之間由邊境上的邊界節點(Boundary
Nodes)構成連結,這些邊界節點必須支援差別式服務並且負責資料流的分類、標記、量測與監控等差別式服務的主要工作,位於網域內部的內部(Interior)或核心(Core)節點負責封包的轉送工作,這些內部節點可以由僅支援基本差別式服務功能或是未支援差別式服務的節點來擔任,差別式服務網路的一個設計要點就是由邊境節點來執行大多數的差別式服務功能,使得網域中的內部節點不會因為這些額外的差別式服務功能而影響封包轉送的效能。針對一個由發送端(Source)到目的端(destination)的資料流而言,靠近發送端的差別式服務網域相對於靠近目的端的網域,一為上游網域(Upstream
Domain),另一為下游網域(Downstream
Domain),對一個差別式服務網域而言,靠近上游而進入該網域的邊界節點(Boundary
Node)為入口節點(Ingress
Node),而離開該網域進入下游網域的邊界節點則稱之為出口節點(Egress
Node),若以不同方向的資料流來看,邊界節點可能為一資料流的入口節點,卻也是另一資料流的出口節點。圖1即為一個典型的差別式服務網路架構。 圖1 差別式服務網路架構圖 網際網路上的所有通訊協定與服務目前幾乎都是採用IP封包的服務,為了提供適當的差別式服務品質,IETF組織定義了新版的IPv6 (Internet Protocol, version
6),基於擴充性的考量,該組織分別就IPv4與IPv6的封包標頭重新定義差別式服務欄位:在IPv4封包標頭中八個位元大小的服務型態欄位(Type of Services, TOS)用來分辨各種服務型態,差別式服務定義這八個位元為差別式服務欄位(DiffServ Field),如圖2所示,其中六個位元作為DSCP值,另外兩個位元則未定義使用(Currently Unused, CU);IPv6的封包標頭則定義在資料類別(Traffic Class)欄位,如圖3所示,所有位元的定義與IPv4相同。由於TOS與Traffic Class這兩個欄位都可以用來區分不同資料流或不同服務的封包資料,因此在未支援差別式服務的網路節點上,並不會因為這些欄位的改變而影響了封包的正常轉送與路由選擇,因此對原有的IP網路仍提供了相容性。 圖2差別式服務欄位(IPv4)示意圖 圖3差別式服務欄位(IPv6)示意圖 每一個差別式服務欄位中的DSCP都對應了一個單一跳躍行為(Per-Hop Behavior, PHB),因此支援差別式服務的節點上都必須存在一個映對表格(Mapping Table),用以記錄DSCP以及相對應的PHB提供節點判別接收到封包標頭,決定封包屬於哪個PHB以提供相對的服務品質;該表格的內容即是描述不同資料流特性與其行為(action)所形成的集合,一般也將表格中每一個Entry稱之為一個政策(Policy)。目前IFTF組織已經確定了三種PHB,分別是快速式轉送(Expedited Forwarding, EF) PHB、保證式轉送(Assured Forwarding, AF) PHB
Group與預設式轉送(Default Forwarding, DF) PHB。 本研究的目的在於實驗一個在IPv6網路上的DiffServ,路由器進行資料流分類時能更有效率的區分不同流量等級,並能分配一適當的DSCP值來進行排程處理,藉而改善目前網際網路上的服務品質,達成更好的傳輸服務品質保證。排程處理的機制需具備動態調整網路上各個佇列的資源分配,使其能根據當時網路狀況而有效提昇網路的使用率(Utilization)與輸出率(Throughput)。 3.計畫之內容與說明 本計畫著重在IPv6上實作DiffServ和設計Linux PC Router對不同資料流的排程。IPv6方面,我們將根據IPv6 Header中8-bit Traffic Class的DSCP值(如圖3),給予不同的排程處理;而Router設計方面,因為Linux在2.4.X的核心版本中都有支援IPv6,只要在編譯核心時,將IPv6的相關選項Enable,即可支援IPv6,另外再把Network Filter及QoS Queueing的相關選項Enable,我們就擁有Classifier、Filter及QoS Queueing來設計一個在Linux平台上執行IPv6的DiffServ Router,實作出有效率的排程,使得高優先權的Traffic能快速地通過IPv6 Router,低優先權的Traffic也能有一定的傳輸率,不至於有Starvation的情況產生﹔另外我們也利用BAY 5000內建的Priority Queue,來實作IPv6 DiffServ實驗,並與我們設計的Linux-PC IPv6/DiffServ Router比較實驗的結果。 3.1實驗項目 本計畫規劃了兩大類實驗,校內與校外兩部分。每部分又分成兩個實驗,分別以BAY 5000和我們設計的IPv6-based Linux Router,並對其效能做比較。校內部分,規劃了兩個實驗: (1) 以BAY 5000為主的IPv6 DiffServ實驗 BAY 5000是一部具有Priority Queue的Router,其內部有三種Queues,分別是High Queue、Normal Queue、Low Queue三種,每個Queue又是以FIFO(First In, First Out)來做排程,Queue的大小預設值是20,不過可以隨需要而做更改。此外,BAY 5000提供了兩種排程程式,一是Bandwidth Allocation Algorithm,另一是Strict Dequeueing Algorithm。 Bandwidth Allocation Algorithm的功能,就是對三個Queue分配頻寬百分比,也就是設定各個Queue的Weight,並以設定的頻寬百分比作為傳送的依據,如High Queue=70%、Normal Queue=20%、Low Queue=10%,BAY 5000則會先送High Queue中的封包,再送Normal Queue的封包,最後送Low Queue的封包,佔用頻寬的百分比是7:2:1,而完成一個Round的排程,也就是所謂的WRR(Weighted Round Robin)排程。 另外我們可以選用Strict Dequeueing Algorithm,該Algorithm是先將High Queue中的封包丟到Transmit Queue中,等到Latency結束或是Transmit
Queue滿了就送出封包。若是在Latency結束前,High Queue內已經沒有封包,就會把Normal Queue的封包丟到Transmit
Queue內等待傳送,同理若Latency結束前Normal Queue內已經沒有封包,Router就會把Low Queue中的封包丟到Transmit
Queue中,一旦Latency到了或是Transmit Queue已滿,即馬上送出Transmit Queue中的封包,如此反覆地進行排程。缺點就是High
Queue有大量Traffic要傳送時,Normal Queue和Low Queue就會有Starvation的情況產生,必須等到High Queue清空才能傳送。實驗的網路架構圖如圖4,我們在BAY
5000的Ethernet後端架設VoD、Video Conf.及FTP Server,並在電腦通訊網路實驗室IBM 8285的後端擺上各類的Client,利用BAY
5000內部的Priority Queue來進行排程,並利用Domino ATM Analyzer測量Link Rate,以及Client端用Sniffer測量軟體來觀察throughput及其他相關參數。 圖4 以BAY 5000為主的校內實驗網路架構圖 (2) 以Linux-PC作為IPv6/DiffServ Router的實驗 除了利用BAY 5000內建的Priority Queue以外,我們利用Linux-PC,致力於研究新的IPv6排程技術。因為BAY 5000的模組都是接OC-12的光纖模組,不方便以Linux-PC IPv6/DiffServ Router來取代,所以我們把BAY 5000的Priority Queue功能Disable,使其成為一普通的Router,並在BAY 5000的Ethernet後端先接上我們的Linux-PC IPv6/DiffServ Router,Linux-PC後端再接上VoD、Video Conf.及FTP Server﹔同樣地在電腦通訊實驗室擺上各類的Client,此時Traffic一定會通過BAY 5000和Linux Router間的Link,所以Bottleneck必定在此段Link上,然後我們去調整Linux Router上DiffServ的參數值,使其達到我們滿意的結果。並以Domino ATM Analyzer及Client PC用Sniffer軟體來量測Link Rate、Throughtput及相關的參數,網路架構圖如圖5。 圖5 以Linux-PC為主的校內IPv6/DiffServ實驗網路架構圖 校外部分,仍然是分成兩個實驗,一是用BAY 5000來當作IPv6/DiffServ Router,另一則是以Linux-PC為IPv6/DiffServ Router的實驗,並在中山大學DiffServ Router後端架上VoD、Video Conf.及FTP Server。Cilent則設在其他學校BAY 5000的後端,中間透過NBEN的骨幹網路來傳送,並在中山大學Fore 1000 ATM Switch的出口端,用ATM Analyzer來測量Link Rate,以及Client端用Sniffer軟體來測量Throughput及其他相關參數,分別如圖6、圖7所示。 圖6 以BAY 5000為主的校外實驗網路架構圖 圖7 以Linux-PC為主的校外IPv6/DiffServ實驗網路架構圖 當他校的Client連上中山大學的各類Server時,也必定會通過中山BAY 5000和Linux Router之間的Link,也是Bottleneck所在,同樣地我們去調整DiffServ Router的參數,並把結果與單獨使用BAY 5000當DiffServ Router的結果做比較﹔此外並觀察網路架構擴大到校外時,與在校內做DiffServ時,DiffServ Router的參數設定有哪些差別。以便將來具有QoS保證的IPv6應用到一般網路(如TANET),可以提供參考的價值。 3.2配合IPv6/DiffServ實驗的應用程式 (1)VoD 由於目前尚未有IPv6的VoD Server及Client程式,所以我們將使用Windows下的winsocket2自行撰寫支援IPv6的VoD Server與Client程式。 (2)
Video
Conferencing Video
Conferencing我們採用UCL(University College London) Department of Computer Science所研發SDR(session
directory),SDR屬於Mbone tool中的一個,可以在一個功能表中列出現在的有multicast的頻道,以及開始一個我們自己設定的頻道,可以是local、或是global的multicast設定,以及broadcast功能;並搭配Lawrence
Berkeley National laboratory的Network Research Group所研發ViC(Video Conferencing
Tool),用途是將視訊擷取配備所抓取的畫面,經過編碼送出,傳送視訊資料,特點是直接支援了IPv6,並且支援了Windows;再搭配架構在UDP/IP上的RTP程式,用在Audio
Conferencing聲音編碼部分的RAT(Robust Audio Tool),將使用者的語音資料Multicast到Group Member上;最後再搭配Loughborough
University 的Julian Highfield 所撰寫的電子白板(White Board),而形成為一個完整的是訊會議軟體。以上這些軟體都可以在http://www.vcas.video.ja.net/mice/index.html可以下載。 (3)FTP FTP
Server採用Proftpd,這是個Linux平台的IPv6 FTP Server軟體,下載處是http://www.proftpd.org。Client則採用日本曾田純先生撰寫的FFFTP(1.82),這是個Windows平台的IPv6 FTP Clinet程式,我們可以在http://win6.goto.info.waseda.ac.jp/FFFTP/
下載。 |
|