一种降低网络数据传输量的编解码方法
文献发布时间:2024-04-18 19:59:31
技术领域
本发明涉及一种降低网络数据传输量的编解码方法。
背景技术
在铁路信号领域,广泛应用了基于UDP/IP(传输控制/网络之间互连协议)协议的网络通信,由于OSI(全称:Open System I nterconnect ion Reference Mode l,开放式系统互联)协议在数据链路层以太网物理特性的限制,当单个数据包大于1472个字节时,将会在IP层进行分包,并在对端的IP层进行组包,但UDP协议是不可靠传输协议,当分片丢失导致重组失败,会导致UDP数据被丢弃,进而影响应用层对数据的使用。
发明内容
本发明的目的在于克服现有的缺陷而提供的一种降低网络数据传输量的编解码方法,通过降低网络数据的传输量,进而提高传输效率。
实现上述目的的技术方案是:
一种降低网络数据传输量的编解码方法,包括:
步骤S1,根据业务字段的有效长度进行编码;
步骤S2,根据业务字段定义长度,对所有的要编码的业务字段生成crc(循环冗余校验)校验码;
步骤S3,将crc校验码编码到数据包中;
步骤S4,根据业务字段的有效长度,数据被解码到系统定义的业务字段中,根据业务字段定义长度,对所有的被解码的业务字段生成新的crc校验码,进而判断是否编解码成功。
优选的,所述步骤S1中,未将crc校验码编码至数据包时,数据包的总字节数为:
ΣY=Y(1)+Y(2)+Y(3)+Y(4)+…+Y(n+1)+Y(n+2)+Y(n+3)+Y(n+4)+…+Y(m);
ΣY代表总的字节数,Y(a)代表业务字段定义的有效字节数,a代表不同的业务字段。
优选的,所述步骤S3中,将crc校验码编码至数据包时,数据包的总字节数为:
ΣY=Y(1)+Y(2)+Y(3)+Y(4)+…+Y(n+1)+Y(n+2)+Y(n+3)+Y(n+4)+…+
Y(m)+Y(crc);
ΣY代表总的字节数,Y(a)代表业务字段定义的有效字节数,a代表不同的业务字段,Y(crc)代表crc校验码长度。
优选的,所述步骤S4中,判断是否编解码成功包括:
步骤S41,新的crc校验码与数据包中的crc校验码进行比较,相同,则编解码成功;
步骤S42,新的crc校验码与数据包中的crc校验码进行比较,不相同,则编解码失败。
本发明的有益效果是:本发明采用了应用层的有效数据编码技术,大大降低了编码后数据包的大小,从而降低了在IP层进行拆包的可能性;在传输同样业务字段的场景下,根据业务字段的有效长度进行编解码,可以减少数据传输量,减少网络压力,且可以通过新旧crc校验码检测数据编解码是否出错。
附图说明
图1是本发明一种降低网络数据传输量的编解码方法的流程图;
图2是本发明中判断是否编解码成功的流程图;
图3是本发明中业务字段定义长度和有效长度的示意图;
图4是本发明中进路请求类型定义长度和有效长度的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述。在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相正对地重要性。
下面将结合附图对本发明作进一步说明。
如图1所示,一种降低网络数据传输量的编解码方法,包括:
步骤S1,根据业务字段的有效长度进行编码。
对于真实的业务场景业务字段的实际有效长度会小于业务字段定义长度,如图3所示,例如,‘进路请求类型’字段定义长度为char类型,8b it,但是它的业务含义只有3个值,即0-手动,1-自动,2-未设置,使用2b it就可以标识出这3个业务含义,即00,01,10,11;业务字段的有效长度为2b it,如图4所示。
为了在两个通信系统间传输业务数据,通常需要根据业务字段的定义长度进行编码。通信数据编码格式举例如下表1所示:
表1
如下面公式可以计算出数据包的总字节数为:
ΣX=X(1)+X(2)+X(3)+X(4)+…+X(n+1)+X(n+2)+X(n+3)+X(n+4)+…+X(m);
ΣX代表总的字节数,X(a)代表业务字段定义的字节数,a代表不同的业务字段。
然而,本发明根据业务字段的有效长度进行编码,通信数据编码格式举例如下
表2所示:
表2
如下面公式可以计算出数据包的总字节数为:
ΣY=Y(1)+Y(2)+Y(3)+Y(4)+…+Y(n+1)+Y(n+2)+Y(n+3)+Y(n+4)+…+Y(m);
ΣY代表总的字节数,Y(a)代表业务字段定义的有效字节数,a代表不同的业务字段。
由于业务字段的有效字节数小于定义字节数,所以ΣY会小于ΣX,这样就可以大大缩小编码的数据包的大小。
步骤S2,根据业务字段定义长度,对所有的要编码的业务字段生成crc校验码。
实施例中,上面使用业务字段有效长度进行编码可以大量减小数据包的大小,但是同时也存在一个风险,业务字段的有效长度判定出错,这个问题有时候很难发现,为了发现这个问题,增加了crc校验技术。
步骤S3,将crc校验码编码到数据包中。
实施例中,将crc校验码编码至数据包时,通信数据编码格式举例如下表3所示:
表3
如下面公式可以计算出数据包的总字节数为:
ΣY=Y(1)+Y(2)+Y(3)+Y(4)+…+Y(n+1)+Y(n+2)+Y(n+3)+Y(n+4)+…+
Y(m)+Y(crc);
ΣY代表总的字节数,Y(a)代表业务字段定义的有效字节数,a代表不同的业务字段,Y(crc)代表crc校验码长度。
步骤S4,根据业务字段的有效长度,数据被解码到系统定义的业务字段中,根据业务字段定义长度,对所有的被解码的业务字段生成新的crc校验码,进而判断是否编解码成功。
如图2所示,判断是否编解码成功包括:
步骤S41,新的crc校验码与数据包中的crc校验码进行比较,相同,则编解码成功。
步骤S42,新的crc校验码与数据包中的crc校验码进行比较,不相同,则编解码失败。
本发明采用应用层有效数据编码解码技术,减少了无用数据被编码到数据包中,降低了数据包的长度;同时增加了数据校验方法,排查编解码的正确性。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 一种用于校正显示设备的灰阶显示曲线的方法、电子设备及计算机可读存储介质
- 传感器特性曲线的修正方法、装置、设备及存储介质
- 曲线插补方法、设备及计算机可读存储介质
- 机器人NURBS曲线速度规划方法、设备及存储介质
- S形速度曲线前瞻规划方法和装置、存储介质和计算设备