專利名稱:基于osi傳輸層時間戳的寬帶私接檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及寬帶用戶檢測領(lǐng)域,具體涉及一種用于針對非法共享上網(wǎng)的寬帶私接檢測方法。
背景技術(shù):
目前寬帶接入業(yè)務(wù)基本都是基于包月或包年的形式開展的,因此往往存在著以個人的名義申請寬帶而讓黑網(wǎng)吧、企業(yè)使用,或者幾戶共用寬帶而分攤費用,給運營商造成了巨大的經(jīng)濟損失,目前針對這種非法共享上網(wǎng)使用最多最有效的檢測方法有IP_ID檢測法和TCP指紋檢測法。IP_ID檢測法的原理如下同一 Windows主機發(fā)出的IP報文中攜帶的ID字段是連續(xù)變化且呈遞增趨勢,其起始值因不同的Windows主機不同而不同,根據(jù)這一規(guī)律,如果在一段時間內(nèi)檢測到某個源IP對應(yīng)多個ID字段范圍,則說明該IP對應(yīng)的用戶為共享接入用戶,根據(jù)ID字段區(qū)間個數(shù)能夠大致確定共享接入主機數(shù)目。但是,IP_ID檢測法存在一些不足之處1)報文亂序時可能導(dǎo)致誤判;2)大多數(shù)的LINUX版本或UNIX系統(tǒng),每個TCP中的IP_ID連續(xù)增加,但不同的TCP 連接,IP.ID沒有任何關(guān)系;3)對于Proxy方式、分時上網(wǎng)無效;4) IP_ID檢測方法對于使用特殊的NAT軟件無濟于事,這些NAT軟件可以改變IP 中的ID,在外面看上去就像是一臺主機發(fā)出的。TCP指紋檢測法的原理如下通過TCP序列號、確認號、滑動窗口這幾個字段作為 TCP指紋來檢測,所以若一段時間后發(fā)現(xiàn)某個IP下有幾段序列號或確認號在連續(xù)變化,或者有好幾種窗口大小,則可認為該IP下有私接用戶。但該方法存在一些不足之處1)由于窗口大小是客戶服務(wù)器協(xié)商決定的,所以對于同一個沒有私接的IP地址, 也可能同時存在好幾種窗口大小,這將導(dǎo)致誤判;2)檢測速度慢,需要根據(jù)收集到許多連續(xù)的報文段樣本才有可能確定某個IP地址下是否存在幾段序列號、確認號、窗口大?。?)TCP三次握手時的初始化序列號(ISN)隨時間而變化的,而且不同的操作系統(tǒng)也會有不同的實現(xiàn)方式,所以每個連接的初始序列號是不同的。這樣當(dāng)某個私接的IP地址與外界進行非連續(xù)的通信時,之前記錄的序列號、確認號、窗口大小等指紋信息就要拋棄來重新進行記錄。綜上所述,IP_ID檢測法和TCP指紋檢測法兩種方法在實現(xiàn)時除了各自存在的不足外,都存在檢測的準確性低、系統(tǒng)資源占用高、檢測過程繁瑣、適用范圍窄的問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種檢測準確性高、系統(tǒng)資源占用低、檢測過程簡便、適用范圍廣泛的基于OSI傳輸層時間戳的寬帶私接檢測方法。為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為一種基于OSI傳輸層時間戳的寬帶私接檢測方法,其實施步驟如下1)在客戶端向電信接入路由設(shè)備建立TCP連接時開啟客戶端TCP報文的時間戳選項;2)設(shè)定用于判定客戶端是否存在寬帶私接的第一常量和第二常量;3)標記每一個接收的TCP報文的系統(tǒng)時間,并獲取每一個接收的TCP報文的時間戳;4)實時獲取同一 IP地址客戶端發(fā)送的相鄰兩個TCP報文之間的系統(tǒng)時間差和時間戳差,并獲取系統(tǒng)時間差和時間戳差之間的差值,如果所述差值超過第一常量或者在預(yù)設(shè)時間內(nèi)所述差值不為0的數(shù)量超過第二常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象。作為上述技術(shù)方案的進一步改進所述步驟1)的詳細步驟為電信接入路由設(shè)備實時捕獲服務(wù)器端發(fā)送給客戶端的TCP報文,如果TCP報文中SYN為1并且ACK為1,則將所述TCP報文的時間戳填充一串長度為32比特的數(shù)字后再發(fā)送給對應(yīng)的客戶端。所述步驟4)的詳細步驟為A)設(shè)置檢測時間為1. 2秒,檢測周期為300ms,初始化計數(shù)器cnt、預(yù)設(shè)時間計數(shù)器 N0和N都為0 ;B)獲取接收當(dāng)前TCP報文的系統(tǒng)時間和接收上一個TCP報文的系統(tǒng)時間,將所述兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以IOOms為單位取整;C)獲取當(dāng)前TCP報文的時間戳和上一個TCP報文的時間戳,獲取時間戳差的絕對值;D)獲取所述時間戳差的絕對值與所述系統(tǒng)時間差之間的差值,并將所述差值與第一常量進行比較,如果所述差值超過第一常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則跳轉(zhuǎn)執(zhí)行步驟E);E)分別獲取接收當(dāng)前TCP報文的系統(tǒng)時間和第1次接收到的TCP報文的系統(tǒng)時間,將所述兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以IOOms為單位取整得到N ;F)判斷表達式隊+3 <= N是否成立,如果不成立則執(zhí)行步驟G),否則把cnt清零, 且如果檢測時間到達1. 2秒,則跳到步驟I),否則把N賦值給Ntl,并跳轉(zhuǎn)執(zhí)行步驟B);G)判斷D)中獲取的時間戳差的絕對值與所述系統(tǒng)時間差之間的差值是否為0,如果不為0則使計數(shù)器cnt加1 ;H)將計數(shù)器cnt與第二常量進行比較,如果計數(shù)器值大于第二常量,則判定該IP 地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則繼續(xù)跳轉(zhuǎn)執(zhí)行步驟B);I)該IP地址暫時沒有檢測出私接,進行下次繼續(xù)檢測或者退出檢測。所述第一常量為2,所述第二常量為6。本發(fā)明具有下述優(yōu)點。1、本發(fā)明通過在電信運營商的接入路由設(shè)備上人為干預(yù)建立TCP連接的三次握手協(xié)議,并利用TCP報文段中的缺省字段時間戳來達到快速有效的檢測網(wǎng)絡(luò)私接,服務(wù)端利用時間戳計數(shù)的虛擬時鐘與真實時間計數(shù)的現(xiàn)實標準時鐘之間的頻率上的差異來統(tǒng)計相鄰報文段時間戳的差值的變化情況,分析系統(tǒng)時間差和時間戳差之間的差值變化情況, 如果差值超過預(yù)設(shè)常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,能夠檢測出同一個IP地址下是否有多個用戶利用路由器或代理服務(wù)器在同時共享上網(wǎng),從而幫助電信運營商打擊共享上網(wǎng)的不法行為,規(guī)范互聯(lián)網(wǎng)市場的作用,具有檢測準確性高、系統(tǒng)資源占用低、檢測過程簡便、適用范圍廣泛的優(yōu)點。2、本發(fā)明通過服務(wù)端實時獲取任意IP地址發(fā)送的不同TCP報文之間的系統(tǒng)時間差和時間戳差、判斷系統(tǒng)時間差和時間戳差之間的差值是否超過預(yù)設(shè)常量來檢測出私接的用戶,該方法適用于目前通過路由器或代理服務(wù)器上網(wǎng)的情況,而且不要求客戶端服務(wù)器端通信連續(xù),對于突發(fā)式或者間斷式通信都能達到檢測的目的。3、本發(fā)明進一步將回應(yīng)客戶端的TCP報文的時間戳填充一串32比特的數(shù)字后發(fā)送給對應(yīng)的客戶端,利用Windows自身的特性打開TCP報文的時間戳選項,能夠?qū)崿F(xiàn)開啟 windows客戶端TCP報文的時間戳選項,能夠同時適用于使用Iinux和windows的系統(tǒng),具有適用范圍廣泛的優(yōu)點。
圖1為本發(fā)明實施例的主要流程示意圖。圖2為TCP報文的時間戳結(jié)構(gòu)示意圖。圖3為本發(fā)明實施例步驟1)的詳細流程示意圖。圖4為本發(fā)明實施例步驟4)的詳細流程示意圖。
具體實施例方式如圖1所示,本發(fā)明實施例基于OSI傳輸層時間戳的寬帶私接檢測方法的實施步驟如下1)在客戶端向電信接入路由設(shè)備建立TCP連接時開啟客戶端TCP報文的時間戳選項;2)設(shè)定用于判定客戶端是否存在寬帶私接的第一常量和第二常量;3)標記每一個接收的TCP報文的系統(tǒng)時間,并獲取每一個接收的TCP報文的時間戳;4)實時獲取同一 IP地址客戶端發(fā)送的相鄰兩個TCP報文之間的系統(tǒng)時間差和時間戳差,并獲取系統(tǒng)時間差和時間戳差之間的差值,如果差值超過第一常量或者在預(yù)設(shè)時間內(nèi)差值不為0的數(shù)量超過第二常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象。如圖2所示,TCP報文的時間戳共10字節(jié),其中第1字節(jié)類型的值為8表示該選項是時間戳選項;第2字節(jié)長度值為10表示該選項占用了 10個字節(jié);第3 6字節(jié)的表示發(fā)送出去的報文段由發(fā)送端寫入的時間戳值;第7 10字節(jié)表示發(fā)送出去的報文段中攜帶的之前從遠端接收到的報文段中的由遠端寫入的返回時間戳值。時間戳是32bit的一個數(shù),他表示的是自午夜時間00:00:00算起的以ms作為單位的時間單位數(shù)。雖然時間戳是 RFC建議的選項,但是不是每個操作系統(tǒng)都會在TCP選項里加入時間戳的。一般在Linux的各個版本里都會默認在TCP數(shù)據(jù)報里寫入時間戳,而是用最多的Windows XP系統(tǒng)里默認是關(guān)閉的。開啟時間戳的過程如圖2所示,當(dāng)客戶端發(fā)出建立TCP連接的SYN時,目的端返回一個SYN/ACK報文給請求端。若在ISP端對這個返回的TCP報文里的TCP選項進行修改, 把自己的時間戳寫入到該報文的選項里,然后再繼續(xù)把該確認報文發(fā)到客戶端。XP有個特點就是若接收到的報文里的時間戳選項打開了,則在與目的端通信時,后面發(fā)出的所有TCP 報文里的時間戳都是打開的,這樣就實現(xiàn)了讓XP把本機的時間戳加載到TCP選項里。時間戳在電腦重啟后將復(fù)位,它的值將變的非常接近零00:00:00 :XXX, Windows下使用的虛擬時鐘頻率為10Hz。隨著開機時間的變長,該時間戳的值會按照本地主機時間每100ms增加 1的速度累加。因此若忽略數(shù)據(jù)包的亂序接收,并考慮到所有共享用戶的開機時間的差異及不同主機的真實時間的差異共同作用,只要這兩個因素導(dǎo)致的時間相差大于0. ls,則這種方法理論上都可以檢測到多用戶共享;否則,若小于等于0. ls,則這時可等待下次有某個用戶重啟電腦后來達到檢測寬帶私接的目的。在RFC1323里指出,可以在傳輸層的TCP報頭中的選項字段里加入TCP時間戳選項(Timestamps),它是32bit的值,這樣在本地主機發(fā)出去的TCP報文里都會把時間戳寫入到該時間戳選項里。RFC1323中沒有規(guī)定寫入的時間戳到底是怎樣一個值,而只是說明產(chǎn)生時間戳的那個虛擬時鐘要根據(jù)系統(tǒng)真實時鐘來得到,與系統(tǒng)真實時間有近似的比例關(guān)系,而在Window里,時間戳的值與某臺電腦的連續(xù)開機時間長短有關(guān)系,按照開機時間線性增加。另外不同用戶的電腦硬件中,物理時鐘偏移不一樣,雖然存在NTP和SNTP協(xié)議用來同步用戶電腦時鐘與標準時鐘,但是他們只能同步到年月日,時分秒,最多把時間精確到 ms級。這樣在Window里,由于不同主機的本地真實時間不同,這樣就可以利用時間戳來檢測寬帶私接。雖然時間戳是RFC建議的選項,但是不是每個操作系統(tǒng)都會在TCP選項里加入時間戳的。一般在Linux的各個版本里都會默認在TCP數(shù)據(jù)報里寫入時間戳,而是用最多的WindowsXP系統(tǒng)里默認是關(guān)閉的。我們可以手動的讓本地主機打開時間戳選項,通過修改 XP 的注冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters節(jié)點中Tcpl3230pts項目的值為2就打開了時間戳選項。普通用戶使用的 Windows系統(tǒng)中,時間戳選項是默認關(guān)閉的。本實施例中,當(dāng)服務(wù)端收到建立TCP連接的請求報文時,如果發(fā)現(xiàn)客戶端的時間戳選項開啟,在客戶端向服務(wù)端建立TCP連接時,服務(wù)端通過發(fā)送報文開啟客戶端TCP報文的時間戳選項。如圖3所示,本實施例中步驟1)的詳細步驟為電信接入路由設(shè)備實時捕獲服務(wù)器端發(fā)送給客戶端的TCP報文,如果TCP報文中SYN為1并且ACK為1,則將TCP報文的時間戳填充一串長度為32比特的數(shù)字后再發(fā)送給對應(yīng)的客戶端;否則,就不斷的記錄某個IP 地址下出來的報文段中時間戳的變化情況,直到檢測出私接為止。Windows有個特點就是若接收到的同步確認報文里的時間戳選項打開了,則在與對端通信時,后面發(fā)出的所有TCP 報文里的時間戳都是打開的。這樣就實現(xiàn)了讓XP把本機的時間戳加載到TCP選項里,從而實現(xiàn)了開啟客戶端TCP報文的時間戳選項。如圖4所示,本實施例中步驟4)的步驟為A)設(shè)置檢測時間為1. 2秒,檢測周期為300ms,初始化計數(shù)器cnt、預(yù)設(shè)時間計數(shù)器 N0和N都為0 ;B)獲取接收當(dāng)前TCP報文的系統(tǒng)時間和接收上一個TCP報文的系統(tǒng)時間,將兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以100ms為單位取整;
C)獲取當(dāng)前TCP報文的時間戳和上一個TCP報文的時間戳,獲取時間戳差的絕對值;D)獲取時間戳差的絕對值與系統(tǒng)時間差之間的差值,并將差值與第一常量進行比較,如果差值超過第一常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則跳轉(zhuǎn)執(zhí)行步驟E);E)分別獲取接收當(dāng)前TCP報文的系統(tǒng)時間和第1次接收到的TCP報文的系統(tǒng)時間,將兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以IOOms為單位取整得到N ;F)判斷表達式隊+3 <= N是否成立,如果不成立則執(zhí)行步驟G),否則把cnt清零, 且如果檢測時間到達1. 2秒,則跳到步驟I),否則把N賦值給Ntl,并跳轉(zhuǎn)執(zhí)行步驟B);G)判斷D)中獲取的時間戳差的絕對值與系統(tǒng)時間差之間的差值是否為0,如果不為0則使計數(shù)器cnt加1 ;H)將計數(shù)器cnt與第二常量進行比較,如果計數(shù)器值大于第二常量,則判定該IP 地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則繼續(xù)跳轉(zhuǎn)執(zhí)行步驟B);I)該IP地址暫時沒有檢測出私接,進行下次繼續(xù)檢測或者退出檢測。假設(shè)在ISP的檢測設(shè)備里在一段時間內(nèi)觀察某個IP下的TCP收發(fā)情況,時間戳是開啟的。用ti表示ISP在一段時間內(nèi)檢測到的第i個TCP數(shù)據(jù)報時對應(yīng)的國際標準時間, 這個時間可以通過頻繁使用NTP協(xié)議來精確,、表示第一次捕獲到某個IP地址下的數(shù)據(jù)包中的時間戳所對應(yīng)的國際標準時間。Ti表示的是在一段時間內(nèi)第i個TCP數(shù)據(jù)報里攜帶的時間戳值。這樣,我們規(guī)定下面的式子,Xi = Vt1^yi = Ti-Ti-P {(Xi,Yi), i e N},其中Xi 表示的是檢測到第i個TCP數(shù)據(jù)報時的標準時間與檢測到第1個TCP數(shù)據(jù)報時的標準時間的差值;yi就表示檢測到第i個TCP數(shù)據(jù)報里攜帶的時間戳值與檢測到第i-1個TCP數(shù)據(jù)報攜帶的時間戳值的Offset值。這樣通過一段時間的觀察,并把坐標(Xi,yi)的值顯示出來,Xi為橫坐標,單位為秒,Yi為縱坐標,單位為毫秒。就能看到隨著時間的變化,Yi值在坐標圖上的分布情況如果只有一個用戶,因為時間戳的單位為ms,所以路由設(shè)備在IOOms內(nèi)檢測到好多個數(shù)據(jù)包后時間戳才會加1。因此在標準時間&的IOOms長度內(nèi)Ji值都為0, 只有在相鄰的每個IOOms時刻上,y,值才為+1,而且只能為+1 ;否則如果有多個用戶在同時共享上網(wǎng),在標準時間IOOms內(nèi)會出現(xiàn)一個或多個跳躍點,跳躍點的值可能為士 1,士2,
士3,......,單位可能為毫秒,分鐘,小時,而且如果連續(xù)出現(xiàn)好幾個幅度很大的跳躍點,則
立刻就能判斷出有共享。本實施例中,第一常量為2,第二常量為6。當(dāng)前TCP報文與往前一段時間內(nèi)TCP 報文之間系統(tǒng)時間差為300ms,選擇繼續(xù)觀察3 X 100ms (也可以選擇5 X 100ms, 6 X IOOms等等,相應(yīng)的把判斷條件里的3替換成5,6即可)時間來判斷是由于不同主機的時間戳相差 1或2,還是由于同一個主機發(fā)出的相鄰兩個數(shù)據(jù)包間隔里剛好出現(xiàn)1個跳躍點。通過Nq+3 <=N來實將當(dāng)前TCP報文和相隔300ms前的TCP報文進行比較。服務(wù)端(電信路由設(shè)備)在時刻^第一次捕捉到某個可疑IP地址下的報文段帶有時間戳選項,捕獲時刻對應(yīng)的國際標準時間記為tH,時間戳值記為Ti+同時給Ntl賦初值0。步驟4)的具體步驟為I)繼續(xù)監(jiān)控下一個時間戳的到達時刻并記為ti;時間戳值記為Ti,這樣就把得到的\ =以IOOms為單位取整,記為X,相鄰時間戳差值為yi = Ti-Ti^1UII)如果yi-X > 2成立,就能立刻判斷出有私接。如果yi_X > 2不成立,則要繼續(xù)觀察一段時間來判斷是由于不同主機的時間戳相差1或2,還是由于同一個主機發(fā)出的相鄰兩個數(shù)據(jù)包間隔里剛好出現(xiàn)1個跳躍點,因此需要轉(zhuǎn)到步驟III)。III)把以IOOms為單位取整,記為N。其中這里以連續(xù)300ms時間內(nèi)觀察到的時間戳值的變化情況作為判斷私接的依據(jù)。因為如果沒有私接,在300ms時間長度里會出現(xiàn)3個跳躍點??紤]到可能出現(xiàn)攜帶時間戳值為T和T+1的兩個相鄰的數(shù)據(jù)包經(jīng)過的路由不同,若T+1先到達,T后到達,則會導(dǎo)致在300ms里出現(xiàn)6個跳躍點,但是如果相鄰數(shù)據(jù)包的時間戳值相同,對于誰先到達都無所謂。通常情況下數(shù)據(jù)包都會按序到達,所以這里建議選擇第二常量為6。所以如果隊+3 < = N,則把N賦值給Ntl并把計數(shù)器cnt清0,然后把 、賦值給tg,把Ti賦值給IV1 ;否則,再次判斷yi_X是否等于0,因為不同主機的時間戳相差1或2,如果不考慮路由不同,只考慮數(shù)據(jù)包按序到達。假設(shè)某個IP地址下有2個以上的主機在同時在往外發(fā)送數(shù)據(jù)包,則在IOOms時間里yi將不可避免的出現(xiàn)許許多多的跳躍點,且跳躍點的值為1或2。如果不為0,就把計數(shù)器cnt加1,這時如果cnt > 6,判定該IP 地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,其他情況下把、賦值給tH,把Ti賦值給Τ"。這時轉(zhuǎn)到步驟IV)。IV)如果檢測時間達到設(shè)定值(這里選取為ls,也可以選擇Im等等)還未檢測出私接,則停止檢測;否則轉(zhuǎn)到步驟I)。以上所述僅為本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅限于上述實施方式,凡是屬于本發(fā)明原理的技術(shù)方案均屬于本發(fā)明的保護范圍。對于本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明的原理的前提下進行的若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于OSI傳輸層時間戳的寬帶私接檢測方法,其特征在于其實施步驟如下1)在客戶端向電信接入路由設(shè)備建立TCP連接時開啟客戶端TCP報文的時間戳選項;2)設(shè)定用于判定客戶端是否存在寬帶私接的第一常量和第二常量;3)標記每一個接收的TCP報文的系統(tǒng)時間,并獲取每一個接收的TCP報文的時間戳;4)實時獲取同一IP地址客戶端發(fā)送的相鄰兩個TCP報文之間的系統(tǒng)時間差和時間戳差,并獲取系統(tǒng)時間差和時間戳差之間的差值,如果所述差值超過第一常量或者在預(yù)設(shè)時間內(nèi)所述差值不為0的數(shù)量超過第二常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象。
2.根據(jù)權(quán)利要求1所述的基于OSI傳輸層時間戳的寬帶私接檢測方法,其特征在于,所述步驟1)的詳細步驟為電信接入路由設(shè)備實時捕獲服務(wù)器端發(fā)送給客戶端的TCP報文, 如果TCP報文中SYN為1并且ACK為1,則將所述TCP報文的時間戳填充一串長度為32比特的數(shù)字后再發(fā)送給對應(yīng)的客戶端。
3.根據(jù)權(quán)利要求1或2所述的基于OSI傳輸層時間戳的寬帶私接檢測方法,其特征在于,所述步驟4)的詳細步驟為A)設(shè)置檢測時間為1.2秒,檢測周期為300ms,初始化計數(shù)器cnt、預(yù)設(shè)時間計數(shù)器Ntl 和N都為0 ;B)獲取接收當(dāng)前TCP報文的系統(tǒng)時間和接收上一個TCP報文的系統(tǒng)時間,將所述兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以IOOms為單位取整;C)獲取當(dāng)前TCP報文的時間戳和上一個TCP報文的時間戳,獲取時間戳差的絕對值;D)獲取所述時間戳差的絕對值與所述系統(tǒng)時間差之間的差值,并將所述差值與第一常量進行比較,如果所述差值超過第一常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則跳轉(zhuǎn)執(zhí)行步驟E);E)分別獲取接收當(dāng)前TCP報文的系統(tǒng)時間和第1次接收到的TCP報文的系統(tǒng)時間,將所述兩個系統(tǒng)時間求差得到系統(tǒng)時間差并以IOOms為單位取整得到N ;F)判斷表達式隊+3< = N是否成立,如果不成立則執(zhí)行步驟G),否則把cnt清零,且如果檢測時間到達1. 2秒,則跳到步驟I),否則把N賦值給Ntl,并跳轉(zhuǎn)執(zhí)行步驟B);G)判斷D)中獲取的時間戳差的絕對值與所述系統(tǒng)時間差之間的差值是否為0,如果不為0則使計數(shù)器cnt加1 ;H)將計數(shù)器cnt與第二常量進行比較,如果計數(shù)器值大于第二常量,則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象,否則繼續(xù)跳轉(zhuǎn)執(zhí)行步驟B);I)該IP地址暫時沒有檢測出私接,進行下次繼續(xù)檢測或者退出檢測。
4.根據(jù)權(quán)利要求3所述的基于OSI傳輸層時間戳的寬帶私接檢測方法,其特征在于 所述第一常量為2,所述第二常量為6。
全文摘要
本發(fā)明公開了一種基于OSI傳輸層時間戳的寬帶私接檢測方法,其實施步驟如下1)在客戶端向服務(wù)器端請求建立TCP連接時,服務(wù)器端返回了同步確認報文,電信接入路由設(shè)備截獲該同步確認報文,添加時間戳后再次發(fā)送給客戶端;2)電信接入路由設(shè)備設(shè)定第一常量和第二常量;3)電信接入路由設(shè)備標記每一個接收的TCP報文的系統(tǒng)時間,并獲取每一個接收的TCP報文的時間戳;4)實時獲取同一IP地址客戶端發(fā)送的相鄰兩個TCP報文之間的系統(tǒng)時間差和時間戳差,并獲取系統(tǒng)時間差和時間戳差之間的差值,如果所述差值超過第一常量或者在預(yù)設(shè)時間內(nèi)所述差值不為0的數(shù)量超過第二常量則判定該IP地址對應(yīng)的客戶端存在寬帶私接現(xiàn)象。本發(fā)明具有檢測準確性高、系統(tǒng)資源占用低、檢測過程簡便、適用范圍廣泛的優(yōu)點。
文檔編號H04L12/26GK102377620SQ20111041010
公開日2012年3月14日 申請日期2011年12月9日 優(yōu)先權(quán)日2011年12月9日
發(fā)明者于強, 倪笑園, 徐元欣, 李永佳, 楊碩, 梁書成, 潘立波, 章翠枝, 陳淑敏 申請人:浙江大學(xué)