時(shí)間:2012年3月1日 關(guān)鍵詞:工業(yè)以太網(wǎng) UDP TCP機(jī)制 來(lái)源:互聯(lián)網(wǎng) UDP和TCP機(jī)制 在工業(yè)以太網(wǎng)應(yīng)用中,網(wǎng)絡(luò)互連層和傳輸層協(xié)議共同構(gòu)成了整個(gè)系統(tǒng)的通信棧。不同的工業(yè)以太網(wǎng)方案在通信棧的構(gòu)成方式、應(yīng)用模型上有一定的差別,這種差別也是我們討論的重點(diǎn)。其中最為典型的一個(gè)問(wèn)題就是:傳輸層使用TCP還是使用UDP的問(wèn)題首先我們看一下TCP/IP協(xié)議中關(guān)于TCP/UDP的說(shuō)明: TCP&UDP分別是TransmissionControlProtocol和UserDatagramProtocol的英文縮寫。關(guān)于兩者之間最廣為人知的區(qū)別就是:是否面向連接。而從工業(yè)以太網(wǎng)的角度,事實(shí)上,這種區(qū)別所造成的對(duì)網(wǎng)絡(luò)性能的影響才是一個(gè)關(guān)鍵。具體說(shuō)來(lái):TCP作為基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話”才能建立起來(lái)。而且為確保正確地接收數(shù)據(jù),TCP會(huì)為每個(gè)封包都加上一個(gè)順序碼,并且要求在目標(biāo)計(jì)算機(jī)成功收到數(shù)據(jù)時(shí)發(fā)回一個(gè)確認(rèn)(即ACK)。如果在某個(gè)時(shí)限內(nèi)未收到相應(yīng)的ACK,將重新傳送數(shù)據(jù)包。如果網(wǎng)絡(luò)擁塞,這種重新傳送將導(dǎo)致發(fā)送的數(shù)據(jù)包重復(fù)。但是,接收計(jì)算機(jī)可使用數(shù)據(jù)包的序號(hào)來(lái)確定它是否為重復(fù)數(shù)據(jù)包,并在必要時(shí)丟棄它?! ∫陨系倪B接、包計(jì)數(shù)、接收確認(rèn)握手等機(jī)制確實(shí)能使TCP協(xié)議做到為應(yīng)用程序提供可靠的通信連接,使一臺(tái)網(wǎng)絡(luò)終端發(fā)出的字節(jié)流無(wú)差錯(cuò)地發(fā)往網(wǎng)絡(luò)上的其他終端。但是這些操作卻影響到了網(wǎng)絡(luò)在速度上的性能。而UDP是與TCP相對(duì)應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對(duì)方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過(guò)去!它也沒(méi)有TCP的封包所具有順序碼,接收端亦不會(huì)有響應(yīng)產(chǎn)生及進(jìn)行檢查以確認(rèn)是否收到重復(fù)或遺失的封包。這些都決定了UDP是作為一種不可靠的協(xié)議存在的。但是UDP具有TCP所望塵莫及的速度優(yōu)勢(shì)。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實(shí)際執(zhí)行的過(guò)程中會(huì)占用大量的系統(tǒng)開銷,無(wú)疑使速度受到嚴(yán)重的影響。反觀UDP由于排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來(lái)完成,極大降低了執(zhí)行時(shí)間,使速度得到了保證?! 墓I(yè)以太網(wǎng)的角度出發(fā),應(yīng)當(dāng)從數(shù)據(jù)通信的需求上對(duì)UDP或TCP的選擇問(wèn)題做一個(gè)結(jié)論。首先我們來(lái)看一看在工業(yè)環(huán)境中,網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)具有的特性。工業(yè)環(huán)境中待傳輸?shù)男畔㈩愋桶▽?shí)時(shí)過(guò)程控制數(shù)據(jù)、設(shè)備狀態(tài)、監(jiān)控?cái)?shù)據(jù)、系統(tǒng)故障診斷數(shù)據(jù)、報(bào)警數(shù)據(jù)等。這些數(shù)據(jù)通常在量上并不大。這個(gè)特點(diǎn)在以往的現(xiàn)場(chǎng)總線體系中有充分的體現(xiàn),例如,LonWorks現(xiàn)場(chǎng)總線的數(shù)據(jù)包長(zhǎng)度只有12個(gè)bit,EIB現(xiàn)場(chǎng)總線數(shù)據(jù)包長(zhǎng)度只有22個(gè)bit,等等?! 《@些數(shù)據(jù)對(duì)實(shí)時(shí)的傳輸?shù)囊笠膊槐M相同。具體說(shuō)來(lái),I/O數(shù)據(jù)對(duì)實(shí)時(shí)性要求最高。而組態(tài)、參數(shù)設(shè)置、診斷等則不太要求過(guò)高的實(shí)時(shí)性而更偏向可靠的數(shù)據(jù)傳輸。對(duì)數(shù)據(jù)傳輸?shù)囊蟛煌瑳Q定了協(xié)議的選擇,在工業(yè)以太網(wǎng)的方案中,可以采取的方式是:對(duì)于對(duì)實(shí)時(shí)性要求較高的實(shí)時(shí)I/O數(shù)據(jù),采用UDP/IP協(xié)議來(lái)傳送,這時(shí)可以獲得UDP的如下幾個(gè)好處: (1)數(shù)據(jù)發(fā)送前不用建立連接,減少了開銷和延遲,這一點(diǎn)控制系統(tǒng)來(lái)說(shuō)是非常重要的。 (2)UDP沒(méi)有采用可靠交付,數(shù)據(jù)收發(fā)雙方不用維護(hù)很多的用于記錄連接狀態(tài)的表。 (3)UDP數(shù)據(jù)報(bào)首部很短,只有8字節(jié),處理方便。 (4)UDP取消了擁塞控制,所以發(fā)送方不會(huì)降低發(fā)送速度,這點(diǎn)在實(shí)時(shí)應(yīng)用上非常重要?! 」I(yè)以太網(wǎng)而對(duì)實(shí)時(shí)性要求不太高的顯式信息則采用TCP/IP來(lái)傳送。這樣減少了UDP方式的傳輸負(fù)擔(dān),也更容易實(shí)現(xiàn)。
評(píng)論排行