直播帶貨源碼,協(xié)議的選擇不能隨便概括過去
UDP協(xié)議是直播帶貨源碼常用的協(xié)議之一,它不提供復(fù)雜的控制機(jī)制,利用IP提供面向無連接的通信服務(wù),通過將應(yīng)用程序發(fā)來的數(shù)據(jù)在收到后立即原樣發(fā)送到網(wǎng)絡(luò)上,UDP協(xié)議的實(shí)時(shí)性是各個(gè)協(xié)議中最好的,相對(duì)的,也失去了重傳以及傳輸接收率等因素。
?

一、UDP協(xié)議的應(yīng)用
直播帶貨源碼最怕出現(xiàn)的情況是網(wǎng)絡(luò)擁堵,UDP協(xié)議雖然無法進(jìn)行流量控制等避免網(wǎng)絡(luò)擁塞的行為,但可以采用UDP的應(yīng)用程序去處理沒有一個(gè)能夠控制全局的機(jī)制,因此通過網(wǎng)絡(luò)發(fā)送大量數(shù)據(jù)時(shí)可能會(huì)因?yàn)楦鱾€(gè)節(jié)點(diǎn)之間傳輸?shù)睦щy度。
UDP在傳輸數(shù)據(jù)時(shí)不會(huì)根據(jù)雙方的收發(fā)能力或網(wǎng)絡(luò)狀況將數(shù)據(jù)分片,而是直接發(fā)送一整個(gè)數(shù)據(jù),客戶端發(fā)送的數(shù)據(jù)被UDP原樣發(fā)送到對(duì)端進(jìn)程,這就是面向無連接傳輸。
UDP協(xié)議只關(guān)心數(shù)據(jù)有沒有發(fā)送到網(wǎng)絡(luò)上,不關(guān)心對(duì)端主機(jī)的制定進(jìn)程是否真正接收到數(shù)據(jù),與之相對(duì)的是面向連接,也就是直播帶貨源碼常用的TCP協(xié)議。
?

二、緩沖區(qū)
對(duì)UDP協(xié)議來說,是沒有緩沖區(qū)的,不然也沒法做到實(shí)時(shí)性傳輸。
UDP的接收緩沖區(qū)用來緩存已經(jīng)接收到的數(shù)據(jù)報(bào),知道應(yīng)用程序讀取未知,如果直播帶貨源碼沒有及時(shí)讀取,接收緩沖區(qū)滿了之后,新來的數(shù)據(jù)報(bào)就會(huì)被丟棄。
UDP沒有發(fā)送緩沖區(qū),只有一個(gè)發(fā)送緩沖區(qū)大小的限制,用來表示每個(gè)UDP數(shù)據(jù)報(bào)的最大長(zhǎng)度,如果直播帶貨源碼發(fā)送一個(gè)大于該限制的數(shù)據(jù)報(bào),就會(huì)返回錯(cuò)誤。
?

三、UDP協(xié)議的缺點(diǎn)
1、UDP是不可靠的傳輸協(xié)議,它不需要像TCP那樣保證數(shù)據(jù)的可靠性、有序性和完整性,所以不需要在直播帶貨源碼發(fā)送端維護(hù)一個(gè)發(fā)送緩沖區(qū)來存儲(chǔ)已發(fā)送但未確認(rèn)的數(shù)據(jù)。
2、UDP是無連接的傳輸協(xié)議,它不需要建立和維護(hù)連接狀態(tài),也不需要跟蹤對(duì)方的窗口大小和接收能力,因此不需要在發(fā)送端維護(hù)一個(gè)發(fā)送緩沖區(qū)來適應(yīng)對(duì)方的接受速率。
3、UDP是面向數(shù)據(jù)報(bào)的傳輸協(xié)議,它每次發(fā)送一個(gè)完整的數(shù)據(jù)報(bào),不會(huì)對(duì)數(shù)據(jù)進(jìn)行分片或合并,所以不需要在發(fā)送端維護(hù)一個(gè)發(fā)送緩沖區(qū)來存儲(chǔ)分片后的數(shù)據(jù)或合并后的數(shù)據(jù)。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任