DPDK結(jié)構(gòu)下類Socket接口研究與設(shè)計(jì)
本文關(guān)鍵詞:DPDK結(jié)構(gòu)下類Socket接口研究與設(shè)計(jì)
更多相關(guān)文章: 數(shù)據(jù)平面加速 網(wǎng)絡(luò)處理性能 協(xié)議棧 SMP DPDK
【摘要】:隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)中的應(yīng)用已經(jīng)不僅僅局限于簡(jiǎn)單的小流量數(shù)據(jù)通信,大并發(fā)量隨處可見(jiàn)。逐漸豐富的應(yīng)用給服務(wù)提供商的服務(wù)器、網(wǎng)絡(luò)設(shè)備帶來(lái)嚴(yán)峻的挑戰(zhàn),這就要求承載這些應(yīng)用的服務(wù)器和設(shè)備能夠提供更高的網(wǎng)絡(luò)處理性能,目前常見(jiàn)的解決方案就是增加服務(wù)器的核心數(shù),增強(qiáng)服務(wù)器的并行處理能力,但是實(shí)驗(yàn)表明,隨著系統(tǒng)核心數(shù)的增加,SMP系統(tǒng)的數(shù)據(jù)處理能力并不會(huì)隨著核心數(shù)的增加而成線性增長(zhǎng),一味的增加服務(wù)器的配置,對(duì)于服務(wù)器的性能提升顯然已經(jīng)換不來(lái)可觀的性能提升了。仔細(xì)分析不難發(fā)現(xiàn),造成這一問(wèn)題的原因就是傳統(tǒng)內(nèi)核協(xié)議棧的數(shù)據(jù)處理性能出現(xiàn)了瓶頸,例如對(duì)共享資源的訪問(wèn),鎖,線程調(diào)度,數(shù)據(jù)拷貝等等,這些瓶頸會(huì)隨著CPU核心數(shù)量的增加而愈發(fā)的明顯,所以僅僅針對(duì)用戶層的應(yīng)用程序的數(shù)據(jù)傳輸做優(yōu)化并不會(huì)帶來(lái)明顯的效果。本論文第二章首先通過(guò)研究和分析傳統(tǒng)內(nèi)核協(xié)議棧的設(shè)計(jì)架構(gòu),指出傳統(tǒng)內(nèi)核協(xié)議棧存在的設(shè)計(jì)瓶頸和缺陷,接著探討并分析Intel的數(shù)據(jù)平面開(kāi)發(fā)工具(DPDK),分別通過(guò)驅(qū)動(dòng)優(yōu)化,內(nèi)存優(yōu)化,線程調(diào)度優(yōu)化和無(wú)鎖隊(duì)列優(yōu)化四點(diǎn),簡(jiǎn)述其對(duì)數(shù)據(jù)平面進(jìn)行加速的基本原理,這里通過(guò)對(duì)Ovs和dpdk-Ovs進(jìn)行簡(jiǎn)單基礎(chǔ)的轉(zhuǎn)發(fā)對(duì)比測(cè)試,論證DPDK對(duì)數(shù)據(jù)包有更強(qiáng)的數(shù)據(jù)處理性能和可擴(kuò)展性。第三章是本論文的主體部分,是本論文最核心的工作,完成了三部分內(nèi)容的設(shè)計(jì),一是將基于DPDK提供的數(shù)據(jù)平面的API,完全在用戶態(tài)實(shí)現(xiàn)一個(gè)輕量級(jí)的TCP/IP協(xié)議棧,彌補(bǔ)DPDK尚無(wú)成熟協(xié)議棧的不足,它將實(shí)現(xiàn)基本的協(xié)議如IP、UDP、TCP、ARP和ICMP,為上層應(yīng)用程序提供協(xié)議支持;二是對(duì)上層應(yīng)用程序提供與原來(lái)兼容的類SOCKET接口,以靜態(tài)庫(kù)的形式提供給應(yīng)用程序調(diào)用,與協(xié)議棧進(jìn)程通過(guò)無(wú)鎖隊(duì)列實(shí)現(xiàn)通信;三是在此基礎(chǔ)上,分別移植基于UDP協(xié)議的TFTP服務(wù)器和基于TCP協(xié)議的開(kāi)源的HTTP服務(wù)器。最后,本論文將對(duì)TFTP服務(wù)器,TCP協(xié)議棧和HTTP服務(wù)器做詳細(xì)的功能和性能測(cè)試。測(cè)試結(jié)果表明,在相同的服務(wù)器配置下,基于DPDK的協(xié)議棧能夠提供優(yōu)于傳統(tǒng)內(nèi)核協(xié)議棧的網(wǎng)絡(luò)數(shù)據(jù)處理性能。
【關(guān)鍵詞】:數(shù)據(jù)平面加速 網(wǎng)絡(luò)處理性能 協(xié)議棧 SMP DPDK
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2016
【分類號(hào)】:TP334.7
【目錄】:
- 摘要5-6
- ABSTRACT6-16
- 第一章 緒論16-25
- 1.1 研究背景與意義16-18
- 1.2 國(guó)內(nèi)外研究現(xiàn)狀和發(fā)展態(tài)勢(shì)18-23
- 1.2.1 新浪的Fast Socket18-20
- 1.2.2 Intel DPDK20
- 1.2.3 風(fēng)河(Wind River) 網(wǎng)絡(luò)加速平臺(tái)20-21
- 1.2.4 開(kāi)源社區(qū)中的工作21-23
- 1.2.4.1 Net Map高性能網(wǎng)絡(luò)IO框架21
- 1.2.4.2 PF Ring高性能網(wǎng)絡(luò)IO框架21-23
- 1.2.4.3 Netdp、Rump Kernel、KNI23
- 1.3 論文主要工作23-24
- 1.4 論文組織結(jié)構(gòu)24-25
- 第二章 DPDK高性能數(shù)據(jù)平面加速套件25-36
- 2.1 DPDK總體架構(gòu)25-26
- 2.2 DPDK的數(shù)據(jù)平面加速原理26-31
- 2.2.1 驅(qū)動(dòng)層優(yōu)化26-28
- 2.2.1.1 NAPI技術(shù)26-27
- 2.2.1.2 Poll Mode Driver-UIO用戶態(tài)驅(qū)動(dòng)27-28
- 2.2.2 內(nèi)存優(yōu)化28-29
- 2.2.2.1 大頁(yè)內(nèi)存28-29
- 2.2.2.2 rte_mbuf結(jié)構(gòu)29
- 2.2.3 線程調(diào)度優(yōu)化29-30
- 2.2.4 無(wú)鎖隊(duì)列30-31
- 2.3 DPDK轉(zhuǎn)發(fā)性能測(cè)試31-35
- 2.3.1 測(cè)試目的和測(cè)試意義31
- 2.3.2 測(cè)試工具31
- 2.3.3 測(cè)試用例31-35
- 2.3.3.1 Dpdk Ovs和Ovs對(duì)物理網(wǎng)口間的數(shù)據(jù)轉(zhuǎn)發(fā)性能測(cè)試32-33
- 2.3.3.2 Dpdk Ovs和Ovs對(duì)物理網(wǎng)卡和虛擬網(wǎng)卡轉(zhuǎn)發(fā)性能測(cè)試33-34
- 2.3.3.3 Dpdk Ovs和Ovs對(duì)虛擬網(wǎng)卡之間的轉(zhuǎn)發(fā)性能測(cè)試34-35
- 2.3.4 測(cè)試結(jié)果分析35
- 2.4 本章小結(jié)35-36
- 第三章 基于DPDK的類SOCKET接口設(shè)計(jì)36-75
- 3.1 概述36-37
- 3.1.1 設(shè)計(jì)工作36
- 3.1.2 設(shè)計(jì)目的36
- 3.1.3 性能提高原因分析36-37
- 3.2 總體架構(gòu)37-39
- 3.3 平臺(tái)無(wú)關(guān)層39-42
- 3.3.1 系統(tǒng)初始化39-40
- 3.3.2 內(nèi)存管理40
- 3.3.3 數(shù)據(jù)包處理40-41
- 3.3.4 無(wú)鎖隊(duì)列41
- 3.3.5 定時(shí)器41
- 3.3.6 Hash查找41-42
- 3.4 消息通信的設(shè)計(jì)42-43
- 3.5 協(xié)議棧實(shí)現(xiàn)43-48
- 3.5.1 總體架構(gòu)43-46
- 3.5.1.1 入流量執(zhí)行流程44-45
- 3.5.1.2 出流量執(zhí)行流程45-46
- 3.5.2 數(shù)據(jù)包發(fā)送處理46-48
- 3.5.2.2 路由查找47
- 3.5.2.3 ARP協(xié)議的實(shí)現(xiàn)47-48
- 3.6 UDP協(xié)議的實(shí)現(xiàn)48-52
- 3.6.1 UDP傳輸控制塊48-49
- 3.6.2 UDP入流量處理49-50
- 3.6.3 UDP出流量處理50-51
- 3.6.4 UDP消息處理回調(diào)函數(shù)51
- 3.6.5 UDP checksum計(jì)算51
- 3.6.6 UDP hash計(jì)算51
- 3.6.7 UDP port自動(dòng)選擇51-52
- 3.6.8 其他相關(guān)API52
- 3.7 TCP協(xié)議的實(shí)現(xiàn)52-68
- 3.7.1 Tcp client結(jié)構(gòu)53-55
- 3.7.1.1 TCP狀態(tài)53
- 3.7.1.2 發(fā)送窗口Tx_w和接收窗口Rx_w53
- 3.7.1.3 發(fā)送隊(duì)列send和接收隊(duì)列recv53-54
- 3.7.1.4 定時(shí)重傳和快重傳54
- 3.7.1.5 累計(jì)發(fā)送54-55
- 3.7.2 TCP傳輸控制塊55
- 3.7.3 TCP連接建立55-59
- 3.7.3.1 兩個(gè)隊(duì)列55-58
- 3.7.3.2 accept event事件58-59
- 3.7.4 TCP選項(xiàng)59-60
- 3.7.5 TCP入流量處理60-66
- 3.7.5.1 tcp_ack_callback()回調(diào)函數(shù)60-61
- 3.7.5.2 tcp_syn_callback()回調(diào)函數(shù)61-62
- 3.7.5.3 tcp_syn_ack_callback()回調(diào)函數(shù)62-63
- 3.7.5.4 tcp_push_ack_callback()回調(diào)函數(shù)63-64
- 3.7.5.5 tcp_fin_ack_callback()回調(diào)函數(shù)64-66
- 3.7.6 TCP出流量處理66-68
- 3.7.6.1 Clark算法66
- 3.7.6.2 tcp_dequeue_burst函數(shù)66-68
- 3.7.7 TCP消息處理回調(diào)函數(shù)68
- 3.8 套接口層實(shí)現(xiàn)68-69
- 3.9 應(yīng)用的移植69-72
- 3.9.1 TFTP服務(wù)器的移植70-71
- 3.9.2 HTTP服務(wù)器的移植71-72
- 3.10 本章小結(jié)72-75
- 第四章 系統(tǒng)測(cè)試及結(jié)果分析75-97
- 4.1 TFTP服務(wù)器測(cè)試75-78
- 4.1.1 測(cè)試目的75
- 4.1.2 測(cè)試場(chǎng)景和測(cè)試步驟75-76
- 4.1.3 測(cè)試工具76
- 4.1.4 測(cè)試結(jié)果和分析76-78
- 4.2 TCP測(cè)試78-88
- 4.2.1 測(cè)試目的78
- 4.2.2 測(cè)試工具78
- 4.2.3 TCP功能測(cè)試78-85
- 4.2.3.1 測(cè)試場(chǎng)景部署78-79
- 4.2.3.2 三次握手、連接關(guān)閉、確認(rèn)79-81
- 4.2.3.3 累計(jì)發(fā)送和分次接收81-84
- 4.2.3.4 定時(shí)重傳84-85
- 4.2.4 TCP數(shù)據(jù)傳輸性能測(cè)試85-88
- 4.2.4.1 測(cè)試場(chǎng)景和測(cè)試步驟85-86
- 4.2.4.2 測(cè)試結(jié)果和分析86-88
- 4.3 HTTP服務(wù)器測(cè)試88-96
- 4.3.1 功能測(cè)試88-89
- 4.3.1.1 測(cè)試場(chǎng)景和測(cè)試步驟88
- 4.3.1.2 測(cè)試結(jié)果和分析88-89
- 4.3.2 性能測(cè)試——tinyhttpd單線程非并發(fā)性測(cè)試89-92
- 4.3.2.1 測(cè)試場(chǎng)景和測(cè)試步驟89-90
- 4.3.2.2 測(cè)試結(jié)果和分析90-92
- 4.3.3 性能測(cè)試——tinyhttpd多線程模型并發(fā)性測(cè)試92-96
- 4.3.3.1 測(cè)試場(chǎng)景與測(cè)試步驟93
- 4.3.3.2 測(cè)試結(jié)果分析93-96
- 4.4 本章小結(jié)96-97
- 第五章 總結(jié)與展望97-99
- 5.1 本論文主要成果97
- 5.2 下一步工作展望97-99
- 致謝99-100
- 參考文獻(xiàn)100-102
- 攻碩期間取得的研究成果102-103
【相似文獻(xiàn)】
中國(guó)期刊全文數(shù)據(jù)庫(kù) 前10條
1 李威;殷志堅(jiān);;ZLIP TCP/IP協(xié)議棧在嵌入式系統(tǒng)中的應(yīng)用[J];單片機(jī)與嵌入式系統(tǒng)應(yīng)用;2013年12期
2 謝雪松,胡長(zhǎng)陽(yáng);基于驅(qū)動(dòng)程序的協(xié)議棧設(shè)計(jì)[J];電子工程師;2000年04期
3 郝京宇,黃建華,賈風(fēng)根;協(xié)議棧的實(shí)現(xiàn)方法[J];計(jì)算機(jī)工程;2004年14期
4 何友鳴,郭凱紅;協(xié)議棧內(nèi)部非阻塞通信的一種實(shí)現(xiàn)策略[J];計(jì)算機(jī)系統(tǒng)應(yīng)用;2005年08期
5 李偉;;基于協(xié)議棧的移動(dòng)性技術(shù)對(duì)比分析[J];江蘇通信技術(shù);2006年06期
6 王;;楊斌;;Linux TCP/IP協(xié)議棧的設(shè)計(jì)及實(shí)現(xiàn)特點(diǎn)[J];云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版);2007年01期
7 宋麗華;張曉彤;王沁;郭艷飛;;嵌入式協(xié)議棧可重構(gòu)性分析與設(shè)計(jì)實(shí)現(xiàn)[J];計(jì)算機(jī)科學(xué);2007年09期
8 李慶江;;基于LwIP協(xié)議棧的嵌入式Web服務(wù)器的設(shè)計(jì)及實(shí)現(xiàn)[J];山東輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版);2008年04期
9 孟浩;;一種通用嵌入式Web服務(wù)器精簡(jiǎn)協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)[J];科技資訊;2008年34期
10 徐宏U,
本文編號(hào):605107
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/605107.html