ip協(xié)議范文
時(shí)間:2023-03-21 01:09:13
導(dǎo)語(yǔ):如何才能寫好一篇ip協(xié)議,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:路由技術(shù) 算法 Rip
1、IP路由算法
IP路由算法可分為以下幾種:靜態(tài)和動(dòng)態(tài)、單路和多路、平等和分級(jí)、源路由和透明路由、域內(nèi)和域間、鏈路狀態(tài)和距離向量。
鏈路狀態(tài)算法發(fā)送路由信息到互聯(lián)網(wǎng)上所有的結(jié)點(diǎn),然而對(duì)于每個(gè)路由器,僅發(fā)送它的路由表中描述了其自身鏈路狀態(tài)的那一部分。距離向量算法則要求每個(gè)路由器發(fā)送其路由表全部或部分信息,但僅發(fā)送到鄰近結(jié)點(diǎn)上。從本質(zhì)上來(lái)說(shuō),鏈路狀態(tài)算法將少量更新信息發(fā)送至網(wǎng)絡(luò)各處,而距離向量算法發(fā)送大量更新信息至鄰接路由器。
由于鏈路狀態(tài)算法收斂更快,因此它在一定程度上比距離向量算法更不易產(chǎn)生路由循環(huán)。但另一方面,鏈路狀態(tài)算法要求比距離向量算法有更強(qiáng)的CPU能力和更多的內(nèi)存空間,因此鏈路狀態(tài)算法將會(huì)在實(shí)現(xiàn)時(shí)顯得更昂貴一些。除了這些區(qū)別,兩種算法在大多數(shù)環(huán)境下都能很好地運(yùn)行。路由算法使用了許多種不同的度量標(biāo)準(zhǔn)去決定最佳路徑。復(fù)雜的路由算法可能采用多種度量來(lái)選擇路由,通過(guò)一定的加權(quán)運(yùn)算,將它們合并為單個(gè)的復(fù)合度量、再填入路由表中,作為尋徑的標(biāo)準(zhǔn)。
2、RIP路由協(xié)議的原理分析
RIP是基于距離矢量的路由協(xié)議。運(yùn)行RIP的路由器維持一個(gè)到網(wǎng)絡(luò)中可能目的地的路由表,路由表包含目的地址和開(kāi)銷等信息。具體的說(shuō),RIP協(xié)議主要包括以下幾個(gè)方面的內(nèi)容。
2.1計(jì)算距離矢量
距離矢量路由協(xié)議利用度量來(lái)跟蹤它和所有已知目的地間的距離。這種距離信息使路由器可以找出到位于非近鄰獨(dú)立系統(tǒng)中的目的地最有效的下一跳。在RFC-1058中,有一個(gè)唯一的距離矢量單位,即跳數(shù)。在RIP中默認(rèn)的跳數(shù)度量被置為1,這些距離度量用來(lái)構(gòu)造路由表。路由表識(shí)別出數(shù)據(jù)包,以最小開(kāi)銷到達(dá)目的地所要采取的下一跳。
2.2更新路由表
RIP只記錄每個(gè)目的地址的一條路由,這一事實(shí)要求RIP經(jīng)常保持其路由表的完整性。它通過(guò)要求所有活躍的RIP路由器周期性的向相鄰RIP路由器廣播它們路由表的內(nèi)容。通常,RIP依賴3個(gè)計(jì)時(shí)器來(lái)維護(hù)路由表:即更新計(jì)時(shí)器、路由暫休計(jì)時(shí)器、路由清楚計(jì)時(shí)器。更新計(jì)時(shí)器用來(lái)激發(fā)節(jié)點(diǎn)路由表的更新。每個(gè)RIP節(jié)點(diǎn)只有一個(gè)更新計(jì)時(shí)器。然而,路由暫休和路由清除計(jì)時(shí)器則是每條路由都有一個(gè)。因此,每個(gè)路由表?xiàng)l目中都有一個(gè)不同的暫休和路由清除計(jì)時(shí)器??傊?這些計(jì)時(shí)器使RIP節(jié)點(diǎn)能維護(hù)它們路由的完善性,并根據(jù)所用的時(shí)間進(jìn)行激活,從而恢復(fù)網(wǎng)絡(luò)故障。
2.3激活路由更新
大約每30s激活一次路由更新。更新路由器用來(lái)跟蹤這個(gè)時(shí)間量。當(dāng)這個(gè)時(shí)間量結(jié)束時(shí),RIP發(fā)送一系列幀來(lái)維護(hù)整個(gè)路由表。這些幀廣播到每個(gè)鄰節(jié)點(diǎn)。因此,每個(gè)RIP路由器大約每30s就要接收來(lái)自鄰RIP節(jié)點(diǎn)的更新。
2.4識(shí)別無(wú)效路由
路由變得無(wú)效的兩種情況:其一,路由到期;其二,路由器可能通知某個(gè)路由器某條路由是不可用的。在這兩種情況下,RIP路由器都需要改變它的路由表,來(lái)反映給定路由的不可用性。假如路由器在給定的時(shí)間內(nèi)沒(méi)有接收到更新某路由的信息,該路由可能到期。路由暫休定時(shí)器常設(shè)成180s,當(dāng)路由激活或更新時(shí),該定時(shí)器初始化。假如180s過(guò)去了,路由器還沒(méi)有接到更新那條路由的信息,RIP路由器就認(rèn)為目的IP地址不再可達(dá)。因此路由器把表中那條路由項(xiàng)標(biāo)成無(wú)效。收到路由新近無(wú)效通知的鄰節(jié)點(diǎn)利用該信息來(lái)更新它們的路由表。這是路由表中路由變得無(wú)效的第2種方法。無(wú)效路由表項(xiàng)不會(huì)自動(dòng)的從路由表中清除;相反,那條無(wú)效項(xiàng)繼續(xù)在路由表中保留很短一段時(shí)間。
2.5清除無(wú)效路由
當(dāng)路由器認(rèn)識(shí)到某條路由無(wú)效時(shí),就初始化一個(gè)秒計(jì)時(shí)器,負(fù)責(zé)路由清除倒計(jì)時(shí),這一計(jì)時(shí)稱為路由清除計(jì)時(shí)器。當(dāng)路由清除計(jì)時(shí)器結(jié)束時(shí),路由仍未被收到,這一路由就從路由表中清除。這些計(jì)時(shí)器是RIP恢復(fù)網(wǎng)絡(luò)故障能力中絕對(duì)重要的。
2.6編址方案
IETF保證RIP能夠完全向后兼容所有已知的RIP和ROUTED異體。即使這些異體專用程度很高,開(kāi)放標(biāo)準(zhǔn)RIP仍有必要支持多種地址類型。
2.7路由到網(wǎng)關(guān)
很多實(shí)際網(wǎng)絡(luò)中,并不要計(jì)算到每個(gè)單個(gè)主機(jī)的路由。特別是在大型網(wǎng)絡(luò)中,這會(huì)使路由表膨脹,從而使整個(gè)網(wǎng)絡(luò)的路由工作繁重。因此在實(shí)際網(wǎng)絡(luò)中,幾乎總是概括路由,而不是指出每個(gè)可能目的地。假如一個(gè)給定的網(wǎng)絡(luò)(或子網(wǎng))上,每個(gè)主機(jī)都能通過(guò)網(wǎng)關(guān)到達(dá)的話,這時(shí)路由表只需定義那個(gè)網(wǎng)關(guān)為下一條IP地址就可以了。所有發(fā)往那個(gè)網(wǎng)絡(luò)或子網(wǎng)上的數(shù)據(jù)包將發(fā)送給那個(gè)網(wǎng)關(guān),這時(shí)網(wǎng)關(guān)就承擔(dān)了把它發(fā)送到最終目的地的任務(wù)。
3、RIP協(xié)議處理過(guò)程
RIP協(xié)議的運(yùn)行過(guò)程就是路由器軟件對(duì)消息輸入和輸出處理過(guò)程,其輸入和輸出處理大致如下所描述。
輸入處理:主要是指路由器協(xié)議軟件對(duì)在520號(hào)UDP端口收到的數(shù)據(jù)報(bào)進(jìn)行的處理。對(duì)于輸入處理,首先必須先作一定格式檢查,檢查通過(guò)后,再分別對(duì)幾種輸入消息做相應(yīng)的處理。
請(qǐng)求報(bào)文:路由器在開(kāi)始運(yùn)行時(shí),為了從鄰機(jī)處獲取路由表的初始值,通常會(huì)發(fā)一個(gè)請(qǐng)求。報(bào)文的Command字段為。對(duì)所有或部分路由表的請(qǐng)求,一般以廣播形式從520號(hào)UDP端口發(fā)送。實(shí)際中,這種請(qǐng)求有兩種格式:請(qǐng)求獲取路由表的全部和請(qǐng)求獲取路由表的某些特定路由項(xiàng)。路由軟件先逐個(gè)路由項(xiàng)地處理請(qǐng)求,如果沒(méi)有任何路由項(xiàng),也就沒(méi)有響應(yīng);如果請(qǐng)求中恰好只有一個(gè)路由項(xiàng),并且addressfamilyidentifier為0,metric為16,則表示需要接收方發(fā)送所有路由表的請(qǐng)求;除此之外,則是要求部分路由,處理很簡(jiǎn)單,沿著請(qǐng)求路由項(xiàng)表一個(gè)一個(gè)看,對(duì)于每個(gè)路由項(xiàng),在主機(jī)路由數(shù)據(jù)庫(kù)中查找,如果找到,則將該路由的metric值填入數(shù)據(jù)報(bào)的metric字段,如果沒(méi)有,則向其中填16。一旦所有路由項(xiàng)均已處理,將command字段設(shè)為響應(yīng),并將該數(shù)據(jù)報(bào)發(fā)回其來(lái)自的端口。根據(jù)請(qǐng)求是否關(guān)于指定的一批目的地,還是關(guān)于整個(gè)路由表,處理有所不同。如果關(guān)于整個(gè)路由表,輸出作普通的處理即可,包括水平分割和子網(wǎng)隱藏,因此來(lái)自路由表的某些路由項(xiàng)將被隱藏;如果是指定路由項(xiàng),則將查找結(jié)果返回,不作水平分割,如果需要還要返回子網(wǎng)信息。
響應(yīng)報(bào)文:因?yàn)橹付ú樵儭⒙酚尚薷牡仍蚨盏巾憫?yīng)。不論收到什么樣的響應(yīng),RIP處理程序就開(kāi)始更新它的路由表。
輸出處理:用于產(chǎn)生包含全部或部分路由表的響應(yīng)信息的處理,可能由于輸入進(jìn)程發(fā)現(xiàn)請(qǐng)求或路由修改而觸發(fā)。響應(yīng)請(qǐng)求產(chǎn)生的輸出可以直接按需工作,而觸發(fā)的修改因?yàn)閮蓚€(gè)方面需要處理。
首先,觸發(fā)的修改在容量有限或有許多路由器的網(wǎng)絡(luò)上可能導(dǎo)致格外大的負(fù)載,因此協(xié)議要求實(shí)現(xiàn)方在限制觸發(fā)式修改出現(xiàn)的頻率上采取一定的措施,觸發(fā)式修改發(fā)送后,需要隨機(jī)地將一個(gè)定時(shí)器設(shè)置成1到5秒,如果在定時(shí)器超時(shí)前發(fā)生其它修改,需要到定時(shí)器超時(shí)才觸發(fā)其中之一,然后定時(shí)器再隨機(jī)地設(shè)置成1到5秒,觸發(fā)式修改可能被一般修改所禁止;另外,觸發(fā)式修改可能不必包括整個(gè)路由表,原則上說(shuō),只有改變過(guò)的路由才需要包括,作為觸發(fā)式修改一部分的信息至少包括設(shè)置了路由修改標(biāo)志的路由,也可以包括附加路由和全部路由。如果完整的修改需要多個(gè)數(shù)據(jù)報(bào),則發(fā)送全部路由極有可能被打斷;而觸發(fā)式修改處理時(shí),需要產(chǎn)生每個(gè)直連網(wǎng)絡(luò)的信息。產(chǎn)生觸發(fā)式修改或一般修改時(shí),都需要進(jìn)行水平分割操作。
參考文獻(xiàn)
篇2
【關(guān)鍵詞】 IP協(xié)議; IPv6; IPv4
物聯(lián)網(wǎng)的本質(zhì)是網(wǎng)絡(luò)間交互作用,但是,互聯(lián)互通是物聯(lián)網(wǎng)交互作用的前提條件。由于物理世界中物件數(shù)量難以計(jì)數(shù),物的形態(tài)與性質(zhì)又是千變?nèi)f化、千差萬(wàn)別,如何通過(guò)網(wǎng)絡(luò)把這些千奇百怪的物件不但能夠聯(lián)系起來(lái),保持各自的性質(zhì)與狀態(tài),而且將來(lái)能夠在網(wǎng)絡(luò)智能控制下交互作用,這就是物聯(lián)網(wǎng)建設(shè)中必須考慮與建設(shè)的標(biāo)準(zhǔn)問(wèn)題。但是,隨著近30年互聯(lián)網(wǎng)的蓬勃發(fā)展,特別是物聯(lián)網(wǎng)的發(fā)展開(kāi)始受到網(wǎng)絡(luò)IP地址的限制。有資料顯示全球IPv4地址可能在很短時(shí)間內(nèi)即將消耗殆盡,地址空間的不足必將影響互聯(lián)網(wǎng)的進(jìn)一步發(fā)展。網(wǎng)絡(luò)IP地址不足,嚴(yán)重地制約了我國(guó)及其他國(guó)家互聯(lián)網(wǎng)的應(yīng)用和發(fā)展。
基于這個(gè)背景,論文主要介紹企業(yè)在建設(shè)物聯(lián)網(wǎng)過(guò)程中應(yīng)該如何選擇IP協(xié)議的相關(guān)問(wèn)題,特別是IPv6對(duì)IPv4取代的必然性以及企業(yè)物聯(lián)網(wǎng)建設(shè)中應(yīng)用IPv6應(yīng)該注意的問(wèn)題。
一、因特網(wǎng)協(xié)議IP(Internet Protocol,IP)的發(fā)展歷程
互聯(lián)網(wǎng)建設(shè)的終極目標(biāo)是:網(wǎng)絡(luò)是中立和無(wú)控制的,任何人都沒(méi)有決定權(quán);網(wǎng)絡(luò)的應(yīng)用是無(wú)關(guān)的,網(wǎng)絡(luò)的任務(wù)就是如何更好地傳輸數(shù)據(jù)報(bào)。因此,要建立一個(gè)可以無(wú)縫鏈接到其他網(wǎng)絡(luò)的系統(tǒng)和如何設(shè)計(jì)一個(gè)面向未來(lái)的網(wǎng)絡(luò),就需要一個(gè)大家都接受的網(wǎng)絡(luò)協(xié)議。這個(gè)協(xié)議就叫因特網(wǎng)協(xié)議,也叫IP協(xié)議產(chǎn)生的前提條件,也是IP協(xié)議的重要作用。
IP協(xié)議最早形成于美國(guó)國(guó)防部高級(jí)研究項(xiàng)目局資助的工程所開(kāi)發(fā)的協(xié)議(叫1822協(xié)議),在1970年為網(wǎng)絡(luò)控制協(xié)議(Network Control Protocol,NCP)所取代,NCP協(xié)議的目的是通過(guò)接口消息處理機(jī)(Interface Message Processor,IMP),現(xiàn)在也稱為智能物件的路由器,把網(wǎng)絡(luò)上的各個(gè)站點(diǎn)聯(lián)起來(lái)。Vint Cerf和Robert Kahn后來(lái)設(shè)計(jì)網(wǎng)絡(luò)傳輸控制協(xié)議TCP(Transport Control Protocol,TCP)來(lái)取代網(wǎng)絡(luò)控制協(xié)議NCP,由于兩者沒(méi)有分開(kāi),就統(tǒng)稱TCP/IP。在因特網(wǎng)協(xié)議(也叫IP協(xié)議)里,使用最為廣泛的兩個(gè)協(xié)議是傳輸協(xié)議TCP和用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol,UDP)。傳輸協(xié)議位于IP協(xié)議之上,為應(yīng)用提供一種無(wú)須直接與IP層交互的通信機(jī)制。應(yīng)用程序并不直接使用IP,而是通過(guò)傳輸協(xié)議相互通信。由于下層IP網(wǎng)絡(luò)盡最大可能傳遞數(shù)據(jù)報(bào),但無(wú)法保證數(shù)據(jù)報(bào)一定可以到達(dá)目的地,也無(wú)法保證數(shù)據(jù)報(bào)的交付順序和發(fā)送時(shí)的順序相同,因此,用戶數(shù)據(jù)報(bào)協(xié)議UDP在IP層之上提供了一個(gè)附加層來(lái)解決前面的問(wèn)題。IP使用地址標(biāo)識(shí)因特網(wǎng)中的主機(jī),UDP使用端口標(biāo)識(shí)主機(jī)的每一個(gè)進(jìn)程。端口是一個(gè)16bit的數(shù)值,用來(lái)區(qū)分每個(gè)端點(diǎn)不同的發(fā)送者和接收者。用戶數(shù)據(jù)報(bào)協(xié)議UDP提供一種盡力而為的傳送服務(wù)。
IPv4(TCP第4版)是在1982年設(shè)計(jì),廣泛并成功地部署到全世界大量公用網(wǎng)絡(luò)和私有網(wǎng)絡(luò)中的數(shù)以億計(jì)的主機(jī)和路由器上。IPv6(TCP第6版)的發(fā)展是從1992年開(kāi)始的,由IETF設(shè)計(jì)的下一代互聯(lián)網(wǎng)協(xié)議,目的是取代現(xiàn)有的互聯(lián)網(wǎng)協(xié)議第四版(IPV4)。經(jīng)過(guò)了十幾年的發(fā)展,IPv6的標(biāo)準(zhǔn)體系已經(jīng)基本完善,在這個(gè)過(guò)程中,IPv6逐步優(yōu)化了協(xié)議體系結(jié)構(gòu),為業(yè)務(wù)發(fā)展創(chuàng)造了機(jī)會(huì)。
隨著物聯(lián)網(wǎng)建設(shè)的發(fā)展,許多客觀世界中的物要通過(guò)智能物件經(jīng)過(guò)網(wǎng)絡(luò)聯(lián)系并能夠交互起來(lái)。這就需要IP協(xié)議能夠唯一識(shí)別并有效地把智能物件聯(lián)系起來(lái)。因此,一下子擴(kuò)充了的網(wǎng)絡(luò)地址及其網(wǎng)絡(luò)操作發(fā)展中互通性、可擴(kuò)展性、架構(gòu)的穩(wěn)定性和普遍性受到人們的重視。
二、IPv6對(duì)IPv4取代:物聯(lián)網(wǎng)發(fā)展的必然
IPv4協(xié)議已經(jīng)使用了30多年,不可否認(rèn),IPv4在因特網(wǎng)的發(fā)展進(jìn)程中起到了舉足輕重的作用。甚至今天的因特網(wǎng)中絕大多數(shù)仍是使用IPv4協(xié)議。但是,隨著計(jì)算機(jī)及路由器的迅速發(fā)展,特別是隨著物聯(lián)網(wǎng)的快速發(fā)展,IPv4的弊端日益明顯,IP6取代IP4成為物聯(lián)網(wǎng)發(fā)展的必需,具體如下:
(一)IPv6對(duì)IPv4的取代能夠解決物聯(lián)網(wǎng)發(fā)展過(guò)程中網(wǎng)絡(luò)地址的不足
當(dāng)前,IPv4地址資源有限。從理論上講,編址1 600萬(wàn)個(gè)網(wǎng)絡(luò)、大約43億個(gè)電腦可以聯(lián)到Internet上。但采用A、B、C三類編址方式后,可用的網(wǎng)絡(luò)地址和主機(jī)地址的數(shù)目大打折扣,以致目前的IP地址近乎枯竭。最近美國(guó)ARIN報(bào)告,A類地址已分配完;62%B類地址已分配;37%C類地址已分配,IPv4的地址空間將面臨耗盡的危險(xiǎn)。IPv6產(chǎn)生的初衷主要是針對(duì)IPv4地址短缺問(wèn)題,即從IPv4的32bit地址,擴(kuò)展到了IPv6的128bit地址,充分解決了地址匱乏問(wèn)題。同時(shí),IPv6網(wǎng)絡(luò)中一個(gè)接口可以有一個(gè)或多個(gè)IPV6地址(包括單傳波地址、任播地址和多播地址),這也進(jìn)一步增加了地址應(yīng)用的擴(kuò)展性。
(二)IPv6對(duì)IPv4的取代能夠解決物聯(lián)網(wǎng)發(fā)展過(guò)程中互通性、可擴(kuò)展性、架構(gòu)的穩(wěn)定性和普遍性的需要
1.IPv6取代IPv4,更能夠適應(yīng)物聯(lián)網(wǎng)網(wǎng)絡(luò)傳輸控制的發(fā)展
網(wǎng)絡(luò)能夠互聯(lián)互通是網(wǎng)絡(luò)在任何數(shù)據(jù)改善之前,兩個(gè)端口之間必須建立一個(gè)鏈接。鏈接由端點(diǎn)的IP地址和TCP端口之間唯一確定。TCP在盡力而為的IP層之上提供一個(gè)可靠的字節(jié)流來(lái)傳輸服務(wù),它通過(guò)緩沖數(shù)據(jù)并結(jié)合主動(dòng)確認(rèn)和重傳機(jī)制,實(shí)現(xiàn)傳輸可靠性;同時(shí),TCP還提供包括建立和拆除鏈接的可靠方式??傊?,TCP以更大的報(bào)頭和更為復(fù)雜的傳輸層協(xié)議的邏輯為代價(jià)降低了應(yīng)用的復(fù)雜程度。
在物聯(lián)網(wǎng)環(huán)境下,智能物件有芯片內(nèi)存低、信息吞吐量低等特點(diǎn)。同時(shí),用于物聯(lián)網(wǎng)環(huán)境下的UDP協(xié)議存在兩個(gè)缺點(diǎn):UDP不為傳輸過(guò)程中丟失的數(shù)據(jù)報(bào)提供任何恢復(fù)機(jī)制,丟失的數(shù)據(jù)報(bào)由應(yīng)用來(lái)恢復(fù);同時(shí),UDP不為應(yīng)用提供任何機(jī)制來(lái)將數(shù)據(jù)割成大小適合網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)塊。因此,必須計(jì)算出適合網(wǎng)絡(luò)傳送的分組數(shù)據(jù)大小,并相應(yīng)地調(diào)整數(shù)據(jù)報(bào)。而這些功能TCP不但提供傳輸可靠性,還提供了一種自適應(yīng)分組傳送報(bào)文大小的機(jī)制。這些功能就要求TCP的地址能夠把數(shù)量巨大的智能物件按唯一的身份聯(lián)系起來(lái)。因此,IPv6取代IPv4,更能夠適應(yīng)物聯(lián)網(wǎng)網(wǎng)絡(luò)傳輸控制的發(fā)展。
2.IPv6取代IPv4更能夠適應(yīng)物聯(lián)網(wǎng)發(fā)展過(guò)程中互通性、可擴(kuò)展性、架構(gòu)的穩(wěn)定性和普遍性的需要
隨著物聯(lián)網(wǎng)等信息技術(shù)的發(fā)展,雖然智能物件具有一定的智能,但是,它們畢竟是沒(méi)有智慧的物體,不能夠像人那樣熟悉直接操作網(wǎng)絡(luò)。因此,相對(duì)人來(lái)說(shuō),智能物件對(duì)物聯(lián)網(wǎng)中的網(wǎng)絡(luò)協(xié)議有更多的特殊要求,比如:可擴(kuò)展性、互通性、架構(gòu)穩(wěn)定性和普遍性等。
智能物件對(duì)IP協(xié)議的可擴(kuò)展性需求是指IP協(xié)議能夠內(nèi)在支持智能物件的發(fā)展而具有可持續(xù)開(kāi)發(fā)的機(jī)制;智能物件對(duì)IP協(xié)議的互通性需求是指IP協(xié)議能夠支持智能物件之間以及智能物件和網(wǎng)絡(luò)基礎(chǔ)設(shè)施之間可持續(xù)的互通性,這就要求IP協(xié)議提供網(wǎng)絡(luò)、應(yīng)用和協(xié)議在網(wǎng)絡(luò)中不同鏈路層內(nèi)和層間的互通性;智能物件對(duì)IP協(xié)議的架構(gòu)穩(wěn)定性和普遍性的需求是指雖然IP協(xié)議的可擴(kuò)展很重要,但是IP協(xié)議的架構(gòu)穩(wěn)定性和普遍性對(duì)智能物件在生命周期內(nèi)具有重要意義。
總之,IPv4近20年的空前成功,已經(jīng)證明了IPv4協(xié)議設(shè)計(jì)的基本思想、構(gòu)架是值得肯定的。IPv6并不是一個(gè)全新的網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn),沒(méi)有完全I(xiàn)Pv4的所有思路和結(jié)構(gòu),它總結(jié)IPv4近20年來(lái)運(yùn)營(yíng)所獲得的豐富經(jīng)驗(yàn)和教訓(xùn),繼承IPv4協(xié)議運(yùn)行的主要優(yōu)點(diǎn),最后進(jìn)行了大幅修改和功能擴(kuò)充。例如:針對(duì)物聯(lián)網(wǎng)的發(fā)展需要,除了具有龐大的地址空間外,IPv6對(duì)IPv4功能上進(jìn)行了發(fā)展,簡(jiǎn)易靈活的頭部格式、網(wǎng)絡(luò)資源可進(jìn)行預(yù)分配、更高的安全性、支持即插即用和移動(dòng)性。由于這些特性技術(shù)含量較高,這里不進(jìn)行具體介紹。智能物件由于自身的特殊性對(duì)物聯(lián)網(wǎng)的IP協(xié)議具有特殊的要求,新一代的IPv6能夠?yàn)槲锫?lián)網(wǎng)的應(yīng)用和服務(wù)提供可橫跨多種通信技術(shù)的互通、可擴(kuò)展、穩(wěn)定和普遍的網(wǎng)絡(luò)架構(gòu)協(xié)議,為互聯(lián)網(wǎng)換上一個(gè)簡(jiǎn)捷、高效的引擎,這樣不僅可以解決IPv4目前的地址短缺難題,而且可以使物聯(lián)網(wǎng)擺脫日益復(fù)雜、難以管理和控制的局面,變得更加穩(wěn)定、可靠、高效和安全。
三、企業(yè)應(yīng)用IPv6應(yīng)該注意的主要問(wèn)題
隨著3G通訊業(yè)務(wù)、智能手機(jī)等多種個(gè)人智能終端、超高速家庭網(wǎng)絡(luò)的發(fā)展,針對(duì)網(wǎng)絡(luò)地址不足等問(wèn)題,我國(guó)已經(jīng)起動(dòng)IPv6取代IPv4的工程。這對(duì)物聯(lián)網(wǎng)建設(shè)具有重要的現(xiàn)實(shí)意義。但是,正如每一個(gè)新生事物一樣,IPv6也有其不足的地方,企業(yè)在物聯(lián)網(wǎng)建設(shè)中應(yīng)用IPv6除了進(jìn)行詳盡的規(guī)劃與設(shè)計(jì)外,還應(yīng)該主要注意過(guò)渡性問(wèn)題與安全問(wèn)題。
(一)過(guò)渡性問(wèn)題
雖然IPv4有上述缺陷以及IPv6協(xié)議標(biāo)準(zhǔn)的成熟具有取代IPv4位置的必然趨勢(shì),但是,這種取代的過(guò)程必然會(huì)經(jīng)歷一個(gè)相對(duì)漫長(zhǎng)的過(guò)程。同時(shí),盡管IETF在設(shè)計(jì)IPv6的時(shí)候已經(jīng)充分考慮了和IPv4的兼容性,但是這兩個(gè)版本不是完全兼容的。因此,企業(yè)在物聯(lián)網(wǎng)建設(shè)中必須考慮由IPv4向IPv6過(guò)渡的問(wèn)題。首先是處理好IPv4向IPv6遷移時(shí)應(yīng)該考慮的地方:Ipv4與Ipv6的主機(jī)必須可互操作;Ipv6主機(jī)和路由器的使用必須簡(jiǎn)單,逐漸地分布普及到整個(gè)Internet,不能有太多的相互依賴性;網(wǎng)絡(luò)管理員和最終用戶必須認(rèn)為這種遷移容易理解和執(zhí)行。其次是注意過(guò)渡技術(shù)的選擇,即雙協(xié)議棧技術(shù)、隧道技術(shù)和網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)。
(二)安全性問(wèn)題
引入IPv6出現(xiàn)的安全問(wèn)題主要來(lái)源于兩方面:一方面是由于IPv6本身的缺陷所引發(fā)的安全問(wèn)題;另一方面是由于IPv6的過(guò)渡技術(shù)引發(fā)的安全問(wèn)題。由IPv6本身的缺陷引發(fā)的安全問(wèn)題有:IPv6現(xiàn)在遇到的安全威脅主要包括地址掃描、非法訪問(wèn)、分片、路由協(xié)議的認(rèn)證、蠕蟲攻擊、對(duì)ICMPv6的攻擊、對(duì)鄰居發(fā)現(xiàn)的攻擊以及對(duì)無(wú)狀態(tài)地址自動(dòng)配置的攻擊等;過(guò)渡技術(shù)引發(fā)的問(wèn)題有:雙棧技術(shù)的安全問(wèn)題、隧道技術(shù)的安全問(wèn)題、地址翻譯技術(shù)的安全問(wèn)題等。
四、結(jié)論與啟示
物聯(lián)網(wǎng)建設(shè)需要把數(shù)以億計(jì)的物件“互聯(lián)互通”并且“相互作用”,企業(yè)在建設(shè)物聯(lián)網(wǎng)過(guò)程中應(yīng)該選擇IPv6對(duì)IPv4取代的IP協(xié)議的標(biāo)準(zhǔn)是:不僅要有充足的地址資源,更需要IPv6能夠在網(wǎng)絡(luò)操作發(fā)展中有更好的互通性、可擴(kuò)展性、架構(gòu)的穩(wěn)定性和普遍性。
IPv6對(duì)IPv4是一個(gè)不能夠相互兼容的IP協(xié)議。物聯(lián)網(wǎng)建設(shè)從IPv4向IPv6遷移產(chǎn)生不少的過(guò)渡困難。這給大家的啟示便是能夠有統(tǒng)一的標(biāo)準(zhǔn),不僅是技術(shù)標(biāo)準(zhǔn),也包括管理標(biāo)準(zhǔn)。如果說(shuō)IPv4向IPv6遷移中技術(shù)問(wèn)題比重較大的話,那么,基于物聯(lián)網(wǎng)會(huì)計(jì)云計(jì)算建設(shè)中就會(huì)克服更多的需要統(tǒng)一的管理標(biāo)準(zhǔn)。如:當(dāng)前,由于沒(méi)有統(tǒng)一的云計(jì)算標(biāo)準(zhǔn),Google、Amazon、微軟、IBM等公司紛紛推出自己的云計(jì)算平臺(tái)和云計(jì)算的實(shí)務(wù)標(biāo)準(zhǔn)。這就導(dǎo)致了不同廠商的服務(wù)出現(xiàn)兼容性問(wèn)題。如何通過(guò)溝通協(xié)作,把這些實(shí)務(wù)標(biāo)準(zhǔn)變成統(tǒng)一標(biāo)準(zhǔn)需要大家共同努力。
篇3
關(guān)鍵詞:“計(jì)算機(jī)網(wǎng)絡(luò)”教學(xué);Wireshark;TCP/IP
“計(jì)算機(jī)網(wǎng)絡(luò)”課程作為計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、通信工程和軟件工程等專業(yè)的主干課,其地位在課程體系群中尤為重要。學(xué)習(xí)這門課程,最重要的是掌握計(jì)算機(jī)網(wǎng)絡(luò)的原理,了解網(wǎng)絡(luò)硬件和軟件的工作機(jī)制。計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)理論復(fù)雜抽象,概念眾多,對(duì)剛開(kāi)始學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的學(xué)生來(lái)說(shuō),這些概念和協(xié)議是非常難以理解和記憶的。計(jì)算機(jī)網(wǎng)絡(luò)原理主要描述的是各層的功能及其協(xié)議和服務(wù),具體地說(shuō)就是要理解網(wǎng)絡(luò)的相關(guān)功能層概念和網(wǎng)絡(luò)體系結(jié)構(gòu)(包括OSI參考模型、TCP/IP模型協(xié)議族),以及功能模塊之間的協(xié)議交互[1],這是學(xué)好計(jì)算機(jī)網(wǎng)絡(luò)的關(guān)鍵。網(wǎng)絡(luò)體系結(jié)構(gòu)是計(jì)算機(jī)網(wǎng)絡(luò)及其部件所應(yīng)完成的功能的精確定義。計(jì)算機(jī)網(wǎng)絡(luò)原理主要講述的就是各層的功能及其協(xié)議和服務(wù)。在計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)過(guò)程中,利用Wireshark網(wǎng)絡(luò)探測(cè)和分析軟件,通過(guò)從網(wǎng)絡(luò)中實(shí)時(shí)捕獲幾種常見(jiàn)協(xié)議數(shù)據(jù)包并進(jìn)行分析,使學(xué)生對(duì)一些協(xié)議的工作原理及結(jié)構(gòu)有了更加深刻的理解和認(rèn)識(shí)[2]。
1Wireshark簡(jiǎn)介
Wireshark(原名Ethereal)是目前世界上最受歡迎的協(xié)議分析軟件,利用它可將捕獲到的網(wǎng)絡(luò)二進(jìn)制數(shù)據(jù)流翻譯為人們?nèi)菀鬃x懂和理解的文字和圖表等形式,極大地方便了對(duì)網(wǎng)絡(luò)活動(dòng)的監(jiān)測(cè)分析和教學(xué)實(shí)驗(yàn)。它有十分豐富和強(qiáng)大的統(tǒng)計(jì)分析功能,可在Windows,Linux 和UNIX等系統(tǒng)上運(yùn)行。它允許在一個(gè)網(wǎng)絡(luò)內(nèi)部實(shí)時(shí)捕獲和分析數(shù)據(jù)包,用戶可以通過(guò)圖形界面很直觀地瀏覽捕獲到的數(shù)據(jù)信息,研究數(shù)據(jù)包每一層的詳細(xì)信息[3]。
學(xué)習(xí)和理解計(jì)算機(jī)網(wǎng)絡(luò)原理的最好方法是,理論聯(lián)系實(shí)際。在一個(gè)現(xiàn)實(shí)的局域網(wǎng)中,網(wǎng)絡(luò)數(shù)據(jù)流往往是來(lái)自不同用戶的各種各樣協(xié)議數(shù)據(jù)的大混雜,因此利用Wireshark的“捕獲過(guò)濾器”和“顯示過(guò)濾器”,從錯(cuò)綜復(fù)雜的數(shù)據(jù)流中迅速提取自己所關(guān)心的網(wǎng)絡(luò)信息,了解和掌握網(wǎng)絡(luò)的工作原理和協(xié)議的交互過(guò)程。
Wireshark使用目的是網(wǎng)絡(luò)管理員使用Wireshark來(lái)檢測(cè)網(wǎng)絡(luò)問(wèn)題、網(wǎng)絡(luò)安全工程師使用Wireshark來(lái)檢查資訊安全相關(guān)問(wèn)題、開(kāi)發(fā)者使用Wireshark來(lái)為新的通訊協(xié)議除錯(cuò)、普通使用者使用Wireshark來(lái)學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的相關(guān)知識(shí)等。
2用Wireshark分析網(wǎng)絡(luò)協(xié)議
網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)上所有設(shè)備(網(wǎng)絡(luò)服務(wù)器、計(jì)算機(jī)及交換機(jī)、路由器、防火墻等)之間通信規(guī)則的集合,它定義了通信時(shí)信息必須采用的格式和這些格式的意義。TCP/IP(Transmission Control Protocol / Internet Protocol),即傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議是不同操作系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)互連的通用協(xié)議,它是一組計(jì)算機(jī)通信協(xié)議族,其中最著名的兩個(gè)協(xié)議是TCP及IP協(xié)議。TCP/IP協(xié)議具有開(kāi)放式互聯(lián)環(huán)境,很容易實(shí)現(xiàn)各種局域網(wǎng)和廣域網(wǎng)的集成式互聯(lián)。此協(xié)議是當(dāng)今技術(shù)最成熟、應(yīng)用最廣泛的網(wǎng)絡(luò)協(xié)議[4]。
TCP是一種面向連接的、可靠的運(yùn)輸層協(xié)議,TCP數(shù)據(jù)傳輸(只有連接建立后才可進(jìn)行數(shù)據(jù)傳輸)需要通過(guò)在客戶端和服務(wù)器端建立特定的虛電路連接來(lái)完成,該過(guò)程通常被稱為“三次握手”,即發(fā)送方先發(fā)送連接請(qǐng)求,然后接收方進(jìn)行連接確認(rèn),最后發(fā)送方對(duì)接收方的確認(rèn)再次進(jìn)行確認(rèn)(圖1)。下面就以Wireshark對(duì) TCP連接建立交互過(guò)程的數(shù)據(jù)包捕獲分析為例,來(lái)說(shuō)明對(duì)TCP/IP協(xié)議實(shí)現(xiàn)的分析。
2.1建立捕獲TCP連接報(bào)文的實(shí)驗(yàn)環(huán)境
PCATTCP是一款不錯(cuò)的測(cè)試局域網(wǎng)網(wǎng)絡(luò)速度的軟件。在局域網(wǎng)中,兩臺(tái)主機(jī)通過(guò)交換機(jī)連接起來(lái)。在服務(wù)器端和客戶端都安裝和運(yùn)行PCATTCP進(jìn)行通信,產(chǎn)生TCP流。啟動(dòng)Wireshark進(jìn)行數(shù)據(jù)包捕獲,單擊CaptureInterfaces菜單,選擇自己的網(wǎng)卡,選擇Start開(kāi)始監(jiān)控流量。在服務(wù)器端運(yùn)行ttcp,監(jiān)聽(tīng)TCP的5001端口。圖2是服務(wù)器端的完整命令行輸出:
服務(wù)器配置好后,在客戶端運(yùn)行ttcp,雙方開(kāi)始通信。
2.2TCP報(bào)文分析
2.2.1客戶端發(fā)送連接請(qǐng)求
捕捉到的TCP 連接報(bào)文如圖3所示。
從圖3可以看出,客戶端發(fā)出的連接請(qǐng)求數(shù)據(jù)包封裝了三個(gè)頭信息:以太網(wǎng)(Ethernet)幀、IP數(shù)據(jù)報(bào)和TCP報(bào)文段。在數(shù)據(jù)鏈路層,數(shù)據(jù)以幀的方式進(jìn)行傳輸。在網(wǎng)絡(luò)層,加工的主要數(shù)據(jù)對(duì)象是IP數(shù)據(jù)報(bào)。IP協(xié)議是TCP/IP協(xié)議族中的核心協(xié)議之一,所有的TCP、UDP、ICMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸。
在運(yùn)輸層,主要數(shù)據(jù)對(duì)象是TCP報(bào)文。客戶端發(fā)送的連接請(qǐng)求如圖4所示。
第一條報(bào)文是沒(méi)有數(shù)據(jù)的TCP報(bào)文段,并且將首部的SYN位設(shè)置為1。因此,第一條報(bào)文常常被稱為SYN分組。這個(gè)報(bào)文段里的序列號(hào)是由系統(tǒng)隨機(jī)設(shè)置的數(shù)值,表示客戶端為后續(xù)報(bào)文設(shè)定的起始編號(hào)。此TCP報(bào)文段,序列號(hào)SEQ在連接請(qǐng)求時(shí)相對(duì)初始值是0,其實(shí)際值是c9 f4 65 c2;確認(rèn)號(hào)是00 00 00 00,ACK標(biāo)志為0表明確認(rèn)號(hào)被忽略。SYN=1表示正在進(jìn)行連接請(qǐng)求,通過(guò)SYN和ACK也可以用來(lái)區(qū)分Connection Request和Connection Accepted,在連接請(qǐng)求中,SYN=1、ACK=0,連接響應(yīng)時(shí),SYN=1、ACK=1。
SYN分組通常是從客戶端發(fā)送到服務(wù)器端。這個(gè)報(bào)文段請(qǐng)求建立連接。因?yàn)橐坏┏晒⑦B接,服務(wù)器進(jìn)程必須已經(jīng)在監(jiān)聽(tīng)SYN分組所指示的IP地址和端口號(hào)[5]。如果沒(méi)有建立連接,SYN分組將不會(huì)應(yīng)答。如果第一個(gè)分組丟失了,客戶端通常會(huì)發(fā)送若干個(gè)SYN分組,如果多次嘗試不成功,客戶端將會(huì)停止并報(bào)告一個(gè)錯(cuò)誤給應(yīng)用程序。
2.2.2服務(wù)端連接響應(yīng)
當(dāng)服務(wù)器接收到連接請(qǐng)求時(shí),就對(duì)請(qǐng)求方進(jìn)行響應(yīng),以確認(rèn)收到客戶端的第一個(gè)TCP報(bào)文段。響應(yīng)的報(bào)文段SYN位和ACK位都將置1。通常稱這個(gè)報(bào)文段為SYNACK分組。SYNACK分組在確認(rèn)收到SYN分組的同時(shí)也發(fā)出一個(gè)初始的數(shù)據(jù)流序列號(hào),表示服務(wù)器發(fā)向客戶端的數(shù)據(jù)序號(hào),它不需要與剛才客戶端發(fā)來(lái)的數(shù)據(jù)流的序列號(hào)相匹配。服務(wù)器端響應(yīng)的數(shù)據(jù)包如圖5所示。
此數(shù)據(jù)包的起始序列號(hào)SEQ在協(xié)議框中顯示為0,在原始框中的實(shí)際值為63 cf 1a c9。所有初始序列號(hào)邏輯上都視同為序列號(hào)0。ACK標(biāo)志為1表明確認(rèn)號(hào)有效,SYN仍然為1。
圖6中確認(rèn)號(hào)在協(xié)議框中顯示為1,在原始框中的值為c9 f4 65 c3(比c9 f4 65 c2多1)。這解釋了TCP的確認(rèn)模式,TCP接收端確認(rèn)第X個(gè)字節(jié)已經(jīng)收到,并通過(guò)設(shè)置確認(rèn)號(hào)為X+1來(lái)表明期望收到的下一個(gè)字節(jié)號(hào)。
2.2.3客戶端連接確認(rèn)
在TCP連接建立的最后階段,客戶端對(duì)接收到數(shù)據(jù)包的服務(wù)器端進(jìn)行確認(rèn),到此為止建立完整的TCP連接,開(kāi)始全雙工模式的數(shù)據(jù)傳輸過(guò)程??蛻舳耸盏椒?wù)器端確認(rèn)后,發(fā)送帶有ACK標(biāo)志的TCP報(bào)文段來(lái)完成三次握手的過(guò)程[6]。這個(gè)報(bào)文段將確認(rèn)服務(wù)器端發(fā)送的SYNACK分組,并檢查TCP連接的兩端是否正確地打開(kāi)和運(yùn)作。
如圖7所示,在確認(rèn)階段,數(shù)據(jù)包由客戶端發(fā)送至服務(wù)器端,TCP中的序列號(hào)為c9 f4 65 c3(即上次服務(wù)器響應(yīng)報(bào)文的確認(rèn)號(hào))。
圖8中,報(bào)文段的本次確認(rèn)號(hào)為63 cf 1a ca(即上次的序列號(hào)加1)表示客戶端下一次希望從主機(jī)接收的數(shù)據(jù)的起始位置。ACK標(biāo)志為1表明確認(rèn)號(hào)有效,SYN置為0表示連接建立結(jié)束。連接建立后,雙方可以根據(jù)各自的窗口尺寸開(kāi)始傳輸數(shù)據(jù)。
2.3小結(jié)
從以上的圖可以看出,利用Wireshark可以針對(duì)每一數(shù)據(jù)包,完成從鏈路層、網(wǎng)絡(luò)層、運(yùn)輸層到應(yīng)用層的協(xié)議解析。通過(guò)上面步驟,可以更加直觀的觀察到TCP三次握手建立的過(guò)程,有助于理解TCP及其工作原理,掌握協(xié)議的語(yǔ)法細(xì)節(jié)。
3結(jié)語(yǔ)
計(jì)算機(jī)網(wǎng)絡(luò)基本理論復(fù)雜抽象,不易理解,但這部分內(nèi)容又是進(jìn)一步學(xué)習(xí)“計(jì)算機(jī)網(wǎng)絡(luò)”課程,培養(yǎng)實(shí)踐應(yīng)用能力的基礎(chǔ)。在教學(xué)過(guò)程中,通過(guò)合理組織授課內(nèi)容,采用先進(jìn)的教學(xué)方法和較為科學(xué)的教學(xué)手段,使學(xué)生能夠較好地掌握計(jì)算機(jī)網(wǎng)絡(luò)的基本理論和方法。利用Wireshark網(wǎng)絡(luò)協(xié)議分析軟件,進(jìn)行網(wǎng)絡(luò)性能參數(shù)和數(shù)據(jù)代碼的捕獲分析,了解協(xié)議的封裝結(jié)構(gòu)、交互過(guò)程,對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)有很大的幫助。
參考文獻(xiàn):
[1] 謝希仁. 計(jì)算機(jī)網(wǎng)絡(luò)[M]. 大連:大連理工大學(xué)出版社,2004.
[2] 楊春勇,潘文君,朱翠濤. 計(jì)算機(jī)網(wǎng)絡(luò)課程教學(xué)及輔助教學(xué)方法研究[J]. 高等函授學(xué)報(bào):自然科學(xué)版,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協(xié)議族[M]. 3版. 謝希仁,等譯. 北京:清華大學(xué)出版社,2006.
[5] 蔣波,李方軍,郝軍. 數(shù)據(jù)包的截獲與網(wǎng)絡(luò)協(xié)議分析[J]. 重慶三峽學(xué)院學(xué)報(bào),2006,22(3):26-28.
[6] Miller D. 數(shù)據(jù)通訊與網(wǎng)絡(luò)[M]. 鄧勸生,薛建新,王涌,譯. 北京:清華大學(xué)出版社,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
【關(guān)鍵詞】TCP/IP協(xié)議;通信報(bào)文;路由尋址;通信流程
1 概述
隨著信息科學(xué)技術(shù)和通信技術(shù)的不斷快速發(fā)展,基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)通信應(yīng)用在社會(huì)各個(gè)領(lǐng)域中的應(yīng)用越來(lái)越廣泛,使得互聯(lián)網(wǎng)通信應(yīng)用成為現(xiàn)代人日常生產(chǎn)生生活不可或缺的一部分,通過(guò)互聯(lián)網(wǎng)絡(luò)通信,網(wǎng)絡(luò)用戶之間可以實(shí)現(xiàn)數(shù)據(jù)傳輸、信息共享,從而極大地提高了人們的生活質(zhì)量。然而,互聯(lián)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸過(guò)程,并不是雜亂無(wú)章的隨機(jī)傳送,而是在計(jì)算機(jī)網(wǎng)絡(luò)通信協(xié)議的基礎(chǔ)上,雙方都按照協(xié)議的內(nèi)容和機(jī)制,來(lái)發(fā)送數(shù)據(jù)信息和讀取分析數(shù)據(jù)信息,進(jìn)而實(shí)現(xiàn)互聯(lián)網(wǎng)絡(luò)的數(shù)據(jù)傳輸和信息共享的功能,TCP/IP協(xié)議就是互聯(lián)網(wǎng)絡(luò)中重要的通信協(xié)議,它的存在奠定了整個(gè)互聯(lián)網(wǎng)絡(luò)通信的基礎(chǔ),所以對(duì)于TCP/IP通信協(xié)議的學(xué)習(xí)對(duì)于理解互聯(lián)網(wǎng)通信機(jī)制來(lái)輔助互聯(lián)網(wǎng)學(xué)習(xí)和工作具有很大的幫助。
2 計(jì)算機(jī)網(wǎng)絡(luò)的TCP/IP通信協(xié)議
TCP/IP協(xié)議是“Transmission Control Protocol / Internet Protocol”的簡(jiǎn)寫,是Internet網(wǎng)絡(luò)基本的協(xié)議,它為計(jì)算機(jī)通訊的數(shù)據(jù)打包傳輸以及網(wǎng)絡(luò)尋址提供了標(biāo)準(zhǔn)的方法。由于TCP/IP協(xié)議的優(yōu)越性,使得越來(lái)越多的通信設(shè)備支持TCP/IP協(xié)議,使互聯(lián)網(wǎng)絡(luò)逐步走向規(guī)范化,最終TCP/IP協(xié)議成為了當(dāng)前網(wǎng)絡(luò)通信協(xié)議標(biāo)準(zhǔn)中最基本的網(wǎng)絡(luò)通信協(xié)議、Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)。
2.1 計(jì)算機(jī)網(wǎng)絡(luò)TCP/IP協(xié)議
針對(duì)計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)的通信協(xié)議,國(guó)際標(biāo)準(zhǔn)組織ISO創(chuàng)立了七層OSI網(wǎng)絡(luò)模型,自上而下,分別為應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層。而TCP/IP協(xié)議則是應(yīng)用在傳輸層和網(wǎng)絡(luò)層的數(shù)據(jù)傳輸控制協(xié)議,來(lái)規(guī)定網(wǎng)絡(luò)設(shè)備接入互聯(lián)網(wǎng)絡(luò)以及設(shè)備間數(shù)據(jù)通信的標(biāo)準(zhǔn)。在通信設(shè)備經(jīng)過(guò)互聯(lián)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸時(shí),通信設(shè)備數(shù)據(jù)發(fā)送端,發(fā)送TCP/IP通信報(bào)文,此時(shí)TCP/IP協(xié)議攜帶著通信設(shè)備發(fā)送端的傳輸數(shù)據(jù)內(nèi)容以及目標(biāo)通信設(shè)備的地址標(biāo)示在互聯(lián)網(wǎng)絡(luò)中進(jìn)行尋址,從而正確地傳送到目標(biāo)通信設(shè)備。當(dāng)目標(biāo)通信設(shè)備接收到TCP/IP通信報(bào)文后,按照協(xié)議內(nèi)容,去除通信標(biāo)示,來(lái)獲取傳輸數(shù)據(jù)內(nèi)容,并加以校驗(yàn),如果經(jīng)校驗(yàn)后發(fā)生差錯(cuò),目標(biāo)通信設(shè)備會(huì)發(fā)出TCP/IP信息重發(fā)報(bào)文,讓發(fā)送通信設(shè)備再次將TCP/IP通信報(bào)文發(fā)展目標(biāo)通信設(shè)備,去掉通信標(biāo)示來(lái)獲取傳輸數(shù)據(jù)信息。
2.2 TCP/IP通信協(xié)議報(bào)文格式
在互聯(lián)網(wǎng)絡(luò)中,基于TCP/IP通信協(xié)議傳輸?shù)臄?shù)據(jù)內(nèi)容都是以通信報(bào)文的形式在互聯(lián)網(wǎng)絡(luò)內(nèi)部進(jìn)行傳輸,通信報(bào)文實(shí)質(zhì)上就是一串二進(jìn)制字符串,而字符串內(nèi)不同位置的二進(jìn)制字符標(biāo)示不同的含義。從TCP/IP通信協(xié)議的主要報(bào)文格式可以看出,IP協(xié)議是基于TCP協(xié)議至上的,TCP協(xié)議報(bào)文時(shí)作為IP通信報(bào)文的數(shù)據(jù)部分來(lái)進(jìn)行傳輸?shù)?。?shí)際上,互聯(lián)網(wǎng)內(nèi)傳輸?shù)耐ㄐ抛址€有其他的通信協(xié)議,TCP/IP通信報(bào)文也是作為其外層協(xié)議的通信數(shù)據(jù)部分嵌入到通信報(bào)文中在互聯(lián)網(wǎng)內(nèi)進(jìn)行傳輸。
在IP協(xié)議首部,包含了一些關(guān)于IP協(xié)議的標(biāo)示、通信地址等信息,主要包括數(shù)據(jù)字符串總長(zhǎng)度的信息、通信標(biāo)示號(hào)、源IP地址和目標(biāo)IP地址等信息,當(dāng)IP通信報(bào)文經(jīng)過(guò)路由尋址時(shí),會(huì)根據(jù)首部?jī)?nèi)記錄的目標(biāo)IP地址來(lái)選擇傳輸方向,最終根據(jù)目標(biāo)IP地址傳輸至目標(biāo)通信設(shè)備。此外,IP通信報(bào)文首部還包含其他信息,比如IP協(xié)議版本號(hào)、首部長(zhǎng)度、校驗(yàn)信息、該IP通信報(bào)文生存時(shí)間(即該報(bào)文經(jīng)過(guò)多少個(gè)路由后自動(dòng)取消傳輸)等與IP通信報(bào)文相關(guān)的信息,以確保IP報(bào)文傳輸?shù)恼_性和安全性。TCP協(xié)議通信報(bào)文是作為IP通信報(bào)文數(shù)據(jù)內(nèi)容存在的,TCP協(xié)議也分為TCP報(bào)文首部和TCP通信數(shù)據(jù)。TCP通信報(bào)文首部主要包括了源端口號(hào)和目標(biāo)端口號(hào)等信息,當(dāng)TCP/IP通信報(bào)文經(jīng)過(guò)互聯(lián)網(wǎng)絡(luò)到達(dá)目標(biāo)通過(guò)新設(shè)備后,通信設(shè)備會(huì)根據(jù)TCP報(bào)文首部的目的端口號(hào)選擇設(shè)備端口號(hào)來(lái)接受該數(shù)據(jù)信息,進(jìn)而實(shí)現(xiàn)互聯(lián)網(wǎng)絡(luò)的數(shù)據(jù)傳輸。
2.3 TCP/IP協(xié)議通信過(guò)程
互聯(lián)網(wǎng)絡(luò)的通信設(shè)備基于TCP/IP協(xié)議建立通信過(guò)程,也是根據(jù)TCP/IP協(xié)議來(lái)實(shí)現(xiàn)的。當(dāng)源通信設(shè)備想向目標(biāo)設(shè)備發(fā)送數(shù)據(jù)時(shí),首先會(huì)發(fā)送一個(gè)TCP/IP通信報(bào)文來(lái)確認(rèn)連接,該通信報(bào)文在互聯(lián)網(wǎng)絡(luò)中經(jīng)過(guò)尋找傳輸后找到目標(biāo)設(shè)備,目標(biāo)設(shè)備也會(huì)向源通信設(shè)備發(fā)送一個(gè)TCP/IP報(bào)文以確認(rèn)建立通信連接,此時(shí),源通信設(shè)備就會(huì)將通信數(shù)據(jù)以TCP/IP通信報(bào)文的形式進(jìn)行數(shù)據(jù)打包,然后向目標(biāo)數(shù)據(jù)進(jìn)行傳輸,在收到數(shù)據(jù)后,目標(biāo)設(shè)備同樣會(huì)發(fā)送TCP/IP報(bào)文以確認(rèn)收到信息。當(dāng)然,TCP/IP通信數(shù)據(jù)長(zhǎng)度是一定的,當(dāng)通信數(shù)據(jù)超過(guò)報(bào)文長(zhǎng)度時(shí),源通信設(shè)備會(huì)將其分段發(fā)送,而目標(biāo)設(shè)備則會(huì)根據(jù)IP報(bào)文首部的標(biāo)識(shí)號(hào)進(jìn)行數(shù)據(jù)重組來(lái)重現(xiàn)傳輸數(shù)據(jù)信息,進(jìn)而完成互聯(lián)網(wǎng)絡(luò)通信設(shè)備數(shù)據(jù)傳輸。
3 總結(jié)
TCP/IP網(wǎng)絡(luò)協(xié)議是當(dāng)前互聯(lián)網(wǎng)絡(luò)最基本的通信協(xié)議。根據(jù)TCP/IP網(wǎng)絡(luò)協(xié)議,連接在互聯(lián)網(wǎng)內(nèi)的通信設(shè)備可以根據(jù)TCP/IP通信報(bào)文格式的內(nèi)容將傳輸數(shù)據(jù)打包在TCP/IP通信報(bào)文內(nèi),并以其規(guī)定的通信流程進(jìn)行數(shù)據(jù)傳輸,從而實(shí)現(xiàn)互聯(lián)網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)高效安全的傳輸。
參考文獻(xiàn):
[1]楊紹文.談?dòng)?jì)算機(jī)網(wǎng)絡(luò)的TCP/IP協(xié)議[J].科技信息.2011(02)
[2]查東輝.試論計(jì)算機(jī)網(wǎng)絡(luò)通信協(xié)議[J].電腦知識(shí)與技術(shù).2013(14)
[3]楊嬌娟.淺談TCP/IP協(xié)議[J].數(shù)字技術(shù)與應(yīng)用.2012(03)
篇5
關(guān)鍵詞:嵌入式系統(tǒng);以太網(wǎng);TCP/IP協(xié)議;UDP;ARP
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2007)04-10947-03
1 引言
目前,嵌入式系統(tǒng)與網(wǎng)絡(luò)的結(jié)合已經(jīng)成為嵌入式系統(tǒng)發(fā)展過(guò)程中所必須要面對(duì)的問(wèn)題之一。嵌入式系統(tǒng)的網(wǎng)絡(luò)接入一般可以通過(guò)RS-232或RS-485等間接接入,也可以通過(guò)網(wǎng)絡(luò)協(xié)議直接與網(wǎng)絡(luò)相互連,其中,直接接入方式正逐步成為嵌入式系統(tǒng)接入網(wǎng)絡(luò)的主要方式,但是需要精簡(jiǎn)TCP/IP協(xié)議棧的支持。目前使用廣泛的通用TCP/IP協(xié)議棧所包含的協(xié)議內(nèi)容比較全,但同時(shí)也比較復(fù)雜。由于硬件平臺(tái)的差別,這些協(xié)議站無(wú)法直接應(yīng)用于嵌入式系統(tǒng),主要表現(xiàn)在以下三個(gè)方面:
(1)嵌入式操作系統(tǒng)都面向特定的領(lǐng)域和需求,嵌入式應(yīng)用對(duì)實(shí)時(shí)性要求比較高。
(2)多任務(wù)操作系統(tǒng)的內(nèi)存分配是動(dòng)態(tài)的,但是在嵌入式系統(tǒng)中片RAM是靜態(tài)分配的,用于存放收到的數(shù)據(jù)包的的空間很有限。
(3)嵌入式系統(tǒng)在程序的具體實(shí)現(xiàn)上與通用計(jì)算機(jī)系統(tǒng)有所不同,主要體現(xiàn)在指針、參數(shù)傳遞、變量和數(shù)據(jù)結(jié)構(gòu)的定義等方面。
因此,需要通用TCP/IP協(xié)議棧的基礎(chǔ)上進(jìn)行精簡(jiǎn)和改寫,以設(shè)計(jì)出精簡(jiǎn)、高效的TCP/IP協(xié)議子集,以供嵌入式系統(tǒng)接入網(wǎng)絡(luò)使用。
2 TCP協(xié)議分析與簡(jiǎn)化
通用計(jì)算機(jī)系統(tǒng)有足夠的資源支持,但是嵌入式系統(tǒng)則不同,因?yàn)槠銫PU處理能力和系統(tǒng)存儲(chǔ)能力都受到成本限制,充分利用資源、提高系統(tǒng)性價(jià)比是開(kāi)發(fā)嵌入式應(yīng)用的根本特點(diǎn)。
2.1 嵌入式TCP/IP協(xié)議棧的特點(diǎn)
嵌入式系統(tǒng)一般都是為了滿足某一特定的需求,對(duì)網(wǎng)絡(luò)支持的要求相對(duì)比較低,需要什么協(xié)議就添加相應(yīng)的模塊,不需使用完整的TCP/IP協(xié)議。嵌入式TCP/IP協(xié)議棧應(yīng)具有以下的特點(diǎn):
(1)代碼比較簡(jiǎn)潔,占用的存儲(chǔ)空間盡可能小,盡可能為應(yīng)用程序節(jié)省系統(tǒng)資源。
(2)需要傳輸?shù)臄?shù)據(jù)量一般比較少,協(xié)議的實(shí)現(xiàn)代碼要有較高的執(zhí)行效率,具有較高的實(shí)時(shí)性。
(3)便于裁剪和擴(kuò)展,對(duì)于面向不同應(yīng)用的嵌入式系統(tǒng)應(yīng)當(dāng)根據(jù)特點(diǎn)對(duì)協(xié)議進(jìn)行簡(jiǎn)化或擴(kuò)展,整個(gè)協(xié)議棧在滿足功能需求的前提下盡可能精簡(jiǎn)。
TCP/IP協(xié)議棧具有層次特性,各個(gè)協(xié)議都有自己的數(shù)據(jù)格式,每次發(fā)送數(shù)據(jù)都要進(jìn)行上下層協(xié)議的數(shù)據(jù)交換,進(jìn)行打包和拆包的過(guò)程,在這個(gè)過(guò)程中如果采用數(shù)據(jù)拷貝的策略進(jìn)行數(shù)據(jù)傳遞則會(huì)大大增加系統(tǒng)開(kāi)銷。在嵌入式系統(tǒng)中,往往無(wú)法建立起數(shù)據(jù)傳遞的緩沖區(qū),需要采用“零拷貝”技術(shù)用傳遞數(shù)據(jù)指針的方法來(lái)解決各層協(xié)議間的數(shù)據(jù)傳遞,以提高系統(tǒng)的實(shí)時(shí)性能。
2.2 TCP/IP協(xié)議的精簡(jiǎn)
TCP/IP是幾百種網(wǎng)絡(luò)協(xié)議的集合。通用計(jì)算機(jī)系統(tǒng)有足夠的資源支持通信協(xié)議在內(nèi)核實(shí)現(xiàn),因此完整的TCP/IP協(xié)議棧(如圖1)能夠在數(shù)據(jù)傳輸?shù)目煽啃院蛿?shù)據(jù)流量的控制上做很多工作。
但是對(duì)于嵌入式系統(tǒng)來(lái)說(shuō),其硬件資源十分有限,同時(shí)對(duì)協(xié)議的要求也相對(duì)較低,必須對(duì)通用的TCP/IP協(xié)議進(jìn)行精簡(jiǎn)。進(jìn)行精簡(jiǎn)的途徑有兩種:
(1)將無(wú)關(guān)于系統(tǒng)功能的協(xié)議削減掉。即保留必需的協(xié)議,而對(duì)其它無(wú)關(guān)協(xié)議進(jìn)行裁剪。
(2)對(duì)單獨(dú)的協(xié)議進(jìn)行簡(jiǎn)化。例如完整的ARP協(xié)議支持以太網(wǎng)、令牌環(huán)等網(wǎng)絡(luò),但是嵌入式系統(tǒng)可能是面向于某一具體類型網(wǎng)絡(luò)的,對(duì)于其他的部分就可以簡(jiǎn)化掉。
圖1
簡(jiǎn)化后的協(xié)議仍然需要符合規(guī)定的標(biāo)準(zhǔn):在網(wǎng)絡(luò)接口層,系統(tǒng)需實(shí)現(xiàn)ARP應(yīng)答協(xié)議,該協(xié)議用于將IP地址映射成以太網(wǎng)MAC地址;在網(wǎng)際層,需要實(shí)現(xiàn)IP協(xié)議,主要負(fù)責(zé)IP報(bào)文報(bào)頭的正確性,并且對(duì)TCP和ICMP報(bào)文實(shí)行分流,此外,為了能夠測(cè)試系統(tǒng)與網(wǎng)絡(luò)的連接,在網(wǎng)際層還需要實(shí)現(xiàn)ICMP協(xié)議中的Ping應(yīng)答協(xié)議,主要用于檢查網(wǎng)絡(luò)在傳輸層是否連通。作為運(yùn)輸層的主要協(xié)議,TCP和UDP協(xié)議一般都不能缺少,對(duì)于具體的應(yīng)用,一般都至少要實(shí)現(xiàn)其中之一。HTTP、FTP等應(yīng)用層協(xié)議一般無(wú)需實(shí)現(xiàn)。這樣簡(jiǎn)化后,就可以得到圖2所示的嵌入式TCP/IP協(xié)議棧的結(jié)構(gòu):
圖2 嵌入式TCP/IP協(xié)議棧結(jié)構(gòu)
3 各協(xié)議的具體實(shí)現(xiàn)
本文實(shí)現(xiàn)的嵌入式TCP/IP協(xié)議運(yùn)行于以89C51單片機(jī)和RTL8019AS網(wǎng)絡(luò)控制器為核心元件的硬件平臺(tái)上,協(xié)議代碼在Keil C51 V7.0環(huán)境下編寫。在程序的initial文件中提供了相關(guān)函數(shù)對(duì)89C51和RTL8019AS進(jìn)行了初始參數(shù)設(shè)置,限于文章篇幅,與具體硬件相關(guān)的問(wèn)題不再作詳細(xì)說(shuō)明。
3.1 ARP協(xié)議的實(shí)現(xiàn)
ARP協(xié)議不攜帶用戶的有效數(shù)據(jù),報(bào)頭長(zhǎng)度為28字節(jié)。在ARP報(bào)頭中操作碼域表明了ARP包是ARP請(qǐng)求還是ARP回答,其值為1時(shí)為請(qǐng)求,為2時(shí)為應(yīng)答。目標(biāo)以太地址為目標(biāo)節(jié)點(diǎn)IP對(duì)應(yīng)的MAC地址,解析前是未知的。發(fā)送ARP請(qǐng)求應(yīng)使用廣播方式,網(wǎng)段內(nèi)的各個(gè)主機(jī)收到后檢查包內(nèi)的IP地址,如果和本機(jī)的IP地址一樣則使用單播的方式返回ARP應(yīng)答,在應(yīng)答ARP包中源以太地址的域中填入自己的MAC地址。在具體設(shè)計(jì)時(shí),要考慮到系統(tǒng)解析地址的實(shí)時(shí)性,如果每次互聯(lián)都要進(jìn)行地址解析,則系統(tǒng)的實(shí)時(shí)性要下降,一般的做法是建立一個(gè)ARP地址映射表,存放常用IP地址與MAC地址的映射,這樣在解析地址時(shí)首先遍歷該表,如果目標(biāo)地址已經(jīng)被解析過(guò)則可以省去解析過(guò)程了。解析過(guò)程中還需要為ARP緩存中每個(gè)新生成條目賦予一個(gè)初始生存時(shí)間,使用定時(shí)器中斷,經(jīng)過(guò)某一時(shí)間間隔對(duì)所有條目進(jìn)行刷新檢測(cè),若發(fā)現(xiàn)有條目發(fā)生超時(shí),將其從ARP緩存中刪除。ARP緩存條目結(jié)構(gòu)設(shè)計(jì)如下:
typedef struct
{unsigned long ip_addr; //IP地址
unsigned char macaddr[6]; //MAC地址
unsigned char timer; //定時(shí)器}
ARP_CACHE; //ARP緩存條目結(jié)構(gòu)
3.2 IP協(xié)議及Ping 應(yīng)答的實(shí)現(xiàn)
IP協(xié)議是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP包都以IP數(shù)據(jù)報(bào)格式傳輸。IP報(bào)頭的標(biāo)準(zhǔn)長(zhǎng)度為20字節(jié)。在具體項(xiàng)目中由于數(shù)據(jù)量比較小,可以不考慮數(shù)據(jù)報(bào)分段的問(wèn)題,即不允許數(shù)據(jù)報(bào)超出IP包的有效載荷。標(biāo)準(zhǔn)以太網(wǎng)幀數(shù)據(jù)域?yàn)?500字節(jié),除去IP頭之外還有1480字節(jié)可以為上層協(xié)議提供有效的數(shù)據(jù)載荷,應(yīng)該能夠滿足數(shù)據(jù)傳送的要求。這樣簡(jiǎn)化可以省去軟件處理IP數(shù)據(jù)分段和重組的開(kāi)銷,可以提高系統(tǒng)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。IP協(xié)議對(duì)上一層傳下來(lái)的報(bào)文加上IP首部和IP校驗(yàn)和并發(fā)往下一層,同時(shí)還要對(duì)下一層傳上來(lái)的報(bào)文進(jìn)行校驗(yàn)和檢查,將校驗(yàn)正確的去掉IP首部,送往上一層。
為了便于測(cè)試,需要實(shí)現(xiàn)PING程序,在收到ICMP的回顯請(qǐng)求包后按照格式組裝一個(gè)ICMP的回顯應(yīng)答包并發(fā)送。相關(guān)的主要函數(shù)有:
void ping_request() //PING請(qǐng)求
void ping_answer() //PING應(yīng)答
void ping_echo() //PING應(yīng)答收到后回顯
3.3 UDP協(xié)議的實(shí)現(xiàn)
UDP際上是直接利用IP協(xié)議進(jìn)行數(shù)據(jù)報(bào)的傳輸,也就是將報(bào)文包含在IP數(shù)據(jù)包中 。UDP的數(shù)據(jù)傳輸是無(wú)連接,不可靠的,因?yàn)樗幌馮CP那樣,為了達(dá)到目標(biāo),首先要在兩點(diǎn)之間建立一個(gè)可靠的連接,因此UDP協(xié)議無(wú)法保證數(shù)據(jù)可靠性。但UDP協(xié)議具有對(duì)網(wǎng)絡(luò)資源開(kāi)銷較小,數(shù)據(jù)處理速度快的優(yōu)點(diǎn),UDP協(xié)議屬于簡(jiǎn)單的端到端的數(shù)據(jù)傳輸協(xié)議,其報(bào)頭只有8字節(jié),其中源端口表示UDP應(yīng)用進(jìn)程的端口號(hào),除了0~1023預(yù)定的端口外,其余的都可以使用。具體實(shí)現(xiàn)時(shí)要完成對(duì)應(yīng)用層傳下來(lái)的數(shù)據(jù)包,加上UDP首部和UDP校驗(yàn)和,發(fā)往下一層。以及對(duì)下一層傳上來(lái)的數(shù)據(jù)包,進(jìn)行校驗(yàn)和檢查,若正確去掉UDP首部,提出數(shù)據(jù)送給應(yīng)用層。需注意的是,要產(chǎn)生一個(gè)偽首部用于UDP數(shù)據(jù)檢驗(yàn)和計(jì)算,涉及到的主要函數(shù)有:
unsigned char verifyudpcrc(union netcard xdata *pRxdnet) //對(duì)ucp頭進(jìn)行校驗(yàn),錯(cuò)誤返回0
void udp_send(union netcard xdata *pTxdnet, unsigned char xdata * psource, unsigned int len) //UDP包發(fā)送處理
void udp_recieve(union netcard xdata *pRxdnet)UDP包接收處理
3.4 TCP協(xié)議的實(shí)現(xiàn)
TCP協(xié)議是面向連接的、端對(duì)端的可靠通信協(xié)議,可分以下幾個(gè)步驟實(shí)現(xiàn):
(1)建立連接。這一過(guò)程就是我們常說(shuō)的三次握手過(guò)程。
(2)驗(yàn)證。采取相應(yīng)的措施消除傳輸中的錯(cuò)誤,保障傳輸?shù)目煽啃?,利用序列?hào)解決通信時(shí)重復(fù)和失序的問(wèn)題。
(3)流量控制。設(shè)置發(fā)送和接收窗口。
TCP協(xié)議的功能是為應(yīng)用層協(xié)議提供可靠的面向連接的數(shù)據(jù)傳輸服務(wù),是嵌入式應(yīng)用系統(tǒng)協(xié)議棧中最為復(fù)雜的協(xié)議。在TCP協(xié)議實(shí)現(xiàn)中,由于請(qǐng)求發(fā)起端(客戶端)與請(qǐng)求相應(yīng)端(服務(wù)器端)在通信中所處地位不同,相應(yīng)地兩者的中間演變狀態(tài)也不完全相同??蛻舳伺c服務(wù)器端在一個(gè)TCP連接從正常建立到正常中止分別經(jīng)歷5個(gè)和6個(gè)狀態(tài),相應(yīng)控制信息均在TCP頭部信息的6位控制標(biāo)記位中得以表示。對(duì)于嵌入式系統(tǒng)中TCP協(xié)議的實(shí)現(xiàn),應(yīng)從嵌入式應(yīng)用的角度出發(fā),盡可能減少冗余狀態(tài)。程序中需要構(gòu)造一個(gè)TCP_STATUS結(jié)構(gòu)來(lái)記錄每一個(gè)TCP連接的狀態(tài)信息,其結(jié)構(gòu)如下:
typedef struct
{unsigned long ip_addr; //源IP 地址
unsigned int port; //端口號(hào)
unsigned long remo_sequ; //對(duì)方序列號(hào)
unsigned long local_sequ; //本方序列號(hào)
unsigned long old_sequ; //上一次序列號(hào)
unsigned long remo_ack; //對(duì)方應(yīng)答號(hào)
unsigned char timer; //超時(shí)用定時(shí)器
unsigned char quiet; //連接活動(dòng)性
unsigned char state; //當(dāng)前狀態(tài)
}TCP_STATUS; //連接狀態(tài)結(jié)構(gòu)
4 結(jié)束語(yǔ)
嵌入式系統(tǒng)的應(yīng)用非常廣泛,解決嵌入式系統(tǒng)的網(wǎng)絡(luò)接入問(wèn)題具有十分重要的意義。本文實(shí)現(xiàn)的精簡(jiǎn)TCP/IP協(xié)議棧在具體應(yīng)用中有良好表現(xiàn),可以滿足正常的數(shù)據(jù)傳輸。由于設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中將應(yīng)用層協(xié)議全部精簡(jiǎn),協(xié)議在運(yùn)行過(guò)程中的流量控制能力及協(xié)議自身的安全性都有所下降,在對(duì)安全性和穩(wěn)定性要求較高的應(yīng)用場(chǎng)合(如軍事、金融等領(lǐng)域),需要對(duì)協(xié)議的簡(jiǎn)化有所斟酌。
參考文獻(xiàn):
[1]羅蕾. 嵌入式實(shí)時(shí)操作系統(tǒng)及應(yīng)用開(kāi)發(fā)[M]. 北京:北京航空航天大學(xué)出版社. 2005.
[2]徐愛(ài)鈞,彭秀華. Keil Cx51 V7.0單片機(jī)高級(jí)語(yǔ)言編程與μVision2應(yīng)用實(shí)踐[M]. 北京:電子工業(yè)出版社,2004.
[3]程耕國(guó),高厚禮. 基于TCP/IP協(xié)議單片機(jī)上網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 武漢科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,(2).
[4]田夏利,汪繼軍,薛勝軍. 嵌入式Internet中UDP協(xié)議的實(shí)現(xiàn)[J]. 計(jì)算機(jī)與數(shù)字工程,2006,(2).
篇6
【關(guān)鍵詞】計(jì)算機(jī)多線程 協(xié)議還原 方法概述
1 協(xié)議并行處理方法
1.1 數(shù)據(jù)包級(jí)別并行方法
在協(xié)議棧并行處理方法中,數(shù)據(jù)包級(jí)別并行方法是一種并行度最高的處理方法。對(duì)于不同的數(shù)據(jù)包都會(huì)按照對(duì)應(yīng)的處理器進(jìn)行系列處理,達(dá)到同時(shí)處理多個(gè)數(shù)據(jù)包或者是歸屬于同一個(gè)鏈接的數(shù)據(jù)包。因巨大的吞吐性能以及不存在負(fù)載均衡的優(yōu)勢(shì)得到了廣泛運(yùn)用。雖然其具有高度的并發(fā)性,但是在面對(duì)帶有上下文信息或狀態(tài)的協(xié)議來(lái)說(shuō),例如TCP,可以獲得的性能提升空間受到了很大的約束。
1.2 函數(shù)級(jí)別并行方法
函數(shù)級(jí)別并行方法主要運(yùn)用于早期的協(xié)議并行處理中。早期協(xié)議是將鏈路控制數(shù)據(jù)和傳送數(shù)據(jù)置于同一個(gè)數(shù)據(jù)包中,這就意味著協(xié)議并行處理的函數(shù)必須要同時(shí)處理鏈路控制數(shù)據(jù)外加上傳送數(shù)據(jù),從而出現(xiàn)的一個(gè)問(wèn)題就是協(xié)議處理函數(shù)單元之間務(wù)必會(huì)存在大量的上下文相關(guān)結(jié)果。
1.3 協(xié)議棧層次間并行方法
協(xié)議棧層次間并行方法主要運(yùn)用于目前網(wǎng)絡(luò)協(xié)議的層次結(jié)構(gòu)中。在早期設(shè)計(jì)相關(guān)網(wǎng)絡(luò)協(xié)議時(shí),為了大幅度的降低協(xié)議實(shí)現(xiàn)難度而將每個(gè)層次協(xié)議設(shè)計(jì)成為了相對(duì)獨(dú)立的部分,從而完成獨(dú)立層間之間的并行處理。但是就目前實(shí)際情況來(lái)看,這種方法雖然有許多的優(yōu)勢(shì),但是性能受到了層次結(jié)構(gòu)中吞吐量最低層次結(jié)構(gòu)的限制,所以目前需要對(duì)協(xié)議棧中的每一個(gè)層次進(jìn)行研究,優(yōu)化吞吐量最低的層次結(jié)構(gòu)。
2 基于連接性多線程TCP/IP協(xié)議并行處理方法概述
2.1 TCP/IP協(xié)議棧多線程并行化存在的問(wèn)題
TCP/IP協(xié)議棧多線程并行化存在的問(wèn)題主要存在于臨界鎖以及處理器之間的負(fù)載均衡情況上。考慮到臨街鎖解決共享沖突的代價(jià)極大問(wèn)題,多線程并發(fā)程序雖然可以解決部分問(wèn)題,但是又帶來(lái)了諸如臨界區(qū)碰撞、內(nèi)核陷入等等問(wèn)題,影響程序的運(yùn)行效率。因此,對(duì)于多線程并行的TCP/IP協(xié)議而言,消除臨界鎖問(wèn)題是至關(guān)重要的。對(duì)于處理器之間的負(fù)載均衡情況,需要考慮的就是協(xié)調(diào)好處理器之間的負(fù)載均衡問(wèn)題。
2.2 多線程TCP/IP協(xié)議棧的結(jié)構(gòu)
本文所要分析的多線程TCP/IP協(xié)議棧結(jié)構(gòu)主要還是共享內(nèi)存多處理器平臺(tái)運(yùn)行下的多線程TCP/IP協(xié)議棧結(jié)構(gòu),其基本的特點(diǎn)就是當(dāng)共享內(nèi)存對(duì)處理器平臺(tái)上的處理器數(shù)量增加時(shí),其結(jié)構(gòu)的性能也隨之增加。多線程TCP/IP協(xié)議棧結(jié)構(gòu)如圖1所示。
2.3 處理器均衡措施
處理器均衡措施具體可以細(xì)化分為兩個(gè)步驟。第一個(gè)步驟就是對(duì)IP數(shù)據(jù)包中的三元組即源地址、目的地址以及協(xié)議標(biāo)識(shí),按照一定的標(biāo)準(zhǔn)進(jìn)行分發(fā)。僅僅采取第一步不能夠?qū)μ幚砥鬟M(jìn)行深度的處理,需要借助于第二個(gè)步驟。第二個(gè)步驟包括設(shè)置協(xié)議棧、促進(jìn)操作系統(tǒng)借助于任務(wù)調(diào)度完成負(fù)載均衡的操作。后者的時(shí)間點(diǎn)在于運(yùn)行線程數(shù)不小于硬件平臺(tái)的處理器數(shù)量。按照上述順序,可以達(dá)到處理器負(fù)載均衡的目的。
3 實(shí)驗(yàn)方案結(jié)果
從本文的實(shí)驗(yàn)方案測(cè)試結(jié)果中可以看出,首先單線程下的程序只能夠通過(guò)串來(lái)執(zhí)行,從而不能夠發(fā)揮出處理器的實(shí)際性能。其次,在處理器的數(shù)量和線程數(shù)量對(duì)等的情況之下,也不能夠發(fā)揮出系統(tǒng)硬件的全部性能。最后,在處理器數(shù)量小于協(xié)議棧線程數(shù)量的時(shí)點(diǎn),通過(guò)適當(dāng)?shù)脑黾泳€程數(shù)量,可以在很大程度上提高整個(gè)系統(tǒng)的吞吐量。另外,對(duì)于內(nèi)存分配方式對(duì)系統(tǒng)性能的影響上,結(jié)合實(shí)踐經(jīng)驗(yàn)以及實(shí)驗(yàn)方案結(jié)構(gòu)可以發(fā)現(xiàn),相比PtMalloc以及SmartBits而言,F(xiàn)ixMalloc可以降低動(dòng)態(tài)內(nèi)存分配過(guò)程中出現(xiàn)的處理器消耗,降低的幅度值大概在8.12%上下。
4 結(jié)束語(yǔ)
由于現(xiàn)代處理器性能和網(wǎng)絡(luò)傳輸能力發(fā)展之間存在的很大的不平衡,從而推進(jìn)了多處理器的發(fā)展。本文從網(wǎng)絡(luò)協(xié)議還原技術(shù)出發(fā),提出了一整套的多線程并行的TCP/IP協(xié)議的相關(guān)還原方案。此外,在通用性的多處理器計(jì)算平臺(tái)的實(shí)際操作過(guò)程中發(fā)現(xiàn),雖然計(jì)算機(jī)多線程TCP/IP協(xié)議還原技術(shù)可以很好的保障當(dāng)下處理器平臺(tái)性能的發(fā)揮,但是對(duì)于進(jìn)一步提升網(wǎng)絡(luò)入侵監(jiān)測(cè)系統(tǒng)協(xié)議還原能力以及挖掘高性能處理器平臺(tái),以此來(lái)協(xié)調(diào)處理器性能和網(wǎng)絡(luò)傳輸能力發(fā)展不平衡的矛盾,將是下一階段研究和探究的重點(diǎn)內(nèi)容。
參考文獻(xiàn)
[1]Bjorkman M,Gunningberg P Performance Modeling of Multiprocessor Implementations of Protocols[J],2009,11(03):142-145.
[2]田偉,顧韻華,丁妮.網(wǎng)絡(luò)行為監(jiān)測(cè)與還原系統(tǒng)及關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,29(02):111-113.
[3]譚敏生,湯亮.基于HTIP的網(wǎng)絡(luò)數(shù)據(jù)包還原技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,17(06):14-16.
篇7
關(guān)鍵詞:TCP/IP 溫度監(jiān)測(cè) Arduino LabView
中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2015)09-0000-00
現(xiàn)場(chǎng)總線系統(tǒng)是一種傳統(tǒng)的雙向數(shù)字的通信標(biāo)準(zhǔn),廣泛應(yīng)用于自動(dòng)控制領(lǐng)域和生產(chǎn)過(guò)程中,但是由于現(xiàn)場(chǎng)總線的種類繁多,且各標(biāo)準(zhǔn)間的相互兼容性不強(qiáng),加上各廠商和標(biāo)準(zhǔn)制訂組織之間存在利益競(jìng)爭(zhēng),各種現(xiàn)場(chǎng)總線技術(shù)無(wú)法實(shí)現(xiàn)無(wú)縫連接,也無(wú)法將生產(chǎn)現(xiàn)場(chǎng)的監(jiān)控?cái)?shù)據(jù)共享給企業(yè)的信息管理系統(tǒng),而將以太網(wǎng)技術(shù)引入到工業(yè)控制領(lǐng)域,將監(jiān)控?cái)?shù)據(jù)進(jìn)行標(biāo)準(zhǔn)的TCP/IP封裝,將能很好的解決不同生產(chǎn)設(shè)備間的高速連接問(wèn)題和設(shè)備的“自動(dòng)化孤島”問(wèn)題,最終將生產(chǎn)自動(dòng)化和辦公自動(dòng)化無(wú)縫對(duì)接,實(shí)現(xiàn)“一網(wǎng)到底”[1]。工業(yè)以太網(wǎng)是指在工業(yè)環(huán)境的自動(dòng)化控制及過(guò)程控制中應(yīng)用的相關(guān)組件及技術(shù),工業(yè)以太網(wǎng)多采用TCP/IP協(xié)議,和IEEE802.3標(biāo)準(zhǔn)兼容。溫度是生產(chǎn)過(guò)程中重要的物理參數(shù)之一,在工業(yè)生產(chǎn)過(guò)程中經(jīng)常要用到溫度的檢測(cè)及控制,本文對(duì)基于TCP/IP網(wǎng)絡(luò)的遠(yuǎn)程溫度檢測(cè)系統(tǒng)進(jìn)行了設(shè)計(jì),給出了基于TCP/IP以太網(wǎng)的遠(yuǎn)程溫度監(jiān)測(cè)方案。
1 系統(tǒng)結(jié)構(gòu)
1.1系統(tǒng)物理結(jié)構(gòu)
使用標(biāo)準(zhǔn)的TCP/IP協(xié)議實(shí)現(xiàn)現(xiàn)場(chǎng)層與監(jiān)控層的數(shù)據(jù)傳輸,其中現(xiàn)場(chǎng)層通過(guò)連接廠內(nèi)的傳感器,實(shí)時(shí)獲取各種信息通過(guò)以太網(wǎng)絡(luò)傳送至監(jiān)控層,這一層主要由低功耗運(yùn)行穩(wěn)定的嵌入式實(shí)現(xiàn);監(jiān)控層主要是通過(guò)以太網(wǎng)絡(luò)連接廠內(nèi)的現(xiàn)場(chǎng)層的各個(gè)數(shù)據(jù)采集點(diǎn),將這些信息數(shù)據(jù)備份,存儲(chǔ)至監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù),并在溫度超過(guò)警示值時(shí)發(fā)出警報(bào)。本系統(tǒng)完成了下位機(jī)數(shù)據(jù)采集與上位機(jī)數(shù)據(jù)監(jiān)測(cè)的功能,物理結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)物理結(jié)構(gòu)圖
1.2 系統(tǒng)邏輯結(jié)構(gòu)
本系統(tǒng)的溫度信息由數(shù)據(jù)采集結(jié)點(diǎn)通過(guò)以太網(wǎng)發(fā)送到監(jiān)控層計(jì)算機(jī),并將歷史數(shù)據(jù)存儲(chǔ)致數(shù)據(jù)庫(kù)服務(wù)器,企業(yè)的辦公網(wǎng)絡(luò)和外網(wǎng)用戶可通核心路由器訪問(wèn)數(shù)據(jù)庫(kù),系統(tǒng)的數(shù)據(jù)在各層中的流向如圖2所示。
圖2 系統(tǒng)邏輯結(jié)構(gòu)
2 數(shù)據(jù)采集與發(fā)送端
2.1數(shù)字溫度采集點(diǎn)設(shè)計(jì)
K型熱電偶可以測(cè)量固體介質(zhì)和汽液體蒸氣的表面溫度,其測(cè)量范從0℃到1300℃[2]。具有很高的靈敏度和很好的穩(wěn)定性,非線性誤差小,熱電動(dòng)勢(shì)較大,對(duì)于復(fù)雜環(huán)境下的工業(yè)環(huán)境有很好的適應(yīng)性等優(yōu)點(diǎn),因此,在工業(yè)監(jiān)控領(lǐng)域得到廣泛的使用。但是,由于其輸出熱電勢(shì)與冷端溫度相關(guān),輸出的數(shù)據(jù)為模擬量,且與被測(cè)量端的溫度有關(guān),因此需要進(jìn)行溫度補(bǔ)償和模數(shù)轉(zhuǎn)換。如果采用軟件補(bǔ)償?shù)姆椒?,一方面?huì)增加程序編制及調(diào)試電路的難度,另一方面,軟件補(bǔ)償會(huì)占用一定的數(shù)字結(jié)點(diǎn)的計(jì)算資源,而以太網(wǎng)使用了CSMA/CD,會(huì)產(chǎn)生數(shù)據(jù)傳送過(guò)程中的不確定性,影響精度。所以,本系統(tǒng)采用了使用硬件進(jìn)行溫度補(bǔ)償?shù)姆桨?,采用MAX6675串行模數(shù)轉(zhuǎn)換器對(duì)采集的數(shù)據(jù)進(jìn)行處理,在進(jìn)行溫度補(bǔ)償?shù)耐瑫r(shí),也提供了信號(hào)量為12位分辨率的模數(shù)轉(zhuǎn)換,加強(qiáng)了與控制器數(shù)據(jù)通信的兼容性[3]。
嵌入式控制器采用Arduino開(kāi)源硬件平臺(tái),它使用AtmelAVR單片機(jī)為核心處理器,采用基于開(kāi)放源代碼的軟硬件平臺(tái),由于其功耗低、穩(wěn)定性強(qiáng)、開(kāi)發(fā)周期短等特點(diǎn),目前被廣泛應(yīng)用于各個(gè)領(lǐng)域,越來(lái)越多的工程師選用Arduino平臺(tái)進(jìn)行項(xiàng)目開(kāi)發(fā),截止到現(xiàn)在,Arduino開(kāi)發(fā)團(tuán)隊(duì)已開(kāi)發(fā)出多種控制器??紤]到系統(tǒng)部署后期可能有更多數(shù)據(jù)采集點(diǎn)的加入,本系統(tǒng)選用的是以Atmega2560核心的ArduinoMega2560控制板(以下簡(jiǎn)稱Mega2560),相對(duì)于普通的Arduino Uno,Meg2560可用的數(shù)字輸入輸出口多達(dá)到54個(gè),插接傳感器擴(kuò)展模塊后的數(shù)字I/O可以達(dá)到100多個(gè),給系統(tǒng)的升級(jí)與擴(kuò)展帶來(lái)極大的便利。
硬件連線如圖3所示,將K型熱電偶連接至MAX6675的接線座上,確保正負(fù)兩極連接無(wú)誤。分別將MAX6675對(duì)應(yīng)用的電源、地線、SO、CS、SCK端連接至控制器 Mega256上的5V、GNU、數(shù)字口5、6、7。
圖3 控制器與MAX675連線圖
2.2以太網(wǎng)通信模塊
由于Mega2560無(wú)法直接連接到以太網(wǎng)絡(luò),需要采用包含以太網(wǎng)的Ethernet模塊來(lái)實(shí)現(xiàn),本文選用的是集成WIZnetW5100網(wǎng)絡(luò)芯片的擴(kuò)展模塊。W5100 是一款高集成度的網(wǎng)絡(luò)通信芯片,全硬件實(shí)現(xiàn)標(biāo)準(zhǔn)的TCP/IP 協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),具備了高穩(wěn)定、高性能和低功耗的特點(diǎn),其數(shù)據(jù)傳輸速率最高可達(dá)100Mbps,由于TCP/IP協(xié)議均在商用與民用領(lǐng)域經(jīng)過(guò)了多年的應(yīng)用和長(zhǎng)足的發(fā)展,相關(guān)技術(shù)已經(jīng)十分成熟,資源豐富,極大的縮短了上位機(jī)與下位機(jī)程序的開(kāi)發(fā)周期。
根據(jù)Mega2560的接口特點(diǎn),本系統(tǒng)采了采用SPI總線方式與嵌入式控制器進(jìn)行通信,與Ethernet模塊連接如圖4所示,其接口功能描述為SS:使能信號(hào);SCLK:時(shí)鐘信號(hào);MOSI:數(shù)據(jù)發(fā)送;MISO:數(shù)據(jù)接收。
圖4 SPI總線連接圖
由于Arduino系列的控制器均采用了相互兼容的可堆疊的標(biāo)準(zhǔn)化設(shè)計(jì),Ethernet可以直接插接到Mega2560上不作任何配置,即可進(jìn)行通信。W5100 內(nèi)部用于數(shù)據(jù)傳輸?shù)木彌_存儲(chǔ)器容量有 16KB,完全能夠滿足溫度監(jiān)控?cái)?shù)據(jù)的本地緩存,使用W5100不需要考慮以太網(wǎng)底層的控制,采用常規(guī)的網(wǎng)絡(luò)編程方法即可實(shí)現(xiàn)與W5100的以太網(wǎng)通信。通過(guò)Mega256引腳圖(圖5)[3]可知,插接了Ethernet模塊后,SPI總線會(huì)占用Mega2560控制器的50~53號(hào)引腳,因此在使用的時(shí)候要注意避開(kāi)。
圖5 Arduino Mega2560引腳圖
3 軟件設(shè)計(jì)
3.1 溫度采集點(diǎn)軟件設(shè)計(jì)
在以太網(wǎng)傳輸中,常用的傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)均可以完成下位機(jī)到上位機(jī)的數(shù)據(jù)傳輸,但TCP是基于連接的可靠傳輸協(xié)議,能進(jìn)行錯(cuò)誤監(jiān)測(cè),鑒于工業(yè)現(xiàn)場(chǎng)對(duì)于數(shù)據(jù)可靠性的要求,所以本文的軟件設(shè)計(jì)中并未采用傳輸性能較高的UDP協(xié)議。因?yàn)?,在辦公網(wǎng)絡(luò)中一個(gè)數(shù)據(jù)包的丟失可能是無(wú)關(guān)緊要的,但在工業(yè)現(xiàn)場(chǎng)監(jiān)控中,帶來(lái)的影響可能是巨大的。在Arduino標(biāo)準(zhǔn)庫(kù)中包含了Ethernet和SPI通信所需要的類與函數(shù),在編寫程序的時(shí)候需要包含Ethernet.h、SPI.h和MAX6675.h這三個(gè)頭文件。下面是Arduino控制器的程序代碼。
#include “MAX6675.h”
#include “Ethernet.h”
#include “SPI.h”
MAX6675 mySenor(5,6,7); //定義MAX6675類型的傳感器對(duì)象mySenor
EthernetServer server(8000); //創(chuàng)建一個(gè)服務(wù)器對(duì)象,并設(shè)置網(wǎng)絡(luò)傳送端口為8000
Byte mac[]={0XDE,0XAD,0XBE,0XEF,0XEF,0XFE,0XED};//設(shè)置Ethernet模塊MAC地址
IPAdress ip{192.168.1.110}; //設(shè)置Ethernet模塊IP地址
void setup(){ //初始化各功能模塊
Serial.begin(9600); //設(shè)置串口波特率
mySenor.setOffset(0);
Ethernet.begin(mac,ip);
Server.begin();
}
void loop() //控制器循環(huán)操作
{
float sendData=0;
sendData=mySenor.getCelsius(); //從傳感器對(duì)象讀取溫度數(shù)據(jù)
server.print(sendData); //通過(guò)網(wǎng)絡(luò)發(fā)送數(shù)據(jù)
Serial.println(sendData); //向串口發(fā)送數(shù)據(jù),用于監(jiān)控調(diào)試
delay(500); //設(shè)置延時(shí)
}
3.2 監(jiān)控層軟件設(shè)計(jì)
在工業(yè)現(xiàn)場(chǎng)的溫度監(jiān)測(cè)中,不僅要完成實(shí)時(shí)溫度數(shù)據(jù)的監(jiān)測(cè)同時(shí)也需要將生成的歷史數(shù)據(jù)進(jìn)行分析,使用計(jì)算機(jī)豐富的計(jì)算資源以彌補(bǔ)嵌入式控制器的不足,使用虛擬儀器是一很好的選擇,虛擬儀器是將計(jì)算機(jī)和儀器技術(shù)接合的結(jié)晶[4],同樣也是測(cè)試技術(shù)和計(jì)算機(jī)深層次結(jié)合的產(chǎn)物,它具有數(shù)據(jù)采集與信號(hào)分析的功能,本文的監(jiān)控層軟件設(shè)計(jì)采用了美國(guó)國(guó)家儀器公司(NI)設(shè)計(jì)的LabVIEW平臺(tái),LabVIEW的系統(tǒng)的組成[2]如圖6所示。
圖6 LabVIEW系統(tǒng)組成
LabVIEW采用圖形化的G語(yǔ)言進(jìn)行編程,設(shè)置TCP連接地址為下位機(jī)的IP地址為192.168.110,通信端口為8000,超時(shí)設(shè)置為60000毫秒,通過(guò)波形控件提供歷史溫度顯示,溫度顯示控件顯示實(shí)時(shí)溫度,監(jiān)控層的上位機(jī)程序代碼如圖7所示。
圖7 上位機(jī)程序框圖
4 結(jié)語(yǔ)
經(jīng)測(cè)試,本系統(tǒng)能準(zhǔn)確的對(duì)工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)溫度進(jìn)行顯示和歷史數(shù)據(jù)的顯示,如圖8所示,可得知當(dāng)前溫度為200攝氏度,而在過(guò)去的500分鐘歷史記錄中發(fā)現(xiàn)系統(tǒng)出現(xiàn)了10次超過(guò)溫度警戒值800攝氏度的記錄。該設(shè)計(jì)充分利用了TCP/IP技術(shù)實(shí)現(xiàn)了對(duì)工業(yè)生產(chǎn)過(guò)程的監(jiān)控,進(jìn)一步提高了各項(xiàng)監(jiān)督工業(yè),有助于現(xiàn)場(chǎng)工程師及時(shí)采取應(yīng)急處理等業(yè)務(wù)操作,需要注意的是以太網(wǎng)技術(shù)帶來(lái)的高數(shù)據(jù)高實(shí)時(shí)的同時(shí),也產(chǎn)生了一些網(wǎng)絡(luò)安全問(wèn)題,對(duì)于這一問(wèn)題可通過(guò)網(wǎng)關(guān)采取包過(guò)濾的方法將內(nèi)部控制網(wǎng)絡(luò)與外部網(wǎng)絡(luò)系統(tǒng)分開(kāi)[5]。綜上所述,隨著以太網(wǎng)技術(shù)在工業(yè)現(xiàn)場(chǎng)中的逐步推廣和應(yīng)用,使生產(chǎn)現(xiàn)場(chǎng)數(shù)據(jù)與企業(yè)信息系統(tǒng)實(shí)現(xiàn)無(wú)縫對(duì)接,在即將到來(lái)的第四次工業(yè)革命中,全面實(shí)現(xiàn)“數(shù)字化工廠”這一宏偉目標(biāo)[6]。
圖8 LabVIEW程序運(yùn)行效果圖
參考文獻(xiàn)
[1]徐皚冬.工業(yè)以太網(wǎng)實(shí)時(shí)通信技術(shù)[J].信息與控制,2005,34(1):60-64.
[2]沈金鑫,Arduino與LabVIEW開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014:182―187.
[3]開(kāi)源硬件知識(shí)庫(kù)[OL].[2014-10-21]. http:///
[4]余成,謝東坡.網(wǎng)絡(luò)化測(cè)控技術(shù)與實(shí)現(xiàn)[M].北京:高等教育出版社,2009:194-198.
[5]孫德輝,史運(yùn)濤,李志軍,楊楊編,網(wǎng)絡(luò)化控制系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2008:124―134.
[6]陳積明.工業(yè)以太網(wǎng)的研究現(xiàn)狀及展望[J].化工自動(dòng)化入儀表,2001,28(6):1-4.
收稿日期:2015-08-08
篇8
關(guān)鍵詞:互聯(lián)網(wǎng);嵌入式系統(tǒng);協(xié)議棧;數(shù)據(jù);報(bào)文;擁塞
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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 引言
計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,已經(jīng)改變了人們的生產(chǎn)和生活方式。數(shù)字化信息家電的日益普及,使嵌入式系統(tǒng)連接到網(wǎng)絡(luò)成為了可能?;ヂ?lián)網(wǎng)采用的是無(wú)連接的端到端數(shù)據(jù)包交換,提供“盡力而為”服務(wù)模型的設(shè)計(jì)機(jī)制。這種機(jī)制的最大優(yōu)勢(shì)是設(shè)計(jì)簡(jiǎn)單,可擴(kuò)展性強(qiáng)。然而隨著互聯(lián)網(wǎng)用戶數(shù)量的膨脹,網(wǎng)絡(luò)的擁塞問(wèn)題也越來(lái)越嚴(yán)重。據(jù)統(tǒng)計(jì),互聯(lián)網(wǎng)上95%的數(shù)據(jù)流和90%的報(bào)文數(shù)使用的是TCP/IP協(xié)議,因此,嵌入式TCP/IP協(xié)議棧的擁塞控制機(jī)制對(duì)控制網(wǎng)絡(luò)擁塞更具有特別重要的意義。
2 嵌入式TCP/IP協(xié)議棧概述
TCP/IP協(xié)議是由很多協(xié)議組成的協(xié)議族[1]。嵌入式系統(tǒng)引入互聯(lián)網(wǎng)支持所需的主要協(xié)議為ARP、RARP、IP、ICMP和TCP協(xié)議。ARP和RARP協(xié)議提供網(wǎng)絡(luò)地址的解析;ICMP協(xié)議提供網(wǎng)絡(luò)診斷功能;TCP和IP協(xié)議提供網(wǎng)絡(luò)傳輸和網(wǎng)絡(luò)互聯(lián)[1-2]。在網(wǎng)絡(luò)接口層,系統(tǒng)需實(shí)現(xiàn)ARP應(yīng)答協(xié)議,該協(xié)議用于將IP地址映射成以太網(wǎng)MAC地址;在網(wǎng)際層,需要實(shí)現(xiàn)IP協(xié)議,主要負(fù)責(zé)IP報(bào)文報(bào)頭的正確性,并且對(duì)TCP和ICMP報(bào)文實(shí)行分流,此外,為了能夠測(cè)試系統(tǒng)與網(wǎng)絡(luò)的連接,在網(wǎng)際層還需要實(shí)現(xiàn)ICMP協(xié)議中的Ping應(yīng)答協(xié)議,主要用于檢查網(wǎng)絡(luò)在傳輸層是否連通。
2.1 TCP/IP協(xié)議棧處理流程
TCP/IP協(xié)議棧接收數(shù)據(jù)包的過(guò)程就是解析數(shù)據(jù)包的過(guò)程。首先當(dāng)一個(gè)數(shù)據(jù)幀到達(dá)時(shí),網(wǎng)絡(luò)接口控制程序?qū)⑵渥x入緩沖區(qū),檢查協(xié)議類型字段,如果值依次為0X0800,表示數(shù)據(jù)域內(nèi)為IP包;如果值依次為0X0806,表示數(shù)據(jù)域內(nèi)為ARP包[3]。由此以確定使用那種協(xié)議模塊來(lái)處理此分組。去掉以太網(wǎng)幀首部的數(shù)據(jù)包將被分配到IP緩存或者ARP緩存。接著,由IP協(xié)議處理模塊或ARP協(xié)議處理模塊繼續(xù)解析。在IP協(xié)議模塊處理數(shù)據(jù)包的過(guò)程,它要通過(guò)調(diào)用ARP協(xié)議獲得對(duì)方主機(jī)的物理地址。
2.2 嵌入式TCP/IP協(xié)議棧的特點(diǎn)
嵌入式系統(tǒng)一般都是為了滿足某一特定的需求,對(duì)網(wǎng)絡(luò)支持的要求相對(duì)比較低,不需使用完整的TCP/IP協(xié)議。嵌入式TCP/IP協(xié)議棧的特點(diǎn)如下:
1) 開(kāi)放的協(xié)議標(biāo)準(zhǔn),獨(dú)立于特定的計(jì)算機(jī)硬件、操作系統(tǒng)和網(wǎng)絡(luò)硬件,可以運(yùn)行在局域網(wǎng),廣域網(wǎng)和互聯(lián)網(wǎng)中。
2) 統(tǒng)一的網(wǎng)絡(luò)地址分配方案,使得整個(gè)TCP/IP設(shè)備在網(wǎng)中都具有唯一的地址;標(biāo)準(zhǔn)化的高層協(xié)議,可以提供多種可靠的用戶服務(wù)。
3) 代碼比較簡(jiǎn)潔,占用的存儲(chǔ)空間盡可能小,盡可能為應(yīng)用程序節(jié)省系統(tǒng)資源。
4) 便于裁剪和擴(kuò)展,對(duì)于面向不同應(yīng)用的嵌入式系統(tǒng)應(yīng)當(dāng)根據(jù)特點(diǎn)對(duì)協(xié)議進(jìn)行簡(jiǎn)化或擴(kuò)展。
TCP/IP協(xié)議棧具有層次特性,各個(gè)協(xié)議都有自己的數(shù)據(jù)格式,每次發(fā)送數(shù)據(jù)都要進(jìn)行上下層協(xié)議的數(shù)據(jù)交換,進(jìn)行打包和拆包的過(guò)程。在嵌入式系統(tǒng)中,往往無(wú)法建立數(shù)據(jù)傳遞的緩沖區(qū),需要采用“零拷貝”技術(shù)來(lái)解決各層協(xié)議間的數(shù)據(jù)傳遞,以提高系統(tǒng)的實(shí)時(shí)性能。網(wǎng)絡(luò)協(xié)議層次模型如圖1所示。
3 擁塞控制概述
描述擁塞現(xiàn)象有許多不同的度量,如傳輸延時(shí)、數(shù)據(jù)吞吐量、隊(duì)列長(zhǎng)度和網(wǎng)絡(luò)效率等,但是沒(méi)有哪個(gè)度量能在局部和全局意義上完全滿足擁塞評(píng)判要求,因此人們對(duì)擁塞控制并無(wú)嚴(yán)格定義,甚至對(duì)擁塞的定義都無(wú)法完全統(tǒng)一。
3.1 基本概念
定義1:若因?yàn)榫W(wǎng)絡(luò)負(fù)載增加而導(dǎo)致用戶的滿意度降低,用戶則認(rèn)為網(wǎng)絡(luò)發(fā)生擁塞。
形象地說(shuō),當(dāng)網(wǎng)絡(luò)中存在過(guò)多的報(bào)文時(shí),網(wǎng)絡(luò)的性能會(huì)下降,這種現(xiàn)象稱為擁塞[4,5]。擁塞導(dǎo)致的直接結(jié)果是分組丟失率提高,端到端時(shí)延加大,甚至整個(gè)系統(tǒng)發(fā)生崩潰。當(dāng)發(fā)生擁塞崩潰時(shí),微小的負(fù)載增量將使網(wǎng)絡(luò)的有效吞吐量急劇下降(如圖2所示)。
定義2:當(dāng)負(fù)載達(dá)到網(wǎng)絡(luò)容量時(shí),吞吐量開(kāi)始緩慢增長(zhǎng),而響應(yīng)時(shí)間急劇增加,這一點(diǎn)稱為膝點(diǎn)(Knee)。
定義3:如果負(fù)載繼續(xù)增加,路由器開(kāi)始丟包,當(dāng)負(fù)載超過(guò)一定量時(shí),吞吐量開(kāi)始急劇下降,這一點(diǎn)稱為崖點(diǎn)(Cliff)。
定義4:擁塞控制就是采用某種策略或機(jī)制,保持網(wǎng)絡(luò)工作在正常的狀態(tài)下,也就是使網(wǎng)絡(luò)經(jīng)常工作在崖點(diǎn)左側(cè)的區(qū)域內(nèi)。從而避免擁塞的發(fā)生或者對(duì)擁塞的發(fā)生做出反應(yīng)。擁塞控制的目標(biāo)就是使網(wǎng)絡(luò)在Knee附近工作。
3.2 產(chǎn)生擁塞的原因
網(wǎng)絡(luò)擁塞是“盡力而為”服務(wù)模型的一個(gè)固有屬性。用戶間無(wú)法相互協(xié)作共享資源,多個(gè)用戶對(duì)同一網(wǎng)絡(luò)資源提出請(qǐng)求時(shí),就可能發(fā)生擁塞。網(wǎng)絡(luò)擁塞產(chǎn)生的原因有很多,直接原因主要有三個(gè)方面:1) 存儲(chǔ)空間不足;2) 帶寬容量不足;3) 處理器間處理能力和速度不一致。
3.3 擁塞控制算法的設(shè)計(jì)目標(biāo)
由于擁塞控制算法性能的好壞會(huì)影響整個(gè)網(wǎng)絡(luò)系統(tǒng),因此在設(shè)計(jì)和評(píng)價(jià)算法時(shí),應(yīng)該站在整個(gè)系統(tǒng)的角度來(lái)考查。對(duì)于任何一種擁塞避免或控制方案,人們希望它能同時(shí)滿足以下幾點(diǎn)要求:高效性、公平性(魯棒性)、穩(wěn)定性、可擴(kuò)展性。
4 TCP擁塞控制機(jī)制
TCP協(xié)議[6]是目前Internet上使用最廣泛的一種傳輸層協(xié)議。TCP的主要目的是為了解決Internet的穩(wěn)定性、異質(zhì)性(接受端緩沖區(qū)大小,網(wǎng)絡(luò)帶寬及延遲等)、各流之間享用帶寬的公平性,使用效率及擁塞控制等問(wèn)題,從而為Internet提供可靠健壯的端到端通訊。TCP擁塞控制策略主要包括以下四個(gè)過(guò)程:
1) 慢啟動(dòng)階段[7]:保證了連接建立初期進(jìn)入網(wǎng)絡(luò)的突發(fā)數(shù)據(jù)的流量不會(huì)過(guò)大。
2) 擁塞避免階段:當(dāng)數(shù)據(jù)發(fā)送速率超過(guò)一定閾值時(shí),算法進(jìn)入此階段,而后發(fā)送速率緩慢線性增長(zhǎng),避免了網(wǎng)絡(luò)擁塞的發(fā)生。
3) 快速重傳階段[9]:當(dāng)網(wǎng)絡(luò)發(fā)生擁塞造成數(shù)據(jù)丟失或者重傳超時(shí)時(shí),用該策略重傳丟失的分組。
4) 快速恢復(fù)階段:把網(wǎng)絡(luò)從擁塞狀態(tài)中恢復(fù)出來(lái)。
4.1 TCP擁塞控制的主要參數(shù)
1) 擁塞窗口(cwnd):描述源端在擁塞控制情況下一次最多能發(fā)送的數(shù)據(jù)包數(shù)量。
2) 慢啟動(dòng)閾值(ssthresh):擁塞控制中慢啟動(dòng)階段和擁塞避免階段的分界點(diǎn)。初始值設(shè)為65535bytes或awnd的大小。
3) 回路響應(yīng)時(shí)間(RTT):一個(gè)TCP數(shù)據(jù)包從源端發(fā)送到接收端、源端收到接受端確認(rèn)的時(shí)間間隔。
4) 超時(shí)重傳計(jì)數(shù)器(RTO):描述數(shù)據(jù)包從發(fā)送到失效的時(shí)間間隔,是判斷數(shù)據(jù)包丟失與否、網(wǎng)絡(luò)是否擁塞的重要參數(shù)。通常設(shè)為2RTT和5RTT。
4.2 TCP擁塞控制算法
4.2.1 Reno算法
1990年Jacobson在Tahoe的基礎(chǔ)上提出了Reno算法。Tahoe算法是最早被提出來(lái)的TCP源算法,但至今仍然被大多數(shù)TCP實(shí)現(xiàn)所采用。Reno算法對(duì)Tahoe的改進(jìn)主要體現(xiàn)在兩個(gè)方面。第一,收到連續(xù)三個(gè)dupACK,算法不經(jīng)過(guò)慢啟動(dòng),而直接進(jìn)入擁塞避免階段。第二,增加了快速重傳/快速恢復(fù)(FR/FR)機(jī)制,具體過(guò)程為:
1) 收到三個(gè)dupACK進(jìn)入FR/FR。ssthresh=max(cwnd/2,2);
2) 重發(fā)去失的數(shù)據(jù)包;
3) 窗口膨脹。cwnd=ssthresh+ndupndup為收到的重復(fù)ACK數(shù);
4) 當(dāng)min(awnd,cwnd)足夠大時(shí),發(fā)送新的數(shù)據(jù)包;
5) 當(dāng)收到非重復(fù)的ACK時(shí),cwnd=ssthresh;
6) 轉(zhuǎn)入擁塞避免階段??梢?jiàn),Reno在收到三個(gè)dupACK后,就轉(zhuǎn)入FR/FR,而遇到超時(shí),Reno和Tahoe一樣進(jìn)入慢啟動(dòng)階段??蓮腞eno狀態(tài)轉(zhuǎn)換圖直觀地看到Reno的整個(gè)數(shù)據(jù)傳輸過(guò)程(如圖3所示)。
Reno目前被廣泛采用,以其算法的簡(jiǎn)單、有效和魯棒性成為TCP源算法的主流。
4.2.2 NewReno算法
NewReno算法對(duì)Reno算法的改進(jìn)是通過(guò)盡量避免Reno在快速恢復(fù)階段的許多重傳超時(shí),利用一個(gè)ACK來(lái)確定部分發(fā)送窗口,立即重傳余下的數(shù)據(jù)包,從而提高網(wǎng)絡(luò)性能。目前,在因特網(wǎng)中使用最廣泛的是NewReno算法。然而NewReno算法也存在著不足,它在高速遠(yuǎn)距離網(wǎng)絡(luò)中不能有效利用帶寬。
4.2.3 Sack算法
Sack算法也是對(duì)Reno算法的改進(jìn),當(dāng)檢測(cè)到擁塞后,不用重傳數(shù)據(jù)包丟失到檢測(cè)到丟失時(shí)發(fā)送的全部數(shù)據(jù)包,而是對(duì)這些數(shù)據(jù)包進(jìn)行有選擇的確認(rèn)和重傳,從而避免不必要的重傳,減少時(shí)延,提高網(wǎng)絡(luò)吞吐量。由于使用選擇重傳,所以在一個(gè)窗口中數(shù)據(jù)包多包丟失的情況下,Sack算法優(yōu)于NewReno算法。但是Sack算法的主要缺點(diǎn)是要修改接收端TCP。
5 IP擁塞控制機(jī)制
隨著Internet業(yè)務(wù)的迅猛發(fā)展,僅依靠單一的端到端的擁塞控制機(jī)制不可能有效地解決擁塞問(wèn)題,另外期望所有用戶在Internet應(yīng)用中都遵守這種端到端的擁塞控制也是不現(xiàn)實(shí)的,這要求網(wǎng)絡(luò)本身也必須參與對(duì)資源的管理與控制?;诖耍岢隽薎P擁塞控制機(jī)制。
5.1 IP擁塞控制算法
5.1.1 隨機(jī)及早檢測(cè)(RED)算法
RED(Random Early Detective)算法在路由器監(jiān)控隊(duì)列長(zhǎng)度,一旦發(fā)現(xiàn)擁塞迫近,就通知源端調(diào)整擁塞窗口。它也是通過(guò)丟包的方式使源端發(fā)現(xiàn)超時(shí)或重復(fù)應(yīng)答,隱式通知源端擁塞情況。RED算法包含兩部分:如何監(jiān)控隊(duì)列長(zhǎng)度和何時(shí)丟棄數(shù)據(jù)包。首先,RED使用類似TCP計(jì)算超時(shí)時(shí)使用的權(quán)值Weight來(lái)計(jì)算平均排隊(duì)長(zhǎng)度:Qe=(1-Weight)×Qe+Weight×SampleQe其中,0
5.1.2 顯示擁塞指示(ECN)算法
ECN(Explicit Congestion notification)算法在源端數(shù)據(jù)包中嵌入ECN,由路由器根據(jù)網(wǎng)絡(luò)情況設(shè)置CE(Congestion Experienced)比特位,源端從網(wǎng)絡(luò)中接收反饋回來(lái)的已被CE置位的數(shù)據(jù)包,再將隨后發(fā)出的數(shù)據(jù)包標(biāo)記為“可丟棄”的數(shù)據(jù)包。改進(jìn)算法NewECN可通過(guò)調(diào)整擁塞窗口cwnd大小,糾正了有長(zhǎng)時(shí)間RTT的TCP連接的偏差,改進(jìn)了共享瓶頸處帶寬的公平性。
5.1.3 加權(quán)公平排隊(duì)(WFQ)算法
WFQ(Weight Fair Queue)是公平排隊(duì)(FQ)算法的改進(jìn)算法。WFQ算法對(duì)每個(gè)流即每個(gè)排隊(duì)分配一個(gè)權(quán)值。這個(gè)權(quán)值決定了路由器每次轉(zhuǎn)發(fā)該隊(duì)列的比特?cái)?shù)量,從而控制數(shù)據(jù)流得到的帶寬。將所有權(quán)值看成1,那么FQ也是一種特殊的WFQ。權(quán)值的分配往往對(duì)應(yīng)不同優(yōu)先級(jí)的數(shù)據(jù)流,例如用IP包頭中TOS域指定流的優(yōu)先級(jí),排隊(duì)時(shí)再按優(yōu)先級(jí)分配權(quán)值??傊?,WFQ根據(jù)不同數(shù)據(jù)流應(yīng)用的不同帶寬要求,對(duì)每個(gè)排隊(duì)隊(duì)列采用加權(quán)方法分配緩存資源,從而增加了FQ對(duì)不同應(yīng)用的適應(yīng)性。
6 結(jié)論
討論了嵌入式TCP/IP擁塞控制領(lǐng)域的研究熱點(diǎn)。近年來(lái),非線性規(guī)劃和系統(tǒng)控制理論被引入擁塞控制研究中來(lái),一些研究者使用數(shù)學(xué)模型來(lái)描述端系統(tǒng)和網(wǎng)關(guān)組成的系統(tǒng),這對(duì)擁塞控制研究有很大的推動(dòng)作用。然而,對(duì)于Internet這樣一個(gè)復(fù)雜系統(tǒng)的分析與控制,只有通過(guò)通信、控制和數(shù)學(xué)等多學(xué)科的共同努力,才有望獲得突破性成果。
參考文獻(xiàn):
[1] W.Richard STEVEN. TCP/IP詳解 卷1:協(xié)議[M].范建華,胥光輝,張輝,等譯.北京:機(jī)械工業(yè)出版社,2000:170-269.
[2] Jon C.SNADER. 高級(jí)TCP/IP編程[M]. 劉江林譯.北京:中國(guó)電力出版社,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] 陳崗,張會(huì)生.基于IPv6的移動(dòng)互聯(lián)網(wǎng)絡(luò)研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2006,23(2):40-42
篇9
關(guān)鍵詞:IPv4;IPv6;HSRP;雙協(xié)議棧;平滑過(guò)渡
中圖分類號(hào): TP368.6 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)22-5340-03
1 IPv4/IPv6雙協(xié)議棧熱備冗余網(wǎng)絡(luò)在企業(yè)的應(yīng)用前景
隨著1998年IETF正式公布了RFC2460標(biāo)準(zhǔn),IPv6協(xié)議就正式誕生了。IPv6具有2的128次方個(gè)IP地址,是IPv4地址的2的96次方倍,解決了IPv4地址空間的枯竭的問(wèn)題。
IPv6具有極強(qiáng)的安全性和可靠性,在擴(kuò)展頭中增加了身份驗(yàn)證頭AH和封裝安全性數(shù)據(jù)頭(ESP),大大降低了數(shù)據(jù)被篡改的可能;IPv6增強(qiáng)了對(duì)流的支持,流標(biāo)簽的引入為整合、優(yōu)化語(yǔ)音、視頻和數(shù)據(jù)網(wǎng)絡(luò)提供了更好的條件,同時(shí)高QoS特性使得數(shù)據(jù)傳輸質(zhì)量更加高效; IPv6還增強(qiáng)了對(duì)移動(dòng)性主機(jī)的內(nèi)在支持等功能。
將IPv6協(xié)議優(yōu)秀的新特性和功能及早應(yīng)用于企業(yè),同時(shí)又能很好地兼容IPv4應(yīng)用,增強(qiáng)企業(yè)核心網(wǎng)絡(luò)性能,采用IPv4/IPv6雙協(xié)議棧熱冗余模式建設(shè)企業(yè)核心網(wǎng)絡(luò)對(duì)企業(yè)計(jì)算機(jī)應(yīng)用就有著非常重要的意義。
2 IPv6的新特性
2.1 全新的地址管理方案
地址管理方案中,首先改變了地址擁有方式,IPv4中,地址是用戶擁有,IPv6成了ISP擁有。其次IPv6還包括IPv4中沒(méi)有統(tǒng)一解決方案的地址解析協(xié)議(ABP)和可達(dá)性檢測(cè)等等。
IPv6還提供了地址自動(dòng)配置機(jī)制,實(shí)現(xiàn)了主機(jī)的即插即用功能。為了保證主機(jī)地址的唯一性,IPv6定義了重復(fù)地址檢測(cè)過(guò)程,每當(dāng)生成地址時(shí),均反復(fù)執(zhí)行生成和檢測(cè)過(guò)程,直到得到唯一的地址。
2.2 報(bào)文的安全傳送
IPv6繼承了IPv4的報(bào)文傳送技術(shù),在IPv6地址設(shè)計(jì)中增強(qiáng)了接口ID設(shè)置,這種ID設(shè)置提供了確認(rèn)對(duì)方物理終端的技術(shù)條件,同時(shí)在其擴(kuò)展頭中增加了身份驗(yàn)證頭AH和封裝安全性數(shù)據(jù)頭(ESP)。
身份驗(yàn)證頭AH首先為IP數(shù)據(jù)報(bào)提供強(qiáng)大的完整和身份驗(yàn)證,為IP數(shù)據(jù)報(bào)承載內(nèi)容驗(yàn)證數(shù)據(jù)和將實(shí)體與數(shù)據(jù)報(bào)內(nèi)容相鏈接;其次在完整中使用公共密鑰數(shù)字簽名算法,AH還可以為IP數(shù)據(jù)報(bào)提供不可抵賴服務(wù)以及通過(guò)使用順序號(hào)字段來(lái)防止重放攻擊。再有,AH還可以在隧道模式或透明模式下使用,既可用于為兩個(gè)節(jié)點(diǎn)間的簡(jiǎn)單直接的數(shù)據(jù)報(bào)傳送提供身份驗(yàn)證和保護(hù),也可用于對(duì)發(fā)給安全性網(wǎng)關(guān)或由安全性網(wǎng)關(guān)發(fā)出的整個(gè)數(shù)據(jù)報(bào)流進(jìn)行封裝。
封裝安全性數(shù)據(jù)頭通過(guò)加密提供數(shù)據(jù)報(bào)的機(jī)密性,通過(guò)使用公共密鑰加密對(duì)數(shù)據(jù)來(lái)源進(jìn)行身份驗(yàn)證,通過(guò)由AH提供的序列號(hào)機(jī)制提供對(duì)抗重放服務(wù),以及通過(guò)使用安全性網(wǎng)關(guān)來(lái)提供有限的業(yè)務(wù)流機(jī)密性。
2.3 對(duì)流的支持
IPv6在設(shè)計(jì)時(shí)就充分考慮了對(duì)流的支持,改變了IPv4對(duì)流的處理即需要路由器判斷源和目的IP地址,又需要判斷傳輸控制協(xié)議或用戶數(shù)據(jù)報(bào)協(xié)議的端口號(hào)的復(fù)雜操作過(guò)程。在IP6的IP頭的格式里,有專門的20bit流標(biāo)簽域。主機(jī)發(fā)送報(bào)文時(shí),流標(biāo)簽里填入相應(yīng)的流編號(hào),路由器收到流的第一個(gè)報(bào)文時(shí),以流編號(hào)為索引建立處理上下文,流中的后續(xù)報(bào)文都按上下文處理,因此IPv6對(duì)流的處理方式要高效得多。
同時(shí)IPv6定義了流的優(yōu)先級(jí),分別支持不同的業(yè)務(wù)需求。通過(guò)對(duì)語(yǔ)音、視頻、數(shù)據(jù)等不同類型的數(shù)據(jù)流進(jìn)行合理、有效的優(yōu)先級(jí)設(shè)置,為企業(yè)建設(shè)和優(yōu)化語(yǔ)音、視頻、數(shù)據(jù)三網(wǎng)合一網(wǎng)絡(luò)平臺(tái)提供了遠(yuǎn)優(yōu)于IPv4網(wǎng)絡(luò)的解決方案。
3 IPv6采用的關(guān)鍵技術(shù)
3.1 應(yīng)用支持IPv6的技術(shù)
IPv6繼承了IPv4網(wǎng)絡(luò)中大量應(yīng)用協(xié)議,比如:FTP、Telnet、SMTP、HTTP、NFS、DNS等,它們會(huì)在IPv6中繼續(xù)使用。只有少部分如:IPv4 socket接口需要改為IPv6 socket接口,而協(xié)議本身機(jī)制可以基本不做改動(dòng)。
3.2 IPv6過(guò)度技術(shù)
為了保護(hù)在IPv4上的大量投資,IPv6應(yīng)該能與IPv4的主機(jī)和路由器共存。逐步演進(jìn)、逐步部署、地址兼容、降低費(fèi)用等內(nèi)容便成了IPv6設(shè)計(jì)時(shí)的指導(dǎo)思想。為了實(shí)現(xiàn)這一目標(biāo),IPv6主要過(guò)度技術(shù)有十多種,而基本的過(guò)度技術(shù)就是雙協(xié)議棧和隧道。
1)雙協(xié)議棧技術(shù)
IPv4/IPv6雙協(xié)議棧技術(shù),就是使IPv6網(wǎng)絡(luò)節(jié)點(diǎn)具有一個(gè)IPv4棧和一個(gè)IPv6棧,同時(shí)支持IPv4和IPv6協(xié)議。兩者都應(yīng)用于相同的物理平臺(tái),以及承載相同的傳輸層協(xié)議TCP或UDP。
2)隧道技術(shù)
隧道(Tunnel)是指將一種協(xié)議報(bào)頭封裝在另一種協(xié)議報(bào)頭中,這樣一種協(xié)議就可以通過(guò)另一種協(xié)議的封裝進(jìn)行通信。IPv6隧道是將IPv6報(bào)頭封裝在IPv4報(bào)頭中,這樣IPv6協(xié)議包就可以穿越IPv4網(wǎng)絡(luò)進(jìn)行通信。
4 組建具有熱備冗余功能的IPv4/IPv6雙協(xié)議棧網(wǎng)絡(luò)
4.1 IPv6網(wǎng)絡(luò)建設(shè)策略
IPv4到IPv6的升級(jí)切換不可能一蹴而就,必須循序漸進(jìn)。因此在基于IPv6的特點(diǎn)以及公司目前IPv4網(wǎng)絡(luò)的應(yīng)用情況,在建設(shè)IPv6網(wǎng)絡(luò)時(shí)做了以下幾點(diǎn):不影響現(xiàn)有基于IPv4協(xié)議的所有網(wǎng)絡(luò)應(yīng)用;保持現(xiàn)有網(wǎng)絡(luò)的層次結(jié)構(gòu);確保計(jì)算機(jī)終端同時(shí)對(duì)IPv4和IPv6網(wǎng)絡(luò)的訪問(wèn)能力;滿足今后平滑實(shí)現(xiàn)IPv4網(wǎng)絡(luò)到IPv6網(wǎng)絡(luò)的過(guò)渡;通過(guò)IPv6網(wǎng)絡(luò)的建設(shè),進(jìn)一步提高企業(yè)核心網(wǎng)絡(luò)的性能。因此,IPv6網(wǎng)絡(luò)建設(shè)中采用了熱備冗余功能和IPv4/IPv6雙協(xié)議棧技術(shù)。
4.2 網(wǎng)絡(luò)拓?fù)?/p>
IPv6網(wǎng)絡(luò)核心建設(shè)完成后形成圖1所示的結(jié)構(gòu)示意圖,核心交換機(jī)A與核心交換機(jī)B用兩對(duì)光纖連接實(shí)現(xiàn)熱備份互聯(lián)基礎(chǔ),兩臺(tái)交換機(jī)與下一層交換機(jī)分別互聯(lián),形成雙鏈路,在啟用HSRP及相關(guān)配置后實(shí)現(xiàn)雙機(jī)熱備路由功能。
配置IPv4/IPv6網(wǎng)絡(luò)需要完成如圖2所示步驟。
4.3 雙協(xié)議棧的啟用
為了實(shí)現(xiàn)IPv4/IPv6雙協(xié)議棧功能,在網(wǎng)絡(luò)接口設(shè)置中必須同時(shí)啟用兩種協(xié)議?,F(xiàn)有交換機(jī)IPv4已經(jīng)啟用,啟用IPv6協(xié)議及配置節(jié)點(diǎn)地址步驟如下:
interface fastethernet 1/1
IPv6 enable //啟用IPv6協(xié)議
IPv6 address 2001:400:25:1::1/64//配置IPv6節(jié)點(diǎn)地址
4.4 路由實(shí)現(xiàn)
全局模式下IPv4使用IP routing啟用路由功能,IPv6則使用IPv6 unicast-routing啟用路由功能。IPv6是對(duì)IPv4的革新,盡管大多數(shù)IPv6的路由協(xié)議都需要重新設(shè)計(jì)或者開(kāi)發(fā),但I(xiàn)Pv6路由協(xié)議相對(duì)IPv4只有很小的變化。在靜態(tài)路由方面與IPv4也基本相同,只需為節(jié)點(diǎn)配置地址并作為客戶機(jī)網(wǎng)關(guān),即可實(shí)現(xiàn)網(wǎng)段間的路由。
全局模式下啟用IPv6路由及相關(guān)配置
IPv6 unicast-routing //打開(kāi)ipv6單播路由功能
IPv6 dhcp pool test //新建一個(gè)IPv6的dhcp地址池test,供客戶機(jī)自動(dòng)獲取使用
prefix-delegation pool test1 lifetime 1800 600
dns-server 2001:400:4:1::101//指定IPv6 dns服務(wù)器地址
4.5 Windows2003中IPv6 DNS配置
①安裝DNS服務(wù)及IPv6 DNS插件;
②配置IPv6 DNS
a、打開(kāi)了DNS配置向?qū)В?/p>
b、在導(dǎo)航窗格中, 單擊用于你的服務(wù)器在DNS服務(wù)器對(duì)象,用鼠標(biāo)右鍵單擊服務(wù)器對(duì)象,然后單擊 配置DNS服務(wù)器以啟動(dòng)配置DNS服務(wù)器向?qū)В襟E見(jiàn)圖3。
4.6 IPv6客戶機(jī)配置
通常情況下IPv6客戶機(jī)在啟用IPv6協(xié)議后,地址會(huì)從最近的網(wǎng)絡(luò)節(jié)點(diǎn)自動(dòng)獲取,無(wú)需用戶手動(dòng)配置,但是對(duì)于像服務(wù)器這類需固定IP地址的則需手動(dòng)配置,以便于訪問(wèn)。以Windows Server 2003為例,步驟如下:
1)IPv6 協(xié)議棧的安裝
在“開(kāi)始”―>“運(yùn)行”處執(zhí)行IPv6 install命令
2)IPv6 地址設(shè)置
在“開(kāi)始”―>“運(yùn)行”處執(zhí)行netsh命令,進(jìn)入系統(tǒng)網(wǎng)絡(luò)參數(shù)設(shè)置環(huán)境netsh>,執(zhí)行interface ipv6 add address “本地連接” 2001:d0a8:3207::e002命令設(shè)置地址;或者在 開(kāi)始 -->“運(yùn)行”處執(zhí)行 ipv6 adu 4/2001:d0a8:3207::e002。
3)IPv6 默認(rèn)網(wǎng)關(guān)設(shè)置,在netsh>標(biāo)識(shí)后輸入
interface ipv6 add route ::/0 “本地連接” 2001:d0a8:3207::e001 publish=yes命令即可;或者在在“開(kāi)始”-->“運(yùn)行”處執(zhí)行 IPv6 rtu ::/0 4/2001:d0a8:3207::e001。
4.7 IPv6網(wǎng)站的訪問(wèn)
用戶在實(shí)際使用中,IPv4和IPv6同樣使用域名網(wǎng)址進(jìn)行訪問(wèn),使用IP地址訪問(wèn)時(shí)有所不同,IPv6協(xié)議需要使用帶中括弧方式來(lái)訪問(wèn),例如:[ 2001:d0a8:3207::e001]。
4.8 熱備份路由器協(xié)議配置
網(wǎng)絡(luò)核心采用熱備份路由器協(xié)議技術(shù)(HSRP:Hot Standby Router Protocol),系統(tǒng)中使用兩臺(tái)路由交換機(jī)滿足HSRP多臺(tái)路由器的條件,組成一個(gè)“熱備份組”,這個(gè)組形成一個(gè)虛擬路由器。在任一時(shí)刻,一個(gè)組內(nèi)只有一個(gè)路由器是活動(dòng)的,并由它來(lái)轉(zhuǎn)發(fā)數(shù)據(jù)包,如果活動(dòng)路由器發(fā)生了故障,將選擇備份路由器來(lái)替代活動(dòng)路由器,但是在本網(wǎng)絡(luò)內(nèi)的主機(jī)看來(lái),虛擬路由器沒(méi)有改變。所以主機(jī)仍然保持連接,沒(méi)有受到故障的影響,這樣就較好地解決了路由器切換的問(wèn)題。配置步驟如圖4。
1)熱備份交換機(jī)通道配置
交換機(jī)A
interface Port-channel1 //創(chuàng)建一個(gè)捆綁通道組1
description HSRP_packet //描述該通道是傳遞hsrp包用
interface GigabitEthernet5/1
channel-group 1 mode on //將端口劃入捆綁接口Port-channel1
在交換機(jī)B中進(jìn)行同理配置。
2)VLAN冗余組配置
交換機(jī)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//設(shè)置vlan 1到熱備組1,同時(shí)設(shè)置vlan 1的ipv4網(wǎng)關(guān)
standby 1 priority 110 //在本交換機(jī)的優(yōu)先級(jí)110(默認(rèn)100,優(yōu)先級(jí)高的為主用)
standby 1 preempt//打開(kāi)熱備組1搶占功能
standby 1 track Port-channel1 //熱備組1通過(guò)捆綁接口Port-channel1實(shí)現(xiàn)雙機(jī)信息告知
standby 1 ipv6 2001:400:1:1::100/64 //啟用IPv6 HSRP協(xié)議
在交換機(jī)B中進(jìn)行同理配置。
5 結(jié)束語(yǔ)
1)通過(guò)雙機(jī)熱備份路由器協(xié)議的使用,公司網(wǎng)絡(luò)穩(wěn)定性能得到很大提高,更好地滿足了目前公司數(shù)十套業(yè)務(wù)系統(tǒng)全天候不間斷的運(yùn)行要求,很好地支持了公司的發(fā)展;
2)為公司正進(jìn)行的全面信息化及電子商務(wù)的建設(shè)提供了高效、安全、可靠和無(wú)阻塞的信息處理網(wǎng)絡(luò)平臺(tái);
3)通過(guò)對(duì)IPv6技術(shù)的應(yīng)用,它擁有的全新網(wǎng)絡(luò)安全架構(gòu)技術(shù)使企業(yè)業(yè)務(wù)數(shù)據(jù)的傳輸安全得到了進(jìn)一步保證;
4)IPv6對(duì)流的充分支持,加快了企業(yè)對(duì)流業(yè)務(wù)應(yīng)用系統(tǒng)的開(kāi)發(fā),為建設(shè)高效的企業(yè)語(yǔ)音、視頻、數(shù)據(jù)三網(wǎng)合一網(wǎng)絡(luò)平臺(tái)起到了重要作用;
5)該系統(tǒng)的成功實(shí)施為公司業(yè)務(wù)系統(tǒng)今后及早融入IPv6網(wǎng)絡(luò)環(huán)境打下了基礎(chǔ),為公司ERP及電子商務(wù)系統(tǒng)更快、更好地融入新的網(wǎng)絡(luò)信息平臺(tái)做好了充分準(zhǔn)備。
6)IPv6網(wǎng)站的建成,已成為國(guó)家IPv6應(yīng)用試驗(yàn)典范。
參考文獻(xiàn):
[1] 張寵科,蘇偉.IPv6路由協(xié)議棧原理與技術(shù)[M].北京:北京郵電大學(xué)出版社,2006(7).
[2] 高發(fā)桂,郭學(xué)理,王路群.IPv6安全特性的分析與應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2002(11).
[3] 杜治國(guó),肖德琴,徐東風(fēng).基于雙棧技術(shù)的IPv6校園網(wǎng)絡(luò)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007(11).
篇10
【關(guān)鍵詞】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 引言
隨著全球信息化進(jìn)程的不斷發(fā)展,越來(lái)越多的企業(yè)使用局域網(wǎng)來(lái)管理各種事務(wù)。但隨著局域網(wǎng)的機(jī)器增多,軟件的應(yīng)用對(duì)局域網(wǎng)的信息吞吐、處理能力的要求也越高。為解決上述矛盾,就有必要設(shè)計(jì)一個(gè)在局域網(wǎng)里的ICQ,通過(guò)該系統(tǒng),進(jìn)行文件傳輸,消息的,提高企業(yè)的工作效率。
1 需求分析
該系統(tǒng)基于TCP/IP網(wǎng)絡(luò)協(xié)議,采用C/S模式,服務(wù)器端與數(shù)據(jù)庫(kù)連接,客戶端安裝在不同電腦上可通過(guò)同一服務(wù)器實(shí)現(xiàn)數(shù)據(jù)通訊。實(shí)現(xiàn)的功能如下:
(1)用戶注冊(cè),隨機(jī)分配號(hào)碼并填寫個(gè)人信息;
(2)用戶登入驗(yàn)證并導(dǎo)出好友列表;
(3)能夠查找好友并認(rèn)證后加為好友;
(4)文字聊天,聊天記錄保存;
(5)點(diǎn)對(duì)點(diǎn)文件傳輸功能;
(6)視頻語(yǔ)音捕獲與傳輸(視頻語(yǔ)音聊天功能)。
2 詳細(xì)設(shè)計(jì)
2.1 概要設(shè)計(jì)
本課題在研究和分析計(jì)算機(jī)TCP/IP網(wǎng)絡(luò)協(xié)議基礎(chǔ)上,在不同計(jì)算機(jī)之間實(shí)現(xiàn)數(shù)據(jù)通訊。采用TCP和UDP傳輸方式,編寫客戶端與服務(wù)器端網(wǎng)絡(luò)軟件??蛻粝蚍?wù)器發(fā)出服務(wù)請(qǐng)求,服務(wù)器作出應(yīng)答響應(yīng),服務(wù)器監(jiān)聽(tīng)客戶發(fā)出的請(qǐng)求,當(dāng)客戶提出連接請(qǐng)求后,服務(wù)器作出應(yīng)答,并為客戶提供相應(yīng)的服務(wù)。
本系統(tǒng)前臺(tái)使用Delphi6.0進(jìn)行設(shè)計(jì),后臺(tái)運(yùn)用Sql Server 2000進(jìn)行數(shù)據(jù)管理。
2.2 方案設(shè)計(jì)
該即時(shí)通的工作過(guò)程如下:當(dāng)服務(wù)器開(kāi)啟時(shí),用戶從客戶端登錄,通過(guò)TCP/IP網(wǎng)絡(luò)將輸入的帳號(hào)和密碼傳到服務(wù)器,服務(wù)器從數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)表查找驗(yàn)證,若驗(yàn)證錯(cuò)誤,返回錯(cuò)誤提示信息;若驗(yàn)證通過(guò),則登錄QQ主頁(yè)面。在進(jìn)入主頁(yè)面后,用戶可通過(guò)輸入對(duì)方QQ號(hào)查找其他用戶且加對(duì)方為好友。兩用戶可通過(guò)點(diǎn)對(duì)點(diǎn)通訊實(shí)現(xiàn)文字聊天,語(yǔ)音視頻聊天,文件傳輸?shù)取?/p>
2.3 系統(tǒng)數(shù)據(jù)表設(shè)計(jì)
本系統(tǒng)使用SQL Server 2000設(shè)計(jì)后臺(tái)數(shù)據(jù)庫(kù),共設(shè)計(jì)了兩張數(shù)據(jù)表:用戶信息表和好友信息表。
用戶信息數(shù)據(jù)表用于儲(chǔ)存注冊(cè)用戶的信息,存儲(chǔ)的信息包括:用戶QQ號(hào)(主鍵)、用戶密碼、用戶昵稱、性別、是否在線(1為在線,0為不在)、用戶上線地址、國(guó)籍、省份、城市等。
好友信息數(shù)據(jù)表,主要用于添加用戶好友信息,用戶登錄時(shí)調(diào)用相關(guān)信息并顯示。存儲(chǔ)的信息包括:用戶QQ號(hào)、好友QQ號(hào)、好友是否在線、好友在線地址、好友昵稱。
2.4 詳細(xì)模塊設(shè)計(jì)及功能實(shí)現(xiàn)
客戶端包括七個(gè)模塊:
(1)登錄模塊:此模塊實(shí)現(xiàn)客戶端與服務(wù)器連接,用戶登錄時(shí)驗(yàn)證身份,驗(yàn)證通過(guò)則進(jìn)入QQ主頁(yè)面模塊,并調(diào)取好友信息顯示。
(2)主頁(yè)面模塊:用戶在登錄模塊驗(yàn)證身份通過(guò)后,從服務(wù)器調(diào)取好友信息,并在QQ主頁(yè)面上顯示。
(3)查找模塊:該模塊用于用戶查找好友,輸入對(duì)方帳號(hào)查找對(duì)方信息,并加為好友,與服務(wù)器連接并修改數(shù)據(jù)表的內(nèi)容,在主頁(yè)面上添加上新好友。
(4)文字聊天模塊:此模塊實(shí)現(xiàn)用戶間的點(diǎn)對(duì)點(diǎn)聊天,兩客戶端通過(guò)UDP連接,發(fā)送和接收文字信息,實(shí)現(xiàn)局域網(wǎng)文字聊天。
(5)文件傳輸模塊:此模塊實(shí)現(xiàn)兩客戶端點(diǎn)對(duì)點(diǎn)文件傳輸,圖片,文本文檔及壓縮包等均可傳輸。
(6)語(yǔ)音視頻聊天模塊:此模塊實(shí)現(xiàn)了語(yǔ)音和視頻的捕獲以及點(diǎn)對(duì)點(diǎn)傳輸功能。
服務(wù)器端根據(jù)功能要求可分為以下三個(gè)模塊:
(1)服務(wù)器監(jiān)聽(tīng)模塊:用于回應(yīng)客戶端請(qǐng)求,包括登錄回應(yīng),注冊(cè)回應(yīng),調(diào)用好友信息回應(yīng)等。
(2)遠(yuǎn)程截圖模塊:此模塊實(shí)現(xiàn)服務(wù)器端從上線的客戶端獲取IP地址后截取對(duì)方屏幕顯示。
(3)查詢模塊:此模塊實(shí)現(xiàn)服務(wù)器端訪問(wèn)數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)庫(kù)信息。分為綜合查詢和詳細(xì)查詢功能。
3 系統(tǒng)程序的總體設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由用戶登錄程序、用戶注冊(cè)程序、好友信息顯示程序、好友查找程序、文字聊天程序、文件傳輸程序等子程序構(gòu)成。其中,文件傳輸,語(yǔ)音視頻聊天模塊都具有獨(dú)立性,可在單獨(dú)設(shè)計(jì)后加入到整個(gè)系統(tǒng)中,其余各模塊間需要服務(wù)器客戶端相互連接同時(shí)調(diào)試才可實(shí)現(xiàn)。服務(wù)器端首先開(kāi)啟運(yùn)行,在和客戶端相互通訊實(shí)現(xiàn)基本功能。
4 結(jié)束語(yǔ)
本系統(tǒng)基于Delphi6.0和Sql Server 2000的運(yùn)用,在研究和分析計(jì)算機(jī)TCP/IP網(wǎng)絡(luò)協(xié)議基礎(chǔ)上,實(shí)現(xiàn)不同計(jì)算機(jī)之間的數(shù)據(jù)通訊。采用C/S結(jié)構(gòu),實(shí)現(xiàn)在功能有:用戶的注冊(cè)和登錄,好友的顯示和查找,好友文字、語(yǔ)音視頻聊天,文件傳輸?shù)取?/p>
【參考文獻(xiàn)】