国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于線程池的TCP報(bào)文轉(zhuǎn)發(fā)方法及裝置與流程

      文檔序號(hào):39991540發(fā)布日期:2024-11-15 14:42閱讀:18來(lái)源:國(guó)知局
      一種基于線程池的TCP報(bào)文轉(zhuǎn)發(fā)方法及裝置與流程

      本發(fā)明涉及音視頻流媒體應(yīng)用,尤其涉及一種基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法及裝置。


      背景技術(shù):

      1、隨著5g技術(shù)的普及和網(wǎng)絡(luò)環(huán)境的優(yōu)化,音視頻流媒體應(yīng)用的領(lǐng)域愈發(fā)廣闊,從網(wǎng)絡(luò)直播、影視點(diǎn)播、視頻會(huì)議到安防監(jiān)控,音視頻已成為現(xiàn)代信息傳播的重要方式。

      2、流媒體轉(zhuǎn)發(fā)在音視頻網(wǎng)絡(luò)應(yīng)用中扮演著至關(guān)重要的角色,可以將音視頻內(nèi)容從源服務(wù)器分發(fā)到多個(gè)目標(biāo)設(shè)備或用戶,有助于減輕源服務(wù)器的負(fù)載,從而允許更廣泛的訪問(wèn)??梢愿鶕?jù)網(wǎng)絡(luò)條件進(jìn)行智能路由,選擇最佳路徑來(lái)傳輸內(nèi)容,從而減少延遲、抖動(dòng)和丟包。流媒體轉(zhuǎn)發(fā)在提供高效、安全、可靠的音視頻內(nèi)容傳輸方面發(fā)揮著重要作用,是現(xiàn)代音視頻網(wǎng)絡(luò)應(yīng)用中不可或缺的一部分。

      3、現(xiàn)代網(wǎng)絡(luò)通信數(shù)據(jù)傳輸一般采用udp(用戶數(shù)據(jù)報(bào)協(xié)議)或tcp(傳輸控制協(xié)議)兩大傳輸控制協(xié)議,用于在網(wǎng)絡(luò)中提供端到端的字節(jié)流傳輸。udp是無(wú)連接協(xié)議,不保證可靠交付,但數(shù)據(jù)傳輸快,適合視頻、音頻等實(shí)時(shí)應(yīng)用。使用udp時(shí),應(yīng)用程序必須處理數(shù)據(jù)丟失、重復(fù)和順序錯(cuò)亂等問(wèn)題。tcp是面向連接的協(xié)議,提供可靠交付,數(shù)據(jù)傳輸慢,但提供了流量控制和丟包重傳機(jī)制,適合文件傳輸?shù)确菍?shí)時(shí)應(yīng)用。但伴隨網(wǎng)絡(luò)帶寬的提升以及音視頻流媒體多跨網(wǎng)絡(luò)傳輸?shù)奶匦?,現(xiàn)在較多音視頻應(yīng)用數(shù)據(jù)傳輸亦采用tcp方式傳輸。

      4、當(dāng)前流媒體服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)采用的方案有單線程、多線程及線程池。單線程方案轉(zhuǎn)發(fā)效率偏低,轉(zhuǎn)發(fā)音視頻路數(shù)也較少,一般僅在較少流媒體路數(shù)的局域網(wǎng)內(nèi)轉(zhuǎn)發(fā)數(shù)據(jù)采用。多線程方案轉(zhuǎn)發(fā)效率高,轉(zhuǎn)發(fā)音視頻路數(shù)也較多,但隨著轉(zhuǎn)發(fā)路數(shù)的增加,轉(zhuǎn)發(fā)線程數(shù)也會(huì)增加,線程數(shù)的增加會(huì)增加cpu的調(diào)度時(shí)間,導(dǎo)致線程轉(zhuǎn)發(fā)流數(shù)據(jù)的效率反而下降,因此多線程方案也不適合高路數(shù)音視頻流媒體轉(zhuǎn)發(fā)場(chǎng)景。線程池方案的工作原理基于池化技術(shù)?,將資源或任務(wù)進(jìn)行復(fù)用,以減少重復(fù)創(chuàng)建和銷毀的開銷。線程池通過(guò)預(yù)先創(chuàng)建并維護(hù)多個(gè)線程,以減少頻繁創(chuàng)建和銷毀線程的開銷,從而提高程序的性能。因此線程池方案是流媒體服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)的最適合方案。

      5、流媒體轉(zhuǎn)發(fā)服務(wù)器是多路流輸入多路流輸出,且輸出流還會(huì)多于輸入流,比如多客戶同時(shí)請(qǐng)求同一路音視頻流的情形。線程池的某一線程負(fù)責(zé)處理tcp數(shù)據(jù)報(bào)文的接收及轉(zhuǎn)發(fā),因線程調(diào)度的隨機(jī)性,會(huì)導(dǎo)致同一鏈路上的tcp報(bào)文會(huì)被不同線程調(diào)度轉(zhuǎn)發(fā),這樣就會(huì)導(dǎo)致分發(fā)數(shù)據(jù)報(bào)文的亂序,雖然可以根據(jù)報(bào)文內(nèi)容的順序定義域字段進(jìn)行恢復(fù),但會(huì)增加下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)或者客戶應(yīng)用端接收的額外工作,不具備數(shù)據(jù)傳輸透明一致性。


      技術(shù)實(shí)現(xiàn)思路

      1、針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法及裝置,采用哈希算法、虛擬映射節(jié)點(diǎn)思想,確保線程池方案高效率轉(zhuǎn)發(fā)的前提下,實(shí)現(xiàn)輸入音視頻流的順序轉(zhuǎn)發(fā),從而保證本流媒體服務(wù)器轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)的透明性和高效率。

      2、本發(fā)明采用的技術(shù)方案具體包括:

      3、第一方面公開了一種基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法,包括:

      4、搭建高并發(fā)tcp服務(wù),用于接收多路音視頻源數(shù)據(jù),并對(duì)每一路音視頻源數(shù)據(jù)分配源數(shù)據(jù)通道id;

      5、創(chuàng)建轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池,并設(shè)定線程池核心參數(shù),線程池核心參數(shù)包括線程池最大線程數(shù)、線程池當(dāng)前處理線程id和最大轉(zhuǎn)發(fā)音視頻源通道數(shù);

      6、創(chuàng)建任務(wù)哈希環(huán),其中,任務(wù)哈希環(huán)為由若干個(gè)點(diǎn)組成的圓環(huán),每一個(gè)點(diǎn)對(duì)應(yīng)一個(gè)源數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù);

      7、根據(jù)最大轉(zhuǎn)發(fā)音視頻源通道數(shù)創(chuàng)建任務(wù)虛擬線程;

      8、根據(jù)線程池最大線程數(shù)對(duì)任務(wù)虛擬線程進(jìn)行區(qū)段劃分;

      9、根據(jù)線程池當(dāng)前處理線程id將實(shí)際線程映射至任務(wù)虛擬線程的區(qū)段;

      10、根據(jù)源數(shù)據(jù)通道id將源數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù)映射至哈希環(huán),并分配到相應(yīng)的任務(wù)虛擬線程節(jié)點(diǎn),然后任務(wù)虛擬線程節(jié)點(diǎn)所在區(qū)段映射到實(shí)際線程轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行源數(shù)據(jù)轉(zhuǎn)發(fā)。

      11、在一種實(shí)施方式中,線程池核心參數(shù)還包括任務(wù)虛擬線程數(shù),根據(jù)最大轉(zhuǎn)發(fā)音視頻源通道數(shù)創(chuàng)建任務(wù)虛擬線程,包括:

      12、根據(jù)最大轉(zhuǎn)發(fā)音視頻源通道數(shù)創(chuàng)建同等數(shù)量的任務(wù)虛擬線程,其中,任務(wù)虛擬線程按(2^32/numvt)*i映射到任務(wù)哈希環(huán),i=0~numvt-1,vt(i)代表索引為i的任務(wù)虛擬線程,numvt表示任務(wù)虛擬線程數(shù)。

      13、在一種實(shí)施方式中,根據(jù)線程池最大線程數(shù)對(duì)任務(wù)虛擬線程進(jìn)行區(qū)段劃分,包括:

      14、將任務(wù)虛擬線程劃分為與線程池最大線程數(shù)相等的區(qū)段。

      15、在一種實(shí)施方式中,線程池核心參數(shù)還包括線程池當(dāng)前線程數(shù)與核心線程數(shù),根據(jù)線程池當(dāng)前處理線程id將實(shí)際線程映射至任務(wù)虛擬線程的區(qū)段,包括:

      16、采用線程池當(dāng)前處理線程id從小到大排序規(guī)則,順時(shí)針將實(shí)際線程逐一映射到每個(gè)虛擬線程區(qū)段,映射規(guī)則為:

      17、

      18、

      19、其中ct(j)為索引為j的當(dāng)前處理線程,從0開始,最大為numct-1;zone(j)表示索引號(hào)為j的任務(wù)虛擬線程區(qū)段,numct表示線程池當(dāng)前線程數(shù),numcorepool表示核心線程數(shù),映射規(guī)則表示,若當(dāng)前線程數(shù)小于等于核心線程數(shù),實(shí)際線程按1比2虛擬線程區(qū)段遞增映射;若當(dāng)前線程數(shù)大于核心線程數(shù),實(shí)際線程按1比1虛擬線程區(qū)段遞增映射。

      20、在一種實(shí)施方式中,任務(wù)虛擬線程節(jié)點(diǎn)所在區(qū)段映射到實(shí)際線程轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行源數(shù)據(jù)轉(zhuǎn)發(fā),包括:

      21、計(jì)算源數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù)所在的任務(wù)虛擬線程的區(qū)段索引;

      22、根據(jù)任務(wù)虛擬線程的區(qū)段索引得到實(shí)際線程,由實(shí)際線程轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行源數(shù)據(jù)轉(zhuǎn)發(fā)。

      23、在一種實(shí)施方式中,當(dāng)轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池中的轉(zhuǎn)發(fā)任務(wù)線程減少時(shí),將實(shí)際線程映射的虛擬線程區(qū)段元素置空,映射到該虛擬線程區(qū)段的轉(zhuǎn)發(fā)任務(wù)由前面的轉(zhuǎn)發(fā)任務(wù)線程進(jìn)行轉(zhuǎn)發(fā)。

      24、在一種實(shí)施方式中,當(dāng)轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池中的轉(zhuǎn)發(fā)任務(wù)線程增加時(shí),將新增加的線程的id映射到空置的虛擬線程區(qū)段元素。

      25、基于同樣的發(fā)明構(gòu)思,本發(fā)明第二方面公開了一種基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)裝置,包括:

      26、tcp服務(wù)搭建模塊,用于搭建高并發(fā)tcp服務(wù),用于接收多路音視頻源數(shù)據(jù),并對(duì)每一路音視頻源數(shù)據(jù)分配源數(shù)據(jù)通道id;

      27、轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池創(chuàng)建模塊,用于創(chuàng)建轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池,并設(shè)定線程池核心參數(shù),線程池核心參數(shù)包括線程池最大線程數(shù)、線程池當(dāng)前處理線程id和最大轉(zhuǎn)發(fā)音視頻源通道數(shù);

      28、任務(wù)哈希環(huán)創(chuàng)建模塊,用于創(chuàng)建任務(wù)哈希環(huán),其中,任務(wù)哈希環(huán)為由若干個(gè)點(diǎn)組成的圓環(huán),每一個(gè)點(diǎn)對(duì)應(yīng)一個(gè)源數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù);

      29、任務(wù)虛擬線程創(chuàng)建模塊,用于根據(jù)最大轉(zhuǎn)發(fā)音視頻源通道數(shù)創(chuàng)建任務(wù)虛擬線程;

      30、任務(wù)虛擬線程區(qū)段劃分模塊,用于根據(jù)線程池最大線程數(shù)對(duì)任務(wù)虛擬線程進(jìn)行區(qū)段劃分;

      31、實(shí)際線程映射模塊,用于根據(jù)線程池當(dāng)前處理線程id將實(shí)際線程映射至任務(wù)虛擬線程的區(qū)段;

      32、源數(shù)據(jù)轉(zhuǎn)發(fā)模塊,用于根據(jù)源數(shù)據(jù)通道id將源數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù)映射至哈希環(huán),并分配到相應(yīng)的任務(wù)虛擬線程節(jié)點(diǎn),然后任務(wù)虛擬線程節(jié)點(diǎn)所在區(qū)段映射到實(shí)際線程轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行源數(shù)據(jù)轉(zhuǎn)發(fā)。

      33、基于同樣的發(fā)明構(gòu)思,本發(fā)明第三方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法。

      34、基于同樣的發(fā)明構(gòu)思,本發(fā)明第四方面提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)第一方面所述的基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法。

      35、相對(duì)于現(xiàn)有技術(shù),本發(fā)明的優(yōu)點(diǎn)和有益的技術(shù)效果如下:

      36、本發(fā)明提出了一種基于線程池的tcp報(bào)文轉(zhuǎn)發(fā)方法,創(chuàng)建了轉(zhuǎn)發(fā)源數(shù)據(jù)任務(wù)線程池,并創(chuàng)建了任務(wù)哈希環(huán),音視頻流媒體轉(zhuǎn)發(fā)源數(shù)據(jù)通道哈希環(huán)處理模式,采用虛擬線程節(jié)點(diǎn)技術(shù),分區(qū)段映射實(shí)現(xiàn)線程池轉(zhuǎn)發(fā)任務(wù)線程負(fù)載相對(duì)均衡,解決轉(zhuǎn)發(fā)數(shù)據(jù)線程忙閑不均的“傾斜”問(wèn)題;通過(guò)哈希環(huán)映射保證線程池轉(zhuǎn)發(fā)線程不會(huì)出現(xiàn)對(duì)同一源數(shù)據(jù)通道的轉(zhuǎn)發(fā)競(jìng)爭(zhēng),從而保證tcp傳輸模式下數(shù)據(jù)報(bào)文的順序性,實(shí)現(xiàn)流媒體服務(wù)器轉(zhuǎn)發(fā)節(jié)點(diǎn)的透明性。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1