[Linux網路編程筆記]傳輸協議TCP和UDP簡介

來源:互聯網
上載者:User

由於這一章主要是介紹性的東西,我就不多說了。下面摘抄下網上的介紹吧!

註明】轉載地址:http://www.cnblogs.com/hill/archive/2006/10/12/527499.html

中國移動、中國聯通推行的GPRS網路、CDMA網路已覆蓋大量的地區,通過無線網路實現資料轉送成為可能。無線Modem採用GPRS、CDMA模組通過中國移動、中國聯通的GPRS、CDMA網路進行資料轉送,並通TCP/IP協議進行資料封包,可靈活地實現多種裝置接入,工程安裝簡單,在工業現場資料轉送的應用中,能很好的解決偏遠無網路無電話線路地區的資料轉送的難題。同傳統的數傳電台想比較,更具有簡便性、靈活性、易操作性,同時還降低了成本,無線Modem傳輸方案是現代化工業現場資料轉送最好的選擇方案。
     目前中國移動、中國聯通提供的GPRS網路、CDMA網路的資料傳輸頻寬在40Kbps左右,且受頻寬的限制,資料擷取方案最好採用於主動警示、資料輪巡採集、警示主動回叫等對傳輸頻寬佔用較少的採集方式。同時考慮對前置機即時採集方案的支援,無線Modem傳輸方案只能作為目前傳輸方案的補充。
    隨著無線通訊技術的不斷髮展,無線傳輸資料頻寬將不斷提高,採用3G無線網路,資料傳輸頻寬將達到2M,無線傳輸方案將逐漸成為監控傳輸組網的主要應用方案。
     目前,由於GPRS和CDMA固有的特性,在各個領域中GPRS和CDMA的應用也越來越廣泛,但是關於傳輸中使用TCP/IP協議還是UDP協議,卻爭論很多。

這裡先簡單的說一下TCP與UDP的區別:
  1。基於串連與無串連
  2。對系統資源的要求(TCP較多,UDP少)
  3。UDP程式結構較簡單
  4。流模式與資料報模式
  5。TCP保證資料正確性,UDP可能丟包,TCP保證資料順序,UDP不保證
另外結合GPRS網路的情況具體的談一下他們的區別:
1。TCP傳輸存在一定的延時,大概是1600MS(移動提供),UDP響應速度稍微快一些。
2。TCP包頭結構
  源連接埠16位
  目標連接埠 16位
  序號 32位
  回應序號 32位
  TCP頭長度 4位
  reserved 6位
  控制碼6位
  視窗大小16位
  位移量16位
  校正和16位
  選項 32位(可選)
  這樣我們得出了TCP包頭的最小大小.就是20位元組.

  UDP包頭結構
  源連接埠16位
  目的連接埠16位
  長度 16位
  校正和 16位
  UDP的包小很多.確實如此.因為UDP是非可靠串連.設計初衷就是儘可能快的將資料包發送出去.所以UDP協

議顯得非常精簡.

3。GPRS網路連接埠資源,UDP十分緊缺,變化很快;而TCP採用可靠鏈路傳輸,不存在連接埠變化的問題工業場合的應用一般都有以下特點,

1。要求時時傳輸,但也有一些場合是定時傳輸,總的來說在整個傳輸過程中要求伺服器中心端和GPRS終端裝置能相互的、時時的傳輸資料。
TCP本身就是可靠鏈路傳輸,提供一個時時的雙向的傳輸通道,能很好的滿足工業現場傳輸的要求。但是GPRS網路對TCP鏈路也存在一個限制:此條鏈路在長時間(大概20分鐘左右,視具體情況而定)沒有資料流量,會自動降低此鏈路的優先順序直至強制斷開此鏈路。所以在實際使用中也會採用心跳包(一般是一個位元組的資料)來維持此鏈路。
UDP由於自身特點,以及GPRS網路UDP連接埠資源的有限性,在一段時間沒有資料流量後,連接埠容易改變,產生的影響就是從伺服器中心端向GPRS終端發送資料,GPRS終端接收不到。具體的原因就是移動網關從中作了中轉,需要隔一定時間給主機發UDP包來維持這個IP和連接埠號碼,這樣主機就能主動給GPRS發UDP包了並且我在測試中發現,這個間隔時間很短,我在1多分鐘發一次UDP包才能夠維持,但是再長可能移動網關那邊就要丟失這個連接埠了,此時如果主機想主動發資料給GPRS,那肯定是不行的了,只有GPRS終端裝置再發一個UDP包過去,移動重新給你分配一個中轉IP和連接埠,才能夠進行雙向通訊。

2。要求資料的丟包率較小。有些工業場合,例如電力、水務抄表,環保監測等等,不容許傳輸過程中的資料丟失或者最大限度的要求資料的可靠性。從這一點來看,很顯然在無線資料轉送過程中,TCP比UDP更能保證資料的完整性、可靠性,存在更小的丟包率。在實際測試中也是如此。以廈門桑榮科技有限公司提供的GPRS終端裝置為例:TCP的在千分之9,UDP的在千分之17左右。

3。要求降低費用。目前有很大部分GPRS裝置的應用都是取代前期無線數傳電台,除了使用範圍外,其考慮的主要問題就是費用。能降低費用當然都是大家最願意接受的。和費用直接相關的就是流量了,流量低,費用就低了。雖然TCP本身的包頭要比UDP多,但是UDP在實際應用中往往需要維護雙向通道,就必須要通過大量的心跳包資料來維護連接埠資源。總的比較起來,UDP的實際流量要比TCP還要大。很多使用者在初期的時候並不瞭解UDP需要大量心跳包來維持連接埠資源這個問題,往往都認為UDP要比TCP更節省流量,實際上這裡存在著一個誤區。

4。在某些特定的應用場合,例如一些銀行的時時互動系統,對響應速度要求很高,此時資料轉送頻率較快,不需要大量心跳包維持UDP連接埠資源,採用UDP就比較有利了。

5。在目前的1:N的傳輸模式中,既有多個GPRS終端裝置往一個伺服器中心傳輸資料,此時採用UDP會比TCP要好的多,因為UDP耗用更少的系統資源。但是在實際應用中卻發現,很多使用者還是採用TCP的傳輸方式,建立二級中心1:A(1:N),即每一個分中心對應N/A台裝置,獨立處理資料,再統一將資料傳送到主中心。這樣既能保證了傳輸過程中採用了TCP的傳輸協議,又能很好處理了中心伺服器的多鏈路的系統耗用的問題。
     總的來說,我認為TCP/IP協議更能滿足目前各行業對遠端資料傳輸的要求,它提供更穩定更便利的傳輸通道,很好的滿足了遠端資料傳輸的要求。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.