[發(fā)明專(zhuān)利]傳輸控制協(xié)議/網(wǎng)間協(xié)議的協(xié)議棧讀取數(shù)據(jù)的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 200810189145.5 | 申請(qǐng)日: | 2008-12-29 |
| 公開(kāi)(公告)號(hào): | CN101494661A | 公開(kāi)(公告)日: | 2009-07-29 |
| 發(fā)明(設(shè)計(jì))人: | 劉凡 | 申請(qǐng)(專(zhuān)利權(quán))人: | 深圳市同洲電子股份有限公司 |
| 主分類(lèi)號(hào): | H04L29/08 | 分類(lèi)號(hào): | H04L29/08;H04L12/56 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 逯長(zhǎng)明 |
| 地址: | 518057廣東省深圳市南*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 傳輸 控制 協(xié)議 讀取 數(shù)據(jù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種傳輸控制協(xié)議/網(wǎng)間協(xié)議的協(xié)議 棧讀取數(shù)據(jù)的方法和裝置。
背景技術(shù)
在網(wǎng)絡(luò)編程中有時(shí)候需要從傳輸控制協(xié)議/網(wǎng)間協(xié)議(Transmission Control?Protocol/Internet?Protocol,TCP/IP)的協(xié)議棧中讀取用戶(hù)數(shù)據(jù)報(bào)協(xié)議 (User?Datagram?Protocol,UDP)數(shù)據(jù)包。
現(xiàn)有技術(shù)中提取UDP數(shù)據(jù)包的技術(shù)方案可以為:首先,數(shù)據(jù)的接收方和 發(fā)送方協(xié)商UDP數(shù)據(jù)包負(fù)載的格式,以及接收UDP數(shù)據(jù)包的端口;接收方 使用捆綁bind函數(shù)來(lái)指定上述協(xié)商好的端口接收UDP數(shù)據(jù)包,接收方通過(guò) 系統(tǒng)調(diào)用接收recv()、recvfrom()或recvmsg()函數(shù)監(jiān)聽(tīng)上述接收UDP 數(shù)據(jù)包的端口;然后,發(fā)送方發(fā)送數(shù)據(jù)包給接收方,接收方執(zhí)行系統(tǒng)調(diào)用將 一個(gè)UDP數(shù)據(jù)包從TCP/IP協(xié)議棧中拷貝到用戶(hù)態(tài),然后根據(jù)協(xié)商的數(shù)據(jù)包 負(fù)載的格式對(duì)UDP數(shù)據(jù)包負(fù)載進(jìn)行解析,接下來(lái)可以進(jìn)行各種處理和修改 (如刪除和替換),還可以執(zhí)行把處理結(jié)果發(fā)回給原始發(fā)送方或者其它設(shè)備 等。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn):每次系統(tǒng)調(diào)用都需要耗費(fèi)一定的時(shí) 間;一次系統(tǒng)調(diào)用還會(huì)進(jìn)行一次數(shù)據(jù)從內(nèi)核態(tài)向用戶(hù)態(tài)的搬移,花費(fèi)了較多 的中央處理器(central?processing?unit,CPU)的計(jì)算時(shí)間,造成了網(wǎng)絡(luò)輸入 輸出(Input/Output,I/O)能力低下。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例要解決的技術(shù)問(wèn)題是提供一種傳輸控制協(xié)議/網(wǎng)間協(xié)議的協(xié) 議棧讀取數(shù)據(jù)的方法和裝置,提升網(wǎng)絡(luò)輸入輸出能力。
為解決上述技術(shù)問(wèn)題,本發(fā)明所提供的傳輸控制協(xié)議/網(wǎng)間協(xié)議的協(xié)議棧 讀取數(shù)據(jù)的方法實(shí)施例可以通過(guò)以下技術(shù)方案實(shí)現(xiàn):
獲取標(biāo)識(shí);所述標(biāo)識(shí)指定了讀取傳輸控制協(xié)議/網(wǎng)間協(xié)議TCP/IP的協(xié)議棧 中的多個(gè)用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP數(shù)據(jù)包;
獲取長(zhǎng)度;所述長(zhǎng)度指定將要讀取的UDP數(shù)據(jù)包的總長(zhǎng)度;
獲取數(shù)據(jù):根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度從所述協(xié)議棧中讀取對(duì) 應(yīng)個(gè)數(shù)的UDP數(shù)據(jù)包;
將所述個(gè)數(shù)的UDP數(shù)據(jù)包拷貝到用戶(hù)態(tài)。
可選地,所述標(biāo)識(shí)指定的讀取UDP數(shù)據(jù)包的總長(zhǎng)度為5個(gè)UDP數(shù)據(jù)包的長(zhǎng) 度到7個(gè)UDP數(shù)據(jù)包的長(zhǎng)度之間。
可選地,在未獲取到所述標(biāo)識(shí)時(shí),從協(xié)議棧中讀取一個(gè)UDP數(shù)據(jù)包。
可選地,所述獲取到的指定標(biāo)識(shí)為UDP保留標(biāo)識(shí)。
可選地,所述獲取標(biāo)識(shí)之前還包括:
通過(guò)系統(tǒng)調(diào)用從UDP套接口接收UDP數(shù)據(jù)包。
可選地,所述根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度從所述協(xié)議棧中讀取 對(duì)應(yīng)個(gè)數(shù)的UDP數(shù)據(jù)包包括:
根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度讀取與所述總長(zhǎng)度相同的UDP數(shù)據(jù) 包;或
根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度讀取與所述總長(zhǎng)度最接近且不小于 所述總長(zhǎng)度的整數(shù)個(gè)UDP數(shù)據(jù)包。
本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)讀取裝置,包括:
標(biāo)識(shí)獲取單元,用于獲取標(biāo)識(shí);所述標(biāo)識(shí)指定了讀取傳輸控制協(xié)議/網(wǎng)間 協(xié)議TCP/IP的協(xié)議棧中的多個(gè)用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP數(shù)據(jù)包;
長(zhǎng)度獲取單元,用于獲取長(zhǎng)度;所述長(zhǎng)度指定了讀取UDP數(shù)據(jù)包的總長(zhǎng) 度;
讀取單元,用于根據(jù)上述指定的UDP數(shù)據(jù)包的總長(zhǎng)度從所述協(xié)議棧中讀 取對(duì)應(yīng)個(gè)數(shù)的UDP數(shù)據(jù)包;
拷貝單元,用于將所述個(gè)數(shù)的UDP數(shù)據(jù)包拷貝到用戶(hù)態(tài)。
可選地,上述數(shù)據(jù)讀取裝置還包括:
所述讀取單元,還用于當(dāng)標(biāo)識(shí)獲取單元未獲取到所述標(biāo)識(shí)時(shí),執(zhí)行從所 述協(xié)議棧中讀取一個(gè)UDP數(shù)據(jù)包。
可選地,上述數(shù)據(jù)讀取裝置還包括:
接收單元,用于通過(guò)系統(tǒng)調(diào)用從UDP套接口接收UDP數(shù)據(jù)包。
可選地,所述讀取單元,具體用于根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度 讀取與所述總長(zhǎng)度相同的UDP數(shù)據(jù)包;或
根據(jù)所述指定的UDP數(shù)據(jù)包的總長(zhǎng)度讀取與所述總長(zhǎng)度最接近且不小于 所述總長(zhǎng)度的整數(shù)個(gè)UDP數(shù)據(jù)包。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于深圳市同洲電子股份有限公司,未經(jīng)深圳市同洲電子股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810189145.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 圖像診斷裝置、醫(yī)用系統(tǒng)以及協(xié)議管理方法
- 一種自動(dòng)協(xié)議識(shí)別方法及系統(tǒng)
- 客戶(hù)端中遞送協(xié)議數(shù)據(jù)單元的方法及相關(guān)裝置
- 遠(yuǎn)程通訊系統(tǒng)
- 一種基于可拼裝通信協(xié)議棧的通信方法及系統(tǒng)
- 一種實(shí)現(xiàn)國(guó)產(chǎn)平臺(tái)PXEBOOT的協(xié)議架構(gòu)
- CBTC通信系統(tǒng)協(xié)議解析方法、協(xié)議庫(kù)管理方法
- 一種協(xié)議轉(zhuǎn)換的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種用于燈光控制的協(xié)議轉(zhuǎn)換系統(tǒng)及方法
- 一種通用工藝人工智能物聯(lián)網(wǎng)網(wǎng)關(guān)





