热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TCP/IP协议和工业以太网传输控制方法及通信模式比较1

TCPIP协议TransmissionControlProtocolInternetProtocol的简写,中译名为传输控制协议因特网互联协议,又名网络通讯协议,是Interne

 TCP/IP协议

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。OSI(Open System Interconnect)传统的开放式系统互连参考模型。《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》

《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》

《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》

数据格式

数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)
《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》

   传统的TCP/IP参考模型被分为四个层次:应用层、传输层、网络互连层和主机到网络层。各个层次上均有相应的标准协议。这些协议的结合使用构成了整个基于TCP/IP模型的网络应用。

        由于传输机制和通信模式的问题主要关联到OSI网络模型的第四层——网络传输层,所以本文重点讨论在传输层中几种以太网的差异。

  UDP和TCP机制
  在工业以太网应用中,网络互连层和传输层协议共同构成了整个系统的通信栈。不同的工业以太网方案在通信栈的构成方式、应用模型上有一定的差别,这种差别也是我们讨论的重点。其中最为典型的一个问题就是:传输层使用TCP还是使用UDP的问题
  首先我们看一下TCP/IP协议中关于TCP/UDP的说明:
  TCP&UDP分别是Transmission Control Protocol和User Datagram Protocol的英文缩写。关于两者之间最广为人知的区别就是:是否面向连接。而从工业以太网的角度,事实上,这种区别所造成的对网络性能的影响才是一个关键。具体说来:

  TCP作为基于连接的协议,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。而且为确保正确地接收数据,TCP 会为每个封包都加上一个顺序码,  并且要求在目标计算机成功收到数据时发回一个确认(即 ACK)如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。

  以上的连接、包计数、接收确认握手等机制确实能使TCP协议做到为应用程序提供可靠的通信连接,使一台网络终端发出的字节流无差错地发往网络上的其他终端。但是这些操作却影响到了网络在速度上的性能。

  而UDP是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!它也没有TCP 的封包所具有顺序码, 接收端亦不会有响应产生及进行检查以确认是否收到重复或遗失的封包。这些都决定了UDP是作为一种不可靠的协议存在的。但是UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证

  从工业以太网的角度出发,应当从数据通信的需求上对UDP或TCP的选择问题做一个结论。首先我们来看一看在工业环境中,网络上传输的数据具有的特性。

  工业环境中待传输的信息类型包括实时过程控制数据、设备状态、监控数据、系统故障诊断数据、报警数据等。这些数据通常在量上并不大。这个特点在以往的
现场总线
体系中有充分的体现,例如,LonWorks现场总线的数据包长度只有12个bit,EIB现场总线数据包长度只有22个bit,等等。

  而这些数据对实时的传输的要求也不尽相同。具体说来,I/O数据对实时性要求最高。而组态、参数设置、诊断等则不太要求过高的实时性而更偏向可靠的数据传输。

  对数据传输的要求不同决定了协议的选择,在工业以太网的方案中,可以采取的方式是:

  对于对实时性要求较高的实时I/O数据,采用UDP/IP协议来传送,这时可以获得UDP的如下几个好处:

  (1) 数据发送前不用建立连接,减少了开销和延迟,这一点控制系统来说是非常重要的。

  (2) UDP没有采用可靠交付,数据收发双方不用维护很多的用于记录连接状态的表。

  (3) UDP 数据报首部很短,只有8字节,处理方便。

  (4) UDP取消了拥塞控制,所以发送方不会降低发送速度,这点在实时应用上非常重要。

  而对实时性要求不太高的显式信息则采用TCP/IP来传送。这样减少了UDP方式的传输负担,也更容易实现。

  TCP和UDP选择的通信模式
  在工业以太网的关键任务——实时数据传输上,依靠的或者是传输可靠的TCP或者是传输迅速的UDP。基本上比较侧重于其中一者。对具体某一种工业以太网方案而言,在选择TCP还是UDP的问题上,还有一个重要的原因是其方案中所提供的通信模式。
  网络通信模式大体上有以下几种:
  1.Client/Server(客户端/服务器) 模式;
  2.master/slave(主/从)模式;
  3.peer to peer(点对点)模式;
  4.produce r/consumer(生产者/消费者)模式;
  5.Publish/subscribe(发布者/预定者)模式。

  基于TCP的工业以太网
  正是基于TCP/IP协议的可靠和稳定性,大多数工业以太网协议,如:Modbus/TCP、PROFInet、INTERBUS、MMS TCP/IP及.NET for Manufacturing等都选择了TCP/IP。由于篇幅有限,下面仅就Modbus/TCP、PROFInet做简单介绍如(图1)。

(1)Modbus/TCP
  回到对于工业以太网数据传输的特点和需求上,我们可以看到并不是所有的工业环境都需要达到微秒级别的时间要求,类似于IDA所采用的RTPS模式虽然能使工业以太网的传输层性能达到相当的标准,但同时又增加了过多的成本。另一方面,某些看上去似乎需要UDP协议来体现其高速性能的场合,其实可以通过在物理层和链路层的优化的基础上(如采用星型交换机等),结合工业以太网数据量小的特点,采用传统方式的TCP协议来实现。这样即省去了在使用UDP协议时必须做增强开发来构造通信的确定性方面所付出的高额代价(TCP本身就是确定性的

 

),又可以实现工业以太网的实时性要求。这方面的一个典型就是施耐德公司的一个相对价格低廉的工业以太网方案——Modbus/TCP协议。

  Modbus/TCP协议是在Modbus协议的基础上发展而来的。为了尽量地使用已有成果,Modbus/ TCP协议的实现是在不改变原有Modbus协议的基础上,只是将它的传输层协议简单的移植到TCP/IP上。因此在TCP/IP网络中Modbus/TCP使用传输控制协议(TCP)进行Modbus应用协议的数据传输。参数和数据使用封装的方法嵌入到TCP报文的用户数据容器中进行传送。另外地址和校验在Modbus/TCP中也由底层的TCP协议来完成。由于传输层以上遵循Modbus协议,所以采用C/S结构,在数据传输前进行之前,需要在客户和服务器之间建立一个TCP/IP连接。服务器使用端口502作为Modbus/TCP连接的端口。连接的建立通常由TCP/IP的Socket接口的软件协议自动实现的,因此对应用完全透明。

  一旦客户和服务器之间的TCP/IP连接建立,同样的连接可以根据要求的方向用来传输任意数量的用户数据。客户和服务器还可以同时建立多个TCP/IP连接,最大的连接数量取决于TCP/IP接口的规范。在输入输出数据循环传输的情况下,永久的连接通常维持在客户和服务器之间,只有在发生特殊事件而有必要传送参数和诊断报文时,连接才能在每一次数据传送后被关闭,需要时再次建立。这也是Modbus/TCP在工业以太网中采用TCP做为传输层协议而不采用速度更快的UDP协议的原因所在。

  虽然Modbus/TCP由于在传输层采用TCP协议,而使其不得不在传输层协议以下的诸层采取更有效的实时性策略。但与PROFINet,Ethemet/IP和IDA等方案相比,Modbus/TCP在其开放性、简单和稳定的性能上具有优势,是一个具有较高的性能价格比的工业以太网方案。

《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》

(2)ProfiNet 
  事实上,在工业以太网应用中,网络互连层和传输层协议并非仅仅局限在TCP/IP之上。在由Profibus Internationa(PI)组织提出的基于以太网的自动化标准——PROFINET实时以太网中,就采用了独立的实时通道来扩展系统的实时性能。  

《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》
《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》图2

  PROFINET通信模型如(图2)。可以看到,在PROFINET应用中,其标准参数(如设备参数、组态和读取的诊断数据)是由传统的TCP/UDP+IP+以太网来传送的。与之对就的是非实时的数据传输标准通道。但其实时数据则由PROFINET提供的两类实时通信通道RT和IRT完成。实时通道RT是软实时SRT(Software RT)方案,主要用于过程数据的高性能循环传输、事件控制的信号与报警信号等。它位于旁路第3层和第4层,可以提供精确通信能力。为进一步优化通信功能,PROFINET根据IEEE802.1p定义了报文的优先级,最多可用7级。而实时通道IRT采用了IRT(isochronous realtime)等时同步实时的ASIC芯片解决方案,以进一步缩短通信栈软件的处理时间,特别适用于高性能传输、过程数据的等时同步传输、以及快速的时钟同步运动控制,其可以在1毫秒时间周期内,实现对100多个轴的控制,而抖动不足1微秒。

应用层

向用户提供一组常用的应用程序,比如
电子邮件、文件传输访问、
远程登录等。远程登录
TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用
FTP协议来提供网络内机器间的文件拷贝功能。 应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP。
FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换,使用端口53。
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。
HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80。

《TCP/IP协议和工业以太网传输控制方法 及通信模式比较1》


推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • python计算数据包校验和(python接口数据校验)
    本文目录一览:1、怎么用python算p值和t检验 ... [详细]
  • 三小时掌握计算机网络基础(通俗易懂)
    目录1.网络层次划分2.OSI七层网络模型3.IP地址4.子网掩码及网络划分5.ARPRARP协议6.路由选择协议7.TCPIP协议8.UDP协议 9.DNS协议 ... [详细]
  • ! Configuration File for keepalivedglobal_defs {   notification_email {     ... [详细]
  • 1网络设备驱动的结构Linux网络设备驱动程序体系结构如下图,从上到下依次划分为4层,依次为网路协议接口层、网络设备接口层,提供实际功能的设备驱动功能层以及网络设备与媒介层。 ... [详细]
  • 邮件服务在网络里的角色是越来越重要,不管是因特网上还是在局域网内部,用户都习惯使用电子邮件来处理日常的工作。而越来越多的企业和单位,也都急切希望能拥有自己的内部邮件服务器,以加强员 ... [详细]
author-avatar
慕容盼烟迎曼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有