黃 滔 葉立芳
(廣東宜通世紀(jì)科技股份有限公司,廣東 廣州 510665)
網(wǎng)絡(luò)技術(shù)發(fā)展至今,其功德無(wú)量造福著全人類。在各種迅速發(fā)展的電子商務(wù)、網(wǎng)游等業(yè)務(wù)中,提出了對(duì)處理數(shù)據(jù)速度及網(wǎng)絡(luò)的傳輸速度更高的要求。在高帶寬延時(shí)廣域網(wǎng)的發(fā)展中,傳統(tǒng)的TCP將難以適應(yīng)。在高帶寬延時(shí)的網(wǎng)絡(luò)條件下,TCP流將有抖動(dòng)的發(fā)生,在不停的抖動(dòng)下讓路由器中的隊(duì)列長(zhǎng)度產(chǎn)生未穩(wěn)定性狀態(tài),且TCP的性能方面會(huì)伴隨著鏈路帶寬或延時(shí)的增加而降低。一些學(xué)者們對(duì)TCP的擁塞控制機(jī)制加以改進(jìn),經(jīng)由加以改變TCP擁塞窗口的調(diào)整參數(shù),使其在互聯(lián)網(wǎng)中發(fā)揮更好的性能,而并行TCP主要是經(jīng)由TCP流之間的相互協(xié)作及讓TCP連接的數(shù)目有所增加,從而有助于網(wǎng)絡(luò)傳輸?shù)男阅芊矫娴奶岣摺?/p>
在當(dāng)前的廣域網(wǎng)中,主要存在著三個(gè)方面的問題,它們分別是帶寬、延遲與可靠性,對(duì)并行TCP廣域網(wǎng)加速系統(tǒng)的設(shè)計(jì)采取雙網(wǎng)關(guān)模式,該加速系統(tǒng)主要由系統(tǒng)配置、會(huì)話控制的接入、數(shù)據(jù)應(yīng)用管理與網(wǎng)關(guān)間傳輸控制該四個(gè)模塊構(gòu)成。
1 系統(tǒng)配置。該模塊方便用戶針對(duì)各種不同服務(wù)同其側(cè)重的優(yōu)化指標(biāo)配置系統(tǒng)參數(shù),同時(shí)能達(dá)成加速效應(yīng),例如設(shè)置并發(fā)流的數(shù)目和調(diào)度方式,以及多種策略自身的參數(shù)等等。
2 會(huì)話控制的接入。此模塊可讓管理會(huì)話、同步控制會(huì)話與會(huì)話數(shù)據(jù)流量的控制得以實(shí)現(xiàn)。按用戶的需求而言,能對(duì)局域網(wǎng)中的各種服務(wù)應(yīng)用進(jìn)行訪問,在系統(tǒng)中分組管理各種會(huì)話,可按服務(wù)應(yīng)用的端口同IP地址來(lái)進(jìn)行。在管理會(huì)話當(dāng)中經(jīng)由所接入會(huì)話設(shè)置的ID碼,促使會(huì)話的迅速控制與定位得以實(shí)現(xiàn)。因進(jìn)行設(shè)計(jì)時(shí)采取雙網(wǎng)關(guān)加速模式,數(shù)據(jù)傳輸是由網(wǎng)關(guān)兩端會(huì)話接入同網(wǎng)間并行TCP隧道一同協(xié)作得以完成,在啟動(dòng)系統(tǒng)的時(shí)候服務(wù)器端會(huì)話已成功創(chuàng)建,在準(zhǔn)許會(huì)話接入負(fù)載時(shí),服務(wù)器端網(wǎng)關(guān)會(huì)分配一個(gè)空閑會(huì)話連接于接入客戶端網(wǎng)關(guān)新會(huì)話里,共同與網(wǎng)間隧道組成數(shù)據(jù)鏈路1條,以此達(dá)成用戶與服務(wù)器間進(jìn)行傳輸數(shù)據(jù)。
3 數(shù)據(jù)應(yīng)用管理。此模塊功能是對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)化轉(zhuǎn)發(fā),當(dāng)中含有分塊封裝的會(huì)話數(shù)據(jù)、分配轉(zhuǎn)發(fā)控制及分發(fā)控制、網(wǎng)間數(shù)據(jù)的重組解析。
該模塊經(jīng)由對(duì)會(huì)話類型加以判斷,分別完成對(duì)會(huì)話數(shù)據(jù)的接入與網(wǎng)間隧道會(huì)話數(shù)據(jù)的操作處理。系統(tǒng)將按會(huì)話接入的會(huì)話號(hào)同組標(biāo)識(shí)進(jìn)行分塊封裝其數(shù)據(jù),分配給相對(duì)應(yīng)的網(wǎng)間隧道會(huì)話需依據(jù)分配數(shù)據(jù)的策略,然后對(duì)網(wǎng)間隧道會(huì)話數(shù)據(jù)加以解析,然后進(jìn)行獲取控制信息,把當(dāng)中的有效數(shù)據(jù)分發(fā)至對(duì)應(yīng)的接入會(huì)話。
4 網(wǎng)關(guān)間的傳輸控制。在此模塊中,可實(shí)現(xiàn)隧道TCP會(huì)話的接入控制與輸送隧道數(shù)據(jù),也就是網(wǎng)關(guān)間并行TCP隧道的管理,在隧道TCP會(huì)話接入的控制過(guò)程中,它是按配置文件的服務(wù)器端網(wǎng)關(guān)的IP及隧道偵聽端口對(duì)隧道TCP會(huì)話分組進(jìn)行有效管理,由此產(chǎn)生并行TCP隧道。該系統(tǒng)的準(zhǔn)確定位是經(jīng)由隧道TCP會(huì)話標(biāo)識(shí)同隧道標(biāo)識(shí)一起加以實(shí)現(xiàn), socket可以完成其隧道數(shù)據(jù)的傳輸。
據(jù)此種設(shè)計(jì),使系統(tǒng)加速的客戶端網(wǎng)關(guān)模式與服務(wù)器端網(wǎng)關(guān)模式得到了實(shí)現(xiàn)。
1 數(shù)據(jù)轉(zhuǎn)化轉(zhuǎn)發(fā)的控制。若要使轉(zhuǎn)化轉(zhuǎn)發(fā)中的網(wǎng)關(guān)間數(shù)據(jù)與會(huì)話數(shù)據(jù)得以實(shí)現(xiàn),數(shù)據(jù)應(yīng)用管理對(duì)網(wǎng)關(guān)間數(shù)據(jù)傳輸?shù)陌庋b格式有所定義;數(shù)據(jù)包的用處是對(duì)會(huì)話數(shù)據(jù)加以攜帶,能對(duì)控制信息的確認(rèn)包與同步包加以攜帶,其在會(huì)話流量控制和會(huì)話同步控制過(guò)程中分別得到很好的應(yīng)用。
在數(shù)據(jù)轉(zhuǎn)發(fā)控制中,若果實(shí)現(xiàn)對(duì)會(huì)話數(shù)據(jù)進(jìn)行重組,可在會(huì)話的發(fā)送緩存過(guò)程中所獲得。而會(huì)話的發(fā)送緩存為BC(BlockContainer)對(duì)象,BC對(duì)象是以指向數(shù)據(jù)包中有效數(shù)據(jù)的指針同數(shù)據(jù)包序列號(hào)構(gòu)成映射,對(duì)數(shù)據(jù)包加以解析完后,能夠于會(huì)話發(fā)送的緩存BC對(duì)象里增添對(duì)應(yīng)表項(xiàng),這樣可使大量避免數(shù)據(jù)的轉(zhuǎn)儲(chǔ)存。
在會(huì)話中發(fā)送數(shù)據(jù)的時(shí)候,能夠?qū)彺鍮C中的表項(xiàng)進(jìn)行有效讀取,若果返回的為非空指針的話,可在對(duì)應(yīng)內(nèi)存地址中進(jìn)行對(duì)數(shù)據(jù)塊讀取,若果為空指針的話,數(shù)據(jù)包則有延遲現(xiàn)象產(chǎn)生,產(chǎn)生阻塞的必是發(fā)送線程,仍需等待該數(shù)據(jù)包來(lái)對(duì)此發(fā)送線程進(jìn)行有效激活。
2 會(huì)話管理。在加速網(wǎng)關(guān)系統(tǒng)會(huì)話類型的實(shí)現(xiàn)中,分別有網(wǎng)間隧道中的TCP會(huì)話與系統(tǒng)可外接入會(huì)話?;趕ocket編程中建立連接的方式有偵聽接收與主動(dòng)請(qǐng)求兩種,系統(tǒng)對(duì)服務(wù)器端與會(huì)話的客戶端分別能夠?qū)崿F(xiàn)異同的管理模式。
在服務(wù)器端管理的層次中,它同客戶端管理存在異曲同工之處,它們的區(qū)別主要在于服務(wù)端的管理目標(biāo)為TS(TcpServer),是以其監(jiān)聽的套接字同端口號(hào)為主鍵創(chuàng)建Map對(duì)象。
3 會(huì)話同步的控制。在實(shí)現(xiàn)系統(tǒng)的過(guò)程當(dāng)中,可以使著布爾型數(shù)組得到維護(hù)的是每個(gè)會(huì)話分組,數(shù)組位序也可當(dāng)作待分配的會(huì)話號(hào)資源,在兩端網(wǎng)關(guān)上,其數(shù)組布爾型元素的值也有著不同尋常的意義。
在服務(wù)器端中的網(wǎng)關(guān),它所能標(biāo)記的是其位序?qū)?yīng)會(huì)話的狀態(tài)為忙碌或空閑;在客戶端的網(wǎng)關(guān)中,它標(biāo)識(shí)其位序?qū)?yīng)會(huì)話的創(chuàng)建或斷開。該系統(tǒng)功能可達(dá)成會(huì)話號(hào)充分使會(huì)話狀態(tài)及會(huì)話的綁定,由此通過(guò)對(duì)網(wǎng)關(guān)兩端同樣的會(huì)話號(hào)資源進(jìn)行靈活設(shè)置,最終達(dá)成會(huì)話的同步性。
4 會(huì)話流量的控制。在TCP滑動(dòng)窗口的機(jī)制里,為實(shí)現(xiàn)流量的控制,該系統(tǒng)中卻選用相似TCP滑動(dòng)窗口流量控制機(jī)制,需經(jīng)由返回信息確認(rèn)進(jìn)行統(tǒng)計(jì)數(shù)據(jù)量。
依據(jù)用戶的配置來(lái)看,該系統(tǒng)為每個(gè)會(huì)話分組設(shè)定一個(gè)接收窗口值RCV_W與發(fā)送窗口值SND_W,并且要確保RCV_W不大于SND_W。而各個(gè)接入會(huì)話對(duì)兩個(gè)變量進(jìn)行了聲明,在整個(gè)流量控制的過(guò)程里,完全可由兩端處會(huì)話的發(fā)送線程和接收線程一起協(xié)同來(lái)完成。
在當(dāng)今互聯(lián)網(wǎng)上,廣域網(wǎng)廣泛存在著一些瓶頸,而能解決廣域網(wǎng)遇到的瓶頸卻是并行TCP加速網(wǎng)關(guān)系統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)會(huì)話接入的重定向、會(huì)話數(shù)據(jù)的截獲和數(shù)據(jù)網(wǎng)關(guān)間的并行傳輸?shù)?。為了在?shí)際網(wǎng)絡(luò)中可得到應(yīng)用,還需進(jìn)行完善網(wǎng)關(guān)的控制,客戶端網(wǎng)關(guān)同服務(wù)器端網(wǎng)關(guān)之間需要使?fàn)顟B(tài)信息的交互得以實(shí)現(xiàn),以便應(yīng)付網(wǎng)絡(luò)異常情況的產(chǎn)生,從而能使系統(tǒng)的健壯性得到有效提高。
[1]詹海菊.基于Linux的傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(17).