RS232转TCPIP的TCP工作模式选择

本文介绍在串口转tcp/ip中如何使用各种tcp工作模式,根据不同的应用如何进行灵活选择tcp客户端、tcp服务器、udp、udp组播。
1.tcp&udp工作模式
tcp/ip是网际互联的基本协议,tcp/ip实际涉及网络协议的两层:网络层和传输层。ip属于网络层,而tcp属于传输层,实际上tcp/ip协议还有另外部分协议即udp协议,udp协议和tcp协议共同组成了tcp/ip协议的传输层。而tcp协议有具有客户端和服务端两种工作模式。在rs232/rs485联网模块应用中,主要在udp、tcp客户端、tcp服务器3种模式之间进行选择。如图1所示。
1.1 tcp和udp的区别和比较
图1.tcp&udp各种工作模式演示
tcp(transmission control protocol)是可靠连接协议。我们可以用打电话来类比tcp协议。使用tcp协议进行数据传输,首先需要建立连接;就如在通电话前需要先拨通电话一样。tcp是可靠传输的,即你传输的数据有误或者丢失,则会自动重新传输以保证数据正确;这正如打电话的时候,如果信号不好,收方会说:“听不清,请再说一遍。”
udp(user datagram protocol)是报文传输协议。我们可以用手机短信来类比udp协议。使用udp协议,你无需先征得对方的同意(无需先建立连接),可以随时发送。但是udp协议是不可靠传输的,你发送出去的数据不能够保证正确地被对方收到;
所谓“正确接收”,它包括3方面的内容:1.丢失问题:数据丢失后可以重传。2.误码问题:数据内容错误能被检测并重新发送。3.顺序问题:udp无法保证数据的顺序,例如在发送长文字的短信的时候,有可能后半部分短信内容先收到,然后再收到前半部分短信内容。这给接收者较大的迷惑,tcp协议没有这个问题。
udp协议的也有自身优点。1.简单性、方便性,udp协议非常类似串口通信,因为串口发送数据本身基于非连接(报文)的。此时在串口转以太网的时候,使用udp协议符合原来的思维。2.udp协议具有广播、组播功能,可以实现一对多通信。
表1. tcp与udp的区别
tcp
udp
需要连接


占用线路


可靠传输


简单易用


支持广播


1.2 tcp客户端和tcp服务器的区别
在选择tcp进行通信的时候,通信的双方,必须一方为tcp客户端(tcp client),一方为tcp服务器(tcp server)。以打电话来类比,打电话的人是tcp客户端,接电话的一方为tcp服务器。tcp/ip协议中的ip地址类似电话号码,而tcp/ip中的端口号类似电话分机号。客户端(拨电话者),首先需要知道对方的ip地址和端口(电话号码和分机号),先连接上tcp服务器端(接听者的电话摘机),才能进行数据传输(通话)。和一般电话不同,在这里tcp服务器可以同时接入多个tcp客户端,就如有多路线路的电话,不会因为一路电话在接通中而不能接入其它电话。
在zlsn联网模块的rs232转网络中,tcp的长连接和短连接。tcp长连接就是连接建立后不断开,直到断电。tcp短连接是指需要通信的时候建立连接,通信完毕后立即关闭连接。
2.工作模式的选择
2.1 tcp和udp的选择
tcp协议有很多优点,这里只介绍何时使用udp协议。
1.节省上位机的线路资源。在zlsn模块的串口转以太网应用中,如果选择tcp协议,且为tcp客户端的话,那么tcp连接是在模块上电之后就开始连接的,属于“长连接”。这就使得tcp协议一直占用一条通信线路(一个socket接口),如果联网模块个数很多(例如上万个),那么用tcp协议占用较多资源。
2.简化上位机编程的复杂性。基于udp的socket编程相对于tcp要简单些。
3.需要广播或者组播的应用。
2.2 客户端和服务器的选择
1. 一个监控中心还是多个监控中心。
一个监控中心:在单个监控中心的集中监控系统中,分散在各个采集点的zlsn模块将采集数据传送到中心计算机,此时最好采用zlsn模块为tcp客户端的方式,因为此时每个模块只要设置一个目的ip(中心计算机的ip地址)即可。当然也可以采用中心为客户端、模块为服务端方式,但是此时中心必须记住每个模块的ip地址,不利于系统的延展性和配置的灵活性。
多个监控中心:现在有多个中心计算机需要监控联网模块,由于tcp客户端模块只能连接一个中心,所以多个中心无法监控一个模块(除非或者采用卓岚的“硬件tcp/ip协议栈”功能,让模块可以根据需要连接到不同的中心)。此时应该采用模块为客户端的方式。
2.知道对方ip地址。如果通信的ab双方中如果有一方a不知道对方b的ip地址,那么a必须作为客户端。这是因为a不知道b的ip地址,也无法进行连接操作。在zlsn联网模块大量应用的网络中,zlsn联网模块的ip地址通过动态获取,所以中心并不知道所有模块的ip地址,所以此时模块应该作为客户端。
3.主从关系。在主从关系的通信模式中,主机总是先发送数据,从机给出应答。在tcp短连接应用中,主机应该采用客户端。这是因为短连接采用有数据发送的时候建立tcp连接的方式,只有主机才知道何时需要发送那个数据合适需要建立连接,所以主机为客户端。
2.3 tcp短连接和tcp长连接的选择
tcp短连接由于占用的tcp线路资源少,一般效率优于长连接。但是以下情况下采用长连接:通信的双方没有主从关系。任何一方都有首先发送数据的可能,所以要保持tcp连接一直保持。选择长连接的时候需要注意,在连接建立到当前,中间网线是否有断开,需要时时检测连接的可用性,短连接无该问题,使用较为方便。

采用单片机与PT1000温度传感器实现风机温度控制系统的设计
电量隔离传感器的检测技术分析
如何用网卡实现双机互联
华米科技发布首款基于RSIC-V架构的可穿戴AI芯片-“黄山1号”
京东方与北京建院合作建立联合创新实验室
RS232转TCPIP的TCP工作模式选择
智能停车场系统通过IP通讯技术实现停车场的无人值守
开关机械特性测试仪校准装置规则及注意事项有哪些?
直播卖房的双重魔力,未来直播卖房将会如何发展
简单充电电路
OPPO计划在2019年将研发资金投入增加一倍以上
真菌毒素检测仪快速准确,智能检测新时代|飞测生物
支付宝五福活动已超九百万人集齐 产品经理已跪
蔚来首颗自研芯片“杨戬”NX6031官宣
如何降低开关电源纹波
北京2019年自动驾驶路测报告出炉 中国自动驾驶有望进一步加速发展
SHARC 2148x和SHARC 2147x系列处理器
诺基亚不复当年勇,低调进军物联网
对于智能锁,真插芯真的比假插芯更加安全吗
何谓芯片的“时钟”?芯片时钟是怎么一回事?