使用Virtual circuit時,和電路交換網路類似,必須先建立一條電路通道但是,和電路交換網路最大的不同在於,Virtual circuit在建立電路通道時,
只會佔用某條路徑頻寬的一部分,剩餘頻寬部分,仍可提供給其他使用者來使用,並非像電路交換網路是完全佔用通道的
1. Datagram其封包傳遞路徑並非唯一,因此,所經過的各個節點都必須執行傳送路徑選擇的工作。反觀Virtual circuit。其事先就建立好傳送的路徑,因此,各個節點不必都執行路徑選擇的工作。事實上,選擇路徑的工作是很佔時間的,因此,若是要傳送大量資料時,最好採用Virtual circuit的方式
2. 以可靠性而言,若網路上每個節點突然故障,Datagram由逾期傳送路徑不是唯一的,可以另外找路徑來傳送資料,但Virtual circuit則因路徑是固定的,所以可能較易受到影響而無法正常傳送資料。
一條VC(virtual circuit)包括:來源主機到目的主機的路徑、VC編號、路徑上所有router的轉送表項目。
假設主機A請求網路和主機B之間建立一條VC,然後假設網路選擇路徑A-R1-R2-B,VC編號12、22、32給三條連結。當VC的封包離開主機A時,封包標頭VC的編號是12,離開R1時值為22,離開R2時為32。
封包不在沿路上的所有連結都使用相同的VC編號,因為在不同的連結間更換號碼可以減少封包標頭VC欄位的長度,而且讓VC路徑上的每條連結都可以使用不同VC編號,VC的建立過程可以簡化許多。
在VC網路中,router必須維護運作中的連線'狀態資訊(connection state information)。
在VC中有三個階段:
1. VC建立:傳送端的傳輸層會聯繫網路層,指定接收端的位址,並等待網路建立 VC。網路層會決定傳送端到接收端之間的路徑,也會為路徑上所有的連結決定其VC編號,最後在路徑每一台router的轉送表中都加入一筆項目。
2. 資料傳輸:VC建立後,封包便可以開始沿著VC流動
3. VC斷線:網路層會接著通知網路另一端的終端系統終止連線要求,並更新沿路上每台封包router的轉送表,指出該VC已經不存在了。在VC的網路層中,兩台終端系統之間路徑上的所有router都會參與VC的建立,而且每台router都完全知道通過它的VC。
2. Datagram Networks
資料封包網路(datagram network)中,每當終端系統想要送出封包時,就會在封包上標記目的終端系統的位址,然後將封包送入網路。
假設router有四條連結,0~3,封包會用下面方式被轉送給連結介面:
目的端位址範圍 連結介面
11001000 00010111 00010000 00000000
到 0
11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000
到 1
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000
到 2
11001000 00010111 00011111 11111111
其它 3
Router會將封包目的端位址的前置碼(prefix)與表中項目進行比對,如果找到相符的項目,路由器便會將該封包轉送給其對應的連結。如下
前置代碼對應 連結介面
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
其它 3
假設封包的目的端位址為11001000 00010111 00010110 10100001,因此位址前置的21位元與表中的第一項目相符,所以router會將該封包轉送給介面0。如果沒有位址的前置碼相符於前三筆項目中的任一筆,則router會將封轉送給介面3。當有多筆相符的項目時,router會採用最長前置碼相符原則(longest prefix matching rule),它會找到表中最長的相符項目,然後將封包轉送給最長前置碼相符項目所對應的連結介面。
資料來源:http://sls.weco.net/node/10669
沒有留言:
張貼留言