上傳時間:2011-12-21 來源:北京華源格林科技有限公司

  UDP和TCP機(jī)制

  在工業(yè)以太網(wǎng)應(yīng)用中,網(wǎng)絡(luò)互連層和傳輸層協(xié)議共同構(gòu)成了整個系統(tǒng)的通信棧。不同的工業(yè)以太網(wǎng)方案在通信棧的構(gòu)成方式、應(yīng)用模型上有一定的差別,這種差別也是我們討論的重點(diǎn)。其中最為典型的一個問題就是:傳輸層使用TCP還是使用UDP的問題

  首先我們看一下TCP/IP協(xié)議中關(guān)于TCP/UDP的說明:

  TCP&UDP分別是TransmissionControlProtocol和UserDatagramProtocol的英文縮寫。關(guān)于兩者之間最廣為人知的區(qū)別就是:是否面向連接。而從工業(yè)以太網(wǎng)的角度,事實(shí)上,這種區(qū)別所造成的對網(wǎng)絡(luò)性能的影響才是一個關(guān)鍵。具體說來:

  TCP作為基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。一個TCP連接必須要經(jīng)過三次“對話”才能建立起來。而且為確保正確地接收數(shù)據(jù),TCP會為每個封包都加上一個順序碼,并且要求在目標(biāo)計(jì)算機(jī)成功收到數(shù)據(jù)時發(fā)回一個確認(rèn)(即ACK)。如果在某個時限內(nèi)未收到相應(yīng)的ACK,將重新傳送數(shù)據(jù)包。如果網(wǎng)絡(luò)擁塞,這種重新傳送將導(dǎo)致發(fā)送的數(shù)據(jù)包重復(fù)。但是,接收計(jì)算機(jī)可使用數(shù)據(jù)包的序號來確定它是否為重復(fù)數(shù)據(jù)包,并在必要時丟棄它。

  以上的連接、包計(jì)數(shù)、接收確認(rèn)握手等機(jī)制確實(shí)能使TCP協(xié)議做到為應(yīng)用程序提供可靠的通信連接,使一臺網(wǎng)絡(luò)終端發(fā)出的字節(jié)流無差錯地發(fā)往網(wǎng)絡(luò)上的其他終端。但是這些操作卻影響到了網(wǎng)絡(luò)在速度上的性能。

  而UDP是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!它也沒有TCP的封包所具有順序碼,接收端亦不會有響應(yīng)產(chǎn)生及進(jìn)行檢查以確認(rèn)是否收到重復(fù)或遺失的封包。這些都決定了UDP是作為一種不可靠的協(xié)議存在的。但是UDP具有TCP所望塵莫及的速度優(yōu)勢。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實(shí)際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速度受到嚴(yán)重的影響。反觀UDP由于排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來完成,極大降低了執(zhí)行時間,使速度得到了保證。

  從工業(yè)以太網(wǎng)的角度出發(fā),應(yīng)當(dāng)從數(shù)據(jù)通信的需求上對UDP或TCP的選擇問題做一個結(jié)論。首先我們來看一看在工業(yè)環(huán)境中,網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)具有的特性。

  工業(yè)環(huán)境中待傳輸?shù)男畔㈩愋桶▽?shí)時過程控制數(shù)據(jù)、設(shè)備狀態(tài)、監(jiān)控?cái)?shù)據(jù)、系統(tǒng)故障診斷數(shù)據(jù)、報警數(shù)據(jù)等。這些數(shù)據(jù)通常在量上并不大。這個特點(diǎn)在以往的現(xiàn)場總線體系中有充分的體現(xiàn),例如,LonWorks現(xiàn)場總線的數(shù)據(jù)包長度只有12個bit,EIB現(xiàn)場總線數(shù)據(jù)包長度只有22個bit,等等。

  而這些數(shù)據(jù)對實(shí)時的傳輸?shù)囊笠膊槐M相同。具體說來,I/O數(shù)據(jù)對實(shí)時性要求最高。而組態(tài)、參數(shù)設(shè)置、診斷等則不太要求過高的實(shí)時性而更偏向可靠的數(shù)據(jù)傳輸。

  對數(shù)據(jù)傳輸?shù)囊蟛煌瑳Q定了協(xié)議的選擇,在工業(yè)以太網(wǎng)的方案中,可以采取的方式是:

  對于對實(shí)時性要求較高的實(shí)時I/O數(shù)據(jù),采用UDP/IP協(xié)議來傳送,這時可以獲得UDP的如下幾個好處:

  (1)數(shù)據(jù)發(fā)送前不用建立連接,減少了開銷和延遲,這一點(diǎn)控制系統(tǒng)來說是非常重要的。

  (2)UDP沒有采用可靠交付,數(shù)據(jù)收發(fā)雙方不用維護(hù)很多的用于記錄連接狀態(tài)的表。

  (3)UDP數(shù)據(jù)報首部很短,只有8字節(jié),處理方便。

  (4)UDP取消了擁塞控制,所以發(fā)送方不會降低發(fā)送速度,這點(diǎn)在實(shí)時應(yīng)用上非常重要。

  工業(yè)以太網(wǎng)而對實(shí)時性要求不太高的顯式信息則采用TCP/IP來傳送。這樣減少了UDP方式的傳輸負(fù)擔(dān),也更容易實(shí)現(xiàn)。