專利名稱:一種基于tcp報文的ip路徑主動測量方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于TCP報文的IP路徑主動測量方法。
背景技術(shù):
以主動測量方式探測網(wǎng)絡拓撲路徑主要是采用類似traceroute的方法,首先,從 測量源點S向某個測量目標D發(fā)出TTL = 1的探測報文,收到返回的ICMP超時報文,或者 等待預先給定的時間、(例如5秒)后,再發(fā)出TTL = 2的報文,依此類推,直到收到探測 目標返回的表明到達目標的報文,或者TTL增長到預先給定閾值(例如30)。這時針對測量 目標D的路徑探測過程結(jié)束。根據(jù)依次返回的報文中所包含的源IP地址,從而得到從測量 源點S到測量目標D的拓撲路徑。傳統(tǒng)上,采用TCP報文探測時,同一測量源點都采用目的 端口為80的SYN(這是TCP報文首部的一個標志位)報文,結(jié)果導致被檢測出測量路徑的 行為或多點測量時被認為是SYN flood攻擊行為而被過濾,即這種方法的探測報文容易被 識別為測量路徑的行為或攻擊行為,從而破壞了對路徑測量的完整性。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于TCP報文的IP路徑主動測量方法。這種IP路徑主 動測量方法在路由器的基于目的網(wǎng)絡地址的負載平衡和基于流的負載平衡機制的影響的 情況下,發(fā)送的探測報文是具有熟知端口的混合類型的TCP報文,使探測報文抗識別和過 濾,從而保證了路徑測量的完整性。上述的目的通過以下的技術(shù)方案實現(xiàn)一種基于TCP報文的IP路徑主動測量方法,包括以下步驟步驟1,針對給定的探測目標地址D,選取TCP報文首部中的目的端口和源端口 ;步驟2,對通向同一目標地址D的每個探測報文,隨機地從控制比特集合中選取一 項,作為TCP探測報文首部中的控制比特;步驟3,按協(xié)議的規(guī)定填充TCP報文首部和IP報文首部字段,包括在TCP首部的序 列號字段和IP首部的標識字段記錄對應的進程信息和探測報文編號,后發(fā)出該探測報文;步驟4,在給定時間內(nèi)收到響應報文,則根據(jù)響應報文類型實施對響應報文的處 理;或者在給定時間內(nèi)沒有收到響應報文,則實施等待時間超時處理。所述的一種基于TCP報文的IP路徑主動測量方法,所述的控制比特的集合為 {ACK,SYN+ACK,FIN+ACK,PSH+ACK,URG+ACK,FIN,FIN+PSH,FIN+URG, SYN, SYN+PSH, SYN+URG} 或其子集合。 上述的一種基于TCP報文的IP路徑主動測量方法,所述的針對給定的探測目標地 址D,選取TCP報文首部中的目的端口,是針對目標地址D,從規(guī)定的熟知端口區(qū)間1至1023 中選擇一個TCP服務端口,作為探測報文的目的端口,在一個測量源點,對同一目標地址D, 目的端口一旦選定,則該測量源點發(fā)出的針對同一目標地址D的所有探測報文的目的端口 保持不變。
所述的一種基于TCP報文的IP路徑主動測量方法,所述的針對給定的探測目標地 址D,選取TCP報文首部中的源端口是針對目標地址D,從規(guī)定的端口號區(qū)間1至65535中 選擇一個端口號,也包括本測量源點主機沒有啟動TCP服務的熟知端口,作為探測報文的 源端口,在一個測量源點,對同一目標地址D,源端口一旦選定,則該測量源點發(fā)出的針對同 一目標地址D的所有探測報文的源端口保持不變。所述的一種基于TCP報文的IP路徑主動測量方法,所述的在給定時間內(nèi)收到響應 報文則根據(jù)響應報文類型實施對響應報文的處理是a該響應報文是“ICMP TTL超時”報文,并且探測還沒有達到預定跳數(shù)的閾值,對 通向同一目標地址D的每個探測報文,隨機地從控制比特集合中選取一項,作為TCP探測報 文首部中的控制比特,繼續(xù)探測;b該響應報文是ICMP不可達類型報文,或者收到的響應報文是控制比特為RST,或 者控制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探 測。所述的一種基于TCP報文的IP路徑主動測量方法,所述的在給定時間內(nèi)沒有收到 響應報文則實施等待時間超時處理是若探測還沒有達到預定跳數(shù)的閾值,則對通向同一 目標地址D的每個探測報文,隨機地從控制比特集合中選取一項,作為TCP探測報文首部中 的控制比特,繼續(xù)探測,否則,中止針對該目標地址的探測。本發(fā)明有益效果1、本發(fā)明權(quán)利要求1中的步驟2以及權(quán)利要求2使得發(fā)送TCP探測報文時,通向 同一目標地址D的各跳探測報文中的控制比特隨機選擇,這樣避免了已有技術(shù)中來自同一 測量源點都采用SYN類型報文導致被檢測出測量路徑的行為或多點測量時被認為是SYN flood攻擊行為而被過濾,即本方法的探測報文不易被識別為測量路徑的行為或攻擊行為, 增加了過濾難度,從而對路徑測量的完整性提供了保證。2、本方法中,權(quán)利要求1中的步驟1以及權(quán)利要求3使得對不同的測量目標地址, 探測報文的目的端口從熟知端口區(qū)間1至1023中選擇,即與已有技術(shù)采用80端口相比, 可以采用非80端口作為目的端口,使不同的目標地址其目的端口可以不同,擴展了測量空 間,降低了被識別為測量路徑的行為或攻擊行為的程度,并增強了探測能力;權(quán)利要求1中 的步驟1以及權(quán)利要求5使得源端口可以選擇低于10000的端口號,甚至是本測量源點主 機沒有啟動TCP服務的熟知端口,與已有技術(shù)中只采用高端口相比也降低了被認為是測量 行為或攻擊行為的程度。3、本方法也考慮了路由器的基于目的網(wǎng)絡地址的負載平衡和基于流的負載平衡 機制對探測路徑的影響,針對某一目標地址D的各跳探測報文中的源端口和目的端口不 變,保證通向同一測量目標的探測報文的路徑同一性。本發(fā)明的
具體實施例方式實施例1 一種基于TCP報文的1P路徑主動測量方法,發(fā)送TCP報文作為探測報文針對某 一目標地址D,從熟知端口區(qū)間1至1023中選擇一個TCP服務熟知端口 179作為探測報文 的目的端口。選擇低于10000的、本測量源點主機未啟動TCP服務的端口 8087作為探測報 文的源端口。
對通向同一目標地址D的每個探測報文,隨機地從集合{ACK,SYN+ACK, FIN+ACK, PSH+ACK, URG+ACK, FIN, FIN+PSH, FIN+URG, SYN, SYN+PSH, SYN+URG}或其子集合中選取一 項,作為TCP探測報文首部中的控制比特。例如,第一個探測報文選擇了 FIN作為控制比特,第二個探測報文選擇了 ACK作為 控制比特,第三個探測報文選擇了 SYN+ACK作為控制比特,第四個探測報文選擇了 SYN+URG 作為控制比特,第五個探測報文選擇了 FIN+ACK作為控制比特,......,等等。填充TCP報文首部和1P報文首部字段后發(fā)出探測報文。在給定時間內(nèi)如果收到“ICMP TTL超時”響應報文,并且探測還沒有達到預定跳數(shù) 的閾值30,則繼續(xù)探測;如果收到ICMP不可達類型報文,或者收到的是控制比特為RST,或 者控制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探 測。在給定時間內(nèi)如果沒有收到響應報文,并且探測還沒有達到預定跳數(shù)的閾值30, 則繼續(xù)探測;如果探測達到預定跳數(shù)的閾值30,則中止針對該目標地址的探測。實施例2 一種基于TCP報文的IP路徑主動測量方法,發(fā)送TCP報文作為探測報文針對某 一目標地址D,從熟知端口區(qū)間1至1023中選擇一個TCP服務熟知端口 110作為探測報文 的目的端口。選擇本測量源點主機沒有啟動TCP服務的熟知端口 25作為探測報文的源端對通向同一目標地址D的每個探測報文,隨機地從集合{ACK,SYN+ACK, FIN+ACK, PSH+ACK, URG+ACK, FIN, FIN+PSH, FIN+URG, SYN, SYN+PSH, SYN+URG}的子集合{FIN+ACK, SYN+ACK}中選取一項,例如本次選取了 SYN+ACK,作為通向同一目標地址D的TCP探測報文 首部中的控制比特。填充TCP報文首部和1P報文首部字段后發(fā)出探測報文。在給定時間內(nèi)如果收到“ICMP TTL超時”響應報文,并且探測還沒有達到預定跳數(shù) 的閾值30,則繼續(xù)探測。實施例3 一種基于TCP報文的IP路徑主動測量方法,發(fā)送TCP報文作為探測報文針對某 一目標地址D,從熟知端口區(qū)間1至1023中選擇提供TCP服務熟知端口 23作為探測報文的 目的端口。選擇高于10000的端口號32777作為探測報文的源端口。對通向同一目標地址D的每個(包括每跳)探測報文,隨機地從集合{ACK, SYN+ACK, FIN+ACK, PSH+ACK, URG+ACK, FIN, FIN+PSH, FIN+URG, SYN, SYN+PSH, SYN+URG}的 子集合{FIN+ACK}中選取一項,例如本次選取了 FIN+ACK,作為通向同一目標地址D的TCP 探測報文首部中的控制比特。填充TCP報文首部和IP報文首部字段后發(fā)出探測報文。在給定時間內(nèi)如果收到“ICMP TTL超時”響應報文,并且探測還沒有達到預定跳數(shù) 的閾值33,則繼續(xù)探測;如果收到ICMP不可達類型報文,或者收到的是控制比特為RST,或 者控制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探 測。在給定時間內(nèi)如果沒有收到響應報文,并且探測還沒有達到預定跳數(shù)的閾值33,則繼續(xù)探測;如果探測達到預定跳數(shù)的閾值33,則中止針對該目標地址的探測。
權(quán)利要求
一種基于TCP報文的IP路徑主動測量方法,其特征是,包括以下步驟步驟1,針對給定的探測目標地址D,選取TCP報文首部中的目的端口和源端口;步驟2,對通向同一目標地址D的每個探測報文,隨機地從控制比特集合中選取一項,作為TCP探測報文首部中的控制比特;步驟3,按協(xié)議的規(guī)定填充TCP報文首部和IP報文首部字段,包括在TCP首部的序列號字段和IP首部的標識字段記錄對應的進程信息和探測報文編號,后發(fā)出該探測報文;步驟4,在給定時間內(nèi)收到響應報文,則根據(jù)響應報文類型實施對響應報文的處理;或者在給定時間內(nèi)沒有收到響應報文,則實施等待時間超時處理。
2.根據(jù)權(quán)利要求1所述的一種基于TCP報文的IP路徑主動測量方法,其特征是所述 的控制比特的集合為{ACK,SYN+ACK, FIN+ACK, PSH+ACK, URG+ACK, FIN, FIN+PSH, FIN+URG, SYN, SYN+PSH, SYN+URG}或其子集合。
3.根據(jù)權(quán)利要求1或2所述的一種基于TCP報文的IP路徑主動測量方法,其特征是 所述的針對給定的探測目標地址D,選取TCP報文首部中的目的端口,是針對目標地址D,從 規(guī)定的熟知端口區(qū)間1至1023中選擇一個TCP服務端口,作為探測報文的目的端口,在一 個測量源點,對同一目標地址D,目的端口 一旦選定,則該測量源點發(fā)出的針對同一目標地 址D的所有探測報文的目的端口保持不變。
4.根據(jù)權(quán)利要求1或2所述的一種基于TCP報文的IP路徑主動測量方法,其特征是 所述的針對給定的探測目標地址D,選取TCP報文首部中的源端口是針對目標地址D,從規(guī) 定的端口號區(qū)間1至65535中選擇一個端口號,也包括本測量源點主機沒有啟動TCP服務 的熟知端口,作為探測報文的源端口,在一個測量源點,對同一目標地址D,源端口 一旦選 定,則該測量源點發(fā)出的針對同一目標地址D的所有探測報文的源端口保持不變。
5.根據(jù)權(quán)利要求3所述的一種基于TCP報文的IP路徑主動測量方法,其特征是所述 的針對給定的探測目標地址D,選取TCP報文首部中的源端口是針對目標地址D,從規(guī)定的 端口號區(qū)間1至65535中選擇一個端口號,也包括本測量源點主機沒有啟動TCP服務的熟 知端口,作為探測報文的源端口,在一個測量源點,對同一目標地址D,源端口一旦選定,則 該測量源點發(fā)出的針對同一目標地址D的所有探測報文的源端口保持不變。
6.根據(jù)權(quán)利要求1或2或5所述的一種基于TCP報文的IP路徑主動測量方法,其特征 是所述的在給定時間內(nèi)收到響應報文則根據(jù)響應報文類型實施對響應報文的處理是a該響應報文是“ ICMP TTL超時”報文,并且探測還沒有達到預定跳數(shù)的閾值,轉(zhuǎn)權(quán)利 要求1中的步驟2繼續(xù)探測;b該響應報文是ICMP不可達類型報文,或者收到的響應報文是控制比特為RST,或者控 制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探測。
7.根據(jù)權(quán)利要求3所述的一種基于TCP報文的IP路徑主動測量方法,其特征是所述 的在給定時間內(nèi)收到響應報文則根據(jù)響應報文類型實施對響應報文的處理是a該響應報文是“ ICMP TTL超時”報文,并且探測還沒有達到預定跳數(shù)的閾值,轉(zhuǎn)權(quán)利 要求1中的步驟2繼續(xù)探測;b該響應報文是ICMP不可達類型報文,或者收到的響應報文是控制比特為RST,或者控 制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探測。
8.根據(jù)權(quán)利要求4所述的一種基于TCP報文的IP路徑主動測量方法,其特征是所述的在給定時間內(nèi)收到響應報文則根據(jù)響應報文類型實施對響應報文的處理是a該響應報文是“ICMP TTL超時”報文,并且探測還沒有達到預定跳數(shù)的閾值,轉(zhuǎn)權(quán)利 要求1中的步驟2繼續(xù)探測;b該響應報文是ICMP不可達類型報文,或者收到的響應報文是控制比特為RST,或者控 制比特為RST+ACK,或者控制比特為SYN+ACK的TCP報文,則中止針對該目標地址的探測。
9.根據(jù)權(quán)利要求1或2或5或7或8所述的一種基于TCP報文的IP路徑主動測量方 法,其特征是所述的在給定時間內(nèi)沒有收到響應報文則實施等待時間超時處理是若探 測還沒有達到預定跳數(shù)的閾值,則轉(zhuǎn)權(quán)利要求1中的步驟2繼續(xù)探測,否則,中止針對該目 標地址的探測。
10.根據(jù)權(quán)利要求3所述的一種基于TCP報文的IP路徑主動測量方法,其特征是所 述的在給定時間內(nèi)沒有收到響應報文則實施等待時間超時處理是若探測還沒有達到預定 跳數(shù)的閾值,則轉(zhuǎn)權(quán)利要求1中的步驟2繼續(xù)探測,否則,中止針對該目標地址的探測。
全文摘要
一種基于TCP報文的IP路徑主動測量方法,已有技術(shù)的探測報文容易被識別為測量路徑行為或攻擊行為而被過濾,從而破壞了路徑測量的完整性。本發(fā)明的方法包括針對給定的探測目標地址D,選取TCP報文首部中的目的端口和源端口,對通向同一目標地址D的每個探測報文,隨機地從控制比特集合中選取一項,作為TCP探測報文首部中的控制比特,填充TCP報文首部和IP報文首部字段后發(fā)出該探測報文。如果在給定時間內(nèi)收到響應報文,則根據(jù)響應報文類型實施對響應報文的處理;在給定時間內(nèi)沒有收到響應報文,則實施等待時間超時處理。本發(fā)明用于IP網(wǎng)絡中抗過濾的測量方法。
文檔編號H04L12/26GK101877654SQ200910071900
公開日2010年11月3日 申請日期2009年4月28日 優(yōu)先權(quán)日2009年4月28日
發(fā)明者任健, 姜譽, 方濱興 申請人:黑龍江大學