宇文濤,冉 全
武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)得到了廣泛應(yīng)用。其中,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性一直是研究的重要方向。據(jù)“2021年度醫(yī)療器械注冊(cè)工作報(bào)告”顯示,當(dāng)前遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)中,多數(shù)數(shù)據(jù)流由傳輸控制協(xié)議(transmission control protocol,TCP)/網(wǎng)絡(luò)控制(internet porotocol,IP)協(xié)議控制傳輸[1]。
研究表明,由于我國人口眾多、醫(yī)療設(shè)備數(shù)量遠(yuǎn)超別國,遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)會(huì)出現(xiàn)同時(shí)間段內(nèi)大量設(shè)備請(qǐng)求建立TCP連接并發(fā)送數(shù)據(jù)的情況[2]。突發(fā)數(shù)據(jù)流的出現(xiàn),時(shí)常引起網(wǎng)絡(luò)擁塞、服務(wù)器故障等問題。
TCP擁塞控制能保證遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)通信網(wǎng)絡(luò)不會(huì)因?yàn)榫W(wǎng)絡(luò)流量增大而引起阻塞。TCP擁塞控制機(jī)制通常利用主動(dòng)隊(duì)列管理[3],通過實(shí)時(shí)計(jì)算設(shè)備TCP連接請(qǐng)求隊(duì)列的平均隊(duì)列長度,對(duì)這個(gè)平均隊(duì)列長度進(jìn)行調(diào)控,維持網(wǎng)絡(luò)性能。平均隊(duì)列長度是當(dāng)前網(wǎng)絡(luò)流量的判斷值,主動(dòng)隊(duì)列管理機(jī)制通過此值進(jìn)行算法分析,處理網(wǎng)絡(luò)擁塞問題。
在醫(yī)療設(shè)備實(shí)現(xiàn)TCP連接后,設(shè)備會(huì)把要傳遞的信息通過自定義數(shù)據(jù)幀的形式,以通信指令向服務(wù)器傳輸。系統(tǒng)將采用多線程技術(shù),并發(fā)執(zhí)行多個(gè)TCP連接,同時(shí)接收多組數(shù)據(jù),大幅提高資源使用率。多線程下,線程接收數(shù)據(jù)速度如果快于線程儲(chǔ)存數(shù)據(jù)速度,會(huì)造成數(shù)據(jù)包不能及時(shí)儲(chǔ)存而丟棄。基于此本文設(shè)計(jì)雙緩存隊(duì)列結(jié)構(gòu)[4],雙緩存隊(duì)列采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)組建成單鏈表環(huán)形結(jié)構(gòu),不僅解決了順序存儲(chǔ)結(jié)構(gòu)下固定長度無法擴(kuò)展的問題,還對(duì)遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)中數(shù)據(jù)丟失的問題進(jìn)行處理。
本文將對(duì)傳統(tǒng)擁塞控制算法進(jìn)行改進(jìn),并結(jié)合雙數(shù)據(jù)緩存隊(duì)列,提出基于擁塞控制的多線程雙緩存算法,為遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)中的網(wǎng)絡(luò)擁塞和儲(chǔ)存速度緩慢的問題提供解決方案。
醫(yī)療設(shè)備監(jiān)測系統(tǒng)整體分為3層,分別是終端層、傳輸層和用戶層。系統(tǒng)整體架構(gòu)如圖1所示。
系統(tǒng)采用窄帶物聯(lián)網(wǎng)(narrow band internet of things,NBIOT)模塊作為醫(yī)療設(shè)備的傳輸裝置,首先使用通信格式的指令向服務(wù)器申請(qǐng)建立TCP連接;隨后服務(wù)器開辟多線程,設(shè)立臨界區(qū)保護(hù),實(shí)施主動(dòng)隊(duì)列管理方案與多設(shè)備完成連接;連接成功后,醫(yī)療設(shè)備發(fā)送數(shù)據(jù)包,服務(wù)器通過多線程緩存隊(duì)列接收數(shù)據(jù)并儲(chǔ)存。
隨機(jī)早期丟棄算法(random early detection,RED)是現(xiàn)階段應(yīng)用于遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)中使用頻次最高的主動(dòng)隊(duì)列管理算法[5]。RED算法主要是通過TCP請(qǐng)求隊(duì)列的大小去判斷網(wǎng)絡(luò)是否可能造成擁塞情況[6],然后設(shè)定一個(gè)丟棄概率。系統(tǒng)通過丟棄概率對(duì)連接請(qǐng)求丟棄,從而使網(wǎng)絡(luò)擁塞不會(huì)發(fā)生[7]。然而隨著應(yīng)用環(huán)境的變化,傳統(tǒng)RED算法仍有許多缺點(diǎn)。首先,在面對(duì)網(wǎng)絡(luò)流量大幅度提高時(shí),RED算法丟棄概率也大幅度增加,這是以較高的丟包率換取較高吞吐量的做法,雖然保證了TCP請(qǐng)求隊(duì)列穩(wěn)定,但是并沒有將系統(tǒng)使用率最大化[8]。其次,算法沒有考慮到服務(wù)器接收數(shù)據(jù)的流量,服務(wù)器接收數(shù)據(jù)流量大小會(huì)影響TCP請(qǐng)求隊(duì)列的響應(yīng)時(shí)間,這也是隊(duì)列長度變化因素之一。因此,在降低丟包率,提升TCP請(qǐng)求響應(yīng)速度上,RED算法有很大的改進(jìn)空間。對(duì)此,諸多學(xué)者提出了多種改進(jìn)方案,如根據(jù)區(qū)間劃分不同的丟棄概率計(jì)算方式的任務(wù)型隨機(jī)早期丟棄算法(task-based random early detection,TRED)、避免隊(duì)列高緩沖區(qū)空閑的主動(dòng)隨機(jī)早期丟棄算法等[9]。
在服務(wù)器開發(fā)中,對(duì)于數(shù)據(jù)通信設(shè)計(jì)的普遍做法是建立2個(gè)各司其職的線程。一個(gè)是數(shù)據(jù)接收線程,負(fù)則接收已建立TCP連接的設(shè)備發(fā)送的數(shù)據(jù)包;另一個(gè)是數(shù)據(jù)處理線程,對(duì)接收的數(shù)據(jù)進(jìn)行解析并儲(chǔ)存。但是在傳輸過程中,無法保證2個(gè)線程的工作速度相同。當(dāng)處理慢于接收時(shí),系統(tǒng)容易造成數(shù)據(jù)丟失,為此需有緩存區(qū)來進(jìn)行調(diào)節(jié)[10]。
緩存區(qū)采用鏈?zhǔn)酱鎯?chǔ)隊(duì)列,內(nèi)存大小在申請(qǐng)建立后可變更,是能夠動(dòng)態(tài)申請(qǐng)內(nèi)存的結(jié)構(gòu)。鏈?zhǔn)酱鎯?chǔ)解決了在順序存儲(chǔ)結(jié)構(gòu)下,因?yàn)樽x速度慢于寫速度而造成的覆蓋現(xiàn)象。鏈?zhǔn)酱鎯?chǔ)隊(duì)列的使用過程中有著更低的內(nèi)存碎片、更小的時(shí)間復(fù)雜度。然而在隊(duì)列使用過程中,還有著另外一個(gè)麻煩。緩存隊(duì)列在多個(gè)線程間被反復(fù)調(diào)用,會(huì)有互斥現(xiàn)象的出現(xiàn),所以每當(dāng)緩存隊(duì)列被一個(gè)線程調(diào)用后,都將被加鎖。調(diào)用結(jié)束必須先與當(dāng)前線程解鎖,然后才能被下一個(gè)線程調(diào)用。反復(fù)加鎖、解鎖的操作,不利于系統(tǒng)高效運(yùn)行。
傳統(tǒng)的RED算法中,使用J(n)代表第n個(gè)TCP請(qǐng)求到達(dá)服務(wù)器時(shí)的平均隊(duì)列長度,K(n)代表第n個(gè)請(qǐng)求到達(dá)服務(wù)器時(shí)平均隊(duì)列長度變化量,L(n)代表第n個(gè)請(qǐng)求到達(dá)服務(wù)器時(shí)的瞬時(shí)隊(duì)列長度,O表示權(quán)重[11]。平均隊(duì)列長度與平均隊(duì)列變化量表達(dá)式為:
RED算法通過低通濾波器對(duì)平均隊(duì)列長度進(jìn)行處理,權(quán)值O表示濾波器中的時(shí)間常數(shù)。O設(shè)置過大,結(jié)果對(duì)瞬時(shí)數(shù)據(jù)沒有及時(shí)反映;設(shè)置過小,影響平均隊(duì)列更新速度。因此本文所有實(shí)驗(yàn)中均取O=0.02。
平均隊(duì)列長度變化量能夠體現(xiàn)網(wǎng)絡(luò)流量情形,K為正則隊(duì)列長度加速增加,網(wǎng)絡(luò)趨于擁塞狀態(tài);為負(fù)則加速減少,網(wǎng)絡(luò)負(fù)載緩和。RED算法設(shè)定了中間閾值Smid,Smid會(huì)隨著K的值變化而改變。當(dāng)K大于0時(shí),Smid將隨之減少;反之,當(dāng)K小于0時(shí),Smid將增大。Smid表達(dá)式如下:
RED算法中設(shè)置Smid的最小閾值Smin、最大閾值Smax,通過利用2個(gè)參數(shù)與平均隊(duì)列長度的對(duì)比,能夠確定不同的網(wǎng)絡(luò)狀態(tài)。算法設(shè)置最大丟棄概率Pmax,根據(jù)不同狀態(tài),計(jì)算丟棄概率P。
在K小于0的情況下,丟棄概率P計(jì)算下:
在K大于0的情況下,丟棄概率P計(jì)算如下:
上述公式表明,平均隊(duì)列長度變化量K小于0時(shí),網(wǎng)絡(luò)流量降低,若此時(shí)平均隊(duì)列長度J未達(dá)Smin,服務(wù)器無需進(jìn)行丟棄;若此時(shí)平均隊(duì)列長度J超過Smax,服務(wù)器將停止接收TCP連接請(qǐng)求,使隊(duì)列負(fù)載穩(wěn)定在合理范圍,避免服務(wù)器崩潰;其余情況服務(wù)器通過丟棄概率P進(jìn)行隊(duì)列控制,保障系統(tǒng)平穩(wěn)運(yùn)行,同時(shí)增大Smid,使平均隊(duì)列長度下次進(jìn)入增加狀態(tài)會(huì)從一個(gè)合理Smid值調(diào)試。
當(dāng)平均隊(duì)列長度變化量K大于0時(shí),網(wǎng)絡(luò)流量增高,若此時(shí)平均隊(duì)列長度J超過Smid,服務(wù)器就要停止接收TCP連接請(qǐng)求,以更為積極的丟棄策略應(yīng)對(duì)加速增長的平均隊(duì)列長度。
傳統(tǒng)RED算法雖然能保證系統(tǒng)的穩(wěn)定性,但是其僅從隊(duì)列長度進(jìn)行管理,忽視了隊(duì)列變化由服務(wù)器流量決定,并且K大于0時(shí)丟棄策略激進(jìn)[12]。針對(duì)這些問題,本文提出了RED算法改進(jìn)方案新型隨機(jī)早期丟棄算法(new random early detection,NRED),其本質(zhì)是引入一個(gè)表示隊(duì)列長度與服務(wù)器傳輸速度的情況的值,對(duì)傳統(tǒng)的RED算法的丟棄概率進(jìn)行進(jìn)一步低通濾波,得到更為平衡的丟棄概率,并且能夠通過這個(gè)值自適應(yīng)改變丟棄策略。
在NRED算法中,對(duì)中間閾值Smid的取值有了新的限定條件。設(shè)定一個(gè)值i用來反應(yīng)隊(duì)列的變化趨勢,根據(jù)公式(1)與公式(2),得到J與K的值。如果K大于i,表示隊(duì)列增速過快;如果K小于-i,表示隊(duì)列快速減少;如果K在-i與i之間,表示隊(duì)列變化目前處于穩(wěn)定狀態(tài)。新的Smid計(jì)算公式如下:
在NRED算法中,定義α為ΔT這個(gè)時(shí)間段內(nèi)服務(wù)器接收數(shù)據(jù)量流速D與服務(wù)器帶寬C之比。β為ΔT這個(gè)時(shí)間段內(nèi)服務(wù)器接收數(shù)據(jù)總量M與需要占用帶寬資源的比例。
通過判斷α與β的關(guān)系,可以得到當(dāng)前的服務(wù)器的狀態(tài)。如果α大于1+β,服務(wù)器流量大,服務(wù)器接收的數(shù)據(jù)包堆積。如果α小于1-β,服務(wù)器流量小,服務(wù)器閑置,利用率低。如果α介于兩者之間,服務(wù)器流量處于均衡狀態(tài),緩存區(qū)隊(duì)列數(shù)量起伏低。
基于隊(duì)列變化狀態(tài)與服務(wù)器流量狀態(tài),得到了NRED算法丟棄概率P的計(jì)算公式。
在J<Smin時(shí),TCP請(qǐng)求隊(duì)列無需丟棄;在J>Smax時(shí),請(qǐng)求隊(duì)列緩存區(qū)已滿,已經(jīng)開始擁塞,需將請(qǐng)求全部丟棄;J處于Smin與Smax之間,則需要進(jìn)行以下分類討論。
當(dāng)K<-i且α<1-β時(shí),TCP請(qǐng)求隊(duì)列會(huì)不斷減少且服務(wù)器流量降低。為提高服務(wù)器的使用率,應(yīng)讓丟棄策略降低,避免無效丟棄。這個(gè)情況下丟棄概率P計(jì)算如下:
當(dāng)K<-i且α>1+β時(shí),TCP請(qǐng)求隊(duì)列減少,但服務(wù)器忙碌狀態(tài),服務(wù)器流量會(huì)逐漸空閑。為使服務(wù)器能時(shí)刻保持飽和狀態(tài),應(yīng)動(dòng)態(tài)調(diào)整丟棄策略,以J+i的值作為隊(duì)列衰減系數(shù),丟棄概率P計(jì)算如下:
當(dāng)K處于-i與i之間時(shí),TCP請(qǐng)求隊(duì)列長度保持平穩(wěn),這種情況下丟棄概率P無須特別處理,與傳統(tǒng)RED算法一致,公式如下:
當(dāng)K>i且α<1-β時(shí),服務(wù)器流量低,但隨之而來將有大量數(shù)據(jù)加速涌入,為保證加速增長的隊(duì)列不會(huì)造成服務(wù)器負(fù)擔(dān),應(yīng)根據(jù)隊(duì)列增長速度,主動(dòng)調(diào)整丟棄策略,其計(jì)算如下:
當(dāng)K>i且α>1+β時(shí),服務(wù)器忙碌且TCP請(qǐng)求隊(duì)列快速增加,易造成網(wǎng)絡(luò)擁塞現(xiàn)象,進(jìn)而導(dǎo)致連接請(qǐng)求集體丟棄。此時(shí)應(yīng)采取激進(jìn)的方式控制丟棄策略,以作為判斷隊(duì)列增長速度的標(biāo)志,動(dòng)態(tài)調(diào)整丟棄策略,丟棄概率P計(jì)算如下:
傳統(tǒng)的RED算法能夠?qū)㈥?duì)列長度穩(wěn)定地維持在一個(gè)比較低的數(shù)值,因此在面對(duì)數(shù)據(jù)突發(fā)時(shí),也能保證平均隊(duì)列長度低于所設(shè)定的最大閾值,避免大量丟包情況[13]。NRED算法對(duì)比RED算法,加入對(duì)隊(duì)列的當(dāng)前變化趨勢的判斷,隊(duì)列變化模型與隊(duì)列管理算法相結(jié)合,能夠預(yù)測隊(duì)列長度的變化趨勢,自適應(yīng)調(diào)整丟包策略。
數(shù)據(jù)接收線程與數(shù)據(jù)處理線程分別設(shè)立接收緩存隊(duì)列、發(fā)送緩存隊(duì)列,接收緩存隊(duì)列用于執(zhí)行讀操作,將已接收數(shù)據(jù)傳入處理線程;發(fā)送緩存隊(duì)列用于執(zhí)行寫操作,將接收線程傳來的數(shù)據(jù)傳入處理線程進(jìn)行數(shù)據(jù)分析。由于數(shù)據(jù)接收線程與數(shù)據(jù)處理線程不會(huì)同時(shí)操作同一個(gè)緩存隊(duì)列,所以數(shù)據(jù)接收線程與數(shù)據(jù)處理線程不需要再讀寫每一個(gè)數(shù)據(jù)單元時(shí)都進(jìn)行同步/互斥操作,避免了沖突的發(fā)生[14]。
接收緩存隊(duì)列que1與發(fā)送緩存隊(duì)列que2通過兩個(gè)互斥鎖lock1、lock2與數(shù)據(jù)接收線程與數(shù)據(jù)處理線程相綁定,數(shù)據(jù)接收線程與數(shù)據(jù)處理線程只有取得對(duì)應(yīng)的鎖才可以控制緩存隊(duì)列。緩存隊(duì)列整體結(jié)構(gòu)包括出入隊(duì)操作所用的頭指針front與尾指針rear、入隊(duì)數(shù)量計(jì)數(shù)器len。len的值是判斷出入隊(duì)的條件,若len不等于0且小于設(shè)定好的隊(duì)列最大長度,意味著隊(duì)列中有數(shù)據(jù)可讀也有隊(duì)列空間可供寫入。除此之外,雙緩存隊(duì)列還包括節(jié)點(diǎn)結(jié)構(gòu),節(jié)點(diǎn)結(jié)構(gòu)分為兩個(gè)部分,分別是數(shù)據(jù)域elem與指針域next。以存儲(chǔ)len組elem型數(shù)據(jù)為例,隊(duì)列結(jié)構(gòu)如圖2所示。
圖2 隊(duì)列結(jié)構(gòu)Fig.2 Structure of queue
當(dāng)接收線程向處理線程傳遞數(shù)據(jù)時(shí),系統(tǒng)對(duì)接收線程綁定的隊(duì)列que1(對(duì)應(yīng)lock1)與處理線程綁定的隊(duì)列que2(lock2)做隊(duì)列狀態(tài)的判斷。若que2為空,接收線程將待傳輸數(shù)據(jù)插入que1中。直到que1到達(dá)滿狀態(tài)時(shí),接收線程與處理線程同時(shí)停止對(duì)與隊(duì)列綁定,并交換隊(duì)列控制權(quán)。此時(shí),處理線程綁定lock2處理que1的數(shù)據(jù),接收線程綁定lock1向que2傳遞數(shù)據(jù)。若que2不為空,處理線程對(duì)que2中的數(shù)據(jù)進(jìn)行處理。直到que2到達(dá)空狀態(tài)時(shí),接收線程與處理線程才停止對(duì)與隊(duì)列綁定,并交換隊(duì)列控制權(quán)。設(shè)隊(duì)列長度為5,que1通過接收線程接收elem型數(shù)據(jù),并與空狀態(tài)的que2交換,然后處理線程對(duì)que1的數(shù)據(jù)進(jìn)行處理,隊(duì)列交換流程如圖3所示。
圖3 隊(duì)列交換圖Fig.3 Diagrams of queue exchange
為了驗(yàn)證NRED算法比傳統(tǒng)的RED算法確實(shí)有性能的提升,本文選用NS2平臺(tái)仿真比較其丟包率[15]。遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)所用到的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為星形拓?fù)渚W(wǎng)絡(luò),發(fā)送端采用TCPReno協(xié)議,設(shè)置服務(wù)器帶寬C=1 Mbps,傳輸延遲為50 ms,數(shù)據(jù)包平均大小為2 kB。實(shí)驗(yàn)設(shè)定N為發(fā)送數(shù)據(jù)包個(gè)數(shù),比較N=45、N=55、N=65這3種不同網(wǎng)絡(luò)環(huán)境下的NRED算法與RED算法丟包率。實(shí)驗(yàn)中其余仿真參數(shù)的數(shù)值設(shè)定如表1所示。
表1 NRED算法仿真參數(shù)表Tab.1 Simulation parameters of NRED algorithm
通過對(duì)不同算法進(jìn)行仿真實(shí)驗(yàn),其丟包率如圖4所示。
由圖4仿真實(shí)驗(yàn)丟包率對(duì)比中可以看出,面對(duì)更大的突發(fā)流,RED算法雖然丟包率從1.8%提升到6.5%,但是不會(huì)產(chǎn)生大規(guī)模丟包現(xiàn)象。NRED算法對(duì)比RED算法,丟包率下降程度明顯,說明NRED算法對(duì)提升系統(tǒng)性能有著更好的效果。
圖4 丟包率對(duì)比圖:(a)N=65,(b)N=55,(c)N=45Fig.4 Comparison chartsof packet loss rates:(a)N=65,(b)N=55,(c)N=45
遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)使用NRED算法確保了系統(tǒng)不會(huì)發(fā)生超載崩潰現(xiàn)象,但是完成TCP連接后,服務(wù)器對(duì)于數(shù)據(jù)包的儲(chǔ)存過程依然會(huì)造成數(shù)據(jù)丟失。為驗(yàn)證雙緩存隊(duì)列技術(shù)能否解決上述問題,將繼續(xù)進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)參數(shù)設(shè)置如表2所示。
表2 對(duì)比實(shí)驗(yàn)參數(shù)表Tab.2 Parameters of comparativeexperiment
對(duì)比實(shí)驗(yàn)將分別用45、55、65臺(tái)醫(yī)療設(shè)備分別與服務(wù)器建立連接,隨后發(fā)送5組大小為2 kB的數(shù)據(jù)包。第一組實(shí)驗(yàn)無NRED算法、無雙緩存隊(duì)列技術(shù);第二組實(shí)驗(yàn)采用NRED算法、雙緩存隊(duì)列技術(shù)。對(duì)于NRED算法參數(shù)配置與仿真實(shí)驗(yàn)相同,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為星形拓?fù)渚W(wǎng)絡(luò),發(fā)送端采用TCP Reno協(xié)議,設(shè)置服務(wù)器帶寬C=1 Mbps,傳輸延遲為50 ms。每組實(shí)驗(yàn)共計(jì)100次,每次實(shí)驗(yàn)均需保證醫(yī)療設(shè)備斷開服務(wù)器,并重新與服務(wù)器連接。實(shí)驗(yàn)結(jié)果如表3所示。
表3中通過記錄不同數(shù)量的醫(yī)療設(shè)備成功連接服務(wù)器的結(jié)果,得到在不同實(shí)驗(yàn)條件下成功建立連接的比率。同時(shí),記錄醫(yī)療設(shè)備連接成功后服務(wù)器接收數(shù)據(jù)的結(jié)果,得到不同實(shí)驗(yàn)條件下服務(wù)器成功接收數(shù)據(jù)包的比率。
表3 實(shí)驗(yàn)結(jié)果表Tab.3 Experimental results
由表3可知,系統(tǒng)在使用改進(jìn)方案后,不同數(shù)量的醫(yī)療設(shè)備成功與服務(wù)器建立連接的比率均有提升,其結(jié)果也與仿真結(jié)果吻合,表明使用NRED方案對(duì)于實(shí)現(xiàn)設(shè)備連接具有提升作用。此外,系統(tǒng)在接收已連接成功的設(shè)備數(shù)據(jù)時(shí),使用雙緩存方案具有更高的接收成功率。
針對(duì)遠(yuǎn)程醫(yī)療設(shè)備監(jiān)測系統(tǒng)中,服務(wù)器要面對(duì)多設(shè)備同時(shí)發(fā)送數(shù)據(jù)的情況,如果對(duì)網(wǎng)絡(luò)流量不加以控制則會(huì)引發(fā)網(wǎng)絡(luò)擁塞現(xiàn)象,如果對(duì)數(shù)據(jù)包處理不及時(shí)則會(huì)造成數(shù)據(jù)丟失現(xiàn)象,本文研究了基于擁塞控制的多線程雙緩存算法。服務(wù)器利用NRED算法,根據(jù)當(dāng)前網(wǎng)絡(luò)情況,自適應(yīng)調(diào)整醫(yī)療設(shè)備的網(wǎng)絡(luò)接入量,從而確保每個(gè)醫(yī)療設(shè)備能夠與服務(wù)器建立連接。連接成功后,服務(wù)器通過帶有多線程安全的雙數(shù)據(jù)緩存隊(duì)列對(duì)數(shù)據(jù)進(jìn)行處理。實(shí)驗(yàn)結(jié)果表明,運(yùn)用基于擁塞控制的多線程雙緩存算法的數(shù)據(jù)傳輸改進(jìn)方案,有效提升了醫(yī)療設(shè)備與服務(wù)器的數(shù)據(jù)傳輸能力,達(dá)到了預(yù)期效果。