黃云婷,江 南,杜承烈
(1.西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,西安710129;2.中國(guó)船舶重工集團(tuán)公司750試驗(yàn)場(chǎng),昆明650051)
一種跨平臺(tái)的實(shí)時(shí)TCP/IP協(xié)議棧設(shè)計(jì)
黃云婷1,江 南2,杜承烈1
(1.西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,西安710129;2.中國(guó)船舶重工集團(tuán)公司750試驗(yàn)場(chǎng),昆明650051)
為提高異構(gòu)系統(tǒng)下網(wǎng)絡(luò)通信的實(shí)時(shí)性,提出一種跨平臺(tái)的實(shí)時(shí)TCP/IP協(xié)議棧(RTTCP/IP)實(shí)現(xiàn)方法。運(yùn)用操作系統(tǒng)適配技術(shù)屏蔽底層數(shù)據(jù)處理的差異性,增強(qiáng)協(xié)議棧的可移植性和可擴(kuò)展性;通過(guò)簡(jiǎn)化TCP/IP協(xié)議棧的結(jié)構(gòu),減少協(xié)議棧對(duì)系統(tǒng)資源的占用;采用內(nèi)存映射技術(shù),將內(nèi)核空間地址映射到用戶空間,避免用戶與內(nèi)核間的數(shù)據(jù)拷貝操作;引入基于時(shí)分多址的介質(zhì)訪問(wèn)機(jī)制和數(shù)據(jù)包優(yōu)先級(jí)策略,防止網(wǎng)絡(luò)傳輸沖突,解決數(shù)據(jù)包優(yōu)先級(jí)倒置問(wèn)題。測(cè)試結(jié)果表明,RTTCP/IP實(shí)現(xiàn)方法能夠減少系統(tǒng)開(kāi)銷和通信延遲,提高系統(tǒng)實(shí)時(shí)性和穩(wěn)定性。
TCP/IP協(xié)議棧;實(shí)時(shí)性;通信協(xié)議;內(nèi)存管理;數(shù)據(jù)包優(yōu)先級(jí);介質(zhì)訪問(wèn)
目前,以太網(wǎng)的應(yīng)用非常廣泛,TCP/IP協(xié)議棧已經(jīng)成為全球通信的網(wǎng)絡(luò)標(biāo)準(zhǔn)[1]。然而,在不同操作系統(tǒng)和硬件資源環(huán)境下,TCP/IP協(xié)議棧實(shí)現(xiàn)復(fù)雜且多樣,需要占用大量系統(tǒng)資源,其實(shí)時(shí)性能受到很大限制,不能滿足虛擬實(shí)驗(yàn)系統(tǒng)對(duì)實(shí)時(shí)性的要求。因此,探索一種實(shí)時(shí)TCP/IP協(xié)議棧的實(shí)現(xiàn)方法,使其適合于特定要求的分布虛擬實(shí)驗(yàn)系統(tǒng),具有很重要的意義和價(jià)值。本文提出一種跨平臺(tái)的實(shí)時(shí)TCP/IP(Real-time TCP/IP,RTTCP/IP)協(xié)議棧的實(shí)現(xiàn)方法。
TCP/IP協(xié)議族[2]是一個(gè)Internet協(xié)議系統(tǒng),TCP和IP是2個(gè)最著名和最重要的協(xié)議,它包括多種其他協(xié)議,如應(yīng)用協(xié)議、管理性協(xié)議以及一些工具性協(xié)議[3]。
TCP/IP協(xié)議棧由應(yīng)用層、傳輸層、網(wǎng)絡(luò)層以及網(wǎng)絡(luò)接口層構(gòu)成。TCP/IP的每層都包含了一些相對(duì)獨(dú)立的協(xié)議,其實(shí)現(xiàn)復(fù)雜,在實(shí)時(shí)性要求嚴(yán)格的分布虛擬實(shí)驗(yàn)系統(tǒng)存在以下問(wèn)題:
(1)體積大,占有系統(tǒng)資源多。標(biāo)準(zhǔn)的TCP/IP協(xié)議棧實(shí)現(xiàn)復(fù)雜,代碼量大,需要消耗大量的內(nèi)存空間。因此,為減少對(duì)系統(tǒng)資源的占用,提高系統(tǒng)性能,如何對(duì)標(biāo)準(zhǔn)TCP/IP協(xié)議棧進(jìn)行裁剪和優(yōu)化是需要考慮的問(wèn)題。
(2)移植性和可擴(kuò)展性差,不能滿足跨平臺(tái)的需要。因此,需要考慮操作系統(tǒng)、CPU體系和編譯器的不同,定義編譯器和操作系統(tǒng)無(wú)關(guān)的變量,避免系統(tǒng)的依賴性。
(3)任務(wù)調(diào)度造成的執(zhí)行時(shí)間不確定性,導(dǎo)致延遲難以估計(jì)。主要包括基于線程的優(yōu)先級(jí)倒置和基于數(shù)據(jù)包的優(yōu)先級(jí)倒置問(wèn)題帶來(lái)的處理延遲。
(4)數(shù)據(jù)包穿越協(xié)議棧帶來(lái)的延遲。主要包括數(shù)據(jù)復(fù)制延遲和協(xié)議處理延遲[4]。標(biāo)準(zhǔn)TCP/IP協(xié)議棧中數(shù)據(jù)包穿越協(xié)議棧期間至少需要經(jīng)過(guò)2次內(nèi)存拷貝操作,同時(shí)數(shù)據(jù)包可能會(huì)經(jīng)歷由一些傳輸控制算法帶來(lái)的不確定延遲,例如TCP協(xié)議為了保證傳輸?shù)目煽啃院蛡鬏斝?所使用的流量控制和擁塞控制算法易導(dǎo)致過(guò)大的時(shí)延和抖動(dòng)[5]。
(5)介質(zhì)傳輸?shù)牟淮_定性。數(shù)據(jù)鏈路層采用載波監(jiān)聽(tīng)多點(diǎn)接入/碰撞檢測(cè)(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)進(jìn)行傳輸介質(zhì)訪問(wèn),造成以太網(wǎng)通信延遲的不確定性和不公平性,導(dǎo)致系統(tǒng)性能下降。以太網(wǎng)的不確定性已經(jīng)成為其在工業(yè)實(shí)時(shí)控制應(yīng)用中的主要障礙[6]。
圖1為TCP/IP協(xié)議棧的層次結(jié)構(gòu)。

圖1 網(wǎng)絡(luò)層次結(jié)構(gòu)
根據(jù)以上分析,為提高異構(gòu)系統(tǒng)下網(wǎng)絡(luò)通信的實(shí)時(shí)性,本文提出一種基于TCP/IP的跨平臺(tái)實(shí)時(shí)協(xié)議棧實(shí)現(xiàn)方法。
RTTCP/IP協(xié)議棧通過(guò)簡(jiǎn)化TCP/IP協(xié)議棧的結(jié)構(gòu),降低了系統(tǒng)開(kāi)銷和協(xié)議處理時(shí)間;采用內(nèi)存映射技術(shù),避免了用戶與內(nèi)核間的數(shù)據(jù)拷貝操作;引入基于時(shí)分多址(Time Division Multiple Address, TDMA)的介質(zhì)訪問(wèn)機(jī)制和數(shù)據(jù)包優(yōu)先級(jí)策略,減少了網(wǎng)絡(luò)傳輸沖突,解決了數(shù)據(jù)包優(yōu)先級(jí)倒置問(wèn)題,提高了網(wǎng)絡(luò)通信的實(shí)時(shí)性能;運(yùn)用操作系統(tǒng)適配技術(shù)屏蔽了操作系統(tǒng)相關(guān)性,為上層提供一套操作系統(tǒng)無(wú)關(guān)接口。本節(jié)詳細(xì)介紹了RTTCP/IP協(xié)議棧實(shí)現(xiàn)過(guò)程采用的關(guān)鍵技術(shù)。
3.1 TCP/IP協(xié)議棧的簡(jiǎn)化
標(biāo)準(zhǔn)TCP/IP協(xié)議棧包含諸多協(xié)議,而一些協(xié)議在通信中并不是必需的,因此,RTTCP/IP協(xié)議棧只保留了TCP,UDP,IP,ICMP,ARP/RARP協(xié)議的實(shí)現(xiàn)。
圖2為 RTTCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu),最下層為L(zhǎng)inux和Windows操作系統(tǒng)內(nèi)核處理模塊,提供網(wǎng)絡(luò)通信協(xié)議處理的系統(tǒng)支持;操作系統(tǒng)適配層屏蔽操作系統(tǒng)相關(guān)性,為上層提供一套操作系統(tǒng)無(wú)關(guān)接口。Windows操作系統(tǒng)適配層采用NDIS[7-8]屏蔽底層不同的物理硬件,為上層提供一套操作系統(tǒng)無(wú)關(guān)接口,使上層可以和底層任何型號(hào)的網(wǎng)卡通信。

圖2 RTTCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)
系統(tǒng)核心部分是RTTCP/IP協(xié)議棧,其中,傳輸層裁剪掉了標(biāo)準(zhǔn)TCP協(xié)議中的擁塞控制、流量控制等復(fù)雜機(jī)制。網(wǎng)絡(luò)層將動(dòng)態(tài)ARP協(xié)議轉(zhuǎn)換為靜態(tài),并在創(chuàng)建套接字時(shí)完成地址解析,將之存儲(chǔ)于全局MAC鏈表中。數(shù)據(jù)發(fā)送過(guò)程中無(wú)需發(fā)送ARP請(qǐng)求,直接從本機(jī)MAC鏈表中獲取目的主機(jī)MAC地址即可。如果出現(xiàn)一個(gè)新的地址,則解析失敗。IP協(xié)議屏蔽IP分片,將TOS字段和分片偏移字段作為預(yù)留字段。數(shù)據(jù)鏈路層通過(guò)改變MAC層的CSMA/ CD協(xié)議以保證網(wǎng)絡(luò)通信時(shí)間的確定性。RTTCP/IP協(xié)議棧采用基于時(shí)間槽的MAC規(guī)則:TDMA方式,為每個(gè)節(jié)點(diǎn)分配時(shí)間片,每個(gè)節(jié)點(diǎn)在各自時(shí)間片內(nèi)發(fā)送數(shù)據(jù),從而確保每個(gè)數(shù)據(jù)發(fā)送時(shí)間的可預(yù)測(cè)性。
位于RTTCP/IP協(xié)議棧之上的是系統(tǒng)調(diào)用函數(shù)接口,應(yīng)用程序使用該接口傳遞請(qǐng)求給內(nèi)核,內(nèi)核完成所需處理,并將結(jié)果返回給應(yīng)用程序。
3.2 緩沖區(qū)管理機(jī)制
緩沖區(qū)管理機(jī)制[9]分為動(dòng)態(tài)內(nèi)存分配和靜態(tài)內(nèi)存分配。靜態(tài)分配是指編譯時(shí)就已經(jīng)分配好內(nèi)存空間,運(yùn)行中不需要分配內(nèi)存時(shí)間,在實(shí)時(shí)系統(tǒng)中非常重要。動(dòng)態(tài)分配是指運(yùn)行時(shí)才動(dòng)態(tài)分配所需的內(nèi)存空間,其分配的時(shí)間和成功率都不確定,不適合于實(shí)時(shí)性要求較高的應(yīng)用。
標(biāo)準(zhǔn)TCP/IP協(xié)議采用動(dòng)態(tài)內(nèi)存分配技術(shù),增加了系統(tǒng)調(diào)用時(shí)間,降低了系統(tǒng)的實(shí)時(shí)性能。RTTCP/ IP協(xié)議棧為了避免動(dòng)態(tài)內(nèi)存分配時(shí)間的不確定性,采用靜態(tài)緩沖區(qū)分配機(jī)制進(jìn)行內(nèi)存分配,該策略不會(huì)出現(xiàn)分配失敗的情況,且速度快。數(shù)據(jù)收發(fā)前,預(yù)先分配全局發(fā)送緩沖區(qū)池、全局重發(fā)緩沖區(qū)池和所創(chuàng)建套接字的接收緩沖區(qū)池以減少數(shù)據(jù)收發(fā)過(guò)程中進(jìn)行動(dòng)態(tài)內(nèi)存分配和釋放所需的系統(tǒng)開(kāi)銷;同時(shí)采用內(nèi)存映射技術(shù),將靜態(tài)分配的內(nèi)核空間映射到用戶空間,從而減少了用戶/內(nèi)核到內(nèi)核/用戶的數(shù)據(jù)拷貝過(guò)程。圖3為內(nèi)存映射關(guān)系示意圖。

圖3 內(nèi)存映射關(guān)系示意圖
靜態(tài)內(nèi)存分配機(jī)制減少了動(dòng)態(tài)內(nèi)存分配和釋放的系統(tǒng)開(kāi)銷以及系統(tǒng)調(diào)用時(shí)間,同時(shí)結(jié)合內(nèi)存映射技術(shù)將內(nèi)核空間地址映射到用戶空間減少了用戶和內(nèi)核之間的數(shù)據(jù)拷貝次數(shù),為零拷貝技術(shù)[10-11]的實(shí)現(xiàn)奠定了基礎(chǔ),提高了系統(tǒng)的實(shí)時(shí)性。
3.3 數(shù)據(jù)包優(yōu)先級(jí)機(jī)制
標(biāo)準(zhǔn)TCP/IP協(xié)議棧對(duì)數(shù)據(jù)包的處理順序采用先進(jìn)先出(First In First Out,FIFO)的方式,該方法實(shí)現(xiàn)簡(jiǎn)單、成本低,但是不能提供QoS功能和隔離技術(shù),缺乏公平性。這種方式將導(dǎo)致數(shù)據(jù)包的處理時(shí)間不是由優(yōu)先級(jí)決定而是由FIFO隊(duì)列中掛在其前面的數(shù)據(jù)包的數(shù)量來(lái)決定。采用這種方式來(lái)處理數(shù)據(jù)包將使得緊急的命令或數(shù)據(jù)包的處理時(shí)間不可預(yù)見(jiàn),進(jìn)而影響系統(tǒng)的實(shí)時(shí)性能。為了解決FIFO隊(duì)列處理數(shù)據(jù)包方式帶來(lái)的數(shù)據(jù)包優(yōu)先級(jí)倒置問(wèn)題,本文引入數(shù)據(jù)包優(yōu)先級(jí)標(biāo)識(shí),保證優(yōu)先級(jí)高的數(shù)據(jù)包處理先于優(yōu)先級(jí)低的數(shù)據(jù)包處理,而相同優(yōu)先級(jí)的數(shù)據(jù)仍然采用FIFO方式進(jìn)行數(shù)據(jù)包處理,進(jìn)而保證緊急數(shù)據(jù)包能夠在可預(yù)見(jiàn)的時(shí)間內(nèi)得到處理,以滿足網(wǎng)絡(luò)通信的實(shí)時(shí)性。圖4為優(yōu)先級(jí)隊(duì)列示意圖。

圖4 優(yōu)先級(jí)隊(duì)列示意圖
用戶調(diào)用發(fā)送函數(shù)時(shí),內(nèi)核處理函數(shù)按照優(yōu)先級(jí)將用戶寫入的數(shù)據(jù)添加到對(duì)應(yīng)的優(yōu)先隊(duì)列中。發(fā)送線程首先發(fā)送高優(yōu)先級(jí)隊(duì)列中的報(bào)文,再發(fā)送低優(yōu)先級(jí)隊(duì)列中的報(bào)文,相同優(yōu)先級(jí)的報(bào)文仍然采用FIFO方式進(jìn)行數(shù)據(jù)包處理。采用這種方式可以保證每次發(fā)送報(bào)文時(shí),總是能先將優(yōu)先級(jí)高的報(bào)文發(fā)送出去,從而減少了網(wǎng)絡(luò)擁塞時(shí)高優(yōu)先級(jí)報(bào)文的發(fā)送時(shí)延,使得緊急數(shù)據(jù)能夠得到快速處理。
當(dāng)有數(shù)據(jù)包到達(dá)網(wǎng)卡時(shí),網(wǎng)卡驅(qū)動(dòng)將數(shù)據(jù)包存放于接收緩沖區(qū)池中,接收線程負(fù)責(zé)將數(shù)據(jù)包從接收緩沖區(qū)池取出,并對(duì)其進(jìn)行解析,將正確的數(shù)據(jù)添加到對(duì)應(yīng)套接字的接收鏈表中,等待用戶讀取。用戶調(diào)用接收函數(shù),內(nèi)核處理函數(shù)從接收套接字的接收鏈表中取出最早接收到的數(shù)據(jù)返回給用戶,完成數(shù)據(jù)接收。
3.4 基于TDMA的介質(zhì)訪問(wèn)機(jī)制
標(biāo)準(zhǔn)TCP/IP協(xié)議棧采用CSMA/CD協(xié)議進(jìn)行傳輸介質(zhì)訪問(wèn),造成以太網(wǎng)通信延遲的不確定性。為了保證以太網(wǎng)通信延遲確定性以及可預(yù)測(cè)性,本文采用基于時(shí)分多址(Time Division Multiple Access,TDMA)[12]的介質(zhì)訪問(wèn)機(jī)制實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)介質(zhì)的訪問(wèn),以滿足實(shí)時(shí)以太網(wǎng)通信時(shí)間的可預(yù)測(cè)性要求。
TDMA方式將時(shí)間分成一系列的時(shí)間片,給物理網(wǎng)絡(luò)段內(nèi)的每個(gè)節(jié)點(diǎn)都分配一個(gè)時(shí)間片,相應(yīng)地,每個(gè)節(jié)點(diǎn)在各自固定的時(shí)間片內(nèi)發(fā)送消息,進(jìn)而保證每個(gè)信息的確切發(fā)送時(shí)間。TDMA機(jī)制允許節(jié)點(diǎn)在一個(gè)周期內(nèi)可以使用多個(gè)時(shí)間槽,而且可以設(shè)定特定的周期和在時(shí)間槽中的相位,這樣可限制網(wǎng)絡(luò)中的負(fù)載或在不同節(jié)點(diǎn)間共享時(shí)間槽。TDMA協(xié)議能給實(shí)時(shí)通信帶來(lái)合理的帶寬,每個(gè)節(jié)點(diǎn)在各自的時(shí)間槽內(nèi)可以傳送它們的數(shù)據(jù)信息,可以進(jìn)行大量的可預(yù)測(cè)通信,具有可靠性、可預(yù)測(cè)性、高效率和充分利用總線等特點(diǎn)[13]。對(duì)于同一時(shí)間槽內(nèi),如果存在多個(gè)數(shù)據(jù)包等待傳送,則按照數(shù)據(jù)包的優(yōu)先級(jí)進(jìn)行傳送,相同優(yōu)先級(jí)數(shù)據(jù)包按照FIFO方式進(jìn)行傳送。
3.5 操作系統(tǒng)適配技術(shù)
標(biāo)準(zhǔn)TCP/IP協(xié)議棧在可移植性和可擴(kuò)展性方面存在明顯的不足,不能滿足跨平臺(tái)的需求。為了保證TCP/IP協(xié)議棧的可移植性和可擴(kuò)展性,RTTCP/IP協(xié)議棧增加了操作系統(tǒng)適配層以屏蔽操作系統(tǒng)相關(guān)性,為上層提供一套操作系統(tǒng)無(wú)關(guān)接口,使上層可以和底層任何型號(hào)的網(wǎng)卡通信,如圖5所示。

圖5 操作系統(tǒng)適配結(jié)構(gòu)
操作系統(tǒng)適配技術(shù)的引入使得RTTCP/IP協(xié)議棧能夠適配不同操作系統(tǒng),保證一套協(xié)議棧代碼不需要修改即能在不同操作系統(tǒng)上直接運(yùn)行。協(xié)議處理接口通過(guò)操作系統(tǒng)適配層與各個(gè)操作系統(tǒng)接口交互,實(shí)現(xiàn)TCP/IP協(xié)議棧的跨平臺(tái)可移植性。
本文選用UDP和TCP協(xié)議在不同操作系統(tǒng)下通信來(lái)測(cè)試RTTCP/IP協(xié)議棧的實(shí)時(shí)性和穩(wěn)定性。測(cè)試方案為:在局域網(wǎng)內(nèi),客戶機(jī)向服務(wù)器發(fā)送長(zhǎng)度分別為 64 Byte,128 Byte,256 Byte,512 Byte, 800 Byte,1 024 Byte,1 200 Byte,1 500 Byte的UDP和TCP數(shù)據(jù)報(bào)文各1 000次,實(shí)驗(yàn)記錄1 000個(gè)數(shù)據(jù)報(bào)文往返時(shí)間作為測(cè)試參數(shù),記錄次數(shù)各50次,并對(duì)標(biāo)準(zhǔn)TCP/IP協(xié)議棧下UDP和TCP通信進(jìn)行相同測(cè)試,測(cè)試結(jié)果如圖6、圖7所示。

圖6 TCP/IP協(xié)議棧改進(jìn)前后UDP通信傳輸時(shí)間對(duì)比

圖7 TCP/IP協(xié)議棧改進(jìn)前后TCP通信傳輸時(shí)間對(duì)比
圖8為協(xié)議棧改進(jìn)前后UDP通信傳輸時(shí)間方差對(duì)比示意圖,圖9為協(xié)議棧改進(jìn)前后TCP通信傳輸時(shí)間方差對(duì)比示意圖。
從圖6、圖7可以看出,RTTCP/IP協(xié)議棧可以無(wú)縫地運(yùn)行在Windows和Linux操作系統(tǒng)下,并且比標(biāo)準(zhǔn)協(xié)議棧的傳輸延遲小,特別當(dāng)傳輸數(shù)據(jù)包大小超過(guò)1 000 Byte時(shí),效果更加明顯,從圖8、圖9可知,改進(jìn)后傳輸時(shí)間的樣本方差明顯更小,說(shuō)明RTTCP/IP協(xié)議棧傳輸延遲波動(dòng)小,具有更好的穩(wěn)定性。測(cè)試結(jié)果表明,RTTCP/IP協(xié)議棧具有跨平臺(tái)性,傳輸數(shù)據(jù)包的時(shí)間穩(wěn)定,且通過(guò)該協(xié)議棧傳輸相同大小數(shù)據(jù)包的速度明顯優(yōu)于標(biāo)準(zhǔn)的TCP/IP協(xié)議棧,能夠很好地滿足網(wǎng)絡(luò)通信的實(shí)時(shí)性。

圖8 TCP/IP協(xié)議棧改進(jìn)前后UDP通信傳輸時(shí)間方差對(duì)比

圖9 TCP/IP協(xié)議棧改進(jìn)前后TCP通信傳輸時(shí)間方差對(duì)比
本文提出一種跨平臺(tái)的實(shí)時(shí)TCP/IP協(xié)議棧實(shí)現(xiàn)方法,詳細(xì)介紹了RTTCP/IP協(xié)議棧實(shí)現(xiàn)中采用的一些關(guān)鍵技術(shù)。通過(guò)簡(jiǎn)化TCP/IP協(xié)議棧,設(shè)計(jì)一套內(nèi)存管理機(jī)制,采用數(shù)據(jù)包優(yōu)先級(jí)機(jī)制和基于TDMA的介質(zhì)訪問(wèn)機(jī)制等策略提高網(wǎng)絡(luò)通信的實(shí)時(shí)性,并通過(guò)對(duì)比實(shí)驗(yàn)證明了該實(shí)現(xiàn)方法的可行性。實(shí)驗(yàn)結(jié)果表明,該實(shí)現(xiàn)方法能保證實(shí)時(shí)網(wǎng)絡(luò)通信的可控性、穩(wěn)定性,適用于對(duì)實(shí)時(shí)性要求較高的場(chǎng)合。在今后工作中,將針對(duì)協(xié)議棧接口進(jìn)行性能和功能回歸測(cè)試,提出更高效和安全的處理流程,進(jìn)一步提高協(xié)議棧的通信性能及增加協(xié)議棧的可靠性。
[1] 杜 敏.TCP/IP協(xié)議棧的輕量級(jí)多線程實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2009.
[2] Richard S W.TCP/IP詳解卷1:協(xié)議[M].范建華,譯.北京:機(jī)械工業(yè)出版社,2010.
[3] 楊延雙,張建標(biāo),王全民,等.TCP/IP協(xié)議分析及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010.
[4] 陳進(jìn)朝,杜承烈,黃俊江.Xenomai平臺(tái)下基于以太網(wǎng)的實(shí)時(shí)通信方案[J].計(jì)算機(jī)工程,2012,38(10):86-88,91.
[5] 邢志浩,王 宏,淘 詞.RT-Linux下基于Ethernet的實(shí)時(shí)通信[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(13): 24-26.
[6] 陳 磊.從現(xiàn)場(chǎng)總線到工業(yè)以太網(wǎng)的實(shí)時(shí)性問(wèn)題研究[D].杭州:浙江大學(xué),2004.
[7] 陳 帆,史彩成.Windows驅(qū)動(dòng)開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.
[8] 譚 文,楊 瀟,邵堅(jiān)磊.寒江獨(dú)釣——Windows內(nèi)核安全編程[M].北京:電子工業(yè)出版社,2009.
[9] 于 曉,王家禮.嵌入式系統(tǒng)網(wǎng)絡(luò)實(shí)時(shí)性能的優(yōu)化[J].電子測(cè)量與儀器學(xué)報(bào),2009,23(3):60-64.
[10] Li Yunchen,Chiang M L.LyraNET:A Zero-copy TCP/ IP Pro-tocol Stack for Embedded Operating Systems [C]//Proc.of the 11th IEEE International Conference on Embedded and Real-time Computing Systems and Appli-cations.Hong Kong,China:[s.n.],2005: 123-128.
[11] 可向民,龔正虎,夏建東.零拷貝技術(shù)及其實(shí)現(xiàn)的研究[J].計(jì)算機(jī)工程與科學(xué),2000,22(5):17-24.
[12] Mao Jianlin,Wu Zhiming,Wu Xing.A TDMA SchedulingSchemeforMany-to-oneCommunicationin Wire-less Sensor Networks[J].Computer Communications,2007,30(4):863-872.
[13] 張 劼.基于RTnet實(shí)時(shí)協(xié)議的數(shù)據(jù)傳輸時(shí)間及QoS研究[D].蘭州:蘭州大學(xué),2008.
編輯 陸燕菲
A Design of Cross-platform Real-time TCP/IP Protocol Stack
HUANG Yun-ting1,JIANG Nan2,DU Cheng-lie1
(1.School of Computer,Northwestern Polytechnical University,Xi'an 710129,China;
2.750 Testing Ground,China Shipbuilding Industry Corporation,Kunming 650051,China)
In order to improve the real-time performance of a heterogeneous communication system,this paper proposes a cross-platform Real-time TCP/IP(RTTCP/IP)protocol stack.It introduces an OS independent layer in RTTCP/IP to shield the difference of system-level data processing to provide a good portability and extensibility.It simplifies the standard TCP/IP in RTTCP/IP so that less system resources are demanded,which makes RTTCP/IP a light-weight protocol stack.It avoids duplicating the data packets while delivering the data within the RTTCP/IP protocol stack,and it attempts to adopt a TDMA MAC in the RTTCP/IP protocol stack to avoid communication collisions.Besides,to guarantee the emergency data can be processed in the foreseeable period of time,it introduces a priority mechanism to tackle the thread,or packet,priority reversing problem.Test results show that the RTTCP/IP implementation method can reduce the system overhead and communication delay,and improve system real-time performance and stability.
TCP/IP protocol stack;real-time;communication protocol;memory management;packet priority; media access
1000-3428(2014)09-0134-04
A
TP393.04
10.3969/j.issn.1000-3428.2014.09.027
國(guó)家部委基金資助項(xiàng)目。
黃云婷(1989-),女,碩士研究生,主研方向:異構(gòu)網(wǎng)絡(luò),協(xié)議棧設(shè)計(jì);江 南,研究員;杜承烈,教授、博士生導(dǎo)師。
2013-07-25
2013-10-07E-mail:605090754@qq.com