APP直播源碼,TCP傳輸下是怎么做到不丟包的
TCP協(xié)議雖然是一種面向連接,給APP直播源碼提供可靠、基于字節(jié)流的傳輸層通信協(xié)議,但它依然是基于不可靠的網(wǎng)絡實現(xiàn)可靠傳輸?shù)模隙〞嬖趤G包問題,如果在通信過程中發(fā)現(xiàn)缺少數(shù)據(jù)或者丟包的情況,那么大概率是因為程序發(fā)送過程中或者接收過程中出現(xiàn)了問題,面對丟包,TCP協(xié)議是怎么解決的呢?
?

一、TCP協(xié)議不丟包的解決方案
1、數(shù)據(jù)分片,發(fā)送端對數(shù)據(jù)進行分片,接受端要對數(shù)據(jù)進行重組,由TCP確定APP直播源碼分片的大小并合理控制分片和重組
2、數(shù)據(jù)到達確認,接收端接收到分片數(shù)據(jù)時,根據(jù)分片數(shù)據(jù)序號向發(fā)送端發(fā)送一個確認
3、超時重發(fā),發(fā)送方式在發(fā)送分片時設置超時定時器,如果在超時后還沒有收到相應的確認,APP直播源碼就會重發(fā)分片數(shù)據(jù)
?

4、滑動窗口,TCP連接的每一方接受緩沖空間大小都是固定的,接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù),TCP在滑動窗口基礎上提供流量控制,防止較快主機讓較慢主機的緩沖區(qū)溢出
5、失序處理,做為IP數(shù)據(jù)報APP直播源碼來傳輸?shù)腡CP分片到達時可能會失序,TCP將對接收到的數(shù)據(jù)重新進行排序,將收到的數(shù)據(jù)以正確的順序交給應用層
6、重復處理,做為IP數(shù)據(jù)報來傳輸?shù)腡CP分片時會發(fā)生重復,TCP的接收端必須丟棄重復的數(shù)據(jù)
7、數(shù)據(jù)校驗,APP直播源碼使用的TCP協(xié)議將保持它首部和數(shù)據(jù)的校驗和,這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化,如果收到分片的檢驗和有差錯,TCP將丟棄這個分片,并不確認收到此報文段導致對端超時并重發(fā)
?

二、什么是面向連接傳輸層協(xié)議
當我們區(qū)分TCP協(xié)議和UDP協(xié)議時,我們會通過是否是面向連接協(xié)議來判斷,那么什么是面向連接傳輸層協(xié)議呢?它將來自上層的數(shù)據(jù)到達傳輸后首先雙方發(fā)送同步數(shù)據(jù)包建立連接,在做TCP分組分片,把數(shù)據(jù)分成符合大小的塊,然后分別傳送,在TCP的頭部有記錄順序的序列號,通過APP直播源碼接收端校驗數(shù)據(jù)包的正確性,發(fā)送相應序列號確認。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關法律責任