你是(shi)否已經受夠了(le)通過廣域(yu)網預覽攝像機視(shi)(shi)頻時(shi)遭遇的(de)那(nei)種步履蹣跚般(ban)(ban)的(de)卡頓,和鬼魅般(ban)(ban)時(shi)不(bu)時(shi)出現的(de)馬賽(sai)克?你有沒夢(meng)想(xiang)過有一(yi)天廣域(yu)網的(de)實況視(shi)(shi)頻也(ye)能(neng)像本地電腦上(shang)播(bo)放的(de)高清大片般(ban)(ban)細膩(ni)流(liu)暢?宇視(shi)(shi)科技研發的(de)可靠(kao)組播(bo)UniMCast、可靠(kao)單播(bo)UniUCast技術讓(rang)這一(yi)切不(bu)再(zai)是(shi)夢(meng)想(xiang)。
UDP的困境和TCP的糾結
說起廣域網(wang),典型的(de)(de)(de)(de)如(ru)(ru)有(you)(you)線(xian)的(de)(de)(de)(de)因特網(wang)和(he)(he)無線(xian)的(de)(de)(de)(de)3G、4G,它給我們(men)的(de)(de)(de)(de)印象莫如(ru)(ru):擁塞丟(diu)包、傳輸誤碼、可用帶寬不穩(wen)定(ding)、背(bei)景流量干擾擠占、時延、亂序等字眼,而(er)視(shi)頻(pin)監控(kong)(kong)業務(wu)(wu)則要求保證音視(shi)頻(pin)的(de)(de)(de)(de)流暢性(xing)(xing)、無丟(diu)包性(xing)(xing)和(he)(he)實時性(xing)(xing)——看來(lai),它們(men)天(tian)(tian)(tian)生(sheng)就如(ru)(ru)水與火(huo),互不相(xiang)容。我們(men)必須(xu)在(zai)視(shi)頻(pin)業務(wu)(wu)與廣域網(wang)之間添加一層潤滑劑。UDP天(tian)(tian)(tian)然的(de)(de)(de)(de)盡力傳輸特質使得它不具備任(ren)(ren)何差錯(cuo)修正的(de)(de)(de)(de)機制。TCP天(tian)(tian)(tian)生(sheng)具有(you)(you)流量控(kong)(kong)制、丟(diu)包重傳和(he)(he)亂序重排(pai)的(de)(de)(de)(de)特性(xing)(xing),但監控(kong)(kong)視(shi)頻(pin)的(de)(de)(de)(de)實時生(sheng)成的(de)(de)(de)(de)特點卻使得TCP無法完全承擔(dan)起廣域網(wang)高(gao)清視(shi)頻(pin)傳輸的(de)(de)(de)(de)大任(ren)(ren)。
原因(yin)一,TCP的(de)(de)(de)傳(chuan)(chuan)輸(shu)(shu)性能對丟(diu)(diu)包(bao)(bao)(bao)率較敏感(gan):在往返時(shi)延(yan)100ms,丟(diu)(diu)包(bao)(bao)(bao)率0.01% 的(de)(de)(de)情況下,TCP的(de)(de)(de)傳(chuan)(chuan)輸(shu)(shu)能力(li)約為(wei)11.7M;若將(jiang)丟(diu)(diu)包(bao)(bao)(bao)率提升至1%,則TCP傳(chuan)(chuan)輸(shu)(shu)能力(li)會降(jiang)低至1.1M;這意(yi)味著,當(dang)丟(diu)(diu)包(bao)(bao)(bao)率增加到一定程度,雖然TCP本(ben)身有重(zhong)傳(chuan)(chuan)抗(kang)丟(diu)(diu)包(bao)(bao)(bao)的(de)(de)(de)機制,但急劇降(jiang)低的(de)(de)(de)傳(chuan)(chuan)輸(shu)(shu)性能使得攝像(xiang)機實(shi)時(shi)產(chan)生的(de)(de)(de)視頻來不及傳(chuan)(chuan)輸(shu)(shu)而(er)丟(diu)(diu)失在攝像(xiang)機的(de)(de)(de)出緩存中——這可能導(dao)致比丟(diu)(diu)包(bao)(bao)(bao)更嚴重(zhong)的(de)(de)(de)結果:視頻被連(lian)續丟(diu)(diu)失,連(lian)一窺片段的(de)(de)(de)機會都有沒有了。
原因二,TCP傳輸(shu)性(xing)能(neng)受往返時延影響(xiang)較大:保持上述情形中(zhong)的丟包(bao)率1%,往返時延增加至200ms,則TCP的傳輸(shu)能(neng)力將不足600Kbps;廣域(yu)網的往返時延通常不可控,很難達到TCP傳輸(shu)高清視頻所需的要求。
原(yuan)(yuan)因三,由于TCP擁塞控制(zhi)的原(yuan)(yuan)因,在廣域網上(shang)傳(chuan)輸業務,其有效帶(dai)寬很(hen)容易被其它基于UDP的流(liu)量所擠占。
原因(yin)四,現有的TCP實現會(hui)將(jiang)誤碼當作(zuo)丟(diu)包(bao),即使有充(chong)分的帶寬,也會(hui)因(yin)視誤碼為丟(diu)包(bao)而降速(su),所以不適合(he)高誤碼率(lv)的環境,例如無線。
原因五,TCP無(wu)法支持組(zu)播,如果(guo)有多(duo)個用戶需要同時預覽同一(yi)(yi)攝(she)像機(ji),則需要建立多(duo)條(tiao)TCP連(lian)接(jie),發送多(duo)條(tiao)視頻流,使得發送端的(de)(de)(de)(de)負荷增加(jia)(jia),鏈路擁(yong)塞(sai)加(jia)(jia)重(zhong)(zhong)。因為UDP和TCP的(de)(de)(de)(de)上(shang)述缺陷,業界推出了(le)一(yi)(yi)些改進方案。TCP加(jia)(jia)速技術(shu)通過綜(zong)合評估數據傳(chuan)輸狀況(kuang)(kuang),調節TCP的(de)(de)(de)(de)處理(li)機(ji)制(zhi)(zhi),可以在(zai)一(yi)(yi)定(ding)程度(du)上(shang)改善其(qi)傳(chuan)輸性能,但無(wu)法從根本上(shang)解(jie)決機(ji)制(zhi)(zhi)所(suo)存在(zai)的(de)(de)(de)(de)缺陷,何況(kuang)(kuang)依舊無(wu)法解(jie)決組(zu)播的(de)(de)(de)(de)可靠性問題(ti)。前(qian)向糾錯(cuo)技術(shu)雖然(ran)可以為UDP提(ti)供一(yi)(yi)定(ding)的(de)(de)(de)(de)抗丟包能力(li),但是它(ta)以增加(jia)(jia)冗(rong)余信息(xi)為代價,加(jia)(jia)重(zhong)(zhong)了(le)廣域網的(de)(de)(de)(de)擁(yong)塞(sai)壓(ya)力(li),進一(yi)(yi)步(bu)增加(jia)(jia)了(le)丟包風險,而(er)且網絡設備普遍采用的(de)(de)(de)(de)尾丟棄機(ji)制(zhi)(zhi)使得擁(yong)塞(sai)發生(sheng)時冗(rong)余信息(xi)會連(lian)同原始信息(xi)一(yi)(yi)起丟失,降低(di)了(le)抗丟包的(de)(de)(de)(de)效果(guo)。
可靠UDP的優勢
為了兼(jian)顧(gu)傳(chuan)輸的(de)(de)效率(lv)和(he)(he)可(ke)靠(kao)(kao)(kao)性(xing),宇視科技根據視頻監控(kong)業務和(he)(he)廣域網的(de)(de)各自(zi)特點,創(chuang)新性(xing)的(de)(de)提出了自(zi)己(ji)的(de)(de)可(ke)靠(kao)(kao)(kao)組播(bo)和(he)(he)可(ke)靠(kao)(kao)(kao)單播(bo)方(fang)(fang)案,合稱可(ke)靠(kao)(kao)(kao)UDP方(fang)(fang)案,可(ke)以很好的(de)(de)解決上述問題。
宇視(shi)的(de)(de)視(shi)頻(pin)發送端(網絡攝像機、DVR、NVR等)和(he)接(jie)收端(解(jie)碼客戶端、解(jie)碼器等)會根據流量的(de)(de)特點(dian)自適(shi)應(ying)的(de)(de)開辟專用的(de)(de)發送緩(huan)存(cun)和(he)接(jie)收緩(huan)存(cun);接(jie)收端內置獨特的(de)(de)丟包亂序處理機制;發送端和(he)接(jie)收端在專利(li)算法控制下協同配合,實時(shi)調整。
實際測(ce)試表明,對于(yu)高清視(shi)頻業務,同樣條件下,宇視(shi)可(ke)靠(kao)UDP技術具(ju)有(you)數十倍(bei)于(yu)TCP的(de)抗(kang)丟包能力。以廣域(yu)網(wang)典(dian)型的(de)100ms往(wang)(wang)返時延為例,TCP傳輸(shu)1.1M的(de)碼(ma)流,抗(kang)丟包率為1%。而宇視(shi)可(ke)靠(kao)單播和可(ke)靠(kao)組播特(te)性在400ms往(wang)(wang)返時延的(de)條件下,4M碼(ma)流可(ke)輕松抗(kang)5% 以上的(de)丟包率,視(shi)頻流暢,圖像解(jie)碼(ma)時延幾乎不增加。
【結束語】
宇視(shi)可靠UDP方案(an)具有很(hen)好的廣(guang)域環境適應性,在UDP和TCP無法適用的場景中(zhong),宇視(shi)可靠UDP方案(an)使得高清視(shi)頻(pin)在廣(guang)域網上的實況點播不再顯得步(bu)履蹣跚,完(wan)全(quan)可以痛快淋漓的暢飛(fei)起來(lai)。