一種tcp報文出錯信息的獲取方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別是涉及一種TCP報文出錯信息的獲取方法和一種TCP報文出錯信息的獲取裝置。
【背景技術(shù)】
[0002]TCP/IP協(xié)議由網(wǎng)絡(luò)層的IP協(xié)議(Internet Protocol,網(wǎng)絡(luò)之間互聯(lián)的協(xié)議)和傳輸層的TCP協(xié)議(Transmiss1n Control Protocol,傳輸控制協(xié)議)組成,IP協(xié)議是一種無連接的、不可靠的通信協(xié)議,TCP協(xié)議是一種基于IP協(xié)議的面向連接的、可靠的傳輸協(xié)議,為應(yīng)用層提供可靠的傳輸服務(wù)。
[0003]為了確保數(shù)據(jù)傳輸?shù)目煽啃?,TCP協(xié)議采用重傳和應(yīng)答機制。在數(shù)據(jù)的傳輸過程中,當出現(xiàn)丟包、亂序和超時等異常傳輸狀態(tài)時,發(fā)送端會對出現(xiàn)異常傳輸狀態(tài)的TCP報文進行重新發(fā)送。
[0004]TCP協(xié)議的數(shù)據(jù)重傳意味著對于同一 TCP報文進行了重復(fù)的發(fā)送,這就額外占用了不必要的網(wǎng)絡(luò)寬帶和流量,當出現(xiàn)大量的數(shù)據(jù)重傳時,將嚴重影響網(wǎng)絡(luò)的傳輸性能,大幅度降低網(wǎng)絡(luò)的傳輸效率。一旦出現(xiàn)網(wǎng)絡(luò)的傳輸效率低下的問題時,確定導(dǎo)致TCP報文重傳的原因,即確定TCP報文的出錯信息是解決問題的關(guān)鍵。
[0005]在在先技術(shù)中,通常的做法是,在傳輸效率低下的問題出現(xiàn)后,一次性抓取一定量的TCP報文,采用第三方工具(如SmartBit、WireShark、Sniffer等工具)對抓取的TCP報文進行分析,從而確定TCP報文的出錯信息。
[0006]由于在先技術(shù)是在重傳問題出現(xiàn)后再抓取TCP報文,因而,只有當導(dǎo)致重傳的原因連續(xù)重復(fù)出現(xiàn)時,才能夠得到相對可靠的分析結(jié)果,然而,在實際應(yīng)用中,重傳問題在多數(shù)情況下并非是連續(xù)重復(fù)出現(xiàn)的,當重傳問題在抓取TCP報文的過程中并沒有出現(xiàn)時,對重傳問題出現(xiàn)后再抓取TCP報文進行分析,顯然無法準確確定TCP報文的出錯信息。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例所要解決的技術(shù)問題是提供一種TCP報文出錯信息的獲取方法,用以準確獲知TCP報文的出錯信息。
[0008]相應(yīng)的,本發(fā)明實施例還提供了一種TCP報文出錯信息的獲取裝置,用以保證上述方法的實現(xiàn)及應(yīng)用。
[0009]為了解決上述問題,本發(fā)明實施例公開了一種TCP報文出錯信息的獲取方法,包括:
[0010]在預(yù)置的分析點實時獲取TCP報文;所獲取的TCP報文包括當前TCP報文和在先TCP報文;
[0011]根據(jù)所述當前TCP報文和所述在先TCP報文,提取重傳TCP報文;
[0012]獲取所述重傳TCP報文對應(yīng)的關(guān)聯(lián)參數(shù);所述關(guān)聯(lián)參數(shù)包括在所述重傳TCP報文經(jīng)過所述分析點前,與所述重傳TCP報文對應(yīng)的確認字符ACK個數(shù);
[0013]當所述關(guān)聯(lián)參數(shù)滿足第一預(yù)設(shè)條件時,確定所述重傳TCP報文的出錯信息為由超時導(dǎo)致重傳的信息;所述第一預(yù)設(shè)條件包括所述確認字符ACK個數(shù)小于第一閾值。
[0014]優(yōu)選的,所述關(guān)聯(lián)參數(shù)包括當所述重傳TCP報文經(jīng)過所述分析點前,所述重傳TCP報文對應(yīng)的原始TCP報文是否經(jīng)過分析點的信息;所述方法還包括:
[0015]當所述關(guān)聯(lián)參數(shù)滿足第二預(yù)設(shè)條件時,確定所述重傳TCP報文的出錯信息為在所述分析點上游丟包導(dǎo)致重傳的信息;所述第二預(yù)設(shè)條件包括所述確認字符ACK個數(shù)大于或等于所述第一閾值,以及,所述原始TCP報文沒有經(jīng)過所述分析點。
[0016]優(yōu)選的,所述方法還包括:
[0017]從所述在先TCP報文中提取第一亂序TCP報文,并統(tǒng)計所述第一亂序TCP報文的TCP報文亂序個數(shù);
[0018]從所提取的第一亂序TCP報文中,獲取與所述重傳TCP報文對應(yīng)的第二亂序TCP報文;
[0019]當所述關(guān)聯(lián)參數(shù)滿足第三預(yù)設(shè)條件,并且,所述第二亂序TCP報文的TCP報文亂序個數(shù)大于或等于第二閾值時,確定所述重傳TCP報文的出錯信息為在所述分析點上游嚴重亂序?qū)е轮貍鞯男畔?;所述第三預(yù)設(shè)條件包括所述確認字符ACK個數(shù)大于或等于所述第一閾值,以及,所述原始TCP報文經(jīng)過所述分析點。
[0020]優(yōu)選的,所述方法還包括:
[0021 ] 當所述關(guān)聯(lián)參數(shù)滿足所述第三預(yù)設(shè)條件,并且,所述第二亂序TCP報文的TCP報文亂序個數(shù)小于所述第二閾值時,確定所述重傳TCP報文的出錯信息為在所述分析點下游丟包導(dǎo)致重傳的信息。
[0022]優(yōu)選的,所述根據(jù)所述當前TCP報文和所述在先TCP報文,提取重傳TCP報文的步驟包括:
[0023]從所述當前TCP報文中提取第一傳輸隊列號TSN,第一 IP標識IPID,以及,從所述在先TCP報文中提取第一傳輸隊列號最大值TSNmax,并將所述第一傳輸隊列號最大值TSNmax對應(yīng)的IP標識IPID記為第一 IP標識最大值IPIDmax;
[0024]當所述第一傳輸隊列號TSN小于所述第一傳輸隊列號最大值TSNmax,以及,所述第一IP標識IPID大于所述第一 IP標識最大值IPIDmax時,提取所述當前TCP報文作為重傳TCP報文;
[0025]或者,當所述第一傳輸隊列號TSN大于所述第一傳輸隊列號最大值TSNmax,以及,所述第一 IP標識IPID小于所述第一 IP標識最大值IPIDmax時,提取所述當前TCP報文的前一個TCP報文作為重傳TCP報文。
[0026]優(yōu)選的,所述在先TCP報文包括第一 TCP報文和第二 TCP報文,所述第二 TCP報文包括在獲取所述第一 TCP報文前獲取的所有TCP報文,所述從所述在先TCP報文中提取第一亂序TCP報文,并統(tǒng)計所述第一亂序TCP報文的TCP報文亂序個數(shù)的步驟包括:
[0027]從所述第一 TCP報文中提取第二傳輸隊列號TSN,第二 IP標識IPID,以及,從所述第二 TCP報文中提取第二傳輸隊列號最大值TSNmax,并將所述第二傳輸隊列號最大值TSNmax對應(yīng)的IP標識IPID記為第二 IP標識最大值IPIDmax;
[0028]當所述第二傳輸隊列號TSN小于所述第二傳輸隊列號最大值TSNmax,以及,所述第二IP標識IPID小于所述第二 IP標識最大值IPIDmax時,提取所述第一 TCP報文作為第一亂序TCP報文;
[0029]統(tǒng)計從所述第二傳輸隊列號TSN的下一個傳輸隊列號TSN,至所述第二傳輸隊列號最大值TSNmax中,所有傳輸隊列號TSN對應(yīng)的TCP報文的個數(shù);
[0030]將統(tǒng)計獲取的TCP報文的個數(shù)作為所述第一亂序TCP報文的TCP報文亂序個數(shù)。
[0031]本發(fā)明實施例還公開了一種TCP報文出錯信息的獲取裝置,包括:
[0032]TCP報文獲取模塊,用于在預(yù)置的分析點實時獲取TCP報文;所獲取的TCP報文包括當前TCP報文和在先TCP報文;
[0033]重傳TCP報文提取模塊,用于根據(jù)所述當前TCP報文和所述在先TCP報文,提取重傳TCP報文;
[0034]關(guān)聯(lián)參數(shù)獲取模塊,用于獲取所述重傳TCP報文對應(yīng)的關(guān)聯(lián)參數(shù);所述聯(lián)參數(shù)包括在所述重傳TCP報文經(jīng)過所述分析點前,與所述重傳TCP報文對應(yīng)的確認字符ACK個數(shù);
[0035]第一出錯信息確定模塊,用于當所述關(guān)聯(lián)參數(shù)滿足第一預(yù)設(shè)條件時,確定所述重傳TCP報文的出錯信息為由超時導(dǎo)致重傳的信息;所述第一預(yù)設(shè)條件包括所述確認字符ACK個數(shù)小于第一閾值。
[0036]優(yōu)選的,所述關(guān)聯(lián)參數(shù)包括當所述重傳TCP報文經(jīng)過所述分析點前,所述重傳TCP報文對應(yīng)的原始TCP報文是否經(jīng)過分析點的信息;所述裝置還包括:
[0037]第二出錯信息確定模塊,用于當所述關(guān)聯(lián)參數(shù)滿足第二預(yù)設(shè)條件時,確定所述重傳TCP報文的出錯信息為在所述分析點上游丟包導(dǎo)致重傳的信息;所述第二預(yù)設(shè)條件包括所述確認字符ACK個數(shù)大于或等于所述第一閾值,以及,所述原始TCP報文沒有經(jīng)過所述分析點。
[0038]優(yōu)選的,所述裝置還包括:
[0039]第一亂序TCP報文提取模塊,用于從所述在先TCP報文中提取第一亂序TCP報文,并統(tǒng)計所述第一亂序TCP報文的TCP報文亂序個數(shù);
[0040]第二亂序TCP報文獲取模塊,用于從所提取的第一亂序TCP報文中,獲取與所述重傳TCP報文對應(yīng)的第二亂序TCP報文;
[0041]第三出錯信息確定模塊,用于當所述關(guān)聯(lián)參數(shù)滿足第三預(yù)設(shè)條件,并且,所述第二亂序TCP報文的TCP報文亂序個數(shù)大于或等于第二閾值時,確定所述重傳TCP報文的出錯信息為在所述分析點上游嚴重亂序?qū)е轮貍鞯男畔?;所述第三預(yù)設(shè)條件包括所述確認字符ACK個數(shù)大于或等于所述第一閾值,以及,所述原始TCP報文經(jīng)過所述分析點。
[0042]優(yōu)選的,所述裝置還包括:
[0043]第四出錯信息確定模塊,用于當所述關(guān)聯(lián)參數(shù)滿足所述第三預(yù)設(shè)條件,并且,所述第二亂序TCP報文的TCP報文亂序個數(shù)小于所述第二閾值時,確定所述重傳TCP報文的出錯信息為在所述分析點下游丟包導(dǎo)致重傳的信息。
[0044]優(yōu)選的,所述重傳TCP報文提取模塊包括:
[0045]第一傳輸隊列號TSN和IP標識IPID提取子模塊,用于從所述當前TCP報文中提取第一傳輸隊列號TSN,第一 IP標識IPID,以及,從所述在先TCP報文中提取第一傳輸隊列號最大值TSNmax,并將所述第一傳輸隊列號最大值TSNmax對應(yīng)的IP標識IPID記為第一 IP標識最大值IPIDmax;
[0046]重傳TCP報文提取子模塊,用于當所述第一傳輸隊列號TSN小于所述第一傳輸隊列號最大值TSNmax,以及,所述第一 IP標識IPID大于所述第一 IP標識最大值IPIDmax時,提取所述當前TCP報文作為重傳TCP報文;
[0047]或者,用于當所述第一傳輸隊列號TSN大于所述第一傳輸隊列號最大值TSNmax,以及,所述第一 IP標識IPID小于所述第一 IP標識最大值IPIDmax時,提取所述當前TCP報文的前一個TCP報文作為重傳TCP報文。
[0048]優(yōu)選的,所述在先TCP報文包括第一 TCP報文和第二 TCP報文,所述第二 TCP報文包括在獲取所述第一 TCP報文前獲取的所有TCP報文,所述第一亂序TCP報文提取模塊包括:
[0049]第二傳輸隊列號TSN和IP標識IPID提取子模塊,用于從所述第一 TCP報文中提取第二傳輸隊列號TSN,第二 IP標識IPID,以及,從所述第二 TCP報文中提取第二傳輸隊列號最大值TSNmax,并將所述第二傳輸隊列號最大值TSNmax對應(yīng)的IP標識IPID記為第二 IP標識最大值IPIDmax;
[0050]亂序TCP報文提取子模塊,用于當所述第二傳輸隊列號TSN小于所述第二傳輸隊列號最大值TSNmax,以及,所述第二 IP標識IPID小于所述第二 IP標識最大值IPIDmax時,提取所述第一 TCP報文作為第一亂序TCP報文;
[0051]TCP報文亂序個數(shù)統(tǒng)計子模塊,用于統(tǒng)計從所述第二傳輸隊列號TSN的下一個傳輸隊列號TSN,至所述第二傳輸隊列號最大值TSNmax中,所有傳輸隊列號TSN對應(yīng)的TCP報文的個數(shù),并將統(tǒng)計獲取的TCP報文的個數(shù)作為所述第一亂序TCP報文的TCP報文亂序個數(shù)。
[0052]與在先技術(shù)相比,本發(fā)明實施例包括以下優(yōu)點:
[0053]本發(fā)明實施例可以在分析點處實時獲取TCP報文,提取出重傳TCP報文,當重傳TCP報文經(jīng)過分析點時,獲取