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

圖1.TCPUDP各種工作模式演示
TCP(Transmission Control Protocol)是可靠連接協(xié)議。我們可以用打電話(huà)來(lái)類(lèi)比TCP協(xié)議。使用TCP協(xié)議進(jìn)行數據傳輸,首先需要建立連接;就如在通電話(huà)前需要先撥通電話(huà)一樣。TCP是可靠傳輸的,即你傳輸的數據有誤或者丟失,則會(huì )自動(dòng)重新傳輸以保證數據正確;這正如打電話(huà)的時(shí)候,如果信號不好,收方會(huì )說(shuō):“聽(tīng)不清,請再說(shuō)一遍?!?/DIV>
UDP(User Datagram Protocol)是報文傳輸協(xié)議。我們可以用手機短信來(lái)類(lèi)比UDP協(xié)議。使用UDP協(xié)議,你無(wú)需先征得對方的同意(無(wú)需先建立連接),可以隨時(shí)發(fā)送。但是UDP協(xié)議是不可靠傳輸的,你發(fā)送出去的數據不能夠保證正確地被對方收到;
所謂“正確接收”,它包括3方面的內容:1.丟失問(wèn)題:數據丟失后可以重傳。2.誤碼問(wèn)題:數據內容錯誤能被檢測并重新發(fā)送。3.順序問(wèn)題:UDP無(wú)法保證數據的順序,例如在發(fā)送長(cháng)文字的短信的時(shí)候,有可能后半部分短信內容先收到,然后再收到前半部分短信內容。這給接收者較大的迷惑,TCP協(xié)議沒(méi)有這個(gè)問(wèn)題。
UDP協(xié)議的也有自身優(yōu)點(diǎn)。1.簡(jiǎn)單性、方便性,UDP協(xié)議非常類(lèi)似串口通信,因為串口發(fā)送數據本身基于非連接(報文)的。此時(shí)在串口轉以太網(wǎng)的時(shí)候,使用UDP協(xié)議符合原來(lái)的思維。2.UDP協(xié)議具有廣播、組播功能,可以實(shí)現一對多通信。
表1. TCP與UDP的區別
TCP | UDP | |
需要連接 | 是 | 否 |
占用線(xiàn)路 | 是 | 否 |
可靠傳輸 | 是 | 否 |
簡(jiǎn)單易用 | 否 | 是 |
支持廣播 | 否 | 是 |
1.2 TCP客戶(hù)端和TCP服務(wù)器的區別
在選擇TCP進(jìn)行通信的時(shí)候,通信的雙方,必須一方為T(mén)CP客戶(hù)端(TCP Client),一方為T(mén)CP服務(wù)器(TCP Server)。以打電話(huà)來(lái)類(lèi)比,打電話(huà)的人是TCP客戶(hù)端,接電話(huà)的一方為T(mén)CP服務(wù)器。TCP/IP協(xié)議中的IP地址類(lèi)似電話(huà)號碼,而TCP/IP中的端口號類(lèi)似電話(huà)分機號??蛻?hù)端(撥電話(huà)者),首先需要知道對方的IP地址和端口(電話(huà)號碼和分機號),先連接上TCP服務(wù)器端(接聽(tīng)者的電話(huà)摘機),才能進(jìn)行數據傳輸(通話(huà))。和一般電話(huà)不同,在這里TCP服務(wù)器可以同時(shí)接入多個(gè)TCP客戶(hù)端,就如有多路線(xiàn)路的電話(huà),不會(huì )因為一路電話(huà)在接通中而不能接入其它電話(huà)。
在ZLSN聯(lián)網(wǎng)模塊的RS232轉網(wǎng)絡(luò )中,TCP的長(cháng)連接和短連接。TCP長(cháng)連接就是連接建立后不斷開(kāi),直到斷電。TCP短連接是指需要通信的時(shí)候建立連接,通信完畢后立即關(guān)閉連接。
2.工作模式的選擇
2.1 TCP和UDP的選擇
TCP協(xié)議有很多優(yōu)點(diǎn),這里只介紹何時(shí)使用UDP協(xié)議。
1.節省上位機的線(xiàn)路資源。在ZLSN模塊的串口轉以太網(wǎng)應用中,如果選擇TCP協(xié)議,且為T(mén)CP客戶(hù)端的話(huà),那么TCP連接是在模塊上電之后就開(kāi)始連接的,屬于“長(cháng)連接”。這就使得TCP協(xié)議一直占用一條通信線(xiàn)路(一個(gè)socket接口),如果聯(lián)網(wǎng)模塊個(gè)數很多(例如上萬(wàn)個(gè)),那么用TCP協(xié)議占用較多資源。
2.簡(jiǎn)化上位機編程的復雜性?;赨DP的socket編程相對于TCP要簡(jiǎn)單些。
3.需要廣播或者組播的應用。
2.2 客戶(hù)端和服務(wù)器的選擇
1. 一個(gè)監控中心還是多個(gè)監控中心。
一個(gè)監控中心:在單個(gè)監控中心的集中監控系統中,分散在各個(gè)采集點(diǎn)的ZLSN模塊將采集數據傳送到中心計算機,此時(shí)最好采用ZLSN模塊為T(mén)CP客戶(hù)端的方式,因為此時(shí)每個(gè)模塊只要設置一個(gè)目的IP(中心計算機的IP地址)即可。當然也可以采用中心為客戶(hù)端、模塊為服務(wù)端方式,但是此時(shí)中心必須記住每個(gè)模塊的IP地址,不利于系統的延展性和配置的靈活性。
多個(gè)監控中心:現在有多個(gè)中心計算機需要監控聯(lián)網(wǎng)模塊,由于TCP客戶(hù)端模塊只能連接一個(gè)中心,所以多個(gè)中心無(wú)法監控一個(gè)模塊(除非或者采用卓嵐的“硬件TCP/IP協(xié)議?!惫δ?,讓模塊可以根據需要連接到不同的中心)。此時(shí)應該采用模塊為客戶(hù)端的方式。
2.知道對方IP地址。如果通信的AB雙方中如果有一方A不知道對方B的IP地址,那么A必須作為客戶(hù)端。這是因為A不知道B的IP地址,也無(wú)法進(jìn)行連接操作。在ZLSN聯(lián)網(wǎng)模塊大量應用的網(wǎng)絡(luò )中,ZLSN聯(lián)網(wǎng)模塊的IP地址通過(guò)動(dòng)態(tài)獲取,所以中心并不知道所有模塊的IP地址,所以此時(shí)模塊應該作為客戶(hù)端。
3.主從關(guān)系。在主從關(guān)系的通信模式中,主機總是先發(fā)送數據,從機給出應答。在TCP短連接應用中,主機應該采用客戶(hù)端。這是因為短連接采用有數據發(fā)送的時(shí)候建立TCP連接的方式,只有主機才知道何時(shí)需要發(fā)送那個(gè)數據合適需要建立連接,所以主機為客戶(hù)端。
2.3 TCP短連接和TCP長(cháng)連接的選擇
TCP短連接由于占用的TCP線(xiàn)路資源少,一般效率優(yōu)于長(cháng)連接。但是以下情況下采用長(cháng)連接:通信的雙方?jīng)]有主從關(guān)系。任何一方都有首先發(fā)送數據的可能,所以要保持TCP連接一直保持。選擇長(cháng)連接的時(shí)候需要注意,在連接建立到當前,中間網(wǎng)線(xiàn)是否有斷開(kāi),需要時(shí)時(shí)檢測連接的可用性,短連接無(wú)該問(wèn)題,使用較為方便。
tcp/ip相關(guān)文章:tcp/ip是什么
隔離器相關(guān)文章:隔離器原理相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論