一種判斷目標設備的狀態(tài)的方法和裝置的制造方法
【專利摘要】本發(fā)明的實施方式提供了一種判斷目標設備的狀態(tài)的方法和裝置。所述裝置包括:a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值;c、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;f、根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
【專利說明】
一種判斷目標設備的狀態(tài)的方法和裝置
技術領域
[0001]本發(fā)明的實施方式涉及通信領域,更具體地,本發(fā)明的實施方式涉及判斷目標設備的狀態(tài)的方法和裝置。
【背景技術】
[0002]本部分旨在為權利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現(xiàn)有技術。
[0003]隨著通信技術的發(fā)展,越來越多的用戶通過因特網(wǎng)來獲取信息。其中常用的一種通信協(xié)議是TCP(Transmiss1n Control Protocol),其是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,使用三次握手建立連接:本地設備發(fā)送SYN(Seq Number = X)數(shù)據(jù)包給目標設備,進入SYN_SEND狀態(tài);目標設備收到SYN數(shù)據(jù)包,回應一個SYN+ACK( SeqNumber = y,ACK Number = x+1)數(shù)據(jù)包,進入SYN_RECV狀態(tài);本地設備收到目標設備的SYN+ACK數(shù)據(jù)包,回應ACK(ACK Number = y+1)數(shù)據(jù)包,進入連接狀態(tài),如圖1A所示。
[0004]另外,TCP協(xié)議也可以用于本地設備掃描器在判斷TCP端口是否開放:通過發(fā)送進程發(fā)送SYN數(shù)據(jù)包(包括SYN= I,隨機產(chǎn)生的Seq Number,目標設備的IP地址DstIP,目標設備的端口號DstPort,本地設備的IP地址SrcIP,本地設備的端口號SrcPort等信息)以后,需要在內(nèi)存中記錄相關信息(DstIP、DstPort、Seq Number);然后接收進程監(jiān)聽SYN+ACK數(shù)據(jù)包后,進行驗證并判斷此SYN+ACK數(shù)據(jù)包是否為對SYN數(shù)據(jù)包的響應數(shù)據(jù)包,然后判斷DstIP對應的DstPort是否處于開放狀態(tài),判斷標準為:記錄的DstIP是否與收到SYN+ACK數(shù)據(jù)包的SrcIP相同,記錄的DstPort是否與收到SYN+ACK數(shù)據(jù)包的SrcPort相同,記錄的SeqNumber+1是否等于收到SYN+ACK數(shù)據(jù)包的Ack Number;最后發(fā)送RST數(shù)據(jù)包斷開連接,如圖1B所示。
[0005]然而,以上的連接方式或者判斷目標設備狀態(tài)的方式需要在內(nèi)存中維護已發(fā)送SYN的數(shù)據(jù)包的狀態(tài)記錄(DstIP,DstPort,Seq Number),以便在收到SYN+ACK數(shù)據(jù)包后進行驗證,在內(nèi)存中維護和匹配記錄需要消耗大量的存儲和計算資源。同時在發(fā)送進程和接收進程間需要進行并發(fā)處理,也需要額外的性能消耗,所以普通的TCP端口掃描不能重復利用帶寬資源,掃描速度較慢。
【發(fā)明內(nèi)容】
[0006]現(xiàn)有技術中,利用TCP協(xié)議的網(wǎng)絡連接方式或者判斷目標設備狀態(tài)的方式需要在內(nèi)存中維護已發(fā)送SYN的數(shù)據(jù)包的狀態(tài)記錄,在內(nèi)存中維護和匹配記錄需要消耗大量的存儲和計算資源。同時在發(fā)送進程和接收進程間需要進行并發(fā)處理,也需要額外的性能消耗,所以普通的TCP端口掃描不能重復利用帶寬資源,掃描速度較慢。
[0007]因此在現(xiàn)有技術中,判斷目標設備的狀態(tài)的方法和裝置用戶體驗不佳,在內(nèi)存中維護和匹配記錄需要消耗大量的存儲和計算資源,同時在發(fā)送進程和接收進程間需要進行并發(fā)處理,也需要額外的性能消耗,掃描速度較慢,這是非常令人煩惱的過程。
[0008]為此,非常需要一種改進的判斷目標設備的狀態(tài)的方法和裝置,無需存儲與發(fā)送的通信請求相關數(shù)據(jù),不需要在內(nèi)存中維護和匹配大量數(shù)據(jù),發(fā)送進程和接收進程可以相對獨立地進行處理,節(jié)約大量的存儲和計算資源,并且簡化計算過程,顯著提高對目標設備的掃描速度,因而提高通信效率。
[0009]在本上下文中,本發(fā)明的實施方式期望提供一種判斷目標設備的狀態(tài)的方法和裝置。
[0010]在本發(fā)明實施方式的第一方面中,提供了一種判斷目標設備的狀態(tài)的方法,包括:a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值;C、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;f、根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
[0011]在根據(jù)本發(fā)明的上述實施例的判斷目標設備的狀態(tài)的方法中,其中對所述目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值包括:對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值。
[0012]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中根據(jù)所述比較結果,判斷目標設備的狀態(tài)包括:當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息來自目標設備且所述通信消息對應的目標設備的端口為開放狀態(tài),以在所述本地設備和所述通信消息對應的目標設備之間建立或斷開通信連接。
[0013]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中根據(jù)所述比較結果,判斷目標設備的狀態(tài)包括:當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,判斷所述通信消息無效;且所述方法還包括:丟棄所述通信消息。
[0014]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,在本地設備向所述目標設備發(fā)送通信請求后,所述方法還包括:從本地設備上刪除所述通信請求的信息。
[0015]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中所述通信請求是SYN數(shù)據(jù)包,且所述SYN數(shù)據(jù)包包括Seq Number、所述目標設備的IP地址、所述目標設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Seq Number是所述第一特征參數(shù)值。
[0016]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中所述通信消息是SYN+ACK數(shù)據(jù)包,所述SYN+ACK數(shù)據(jù)包包括Ack Number、發(fā)送所述通信消息的設備的IP地址、發(fā)送所述通信消息的設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Ack Number是所述第二特征參數(shù)值。
[0017]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息包括:對Ack Number執(zhí)行反計算,以獲得計算后的IP地址。
[0018]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中對所述第二特征參數(shù)值執(zhí)行反計算,以獲得所述第三特征消息包括:計算Ack Number與I的差值;對所述差值執(zhí)行所述整形方法的反運算,以獲得計算后的IP地址。
[0019]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,其中比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果包括:比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,以獲得比較結果。
[0020]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的方法中,當所述通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址匹配時,判斷發(fā)送所述通信消息的設備為目標設備及所述目標設備的端口號對應的端口為開放狀態(tài)。
[0021]根據(jù)本發(fā)明的第二方面,提供了一種判斷目標設備的狀態(tài)的裝置,包括:第一計算模塊,被配置為對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;發(fā)送模塊,被配置為通過本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值;接收模塊,被配置為接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;第二計算模塊,被配置為對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;比較模塊,被配置為比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;判斷模塊,被配置為根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
[0022]在根據(jù)本發(fā)明的上述實施例的判斷目標設備的狀態(tài)的裝置中,其中所述第一計算模塊被配置為:對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值。
[0023]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述判斷模塊被配置為:當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息來自目標設備且所述通信消息對應的目標設備的端口為開放狀態(tài),以在所述本地設備和所述通信消息對應的目標設備之間建立或斷開通信連接。
[0024]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述判斷模塊被配置為:當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,判斷所述通信消息無效;且所述裝置還包括:丟棄模塊,被配置為丟棄所述通信消息。
[0025]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,所述裝置還包括:刪除模塊,被配置為在所述發(fā)送模塊通過本地設備向所述目標設備發(fā)送通信請求后,從本地設備上刪除所述通信請求的信息。
[0026]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述通信請求是SYN數(shù)據(jù)包,且所述SYN數(shù)據(jù)包包括Seq Number、所述目標設備的IP地址、所述目標設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Seq Number是所述第一特征參數(shù)值。
[0027]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述通信消息是SYN+ACK數(shù)據(jù)包,所述SYN+ACK數(shù)據(jù)包包括Ack Number、發(fā)送所述通信消息的設備的IP地址、發(fā)送所述通信消息的設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Ack Number是所述第二特征參數(shù)值。
[0028]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述第二計算模塊被配置為:對Ack Number執(zhí)行反計算,以獲得計算后的IP地址。
[0029]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述第二計算模塊還包括:第一計算子模塊,被配置為計算Ack Number與I的差值;第二計算子模塊,被配置為對所述差值執(zhí)行所述整形方法的反運算,以獲得計算后的IP地址。
[0030]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,其中所述比較模塊被配置為:比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,以獲得比較結果。
[0031]在根據(jù)本發(fā)明的上述任一實施例的判斷目標設備的狀態(tài)的裝置中,所述判斷模塊被配置為當所述通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址匹配時,判斷發(fā)送所述通信消息的設備為目標設備及所述目標設備的端口號對應的端口為開放狀態(tài)。
[0032]根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)的方法和裝置,通過上述將通信請求中目標設備的第一特征消息轉換為第一特征參數(shù)值,將從目標設備接收的通信消息中的第二特征參數(shù)值反計算并獲得第三特征消息,并將通信消息中的第一特征值與計算獲得的第三特征消息相比較,來判斷目標設備的狀態(tài),允許僅需通過對接收到的通信消息中的信息進行計算和驗證,即可判斷計算出的目標設備的狀態(tài),以便進行如發(fā)送數(shù)據(jù),斷開連接等后續(xù)操作,無需存儲與發(fā)送的通信請求相關數(shù)據(jù),不需要在內(nèi)存中維護和匹配大量數(shù)據(jù),發(fā)送進程和接收進程可以相對獨立地進行處理,節(jié)約了大量的存儲和計算資源,此外,由于簡化了計算過程,顯著提高了對目標設備的掃描速度,因而提高了通信效率。
【附圖說明】
[0033]通過參考附圖閱讀下文的詳細描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
[0034]圖1A和IB示意性地示出了現(xiàn)有技術中利用TCP協(xié)議進行通信的連接方法和判斷TCP端口是否開放的方法的示意圖;
[0035]圖2示意性地示出了根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)方法的流程示意圖;
[0036]圖3示意性地示出了根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)裝置的示意圖;
[0037]圖4示意性地示出了根據(jù)本發(fā)明另一實施方式的判斷目標設備的狀態(tài)裝置的示意圖;以及
[0038]圖5示意性地示出了根據(jù)本發(fā)明另一實施方式的判斷目標設備的狀態(tài)的程序產(chǎn)品O
[0039]在附圖中,相同或對應的標號表不相同或對應的部分。
【具體實施方式】
[0040]下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應當理解,給出這些實施方式僅僅是為了使本領域技術人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整地傳達給本領域的技術人員。
[0041]本領域技術技術人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結合的形式。
[0042]根據(jù)本發(fā)明的實施方式,提出了一種判斷目標設備的狀態(tài)方法和裝置。
[0043]在本文中,需要理解的是,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
[0044]下面參考本發(fā)明的若干代表性實施方式,詳細闡釋本發(fā)明的原理和精神。
[0045]發(fā)明概述
[0046]本發(fā)明人發(fā)現(xiàn),在向目標設備發(fā)送數(shù)據(jù)包之前,可以對目標設備的第一特征消息執(zhí)行計算,例如對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值,將包含第一特征消息(例如目標設備的IP地址)和第一特征參數(shù)值的通信請求發(fā)送至目標設備;從所述目標設備接收通信消息,所述通信消息包括第二特征消息(例如發(fā)送通信消息的設備的IP地址)和第二特征參數(shù)值(例如SYN+ACK數(shù)據(jù)包中的Ack Number),對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息(例如計算后的IP地址);比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;并根據(jù)所述比較結果,判斷所述目標設備的狀態(tài),例如,當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息來自目標設備且該目標設備的端口為開放狀態(tài),以在所述本地設備和該目標設備之間建立或斷開通信連接,或者當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,丟棄所述通信消息。這樣,允許僅需通過對接收到的通信消息中的信息進行計算和驗證,即可判斷計算出的目標設備的狀態(tài),以便進行如發(fā)送數(shù)據(jù),斷開或連接等后續(xù)操作,無需存儲與發(fā)送的通信請求相關數(shù)據(jù),不需要在內(nèi)存中維護和匹配大量數(shù)據(jù),發(fā)送進程和接收進程可以相對獨立地進行處理,節(jié)約了大量的存儲和計算資源,此外,由于簡化了計算過程,顯著提高了對目標設備的掃描速度,因而提高了通信效率。
[0047]在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方式。
[0048]示例性方法
[0049]下面參考圖2來描述根據(jù)本發(fā)明示例性實施方式的判斷目標設備的狀態(tài)方法。需要注意的是,上述應用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應用于適用的任何場景。
[0050]圖2示意性地示出了根據(jù)本發(fā)明實施方式的判斷目標設備B的狀態(tài)方法200的流程示意圖。
[0051]在一些可能的實施方式中,本發(fā)明實施例的本地設備和目標設備可以是具備通信功能的終端或服務器。在一個實施例中,本地設備為客戶端,目標設備為服務器端。
[0052]根據(jù)本發(fā)明的實施例,終端可以是桌面計算機、筆記本計算機、服務器、工作站、平板電腦、智能手機等運行操作系統(tǒng)的各種設備。終端可以包括至少一個處理器,其與存儲器以及多個其它模塊協(xié)同操作。所述處理器可以包括多個核心,以用于多線程或并行處理。所述存儲器可以包括一個或多個存儲設備,存儲器或者其中的存儲設備包括非易失性計算機可讀記錄/存儲介質。可選地,根據(jù)本發(fā)明的實施例的終端可具有操作系統(tǒng),用于管理和控制終端硬件與軟件資源的計算機程序,包含AndroicU1S及未來將出現(xiàn)的智能設備操作系統(tǒng)。
[0053]根據(jù)本發(fā)明的實施例,服務器可以是一個或多個服務器計算機,可設置為提供某種服務器功能,例如數(shù)據(jù)庫管理和搜索引擎。服務器可以包括至少一個處理器,其與存儲器以及多個其它模塊協(xié)同操作。所述處理器可以包括多個核心,以用于多線程或并行處理。所述存儲器可以包括一個或多個存儲設備,存儲器或者其中的存儲設備包括非易失性計算機可讀記錄/存儲介質。
[0054]如圖2所示,該方法200可以包括:
[0055]步驟a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值。在一些可能的實施方式中,所述目標設備的第一特征消息可以是專用于所述目標設備的任何消息,例如目標設備的IP地址、目標設備的端口號、目標設備的唯一識別符,或其他用于識別所述目標設備的信息。
[0056]在一些可能的實施方式中,步驟a可包括:對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值。例如,對于目標設備B的IP地址123.123.123.123,對該IP地址執(zhí)行整形方法,即將目標設備B的IP地址轉化為數(shù)值inet_aton(ip),例如inet_aton(“123.123.123.123”)= (123Χ 224) + (123 Χ216) + (123Χ28)+123 = 2071690107,以獲得第一特征參數(shù)值2071690107。當然,也可以根據(jù)需要使用任何合適的函數(shù),以對目標設備B的IP地址執(zhí)行計算,以獲得第一特征參數(shù)值。
[0057]如圖2所示,方法200包括:步驟b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值??蛇x地,通信請求也可以包括其他信息,例如本地設備的信息。
[0058]在一些可能的實施方式中,所述通信請求是SYN數(shù)據(jù)包,且所述SYN數(shù)據(jù)包包括SeqNumber、所述目標設備B的IP地址、所述目標設備B的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Seq Number是所述第一特征參數(shù)值。可選地,本地設備A構造將要發(fā)送至目標設備B的通信請求,S卩SYN數(shù)據(jù)包,SYN數(shù)據(jù)包中包含:Seq Number、目標設備B的IP地址(DstIP)、目標設備B的端口號(DstPort),本地設備A的IP地址(SrcIP)和/或本地設備A的端口號(SrcPort);其中Seq Number不再等于隨機數(shù),而等于上述計算得到的第一特征參數(shù)值,例如,對于目標設備B的IP地址123.123.123.123,Seq Number = inet_aton(“123.123.123.123” ) =2071690107 =第一特征參數(shù)值。
[0059]如圖2所示,方法200包括:步驟C、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值??蛇x地,通信請求也可以包括其他信息,例如本地設備即接收方的信息。
[0060]在一些可能的實施方式中,其中所述通信消息是SYN+ACK數(shù)據(jù)包,所述SYN+ACK數(shù)據(jù)包包括Ack Number、發(fā)送所述通信消息的設備的IP地址、發(fā)送所述通信消息的設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Ack Number是所述第二特征參數(shù)值??蛇x地,本地設備A可以從目標設備B ’接收通信消息,即SYN+ACK數(shù)據(jù)包,SYN+ACK數(shù)據(jù)包中包含:Ack Number、目標設備B ’的IP地址(Src IP’)、目標設備B’的端口號(SrcPort ’),本地設備A的IP地址(DstIP ’)和/或本地設備A的端口號(DstPort ’);其中AckNumber等于第二特征參數(shù)值。
[0061 ]應理解,因步驟b中向目標設備發(fā)送通信請求與步驟c接收通信消息可以是獨立進行的,步驟b中的目標設備B與步驟c中的目標設備B’(即發(fā)送通信消息的設備)可以不是一一對應的,例如,在步驟b中,本地設備A可以向一個或多個目標設備B發(fā)送通信請求,在步驟c中可以從一個或若干個目標設備B’接收通信消息,步驟b中的目標設備B與步驟c中的目標設備B’可以相同也可以不同。
[0062]如圖2所示,方法200包括:步驟d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息??蛇x地,在一些可能的實施方式中,對第二特征參數(shù)執(zhí)行反計算可以是利用與步驟a中對所述目標設備的第一特征消息執(zhí)行計算所使用的函數(shù)相同的函數(shù),進行上述計算對應的反計算。
[0063]在一些可能的實施方式中,其中步驟d包括:對Ack Number執(zhí)行反計算,以獲得計算后的IP地址。
[0064]在一些可能的實施方式中,其中對所述第二特征參數(shù)值執(zhí)行反計算,以獲得所述第三特征消息包括:計算Ack Number與I的差值;對所述差值執(zhí)行所述整形方法的反運算,以獲得計算后的IP地址。
[0065]可選地,如上所述,在步驟a中,對于目標設備的第一特征消息,例如目標設備B的IP地址123.123.123.123,對該IP地址執(zhí)行整形方法,即將目標設備B的IP地址轉化為數(shù)值inet_aton(ip)j|^ninet_aton(“123.123.123.123”)= (123 X 224)+(123 X 216) + (123 X 28)+ 123 = 2071690107,以獲得第一特征參數(shù)值2071690107。當?shù)诙卣鲄?shù)值Ack Number =2071690108時,對該第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息,例如計算后的IP地址;具體地,計算Ack Number與I的差值,即差值= Ack Number-1 = 2071690107;對所述差值= 2071690107執(zhí)行所述整形方法的反運算,即利用相同的函數(shù)inet_aton( ip)進行反計算,以獲得計算后的IP地址123.123.123.123,即第三特征消息。
[0066]如圖2所示,方法200包括:步驟e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果。
[0067]在一些可能的實施方式中,步驟e包括:比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,以獲得比較結果。例如,對于發(fā)送通信消息的設備一目標設備B’,第二特征消息可以是通信消息中的目標設備B’的IP地址,第三特征消息可以是計算后的IP地址。
[0068]如圖2所示,方法200包括:步驟f、根據(jù)所述比較結果,判斷所述目標設備的狀態(tài)。
[0069]在一些可能的實施方式中,步驟f包括:當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息中的所述第二特征消息與所述第三特征消息來自目標設備且通信消息對應的目標設備的端口為開放狀態(tài),以在所述本地設備和該目標設備之間建立或斷開通信連接。
[0070]在一些可能的實施方式中,在通信請求中,第一特征消息是目標設備的IP地址,對目標設備的IP地址執(zhí)行計算而獲得第一特征參數(shù)Seq Number;所述通信消息中,第二特征消息是發(fā)送所述通信消息的設備的IP地址,第二特征參數(shù)值是Ack Number,且第三特征消息是通過對第二特征參數(shù)值Ack Number執(zhí)行反計算而得到的所述計算后的IP地址。如果發(fā)送通信消息的設備是目標設備,那么Ack Number = (Seq Number+1),那么對第二特征參數(shù)值Ack Number執(zhí)行反計算而得到的所述計算后的IP地址與目標設備的IP地址相同;此時,如果第二特征消息(即發(fā)送通信消息的設備的IP地址)與計算后的IP地址(即目標設備的IP地址)匹配,則判斷所述通信消息中的所述第二特征消息來自目標設備且通信消息中目標設備的端口號對應的端口為開放狀態(tài)。例如,當對于發(fā)送通信消息的設備B’,如果計算后的IP地址是123.123.123.123,與該發(fā)送通信消息的設備的IP地址相匹配,判斷發(fā)送通信消息的設備B,就是目標設備,且通信消息對應的目標設備B ’的端口為開放狀態(tài)。
[0071]在一些可能的實施方式中,步驟f包括:當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,判斷所述通信消息無效,此時通信消息中的所述第二特征消息可能不是來自所述目標設備或者所述目標設備的端口為不開放狀態(tài)等;且所述方法200還包括:丟棄所述通信消息。
[0072]可選地,所述本地設備可以針對另一個目標設備重復步驟a-b,以判斷所述另一個目標設備的狀態(tài)。同時,通過對接收到的其他通信消息重復步驟c-f來判斷目標設備的端口是否處于開放狀態(tài)。。在網(wǎng)絡設備端口掃描的一個實施例中,本地設備對大量的目標設備執(zhí)行步驟a-b的內(nèi)容,同時對接收到的大量通信消息執(zhí)行步驟c_f的內(nèi)容,來判斷目標設備的端口是否處于開放狀態(tài)。
[0073]在一些可能的實施方式中,在步驟b之后,所述方法200還包括:從本地設備上刪除所述通信請求的信息。如上所述,可以通過比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,來獲得比較結果,因此,可以不在本地設備上保留通信請求的信息,即,在本地設備向所述目標設備發(fā)送通信請求之后,可以從本地設備上刪除所述通信請求的信息,以節(jié)省儲存空間。
[0074]這樣,根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)的方法,通過上述將通信請求中目標設備的第一特征消息轉換為第一特征參數(shù)值,將從目標設備接收的通信消息中的第二特征參數(shù)值反計算并獲得第三特征消息,并將通信消息中的第二特征值與計算獲得的第三特征消息相比較,來判斷目標設備的狀態(tài),允許僅需通過對接收到的通信消息中的信息進行計算和驗證,即可判斷計算出的目標設備的狀態(tài),以便進行如發(fā)送數(shù)據(jù),斷開連接等后續(xù)操作,無需存儲與發(fā)送的通信請求相關數(shù)據(jù),不需要在內(nèi)存中維護和匹配大量數(shù)據(jù),發(fā)送進程和接收進程可以相對獨立地進行處理,節(jié)約了大量的存儲和計算資源,此外,由于簡化了計算過程,顯著提高了對目標設備的掃描速度,因而提高了通信效率。
[0075]示例性設備
[0076]在介紹了本發(fā)明示例性實施方式的方法之后,接下來,參考圖3對本發(fā)明示例性實施方式的判斷目標設備的狀態(tài)的裝置的示意圖。
[0077]圖3示意性地示出了根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)的裝置400的示意圖。如圖3所示,該裝置300可以包括:第一計算模塊301、發(fā)送模塊302、接收模塊303、第二計算模塊304、比較模塊305和判斷模塊306。
[0078]在一些可能的實施方式中,本發(fā)明實施例的本地設備和目標設備可以是具備通信功能的終端或服務器。在一個實施例中,本地設備為客戶端,目標設備為服務器端。
[0079]根據(jù)本發(fā)明的實施例,終端可以是桌面計算機、筆記本計算機、服務器、工作站、平板電腦、智能手機等運行操作系統(tǒng)的各種設備。終端可以包括至少一個處理器,其與存儲器以及多個其它模塊協(xié)同操作。所述處理器可以包括多個核心,以用于多線程或并行處理。所述存儲器可以包括一個或多個存儲設備,存儲器或者其中的存儲設備包括非易失性計算機可讀記錄/存儲介質??蛇x地,根據(jù)本發(fā)明的實施例的終端可具有操作系統(tǒng),用于管理和控制終端硬件與軟件資源的計算機程序,包含AndroicU1S及未來將出現(xiàn)的智能設備操作系統(tǒng)。
[0080]根據(jù)本發(fā)明的實施例,服務器可以是一個或多個服務器計算機,可設置為提供某種服務器功能,例如數(shù)據(jù)庫管理和搜索引擎。服務器可以包括至少一個處理器,其與存儲器以及多個其它模塊協(xié)同操作。所述處理器可以包括多個核心,以用于多線程或并行處理。所述存儲器可以包括一個或多個存儲設備,存儲器或者其中的存儲設備包括非易失性計算機可讀記錄/存儲介質。
[0081 ]在裝置300中,第一計算模塊301,被配置為對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值。在一些可能的實施方式中,所述目標設備的第一特征消息可以是專用于所述目標設備的任何消息,例如目標設備的IP地址、目標設備的端口號、目標設備的唯一識別符,或其他用于識別所述目標設備的信息。
[0082]在一些可能的實施方式中,第一計算模塊301被配置為對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值。例如,對于目標設備B的I P地址123.123.123.123,第一計算模塊301對該IP地址執(zhí)行整形方法,即將目標設備B的IP地址轉化為數(shù)值 inet_aton(ip),例如 inet_aton(“123.123.123.123”)= (123 X 224) + (123 X 216) +(123 X 28)+123 = 2071690107,以獲得第一特征參數(shù)值2071690107。當然,第一計算模塊301也可以根據(jù)需要使用任何合適的函數(shù),以對目標設備B的IP地址執(zhí)行計算,以獲得第一特征參數(shù)值。
[0083]如圖3所示,裝置300包括:發(fā)送模塊302,被配置為通過本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值??蛇x地,通信請求也可以包括其他信息,例如本地設備的信息。
[0084]在一些可能的實施方式中,所述通信請求是SYN數(shù)據(jù)包,且所述SYN數(shù)據(jù)包包括SeqNumber、所述目標設備B的IP地址、所述目標設備B的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Seq Number是所述第一特征參數(shù)值??蛇x地,本地設備A構造將要發(fā)送至目標設備B的通信請求,S卩SYN數(shù)據(jù)包,SYN數(shù)據(jù)包中包含:Seq Number、目標設備B的IP地址(DstIP)、目標設備B的端口號(DstPort),本地設備A的IP地址(SrcIP)和/或本地設備A的端口號(SrcPort);其中Seq Number不再等于隨機數(shù),而等于上述計算得到的第一特征參數(shù)值,例如,對于目標設備B的IP地址123.123.123.123,Seq Number = inet_aton(“123.123.123.123” ) =2071690107 =第一特征參數(shù)值。
[0085]如圖3所示,裝置300包括:接收模塊303,被配置為接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值??蛇x地,通信請求也可以包括其他信息,例如本地設備即接收方的信息。
[0086]在一些可能的實施方式中,其中所述通信消息是SYN+ACK數(shù)據(jù)包,所述SYN+ACK數(shù)據(jù)包包括Ack Number、發(fā)送所述通信消息的設備的IP地址、發(fā)送所述通信消息的設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Ack Number是所述第二特征參數(shù)值。可選地,接收模塊303可以通過本地設備A從目標設備B ’接收通信消息,即SYN+ACK數(shù)據(jù)包,SYN+ACK數(shù)據(jù)包中包含:Ack Number、目標設備B’的IP地址(SrcIP’)、目標設備B’的端口號(SrcPort’),本地設備A的IP地址(DstIP’)和/或本地設備A的端口號(DstPort’);其中Ack Number等于第二特征參數(shù)值。
[0087]應理解,因發(fā)送模塊302執(zhí)行的向目標設備發(fā)送通信請求與接收模塊303接收通信消息可以是獨立進行的,發(fā)送模塊302向其發(fā)送通信請求的目標設備B與接收模塊303從其接收通信消息的目標設備B’(即發(fā)送通信消息的設備)可以不是一一對應的,例如,發(fā)送模塊302可以通過本地設備A向一個或多個目標設備B發(fā)送通信請求,接收模塊303可以從一個或若干個目標設備B’接收通信消息,目標設備B與目標設備B’可以相同也可以不同。
[0088]如圖3所示,裝置300包括:第二計算模塊304,被配置為對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息??蛇x地,在一些可能的實施方式中,第二計算模塊304對第二特征參數(shù)執(zhí)行反計算可以利用與第一計算模塊301對所述目標設備的第一特征消息執(zhí)行計算所使用的函數(shù)相同的函數(shù),進行上述計算對應的反計算。
[0089]在一些可能的實施方式中,其中第二計算模塊304被配置為:對AckNumber執(zhí)行反計算,以獲得計算后的IP地址。
[0090]在一些可能的實施方式中,其中第二計算模塊304包括:第一計算子模塊304A,被配置為計算Ack Number與I的差值;第二計算子模塊304B,被配置為對所述差值執(zhí)行所述整形方法的反運算,以獲得計算后的IP地址。
[0091 ]可選地,如上所述,對于目標設備的第一特征消息,例如目標設備B的IP地址123.123.123.123,第一計算模塊301對該IP地址執(zhí)行整形方法,即將目標設備B的IP地址轉化為數(shù)值 inet_aton(ip),例如 inet_aton(“123.123.123.123”)= (123 X 224) + (123 X 216) +(123 X 28)+123 = 2071690107,以獲得第一特征參數(shù)值2071690107。當?shù)诙卣鲄?shù)值AckNumber = 2071690108時,第二計算模塊304對該第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息,例如計算后的IP地址;具體地,第一計算子模塊304A計算Ack Number與I的差值,即差值= Ack Number-1 = 2071690107;第二計算子模塊304B對所述差值= 2071690107執(zhí)行所述整形方法的反運算,即利用相同的函數(shù)inet_at0n(ip)進行反計算,以獲得計算后的IP地址123.123.123.123,即第三特征消息。
[0092]如圖3所示,裝置300包括比較模塊305,被配置為比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果。
[0093]在一些可能的實施方式中,比較模塊305被配置為:比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,以獲得比較結果。例如,對于發(fā)送通信消息的設備--目標設備B’,第二特征消息可以是通信消息中的目標設備B’的IP地址,第三特征消息可以是計算后的IP地址。
[0094]如圖3所示,裝置300包括:判斷模塊306,被配置為根據(jù)所述比較結果,判斷所述目標設備的狀態(tài)。
[0095]在一些可能的實施方式中,所述判斷模塊306被配置為:當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息中的所述第二特征消息與所述第三特征消息來自目標設備且通信消息對應的目標設備的端口為開放狀態(tài),以在所述本地設備和該目標設備之間建立或斷開通信連接。
[0096]在一些可能的實施方式中,在通信請求中,第一特征消息是目標設備的IP地址,第一計算模塊301對目標設備的IP地址執(zhí)行計算而獲得第一特征參數(shù)Seq Number;所述通信消息中,第二特征消息是發(fā)送所述通信消息的設備的IP地址,第二特征參數(shù)值是AckNumber,且第三特征消息是第二計算模塊304通過對第二特征參數(shù)值Ack Number執(zhí)行反計算而得到的所述計算后的IP地址。如果發(fā)送通信消息的設備是目標設備,那么Ack Number=(Seq Number+1),那么第二計算模塊304對第二特征參數(shù)值Ack Number執(zhí)行反計算而得到的所述計算后的IP地址與目標設備的IP地址相同;此時,如果第二特征消息(即發(fā)送通信消息的設備的IP地址)與計算后的IP地址(即目標設備的IP地址)匹配,則判斷模塊306判斷所述通信消息中的所述第二特征消息來自目標設備且通信消息中目標設備的端口號對應的端口為開放狀態(tài)。例如,當對于發(fā)送通信消息的設備B’,如果計算后的IP地址是123.123.123.123,與該發(fā)送通信消息的設備的IP地址相匹配,判斷模塊306判斷發(fā)送通信消息的設備B’就是目標設備,且通信消息對應的目標設備B’的端口為開放狀態(tài)。
[0097]在一些可能的實施方式中,所述判斷模塊306被配置為:當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,判斷所述通信消息無效,此時通信消息中的所述第二特征消息可能不是來自所述目標設備或者所述目標設備的端口為不開放狀態(tài)等;且所述裝置300還包括:丟棄模塊307,被配置為丟棄所述通信消息。
[0098]可選地,所述第一計算模塊301被配置為對另一個目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;所述發(fā)送模塊302被配置為通過本地設備向所述另一個目標設備發(fā)送通信請求,所述通信請求包括所述另一個目標設備的第一特征消息和所述第一特征參數(shù)值;所述接收模塊303被配置為從所述另一個目標設備接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;所述第二計算模塊304被配置為對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;所述比較模塊305被配置為比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;所述判斷模塊306被配置為根據(jù)所述比較結果,判斷所述另一個目標設備的狀態(tài),以判斷所述另一個目標設備的狀態(tài)。例如,當對于目標設備B,當?shù)诙卣飨⑹峭ㄐ畔⒅械陌l(fā)送所述通信消息的設備的IP地址,而第三特征消息是計算后的IP地址,如果二者不匹配,判斷模塊306判斷所述通信消息無效,此時通信消息中的所述第二特征消息與所述第三特征消息可能不是來自所述目標設備或者目標設備B的端口為不開放狀態(tài)等,無法與本地設備A進行通信,則丟棄模塊307丟棄通信消息。
[0099]本地設備A針對另一個目標設備B重復方法200中的步驟a-b,同時針對接收到的通信消息重復步驟c_f,以獲得目標設備的狀態(tài)。在網(wǎng)絡設備端口掃描的一個實施例中,本地設備對大量的目標設備執(zhí)行方法200的步驟a-b的內(nèi)容,同時對接收到的大量通信消息執(zhí)行方法200的步驟c-f的內(nèi)容,來判斷目標設備的端口是否處于開放狀態(tài)。
[0100]在一些可能的實施方式中,所述裝置300還包括刪除模塊308,被配置為在所述發(fā)送模塊通過本地設備向所述目標設備發(fā)送通信請求后,從本地設備上刪除所述通信請求的信息。如上所述,比較模塊305可以通過比較通信消息中的發(fā)送所述通信消息的設備的IP地址和所述計算后的IP地址,來獲得比較結果,因此,可以不在本地設備上保留通信請求的信息,即,在本地設備向所述目標設備發(fā)送通信請求之后,刪除模塊308可以從本地設備上刪除所述通信請求的信息,以節(jié)省儲存空間。
[0101]這樣,根據(jù)本發(fā)明實施方式的判斷目標設備的狀態(tài)的裝置,通過上述將通信請求中目標設備的第一特征消息轉換為第一特征參數(shù)值,將從目標設備接收的通信消息中的第二特征參數(shù)值反計算并獲得第三特征消息,并將通信消息中的第二特征值與計算獲得的第三特征消息相比較,來判斷目標設備的狀態(tài),允許僅需通過對接收到的通信消息中的信息進行計算和驗證,即可判斷計算出的目標設備的狀態(tài),以便進行如發(fā)送數(shù)據(jù),斷開連接等后續(xù)操作,無需存儲與發(fā)送的通信請求相關數(shù)據(jù),不需要在內(nèi)存中維護和匹配大量數(shù)據(jù),發(fā)送進程和接收進程可以相對獨立地進行處理,節(jié)約了大量的存儲和計算資源,此外,由于簡化了計算過程,顯著提高了對目標設備的掃描速度,因而提高了通信效率。
[0102]示例性設備
[0103]在介紹了本發(fā)明示例性實施方式的方法和裝置之后,接下來,介紹根據(jù)本發(fā)明的另一示例性實施方式的判斷目標設備的狀態(tài)的裝置。
[0104]所屬技術領域的技術人員能夠理解,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
[0105]在一些可能的實施方式中,根據(jù)本發(fā)明的判斷目標設備的狀態(tài)的裝置可以至少包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有程序代碼,當所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的判斷目標設備的狀態(tài)的方法中的步驟。例如,所述處理單元可以執(zhí)行如圖2中所示的步驟a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;步驟b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值;步驟C、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;步驟d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;步驟e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;步驟f、根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
[0106]下面參照圖4來描述根據(jù)本發(fā)明的這種實施方式的判斷目標設備的狀態(tài)的裝置
10。圖4顯示的判斷目標設備的狀態(tài)的裝置10僅僅是一個示例,不應對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0107]如圖4所示,判斷目標設備的狀態(tài)的裝置10以通用計算設備的形式表現(xiàn)。判斷目標設備的狀態(tài)的裝置10的組件可以包括但不限于:上述至少一個處理單元16、上述至少一個存儲單元28、連接不同系統(tǒng)組件(包括存儲單元28和處理單元16)的總線18。
[0108]總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器、外圍總線、圖形加速端口、處理器或者使用多種總線結構中的任意總線結構的局域總線。
[0109]存儲單元28可以包括易失性存儲器形式的可讀介質,例如隨機存取存儲器(RAM)30和/或高速緩存存儲器32,還可以進一步只讀存儲器(R0M)34。
[0110]存儲單元28還可以包括具有一組(至少一個)程序模塊42的程序/實用工具40,這樣的程序模塊42包括但不限于:操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。
[0111]判斷目標設備的狀態(tài)的裝置10也可以與一個或多個外部設備14(例如鍵盤、指向設備、藍牙設備等)通信,還可與一個或者多個使得聯(lián)系人能與該判斷目標設備的狀態(tài)的裝置10交互的設備通信,和/或與使得該判斷目標設備的狀態(tài)的裝置10能與一個或多個其它計算設備進行通信的任何設備(例如路由器、調制解調器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,判斷目標設備的狀態(tài)的裝置10還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡,例如因特網(wǎng))通信。如圖所示,網(wǎng)絡適配器20通過總線18與判斷目標設備的狀態(tài)的裝置10的其它模塊通信。應當明白,盡管圖中未示出,可以結合判斷目標設備的狀態(tài)的裝置10使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、RAID系統(tǒng)、磁帶驅動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0112]示例性程序產(chǎn)品
[0113]在一些可能的實施方式中,本發(fā)明的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當所述程序產(chǎn)品在系統(tǒng)上運行時,所述程序代碼用于使所述系統(tǒng)執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的判斷目標設備的狀態(tài)的方法中的步驟,例如,所述系統(tǒng)可以執(zhí)行如圖2中所示的步驟a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值;步驟b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值;步驟C、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值;步驟d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息;步驟e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果;步驟f、根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
[0114]所述程序產(chǎn)品可以采用一個或多個可讀介質的任意組合??勺x介質可以是可讀信號介質或者可讀存儲介質??勺x存儲介質例如可以是一一但不限于一一電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(R0M)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。
[0115]如圖5所示,描述了根據(jù)本發(fā)明的實施方式的判斷目標設備的狀態(tài)的程序產(chǎn)品90,其可以采用便攜式緊湊盤只讀存儲器(CD-ROM)并包括程序代碼,并可以在終端設備,例如個人電腦上運行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
[0116]可讀信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一一但不限于一一電磁信號、光信號或上述的任意合適的組合??勺x信號介質還可以是可讀存儲介質以外的任何可讀介質,該可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。
[0117]可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括一一但不限于一一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0118]可以以一種或多種程序設計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、C++等,還包括常規(guī)的過程式程序設計語言一諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在聯(lián)系人計算設備上執(zhí)行、部分地在聯(lián)系人設備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在聯(lián)系人計算設備上部分在遠程計算設備上執(zhí)行、或者完全在遠程計算設備或服務器上執(zhí)行。在涉及遠程計算設備的情形中,遠程計算設備可以通過任意種類的網(wǎng)絡一一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到聯(lián)系人計算設備,或者,可以連接到外部計算設備(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。
[0119]應當注意,盡管在上文詳細描述中提及了判斷目標設備的狀態(tài)的設備的若干裝置或子裝置,但是這種劃分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多裝置的特征和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征和功能可以進一步劃分為由多個裝置來具體化。
[0120]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或將一個步驟分解為多個步驟執(zhí)行。
[0121]雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明的精神和原理,但是應該理解,本發(fā)明并不限于所公開的【具體實施方式】,對各方面的劃分也不意味著這些方面中的特征不能組合以進行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。
【主權項】
1.一種判斷目標設備的狀態(tài)的方法,包括: a、對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值; b、本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值; C、接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值; d、對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息; e、比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果; f、根據(jù)所述比較結果,判斷目標設備的狀態(tài)。2.根據(jù)權利要求1所述的方法,其中對所述目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值包括: 對所述目標設備的IP地址執(zhí)行整形方法的計算,以獲得第一特征參數(shù)值。3.根據(jù)權利要求1所述的方法,其中根據(jù)所述比較結果,判斷目標設備的狀態(tài)包括: 當所述通信消息中的第二特征消息與所述第三特征消息匹配時,判斷所述通信消息來自目標設備且所述通信消息對應的目標設備的端口為開放狀態(tài),以在所述本地設備和所述通信消息對應的目標設備之間建立或斷開通信連接。4.根據(jù)權利要求1所述的方法,其中根據(jù)所述比較結果,判斷目標設備的狀態(tài)包括: 當所述通信消息中的第二特征消息與所述第三特征消息不匹配時,判斷所述通信消息無效;且 所述方法還包括: 丟棄所述通信消息。5.根據(jù)權利要求1所述的方法,在本地設備向所述目標設備發(fā)送通信請求后,所述方法還包括: 從本地設備上刪除所述通信請求的信息。6.根據(jù)權利要求1所述的方法,其中所述通信請求是SYN數(shù)據(jù)包,且所述SYN數(shù)據(jù)包包括Seq Number、所述目標設備的IP地址、所述目標設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中SeqNumber是所述第一特征參數(shù)值。7.根據(jù)權利要求6所述的方法,其中所述通信消息是SYN+ACK數(shù)據(jù)包,所述SYN+ACK數(shù)據(jù)包包括Ack Number、發(fā)送所述通信消息的設備的IP地址、發(fā)送所述通信消息的設備的端口號、所述本地設備的IP地址和/或所述本地設備的端口號,其中Ack Number是所述第二特征參數(shù)值。8.根據(jù)權利要求7所述的方法,其中對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息包括: 對Ack Number執(zhí)行反計算,以獲得計算后的IP地址。9.根據(jù)權利要求8所述的方法,其中對所述第二特征參數(shù)值執(zhí)行反計算,以獲得所述第三特征消息包括: 計算Ack Number與I的差值; 對所述差值執(zhí)行所述整形方法的反運算,以獲得計算后的IP地址。10.一種判斷目標設備的狀態(tài)的裝置,包括: 第一計算模塊,被配置為對目標設備的第一特征消息執(zhí)行計算,以獲得第一特征參數(shù)值; 發(fā)送模塊,被配置為通過本地設備向所述目標設備發(fā)送通信請求,所述通信請求包括所述目標設備的第一特征消息和所述第一特征參數(shù)值; 接收模塊,被配置為接收通信消息,所述通信消息包括第二特征消息和第二特征參數(shù)值; 第二計算模塊,被配置為對所述第二特征參數(shù)值執(zhí)行反計算,以獲得第三特征消息; 比較模塊,被配置為比較所述通信消息中的第二特征消息和所述第三特征消息,以獲得比較結果; 判斷模塊,被配置為根據(jù)所述比較結果,判斷目標設備的狀態(tài)。
【文檔編號】H04L29/08GK106060158SQ201610532003
【公開日】2016年10月26日
【申請日】2016年6月30日
【發(fā)明人】沈明星
【申請人】杭州朗和科技有限公司