<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > RS485轉TCP/IP的TCP工作模式選擇

          RS485轉TCP/IP的TCP工作模式選擇

          作者: 時間:2013-12-31 來源:網(wǎng)絡 收藏
            本文介紹在串口轉TCP/IP中如何使用各種,根據(jù)不同的應用如何進行靈活選擇TCP客戶端、TCP服務器、UDP、UDP組播。
          1.TCPUDP工作模式
            TCP/IP是網(wǎng)際互聯(lián)的基本協(xié)議,TCP/IP實際涉及網(wǎng)絡協(xié)議的兩層:網(wǎng)絡層和傳輸層。IP屬于網(wǎng)絡層,而TCP屬于傳輸層,實際上TCP/IP協(xié)議還有另外部分協(xié)議即UDP協(xié)議,UDP協(xié)議和TCP協(xié)議共同組成了TCP/IP協(xié)議的傳輸層。而TCP協(xié)議有具有客戶端和服務端兩種工作模式。在RS232/聯(lián)網(wǎng)模塊應用中,主要在UDP、TCP客戶端、TCP服務器3種模式之間進行選擇。如圖1所示。
          1.1 TCPUDP的區(qū)別和比較

          圖1.TCPUDP各種工作模式演示
             TCP(Transmission Control Protocol)是可靠連接協(xié)議。我們可以用打電話來類比TCP協(xié)議。使用TCP協(xié)議進行數(shù)據(jù)傳輸,首先需要建立連接;就如在通電話前需要先撥通電話一樣。TCP是可靠傳輸?shù)?,即你傳輸?shù)臄?shù)據(jù)有誤或者丟失,則會自動重新傳輸以保證數(shù)據(jù)正確;這正如打電話的時候,如果信號不好,收方會說:“聽不清,請再說一遍?!?/DIV>
            UDP(User Datagram Protocol)是報文傳輸協(xié)議。我們可以用手機短信來類比UDP協(xié)議。使用UDP協(xié)議,你無需先征得對方的同意(無需先建立連接),可以隨時發(fā)送。但是UDP協(xié)議是不可靠傳輸?shù)模惆l(fā)送出去的數(shù)據(jù)不能夠保證正確地被對方收到;
            所謂“正確接收”,它包括3方面的內(nèi)容:1.丟失問題:數(shù)據(jù)丟失后可以重傳。2.誤碼問題:數(shù)據(jù)內(nèi)容錯誤能被檢測并重新發(fā)送。3.順序問題:UDP無法保證數(shù)據(jù)的順序,例如在發(fā)送長文字的短信的時候,有可能后半部分短信內(nèi)容先收到,然后再收到前半部分短信內(nèi)容。這給接收者較大的迷惑,TCP協(xié)議沒有這個問題。
          UDP協(xié)議的也有自身優(yōu)點。1.簡單性、方便性,UDP協(xié)議非常類似串口通信,因為串口發(fā)送數(shù)據(jù)本身基于非連接(報文)的。此時在串口轉以太網(wǎng)的時候,使用UDP協(xié)議符合原來的思維。2.UDP協(xié)議具有廣播、組播功能,可以實現(xiàn)一對多通信。
          表1. TCP與UDP的區(qū)別
          TCP
          UDP
          需要連接
          占用線路
          可靠傳輸
          簡單易用
          支持廣播
          1.2 TCP客戶端和TCP服務器的區(qū)別
            在選擇TCP進行通信的時候,通信的雙方,必須一方為TCP客戶端(TCP Client),一方為TCP服務器(TCP Server)。以打電話來類比,打電話的人是TCP客戶端,接電話的一方為TCP服務器。TCP/IP協(xié)議中的IP地址類似電話號碼,而TCP/IP中的端口號類似電話分機號??蛻舳耍〒茈娫捳撸紫刃枰缹Ψ降腎P地址和端口(電話號碼和分機號),先連接上TCP服務器端(接聽者的電話摘機),才能進行數(shù)據(jù)傳輸(通話)。和一般電話不同,在這里TCP服務器可以同時接入多個TCP客戶端,就如有多路線路的電話,不會因為一路電話在接通中而不能接入其它電話。
            在ZLSN聯(lián)網(wǎng)模塊的RS232轉網(wǎng)絡中,TCP的長連接和短連接。TCP長連接就是連接建立后不斷開,直到斷電。TCP短連接是指需要通信的時候建立連接,通信完畢后立即關閉連接。
          2.工作模式的選擇
          2.1 TCPUDP的選擇
            TCP協(xié)議有很多優(yōu)點,這里只介紹何時使用UDP協(xié)議。
          1.節(jié)省上位機的線路資源。在ZLSN模塊的串口轉以太網(wǎng)應用中,如果選擇TCP協(xié)議,且為TCP客戶端的話,那么TCP連接是在模塊上電之后就開始連接的,屬于“長連接”。這就使得TCP協(xié)議一直占用一條通信線路(一個socket接口),如果聯(lián)網(wǎng)模塊個數(shù)很多(例如上萬個),那么用TCP協(xié)議占用較多資源。
          2.簡化上位機編程的復雜性。基于UDP的socket編程相對于TCP要簡單些。
          3.需要廣播或者組播的應用。
          2.2 客戶端和服務器的選擇
          1. 一個監(jiān)控中心還是多個監(jiān)控中心。
            一個監(jiān)控中心:在單個監(jiān)控中心的集中監(jiān)控系統(tǒng)中,分散在各個采集點的ZLSN模塊將采集數(shù)據(jù)傳送到中心計算機,此時最好采用ZLSN模塊為TCP客戶端的方式,因為此時每個模塊只要設置一個目的IP(中心計算機的IP地址)即可。當然也可以采用中心為客戶端、模塊為服務端方式,但是此時中心必須記住每個模塊的IP地址,不利于系統(tǒng)的延展性和配置的靈活性。
            多個監(jiān)控中心:現(xiàn)在有多個中心計算機需要監(jiān)控聯(lián)網(wǎng)模塊,由于TCP客戶端模塊只能連接一個中心,所以多個中心無法監(jiān)控一個模塊(除非或者采用卓嵐的“硬件TCP/IP協(xié)議棧”功能,讓模塊可以根據(jù)需要連接到不同的中心)。此時應該采用模塊為客戶端的方式。
          2.知道對方IP地址。如果通信的AB雙方中如果有一方A不知道對方B的IP地址,那么A必須作為客戶端。這是因為A不知道B的IP地址,也無法進行連接操作。在ZLSN聯(lián)網(wǎng)模塊大量應用的網(wǎng)絡中,ZLSN聯(lián)網(wǎng)模塊的IP地址通過動態(tài)獲取,所以中心并不知道所有模塊的IP地址,所以此時模塊應該作為客戶端。
          3.主從關系。在主從關系的通信模式中,主機總是先發(fā)送數(shù)據(jù),從機給出應答。在TCP短連接應用中,主機應該采用客戶端。這是因為短連接采用有數(shù)據(jù)發(fā)送的時候建立TCP連接的方式,只有主機才知道何時需要發(fā)送那個數(shù)據(jù)合適需要建立連接,所以主機為客戶端。
          2.3 TCP短連接和TCP長連接的選擇
            TCP短連接由于占用的TCP線路資源少,一般效率優(yōu)于長連接。但是以下情況下采用長連接:通信的雙方?jīng)]有主從關系。任何一方都有首先發(fā)送數(shù)據(jù)的可能,所以要保持TCP連接一直保持。選擇長連接的時候需要注意,在連接建立到當前,中間網(wǎng)線是否有斷開,需要時時檢測連接的可用性,短連接無該問題,使用較為方便。

          tcp/ip相關文章:tcp/ip是什么


          隔離器相關文章:隔離器原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();