1. 程式人生 > >虛電路和資料報的區別以及應用

虛電路和資料報的區別以及應用

TCP的特性就是面向連線的,是可靠傳輸,可以差錯控制和流量控制,TCP的資料傳送是建立在虛電路的基礎上的。

為面向連線的會話建立的通訊通道自然是邏輯的,常被稱作虛電路(virtual circuit),它關心的是端點。與在網路上尋求一條實際的物理路徑相比,這條通道更關心的是保持兩個端點的聯絡。在有多條到達目的地路徑的網路中,物理路徑在會話期間隨著資料模式的改變而改變,但是端點(和中間節點)一直保持對路徑進行跟蹤, 
******************************************


虛電路,應該是指“意”的虛。就是存在那麼一條電路,邏輯上好象是固定的存在的,但事實它是隨著會話的不同而使用不同的路徑。

也就是說沒有一條固定的路徑。它是在通訊過程中靈活地變動的。具體使用哪條路徑以及如何操作,通過三次握手來進行建立。在發握手訊號的過程中,知道了傳送方與接收方,然後建立一條路徑。這條路徑是一條邏輯上的電路。以後的傳輸就由此來進行。

面向連線的會話的建立過程如下: 
  1.源應用程式請求一個面向連線的通訊會話。 
  2.建立會話(需要一段時間,是選用無連線的協議的一個原因)。 
  3.在邏輯連線上開始資料傳輸。 
  4.傳輸結束時,通道解除連線。

---------------------------------------------------------------------

虛電路服務和資料報服務的區別可由下表歸納:

對比的方面

虛電路

資料報

連線的建立

必須有

不要

目的站地址

僅在連線建立階段使用,每個分組使用短的虛電路號

每個分組都有目的站的全地址

路由選擇

在虛電路連線建立時進行,所有分組均按同一路由

每個分組獨立選擇路由

當路由器出故障

所有通過了出故障的路由器的虛電路均不能工作

出故障的路由器可能會丟失分組,一些路由可能會發生變化 

分組的順序 

總是按傳送順序到達目的站

到達目的站時可能不按傳送順序 

端到端的差錯處理

由通訊子網負責 

由主機負責 

端到端的流量控制 

由通訊子網負責 

由主機負責 

從佔用通訊子網資源方面看:虛電路服務將佔用結點交換機的儲存空間,而資料報服務對每個 其完整的目標地址獨立選徑,如果傳送大量短的分組,資料頭部分遠大於資料部分,則會浪費頻寬。

從時間開銷方面看:虛電路服務有建立連線的時間開銷,對傳送小量的短分組,顯得很浪費;而資料報服務決定分組的去向過程很複雜,對每個分組都有分析時間的開銷。

從擁塞避免方面看:虛電路服務因連線起來的資源可以預留下來,一旦分組到達,所需的頻寬和結點交換機的容量便已具有,因此有一些避免擁塞的優勢。而資料報服務則很困難。

從健壯性方面看:通訊線路的故障對虛電路服務是致命的因素,但對資料報服務則容易通過調整路由得到補償。因此虛電路服務更脆弱。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

計算機網路基礎教程

4.1 虛電路和資料報

端點之間的通訊是依靠通訊子網中的節點間的通訊來實現的,在OSI模型中,網路層是網路節點中的最高層,所以網路層將體現通訊子網向端系統所提供的網路服務。在分組交換中,通訊子網向端系統提供的虛電路和資料報兩種網路服務,而通訊子網內部的操作方式也有虛電路和資料報兩種。

一、通訊子網的虛電路操作方式及網路層提供的虛電路服務

1、虛電路操作方式

   為了進行資料的傳輸,網路的源節點和目的節點之間先要建立一條邏輯通路,因為這條邏輯電路不是專用的,所以稱之為“虛”電路。每個節點到其它任一節點之間可能有若干條虛電路支援特定的兩個端系統之間的資料傳輸,兩個端系統之間也可以有多條虛電路為不同的程序服務。這些虛電路的實際路徑可能相同,也可能不同。
   假設有兩條虛電路經過某節點,當一個數據分組到達時,該節點可利用下述方法判明該分組屬於哪條虛電路,並且能將其轉送至下一正確節點。一個端系統每次在建立虛電路時,選擇一個未被使用的虛電路號分配給該虛電路,以便區別於本系統中的其它虛電路。在每個被傳送的資料分組上不僅要有分組號、檢驗和等控制資訊,還要有它要通過的虛電路的號碼,以區別於其它虛電路的資料分組。在每個節點上都儲存一張虛電路表,表中各項記錄了一個開啟的虛電路的資訊,包括虛電路號、前一個節點、下一個節點等資訊,這些資訊是在虛電路建立過程中被確定的。
   上述採用固定虛電路號的虛電路表法存在著缺陷,因為各個端系統各自獨立地選取虛電路號,就有可能造成虛電路號的重複,如果兩條編號相同的虛電路經過同一個節點,便會產生畸義。解決的方法是採用“動態”的虛電路號。
   “動態”的虛電路號。是指各節點對同一條虛電路,根據本節點的實際情況給予可能不同的編號,與之對應的各節點的虛電路表也是在呼叫請求過程中建立的。
   在建立虛電路的同時,每個節點的虛電路表中的每一項要記錄兩個虛電路號:前一個節點所選取的虛電路號和本節點所選取的虛電路號。這樣一來,每條虛電路就有了唯一的一套虛電路編號。
   由於虛電路上的資料是雙向傳輸的,為保證兩節點之間正、反兩個方向的虛電路不相混淆,在一個節點選取虛電路號來替換其前一節點使用的虛電路號時,不僅要考慮以下一節點之間的虛電路號不相同,還要考慮以下一節點作為另一條反向虛電路的上一節點時所選取的虛電路號相區別。

2.虛電路服務

    虛電路服務是網路層向運輸層提供的一種使所有分組按順序到達目的端系統的可靠的資料傳送方式。進行資料交換的兩個端系統之間存在著一條為它們服務的虛電路。
    為了建立端系統之間的虛電路,源端系統的運輸層首先向網路層發出連線請求,網路層則通過虛電路網路訪問協議向網路節點發出呼叫分組;在目的端,網路節點向端系統的網路層傳送呼叫分組,網路層再向運輸層發出連線指示:最後,接收方運輸層向發起方發回連線響應從而使虛電路建立起來。以後,兩個端系統之間就可傳送資料,資料由網路層拆成若干個分組送給通訊子網,由通訊子網將分組傳送到資料接收方。
    上述虛電路的服務是網路層向運輸層提供的服務,也是通訊子網向端系統提供的網路業務。但是,提供這種虛電路服務的通訊子網內部的實際操作既可以是虛電路方式的,也可以是資料報方式的。以虛電路方式操作的網路,一般總是提供虛電路服務,OSI中面向連線的網路服務就是虛電路服務。在虛電路操作方式中,端系統的網路層同通訊子網節點的操作是一致的,SNA、TRANSPAC等多數公共網路都採用這種虛電路操作支援虛電路服務的方式。
    以資料報方式操作的網路,也可以提供虛電路服務,即通訊子網內部節點按資料報方式交換資料,而與端系統相連的網路節點則向端系統提供虛電路服務。對於端系統來說,它的網路層與網路節點間的通訊仍象虛電路操作方式的網路節點間情形一樣,先建立虛電路,再交換資料分組,最後拆除電路。但實際上,每個分組被網路節點分成若干個資料報,附加上地址、序號、虛電路號等資訊,分送到目的節點。目的節點再將資料報進行排序,拼成原來的分組,送給目的端系統;因此,源端系統和源網路節點之間。目的節點和目的端系統之間的網路層按虛電路操作方式交換分組,而目的節點和源節點之間則按資料報方式完成分組的交換。儘管通訊子網的雙據掀交換不是很可靠,但是兩端的網路節點做了許多諸如徘序、重發等額外工作,從而滿足了虛電路服務的要求。例如,在ARPANET中,內部使用資料報交換方式,但可以向端系統提供資料報和虛電路兩種服務。

二、通訊子網的資料報操作方式及網路層提供的資料報服務

1、資料報操作方式

    在資料報方式中,每個分組被稱為一個數據報。若干個資料報構成一次要傳送的報文或資料塊。每個資料報自身攜帶有足夠的資訊。它的傳送是被單獨處理的。一個節點接收到一個數據報後,根據資料報中的地址資訊和節點所儲存的路由資訊,找出一個合適的出路,把資料報原樣地傳送到下一個節點。
    當端系統要發迭一個報文時,將報文拆成若干個帶有序號和地址資訊的資料報,依次發給網路節點。此後,各個資料報所走的路徑就可能不同了,因為各個節點在隨時根據網路的流量、故障等情況選擇路由。由於各行其道,各資料報不能保證按順序到達目的節點,有些資料報甚至還可能在途中丟失。在整個傳送過程中,不必建立虛電路,但要為每個資料報作路由選擇。

2.資料報服務

    資料報服務一般僅由資料報交換網來提供。端系統的網路層同網路節點中的網路層之間,一致地按照資料報操作方式交換資料。當端系統要傳送資料時,網路層給該資料附加上地址、序號等資訊,作為資料報傳送給網路節點;目的端系統收到的資料報可能是不按序到達的,也可能有資料報的丟失。資料報服務與OSI的無連線網路服務類似。
    由虛電路交換網提供資料報服務的組合方式並不常見。可以想象有這麼一種特殊情況:
一個端系統的網路層已經構造好了用於處理資料報的服務,而當它要摻入以虛電路方式操作的網路時,網路節點就需要做一些轉換工作。當端系統向網路節點發送一個攜帶有完整地址資訊的資料報時,若發向同一地址的資料報數量足夠大,則網路節點可以為這些資料報同目的節點問建立一條虛電路,所有相同地址的資料報均在這條虛電路上傳送。等一段時間後,當沒有這類相同的地址的資料報要傳送時,這條虛電路便可拆除。所以,這種資料報服務具有了虛電路服務的通訊質量,但是既不經濟,效率也低。

三、兩種操作方式及兩種網路服務的特點

1、兩種操作方式的特點
    虛電路分組交換適用於端系統之間長時間的資料交換,尤其是在頻繁的,但每次傳送資料又很短的互動式會話情況下,免去了每個分組中地址資訊的額外開銷,但是每個網路節點卻需要負擔維持虛電路表的開銷。因此,要將這兩個因素進行權衡,另外還要考慮如果建立和拆除電路的次數過於頻繁也不合適。
    資料報免去了呼叫建立過程,在分組傳輸數量不多的情況下要比虛電路簡單靈活。每個資料報可以臨時根據網路中的流量情況選取不太擁擠的鏈路,不象虛電路中的每個分組必須按照連線建立時的路徑傳送。每個節點沒有額外開銷,但每個分組在每個節點都要經過路由選擇處理,會影響傳送速度。
    虛電路提供了可靠的通訊功能,能保證每個分組的正確到達,且分組保持原來順序。另外,還可以對兩個資料端點的流量進行控制,當接收方來不及接收資料時,可以通知傳送方暫緩傳送分組,但虛電路有一個致命的弱點,即當某個節點或某條鏈路出故障而徹底失效時,則所有經過該節點或該鏈路的虛電路將遭到破壞。而在資料報方式中,這種故障的影響面要小得多,當發生上述故障時,僅有快取在該節點上的分組可能丟失,其它分組則可繞開故障區到達目的地,或者一直被擱置到故障修復後再傳送。不過,資料報不保證資料分組的按序到達,資料的丟失也不會立即被發現。

2、兩種網路服務的特點
    虛電路服務與資料報服務的本質差別表現為:是將順序控制、差錯控制和流量控制等通訊功能交由通訊子網完成,還是由端系統自己來完成。
    虛電路服務向端系統保證了資料的按序到達,免去了端系統在順序控制上的開銷。但是,當端系統本身並不關心資料的順序時,這項功能便成了多餘,反倒影響了無序資料交換的整體效率。
    虛電路服務向端系統提供了無差錯的資料傳送,但是,在端系統只要求快速的資料傳送,而不在乎個別資料塊丟失的情況下,虛電路服務所提供的差錯控制也就並不很必要了。相反,有的端系統卻要求很高的資料傳送質量,虛電路服務所提供的差錯控制還不能滿足要求,端系統仍需要自己來進行更嚴格的差錯控制,此時虛電路服務所做的工作又略嫌多餘。不過,這種情況下,虛電路服務畢竟在一定程度上為端系統分擔了一部分工作,為降低差錯概率還是起了一定作用。
    至於虛電路服務所提供的流量控制,有時對端系統來說也並不適宜,比如在要求資料交換速率儘可能高的情況下。因為,虛電路服務將資料總是按固定路徑傳送,而不靈活地走捷徑;另外,流量控制本身就很可能規定了交換速率的上限。
    虛電路服務提供了可靠的資料傳送和方便的進網介面。但是,虛電路服務中電路的建立與拆除在互動式應用中會影響通訊效率。
    以上主要對虛電路服務的優、缺點作了分析,資料報服務的優、缺點基本與之相補。
可以看出,兩種服務優、缺點各自參半,對二者的選擇取決於應用背景,即網路使用者對通訊子網是要求只管資料傳送而不必多管“閒事”,還是希望通訊子網提供更可靠的服務來減輕自身的負擔。有人將虛電路服務比作坐公共汽車,將資料報服務比作坐計程車,這種比喻在某種程度上形象他說明了兩種服務的特點。