串口转TCP/IP的TCP工作模式选择 点击:230 | 回复:0



谢谢你的爱1999

    
  • [版主]
  • 精华:1帖
  • 求助:12帖
  • 帖子:717帖 | 3886回
  • 年度积分:977
  • 历史总积分:161101
  • 注册:2013年4月29日
发表于:2017-05-26 08:45:06
楼主

本文主要介绍在串口转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的区别和比较

             

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的区别        

 TCPUDP
需要连接

占用线路

可靠传输

简单易用

支持广播

             

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短连接是指需要通信的时候建立连接,通信完毕后立即关闭连接。

             

1.3 UDP广播

             

  UDP相对于TCP来说UDP的一个优势是可以实现一对多的通信。以下就介绍UDP广播和UDP组播。

             

  UDP广播:UDP广播包不同于普通的UDP数据包,UDP广播说明如下:

             

  1. UDP广播包一般只能够在局域网内部存在,也就是说它是不能够实现跨路由通信的。

  2. 同一个局域网内的所有的计算机都能够接收到广播包。这样增加了网络的负担,同时安全性也会降低。

  3. 卓岚ZLSN系列模块支持发送和接受UDP广播包。另外SocketDlgTest也支持发送和接受UDP广播数据包,可以用于UDP广播调试。

             

1.4 UDP组播

             

  UDP组播:UDP单播(即普通的UDP通信)可以实现点与点之间的通信。UDP的广播可以实现一点向多点发送数据。但是UDP广播存在以下缺点:不仅需要接收数据的联网模块可以收到数据,任何一台局域网中的计算机都可以收到数据,这样数据包保密性不强,同时也给不愿接收该数据的计算机增加了负担。

             

  UDP组播可以解决以上问题,UDP组播可以实现一点向多点发送数据,而且只有加入某个组播组的联网模块才可以收到数据,不会对组播组外的模块或计算机增加接收负担,减轻了网络负荷。

             

  为了确定您购买的卓岚产品是否支持UDP组播请打开ZLVircom程序的设备设置对话框,点击“更多高级选项”,如果该设备支持的高级功能中“UDP组播”是打勾的则表明该设备支持UDP组播。

             

2.工作模式的选择

             

2.1 TCP和UDP的选择

             

  在TCP和UDP选择上,TCP协议有很多优点,这里只介绍何时使用UDP协议。

             

             

1.节省上位机的线路资源。在ZLSN模块的串口转以太网应用中,如果选择TCP协议,且为TCP客户端的话,那么TCP连接是在模块上电之后就开始连接的,属于“长连接”。这就使得TCP协议一直占用一条通信线路(一个socket接口),如果联网模块个数很多(例如上万个),那么用TCP协议占用较多资源。而UDP则无此问题。

         

2.简化上位机编程的复杂性。基于UDP的socket编程相对于TCP要简单些。

             

3.需要广播或者组播的应用。

             

             


1分不嫌少!


楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师