ip協議范文

時間:2023-03-21 01:09:13

導語:如何才能寫好一篇ip協議,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

ip協議

篇1

關鍵詞:路由技術 算法 Rip

1、IP路由算法

IP路由算法可分為以下幾種:靜態和動態、單路和多路、平等和分級、源路由和透明路由、域內和域間、鏈路狀態和距離向量。

鏈路狀態算法發送路由信息到互聯網上所有的結點,然而對于每個路由器,僅發送它的路由表中描述了其自身鏈路狀態的那一部分。距離向量算法則要求每個路由器發送其路由表全部或部分信息,但僅發送到鄰近結點上。從本質上來說,鏈路狀態算法將少量更新信息發送至網絡各處,而距離向量算法發送大量更新信息至鄰接路由器。

由于鏈路狀態算法收斂更快,因此它在一定程度上比距離向量算法更不易產生路由循環。但另一方面,鏈路狀態算法要求比距離向量算法有更強的CPU能力和更多的內存空間,因此鏈路狀態算法將會在實現時顯得更昂貴一些。除了這些區別,兩種算法在大多數環境下都能很好地運行。路由算法使用了許多種不同的度量標準去決定最佳路徑。復雜的路由算法可能采用多種度量來選擇路由,通過一定的加權運算,將它們合并為單個的復合度量、再填入路由表中,作為尋徑的標準。

2、RIP路由協議的原理分析

RIP是基于距離矢量的路由協議。運行RIP的路由器維持一個到網絡中可能目的地的路由表,路由表包含目的地址和開銷等信息。具體的說,RIP協議主要包括以下幾個方面的內容。

2.1計算距離矢量

距離矢量路由協議利用度量來跟蹤它和所有已知目的地間的距離。這種距離信息使路由器可以找出到位于非近鄰獨立系統中的目的地最有效的下一跳。在RFC-1058中,有一個唯一的距離矢量單位,即跳數。在RIP中默認的跳數度量被置為1,這些距離度量用來構造路由表。路由表識別出數據包,以最小開銷到達目的地所要采取的下一跳。

2.2更新路由表

RIP只記錄每個目的地址的一條路由,這一事實要求RIP經常保持其路由表的完整性。它通過要求所有活躍的RIP路由器周期性的向相鄰RIP路由器廣播它們路由表的內容。通常,RIP依賴3個計時器來維護路由表:即更新計時器、路由暫休計時器、路由清楚計時器。更新計時器用來激發節點路由表的更新。每個RIP節點只有一個更新計時器。然而,路由暫休和路由清除計時器則是每條路由都有一個。因此,每個路由表條目中都有一個不同的暫休和路由清除計時器??傊?這些計時器使RIP節點能維護它們路由的完善性,并根據所用的時間進行激活,從而恢復網絡故障。

2.3激活路由更新

大約每30s激活一次路由更新。更新路由器用來跟蹤這個時間量。當這個時間量結束時,RIP發送一系列幀來維護整個路由表。這些幀廣播到每個鄰節點。因此,每個RIP路由器大約每30s就要接收來自鄰RIP節點的更新。

2.4識別無效路由

路由變得無效的兩種情況:其一,路由到期;其二,路由器可能通知某個路由器某條路由是不可用的。在這兩種情況下,RIP路由器都需要改變它的路由表,來反映給定路由的不可用性。假如路由器在給定的時間內沒有接收到更新某路由的信息,該路由可能到期。路由暫休定時器常設成180s,當路由激活或更新時,該定時器初始化。假如180s過去了,路由器還沒有接到更新那條路由的信息,RIP路由器就認為目的IP地址不再可達。因此路由器把表中那條路由項標成無效。收到路由新近無效通知的鄰節點利用該信息來更新它們的路由表。這是路由表中路由變得無效的第2種方法。無效路由表項不會自動的從路由表中清除;相反,那條無效項繼續在路由表中保留很短一段時間。

2.5清除無效路由

當路由器認識到某條路由無效時,就初始化一個秒計時器,負責路由清除倒計時,這一計時稱為路由清除計時器。當路由清除計時器結束時,路由仍未被收到,這一路由就從路由表中清除。這些計時器是RIP恢復網絡故障能力中絕對重要的。

2.6編址方案

IETF保證RIP能夠完全向后兼容所有已知的RIP和ROUTED異體。即使這些異體專用程度很高,開放標準RIP仍有必要支持多種地址類型。

2.7路由到網關

很多實際網絡中,并不要計算到每個單個主機的路由。特別是在大型網絡中,這會使路由表膨脹,從而使整個網絡的路由工作繁重。因此在實際網絡中,幾乎總是概括路由,而不是指出每個可能目的地。假如一個給定的網絡(或子網)上,每個主機都能通過網關到達的話,這時路由表只需定義那個網關為下一條IP地址就可以了。所有發往那個網絡或子網上的數據包將發送給那個網關,這時網關就承擔了把它發送到最終目的地的任務。

3、RIP協議處理過程

RIP協議的運行過程就是路由器軟件對消息輸入和輸出處理過程,其輸入和輸出處理大致如下所描述。

輸入處理:主要是指路由器協議軟件對在520號UDP端口收到的數據報進行的處理。對于輸入處理,首先必須先作一定格式檢查,檢查通過后,再分別對幾種輸入消息做相應的處理。

請求報文:路由器在開始運行時,為了從鄰機處獲取路由表的初始值,通常會發一個請求。報文的Command字段為。對所有或部分路由表的請求,一般以廣播形式從520號UDP端口發送。實際中,這種請求有兩種格式:請求獲取路由表的全部和請求獲取路由表的某些特定路由項。路由軟件先逐個路由項地處理請求,如果沒有任何路由項,也就沒有響應;如果請求中恰好只有一個路由項,并且addressfamilyidentifier為0,metric為16,則表示需要接收方發送所有路由表的請求;除此之外,則是要求部分路由,處理很簡單,沿著請求路由項表一個一個看,對于每個路由項,在主機路由數據庫中查找,如果找到,則將該路由的metric值填入數據報的metric字段,如果沒有,則向其中填16。一旦所有路由項均已處理,將command字段設為響應,并將該數據報發回其來自的端口。根據請求是否關于指定的一批目的地,還是關于整個路由表,處理有所不同。如果關于整個路由表,輸出作普通的處理即可,包括水平分割和子網隱藏,因此來自路由表的某些路由項將被隱藏;如果是指定路由項,則將查找結果返回,不作水平分割,如果需要還要返回子網信息。

響應報文:因為指定查詢、路由修改等原因而收到響應。不論收到什么樣的響應,RIP處理程序就開始更新它的路由表。

輸出處理:用于產生包含全部或部分路由表的響應信息的處理,可能由于輸入進程發現請求或路由修改而觸發。響應請求產生的輸出可以直接按需工作,而觸發的修改因為兩個方面需要處理。

首先,觸發的修改在容量有限或有許多路由器的網絡上可能導致格外大的負載,因此協議要求實現方在限制觸發式修改出現的頻率上采取一定的措施,觸發式修改發送后,需要隨機地將一個定時器設置成1到5秒,如果在定時器超時前發生其它修改,需要到定時器超時才觸發其中之一,然后定時器再隨機地設置成1到5秒,觸發式修改可能被一般修改所禁止;另外,觸發式修改可能不必包括整個路由表,原則上說,只有改變過的路由才需要包括,作為觸發式修改一部分的信息至少包括設置了路由修改標志的路由,也可以包括附加路由和全部路由。如果完整的修改需要多個數據報,則發送全部路由極有可能被打斷;而觸發式修改處理時,需要產生每個直連網絡的信息。產生觸發式修改或一般修改時,都需要進行水平分割操作。

參考文獻

篇2

【關鍵詞】 IP協議; IPv6; IPv4

物聯網的本質是網絡間交互作用,但是,互聯互通是物聯網交互作用的前提條件。由于物理世界中物件數量難以計數,物的形態與性質又是千變萬化、千差萬別,如何通過網絡把這些千奇百怪的物件不但能夠聯系起來,保持各自的性質與狀態,而且將來能夠在網絡智能控制下交互作用,這就是物聯網建設中必須考慮與建設的標準問題。但是,隨著近30年互聯網的蓬勃發展,特別是物聯網的發展開始受到網絡IP地址的限制。有資料顯示全球IPv4地址可能在很短時間內即將消耗殆盡,地址空間的不足必將影響互聯網的進一步發展。網絡IP地址不足,嚴重地制約了我國及其他國家互聯網的應用和發展。

基于這個背景,論文主要介紹企業在建設物聯網過程中應該如何選擇IP協議的相關問題,特別是IPv6對IPv4取代的必然性以及企業物聯網建設中應用IPv6應該注意的問題。

一、因特網協議IP(Internet Protocol,IP)的發展歷程

互聯網建設的終極目標是:網絡是中立和無控制的,任何人都沒有決定權;網絡的應用是無關的,網絡的任務就是如何更好地傳輸數據報。因此,要建立一個可以無縫鏈接到其他網絡的系統和如何設計一個面向未來的網絡,就需要一個大家都接受的網絡協議。這個協議就叫因特網協議,也叫IP協議產生的前提條件,也是IP協議的重要作用。

IP協議最早形成于美國國防部高級研究項目局資助的工程所開發的協議(叫1822協議),在1970年為網絡控制協議(Network Control Protocol,NCP)所取代,NCP協議的目的是通過接口消息處理機(Interface Message Processor,IMP),現在也稱為智能物件的路由器,把網絡上的各個站點聯起來。Vint Cerf和Robert Kahn后來設計網絡傳輸控制協議TCP(Transport Control Protocol,TCP)來取代網絡控制協議NCP,由于兩者沒有分開,就統稱TCP/IP。在因特網協議(也叫IP協議)里,使用最為廣泛的兩個協議是傳輸協議TCP和用戶數據報協議UDP(User Datagram Protocol,UDP)。傳輸協議位于IP協議之上,為應用提供一種無須直接與IP層交互的通信機制。應用程序并不直接使用IP,而是通過傳輸協議相互通信。由于下層IP網絡盡最大可能傳遞數據報,但無法保證數據報一定可以到達目的地,也無法保證數據報的交付順序和發送時的順序相同,因此,用戶數據報協議UDP在IP層之上提供了一個附加層來解決前面的問題。IP使用地址標識因特網中的主機,UDP使用端口標識主機的每一個進程。端口是一個16bit的數值,用來區分每個端點不同的發送者和接收者。用戶數據報協議UDP提供一種盡力而為的傳送服務。

IPv4(TCP第4版)是在1982年設計,廣泛并成功地部署到全世界大量公用網絡和私有網絡中的數以億計的主機和路由器上。IPv6(TCP第6版)的發展是從1992年開始的,由IETF設計的下一代互聯網協議,目的是取代現有的互聯網協議第四版(IPV4)。經過了十幾年的發展,IPv6的標準體系已經基本完善,在這個過程中,IPv6逐步優化了協議體系結構,為業務發展創造了機會。

隨著物聯網建設的發展,許多客觀世界中的物要通過智能物件經過網絡聯系并能夠交互起來。這就需要IP協議能夠唯一識別并有效地把智能物件聯系起來。因此,一下子擴充了的網絡地址及其網絡操作發展中互通性、可擴展性、架構的穩定性和普遍性受到人們的重視。

二、IPv6對IPv4取代:物聯網發展的必然

IPv4協議已經使用了30多年,不可否認,IPv4在因特網的發展進程中起到了舉足輕重的作用。甚至今天的因特網中絕大多數仍是使用IPv4協議。但是,隨著計算機及路由器的迅速發展,特別是隨著物聯網的快速發展,IPv4的弊端日益明顯,IP6取代IP4成為物聯網發展的必需,具體如下:

(一)IPv6對IPv4的取代能夠解決物聯網發展過程中網絡地址的不足

當前,IPv4地址資源有限。從理論上講,編址1 600萬個網絡、大約43億個電腦可以聯到Internet上。但采用A、B、C三類編址方式后,可用的網絡地址和主機地址的數目大打折扣,以致目前的IP地址近乎枯竭。最近美國ARIN報告,A類地址已分配完;62%B類地址已分配;37%C類地址已分配,IPv4的地址空間將面臨耗盡的危險。IPv6產生的初衷主要是針對IPv4地址短缺問題,即從IPv4的32bit地址,擴展到了IPv6的128bit地址,充分解決了地址匱乏問題。同時,IPv6網絡中一個接口可以有一個或多個IPV6地址(包括單傳波地址、任播地址和多播地址),這也進一步增加了地址應用的擴展性。

(二)IPv6對IPv4的取代能夠解決物聯網發展過程中互通性、可擴展性、架構的穩定性和普遍性的需要

1.IPv6取代IPv4,更能夠適應物聯網網絡傳輸控制的發展

網絡能夠互聯互通是網絡在任何數據改善之前,兩個端口之間必須建立一個鏈接。鏈接由端點的IP地址和TCP端口之間唯一確定。TCP在盡力而為的IP層之上提供一個可靠的字節流來傳輸服務,它通過緩沖數據并結合主動確認和重傳機制,實現傳輸可靠性;同時,TCP還提供包括建立和拆除鏈接的可靠方式??傊?,TCP以更大的報頭和更為復雜的傳輸層協議的邏輯為代價降低了應用的復雜程度。

在物聯網環境下,智能物件有芯片內存低、信息吞吐量低等特點。同時,用于物聯網環境下的UDP協議存在兩個缺點:UDP不為傳輸過程中丟失的數據報提供任何恢復機制,丟失的數據報由應用來恢復;同時,UDP不為應用提供任何機制來將數據割成大小適合網絡傳輸的數據塊。因此,必須計算出適合網絡傳送的分組數據大小,并相應地調整數據報。而這些功能TCP不但提供傳輸可靠性,還提供了一種自適應分組傳送報文大小的機制。這些功能就要求TCP的地址能夠把數量巨大的智能物件按唯一的身份聯系起來。因此,IPv6取代IPv4,更能夠適應物聯網網絡傳輸控制的發展。

2.IPv6取代IPv4更能夠適應物聯網發展過程中互通性、可擴展性、架構的穩定性和普遍性的需要

隨著物聯網等信息技術的發展,雖然智能物件具有一定的智能,但是,它們畢竟是沒有智慧的物體,不能夠像人那樣熟悉直接操作網絡。因此,相對人來說,智能物件對物聯網中的網絡協議有更多的特殊要求,比如:可擴展性、互通性、架構穩定性和普遍性等。

智能物件對IP協議的可擴展性需求是指IP協議能夠內在支持智能物件的發展而具有可持續開發的機制;智能物件對IP協議的互通性需求是指IP協議能夠支持智能物件之間以及智能物件和網絡基礎設施之間可持續的互通性,這就要求IP協議提供網絡、應用和協議在網絡中不同鏈路層內和層間的互通性;智能物件對IP協議的架構穩定性和普遍性的需求是指雖然IP協議的可擴展很重要,但是IP協議的架構穩定性和普遍性對智能物件在生命周期內具有重要意義。

總之,IPv4近20年的空前成功,已經證明了IPv4協議設計的基本思想、構架是值得肯定的。IPv6并不是一個全新的網絡協議標準,沒有完全IPv4的所有思路和結構,它總結IPv4近20年來運營所獲得的豐富經驗和教訓,繼承IPv4協議運行的主要優點,最后進行了大幅修改和功能擴充。例如:針對物聯網的發展需要,除了具有龐大的地址空間外,IPv6對IPv4功能上進行了發展,簡易靈活的頭部格式、網絡資源可進行預分配、更高的安全性、支持即插即用和移動性。由于這些特性技術含量較高,這里不進行具體介紹。智能物件由于自身的特殊性對物聯網的IP協議具有特殊的要求,新一代的IPv6能夠為物聯網的應用和服務提供可橫跨多種通信技術的互通、可擴展、穩定和普遍的網絡架構協議,為互聯網換上一個簡捷、高效的引擎,這樣不僅可以解決IPv4目前的地址短缺難題,而且可以使物聯網擺脫日益復雜、難以管理和控制的局面,變得更加穩定、可靠、高效和安全。

三、企業應用IPv6應該注意的主要問題

隨著3G通訊業務、智能手機等多種個人智能終端、超高速家庭網絡的發展,針對網絡地址不足等問題,我國已經起動IPv6取代IPv4的工程。這對物聯網建設具有重要的現實意義。但是,正如每一個新生事物一樣,IPv6也有其不足的地方,企業在物聯網建設中應用IPv6除了進行詳盡的規劃與設計外,還應該主要注意過渡性問題與安全問題。

(一)過渡性問題

雖然IPv4有上述缺陷以及IPv6協議標準的成熟具有取代IPv4位置的必然趨勢,但是,這種取代的過程必然會經歷一個相對漫長的過程。同時,盡管IETF在設計IPv6的時候已經充分考慮了和IPv4的兼容性,但是這兩個版本不是完全兼容的。因此,企業在物聯網建設中必須考慮由IPv4向IPv6過渡的問題。首先是處理好IPv4向IPv6遷移時應該考慮的地方:Ipv4與Ipv6的主機必須可互操作;Ipv6主機和路由器的使用必須簡單,逐漸地分布普及到整個Internet,不能有太多的相互依賴性;網絡管理員和最終用戶必須認為這種遷移容易理解和執行。其次是注意過渡技術的選擇,即雙協議棧技術、隧道技術和網絡地址轉換技術。

(二)安全性問題

引入IPv6出現的安全問題主要來源于兩方面:一方面是由于IPv6本身的缺陷所引發的安全問題;另一方面是由于IPv6的過渡技術引發的安全問題。由IPv6本身的缺陷引發的安全問題有:IPv6現在遇到的安全威脅主要包括地址掃描、非法訪問、分片、路由協議的認證、蠕蟲攻擊、對ICMPv6的攻擊、對鄰居發現的攻擊以及對無狀態地址自動配置的攻擊等;過渡技術引發的問題有:雙棧技術的安全問題、隧道技術的安全問題、地址翻譯技術的安全問題等。

四、結論與啟示

物聯網建設需要把數以億計的物件“互聯互通”并且“相互作用”,企業在建設物聯網過程中應該選擇IPv6對IPv4取代的IP協議的標準是:不僅要有充足的地址資源,更需要IPv6能夠在網絡操作發展中有更好的互通性、可擴展性、架構的穩定性和普遍性。

IPv6對IPv4是一個不能夠相互兼容的IP協議。物聯網建設從IPv4向IPv6遷移產生不少的過渡困難。這給大家的啟示便是能夠有統一的標準,不僅是技術標準,也包括管理標準。如果說IPv4向IPv6遷移中技術問題比重較大的話,那么,基于物聯網會計云計算建設中就會克服更多的需要統一的管理標準。如:當前,由于沒有統一的云計算標準,Google、Amazon、微軟、IBM等公司紛紛推出自己的云計算平臺和云計算的實務標準。這就導致了不同廠商的服務出現兼容性問題。如何通過溝通協作,把這些實務標準變成統一標準需要大家共同努力。

篇3

關鍵詞:“計算機網絡”教學;Wireshark;TCP/IP

“計算機網絡”課程作為計算機科學與技術、網絡工程、通信工程和軟件工程等專業的主干課,其地位在課程體系群中尤為重要。學習這門課程,最重要的是掌握計算機網絡的原理,了解網絡硬件和軟件的工作機制。計算機網絡基礎理論復雜抽象,概念眾多,對剛開始學習計算機網絡的學生來說,這些概念和協議是非常難以理解和記憶的。計算機網絡原理主要描述的是各層的功能及其協議和服務,具體地說就是要理解網絡的相關功能層概念和網絡體系結構(包括OSI參考模型、TCP/IP模型協議族),以及功能模塊之間的協議交互[1],這是學好計算機網絡的關鍵。網絡體系結構是計算機網絡及其部件所應完成的功能的精確定義。計算機網絡原理主要講述的就是各層的功能及其協議和服務。在計算機網絡教學過程中,利用Wireshark網絡探測和分析軟件,通過從網絡中實時捕獲幾種常見協議數據包并進行分析,使學生對一些協議的工作原理及結構有了更加深刻的理解和認識[2]。

1Wireshark簡介

Wireshark(原名Ethereal)是目前世界上最受歡迎的協議分析軟件,利用它可將捕獲到的網絡二進制數據流翻譯為人們容易讀懂和理解的文字和圖表等形式,極大地方便了對網絡活動的監測分析和教學實驗。它有十分豐富和強大的統計分析功能,可在Windows,Linux 和UNIX等系統上運行。它允許在一個網絡內部實時捕獲和分析數據包,用戶可以通過圖形界面很直觀地瀏覽捕獲到的數據信息,研究數據包每一層的詳細信息[3]。

學習和理解計算機網絡原理的最好方法是,理論聯系實際。在一個現實的局域網中,網絡數據流往往是來自不同用戶的各種各樣協議數據的大混雜,因此利用Wireshark的“捕獲過濾器”和“顯示過濾器”,從錯綜復雜的數據流中迅速提取自己所關心的網絡信息,了解和掌握網絡的工作原理和協議的交互過程。

Wireshark使用目的是網絡管理員使用Wireshark來檢測網絡問題、網絡安全工程師使用Wireshark來檢查資訊安全相關問題、開發者使用Wireshark來為新的通訊協議除錯、普通使用者使用Wireshark來學習網絡協議的相關知識等。

2用Wireshark分析網絡協議

網絡協議是網絡上所有設備(網絡服務器、計算機及交換機、路由器、防火墻等)之間通信規則的集合,它定義了通信時信息必須采用的格式和這些格式的意義。TCP/IP(Transmission Control Protocol / Internet Protocol),即傳輸控制協議/互聯網協議是不同操作系統的計算機網絡互連的通用協議,它是一組計算機通信協議族,其中最著名的兩個協議是TCP及IP協議。TCP/IP協議具有開放式互聯環境,很容易實現各種局域網和廣域網的集成式互聯。此協議是當今技術最成熟、應用最廣泛的網絡協議[4]。

TCP是一種面向連接的、可靠的運輸層協議,TCP數據傳輸(只有連接建立后才可進行數據傳輸)需要通過在客戶端和服務器端建立特定的虛電路連接來完成,該過程通常被稱為“三次握手”,即發送方先發送連接請求,然后接收方進行連接確認,最后發送方對接收方的確認再次進行確認(圖1)。下面就以Wireshark對 TCP連接建立交互過程的數據包捕獲分析為例,來說明對TCP/IP協議實現的分析。

2.1建立捕獲TCP連接報文的實驗環境

PCATTCP是一款不錯的測試局域網網絡速度的軟件。在局域網中,兩臺主機通過交換機連接起來。在服務器端和客戶端都安裝和運行PCATTCP進行通信,產生TCP流。啟動Wireshark進行數據包捕獲,單擊CaptureInterfaces菜單,選擇自己的網卡,選擇Start開始監控流量。在服務器端運行ttcp,監聽TCP的5001端口。圖2是服務器端的完整命令行輸出:

服務器配置好后,在客戶端運行ttcp,雙方開始通信。

2.2TCP報文分析

2.2.1客戶端發送連接請求

捕捉到的TCP 連接報文如圖3所示。

從圖3可以看出,客戶端發出的連接請求數據包封裝了三個頭信息:以太網(Ethernet)幀、IP數據報和TCP報文段。在數據鏈路層,數據以幀的方式進行傳輸。在網絡層,加工的主要數據對象是IP數據報。IP協議是TCP/IP協議族中的核心協議之一,所有的TCP、UDP、ICMP數據都以IP數據報格式傳輸。

在運輸層,主要數據對象是TCP報文??蛻舳税l送的連接請求如圖4所示。

第一條報文是沒有數據的TCP報文段,并且將首部的SYN位設置為1。因此,第一條報文常常被稱為SYN分組。這個報文段里的序列號是由系統隨機設置的數值,表示客戶端為后續報文設定的起始編號。此TCP報文段,序列號SEQ在連接請求時相對初始值是0,其實際值是c9 f4 65 c2;確認號是00 00 00 00,ACK標志為0表明確認號被忽略。SYN=1表示正在進行連接請求,通過SYN和ACK也可以用來區分Connection Request和Connection Accepted,在連接請求中,SYN=1、ACK=0,連接響應時,SYN=1、ACK=1。

SYN分組通常是從客戶端發送到服務器端。這個報文段請求建立連接。因為一旦成功建立連接,服務器進程必須已經在監聽SYN分組所指示的IP地址和端口號[5]。如果沒有建立連接,SYN分組將不會應答。如果第一個分組丟失了,客戶端通常會發送若干個SYN分組,如果多次嘗試不成功,客戶端將會停止并報告一個錯誤給應用程序。

2.2.2服務端連接響應

當服務器接收到連接請求時,就對請求方進行響應,以確認收到客戶端的第一個TCP報文段。響應的報文段SYN位和ACK位都將置1。通常稱這個報文段為SYNACK分組。SYNACK分組在確認收到SYN分組的同時也發出一個初始的數據流序列號,表示服務器發向客戶端的數據序號,它不需要與剛才客戶端發來的數據流的序列號相匹配。服務器端響應的數據包如圖5所示。

此數據包的起始序列號SEQ在協議框中顯示為0,在原始框中的實際值為63 cf 1a c9。所有初始序列號邏輯上都視同為序列號0。ACK標志為1表明確認號有效,SYN仍然為1。

圖6中確認號在協議框中顯示為1,在原始框中的值為c9 f4 65 c3(比c9 f4 65 c2多1)。這解釋了TCP的確認模式,TCP接收端確認第X個字節已經收到,并通過設置確認號為X+1來表明期望收到的下一個字節號。

2.2.3客戶端連接確認

在TCP連接建立的最后階段,客戶端對接收到數據包的服務器端進行確認,到此為止建立完整的TCP連接,開始全雙工模式的數據傳輸過程。客戶端收到服務器端確認后,發送帶有ACK標志的TCP報文段來完成三次握手的過程[6]。這個報文段將確認服務器端發送的SYNACK分組,并檢查TCP連接的兩端是否正確地打開和運作。

如圖7所示,在確認階段,數據包由客戶端發送至服務器端,TCP中的序列號為c9 f4 65 c3(即上次服務器響應報文的確認號)。

圖8中,報文段的本次確認號為63 cf 1a ca(即上次的序列號加1)表示客戶端下一次希望從主機接收的數據的起始位置。ACK標志為1表明確認號有效,SYN置為0表示連接建立結束。連接建立后,雙方可以根據各自的窗口尺寸開始傳輸數據。

2.3小結

從以上的圖可以看出,利用Wireshark可以針對每一數據包,完成從鏈路層、網絡層、運輸層到應用層的協議解析。通過上面步驟,可以更加直觀的觀察到TCP三次握手建立的過程,有助于理解TCP及其工作原理,掌握協議的語法細節。

3結語

計算機網絡基本理論復雜抽象,不易理解,但這部分內容又是進一步學習“計算機網絡”課程,培養實踐應用能力的基礎。在教學過程中,通過合理組織授課內容,采用先進的教學方法和較為科學的教學手段,使學生能夠較好地掌握計算機網絡的基本理論和方法。利用Wireshark網絡協議分析軟件,進行網絡性能參數和數據代碼的捕獲分析,了解協議的封裝結構、交互過程,對于計算機網絡教學有很大的幫助。

參考文獻:

[1] 謝希仁. 計算機網絡[M]. 大連:大連理工大學出版社,2004.

[2] 楊春勇,潘文君,朱翠濤. 計算機網絡課程教學及輔助教學方法研究[J]. 高等函授學報:自然科學版,2008,21(6):12-14.

[3] Angela Orebaugh,Gilbert Ramirez,Jay Beale. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M]. Burlington:Syngress Press,2006.

[4] Forouzan.B.A. TCP/IP協議族[M]. 3版. 謝希仁,等譯. 北京:清華大學出版社,2006.

[5] 蔣波,李方軍,郝軍. 數據包的截獲與網絡協議分析[J]. 重慶三峽學院學報,2006,22(3):26-28.

[6] Miller D. 數據通訊與網絡[M]. 鄧勸生,薛建新,王涌,譯. 北京:清華大學出版社,2007.

The Application of Wireshark in TCP/IP Network Protocol Teaching

PAN Wen-chan, ZHANG Yun

(College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China)

篇4

【關鍵詞】TCP/IP協議;通信報文;路由尋址;通信流程

1 概述

隨著信息科學技術和通信技術的不斷快速發展,基于互聯網的網絡通信應用在社會各個領域中的應用越來越廣泛,使得互聯網通信應用成為現代人日常生產生生活不可或缺的一部分,通過互聯網絡通信,網絡用戶之間可以實現數據傳輸、信息共享,從而極大地提高了人們的生活質量。然而,互聯網絡中的數據傳輸過程,并不是雜亂無章的隨機傳送,而是在計算機網絡通信協議的基礎上,雙方都按照協議的內容和機制,來發送數據信息和讀取分析數據信息,進而實現互聯網絡的數據傳輸和信息共享的功能,TCP/IP協議就是互聯網絡中重要的通信協議,它的存在奠定了整個互聯網絡通信的基礎,所以對于TCP/IP通信協議的學習對于理解互聯網通信機制來輔助互聯網學習和工作具有很大的幫助。

2 計算機網絡的TCP/IP通信協議

TCP/IP協議是“Transmission Control Protocol / Internet Protocol”的簡寫,是Internet網絡基本的協議,它為計算機通訊的數據打包傳輸以及網絡尋址提供了標準的方法。由于TCP/IP協議的優越性,使得越來越多的通信設備支持TCP/IP協議,使互聯網絡逐步走向規范化,最終TCP/IP協議成為了當前網絡通信協議標準中最基本的網絡通信協議、Internet國際互聯網絡的基礎。

2.1 計算機網絡TCP/IP協議

針對計算機互聯網絡的通信協議,國際標準組織ISO創立了七層OSI網絡模型,自上而下,分別為應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層。而TCP/IP協議則是應用在傳輸層和網絡層的數據傳輸控制協議,來規定網絡設備接入互聯網絡以及設備間數據通信的標準。在通信設備經過互聯網絡進行數據傳輸時,通信設備數據發送端,發送TCP/IP通信報文,此時TCP/IP協議攜帶著通信設備發送端的傳輸數據內容以及目標通信設備的地址標示在互聯網絡中進行尋址,從而正確地傳送到目標通信設備。當目標通信設備接收到TCP/IP通信報文后,按照協議內容,去除通信標示,來獲取傳輸數據內容,并加以校驗,如果經校驗后發生差錯,目標通信設備會發出TCP/IP信息重發報文,讓發送通信設備再次將TCP/IP通信報文發展目標通信設備,去掉通信標示來獲取傳輸數據信息。

2.2 TCP/IP通信協議報文格式

在互聯網絡中,基于TCP/IP通信協議傳輸的數據內容都是以通信報文的形式在互聯網絡內部進行傳輸,通信報文實質上就是一串二進制字符串,而字符串內不同位置的二進制字符標示不同的含義。從TCP/IP通信協議的主要報文格式可以看出,IP協議是基于TCP協議至上的,TCP協議報文時作為IP通信報文的數據部分來進行傳輸的。實際上,互聯網內傳輸的通信字符串還有其他的通信協議,TCP/IP通信報文也是作為其外層協議的通信數據部分嵌入到通信報文中在互聯網內進行傳輸。

在IP協議首部,包含了一些關于IP協議的標示、通信地址等信息,主要包括數據字符串總長度的信息、通信標示號、源IP地址和目標IP地址等信息,當IP通信報文經過路由尋址時,會根據首部內記錄的目標IP地址來選擇傳輸方向,最終根據目標IP地址傳輸至目標通信設備。此外,IP通信報文首部還包含其他信息,比如IP協議版本號、首部長度、校驗信息、該IP通信報文生存時間(即該報文經過多少個路由后自動取消傳輸)等與IP通信報文相關的信息,以確保IP報文傳輸的正確性和安全性。TCP協議通信報文是作為IP通信報文數據內容存在的,TCP協議也分為TCP報文首部和TCP通信數據。TCP通信報文首部主要包括了源端口號和目標端口號等信息,當TCP/IP通信報文經過互聯網絡到達目標通過新設備后,通信設備會根據TCP報文首部的目的端口號選擇設備端口號來接受該數據信息,進而實現互聯網絡的數據傳輸。

2.3 TCP/IP協議通信過程

互聯網絡的通信設備基于TCP/IP協議建立通信過程,也是根據TCP/IP協議來實現的。當源通信設備想向目標設備發送數據時,首先會發送一個TCP/IP通信報文來確認連接,該通信報文在互聯網絡中經過尋找傳輸后找到目標設備,目標設備也會向源通信設備發送一個TCP/IP報文以確認建立通信連接,此時,源通信設備就會將通信數據以TCP/IP通信報文的形式進行數據打包,然后向目標數據進行傳輸,在收到數據后,目標設備同樣會發送TCP/IP報文以確認收到信息。當然,TCP/IP通信數據長度是一定的,當通信數據超過報文長度時,源通信設備會將其分段發送,而目標設備則會根據IP報文首部的標識號進行數據重組來重現傳輸數據信息,進而完成互聯網絡通信設備數據傳輸。

3 總結

TCP/IP網絡協議是當前互聯網絡最基本的通信協議。根據TCP/IP網絡協議,連接在互聯網內的通信設備可以根據TCP/IP通信報文格式的內容將傳輸數據打包在TCP/IP通信報文內,并以其規定的通信流程進行數據傳輸,從而實現互聯網絡內的數據高效安全的傳輸。

參考文獻:

[1]楊紹文.談計算機網絡的TCP/IP協議[J].科技信息.2011(02)

[2]查東輝.試論計算機網絡通信協議[J].電腦知識與技術.2013(14)

[3]楊嬌娟.淺談TCP/IP協議[J].數字技術與應用.2012(03)

篇5

關鍵詞:嵌入式系統;以太網;TCP/IP協議;UDP;ARP

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2007)04-10947-03

1 引言

目前,嵌入式系統與網絡的結合已經成為嵌入式系統發展過程中所必須要面對的問題之一。嵌入式系統的網絡接入一般可以通過RS-232或RS-485等間接接入,也可以通過網絡協議直接與網絡相互連,其中,直接接入方式正逐步成為嵌入式系統接入網絡的主要方式,但是需要精簡TCP/IP協議棧的支持。目前使用廣泛的通用TCP/IP協議棧所包含的協議內容比較全,但同時也比較復雜。由于硬件平臺的差別,這些協議站無法直接應用于嵌入式系統,主要表現在以下三個方面:

(1)嵌入式操作系統都面向特定的領域和需求,嵌入式應用對實時性要求比較高。

(2)多任務操作系統的內存分配是動態的,但是在嵌入式系統中片RAM是靜態分配的,用于存放收到的數據包的的空間很有限。

(3)嵌入式系統在程序的具體實現上與通用計算機系統有所不同,主要體現在指針、參數傳遞、變量和數據結構的定義等方面。

因此,需要通用TCP/IP協議棧的基礎上進行精簡和改寫,以設計出精簡、高效的TCP/IP協議子集,以供嵌入式系統接入網絡使用。

2 TCP協議分析與簡化

通用計算機系統有足夠的資源支持,但是嵌入式系統則不同,因為其CPU處理能力和系統存儲能力都受到成本限制,充分利用資源、提高系統性價比是開發嵌入式應用的根本特點。

2.1 嵌入式TCP/IP協議棧的特點

嵌入式系統一般都是為了滿足某一特定的需求,對網絡支持的要求相對比較低,需要什么協議就添加相應的模塊,不需使用完整的TCP/IP協議。嵌入式TCP/IP協議棧應具有以下的特點:

(1)代碼比較簡潔,占用的存儲空間盡可能小,盡可能為應用程序節省系統資源。

(2)需要傳輸的數據量一般比較少,協議的實現代碼要有較高的執行效率,具有較高的實時性。

(3)便于裁剪和擴展,對于面向不同應用的嵌入式系統應當根據特點對協議進行簡化或擴展,整個協議棧在滿足功能需求的前提下盡可能精簡。

TCP/IP協議棧具有層次特性,各個協議都有自己的數據格式,每次發送數據都要進行上下層協議的數據交換,進行打包和拆包的過程,在這個過程中如果采用數據拷貝的策略進行數據傳遞則會大大增加系統開銷。在嵌入式系統中,往往無法建立起數據傳遞的緩沖區,需要采用“零拷貝”技術用傳遞數據指針的方法來解決各層協議間的數據傳遞,以提高系統的實時性能。

2.2 TCP/IP協議的精簡

TCP/IP是幾百種網絡協議的集合。通用計算機系統有足夠的資源支持通信協議在內核實現,因此完整的TCP/IP協議棧(如圖1)能夠在數據傳輸的可靠性和數據流量的控制上做很多工作。

但是對于嵌入式系統來說,其硬件資源十分有限,同時對協議的要求也相對較低,必須對通用的TCP/IP協議進行精簡。進行精簡的途徑有兩種:

(1)將無關于系統功能的協議削減掉。即保留必需的協議,而對其它無關協議進行裁剪。

(2)對單獨的協議進行簡化。例如完整的ARP協議支持以太網、令牌環等網絡,但是嵌入式系統可能是面向于某一具體類型網絡的,對于其他的部分就可以簡化掉。

圖1

簡化后的協議仍然需要符合規定的標準:在網絡接口層,系統需實現ARP應答協議,該協議用于將IP地址映射成以太網MAC地址;在網際層,需要實現IP協議,主要負責IP報文報頭的正確性,并且對TCP和ICMP報文實行分流,此外,為了能夠測試系統與網絡的連接,在網際層還需要實現ICMP協議中的Ping應答協議,主要用于檢查網絡在傳輸層是否連通。作為運輸層的主要協議,TCP和UDP協議一般都不能缺少,對于具體的應用,一般都至少要實現其中之一。HTTP、FTP等應用層協議一般無需實現。這樣簡化后,就可以得到圖2所示的嵌入式TCP/IP協議棧的結構:

圖2 嵌入式TCP/IP協議棧結構

3 各協議的具體實現

本文實現的嵌入式TCP/IP協議運行于以89C51單片機和RTL8019AS網絡控制器為核心元件的硬件平臺上,協議代碼在Keil C51 V7.0環境下編寫。在程序的initial文件中提供了相關函數對89C51和RTL8019AS進行了初始參數設置,限于文章篇幅,與具體硬件相關的問題不再作詳細說明。

3.1 ARP協議的實現

ARP協議不攜帶用戶的有效數據,報頭長度為28字節。在ARP報頭中操作碼域表明了ARP包是ARP請求還是ARP回答,其值為1時為請求,為2時為應答。目標以太地址為目標節點IP對應的MAC地址,解析前是未知的。發送ARP請求應使用廣播方式,網段內的各個主機收到后檢查包內的IP地址,如果和本機的IP地址一樣則使用單播的方式返回ARP應答,在應答ARP包中源以太地址的域中填入自己的MAC地址。在具體設計時,要考慮到系統解析地址的實時性,如果每次互聯都要進行地址解析,則系統的實時性要下降,一般的做法是建立一個ARP地址映射表,存放常用IP地址與MAC地址的映射,這樣在解析地址時首先遍歷該表,如果目標地址已經被解析過則可以省去解析過程了。解析過程中還需要為ARP緩存中每個新生成條目賦予一個初始生存時間,使用定時器中斷,經過某一時間間隔對所有條目進行刷新檢測,若發現有條目發生超時,將其從ARP緩存中刪除。ARP緩存條目結構設計如下:

typedef struct

{unsigned long ip_addr; //IP地址

unsigned char macaddr[6]; //MAC地址

unsigned char timer; //定時器}

ARP_CACHE; //ARP緩存條目結構

3.2 IP協議及Ping 應答的實現

IP協議是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP包都以IP數據報格式傳輸。IP報頭的標準長度為20字節。在具體項目中由于數據量比較小,可以不考慮數據報分段的問題,即不允許數據報超出IP包的有效載荷。標準以太網幀數據域為1500字節,除去IP頭之外還有1480字節可以為上層協議提供有效的數據載荷,應該能夠滿足數據傳送的要求。這樣簡化可以省去軟件處理IP數據分段和重組的開銷,可以提高系統數據傳輸的實時性。IP協議對上一層傳下來的報文加上IP首部和IP校驗和并發往下一層,同時還要對下一層傳上來的報文進行校驗和檢查,將校驗正確的去掉IP首部,送往上一層。

為了便于測試,需要實現PING程序,在收到ICMP的回顯請求包后按照格式組裝一個ICMP的回顯應答包并發送。相關的主要函數有:

void ping_request() //PING請求

void ping_answer() //PING應答

void ping_echo() //PING應答收到后回顯

3.3 UDP協議的實現

UDP際上是直接利用IP協議進行數據報的傳輸,也就是將報文包含在IP數據包中 。UDP的數據傳輸是無連接,不可靠的,因為它不像TCP那樣,為了達到目標,首先要在兩點之間建立一個可靠的連接,因此UDP協議無法保證數據可靠性。但UDP協議具有對網絡資源開銷較小,數據處理速度快的優點,UDP協議屬于簡單的端到端的數據傳輸協議,其報頭只有8字節,其中源端口表示UDP應用進程的端口號,除了0~1023預定的端口外,其余的都可以使用。具體實現時要完成對應用層傳下來的數據包,加上UDP首部和UDP校驗和,發往下一層。以及對下一層傳上來的數據包,進行校驗和檢查,若正確去掉UDP首部,提出數據送給應用層。需注意的是,要產生一個偽首部用于UDP數據檢驗和計算,涉及到的主要函數有:

unsigned char verifyudpcrc(union netcard xdata *pRxdnet) //對ucp頭進行校驗,錯誤返回0

void udp_send(union netcard xdata *pTxdnet, unsigned char xdata * psource, unsigned int len) //UDP包發送處理

void udp_recieve(union netcard xdata *pRxdnet)UDP包接收處理

3.4 TCP協議的實現

TCP協議是面向連接的、端對端的可靠通信協議,可分以下幾個步驟實現:

(1)建立連接。這一過程就是我們常說的三次握手過程。

(2)驗證。采取相應的措施消除傳輸中的錯誤,保障傳輸的可靠性,利用序列號解決通信時重復和失序的問題。

(3)流量控制。設置發送和接收窗口。

TCP協議的功能是為應用層協議提供可靠的面向連接的數據傳輸服務,是嵌入式應用系統協議棧中最為復雜的協議。在TCP協議實現中,由于請求發起端(客戶端)與請求相應端(服務器端)在通信中所處地位不同,相應地兩者的中間演變狀態也不完全相同??蛻舳伺c服務器端在一個TCP連接從正常建立到正常中止分別經歷5個和6個狀態,相應控制信息均在TCP頭部信息的6位控制標記位中得以表示。對于嵌入式系統中TCP協議的實現,應從嵌入式應用的角度出發,盡可能減少冗余狀態。程序中需要構造一個TCP_STATUS結構來記錄每一個TCP連接的狀態信息,其結構如下:

typedef struct

{unsigned long ip_addr; //源IP 地址

unsigned int port; //端口號

unsigned long remo_sequ; //對方序列號

unsigned long local_sequ; //本方序列號

unsigned long old_sequ; //上一次序列號

unsigned long remo_ack; //對方應答號

unsigned char timer; //超時用定時器

unsigned char quiet; //連接活動性

unsigned char state; //當前狀態

}TCP_STATUS; //連接狀態結構

4 結束語

嵌入式系統的應用非常廣泛,解決嵌入式系統的網絡接入問題具有十分重要的意義。本文實現的精簡TCP/IP協議棧在具體應用中有良好表現,可以滿足正常的數據傳輸。由于設計與實現的過程中將應用層協議全部精簡,協議在運行過程中的流量控制能力及協議自身的安全性都有所下降,在對安全性和穩定性要求較高的應用場合(如軍事、金融等領域),需要對協議的簡化有所斟酌。

參考文獻:

[1]羅蕾. 嵌入式實時操作系統及應用開發[M]. 北京:北京航空航天大學出版社. 2005.

[2]徐愛鈞,彭秀華. Keil Cx51 V7.0單片機高級語言編程與μVision2應用實踐[M]. 北京:電子工業出版社,2004.

[3]程耕國,高厚禮. 基于TCP/IP協議單片機上網的設計與實現[J]. 武漢科技大學學報(自然科學版),2004,(2).

[4]田夏利,汪繼軍,薛勝軍. 嵌入式Internet中UDP協議的實現[J]. 計算機與數字工程,2006,(2).

篇6

【關鍵詞】計算機多線程 協議還原 方法概述

1 協議并行處理方法

1.1 數據包級別并行方法

在協議棧并行處理方法中,數據包級別并行方法是一種并行度最高的處理方法。對于不同的數據包都會按照對應的處理器進行系列處理,達到同時處理多個數據包或者是歸屬于同一個鏈接的數據包。因巨大的吞吐性能以及不存在負載均衡的優勢得到了廣泛運用。雖然其具有高度的并發性,但是在面對帶有上下文信息或狀態的協議來說,例如TCP,可以獲得的性能提升空間受到了很大的約束。

1.2 函數級別并行方法

函數級別并行方法主要運用于早期的協議并行處理中。早期協議是將鏈路控制數據和傳送數據置于同一個數據包中,這就意味著協議并行處理的函數必須要同時處理鏈路控制數據外加上傳送數據,從而出現的一個問題就是協議處理函數單元之間務必會存在大量的上下文相關結果。

1.3 協議棧層次間并行方法

協議棧層次間并行方法主要運用于目前網絡協議的層次結構中。在早期設計相關網絡協議時,為了大幅度的降低協議實現難度而將每個層次協議設計成為了相對獨立的部分,從而完成獨立層間之間的并行處理。但是就目前實際情況來看,這種方法雖然有許多的優勢,但是性能受到了層次結構中吞吐量最低層次結構的限制,所以目前需要對協議棧中的每一個層次進行研究,優化吞吐量最低的層次結構。

2 基于連接性多線程TCP/IP協議并行處理方法概述

2.1 TCP/IP協議棧多線程并行化存在的問題

TCP/IP協議棧多線程并行化存在的問題主要存在于臨界鎖以及處理器之間的負載均衡情況上??紤]到臨街鎖解決共享沖突的代價極大問題,多線程并發程序雖然可以解決部分問題,但是又帶來了諸如臨界區碰撞、內核陷入等等問題,影響程序的運行效率。因此,對于多線程并行的TCP/IP協議而言,消除臨界鎖問題是至關重要的。對于處理器之間的負載均衡情況,需要考慮的就是協調好處理器之間的負載均衡問題。

2.2 多線程TCP/IP協議棧的結構

本文所要分析的多線程TCP/IP協議棧結構主要還是共享內存多處理器平臺運行下的多線程TCP/IP協議棧結構,其基本的特點就是當共享內存對處理器平臺上的處理器數量增加時,其結構的性能也隨之增加。多線程TCP/IP協議棧結構如圖1所示。

2.3 處理器均衡措施

處理器均衡措施具體可以細化分為兩個步驟。第一個步驟就是對IP數據包中的三元組即源地址、目的地址以及協議標識,按照一定的標準進行分發。僅僅采取第一步不能夠對處理器進行深度的處理,需要借助于第二個步驟。第二個步驟包括設置協議棧、促進操作系統借助于任務調度完成負載均衡的操作。后者的時間點在于運行線程數不小于硬件平臺的處理器數量。按照上述順序,可以達到處理器負載均衡的目的。

3 實驗方案結果

從本文的實驗方案測試結果中可以看出,首先單線程下的程序只能夠通過串來執行,從而不能夠發揮出處理器的實際性能。其次,在處理器的數量和線程數量對等的情況之下,也不能夠發揮出系統硬件的全部性能。最后,在處理器數量小于協議棧線程數量的時點,通過適當的增加線程數量,可以在很大程度上提高整個系統的吞吐量。另外,對于內存分配方式對系統性能的影響上,結合實踐經驗以及實驗方案結構可以發現,相比PtMalloc以及SmartBits而言,FixMalloc可以降低動態內存分配過程中出現的處理器消耗,降低的幅度值大概在8.12%上下。

4 結束語

由于現代處理器性能和網絡傳輸能力發展之間存在的很大的不平衡,從而推進了多處理器的發展。本文從網絡協議還原技術出發,提出了一整套的多線程并行的TCP/IP協議的相關還原方案。此外,在通用性的多處理器計算平臺的實際操作過程中發現,雖然計算機多線程TCP/IP協議還原技術可以很好的保障當下處理器平臺性能的發揮,但是對于進一步提升網絡入侵監測系統協議還原能力以及挖掘高性能處理器平臺,以此來協調處理器性能和網絡傳輸能力發展不平衡的矛盾,將是下一階段研究和探究的重點內容。

參考文獻

[1]Bjorkman M,Gunningberg P Performance Modeling of Multiprocessor Implementations of Protocols[J],2009,11(03):142-145.

[2]田偉,顧韻華,丁妮.網絡行為監測與還原系統及關鍵技術研究[J].計算機工程與設計,2011,29(02):111-113.

[3]譚敏生,湯亮.基于HTIP的網絡數據包還原技術研究[J].計算機技術與發展,2011,17(06):14-16.

篇7

關鍵詞:TCP/IP 溫度監測 Arduino LabView

中圖分類號:TP2 文獻標識碼:A 文章編號:1007-9416(2015)09-0000-00

現場總線系統是一種傳統的雙向數字的通信標準,廣泛應用于自動控制領域和生產過程中,但是由于現場總線的種類繁多,且各標準間的相互兼容性不強,加上各廠商和標準制訂組織之間存在利益競爭,各種現場總線技術無法實現無縫連接,也無法將生產現場的監控數據共享給企業的信息管理系統,而將以太網技術引入到工業控制領域,將監控數據進行標準的TCP/IP封裝,將能很好的解決不同生產設備間的高速連接問題和設備的“自動化孤島”問題,最終將生產自動化和辦公自動化無縫對接,實現“一網到底”[1]。工業以太網是指在工業環境的自動化控制及過程控制中應用的相關組件及技術,工業以太網多采用TCP/IP協議,和IEEE802.3標準兼容。溫度是生產過程中重要的物理參數之一,在工業生產過程中經常要用到溫度的檢測及控制,本文對基于TCP/IP網絡的遠程溫度檢測系統進行了設計,給出了基于TCP/IP以太網的遠程溫度監測方案。

1 系統結構

1.1系統物理結構

使用標準的TCP/IP協議實現現場層與監控層的數據傳輸,其中現場層通過連接廠內的傳感器,實時獲取各種信息通過以太網絡傳送至監控層,這一層主要由低功耗運行穩定的嵌入式實現;監控層主要是通過以太網絡連接廠內的現場層的各個數據采集點,將這些信息數據備份,存儲至監控系統的數據庫,并在溫度超過警示值時發出警報。本系統完成了下位機數據采集與上位機數據監測的功能,物理結構圖如圖1所示。

圖1 系統物理結構圖

1.2 系統邏輯結構

本系統的溫度信息由數據采集結點通過以太網發送到監控層計算機,并將歷史數據存儲致數據庫服務器,企業的辦公網絡和外網用戶可通核心路由器訪問數據庫,系統的數據在各層中的流向如圖2所示。

圖2 系統邏輯結構

2 數據采集與發送端

2.1數字溫度采集點設計

K型熱電偶可以測量固體介質和汽液體蒸氣的表面溫度,其測量范從0℃到1300℃[2]。具有很高的靈敏度和很好的穩定性,非線性誤差小,熱電動勢較大,對于復雜環境下的工業環境有很好的適應性等優點,因此,在工業監控領域得到廣泛的使用。但是,由于其輸出熱電勢與冷端溫度相關,輸出的數據為模擬量,且與被測量端的溫度有關,因此需要進行溫度補償和模數轉換。如果采用軟件補償的方法,一方面會增加程序編制及調試電路的難度,另一方面,軟件補償會占用一定的數字結點的計算資源,而以太網使用了CSMA/CD,會產生數據傳送過程中的不確定性,影響精度。所以,本系統采用了使用硬件進行溫度補償的方案,采用MAX6675串行模數轉換器對采集的數據進行處理,在進行溫度補償的同時,也提供了信號量為12位分辨率的模數轉換,加強了與控制器數據通信的兼容性[3]。

嵌入式控制器采用Arduino開源硬件平臺,它使用AtmelAVR單片機為核心處理器,采用基于開放源代碼的軟硬件平臺,由于其功耗低、穩定性強、開發周期短等特點,目前被廣泛應用于各個領域,越來越多的工程師選用Arduino平臺進行項目開發,截止到現在,Arduino開發團隊已開發出多種控制器??紤]到系統部署后期可能有更多數據采集點的加入,本系統選用的是以Atmega2560核心的ArduinoMega2560控制板(以下簡稱Mega2560),相對于普通的Arduino Uno,Meg2560可用的數字輸入輸出口多達到54個,插接傳感器擴展模塊后的數字I/O可以達到100多個,給系統的升級與擴展帶來極大的便利。

硬件連線如圖3所示,將K型熱電偶連接至MAX6675的接線座上,確保正負兩極連接無誤。分別將MAX6675對應用的電源、地線、SO、CS、SCK端連接至控制器 Mega256上的5V、GNU、數字口5、6、7。

圖3 控制器與MAX675連線圖

2.2以太網通信模塊

由于Mega2560無法直接連接到以太網絡,需要采用包含以太網的Ethernet模塊來實現,本文選用的是集成WIZnetW5100網絡芯片的擴展模塊。W5100 是一款高集成度的網絡通信芯片,全硬件實現標準的TCP/IP 協議棧、以太網介質傳輸層(MAC)和物理層(PHY),具備了高穩定、高性能和低功耗的特點,其數據傳輸速率最高可達100Mbps,由于TCP/IP協議均在商用與民用領域經過了多年的應用和長足的發展,相關技術已經十分成熟,資源豐富,極大的縮短了上位機與下位機程序的開發周期。

根據Mega2560的接口特點,本系統采了采用SPI總線方式與嵌入式控制器進行通信,與Ethernet模塊連接如圖4所示,其接口功能描述為SS:使能信號;SCLK:時鐘信號;MOSI:數據發送;MISO:數據接收。

圖4 SPI總線連接圖

由于Arduino系列的控制器均采用了相互兼容的可堆疊的標準化設計,Ethernet可以直接插接到Mega2560上不作任何配置,即可進行通信。W5100 內部用于數據傳輸的緩沖存儲器容量有 16KB,完全能夠滿足溫度監控數據的本地緩存,使用W5100不需要考慮以太網底層的控制,采用常規的網絡編程方法即可實現與W5100的以太網通信。通過Mega256引腳圖(圖5)[3]可知,插接了Ethernet模塊后,SPI總線會占用Mega2560控制器的50~53號引腳,因此在使用的時候要注意避開。

圖5 Arduino Mega2560引腳圖

3 軟件設計

3.1 溫度采集點軟件設計

在以太網傳輸中,常用的傳輸控制協議(TCP)和用戶數據報協議(UDP)均可以完成下位機到上位機的數據傳輸,但TCP是基于連接的可靠傳輸協議,能進行錯誤監測,鑒于工業現場對于數據可靠性的要求,所以本文的軟件設計中并未采用傳輸性能較高的UDP協議。因為,在辦公網絡中一個數據包的丟失可能是無關緊要的,但在工業現場監控中,帶來的影響可能是巨大的。在Arduino標準庫中包含了Ethernet和SPI通信所需要的類與函數,在編寫程序的時候需要包含Ethernet.h、SPI.h和MAX6675.h這三個頭文件。下面是Arduino控制器的程序代碼。

#include “MAX6675.h”

#include “Ethernet.h”

#include “SPI.h”

MAX6675 mySenor(5,6,7); //定義MAX6675類型的傳感器對象mySenor

EthernetServer server(8000); //創建一個服務器對象,并設置網絡傳送端口為8000

Byte mac[]={0XDE,0XAD,0XBE,0XEF,0XEF,0XFE,0XED};//設置Ethernet模塊MAC地址

IPAdress ip{192.168.1.110}; //設置Ethernet模塊IP地址

void setup(){ //初始化各功能模塊

Serial.begin(9600); //設置串口波特率

mySenor.setOffset(0);

Ethernet.begin(mac,ip);

Server.begin();

}

void loop() //控制器循環操作

{

float sendData=0;

sendData=mySenor.getCelsius(); //從傳感器對象讀取溫度數據

server.print(sendData); //通過網絡發送數據

Serial.println(sendData); //向串口發送數據,用于監控調試

delay(500); //設置延時

}

3.2 監控層軟件設計

在工業現場的溫度監測中,不僅要完成實時溫度數據的監測同時也需要將生成的歷史數據進行分析,使用計算機豐富的計算資源以彌補嵌入式控制器的不足,使用虛擬儀器是一很好的選擇,虛擬儀器是將計算機和儀器技術接合的結晶[4],同樣也是測試技術和計算機深層次結合的產物,它具有數據采集與信號分析的功能,本文的監控層軟件設計采用了美國國家儀器公司(NI)設計的LabVIEW平臺,LabVIEW的系統的組成[2]如圖6所示。

圖6 LabVIEW系統組成

LabVIEW采用圖形化的G語言進行編程,設置TCP連接地址為下位機的IP地址為192.168.110,通信端口為8000,超時設置為60000毫秒,通過波形控件提供歷史溫度顯示,溫度顯示控件顯示實時溫度,監控層的上位機程序代碼如圖7所示。

圖7 上位機程序框圖

4 結語

經測試,本系統能準確的對工業現場的實時溫度進行顯示和歷史數據的顯示,如圖8所示,可得知當前溫度為200攝氏度,而在過去的500分鐘歷史記錄中發現系統出現了10次超過溫度警戒值800攝氏度的記錄。該設計充分利用了TCP/IP技術實現了對工業生產過程的監控,進一步提高了各項監督工業,有助于現場工程師及時采取應急處理等業務操作,需要注意的是以太網技術帶來的高數據高實時的同時,也產生了一些網絡安全問題,對于這一問題可通過網關采取包過濾的方法將內部控制網絡與外部網絡系統分開[5]。綜上所述,隨著以太網技術在工業現場中的逐步推廣和應用,使生產現場數據與企業信息系統實現無縫對接,在即將到來的第四次工業革命中,全面實現“數字化工廠”這一宏偉目標[6]。

圖8 LabVIEW程序運行效果圖

參考文獻

[1]徐皚冬.工業以太網實時通信技術[J].信息與控制,2005,34(1):60-64.

[2]沈金鑫,Arduino與LabVIEW開發實戰[M].北京:機械工業出版社,2014:182―187.

[3]開源硬件知識庫[OL].[2014-10-21]. http:///

[4]余成,謝東坡.網絡化測控技術與實現[M].北京:高等教育出版社,2009:194-198.

[5]孫德輝,史運濤,李志軍,楊楊編,網絡化控制系統[M].北京:國防工業出版社,2008:124―134.

[6]陳積明.工業以太網的研究現狀及展望[J].化工自動化入儀表,2001,28(6):1-4.

收稿日期:2015-08-08

篇8

關鍵詞:互聯網;嵌入式系統;協議棧;數據;報文;擁塞

中圖分類號:TP311 文獻標志碼:A 文章編號:1009-3044(2008)31-0860-03

Research of Congestion Control Based on Embedded TCP/IP Protocol Stack

LI Chao1,2, HE Xian-bo1, WANG An-zhi1, HUANG Miao3

(puter College, China West Normal University, Nanchong 637002, China; 2.Nanchong Tourism School, Nanchong 637000, China; 3.Software Engineering School, Pingdingshan University, Pingdingshan 467003, China)

Abstract: This paper according to the present development condition of the computer network and embedded system software, summing up the general characteristics and procecing of the embedded TCP/IP protocol stack. Furthermore, discussing Congestion Control mechanism of the protocol stack in detail, especially analyzing and comparing sorts and implement algorithm of TCP Congestion Control mechanism and IP Congestion Control mechanism.Finally, setting up present Congestion Control solving methods of embedded TCP/IP protocol stack.

Key words: Internet; embedded system; protocol stack; data; message; congestion

1 引言

計算機網絡的飛速發展,已經改變了人們的生產和生活方式。數字化信息家電的日益普及,使嵌入式系統連接到網絡成為了可能?;ヂ摼W采用的是無連接的端到端數據包交換,提供“盡力而為”服務模型的設計機制。這種機制的最大優勢是設計簡單,可擴展性強。然而隨著互聯網用戶數量的膨脹,網絡的擁塞問題也越來越嚴重。據統計,互聯網上95%的數據流和90%的報文數使用的是TCP/IP協議,因此,嵌入式TCP/IP協議棧的擁塞控制機制對控制網絡擁塞更具有特別重要的意義。

2 嵌入式TCP/IP協議棧概述

TCP/IP協議是由很多協議組成的協議族[1]。嵌入式系統引入互聯網支持所需的主要協議為ARP、RARP、IP、ICMP和TCP協議。ARP和RARP協議提供網絡地址的解析;ICMP協議提供網絡診斷功能;TCP和IP協議提供網絡傳輸和網絡互聯[1-2]。在網絡接口層,系統需實現ARP應答協議,該協議用于將IP地址映射成以太網MAC地址;在網際層,需要實現IP協議,主要負責IP報文報頭的正確性,并且對TCP和ICMP報文實行分流,此外,為了能夠測試系統與網絡的連接,在網際層還需要實現ICMP協議中的Ping應答協議,主要用于檢查網絡在傳輸層是否連通。

2.1 TCP/IP協議棧處理流程

TCP/IP協議棧接收數據包的過程就是解析數據包的過程。首先當一個數據幀到達時,網絡接口控制程序將其讀入緩沖區,檢查協議類型字段,如果值依次為0X0800,表示數據域內為IP包;如果值依次為0X0806,表示數據域內為ARP包[3]。由此以確定使用那種協議模塊來處理此分組。去掉以太網幀首部的數據包將被分配到IP緩存或者ARP緩存。接著,由IP協議處理模塊或ARP協議處理模塊繼續解析。在IP協議模塊處理數據包的過程,它要通過調用ARP協議獲得對方主機的物理地址。

2.2 嵌入式TCP/IP協議棧的特點

嵌入式系統一般都是為了滿足某一特定的需求,對網絡支持的要求相對比較低,不需使用完整的TCP/IP協議。嵌入式TCP/IP協議棧的特點如下:

1) 開放的協議標準,獨立于特定的計算機硬件、操作系統和網絡硬件,可以運行在局域網,廣域網和互聯網中。

2) 統一的網絡地址分配方案,使得整個TCP/IP設備在網中都具有唯一的地址;標準化的高層協議,可以提供多種可靠的用戶服務。

3) 代碼比較簡潔,占用的存儲空間盡可能小,盡可能為應用程序節省系統資源。

4) 便于裁剪和擴展,對于面向不同應用的嵌入式系統應當根據特點對協議進行簡化或擴展。

TCP/IP協議棧具有層次特性,各個協議都有自己的數據格式,每次發送數據都要進行上下層協議的數據交換,進行打包和拆包的過程。在嵌入式系統中,往往無法建立數據傳遞的緩沖區,需要采用“零拷貝”技術來解決各層協議間的數據傳遞,以提高系統的實時性能。網絡協議層次模型如圖1所示。

3 擁塞控制概述

描述擁塞現象有許多不同的度量,如傳輸延時、數據吞吐量、隊列長度和網絡效率等,但是沒有哪個度量能在局部和全局意義上完全滿足擁塞評判要求,因此人們對擁塞控制并無嚴格定義,甚至對擁塞的定義都無法完全統一。

3.1 基本概念

定義1:若因為網絡負載增加而導致用戶的滿意度降低,用戶則認為網絡發生擁塞。

形象地說,當網絡中存在過多的報文時,網絡的性能會下降,這種現象稱為擁塞[4,5]。擁塞導致的直接結果是分組丟失率提高,端到端時延加大,甚至整個系統發生崩潰。當發生擁塞崩潰時,微小的負載增量將使網絡的有效吞吐量急劇下降(如圖2所示)。

定義2:當負載達到網絡容量時,吞吐量開始緩慢增長,而響應時間急劇增加,這一點稱為膝點(Knee)。

定義3:如果負載繼續增加,路由器開始丟包,當負載超過一定量時,吞吐量開始急劇下降,這一點稱為崖點(Cliff)。

定義4:擁塞控制就是采用某種策略或機制,保持網絡工作在正常的狀態下,也就是使網絡經常工作在崖點左側的區域內。從而避免擁塞的發生或者對擁塞的發生做出反應。擁塞控制的目標就是使網絡在Knee附近工作。

3.2 產生擁塞的原因

網絡擁塞是“盡力而為”服務模型的一個固有屬性。用戶間無法相互協作共享資源,多個用戶對同一網絡資源提出請求時,就可能發生擁塞。網絡擁塞產生的原因有很多,直接原因主要有三個方面:1) 存儲空間不足;2) 帶寬容量不足;3) 處理器間處理能力和速度不一致。

3.3 擁塞控制算法的設計目標

由于擁塞控制算法性能的好壞會影響整個網絡系統,因此在設計和評價算法時,應該站在整個系統的角度來考查。對于任何一種擁塞避免或控制方案,人們希望它能同時滿足以下幾點要求:高效性、公平性(魯棒性)、穩定性、可擴展性。

4 TCP擁塞控制機制

TCP協議[6]是目前Internet上使用最廣泛的一種傳輸層協議。TCP的主要目的是為了解決Internet的穩定性、異質性(接受端緩沖區大小,網絡帶寬及延遲等)、各流之間享用帶寬的公平性,使用效率及擁塞控制等問題,從而為Internet提供可靠健壯的端到端通訊。TCP擁塞控制策略主要包括以下四個過程:

1) 慢啟動階段[7]:保證了連接建立初期進入網絡的突發數據的流量不會過大。

2) 擁塞避免階段:當數據發送速率超過一定閾值時,算法進入此階段,而后發送速率緩慢線性增長,避免了網絡擁塞的發生。

3) 快速重傳階段[9]:當網絡發生擁塞造成數據丟失或者重傳超時時,用該策略重傳丟失的分組。

4) 快速恢復階段:把網絡從擁塞狀態中恢復出來。

4.1 TCP擁塞控制的主要參數

1) 擁塞窗口(cwnd):描述源端在擁塞控制情況下一次最多能發送的數據包數量。

2) 慢啟動閾值(ssthresh):擁塞控制中慢啟動階段和擁塞避免階段的分界點。初始值設為65535bytes或awnd的大小。

3) 回路響應時間(RTT):一個TCP數據包從源端發送到接收端、源端收到接受端確認的時間間隔。

4) 超時重傳計數器(RTO):描述數據包從發送到失效的時間間隔,是判斷數據包丟失與否、網絡是否擁塞的重要參數。通常設為2RTT和5RTT。

4.2 TCP擁塞控制算法

4.2.1 Reno算法

1990年Jacobson在Tahoe的基礎上提出了Reno算法。Tahoe算法是最早被提出來的TCP源算法,但至今仍然被大多數TCP實現所采用。Reno算法對Tahoe的改進主要體現在兩個方面。第一,收到連續三個dupACK,算法不經過慢啟動,而直接進入擁塞避免階段。第二,增加了快速重傳/快速恢復(FR/FR)機制,具體過程為:

1) 收到三個dupACK進入FR/FR。ssthresh=max(cwnd/2,2);

2) 重發去失的數據包;

3) 窗口膨脹。cwnd=ssthresh+ndupndup為收到的重復ACK數;

4) 當min(awnd,cwnd)足夠大時,發送新的數據包;

5) 當收到非重復的ACK時,cwnd=ssthresh;

6) 轉入擁塞避免階段??梢姡琑eno在收到三個dupACK后,就轉入FR/FR,而遇到超時,Reno和Tahoe一樣進入慢啟動階段。可從Reno狀態轉換圖直觀地看到Reno的整個數據傳輸過程(如圖3所示)。

Reno目前被廣泛采用,以其算法的簡單、有效和魯棒性成為TCP源算法的主流。

4.2.2 NewReno算法

NewReno算法對Reno算法的改進是通過盡量避免Reno在快速恢復階段的許多重傳超時,利用一個ACK來確定部分發送窗口,立即重傳余下的數據包,從而提高網絡性能。目前,在因特網中使用最廣泛的是NewReno算法。然而NewReno算法也存在著不足,它在高速遠距離網絡中不能有效利用帶寬。

4.2.3 Sack算法

Sack算法也是對Reno算法的改進,當檢測到擁塞后,不用重傳數據包丟失到檢測到丟失時發送的全部數據包,而是對這些數據包進行有選擇的確認和重傳,從而避免不必要的重傳,減少時延,提高網絡吞吐量。由于使用選擇重傳,所以在一個窗口中數據包多包丟失的情況下,Sack算法優于NewReno算法。但是Sack算法的主要缺點是要修改接收端TCP。

5 IP擁塞控制機制

隨著Internet業務的迅猛發展,僅依靠單一的端到端的擁塞控制機制不可能有效地解決擁塞問題,另外期望所有用戶在Internet應用中都遵守這種端到端的擁塞控制也是不現實的,這要求網絡本身也必須參與對資源的管理與控制。基于此,提出了IP擁塞控制機制。

5.1 IP擁塞控制算法

5.1.1 隨機及早檢測(RED)算法

RED(Random Early Detective)算法在路由器監控隊列長度,一旦發現擁塞迫近,就通知源端調整擁塞窗口。它也是通過丟包的方式使源端發現超時或重復應答,隱式通知源端擁塞情況。RED算法包含兩部分:如何監控隊列長度和何時丟棄數據包。首先,RED使用類似TCP計算超時時使用的權值Weight來計算平均排隊長度:Qe=(1-Weight)×Qe+Weight×SampleQe其中,0

5.1.2 顯示擁塞指示(ECN)算法

ECN(Explicit Congestion notification)算法在源端數據包中嵌入ECN,由路由器根據網絡情況設置CE(Congestion Experienced)比特位,源端從網絡中接收反饋回來的已被CE置位的數據包,再將隨后發出的數據包標記為“可丟棄”的數據包。改進算法NewECN可通過調整擁塞窗口cwnd大小,糾正了有長時間RTT的TCP連接的偏差,改進了共享瓶頸處帶寬的公平性。

5.1.3 加權公平排隊(WFQ)算法

WFQ(Weight Fair Queue)是公平排隊(FQ)算法的改進算法。WFQ算法對每個流即每個排隊分配一個權值。這個權值決定了路由器每次轉發該隊列的比特數量,從而控制數據流得到的帶寬。將所有權值看成1,那么FQ也是一種特殊的WFQ。權值的分配往往對應不同優先級的數據流,例如用IP包頭中TOS域指定流的優先級,排隊時再按優先級分配權值。總之,WFQ根據不同數據流應用的不同帶寬要求,對每個排隊隊列采用加權方法分配緩存資源,從而增加了FQ對不同應用的適應性。

6 結論

討論了嵌入式TCP/IP擁塞控制領域的研究熱點。近年來,非線性規劃和系統控制理論被引入擁塞控制研究中來,一些研究者使用數學模型來描述端系統和網關組成的系統,這對擁塞控制研究有很大的推動作用。然而,對于Internet這樣一個復雜系統的分析與控制,只有通過通信、控制和數學等多學科的共同努力,才有望獲得突破性成果。

參考文獻:

[1] W.Richard STEVEN. TCP/IP詳解 卷1:協議[M].范建華,胥光輝,張輝,等譯.北京:機械工業出版社,2000:170-269.

[2] Jon C.SNADER. 高級TCP/IP編程[M]. 劉江林譯.北京:中國電力出版社,2001:251-286

[3] Adam DUNKELS.Design and Implementation of the TCP/IP Stack[M]. Swedish:Institude of Computer Science,2001.

[4] Gevros P, Crowcroft J, Kirstein P, etal.Congestion control mechanisms and the best effort service model[J].IEEE Network,2001,15(3):16-26.

[5] Steves W.TCP Slows Start, Congestion Avoidance, Fast Retransmit and Fast Recovery Algorithms.RFC,2001[S], 1997.

[6] 陳崗,張會生.基于IPv6的移動互聯網絡研究與實現[J].微電子學與計算機,2006,23(2):40-42

篇9

關鍵詞:IPv4;IPv6;HSRP;雙協議棧;平滑過渡

中圖分類號: TP368.6 文獻標識碼:A文章編號:1009-3044(2011)22-5340-03

1 IPv4/IPv6雙協議棧熱備冗余網絡在企業的應用前景

隨著1998年IETF正式公布了RFC2460標準,IPv6協議就正式誕生了。IPv6具有2的128次方個IP地址,是IPv4地址的2的96次方倍,解決了IPv4地址空間的枯竭的問題。

IPv6具有極強的安全性和可靠性,在擴展頭中增加了身份驗證頭AH和封裝安全性數據頭(ESP),大大降低了數據被篡改的可能;IPv6增強了對流的支持,流標簽的引入為整合、優化語音、視頻和數據網絡提供了更好的條件,同時高QoS特性使得數據傳輸質量更加高效; IPv6還增強了對移動性主機的內在支持等功能。

將IPv6協議優秀的新特性和功能及早應用于企業,同時又能很好地兼容IPv4應用,增強企業核心網絡性能,采用IPv4/IPv6雙協議棧熱冗余模式建設企業核心網絡對企業計算機應用就有著非常重要的意義。

2 IPv6的新特性

2.1 全新的地址管理方案

地址管理方案中,首先改變了地址擁有方式,IPv4中,地址是用戶擁有,IPv6成了ISP擁有。其次IPv6還包括IPv4中沒有統一解決方案的地址解析協議(ABP)和可達性檢測等等。

IPv6還提供了地址自動配置機制,實現了主機的即插即用功能。為了保證主機地址的唯一性,IPv6定義了重復地址檢測過程,每當生成地址時,均反復執行生成和檢測過程,直到得到唯一的地址。

2.2 報文的安全傳送

IPv6繼承了IPv4的報文傳送技術,在IPv6地址設計中增強了接口ID設置,這種ID設置提供了確認對方物理終端的技術條件,同時在其擴展頭中增加了身份驗證頭AH和封裝安全性數據頭(ESP)。

身份驗證頭AH首先為IP數據報提供強大的完整和身份驗證,為IP數據報承載內容驗證數據和將實體與數據報內容相鏈接;其次在完整中使用公共密鑰數字簽名算法,AH還可以為IP數據報提供不可抵賴服務以及通過使用順序號字段來防止重放攻擊。再有,AH還可以在隧道模式或透明模式下使用,既可用于為兩個節點間的簡單直接的數據報傳送提供身份驗證和保護,也可用于對發給安全性網關或由安全性網關發出的整個數據報流進行封裝。

封裝安全性數據頭通過加密提供數據報的機密性,通過使用公共密鑰加密對數據來源進行身份驗證,通過由AH提供的序列號機制提供對抗重放服務,以及通過使用安全性網關來提供有限的業務流機密性。

2.3 對流的支持

IPv6在設計時就充分考慮了對流的支持,改變了IPv4對流的處理即需要路由器判斷源和目的IP地址,又需要判斷傳輸控制協議或用戶數據報協議的端口號的復雜操作過程。在IP6的IP頭的格式里,有專門的20bit流標簽域。主機發送報文時,流標簽里填入相應的流編號,路由器收到流的第一個報文時,以流編號為索引建立處理上下文,流中的后續報文都按上下文處理,因此IPv6對流的處理方式要高效得多。

同時IPv6定義了流的優先級,分別支持不同的業務需求。通過對語音、視頻、數據等不同類型的數據流進行合理、有效的優先級設置,為企業建設和優化語音、視頻、數據三網合一網絡平臺提供了遠優于IPv4網絡的解決方案。

3 IPv6采用的關鍵技術

3.1 應用支持IPv6的技術

IPv6繼承了IPv4網絡中大量應用協議,比如:FTP、Telnet、SMTP、HTTP、NFS、DNS等,它們會在IPv6中繼續使用。只有少部分如:IPv4 socket接口需要改為IPv6 socket接口,而協議本身機制可以基本不做改動。

3.2 IPv6過度技術

為了保護在IPv4上的大量投資,IPv6應該能與IPv4的主機和路由器共存。逐步演進、逐步部署、地址兼容、降低費用等內容便成了IPv6設計時的指導思想。為了實現這一目標,IPv6主要過度技術有十多種,而基本的過度技術就是雙協議棧和隧道。

1)雙協議棧技術

IPv4/IPv6雙協議棧技術,就是使IPv6網絡節點具有一個IPv4棧和一個IPv6棧,同時支持IPv4和IPv6協議。兩者都應用于相同的物理平臺,以及承載相同的傳輸層協議TCP或UDP。

2)隧道技術

隧道(Tunnel)是指將一種協議報頭封裝在另一種協議報頭中,這樣一種協議就可以通過另一種協議的封裝進行通信。IPv6隧道是將IPv6報頭封裝在IPv4報頭中,這樣IPv6協議包就可以穿越IPv4網絡進行通信。

4 組建具有熱備冗余功能的IPv4/IPv6雙協議棧網絡

4.1 IPv6網絡建設策略

IPv4到IPv6的升級切換不可能一蹴而就,必須循序漸進。因此在基于IPv6的特點以及公司目前IPv4網絡的應用情況,在建設IPv6網絡時做了以下幾點:不影響現有基于IPv4協議的所有網絡應用;保持現有網絡的層次結構;確保計算機終端同時對IPv4和IPv6網絡的訪問能力;滿足今后平滑實現IPv4網絡到IPv6網絡的過渡;通過IPv6網絡的建設,進一步提高企業核心網絡的性能。因此,IPv6網絡建設中采用了熱備冗余功能和IPv4/IPv6雙協議棧技術。

4.2 網絡拓撲

IPv6網絡核心建設完成后形成圖1所示的結構示意圖,核心交換機A與核心交換機B用兩對光纖連接實現熱備份互聯基礎,兩臺交換機與下一層交換機分別互聯,形成雙鏈路,在啟用HSRP及相關配置后實現雙機熱備路由功能。

配置IPv4/IPv6網絡需要完成如圖2所示步驟。

4.3 雙協議棧的啟用

為了實現IPv4/IPv6雙協議棧功能,在網絡接口設置中必須同時啟用兩種協議?,F有交換機IPv4已經啟用,啟用IPv6協議及配置節點地址步驟如下:

interface fastethernet 1/1

IPv6 enable //啟用IPv6協議

IPv6 address 2001:400:25:1::1/64//配置IPv6節點地址

4.4 路由實現

全局模式下IPv4使用IP routing啟用路由功能,IPv6則使用IPv6 unicast-routing啟用路由功能。IPv6是對IPv4的革新,盡管大多數IPv6的路由協議都需要重新設計或者開發,但IPv6路由協議相對IPv4只有很小的變化。在靜態路由方面與IPv4也基本相同,只需為節點配置地址并作為客戶機網關,即可實現網段間的路由。

全局模式下啟用IPv6路由及相關配置

IPv6 unicast-routing //打開ipv6單播路由功能

IPv6 dhcp pool test //新建一個IPv6的dhcp地址池test,供客戶機自動獲取使用

prefix-delegation pool test1 lifetime 1800 600

dns-server 2001:400:4:1::101//指定IPv6 dns服務器地址

4.5 Windows2003中IPv6 DNS配置

①安裝DNS服務及IPv6 DNS插件;

②配置IPv6 DNS

a、打開了DNS配置向導;

b、在導航窗格中, 單擊用于你的服務器在DNS服務器對象,用鼠標右鍵單擊服務器對象,然后單擊 配置DNS服務器以啟動配置DNS服務器向導,步驟見圖3。

4.6 IPv6客戶機配置

通常情況下IPv6客戶機在啟用IPv6協議后,地址會從最近的網絡節點自動獲取,無需用戶手動配置,但是對于像服務器這類需固定IP地址的則需手動配置,以便于訪問。以Windows Server 2003為例,步驟如下:

1)IPv6 協議棧的安裝

在“開始”―>“運行”處執行IPv6 install命令

2)IPv6 地址設置

在“開始”―>“運行”處執行netsh命令,進入系統網絡參數設置環境netsh>,執行interface ipv6 add address “本地連接” 2001:d0a8:3207::e002命令設置地址;或者在 開始 -->“運行”處執行 ipv6 adu 4/2001:d0a8:3207::e002。

3)IPv6 默認網關設置,在netsh>標識后輸入

interface ipv6 add route ::/0 “本地連接” 2001:d0a8:3207::e001 publish=yes命令即可;或者在在“開始”-->“運行”處執行 IPv6 rtu ::/0 4/2001:d0a8:3207::e001。

4.7 IPv6網站的訪問

用戶在實際使用中,IPv4和IPv6同樣使用域名網址進行訪問,使用IP地址訪問時有所不同,IPv6協議需要使用帶中括弧方式來訪問,例如:[ 2001:d0a8:3207::e001]。

4.8 熱備份路由器協議配置

網絡核心采用熱備份路由器協議技術(HSRP:Hot Standby Router Protocol),系統中使用兩臺路由交換機滿足HSRP多臺路由器的條件,組成一個“熱備份組”,這個組形成一個虛擬路由器。在任一時刻,一個組內只有一個路由器是活動的,并由它來轉發數據包,如果活動路由器發生了故障,將選擇備份路由器來替代活動路由器,但是在本網絡內的主機看來,虛擬路由器沒有改變。所以主機仍然保持連接,沒有受到故障的影響,這樣就較好地解決了路由器切換的問題。配置步驟如圖4。

1)熱備份交換機通道配置

交換機A

interface Port-channel1 //創建一個捆綁通道組1

description HSRP_packet //描述該通道是傳遞hsrp包用

interface GigabitEthernet5/1

channel-group 1 mode on //將端口劃入捆綁接口Port-channel1

在交換機B中進行同理配置。

2)VLAN冗余組配置

交換機A

interface Vlan1//配置vlan 1接口

ip address 10.1.1.12 255.255.255.0 //配置本地Vlan1接口Ipv4地址

IPv6 enable

standby version 2//啟用版本2

standby 1 ip 10.1.1.1//設置vlan 1到熱備組1,同時設置vlan 1的ipv4網關

standby 1 priority 110 //在本交換機的優先級110(默認100,優先級高的為主用)

standby 1 preempt//打開熱備組1搶占功能

standby 1 track Port-channel1 //熱備組1通過捆綁接口Port-channel1實現雙機信息告知

standby 1 ipv6 2001:400:1:1::100/64 //啟用IPv6 HSRP協議

在交換機B中進行同理配置。

5 結束語

1)通過雙機熱備份路由器協議的使用,公司網絡穩定性能得到很大提高,更好地滿足了目前公司數十套業務系統全天候不間斷的運行要求,很好地支持了公司的發展;

2)為公司正進行的全面信息化及電子商務的建設提供了高效、安全、可靠和無阻塞的信息處理網絡平臺;

3)通過對IPv6技術的應用,它擁有的全新網絡安全架構技術使企業業務數據的傳輸安全得到了進一步保證;

4)IPv6對流的充分支持,加快了企業對流業務應用系統的開發,為建設高效的企業語音、視頻、數據三網合一網絡平臺起到了重要作用;

5)該系統的成功實施為公司業務系統今后及早融入IPv6網絡環境打下了基礎,為公司ERP及電子商務系統更快、更好地融入新的網絡信息平臺做好了充分準備。

6)IPv6網站的建成,已成為國家IPv6應用試驗典范。

參考文獻:

[1] 張寵科,蘇偉.IPv6路由協議棧原理與技術[M].北京:北京郵電大學出版社,2006(7).

[2] 高發桂,郭學理,王路群.IPv6安全特性的分析與應用研究[J].計算機應用與軟件,2002(11).

[3] 杜治國,肖德琴,徐東風.基于雙棧技術的IPv6校園網絡設計[J].計算機工程與設計,2007(11).

篇10

【關鍵詞】TCP/IP;delphi6.0;SQLserver 2000

【Abstract】The designand implementation of LAN communication tool have been proposrd. The system was designed in delphi 6.0 and stored data in SQLserver 2000.The transmission form of TCP and UDP and C/S structure were used in the design.At last,the function just as user registration and login,the display and find between friends,the text chat,the voice and video chat were achived.

【Key words】TCP/IP;delphi6.0;SQLserver 2000

0 引言

隨著全球信息化進程的不斷發展,越來越多的企業使用局域網來管理各種事務。但隨著局域網的機器增多,軟件的應用對局域網的信息吞吐、處理能力的要求也越高。為解決上述矛盾,就有必要設計一個在局域網里的ICQ,通過該系統,進行文件傳輸,消息的,提高企業的工作效率。

1 需求分析

該系統基于TCP/IP網絡協議,采用C/S模式,服務器端與數據庫連接,客戶端安裝在不同電腦上可通過同一服務器實現數據通訊。實現的功能如下:

(1)用戶注冊,隨機分配號碼并填寫個人信息;

(2)用戶登入驗證并導出好友列表;

(3)能夠查找好友并認證后加為好友;

(4)文字聊天,聊天記錄保存;

(5)點對點文件傳輸功能;

(6)視頻語音捕獲與傳輸(視頻語音聊天功能)。

2 詳細設計

2.1 概要設計

本課題在研究和分析計算機TCP/IP網絡協議基礎上,在不同計算機之間實現數據通訊。采用TCP和UDP傳輸方式,編寫客戶端與服務器端網絡軟件??蛻粝蚍掌靼l出服務請求,服務器作出應答響應,服務器監聽客戶發出的請求,當客戶提出連接請求后,服務器作出應答,并為客戶提供相應的服務。

本系統前臺使用Delphi6.0進行設計,后臺運用Sql Server 2000進行數據管理。

2.2 方案設計

該即時通的工作過程如下:當服務器開啟時,用戶從客戶端登錄,通過TCP/IP網絡將輸入的帳號和密碼傳到服務器,服務器從數據庫中對應的數據表查找驗證,若驗證錯誤,返回錯誤提示信息;若驗證通過,則登錄QQ主頁面。在進入主頁面后,用戶可通過輸入對方QQ號查找其他用戶且加對方為好友。兩用戶可通過點對點通訊實現文字聊天,語音視頻聊天,文件傳輸等。

2.3 系統數據表設計

本系統使用SQL Server 2000設計后臺數據庫,共設計了兩張數據表:用戶信息表和好友信息表。

用戶信息數據表用于儲存注冊用戶的信息,存儲的信息包括:用戶QQ號(主鍵)、用戶密碼、用戶昵稱、性別、是否在線(1為在線,0為不在)、用戶上線地址、國籍、省份、城市等。

好友信息數據表,主要用于添加用戶好友信息,用戶登錄時調用相關信息并顯示。存儲的信息包括:用戶QQ號、好友QQ號、好友是否在線、好友在線地址、好友昵稱。

2.4 詳細模塊設計及功能實現

客戶端包括七個模塊:

(1)登錄模塊:此模塊實現客戶端與服務器連接,用戶登錄時驗證身份,驗證通過則進入QQ主頁面模塊,并調取好友信息顯示。

(2)主頁面模塊:用戶在登錄模塊驗證身份通過后,從服務器調取好友信息,并在QQ主頁面上顯示。

(3)查找模塊:該模塊用于用戶查找好友,輸入對方帳號查找對方信息,并加為好友,與服務器連接并修改數據表的內容,在主頁面上添加上新好友。

(4)文字聊天模塊:此模塊實現用戶間的點對點聊天,兩客戶端通過UDP連接,發送和接收文字信息,實現局域網文字聊天。

(5)文件傳輸模塊:此模塊實現兩客戶端點對點文件傳輸,圖片,文本文檔及壓縮包等均可傳輸。

(6)語音視頻聊天模塊:此模塊實現了語音和視頻的捕獲以及點對點傳輸功能。

服務器端根據功能要求可分為以下三個模塊:

(1)服務器監聽模塊:用于回應客戶端請求,包括登錄回應,注冊回應,調用好友信息回應等。

(2)遠程截圖模塊:此模塊實現服務器端從上線的客戶端獲取IP地址后截取對方屏幕顯示。

(3)查詢模塊:此模塊實現服務器端訪問數據庫并查詢數據庫信息。分為綜合查詢和詳細查詢功能。

3 系統程序的總體設計與實現

本系統軟件采用模塊化結構,由用戶登錄程序、用戶注冊程序、好友信息顯示程序、好友查找程序、文字聊天程序、文件傳輸程序等子程序構成。其中,文件傳輸,語音視頻聊天模塊都具有獨立性,可在單獨設計后加入到整個系統中,其余各模塊間需要服務器客戶端相互連接同時調試才可實現。服務器端首先開啟運行,在和客戶端相互通訊實現基本功能。

4 結束語

本系統基于Delphi6.0和Sql Server 2000的運用,在研究和分析計算機TCP/IP網絡協議基礎上,實現不同計算機之間的數據通訊。采用C/S結構,實現在功能有:用戶的注冊和登錄,好友的顯示和查找,好友文字、語音視頻聊天,文件傳輸等。

【參考文獻】