少妇爽到喷白浆AV无码-亚洲av无码专区亚洲av桃-白丝校花的逼好热好紧好想操-午夜精品久久久久久久69蜜桃

關(guān)注官方微信

EN

EN.

串口轉(zhuǎn)TCPIP的TCP工作模式選擇

發(fā)布時間:2010-12-22 作者:上海卓嵐 瀏覽量:3677

本文介紹在串口轉(zhuǎn)TCP/IP中如何使用各種TCP工作模式,根據(jù)不同的應(yīng)用如何進(jìn)行靈活選擇TCP客戶端、TCP服務(wù)器、UDP、UDP組播。然后介紹如何用zlvircom配置串口轉(zhuǎn)TCP/IP并和SocketDlgTest程序通信。

1.TCP&UDP工作模式

TCP/IP是網(wǎng)際互聯(lián)的基本協(xié)議,TCP/IP實際涉及網(wǎng)絡(luò)協(xié)議的兩層:網(wǎng)絡(luò)層和傳輸層。IP屬于網(wǎng)絡(luò)層,而TCP屬于傳輸層,實際上TCP/IP協(xié)議還有另外部分協(xié)議即UDP協(xié)議,UDP協(xié)議和TCP協(xié)議共同組成了TCP/IP協(xié)議的傳輸層。而TCP協(xié)議有具有客戶端和服務(wù)端兩種工作模式。在RS232/RS485聯(lián)網(wǎng)模塊應(yīng)用中,主要在UDP、TCP客戶端、TCP服務(wù)器3種模式之間進(jìn)行選擇。如圖所示

1.1 TCP和UDP的區(qū)別和比較

TCP(Transmission Control Protocol)是可靠連接協(xié)議。我們可以用打電話來類比TCP協(xié)議。使用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,首先需要建立連接;就如在通電話前需要先撥通電話一樣。TCP是可靠傳輸?shù)?,即你傳輸?shù)臄?shù)據(jù)有誤或者丟失,則會自動重新傳輸以保證數(shù)據(jù)正確;這正如打電話的時候,如果信號不好,收方會說:“聽不清,請再說一遍。”

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ù)本身基于非連接(報文)的。此時在串口轉(zhuǎn)以太網(wǎng)的時候,使用UDP協(xié)議符合原來的思維。2.UDP協(xié)議具有廣播、組播功能,可以實現(xiàn)一對多通信。

  TCP UDP
需要連接
占用線路
可靠傳輸
簡單易用
支持廣播
1.2 TCP客戶端和TCP服務(wù)器的區(qū)別

在選擇TCP進(jìn)行通信的時候,通信的雙方,必須一方為TCP客戶端(TCP Client),一方為TCP服務(wù)器(TCP Server)。以打電話來類比,打電話的人是TCP客戶端,接電話的一方為TCP服務(wù)器。TCP/IP協(xié)議中的IP地址類似電話號碼,而TCP/IP中的端口號類似電話分機號??蛻舳耍〒茈娫捳撸紫刃枰缹Ψ降腎P地址和端口(電話號碼和分機號),先連接上TCP服務(wù)器端(接聽者的電話摘機),才能進(jìn)行數(shù)據(jù)傳輸(通話)。和一般電話不同,在這里TCP服務(wù)器可以同時接入多個TCP客戶端,就如有多路線路的電話,不會因為一路電話在接通中而不能接入其它電話。

在ZLSN聯(lián)網(wǎng)模塊的RS232轉(zhuǎn)網(wǎng)絡(luò)中,TCP連接有長連接和短連接之分。TCP長連接就是連接建立后不斷開,直到斷電。TCP短連接是指需要通信的時候建立連接,通信完畢后立即關(guān)閉連接。

1.3 UDP廣播

UDP相對于TCP來說UDP的一個優(yōu)勢是可以實現(xiàn)一對多的通信。以下就介紹UDP廣播和UDP組播。

UDP廣播:UDP廣播包不同于普通的UDP數(shù)據(jù)包,UDP廣播說明如下:
1.UDP廣播包一般只能夠在局域網(wǎng)內(nèi)部存在,也就是說它是不能夠?qū)崿F(xiàn)跨路由通信的。
2.同一個局域網(wǎng)內(nèi)的所有的計算機都能夠接收到廣播包。這樣增加了網(wǎng)絡(luò)的負(fù)擔(dān),同時安全性也會降低。
3.卓嵐ZLSN系列模塊支持發(fā)送和接受UDP廣播包。另外SocketDlgTest也支持發(fā)送和接受UDP廣播數(shù)據(jù)包,可以用于UDP廣播調(diào)試。

1.4 UDP組播

UDP組播:UDP單播(即普通的UDP通信)可以實現(xiàn)點與點之間的通信。UDP的廣播可以實現(xiàn)一點向多點發(fā)送數(shù)據(jù)。但是UDP廣播存在以下缺點:不僅需要接收數(shù)據(jù)的聯(lián)網(wǎng)模塊可以收到數(shù)據(jù),任何一臺局域網(wǎng)中的計算機都可以收到數(shù)據(jù),這樣數(shù)據(jù)包保密性不強,同時也給不愿接收該數(shù)據(jù)的計算機增加了負(fù)擔(dān)。

UDP組播可以解決以上問題,UDP組播可以實現(xiàn)一點向多點發(fā)送數(shù)據(jù),而且只有加入某個組播組的聯(lián)網(wǎng)模塊才可以收到數(shù)據(jù),不會對組播組外的模塊或計算機增加接收負(fù)擔(dān),減輕了網(wǎng)絡(luò)負(fù)荷。

為了確定您購買的卓嵐產(chǎn)品是否支持UDP組播請打開ZLVircom程序的設(shè)備設(shè)置對話框,點擊“更多高級選項”,如果該設(shè)備支持的高級功能中“UDP組播”是打勾的則表明該設(shè)備支持UDP組播。

2.工作模式的選擇
2.1 TCP和UDP的選擇

在TCP和UDP選擇上,TCP協(xié)議有很多優(yōu)點,這里只介紹何時使用UDP協(xié)議。

1.節(jié)省上位機的線路資源。在ZLSN模塊的串口轉(zhuǎn)以太網(wǎng)應(yīng)用中,如果選擇TCP協(xié)議,且為TCP客戶端的話,那么TCP連接是在模塊上電之后就開始連接的,屬于“長連接”。這就使得TCP協(xié)議一直占用一條通信線路(一個socket接口),如果聯(lián)網(wǎng)模塊個數(shù)很多(例如上萬個),那么用TCP協(xié)議占用較多資源。而UDP則無此問題。

2.簡化上位機編程的復(fù)雜性?;赨DP的socket編程相對于TCP要簡單些。

3.需要廣播或者組播的應(yīng)用。

2.2 客戶端和服務(wù)器的選擇

1. 一個監(jiān)控中心還是多個監(jiān)控中心。
一個監(jiān)控中心:在單個監(jiān)控中心的集中監(jiān)控系統(tǒng)中,分散在各個采集點的ZLSN模塊將采集數(shù)據(jù)傳送到中心計算機,此時最好采用ZLSN模塊為TCP客戶端的方式,因為此時每個模塊只要設(shè)置一個目的IP(中心計算機的IP地址)即可。當(dāng)然也可以采用中心為客戶端、模塊為服務(wù)端方式,但是此時中心必須記住每個模塊的IP地址,不利于系統(tǒng)的延展性和配置的靈活性。
多個監(jiān)控中心:現(xiàn)在有多個中心計算機需要監(jiān)控聯(lián)網(wǎng)模塊,由于TCP客戶端模塊只能連接一個中心(一個目的IP),所以多個中心無法監(jiān)控一個TCP客戶端模式的模塊(除非采用卓嵐的“類AT命令”功能,讓模塊可以根據(jù)需要連接到不同的中心)。此時應(yīng)該采用模塊為服務(wù)端的方式。如果需要多個計算機同時(不是分時)監(jiān)控一個ZLSN模塊,請選擇ZLSN2090為核心的多TCP連接模塊,ZLSN2090支持同時存在10個TCP連接。

2.哪方知道對方IP地址。如果通信的AB雙方中如果有一方(例如A)不知道對方(例如B)的IP地址,那么A必須作為TCP服務(wù)器。這是因為A不知道B的IP地址,也無法進(jìn)行連接操作。在ZLSN聯(lián)網(wǎng)模塊大量應(yīng)用的網(wǎng)絡(luò)中,ZLSN聯(lián)網(wǎng)模塊的IP地址通過動態(tài)獲取,所以中心并不知道所有模塊的IP地址,所以此時模塊應(yīng)該作為客戶端。

3.主從關(guān)系。在主從關(guān)系的通信模式中,主機總是先發(fā)送數(shù)據(jù),從機給出應(yīng)答。在TCP短連接應(yīng)用中,主機應(yīng)該采用客戶端。這是因為短連接采用有數(shù)據(jù)發(fā)送的時候建立TCP連接的方式,只有主機才知道何時需要發(fā)送那個數(shù)據(jù)何時需要建立連接,所以主機為客戶端。

2.3 TCP短連接和TCP長連接的選擇

TCP短連接由于占用的TCP線路資源少,一般效率優(yōu)于長連接。但是以下情況下采用長連接:通信的雙方?jīng)]有主從關(guān)系。任何一方都有首先發(fā)送數(shù)據(jù)的可能,所以要保持TCP連接一直保持。選擇長連接的時候需要注意,在連接建立到當(dāng)前,中間網(wǎng)線是否有斷開,需要時時檢測連接的可用性,短連接無該問題,使用較為方便。

3.參數(shù)配置和網(wǎng)絡(luò)連接

這里介紹,如何用zlvircom配置串口轉(zhuǎn)TCP/IP并和SocketDlgTest程序通信。卓嵐串口轉(zhuǎn)TCP/IP遵守的是標(biāo)準(zhǔn)的TCP/IP協(xié)議,所以任何遵守該協(xié)議的網(wǎng)絡(luò)終端都可以和聯(lián)網(wǎng)產(chǎn)品通信,卓嵐科技提供了網(wǎng)絡(luò)調(diào)試工具(SocketDlgTest程序,用戶可以在開始菜單/程序/ZLVircom/調(diào)試工具,找到該軟件)來模擬網(wǎng)絡(luò)終端來和串口轉(zhuǎn)TCP/IP產(chǎn)品通信。要想兩個網(wǎng)絡(luò)終端(這里是網(wǎng)絡(luò)調(diào)試工具和串口轉(zhuǎn)TCP/IP產(chǎn)品)能夠通信,其參數(shù)配置必須需要配對。

3.1 UDP模式

在UDP模式下,參數(shù)配置如圖 2所示,左邊為zlvircom中串口轉(zhuǎn)TCP/IP產(chǎn)品的配置,右邊為網(wǎng)絡(luò)調(diào)試工具SocketDlgTest的設(shè)置。首先必須兩者都是UDP工作模式。另外用紅色箭頭表示的,網(wǎng)絡(luò)工具的目的IP和目的端口必須指向聯(lián)網(wǎng)產(chǎn)品的本地IP和本地端口。用藍(lán)色箭頭表示的,聯(lián)網(wǎng)產(chǎn)品的目的IP必須是網(wǎng)絡(luò)工具所在計算機的IP地址,而聯(lián)網(wǎng)產(chǎn)品的目的端口必須是網(wǎng)絡(luò)調(diào)試工具的本地端口。這些網(wǎng)絡(luò)參數(shù)配置好后才能保證雙向的UDP數(shù)據(jù)通信。

3.2 TCP客戶端

在TCP模式下工作模式有兩種TCP服務(wù)端和TCP客戶端,不論采用哪一種模式,必須一方是服務(wù)端,另一方是客戶端,之后客戶端才能訪問服務(wù)端,都為客戶端或者服務(wù)端則無法實現(xiàn)通信。 當(dāng)串口轉(zhuǎn)TCP/IP作為客戶端時,必須有3個對應(yīng)關(guān)系,如圖 3所示。串口轉(zhuǎn)TCP/IP的工作模式為客戶端對應(yīng)SocketDlgTest的服務(wù)器模式,串口轉(zhuǎn)TCP/IP的目的IP必須是SocketDlgTest所在計算機的IP地址,串口轉(zhuǎn)TCP/IP產(chǎn)品的目的端口必須是SocketDlgTest的本地端口。這樣設(shè)置后串口轉(zhuǎn)TCP/IP即可自動連接網(wǎng)絡(luò)工具,連接建立后即可收發(fā)數(shù)據(jù)。

3.3 TCP服務(wù)器

當(dāng)串口轉(zhuǎn)TCP/IP產(chǎn)品作為服務(wù)端時,也有3個對應(yīng)關(guān)系,如圖 3 所示,這里不一一解說。這樣設(shè)置后點擊網(wǎng)絡(luò)工具的打開按鈕即可和串口轉(zhuǎn)TCP/IP產(chǎn)品建立TCP連接,連接建立后即可收發(fā)數(shù)據(jù)。

4.兩個設(shè)備對聯(lián)工作模式配置

如果上位機不是Socket程序(SocketDlgTest)也不是ZLVircom,而是兩臺設(shè)備通過網(wǎng)口連接的,配置方法也是類似的。首先用戶需要將2臺設(shè)備、計算機連接到同一個局域網(wǎng)中。這臺計算機上運行ZLVircom(或者ZLDevManage),連接計算機的目的只是為了配置,配置完成后計算機可以不必連接。

點擊ZLVircom的設(shè)備管理,找到這2臺設(shè)備,如圖6所示。然后點擊“設(shè)備編輯”,對設(shè)備進(jìn)行配置。設(shè)備對聯(lián)可以分為TCP對聯(lián)和UDP對聯(lián)。如果是TCP對聯(lián)方式,兩臺設(shè)備的參數(shù)如圖5所示。箭頭所示的參數(shù)必須對應(yīng)起來,如同“3.2 TCP客戶端”和“3.3 TCP服務(wù)器”的對應(yīng)方式一樣。TCP連接成功后,可以通過回到“設(shè)備管理”對話框看連接狀態(tài),如圖6所示,如果兩臺設(shè)備的狀態(tài)都是“已連接”則表示兩臺設(shè)備的TCP鏈路已經(jīng)建立。

如果是UDP方式對聯(lián)的,配置參數(shù)如圖7所示,箭頭對應(yīng)的參數(shù)必須是一一對應(yīng)的。UDP對聯(lián)只要參數(shù)配置正確不必檢查連接狀態(tài),發(fā)送的數(shù)據(jù)會自動發(fā)送到指定的設(shè)備。

最后需要提醒一下,如果是設(shè)備對聯(lián)的,除了網(wǎng)口參數(shù)按照以上設(shè)置外,還必須設(shè)置正確的串口參數(shù)。主要是聯(lián)網(wǎng)產(chǎn)品的波特率等需要和用戶的設(shè)備的波特率等一致。這樣設(shè)置以后,用戶設(shè)備可以通過兩臺聯(lián)網(wǎng)產(chǎn)品的串口互相發(fā)送數(shù)據(jù)。