分組丟失和延遲的原因
隊列太長沒有意義,用戶需求
排隊:輸出能力<=到來的分組,需要等待
四種分組延遲
節點處理延遲:確定的
排隊延遲:隨機,取決于網絡情況
一個比特的傳輸時間:
R=1Mbps
1/R=10^-6s=1us(微妙)–傳輸時間
1秒(s) =1000ms= 1000000微秒(μs)
傳輸延遲:
如果:
L=1Mbps R=1Mbps
L/R=L*(1/R)(傳輸延遲,越過鏈路L需要時間,所以是延遲)
傳播延遲:
路徑有很多hop跳(段)組成
如果很近,可以忽略不計
車隊類比1-局域網
120s傳輸時間
車隊類比2-廣域網
100km/1000km/h=1/10h=6min
第一個比特已經到達收費站,即為:沒有打完第一個比特,對方就已經收到,路徑中幾乎沒有比特在通行,所以信道容量:車隊1>車隊2
節點延遲
每一跳都要花費這四個延遲
排隊延遲
取決于流量強度I,在(0,1)之間
L:每個分組的長度
a:單位時間內希望它通過這條鏈路轉發的數量,單位時間要求通過這條鏈路放出去的比特數量
R:鏈路速率,帶寬
I=La/R
排隊延遲:
流量強度越接近于1,排隊延遲無限大
網絡的延遲和路由
在cmd中:
工作原理:
發出三個探測包,發送時計時,回來時計時;可以計算往返延遲【RTT ,Round Trip Time】
使用了ICMP協議,互聯網控制報文協議:
IP頭部有TTL字段【TIME To Live,生存時間,有限值】,路過一個路由器時TTL減少1;到某個路由器TTL=0時,分組被丟棄,向源主機發送一個ICMP的控制報文,告訴源主機:到此路由器時,TTL=0,分組被丟棄了
使用tracert,測試:
設置TTL足夠大,到達最后一個路由器時,目標端口沒有應用進程守候,發送ICMP報文:由于目標端口不可達,分組丟失;此時測試結束
分組丟失
分組進了網絡核心,沒有出來,被丟失掉了
丟失的分組:
看數據鏈路層(網絡層的上一層)本身是否可以可靠,如果可靠【如,WIFI】,由上一個節點來重傳;如果數據鏈路層不可靠【如,以太網向上層提供的服務是不可靠的】,可能由源主機來重傳,如果是應用進程提供UDP來發送,則不重傳;如果應用進程提供TCP來發送,則重傳
三種情況:
物理介質本身可靠,則數據鏈路層就會放棄可靠性;
物理介質本身不可靠;則數據鏈路層就會提供可靠的服務【亡羊補牢】
吞吐量
A到B:單位時間內A向B傳比特,對方能夠有效收到的比特數量【單位時間內成功地傳送比特的數量】
有效吞吐量取決于最小的
瓶頸鏈路:最細的
有多個鏈路帶寬,取決于最小的
A到B
如果有n個主機在同時使用鏈路的話,每一個主機只能使用1/n帶寬(其他條的鏈路也是一樣)
而瓶頸帶寬(吞吐量):是最小的1/n
min{1/n1,1/n2。。。}