欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種計(jì)算機(jī)網(wǎng)絡(luò)端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法

文檔序號:6368298閱讀:264來源:國知局
專利名稱:一種計(jì)算機(jī)網(wǎng)絡(luò)端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種計(jì)算機(jī)網(wǎng)絡(luò)端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法,尤其是使用多任務(wù)操作系統(tǒng)的端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法。
2、多任務(wù)操作系統(tǒng)多任務(wù)操作系統(tǒng)中多個(gè)任務(wù)并發(fā)執(zhí)行,由操作系統(tǒng)協(xié)調(diào)多個(gè)任務(wù)共享CPU。當(dāng)前,大多數(shù)多任務(wù)操作系統(tǒng)的實(shí)現(xiàn)是采用多進(jìn)程并發(fā)的方法。
3、進(jìn)程(process)進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的一種動(dòng)態(tài)執(zhí)行過程。
4、進(jìn)程的并發(fā)執(zhí)行指多個(gè)進(jìn)程在同一計(jì)算機(jī)系統(tǒng)中的并發(fā)執(zhí)行,由操作系統(tǒng)協(xié)調(diào)多個(gè)進(jìn)程共享CPU。
5、進(jìn)程切換指處理機(jī)從一個(gè)進(jìn)程的運(yùn)行轉(zhuǎn)到另一個(gè)進(jìn)程上運(yùn)行。
6、用戶模式是處理機(jī)的一種執(zhí)行模式,又叫非特權(quán)模式,用戶程序在這種模式下運(yùn)行,僅有有限的特權(quán),用來保障操作系統(tǒng)的安全性。
7、系統(tǒng)模式是處理機(jī)的一種執(zhí)行模式,又叫做特權(quán)模式、核心模式,操作系統(tǒng)核心程序在這種模式下運(yùn)行且能夠獲得更多的特權(quán)。
8、時(shí)間戳計(jì)算機(jī)系統(tǒng)中標(biāo)記某種事件的發(fā)生的時(shí)間信息。
在目前廣泛使用的傳統(tǒng)時(shí)間戳標(biāo)記方法中,為網(wǎng)絡(luò)數(shù)據(jù)包標(biāo)記發(fā)送/接收時(shí)間戳信息的任務(wù)運(yùn)行在用戶模式下,由于操作系統(tǒng)多任務(wù)并發(fā)的特性,為了提高整機(jī)的資源利用率,系統(tǒng)的不同任務(wù)之間存在頻繁的切換,影響了時(shí)間戳信息的精確性。
對于端主機(jī)系統(tǒng)發(fā)送出去的數(shù)據(jù)包,利用傳統(tǒng)時(shí)間戳標(biāo)記方法獲得發(fā)送時(shí)間戳的方式通常包含以下步驟步驟1應(yīng)用進(jìn)程產(chǎn)生待發(fā)送數(shù)據(jù)包;步驟2應(yīng)用進(jìn)程通過系統(tǒng)調(diào)用獲得當(dāng)前時(shí)間,作為數(shù)據(jù)包的發(fā)送時(shí)間戳;步驟3應(yīng)用進(jìn)程發(fā)送數(shù)據(jù)包;步驟4數(shù)據(jù)包被發(fā)送到物理鏈路上。
如果步驟1到步驟4連續(xù)不間斷執(zhí)行,系統(tǒng)可以獲得比較精確的數(shù)據(jù)包發(fā)送時(shí)間戳。但是由于多任務(wù)操作系統(tǒng)具有并發(fā)性,在用戶模式運(yùn)行的應(yīng)用進(jìn)程經(jīng)常由于中斷、系統(tǒng)調(diào)用等原因進(jìn)入操作系統(tǒng)核心,并發(fā)生進(jìn)程切換。對于上述記錄時(shí)間戳信息并發(fā)送數(shù)據(jù)包的應(yīng)用進(jìn)程而言,如果進(jìn)程切換發(fā)生在步驟2、3之間,也即在系統(tǒng)記錄時(shí)間戳信息之后,由于進(jìn)程切換使得該數(shù)據(jù)包并未立即被發(fā)送出去,記錄時(shí)間戳信息與發(fā)送數(shù)據(jù)包之間存在一定的延遲時(shí)間,則該時(shí)間戳沒有準(zhǔn)確的反映出數(shù)據(jù)包被發(fā)送到鏈路上的時(shí)間信息。附

圖1是進(jìn)程切換對現(xiàn)有給發(fā)送數(shù)據(jù)包打時(shí)間戳方法的影響示意圖,應(yīng)用進(jìn)程在時(shí)刻t1創(chuàng)建數(shù)據(jù)包,在時(shí)刻t2打時(shí)間戳,但此后由于進(jìn)程切換被掛起,直到時(shí)刻t3該應(yīng)用進(jìn)程被喚醒,將數(shù)據(jù)包發(fā)送出去,而由于進(jìn)程切換導(dǎo)致的延遲(t3-t2)可能達(dá)到數(shù)十個(gè)毫秒甚至數(shù)百毫秒,因而大大降低了時(shí)間戳的精度。此外,即使步驟2、3之間沒有發(fā)生進(jìn)程切換,由于步驟3是在用戶模式執(zhí)行的操作,步驟4是在系統(tǒng)模式執(zhí)行的操作,二者之間可能存在較大延遲,這也將影響數(shù)據(jù)包發(fā)送時(shí)間戳的精確度,如附圖1中的延遲(t4-t3)。
對于端主機(jī)系統(tǒng)接收的數(shù)據(jù)包,獲得接收時(shí)間戳的方式通常包含以下步驟步驟1運(yùn)行在系統(tǒng)內(nèi)核中的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序從鏈路接口上接收數(shù)據(jù)包并暫存在內(nèi)核緩沖中;步驟2應(yīng)用進(jìn)程得到處理器資源,獲得數(shù)據(jù)包;步驟3應(yīng)用進(jìn)程通過系統(tǒng)調(diào)用獲得當(dāng)前時(shí)間,作為該數(shù)據(jù)包的接收時(shí)間戳;如果步驟1與步驟2之間或者步驟2與步驟3之間由于進(jìn)程切換造成較大延遲,則應(yīng)用進(jìn)程獲得的數(shù)據(jù)包接收時(shí)間戳將非常不精確,這將直接影響到網(wǎng)絡(luò)性能參數(shù)計(jì)算的準(zhǔn)確度。附圖2是進(jìn)程切換對現(xiàn)有給接收數(shù)據(jù)包打時(shí)間戳方法的影響示意圖,應(yīng)用進(jìn)程在時(shí)刻t0由于進(jìn)程切換被掛起,數(shù)據(jù)包1、2分別于時(shí)刻t1,t2到達(dá)。由于應(yīng)用進(jìn)程沒有獲得處理機(jī),兩數(shù)據(jù)包被存儲(chǔ)在系統(tǒng)緩沖中,在時(shí)刻t3,應(yīng)用進(jìn)程獲得處理機(jī)被重新執(zhí)行,分別在時(shí)刻t3,t4標(biāo)記數(shù)據(jù)包1、2的時(shí)間戳信息。如果該應(yīng)用進(jìn)程用于估計(jì)網(wǎng)絡(luò)帶寬,對于該應(yīng)用進(jìn)程而言,數(shù)據(jù)包1、2到達(dá)的時(shí)間間隔真實(shí)值應(yīng)為t2-t1,但是由于多進(jìn)程并發(fā)帶來的緩存的影響,該時(shí)間間隔變?yōu)閠4-t3,應(yīng)用程序會(huì)錯(cuò)誤的將系統(tǒng)緩沖到用戶進(jìn)程緩沖的內(nèi)存拷貝速率(數(shù)據(jù)包2的包長/(t4-t3))當(dāng)作數(shù)據(jù)包從網(wǎng)絡(luò)到達(dá)的速率,其直接影響是把網(wǎng)絡(luò)帶寬估計(jì)過高。
目前,大多數(shù)端主機(jī)操作系統(tǒng)中都提供了包過濾器(Packet Filter),如Linux,BSD,Soloris,HP-UNIX,Windows等系統(tǒng)。附圖3是現(xiàn)有端主機(jī)操作系統(tǒng)中的包過濾器示意圖,所謂包過濾器是操作系統(tǒng)內(nèi)核中負(fù)責(zé)捕獲進(jìn)出端主機(jī)系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)包的一個(gè)內(nèi)核模塊,該模塊可以由用戶設(shè)置特定的過濾條件進(jìn)行數(shù)據(jù)包過濾操作,從而只將滿足過濾條件需要的數(shù)據(jù)包及相關(guān)信息傳送給用戶進(jìn)程。包過濾器在捕獲一個(gè)數(shù)據(jù)包時(shí),會(huì)給數(shù)據(jù)包標(biāo)記相應(yīng)的發(fā)送/接收時(shí)間戳,該時(shí)間戳與數(shù)據(jù)包實(shí)際的發(fā)送/接收時(shí)間非常近似,并且由于這些操作由系統(tǒng)核心在系統(tǒng)模式下執(zhí)行,因此不會(huì)受到多進(jìn)程并發(fā)的影響。雖然包過濾器標(biāo)記的時(shí)間戳與理想的數(shù)據(jù)包時(shí)間戳之間存在著一定的誤差,但這一誤差非常小,可近似忽略。因此可以利用包過濾器來標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包的精確時(shí)間戳,使之不受多進(jìn)程并發(fā)的影響。
同時(shí),為解決接收數(shù)據(jù)包時(shí)可能遇到的時(shí)間戳與數(shù)據(jù)包之間不匹配的問題,提出時(shí)間戳回退方法。
步驟1中時(shí)間戳存取模塊設(shè)置兩個(gè)先進(jìn)先出時(shí)間戳隊(duì)列,一個(gè)存放發(fā)送數(shù)據(jù)包時(shí)間戳信息,一個(gè)存放接收數(shù)據(jù)包時(shí)間戳信息;時(shí)間戳存取模塊從包過濾器獲得一個(gè)數(shù)據(jù)包時(shí)間戳信息后,根據(jù)該數(shù)據(jù)包是用戶進(jìn)程發(fā)送的數(shù)據(jù)包,還是用戶進(jìn)程接收的數(shù)據(jù)包,將時(shí)間戳信息相應(yīng)地放入發(fā)送時(shí)間戳隊(duì)列或接收時(shí)間戳隊(duì)列的隊(duì)尾;在用戶請求從時(shí)間戳存取模塊獲得一個(gè)時(shí)間戳?xí)r,如果用戶請求獲得發(fā)送時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的發(fā)送時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶;如果用戶請求獲得接收時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的接收時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶。
步驟4中,用戶進(jìn)程發(fā)送一個(gè)數(shù)據(jù)包之后,在發(fā)送另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)發(fā)送時(shí)間戳,用戶進(jìn)程接收一個(gè)數(shù)據(jù)包之后,在接收另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)接收時(shí)間戳。
步驟4為解決接收數(shù)據(jù)包時(shí)可能遇到的時(shí)間戳與數(shù)據(jù)包之間不匹配的問題,提出的時(shí)間戳回退檢查,包括步驟步驟1判斷接收的數(shù)據(jù)包是否符合包過濾器過濾條件,如果符合,進(jìn)入步驟2,否則將時(shí)間戳退回給時(shí)間戳存取模塊;步驟2如果接收的數(shù)據(jù)包不是用戶進(jìn)程想要打時(shí)間戳的數(shù)據(jù)包,則丟棄該數(shù)據(jù)包和本次獲得的時(shí)間戳,否則,該時(shí)間戳就是用戶需要的時(shí)間戳。
步驟1中退回的時(shí)間戳將插入到時(shí)間戳存取模塊中接收時(shí)間戳隊(duì)列隊(duì)頭。
只要為包過濾器設(shè)置的過濾條件能唯一地確定應(yīng)用進(jìn)程發(fā)送的數(shù)據(jù)包,則通過上述方法得到的發(fā)送時(shí)間戳與發(fā)送數(shù)據(jù)包能正確地一對應(yīng)。
只要為包過濾器設(shè)置的過濾條件能全部覆蓋應(yīng)用進(jìn)程需要接收的數(shù)據(jù)包,且滿足過濾條件的到達(dá)數(shù)據(jù)包均能被應(yīng)用進(jìn)程接收,則通過本發(fā)明提出的精確時(shí)間戳方法得到的接收時(shí)間戳與接收數(shù)據(jù)包能正確地一一對應(yīng)。
圖4是本發(fā)明利用包過濾器為用戶進(jìn)程網(wǎng)絡(luò)數(shù)據(jù)包打時(shí)間戳方法的示意圖。
發(fā)明實(shí)施方式本發(fā)明調(diào)用操作系統(tǒng)內(nèi)核中的包過濾器獲取用戶進(jìn)程數(shù)據(jù)包時(shí)間戳并將此信息放入時(shí)間戳存取模塊的相應(yīng)時(shí)間戳隊(duì)列中,用戶進(jìn)程在發(fā)送或者接收一個(gè)數(shù)據(jù)包后,必須立即從時(shí)間戳模塊中取得相應(yīng)時(shí)間戳。附圖4是本發(fā)明利用包過濾器為用戶進(jìn)程網(wǎng)絡(luò)數(shù)據(jù)包打時(shí)間戳方法的示意圖,針對每一個(gè)需要網(wǎng)絡(luò)數(shù)據(jù)包精確時(shí)間戳的應(yīng)用進(jìn)程,設(shè)置一個(gè)時(shí)間戳存取模塊,它負(fù)責(zé)與操作系統(tǒng)內(nèi)核的包過濾器交互以獲得其捕獲的網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間戳信息并將該信息存儲(chǔ)在時(shí)間戳隊(duì)列中,根據(jù)需要返回給用戶進(jìn)程。時(shí)間戳存取模塊中維護(hù)兩個(gè)時(shí)間戳先入先出隊(duì)列發(fā)送時(shí)間戳隊(duì)列和接收時(shí)間戳隊(duì)列,其中前者存放由用戶進(jìn)程發(fā)往其他目的地的數(shù)據(jù)包時(shí)間戳信息,后者存放用戶進(jìn)程收到的其他主機(jī)發(fā)來的數(shù)據(jù)包的時(shí)間戳信息。根據(jù)用戶進(jìn)程設(shè)置的包過濾條件,時(shí)間戳存取模塊向包過濾器請求指定數(shù)據(jù)包的時(shí)間戳信息,并根據(jù)該數(shù)據(jù)包是用戶進(jìn)程發(fā)送的數(shù)據(jù)包,還是用戶進(jìn)程接收的數(shù)據(jù)包,將時(shí)間戳信息相應(yīng)地放入發(fā)送時(shí)間戳隊(duì)列或接收時(shí)間戳隊(duì)列的隊(duì)尾。在用戶請求從時(shí)間戳存取模塊獲得一個(gè)時(shí)間戳?xí)r,如果用戶請求獲得發(fā)送時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的發(fā)送時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶;如果用戶請求獲得接收時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的接收時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶。用戶進(jìn)程在獲取時(shí)間戳信息時(shí),必須遵守以下規(guī)則用戶進(jìn)程發(fā)送一個(gè)數(shù)據(jù)包之后,在發(fā)送另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)發(fā)送時(shí)間戳,用戶進(jìn)程接收一個(gè)數(shù)據(jù)包之后,在接收另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)接收時(shí)間戳。這樣規(guī)定的目的是保證時(shí)間戳信息與數(shù)據(jù)包之間正確的對應(yīng)關(guān)系。性質(zhì)1 只要為包過濾器設(shè)置的過濾條件能唯一地確定應(yīng)用進(jìn)程發(fā)送的數(shù)據(jù)包,則通過本發(fā)明提出的精確時(shí)間戳方法得到的時(shí)間戳與發(fā)送數(shù)據(jù)包能正確地一一對應(yīng)。證明因?yàn)榘^濾器設(shè)置的過濾條件能唯一地確定應(yīng)用進(jìn)程發(fā)送的數(shù)據(jù)包,所以包過濾器能夠捕獲的發(fā)送數(shù)據(jù)包就是應(yīng)用進(jìn)程發(fā)送的數(shù)據(jù)包,且捕獲的數(shù)據(jù)包之間的相對順序就是應(yīng)用進(jìn)程發(fā)送數(shù)據(jù)包的相對順序。此外,包過濾器將數(shù)據(jù)包的時(shí)間戳信息傳遞給時(shí)間戳存取模塊的順序是按數(shù)據(jù)包被捕獲的順序,時(shí)間戳存取模塊將時(shí)間戳以先入先出的方式放入發(fā)送時(shí)間戳隊(duì)列,因此用戶進(jìn)程發(fā)送完一個(gè)數(shù)據(jù)包,立即從時(shí)間戳存取模塊獲得的發(fā)送時(shí)間戳,就是對應(yīng)于該數(shù)據(jù)包的時(shí)間戳。證畢。
在某些特殊的情況下,特別是在一些網(wǎng)絡(luò)測量應(yīng)用中,往往不能構(gòu)造出100%精確地描述需要打時(shí)間戳的接收數(shù)據(jù)包流的過濾條件,或者過濾條件雖然100%精確地描述了需要打時(shí)間戳的接收數(shù)據(jù)包流,但用戶進(jìn)程可能收到額外的數(shù)據(jù)包,這時(shí)用戶進(jìn)程得到的時(shí)間戳與收到的數(shù)據(jù)包之間就可能存在錯(cuò)誤的對應(yīng)關(guān)系。例如,在因特網(wǎng)(Internet)中最常用的測量工具ping,它通過發(fā)送因特網(wǎng)控制消息協(xié)議(ICMP)回聲請求包(EchoRequest)并收集相應(yīng)的ICMP回聲應(yīng)答包(Echo Reply)來計(jì)算網(wǎng)絡(luò)通路的往返延遲等性能參數(shù),在ping發(fā)送了一個(gè)ICMP回聲請求包后,它可能收到其他類型的ICMP數(shù)據(jù)包甚至屬于其他進(jìn)程的ICMP數(shù)據(jù)包。為此本發(fā)明提出一種時(shí)間戳回退技術(shù),用以解決上述在為接收數(shù)據(jù)包打時(shí)間戳?xí)r遇到的問題。時(shí)間戳存取模塊提供接收時(shí)間戳回退功能,即將退回的時(shí)間戳重新插入到接收時(shí)間戳隊(duì)列的隊(duì)列頭部。在實(shí)際使用時(shí),盡可能將過濾條件設(shè)置得嚴(yán)格一些(當(dāng)然,該條件應(yīng)當(dāng)覆蓋所有應(yīng)用進(jìn)程想要打時(shí)間戳的進(jìn)出數(shù)據(jù)包),在接收一個(gè)數(shù)據(jù)包并得到一個(gè)時(shí)間戳后,執(zhí)行如下步驟步驟1判斷接收的數(shù)據(jù)包是否符合過濾條件,如果符合,進(jìn)入步驟2,否則將時(shí)間戳退回給時(shí)間戳存取模塊;步驟2如果接收的數(shù)據(jù)包不是用戶進(jìn)程想要打時(shí)間戳的數(shù)據(jù)包,則丟棄該數(shù)據(jù)包和得到的時(shí)間戳,否則,得到的時(shí)間戳就是用戶需要的時(shí)間戳。
性質(zhì)2 只要為包過濾器設(shè)置的過濾條件能全部覆蓋應(yīng)用進(jìn)程需要接收的數(shù)據(jù)包,且滿足過濾條件的到達(dá)數(shù)據(jù)包均能被應(yīng)用進(jìn)程接收,則通過本發(fā)明提出的精確時(shí)間戳方法得到的時(shí)間戳與接收數(shù)據(jù)包能正確地一一對應(yīng)。
證明假設(shè)得到的時(shí)間戳與應(yīng)用進(jìn)程接收到的需要打時(shí)間戳的數(shù)據(jù)包之間可能存在不匹配的情況。由于有時(shí)間戳回退機(jī)制,接收時(shí)間戳隊(duì)列中的時(shí)間戳不可能由于應(yīng)用進(jìn)程收到不滿足過濾條件的數(shù)據(jù)包而被消耗,也就是說接收時(shí)間戳隊(duì)列中時(shí)間戳的總數(shù)等于應(yīng)用進(jìn)程接收到的滿足過濾條件的數(shù)據(jù)包總數(shù)。那么,錯(cuò)誤匹配的原因是時(shí)間戳隊(duì)列中時(shí)間戳之間的相對順序不同于它們對應(yīng)的數(shù)據(jù)包被應(yīng)用進(jìn)程接收的相對順序。而這是不可能的,因?yàn)榘^濾器將數(shù)據(jù)包的時(shí)間戳信息傳遞給時(shí)間戳存取模塊的順序是按數(shù)據(jù)包被捕獲的順序,時(shí)間戳存取模塊將時(shí)間戳以先入先出的方式管理發(fā)送時(shí)間戳隊(duì)列,用戶進(jìn)程也是發(fā)送或接收一個(gè)數(shù)據(jù)包,立即從時(shí)間戳隊(duì)列中取出一個(gè)時(shí)間戳。因此,通過本發(fā)明提出的精確時(shí)間戳方法得到的時(shí)間戳與應(yīng)用進(jìn)程接收到的需要的數(shù)據(jù)包之間不可能存在不匹配的情況。證畢。
本發(fā)明方法可以在多任務(wù)并發(fā)的端主機(jī)系統(tǒng)中獲得穩(wěn)定、精確的網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間戳信息,可應(yīng)用于網(wǎng)絡(luò)性能測量以及適應(yīng)性(Adaptive)網(wǎng)絡(luò)應(yīng)用等領(lǐng)域。
權(quán)利要求
1.一種計(jì)算機(jī)網(wǎng)絡(luò)端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法,包括步驟步驟1設(shè)置包過濾器過濾條件,該過濾條件能精確地定義用戶進(jìn)程將要發(fā)送和接收的數(shù)據(jù)包,為每一個(gè)用戶進(jìn)程設(shè)置一個(gè)時(shí)間戳存取模塊,該模塊向包過濾器請求其捕獲的每一個(gè)數(shù)據(jù)包時(shí)間戳信息,并返回給用戶進(jìn)程;步驟2用戶進(jìn)程發(fā)送或者接收數(shù)據(jù)包;步驟3包過濾器根據(jù)過濾條件在系統(tǒng)內(nèi)部捕獲用戶進(jìn)程發(fā)送或者接收的數(shù)據(jù)包,同時(shí)記錄時(shí)間戳信息,并將時(shí)間戳信息送給時(shí)間戳存取模塊;步驟4用戶進(jìn)程發(fā)送或接收一個(gè)數(shù)據(jù)包后,立即從時(shí)間戳存取模塊取回一個(gè)時(shí)間戳,將其作為該數(shù)據(jù)包的發(fā)送/接收時(shí)間戳;在接收數(shù)據(jù)包時(shí),要執(zhí)行時(shí)間戳回退檢查。
2.根據(jù)權(quán)利要求1的方法,其特征在于,步驟1中時(shí)間戳存取模塊設(shè)置兩個(gè)先進(jìn)先出時(shí)間戳隊(duì)列,一個(gè)存放發(fā)送數(shù)據(jù)包時(shí)間戳信息,一個(gè)存放接收數(shù)據(jù)包時(shí)間戳信息;時(shí)間戳存取模塊從包過濾器獲得一個(gè)數(shù)據(jù)包時(shí)間戳信息后,根據(jù)該數(shù)據(jù)包是用戶進(jìn)程發(fā)送的數(shù)據(jù)包,還是用戶進(jìn)程接收的數(shù)據(jù)包,將時(shí)間戳信息相應(yīng)地放入發(fā)送時(shí)間戳隊(duì)列或接收時(shí)間戳隊(duì)列的隊(duì)尾;在用戶請求從時(shí)間戳存取模塊獲得一個(gè)時(shí)間戳?xí)r,如果用戶請求獲得發(fā)送時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的發(fā)送時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶;如果用戶請求獲得接收時(shí)間戳,則時(shí)間戳存取模塊從與該用戶請求對應(yīng)的接收時(shí)間戳隊(duì)列隊(duì)頭取出一個(gè)時(shí)間戳并將其返回給用戶。
3.根據(jù)權(quán)利要求1的方法,其特征在于,步驟4中,用戶進(jìn)程發(fā)送一個(gè)數(shù)據(jù)包之后,在發(fā)送另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)發(fā)送時(shí)間戳,用戶進(jìn)程接收一個(gè)數(shù)據(jù)包之后,在接收另一個(gè)數(shù)據(jù)包之前,必須且只能從時(shí)間戳存取模塊取回一個(gè)接收時(shí)間戳。
4.根據(jù)權(quán)利要求1的方法,其特征在于,步驟4為解決接收數(shù)據(jù)包時(shí)可能遇到的時(shí)間戳與數(shù)據(jù)包之間不匹配的問題,提出的時(shí)間戳回退檢查,包括步驟步驟1判斷接收的數(shù)據(jù)包是否符合包過濾器過濾條件,如果符合,進(jìn)入步驟2,否則將時(shí)間戳退回給時(shí)間戳存取模塊;步驟2如果接收的數(shù)據(jù)包不是用戶進(jìn)程想要打時(shí)間戳的數(shù)據(jù)包,則丟棄該數(shù)據(jù)包和本次獲得的時(shí)間戳,否則,該時(shí)間戳就是用戶需要的時(shí)間戳。
5.根據(jù)權(quán)利要求4的方法,其特征在于,步驟1中退回的時(shí)間戳將插入到時(shí)間戳存取模塊中接收時(shí)間戳隊(duì)列隊(duì)頭。
6.根據(jù)權(quán)利要求1和2和3所述方法,其特征在于,只要為包過濾器設(shè)置的過濾條件能唯一地確定應(yīng)用進(jìn)程發(fā)送的數(shù)據(jù)包,則通過上述方法得到的發(fā)送時(shí)間戳與發(fā)送數(shù)據(jù)包能正確地一對應(yīng)。
7.根據(jù)權(quán)利1和2和3和4和5所述方法,其特征在于,只要為包過濾器設(shè)置的過濾條件能全部覆蓋應(yīng)用進(jìn)程需要接收的數(shù)據(jù)包,且滿足過濾條件的到達(dá)數(shù)據(jù)包均能被應(yīng)用進(jìn)程接收,則通過本發(fā)明提出的精確時(shí)間戳方法得到的接收時(shí)間戳與接收數(shù)據(jù)包能正確地一一對應(yīng)。
全文摘要
一種計(jì)算機(jī)網(wǎng)絡(luò)通信中端主機(jī)系統(tǒng)精確標(biāo)記數(shù)據(jù)包時(shí)間戳的方法,包括步驟步驟1設(shè)置包過濾器過濾條件。為每一個(gè)用戶進(jìn)程設(shè)置一個(gè)時(shí)間戳存取模塊;步驟2用戶進(jìn)程發(fā)送或者接收數(shù)據(jù)包;步驟3包過濾器根據(jù)過濾條件在系統(tǒng)內(nèi)部捕獲用戶進(jìn)程發(fā)送或者接收的數(shù)據(jù)包,同時(shí)記錄時(shí)間戳信息,并將時(shí)間戳信息送給時(shí)間戳存取模塊;步驟4用戶進(jìn)程發(fā)送或接收一個(gè)數(shù)據(jù)包后,立即從時(shí)間戳存取模塊取回一個(gè)時(shí)間戳,將其作為該數(shù)據(jù)包的發(fā)送/接收時(shí)間戳(在接收數(shù)據(jù)包時(shí),要執(zhí)行時(shí)間戳回退檢查)。本發(fā)明方法可以在多任務(wù)并發(fā)的端主機(jī)系統(tǒng)中獲得穩(wěn)定、精確的網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間戳信息,可應(yīng)用于網(wǎng)絡(luò)性能測量以及適應(yīng)性(Adaptive)網(wǎng)絡(luò)應(yīng)用等領(lǐng)域。
文檔編號G06F9/48GK1456977SQ0314273
公開日2003年11月19日 申請日期2003年6月16日 優(yōu)先權(quán)日2003年6月16日
發(fā)明者王愷, 黃靖, 楊峰 申請人:中國科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
平湖市| 潞城市| 黄山市| 花莲市| 安平县| 岢岚县| 福泉市| 衢州市| 开封市| 德州市| 崇州市| 水富县| 阳朔县| 九龙坡区| 保定市| 杂多县| 桃园市| 镇江市| 浪卡子县| 中牟县| 岫岩| 西乌珠穆沁旗| 东明县| 大厂| 车致| 开原市| 濮阳市| 乐东| 景洪市| 赤城县| 花莲市| 阿坝县| 青川县| 平阳县| 九寨沟县| 庄河市| 女性| 青铜峡市| 阜新市| 河北区| 新巴尔虎左旗|