資源描述:
《基于linux的socket網(wǎng)絡(luò)編程的性能優(yōu)化》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、萬方數(shù)據(jù)第17卷第9期V01.17No.9電子設(shè)計(jì)工程ElectronicDesignEngineering2009年9月Sept.2009基才Linux的Socket網(wǎng)絡(luò)編程的性能優(yōu)化王雷1.王子淘2(1.太原理工大學(xué)信息和通信工程學(xué)院。山西太原030024;2.天津大學(xué)計(jì)算機(jī)學(xué)院,天津300072)摘要:介紹在Linux操作系統(tǒng)環(huán)境下Socket網(wǎng)絡(luò)編程的原理、流程和最終實(shí)現(xiàn)。編程采用客戶端/服務(wù)器模式。提出解決多個(gè)客戶端連接服務(wù)器時(shí)無法處理!/O多路復(fù)用問題的方法。提出通過最小化報(bào)文傳輸來減少傳輸時(shí)延,為BandwidthDelayProduct調(diào)節(jié)TCP窗口。實(shí)現(xiàn)充分利用帶寬
2、提高Linux的Socket性能。在實(shí)際網(wǎng)絡(luò)傳輸環(huán)境復(fù)雜多變的情況下。達(dá)到優(yōu)化網(wǎng)絡(luò)傳榆性能的目的。關(guān)鍵詞:Linux;性能優(yōu)化;Socket;select()中圖分類號(hào):7rP393.09文獻(xiàn)標(biāo)識(shí)碼:A文件編號(hào):1674—6236(2009)09-0101-03PerformanceoptimizationofSocketnetworkprogrammingbasedonLinuxWANGLeil,WANGZi-ta02(1.SchoolofInformationandCommunicationEngineering,TaiyuanUnivers蚵ofTechnology,Taiyu
3、an030024,China,-2.SchoolofComputer,TianjinUniversity,Tianjin300072,China)Abstract:ThispaperdescribestheprincipleprocessandultimateofsocketnetworkprogrammingintheenvironmentofLinux.TheprogrammingadoptsClient/Servermode,itshowsamethodtosolvetheproblemthatisunabletodealwithmul-tiplexingofI/Owhense
4、veralclientsconnecttoserveratthesametime.ThispaperproposestoimprovetheperformanceofSocketbasedonLinuxbyminimizingmessagetransmissiontoreducethedelay,andadjustsTCPwindowforBandwidthDelayProducttomakefulluseofbandwidth.Atlast,weachievethepurposeofperformanceoptimizationofnetworkinmorecomplexityne
5、tworkenvironment.Keywords:Linux;performanceoptimization;Socket;select()1引言隨著Intemet的日益發(fā)展和普及.網(wǎng)絡(luò)在嵌入式系統(tǒng)中應(yīng)用非常廣泛,越來越多的嵌入式設(shè)備采用Linux操作系統(tǒng)。Linux是一個(gè)源代碼公開的免費(fèi)操作系統(tǒng),具有強(qiáng)移植性Ⅲ,所以對(duì)基于Linux的Socket網(wǎng)絡(luò)編程的研究越來越重要。2Socket簡(jiǎn)介在Linux中的網(wǎng)絡(luò)編程通過Socket接13進(jìn)行.是一種特殊的I/O,也是一種特殊的文件描述符。Socket是使用標(biāo)準(zhǔn)Linux文件符(filedescriptor)和其他程序通信的方式。這里
6、Socket編程采用客戶/服務(wù)器模式如圖l所示。匪巫口匝互圇圖l客戶端,服務(wù)器模式Socket實(shí)際是網(wǎng)絡(luò)傳輸層供給應(yīng)用層的編程接口。傳輸層則在網(wǎng)絡(luò)層的基礎(chǔ)上提供進(jìn)程到進(jìn)程間的邏輯通道.而應(yīng)用層的進(jìn)程則利用傳輸層向另一臺(tái)主機(jī)的某一進(jìn)程通信。Socket就是應(yīng)用層與傳輸層之間的橋梁。如圖2所示。SeryerClient應(yīng)用層lfs。。ket傳輸層網(wǎng)絡(luò)屢數(shù)據(jù)鐒路層物理層應(yīng)用層lfsock。t傳輸層網(wǎng)絡(luò)層數(shù)據(jù)錨路層物理層圖2Socket是應(yīng)用層與傳輸層之間的橋梁使用Socket編程時(shí)可以開發(fā)客戶機(jī)和服務(wù)器應(yīng)用程序,它們可以在本地網(wǎng)絡(luò)上進(jìn)行通信。也可以通過Interact在全球范圍內(nèi)進(jìn)行通信。
7、編寫并運(yùn)行Socket的客戶端和服務(wù)器端程序,雙方通過套接字建立了服務(wù)連接請(qǐng)求,并且通過一些方法提高Socket的性能。3Socket編程3.1Socket類型常見的Socket有3種類型121:(1)流式Socket(SOCK-s1'REAM)它提供可靠的通信流。使用匝向連接的TCP協(xié)議.從而保證數(shù)據(jù)傳輸?shù)恼_性和順序性:收稿日期:2009--04—17mtqm號(hào)-:200904040(2)數(shù)據(jù)報(bào)Socket(SOCK_DGRAM)數(shù)據(jù)通過相互獨(dú)立作者簡(jiǎn)