RS232轉(zhuǎn)TCPIP的TCP工作模式選擇
TCP協(xié)議有很多優(yōu)點(diǎn),這里只介紹何時(shí)使用UDP協(xié)議。
1.節(jié)省上位機(jī)的線路資源。在ZLSN模塊的串口轉(zhuǎn)以太網(wǎng)應(yīng)用中,如果選擇TCP協(xié)議,且為TCP客戶端的話,那么TCP連接是在模塊上電之后就開始連接的,屬于“長(zhǎng)連接”。這就使得TCP協(xié)議一直占用一條通信線路(一個(gè)socket接口),如果聯(lián)網(wǎng)模塊個(gè)數(shù)很多(例如上萬個(gè)),那么用TCP協(xié)議占用較多資源。
2.簡(jiǎn)化上位機(jī)編程的復(fù)雜性。基于UDP的socket編程相對(duì)于TCP要簡(jiǎn)單些。
3.需要廣播或者組播的應(yīng)用。
2.2 客戶端和服務(wù)器的選擇
1. 一個(gè)監(jiān)控中心還是多個(gè)監(jiān)控中心。
一個(gè)監(jiān)控中心:在單個(gè)監(jiān)控中心的集中監(jiān)控系統(tǒng)中,分散在各個(gè)采集點(diǎn)的ZLSN模塊將采集數(shù)據(jù)傳送到中心計(jì)算機(jī),此時(shí)最好采用ZLSN模塊為TCP客戶端的方式,因?yàn)榇藭r(shí)每個(gè)模塊只要設(shè)置一個(gè)目的IP(中心計(jì)算機(jī)的IP地址)即可。當(dāng)然也可以采用中心為客戶端、模塊為服務(wù)端方式,但是此時(shí)中心必須記住每個(gè)模塊的IP地址,不利于系統(tǒng)的延展性和配置的靈活性。
多個(gè)監(jiān)控中心:現(xiàn)在有多個(gè)中心計(jì)算機(jī)需要監(jiān)控聯(lián)網(wǎng)模塊,由于TCP客戶端模塊只能連接一個(gè)中心,所以多個(gè)中心無法監(jiān)控一個(gè)模塊(除非或者采用卓嵐的“硬件TCP/IP協(xié)議棧”功能,讓模塊可以根據(jù)需要連接到不同的中心)。此時(shí)應(yīng)該采用模塊為客戶端的方式。
2.知道對(duì)方IP地址。如果通信的AB雙方中如果有一方A不知道對(duì)方B的IP地址,那么A必須作為客戶端。這是因?yàn)锳不知道B的IP地址,也無法進(jìn)行連接操作。在ZLSN聯(lián)網(wǎng)模塊大量應(yīng)用的網(wǎng)絡(luò)中,ZLSN聯(lián)網(wǎng)模塊的IP地址通過動(dòng)態(tài)獲取,所以中心并不知道所有模塊的IP地址,所以此時(shí)模塊應(yīng)該作為客戶端。
3.主從關(guān)系。在主從關(guān)系的通信模式中,主機(jī)總是先發(fā)送數(shù)據(jù),從機(jī)給出應(yīng)答。在TCP短連接應(yīng)用中,主機(jī)應(yīng)該采用客戶端。這是因?yàn)槎踢B接采用有數(shù)據(jù)發(fā)送的時(shí)候建立TCP連接的方式,只有主機(jī)才知道何時(shí)需要發(fā)送那個(gè)數(shù)據(jù)合適需要建立連接,所以主機(jī)為客戶端。
2.3 TCP短連接和TCP長(zhǎng)連接的選擇
TCP短連接由于占用的TCP線路資源少,一般效率優(yōu)于長(zhǎng)連接。但是以下情況下采用長(zhǎng)連接:通信的雙方?jīng)]有主從關(guān)系。任何一方都有首先發(fā)送數(shù)據(jù)的可能,所以要保持TCP連接一直保持。選擇長(zhǎng)連接的時(shí)候需要注意,在連接建立到當(dāng)前,中間網(wǎng)線是否有斷開,需要時(shí)時(shí)檢測(cè)連接的可用性,短連接無該問題,使用較為方便。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論