視頻是一幀一幀拼接起來的,比如1G視頻傳輸時(shí)肯定要被切割一個(gè)個(gè)網(wǎng)絡(luò)包滥朱,傳輸?shù)綄?duì)端再拼接起來。如果少些包丟了力试,是不影響整體觀看的徙邻。大家很大可能遇到過音頻和視頻失真或卡頓的現(xiàn)象,很苦惱畸裳,這是什么原因造成的缰犁?今天要找到答案了。
音頻和視頻數(shù)據(jù)必須在規(guī)定的時(shí)間內(nèi)送達(dá)怖糊,一旦送達(dá)晚了帅容,就會(huì)錯(cuò)過播放時(shí)機(jī),導(dǎo)致聲音和圖像卡頓伍伤。如果像TCP一樣通過接收確認(rèn)響應(yīng)來檢查錯(cuò)誤并重發(fā)并徘,重發(fā)的過程需要消耗一定的時(shí)間,因此重發(fā)的數(shù)據(jù)很可能已經(jīng)錯(cuò)過了播放的時(shí)機(jī)扰魂。一旦錯(cuò)過播放時(shí)機(jī)麦乞,重發(fā)數(shù)據(jù)也是沒有用的,因?yàn)槁曇艉蛨D像已經(jīng)卡頓了劝评,這是無法挽回的姐直。當(dāng)然,我們可以用高速線路讓重發(fā)的數(shù)據(jù)能夠在規(guī)定的時(shí)間內(nèi)送達(dá)蒋畜,但這樣一來可能要增加幾倍的帶寬才行声畏。
UDP經(jīng)常會(huì)被防火墻阻止,因此當(dāng)需要穿越防火墻傳輸音頻和視頻數(shù)據(jù)時(shí)姻成,盡管需要消耗額外的帶寬插龄,但有時(shí)候也只能使用TCP。
此外佣渴,音頻和視頻數(shù)據(jù)中缺少了某些包并不會(huì)產(chǎn)生嚴(yán)重的問題,只是會(huì)產(chǎn)生一些失真或者卡頓而已初斑,一般都是可以接受的辛润。
在這些無需重發(fā)數(shù)據(jù),或者是重發(fā)了也沒什么意義的情況下,使用UDP發(fā)送數(shù)據(jù)的效率會(huì)更高砂竖。
本文摘取自周自恒翻譯的戶根勤編寫的《網(wǎng)絡(luò)是怎樣連接的》