摘要 本文用VC編寫測試程序對TCP跟UDP網絡延進行了測試,給出了對時延進行在線計算和預測的方法,同時對實驗結果統計圖進行了分析,對網絡時延進行了研究,並討論了將網絡引入控製係統中可能帶來的特殊問題。
關鍵詞 網絡控製係統;網絡時延測試;NCS;TCP協議;UDP協議
中圖分類號 TP393 文獻標識碼 A文章編號 1674-6708(2010)11-0042-02
NCS的發展更進一步體現了網絡在控製中的廣泛應用。網絡的應用為控製係統帶來好處的同時,也帶來了很多新的問題,因為連接到通信介質上的每個設備都是一個信息源,並且通信介質是分時複用的,待發信息隻有等到網絡空閑時才能發送出去,這就導致傳輸時延的產生。本文將對Ethernet局域網和Internet的通信時延的測量方法,時延特點等進行分析和討論。
1 網絡時延計算模型
網絡時延的計算想要得到一個數據包從一個主機到另一個主機的傳輸時間,在現場總線和局域網環境下,可以用時鍾同步方法使得每一個節點時間同步,所以可以用如下方法得到節點A到節點B的網絡時延: Tab=T2-T1,為發送時刻,由發送端標識,然而對於大範圍的分布式網絡(如同步,不能用以上方法計算網絡時延Time)的概念。
t2-tl t:為接收時刻,由接收端標識
Internet由於異地的係統時鍾很難精確,引入了往返時間RTT, RTT是一個包從一個主機傳到另一個主機往返傳遞所花的時間,近似的單程時延T=RTT/2,因此,用往返時間RTT代替時間延遲進行網絡時延的分析,每次測量的往返時間可得到4個時間標簽:t1為發送時刻;t2為接收時刻;t3為返回時刻;t4為返回到達發送節點時刻,其中,t1 、t4 由發送端標識,t2、t3 由接收端標識,則有RTT = (t4-t1)-(t3-t2);t3-t2是接收端的處理時間,由於處理時間遠遠小於傳輸時間,因此,可以認為t3-t2=0,故RTT=t4-t1,所以隻需獲得發送節點的兩個時間標簽,即可得到往返時延的值。
2 網絡時延測試
網絡時延測試按照其承載的協議可以分為如下3類:
1)利用ICMP協議實現。ICMP主要用於網絡檢測,因此,也成為網絡時延測試的常用方式;
2)利用UDP協議實現。當對方的主機或者中間節點(包括防火牆)出於安全原因而過濾掉ICMP報文時,可以使用UDP報文來實現網絡時延的測量。不過UDP協議不是麵向可靠連接的,通常僅備有穩定數據流的應用程序選用;
3)利用TCP協議實現。TCP是麵向連接的可靠的傳輸協議,但由於TCP協議引入了複雜的數據包頭,而且實現複雜,一般不適於作測試用。但在前兩種報文都被防火牆濾掉的情況下,采用基於TCP與UDP往返時延,使用該協議數據包頭可精確計算,更能真實的測量網絡時延。
假設應用程序發送一個數據包,大小為N個字節,則該數據包到達網絡層被封裝成IP數據包,若發送端應用程序發出N字節的數據包,可得到的IP數據包將是(N+32)字節,原始套接字將對IP數據包進行分析,得到發送和接受時間以及包序號的信息,從而計算網絡延時並得到丟包率。
其體步驟如下:
1)序初始化,取得機器的高精度計數器傾率 QuerypeformanceceFrequency(&frequeccy);