資料傳輸的三種交換方式
電路交換,報文交換,分組交換
首先我們來看看三種交換方式的示意圖
對照上面的圖,給出三種交換方式在資料傳輸階段的主要特點:
- 電路交換:整個報文的位元流連續的從源點直達終點,好像在一個管道中傳送。
- 報文交換:整個報文先傳輸到相鄰的結點,全部儲存下來後查詢轉發表,轉發到下一個結點。
- 分組交換:單個分組(報文的一部分)傳送到相鄰結點,傳送到相鄰結點,儲存下來後查詢轉發表,轉發到下一個結點。
接下來介紹幾種衡量計算機網路效能的指標
- 速率:指的是單位時間傳送的位元數,其單位是 b/s(位元每秒)。一個位元(bit)就是一個二進位制數字中的一個 1 或 0。 注:
位元是計算機中的最小單位,一個位元組(Byte)=8個bit。 1Kb = 1024bit 1KB = 1024Byte 1Mb = 1024 Kb 1MB = 1024KB 所以有 1 Mb = 0.125 MB (1/8 * MB) (注意上面的大小寫)
- 頻寬:在計算機網路中,頻寬用來表示通訊線路的資料傳輸能力,因此網路頻寬指的是在單位時間內從網路中的某一點到另一點所能通過的最高速率(上面的那個,也可以稱為資料率或者位元率)。
時延 時延指的是資料從網路的一端傳送到另一端所需的時間。網路中的時延有一以下幾個不同的部分組成:
傳送時延:主機或者路由器傳送資料幀說需要的時間,由此傳送時延的計算公式為:
傳播時延:電磁波在通道中傳播一定距離需要話費的時間,由此傳播時延的計算公式為: 注意:電磁波在自由空氣中傳輸速率為:3.0 * 10^5 km/s,電磁波在網路傳輸媒體中的傳播速率則相對要低一點:
- 在光纖中的傳播速率大約為:2.0*10^5 km/s
- 在銅線電纜中的傳播速率約為:2.3*10^5 km/s
處理時延:主機或者路由器在接受到分組時候要話費一定的時間進行處理,例如分析分組的首部,從分組中提取資料部分,執行差錯檢驗或者查詢適當的路由等等。
排隊時延:分組在進入路由器後要先在輸入佇列中等待處理。在路由器確定了轉發介面後還需要在輸出佇列中等待轉發,所以就產生了排隊時延。
這樣,資料在網路中經歷的種時延就是以上四種時延之和:
種時延 = 傳送時延 + 傳播時延 + 處理時延 + 排隊時延
時延頻寬積:表示一個鏈路可以容納的最多位元,其計算公式如下:
時延頻寬積 = 傳播時延 * 頻寬
我們用下面的的示意圖來表示時延頻寬積: 鏈路像一條圓柱形的空心管道,管道的長度來表示鏈路的傳播時延,而管道的橫截面積表示頻寬,所以時延頻寬積就是表示這個管道的體積,表示這樣的鏈路可容納的位元數。
講了那麼多的概念,最後我們來看一下例項問題吧:
要傳輸的報文一共 x(bit)。從源點到終點共經歷k段鏈路,每段鏈路的傳播時延為 d(s),資料率為 b(b/s)。在電路交換時電路的建立時間為 s(s)。在分組交換時分組的長度為 p(bit),且各個結點的排隊等待時間可以忽略不計。 問:在怎樣的條件下,分組交換的時延比電路交換的要小?
我們看一下解題過程:
- 電路交換: (1). 建立連線:s(s) (2). 傳送時延:根據公式得到為 x/b (s) (3). 傳播時延:k*d(s) 所以電路交換的種時延為:s + x/b + +k*d (s)
對於分組交換或許會複雜些,我們參照下面的這個圖: 上圖中A C都是表示的傳送分組的時延 ,B表示的傳播時延。上圖是在4個報文,三條鏈路的情況下的示意圖,對於本題,一共有k段鏈路,每個分組長度為p的情況下,響應A B C的資料為:
A:報文總長度 / 資料率 即 x/b (s) B:鏈路數目 * 每段鏈路的傳播時延 即 k*d (s) C:(鏈路數目 - 1) * 單個分組長度 / 資料率 即 (k-1)*(p/b) (s) 所以分組交換的總時延為: x/b + k*d + (k-1)*(p/b) (s)
我們得到了分組交換的時延和電路交換的時延,只要使 分組交換的時延 < 電路交換的時延 ,然後解方程就可以得到結果。參考結果為:
只要滿足:(k-1)p/b < s 即可
上面的題目就算是解完了,現在我們在上題的基礎下,看一下下面的問題:
在上題的分組交換網中,假設報文長度和分組長度分別為 x 和 (p+h)(bit),其中p和h分別是單個分組的資料部分長度和分組頭部資訊長度(h和p之間沒有聯絡)。也是共經過k段鏈路。鏈路的資料率為 b (b/s),但是 傳播時延和排隊時延都是不做計算的。 若要使得總時延最小,那麼p的值應該取多大?
我們來分析一下這個問題:
首先每個分組的資料部分為p,那麼分組的個數不就是 x/p,那麼得到了分組的個數,不就的得到了要傳送的總長度為:(p+h)*(x/p)。那麼時延就為(p+h)*(x/p)/b (s),這就相當於上面的A,因為傳播時延B已經不計算,那麼C的值為 (k-1)*(p+h)/b (s)。 所以:總時延=(p+h)*(x/p)/b + (k-1)*(p+h)/b (s) 我們運用微分方程的一些知識,很容易得到 p = (√(h∗x)k−1)