CN111464569B - 一种采用自定义协议的以太网数据传输方法 - Google Patents
一种采用自定义协议的以太网数据传输方法 Download PDFInfo
- Publication number
- CN111464569B CN111464569B CN202010570877.XA CN202010570877A CN111464569B CN 111464569 B CN111464569 B CN 111464569B CN 202010570877 A CN202010570877 A CN 202010570877A CN 111464569 B CN111464569 B CN 111464569B
- Authority
- CN
- China
- Prior art keywords
- command
- frame
- sender
- return
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1864—ARQ related signaling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种采用自定义协议的以太网数据传输方法,包括如下步骤:S101,发送方发送开启监测命令和开始传输命令;S102,发送方分别收到接收方发送的相应回令后开始监测与数据传输;S103,传输完毕后,发送方发送关闭监测命令与停止传输命令;S104,发送方分别收到接收方发送的相应回令后停止监测与数据传输。基于UDP协议,采用了监测和传输命令及相应回令的机制保证了传输速率的同时解决了UDP协议由于无连接导致的传输不可靠的问题。
Description
技术领域
本发明涉及以太网连接技术领域,尤其是涉及了一种采用自定义协议的以太网数据传输方法。
背景技术
以太网(Ethernet)是一套广泛应用于局域网(LAN)、城域网(MAN)和广域网(WAN)的计算机网络技术。它在1980年第一次商业化引入,并在1983年被标准化IEEE 802.3,之后被改进以支持更高比特率和更长的链路距离。
TCP/IP网络模型是由OSI七层模型简化而来,自底向上由数据链路层、网络层、传输层和应用层构成。以太网的数据传输本质上在每层进行数据帧填充的过程,所有的TCP、UDP等数据都是以IP数据报进行传输。数据链路层负责封装和解装IP报文,网络层负责路由以及把分组报文发送给目标网络或主机,传输层负责对报文进行分组,以UDP/TCP协议格式封装报文,最后数据上传至应用层,向用户提供应用程序。在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议。以太网数据传输接口主要涉及数据链路层(MAC 层)、网络层协议以及传输层协议的设计。对于实现数据链路层协议,Xilinx公司以及Alteral公司已经生产了成熟的具有MAC层控制器功能的芯片例如Virtex-5、Virtex-6以及Stratix系列,但是缺点在于成本较高。针对网络层与应用层协议,Wlznet公司设计的W5300、W5500芯片集成有TCP/IP协议栈,通过协议栈可以实现网络层中的部分功能,从而高效完成数据通信。
TCP/IP中有两个具有代表性的传输层协议,分别为TCP和UDP。TCP协议是一种面向连接的、可靠的、基于字节流的传输层协议。建立TCP的连接过程需要三次握手,断开TCP连接需要四次握手,因此传输时间较长。
UDP协议是一种面向无连接的、不可靠的、面向报文的传输层协议。在建立连接时不需要三次握手,随时可以发送数据。UDP协议头包含有四部分:源端口、目的端口、长度和校验和。通过端口进行点对点传输,不会对数据报文进行任何的拆分和拼接,因此传输速度较快,适合实时传输应用,缺点在于没有收发确认机制,接收方收到的数据正确性无法保证。
发明内容
为解决现有技术的不足,确保传输正确性的同时能够提高传输速度,本发明采用如下的技术方案:
一种采用自定义协议的以太网数据传输方法,包括如下步骤:
S101,发送方发送开启监测命令和开始传输命令;
S102,发送方分别收到接收方发送的相应回令后开始监测与数据传输;
S103,传输完毕后,发送方发送关闭监测命令与停止传输命令;
S104,发送方分别收到接收方发送的相应回令后停止监测与数据传输。
基于UDP协议,采用了监测和传输命令及相应回令的机制保证了传输速率的同时解决了UDP协议由于无连接导致的传输不可靠的问题。
开始监测后,所述发送方、接收方之间采用重传机制,不需要建立握手协议,发送方在收到重传命令后立刻进行重传,包括如下步骤:
S201,发送方持续发送带有帧计数和包计数的数据帧;
S202,接收方接收并判断所述数据帧的帧计数是否连续;
S203,当所述帧计数不连续时,接收方发送重传命令;
S204,发送方根据重传命令中记录的所述数据帧的帧计数和包计数,重发数据帧。
所述发送方、接收方之间采用命令校验机制,分别对命令和回令进行了两次校验,确保当命令或回令传输出错时,传输会立刻停止,避免命令出错导致的数据收发异常,包括如下步骤:
S301,命令发送方发送命令;
S302,命令接收方判断是否收到正确的命令,当收到正确的命令时,执行S303,否则终止传输;
S303,命令接收方判断所述命令是否需要回令,当需要回令时,命令接收方发送回令,否则执行S305;
S304,命令发送方判断是否收到正确的回令,当收到正确的回令时,执行S305,否则终止传输;
S305,命令发送方执行命令内容。
所述S302、S304中,为所述命令发送方和接收方之间的命令和回令分别设计带有校验和的命令帧和回令帧,所述校验和是命令帧或回令帧的内容位之和,命令接收方和发送方将各自接收到的命令帧和回令帧的内容位之和与校验和比较,完成校验。
为所述重传命令设计重传命令帧,所述重传命令帧的结构包括帧计数、包计数、重传命令校验和,且没有相应的回令。
对所述数据帧的结构增加帧类型,接收方根据帧类型判断是否为重传的数据帧。
本发明的优势和有益效果在于:
提供了以UDP/IP传输协议为基础的一种自定义协议,分别对数据帧、命令帧结构进行设计,并添加了数据校验、重传机制,保证了高传输速率和传输质量。
附图说明
图1是本发明中基于FPGA的自定义协议以太网接口设计框架图。
图2是本发明中数据帧结构图。
图3是本发明中命令帧结构图。
图4是本发明中回令帧结构图。
图5是本发明中数据传输与重发流程图。
图6是本发明中重传命令帧结构图。
图7是本发明中命令校验机制流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本申请是以UDP/IP传输协议为基础的一种自定义协议,分别对数据帧、命令帧结构进行设计,并添加了数据校验、重传机制,保证了传输速率以及质量。该协议可以用于基于FPGA的以太网接口,如图1所示,其中传输层网络层数据模块完成对数据依照传输层/网络层协议进行处理,本申请设计的自定义协议位于应用层数据处理模块,对传输网络层处理后的数据进行整合并解析上层应用命令,处理后的数据通过MAC层传输模块进行数据链路层的传输,实现以太网数据帧的封装和解封装。
本协议为了保证传输的可靠性,对控制字进行了特别的设计。为了区别不同的命令,不同控制字二进制格式下同一位之间差别较大,避免命令由于传输过程中某一位丢失或出错导致含义混淆,同时位宽不能过小,从而减小控制字与有效数据重合的几率。控制字的“1”与“0”个数相近且不出现连续“1”或连续“0”,避免失衡。因此,选取0xD35A,0x2BC6,0x1497等作为控制字。
数据帧结构如图2所示,数据帧帧头作为起始标志,标志着数据帧位置从此开始,为了减小与有效数据重复的概率,其位宽为四字节,选取控制字0xD35A作为帧头;数据帧发送状态表示数据发送是否成功,其中0x00为发送成功,0x01为发送失败;数据长度为应用层一帧数据的长度;有效数据为实际传输的数据;帧尾标志着数据帧结束,选取控制字0x2BC6作为帧尾。数据帧结构增加了帧类型、帧计数和包计数,帧类型代表该数据帧是否为发送失败后的重传数据帧,重传数据帧为0x01,非重传数据帧为0x00,帧计数和包计数统计发送数据帧/包的个数,其中帧计数递增,当数据包计数发生变化时,帧计数清零,重新开始新的一轮递增,分别占两个字节。
命令帧和回令帧的结构如图3、4所示,值与含义如下表所示:
| 名称 | 含义 | 值 | 标号 |
| START_CMD | 传输开始命令 | 0xA34B | 0x1 |
| START_ACK | 传输开始回令 | 0xA34B | 0x1 |
| Stop_CMD | 传输停止命令 | 0x5164 | 0x2 |
| Stop_ACK | 传输停止回令 | 0x5164 | 0x2 |
| MONITOR_CMD | 监测命令 | 0xAE17 | 0x3 |
| MONITOR_ACK | 监测回令 | 0xAE17 | 0x3 |
| Stop_MONITOR_CMD | 停止监测命令 | 0xD295 | 0x4 |
| Stop_MONITOR_ACK | 停止监测回令 | 0xD295 | 0x4 |
| RESENT_CMD | 重传命令 | 0x36B2 | 0x5 |
本协议设计了三种命令:传输、监测和重传命令,传输命令标志着传输的开始或停止,监测命令用于监测数据传输是否出现丢失,在传输开始后开启,重传命令用于发送重传请求,不需要回令。命令/回令帧头标志着命令/回令帧由此位置开始,选取控制字0x1497作为帧头;命令帧中的回令标志位代表该命令帧是否需要接收方发送回令,其中0x00表示不需要,0x01表示需要,回令帧中相应的位数用填充字0xFF替代;命令/回令长度为命令/回令内容的长度;命令/回令校验和将命令/回令位数据相加,从而对其进行简单的校验;命令/回令号为标号,其中命令标号和回令标号一一对应,确保命令指令发出后收到相应的回应指令。
本申请是采用自定义协议的以太网数据传输方法,包括如下步骤:
S101,发送方发送开启监测命令和开始传输命令;
S102,发送方分别收到接收方发送的相应回令后开始监测与数据传输;
S103,传输完毕后,发送方发送关闭监测命令与停止传输命令;
S104,发送方分别收到接收方发送的相应回令后停止监测与数据传输。
基于UDP协议,采用了监测和传输命令及相应回令的机制保证了传输速率的同时解决了UDP协议由于无连接导致的传输不可靠的问题。
如图5所示,开始监测后,所述发送方、接收方之间采用重传机制,不需要建立握手协议,发送方在收到重传命令后立刻进行重传,包括如下步骤:
S201,发送方持续发送带有帧类型、帧计数和包计数的数据帧;
S202,接收方接收并判断所述数据帧的帧计数是否连续;
S203,当所述帧计数连续时,发送方继续发送数据帧,当不连续时,接收方等待正在传输的数据帧传输完毕后,发送重传命令;如图6所示,由于重传命令需要指示发送方重传数据帧的具体位置,因此为所述重传命令设计重传命令帧,所述重传命令帧的结构包括帧计数、包计数、重传命令校验和,且没有相应的回令;
S204,当发送方未收到重发命令,则继续发送下一个待发送的数据帧,直至收到重发命令后,发送方根据重传命令中记录的所述数据帧的帧计数和包计数,重发数据帧。接收方根据帧类型判断是否为重传的数据帧。
如图7所示,所述发送方、接收方之间采用命令校验机制,分别对命令和回令进行了两次校验,确保当命令或回令传输出错时,传输会立刻停止,避免命令出错导致的数据收发异常,包括如下步骤:
S301,命令发送方发送命令;命令接收方如未作出反应,则等待一段时间重新发送命令,命令接收方仍未作出反应,则终止传输;
S302,命令接收方判断是否收到正确的命令,当收到正确的命令时,执行S303,否则终止传输;
S303,命令接收方判断所述命令是否需要回令,当需要回令时,命令接收方发送回令,否则执行S205;
S304,命令发送方判断是否收到正确的回令,当收到正确的回令时,执行S305,否则终止传输;
S305,命令发送方执行命令内容。
所述S302、S304中,为所述命令发送方和接收方之间的命令和回令分别设计带有校验和的命令帧和回令帧,所述校验和是命令帧或回令帧的内容位之和,命令接收方和发送方将各自接收到的命令帧和回令帧的内容位之和与校验和比较,完成校验。
综上所述,在TCP/IP模型上,以UDP/IP传输协议为基础设计了自定义协议,该协议在应用层将数据分为命令数据与有效数据,对其帧结构分别进行设计,使得数据传输速度和效率远大于UDP传输协议。由于UDP协议的无连接性导致传输的不可靠,本发明在数据帧传输和命令帧传输上分别设计了两种机制。对于数据帧传输,协议采用了重传机制,与TCP协议的重传机制不同,该重传机制不需要握手协议,是一种即时重传,重传速度大大提高。由于重传是由发送方接收到重传命令帧开始的,因此重传命令帧结构重新进行了设计,除了命令包含的基本信息外添加了帧计数和包计数,当发送方接收到重传命令帧时对其进行解析,即可定位所需重传数据帧。对于命令帧的传输,协议采用了校验的机制,当接收方收到命令以及发送方收到回令时,进行两次校验,保证了命令收发的准确性。本协议可以封装为一个整合模块IP核,和UDP/IP协议栈、MAC控制器连接,在FPGA上实现以太网接口的设计。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (3)
1.一种采用自定义协议的以太网数据传输方法,其特征在于,包括如下步骤:
S101,发送方发送开启监测命令和开始传输命令;
S102,发送方分别收到接收方发送的相应回令后开始监测与数据传输;
S103,传输完毕后,发送方发送关闭监测命令与停止传输命令;
S104,发送方分别收到接收方发送的相应回令后停止监测与数据传输;
开始监测后,所述发送方、接收方之间采用重传机制,包括如下步骤:
S201,发送方持续发送带有帧计数和包计数的数据帧;
S202,接收方接收并判断所述数据帧的帧计数是否连续;
S203,当所述帧计数不连续时,接收方发送重传命令;
S204,发送方根据重传命令中记录的所述数据帧的帧计数和包计数,重发数据帧;
对所述数据帧的结构增加帧类型,接收方根据帧类型判断是否为重传的数据帧;
所述发送方、接收方之间采用命令校验机制,包括如下步骤:
S301,命令发送方发送命令;
S302,命令接收方判断是否收到正确的命令,当收到正确的命令时,执行S303,否则终止传输;
S303,命令接收方判断所述命令是否需要回令,当需要回令时,命令接收方发送回令,否则执行S305;
S304,命令发送方判断是否收到正确的回令,当收到正确的回令时,执行S305,否则终止传输;
S305,命令发送方执行命令内容;
命令帧包括命令号,回令帧包括回令号,命令/回令号为标号,其中命令标号和回令标号一一对应。
2.根据权利要求1所述的一种采用自定义协议的以太网数据传输方法,其特征在于所述S302、S304中,为所述命令发送方和接收方之间的命令和回令分别设计带有校验和的命令帧和回令帧,所述校验和是命令帧或回令帧的内容位之和,命令接收方和发送方将各自接收到的命令帧和回令帧的内容位之和与校验和比较,完成校验;命令/回令帧头标志着命令/回令帧由此位置开始,选取控制字作为帧头,二进制格式下,控制字的1与0个数相近且不出现连续1或连续0,同时位宽不能过小,从而减小控制字与有效数据重合的几率。
3.根据权利要求2所述的一种采用自定义协议的以太网数据传输方法,其特征在于为所述重传命令设计重传命令帧,所述重传命令帧的结构包括帧计数、包计数、重传命令校验和,且没有相应的回令。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010570877.XA CN111464569B (zh) | 2020-06-22 | 2020-06-22 | 一种采用自定义协议的以太网数据传输方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010570877.XA CN111464569B (zh) | 2020-06-22 | 2020-06-22 | 一种采用自定义协议的以太网数据传输方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111464569A CN111464569A (zh) | 2020-07-28 |
| CN111464569B true CN111464569B (zh) | 2020-11-24 |
Family
ID=71680344
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010570877.XA Active CN111464569B (zh) | 2020-06-22 | 2020-06-22 | 一种采用自定义协议的以太网数据传输方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111464569B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111885205B (zh) * | 2020-08-05 | 2023-05-30 | 浙江源创智控技术有限公司 | 一种分布式ddc控制器协同工作的方法及系统 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104618260A (zh) * | 2015-01-08 | 2015-05-13 | 重庆金美通信有限责任公司 | 一种基于udp的可配策略数据传输方法 |
| CN104660384A (zh) * | 2015-02-02 | 2015-05-27 | 武汉爱科唯自动化科技有限公司 | 一种开放式数控系统的网络远程监控方法 |
| US10594661B1 (en) * | 2017-06-13 | 2020-03-17 | Parallels International Gmbh | System and method for recovery of data packets transmitted over an unreliable network |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102752797A (zh) * | 2011-03-31 | 2012-10-24 | 北京新岸线无线技术有限公司 | 一种无线通信方法、发送装置及接收装置 |
-
2020
- 2020-06-22 CN CN202010570877.XA patent/CN111464569B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104618260A (zh) * | 2015-01-08 | 2015-05-13 | 重庆金美通信有限责任公司 | 一种基于udp的可配策略数据传输方法 |
| CN104660384A (zh) * | 2015-02-02 | 2015-05-27 | 武汉爱科唯自动化科技有限公司 | 一种开放式数控系统的网络远程监控方法 |
| US10594661B1 (en) * | 2017-06-13 | 2020-03-17 | Parallels International Gmbh | System and method for recovery of data packets transmitted over an unreliable network |
Non-Patent Citations (1)
| Title |
|---|
| "基于UDP的可靠文件传输协议的设计与实现";张恺;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141115;正文第7-37页 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111464569A (zh) | 2020-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7483376B2 (en) | Method and apparatus for discovering path maximum transmission unit (PMTU) | |
| US7236494B2 (en) | Limited automatic repeat request protocol for frame-based communications channels | |
| CN101895372B (zh) | 无线链路控制层确认模式下的数据传输方法 | |
| US8402343B2 (en) | Reliable packet cut-through | |
| CN105024861B (zh) | 一种基于北斗卫星的可靠远程通信方法及其通信装置 | |
| CN108462642A (zh) | 基于fpga的udp/ip硬件协议栈及实现方法 | |
| CN112511377B (zh) | 一种基于arq和udp协议的tcp网络加速方法 | |
| US12470321B2 (en) | Bit block sending method and apparatus | |
| CN111711609A (zh) | 一种串口通信中的协议设计方法 | |
| US20060133379A1 (en) | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement | |
| WO2021208694A1 (zh) | 一种数据传输方法及网络设备 | |
| CN116055583B (zh) | 可兼容多协议的通信系统及其控制方法、电子设备 | |
| WO2020143635A1 (zh) | 数据的重传方法、装置、存储介质及电子装置 | |
| CN111770428A (zh) | 一种无线设备的监听方法 | |
| CN115567346A (zh) | 数据报文传输方法、装置、电子设备及存储介质 | |
| CN111464569B (zh) | 一种采用自定义协议的以太网数据传输方法 | |
| CN116260553A (zh) | 数据重传的方法、装置及系统 | |
| CN112737739B (zh) | 一种两设备间多包通讯的方法 | |
| CN114338841A (zh) | 一种指令收发方法、系统、存储介质及设备 | |
| WO2018027814A1 (zh) | 一种数据传输方法、数据接收设备及数据发送设备 | |
| WO2024046151A1 (zh) | 数据流处理方法及相关装置 | |
| WO2012155703A1 (zh) | 基于hdlc协议的链路参数自协商方法、终端及系统 | |
| WO2019034061A1 (zh) | 数据传输方法、装置及系统 | |
| CN107046452A (zh) | 一种数据高带宽高可靠性传输方法 | |
| CN105721491B (zh) | 一种用于面向高速磁浮交通仿真的通信方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |