編輯:關於android開發
1.網狀的路由器
路由器的鏈接組成了網絡的核心。
任何一個路由器,或者某條線路掛掉,但是網絡還是通的,這是internet的一個特性。
data到底是怎麼傳輸的?
1)circuit switching專有線路,就像電話一樣,每一條都有一個線路。
2)packet-switching封包機制:就是data分成一個一個的包送資料。
1.1 circuit switching
首先要做一個end to end,通過資源的分配,把他們連接起來。
這個線路要經過路由器,所以路由器的帶寬會影響傳輸的速度。
在每一段link上面,都保留頻寬,就會有一個專屬頻寬的意思。
專屬的資源,無法共享。就算這條線路沒有被使用,其他傳輸的請求也無法獲取這條線路。
但是它必須有一個建連線的動作。
2種方法來實現這個模式:
1)時間來分割
2)頻率來分割
其實就是資源的劃分,空間或者時間。
之前微信和移動鬧得那點事,就說占用頻寬的事情,具體可以百度下。
1.2 packet-switching
把資料切成一個一個的封包,然後在資料使用的時候,使用網絡所有的link,全速傳輸。
這樣呢,User A & User B就是 share 網絡資源。所以說,他要做resource 競爭。
但是路由器的帶寬總是有限的,相對與大量的網路請求,往往會有擁擠的問題。
封包就放入路由器的隊列。
路由器就是先存儲,然後在轉送。
轉送的時候是無序的,也就是A & B的封包是隨機排列的,每一個封包都需要競爭資源。
而且User A & User B發送data的時機是不確定的,所以可以更充分的利用網絡的帶寬。
封包先收起來,然後看看要放到哪裡去,然後在放到那個Queue裡面。
1.2.1 2種模式的對比
假設說有一個link,帶寬是1M/s
假設有N個User,要送資料,送的單位是100K
它不是alway on,它想送的時間只有10%
所以如果是circuit switching,你只能分割給10個user,但是你只有10%的時間在用,剩下的
時間都是浪費的。
如果是packet-switching,如果有35個User,在同一時刻超過10個User的幾率,小於0.004
所以它可以認為支持35個user同時使用。
packet-switching適用的場合,
1)bursty data 大量的,但是短暫的data。既然都是bursty,可以把發送時間錯開,這樣就最好了。適合封包的發送方式。
如果多個User同一時刻,都爆發data,路由器可以把它們Queue起來,等到網絡空閒的時候,在發送它們。
當然也有可能end端的data過多,超過峰值,那可能就會掉封包。所以它可以建多個連接來減少這個概率。
但是bursty data會造成 封包的delay & loss
所以說需要一個更好的protocol來提供可靠的傳輸機制,TCP
2)怎麼提供跟circuit類似的功能?
希望做audio/video 這種應用。需要5M的頻寬,但是可能只能給到5K,應為internet是需要競爭的,所以它的頻寬不保證。
只有通過協議的方式,這個難度很高,目前位置還是一個open problem.
1.2.2 store & forward
假設從one end端有資料要送,有2個路由器。
每段的頻寬是R
封包的長度是L
假設L = 7.5M
R = 1.5M
所以送一個封包要5s的時間,L/R送一個封包的時間。
每一段都要送5秒,它是送一段,然後store在路由器,然後在store,這樣就是
delay = N *L/R
N就是線路的個數。
如果我們把7.5M 切成一個個pice。比如是5000份。每一個封包只有1.5K,所以送一個封包的時間變成1ms
它可以使用pipelining的方式,
我送第一個封包,1ms。
送第二個封包的時候,下一段,可以送第一個封包
所以就是每段網絡都在發送data,而不是等待的概念。
所以我要花5002ms,就可以收完了。
所以說封包不要太大,讓他可以pipeling
但是每個封包都有一段頭,所以不是切的越小越好。
1.2.3 path 選擇
在傳輸data的時候要經過不同的路由器,而且有很多路徑,要怎麼選?
路徑選擇的算法。路由器的連接的情況,一直在變,比如擁擠或者被挖斷了,怎麼辦?
可以選擇路由器最少的路徑,但是不見得是最快的,比如有無線路由器的路徑。
1)每個封包都需要,帶對方的地址,這就是IP,就像一封信一樣,一定要一個收件人的地址。
2)在一個連接的過程種,封包傳遞的路徑可能會變,就像開車,不認路,所以每開一段,都要問。
3)virtual circuit network:給每個封包加上一個tag,每一個路由器看到這個tag,就知道往哪裡去。
因為要去固定的路徑,所以一段需要建連線的時間。路由器就需要控制每一個call的狀態。就是藍色tag,要往哪裡去,都有
明確的路徑。
總結:
整個通訊網路分為2大塊,
專有網絡和封包機制
專有網絡:FDM & TDM
封包:帶有IP地址的封包,有路由器來送。路由器之間會交換它們的信息。
封包一進來,路由器會建表,路由器會定期和不定期的溝通。
希望在packet-switching的機制下,走固定路線,就是VCs
Android 手機衛士10--應用管理器,android10-- 1.添加不同類型條目 1 class MyAdapter extends BaseAdapter{
Android中的屬性動畫(Property Animation)——Android開發藝術探索筆記 Animator最早出現在Android 3.0 中,和之前的A
在 Android 上使用 RxNetty 在 Android 上使用 RxNetty Netty是由JBOSS提供的一個Java開源框架,是一個支持TCP/UDP/HT
Android 6.0 運行時權限處理,android6.0在運行時請求權限 從Android 6.0(API級別23)開始,用戶權限授予應用程序在應用程序運行時,當他們
Android Design Support Library——Text