掌桥专利:专业的专利平台
掌桥专利
首页

IP地址的压缩、解压缩与报文收发方法、装置及存储介质

文献发布时间:2023-06-19 09:30:39


IP地址的压缩、解压缩与报文收发方法、装置及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种IP地址的压缩、解压缩与报文收发方法、装置及存储介质。

背景技术

目前,IP地址的地址长度越来越长,例如,相比4个字节的IPv4地址,IPv6地址的地址长度达到了16个字节,地址长度显著增加。而当报文数据包含大量IPv6的协议时,会显著地增加报文数据的长度,增加网络开销。因此,亟需一种对IP地址进行压缩的方法。

发明内容

本申请的多个方面提供一种IP地址的压缩、解压缩与报文收发方法、装置及存储介质,用以压缩IP地址的地址长度。

本申请实施例提供一种IP地址的压缩方法,包括:

按照待压缩IP地址中的字节顺序,生成零位图,所述零位图中的每个比特表示所述待压缩IP地址中对应字节是否为零字节;

根据所述零位图和所述待压缩IP地址中的非零字节,生成压缩后的IP地址。

本申请实施例提供一种报文发送方法,包括:

获取待发送的报文中的IP地址;

按照所述IP地址中的字节顺序,生成零位图,所述零位图中的每个比特表示所述IP地址中对应字节是否为零字节;

根据所述零位图和所述IP地址中的非零字节,生成压缩后的IP地址;

将所述压缩后的IP地址添加到所述报文中,并将所述报文发送出去。

本申请实施例提供一种IP地址的解压缩方法,包括:

获取待解压缩IP地址;

从所述待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,所述零位图中的每个比特表示所述原始IP地址中对应字节是否为零字节;

根据所述零位图在所述非零字节的基础上对所述原始IP地址中的零字节进行还原,以得到所述原始IP地址。

本申请实施例提供一种报文接收方法,包括:

接收对端发送的报文,所述报文包含待解压缩IP地址;

从所述待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,所述零位图中的每个比特表示所述原始IP地址中对应字节是否为零字节;

根据所述零位图在所述非零字节的基础上对所述原始IP地址中的零字节进行还原,以得到所述原始IP地址。

本申请实施例还提供一种IP地址的压缩装置,包括:存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:

按照待压缩IP地址中的字节顺序,生成零位图,所述零位图中的每个比特表示所述待压缩IP地址中对应字节是否为零字节;

根据所述零位图和所述待压缩IP地址中的非零字节,生成压缩后的IP地址。

本申请实施例还提供一种IP地址的解压缩装置,包括:存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:

获取待解压缩IP地址;

从所述待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,所述零位图中的每个比特表示所述原始IP地址中对应字节是否为零字节;

根据所述零位图在所述非零字节的基础上对所述原始IP地址中的零字节进行还原,以得到所述原始IP地址。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现上述方法中的步骤。

本申请实施例提供的IP地址的压缩、解压缩与报文收发方法、装置及存储介质,基于零位图和待压缩IP地址中的非零字节来压缩IP地址的地址长度,IP地址压缩和解压缩方法的时间复杂度、空间复杂度均较好,压缩和解压缩处理效率较高。另外,对包含大量IP地址的待发送报文,对待发送的报文中的IP地址进行压缩,再将经过IP地址压缩后的报文发送出去,可以减少报文传输过程中的网络开销。与此同时,也能很方便地对接收到的包含待解压缩IP地址的报文进行解析,获取原始的IP地址。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一示例性实施例提供的一种IP地址的压缩方法的流程示意图;

图2为本申请一示例性实施例提供的一种IP地址的解压缩方法的流程示意图;

图3为本申请一示例性实施例提供的一种报文发送方法的流程示意图;

图4为本申请一示例性实施例提供的一种报文接收方法的流程示意图;

图5为本申请一示例性实施例提供的一种IP地址的压缩装置的结构示意图;

图6为本申请一示例性实施例提供的一种IP地址的解压缩装置的结构示意图;

图7为本申请一示例性实施例提供的一种报文发送装置的结构示意图;

图8为本申请一示例性实施例提供的一种报文接收装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一示例性实施例提供的一种IP地址的压缩方法的流程示意图。如图1所示,该方法包括如下步骤:

步骤101、按照待压缩IP地址中的字节顺序,生成零位图,零位图中的每个比特表示待压缩IP地址中对应字节是否为零字节。

步骤102、根据零位图和待压缩IP地址中的非零字节,生成压缩后的IP地址。

在本实施例中,待压缩IP地址可以是任意的地址长度较长的IP地址,例如为IPv6地址。为了便于理解,本实施例以待压缩IP地址为IPv6地址为例进行说明,但并不说明待压缩IP地址仅限于IPv6地址。

具体来说,IPv6的地址数量为2^128个,IPv6地址包含较多的零字节,零字节即值为0的字节。例如,在2400:da00:0000:0000:0000:0dbf:0000:0100这一IPv6地址中,16个字节中有11个零字节。又例如,在2001:0da8:0202:0010:0000:0000:0000:0036这一IPv6地址中,16个字节中有8个零字节。又例如,在2001:0da8:0202:0010:0000:0000:0000:0037这一IPv6地址中,16个字节中有8个零字节。又例如,在2001:0da8:0208:0010:0000:0000:0000:0006这一IPv6地址中,16个字节中有8个零字节。又例如,在2001:0470:0000:0045:0000:0000:0000:0002这一IPv6地址中,16个字节中有10个零字节。

因此,基于待压缩IP地址中可能存在较多的零字节,本实施例提出一种对待压缩IP地址中的零字节进行处理来压缩IP地址的地址长度的方法。

具体而言,对待压缩IP地址的零字节和非零字节进行分析,确定待压缩IP地址的零位图和待压缩IP地址中的非零字节,最后,根据零位图和待压缩IP地址中的非零字节来压缩IP地址的地址长度。

在确定零位图时,可以根据待压缩IP地址中的字节顺序,以及待压缩IP地址中是否为零字节,生成一个零位图。其中,零位图中的每个比特表示待压缩IP地址中对应字节是否为零字节,这样,后续在IP地址的解压缩阶段,可以从零位图中解析出对应的IP地址中字节是否为零字节。

在本实施例中,一个字节对应8个比特位,零字节可以理解为8个比特位全零的字节(00000000),零字节用十六进制表示为00,非零字节可以理解为8个比特位中至少有一个比特位的取值为1的字节,例如(01001100)。

可以理解的是,将由8个比特位组成的一个字节用一个比特位表示,减少了7个比特位的长度。以具有16个字节的IPv6地址来说,能减少16*7=112个比特位。

为了便于理解,结合表1对压缩方法进行说明。

在表1中,待压缩IP地址为2400da000000000000000dbf00000100这一IPv6地址,在需要压缩时,从上述IPv6地址的第一字节开始遍历,如果当前遍历的字节为非零字节,则该非零字节用0比特表示,并添加到零位图中;如果当前遍历的字节为零字节,则该零字节用1比特表示,并添加到零位图中。同时,若当前遍历的字节为非零字节时,将该非零字节添加到非零字节区中;若当前遍历的字节为零字节,则不将零字节添加到非零字节区中。在遍历结束后输出零位图和非零字节区作为压缩后的IPv6地址。由此,针对上述IPv6地址,其零位图中的比特序列为0101111111001101,其非零字节区中的非零字节包括24da0dbf01。将零位图中的比特序列用十六进制表示,即0101111111001101表示为5fcf这两个字节,得到压缩后的IPv6地址为5fcd24da0dbf01。压缩前的IPv6地址的地址长度为16个字节,压缩后的IPv6地址的地址长度为7个字节,IP地址的地址长度压缩了9个字节,地址长度被大幅地降低。

作为一种示例,IPv6地址的压缩格式可以用表2所示的格式进行描述:

表2

可以理解的是,针对压缩后的IPv6地址,零位图的字节数量固定为2个,非零字节区的字节数量最多为13个字节。后续报文接收端接收到报文时,若分析出IPv6地址的地址长度小于16个字节,说明该IPv6地址采用压缩格式进行了压缩。若分析出IPv6地址的地址长度为16个字节,说明说明该IPv6地址位进行压缩。

在本实施例中,将待压缩IP地址中的非零字节添加到压缩后的IP地址中,是为了便于在解压缩阶段,根据对零位图的解析结果,完整地还原出未压缩的IP地址。显然,基于零位图和待压缩IP地址中的非零字节压缩IP地址的方法,并不会丢失待压缩IP地址的部分信息,是一种无损压缩方法。

本申请实施例提供的IP地址的压缩方法,先按照待压缩IP地址中的字节顺序,生成零位图,零位图中的每个比特表示待压缩IP地址中对应字节是否为零字节;接着,根据零位图和待压缩IP地址中的非零字节,生成压缩后的IP地址。由此,实现了压缩IP地址的地址长度,此外,该方法时间复杂度、空间复杂度均较好,压缩处理效率较高。

在上述实施例的基础上,可选的,按照待压缩IP地址中的字节顺序,生成零位图,包括:遍历待压缩IP地址中的每个字节;若该字节为零字节,则将该字节编码为第一值并添加到零位图中对应比特位上;若该字节为非零字节,则将该字节编码为第二值并添加到零位图中对应比特位上。

其中,第一值可以是0比特,第二值可以是1比特;或者,第一值可以是1比特,第二值可以是0比特。当然,第一值和第二值还可以根据实际情形进行定义。

可以理解的是,零位图中比特在比特序列中的位置与对应的字节在IP地址中的位置是相同的。当然,零位图中的比特数量和待压缩IP地址中的字节数量是相同的。

在上述实施例的基础上,可选的,在步骤101之前,还包括以下步骤:统计待压缩IP地址中零字节的数量;若数量不小于预设的数量阈值,则执行按照待压缩IP地址中的字节顺序,生成零位图的操作。

在本实施例中,压缩率取决于待压缩IP地址中零字节的数量,零字节的数量越多,压缩后的IP地址的地址长度越短,压缩率越小,压缩效果越好。

根据上述对零位图的介绍可知,零位图中的比特位的位数和待压缩IP地址的字节数量是相同的,零位图中的比特位会占据固定数量个字节。在待压缩IP地址为IPv6地址为例,零位图中的比特位会占据两个字节,因此,预设的数量阈值为2。

在本实施例中,只有IPv6地址的零字节数量大于2个时,才能使得压缩后的IPv6地址的字节的数量小于16个。若压缩前的IPv6地址的零字节为0个、1个、2个,采用上述压缩方法得到IPv6地址的字节的数量均会大于或等于16个字节,即无法起到压缩效果。因此,为了避免这种情形的发生,在采用本实施例的方法对IP地址进行压缩之前,需要对待压缩IP地址中零字节的数量进行判断,以保证IP地址压缩的合理性。

图2为本申请一示例性实施例提供的一种IP地址的解压缩方法的流程示意图。如图2所示,该方法包括如下步骤:

步骤201、获取待解压缩IP地址。

步骤202、从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,零位图中的每个比特表示原始IP地址中对应字节是否为零字节。

步骤203、根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址。

在本实施例中,待解压缩IP地址是采用上述实施例的IP地址的压缩方法对原始IP地址进行压缩得到的,解压缩方法是压缩方法的反向工程。

具体而言,针对待解压缩IP地址,首先需要得到其对应的零位图和原始IP地址中的非零字节。由于零位图记录了原始IP地址中各个字节是否为零字节,因此,结合原始IP地址中的非零字节和零位图便可将原始IP地址中的零字节进行还原,得到原始IP地址。

为了便于理解,结合表3对解压缩方法进行说明。

表3

沿用上例,待解压缩IP地址为5fcd24da0dbf01,解析得到的零位图中的比特序列为:0101111111001101,其原始IP地址中的非零字节为24da0dbf01。其中,零位图中的比特0说明在原始IP地址对应位置上的字节为非零字节,零位图中的比特1说明在原始IP地址对应位置上的字节为零字节。分析零位图中的比特序列0101111111001101可知,位于比特序列中的第1比特位、第3比特位、第10比特位、第11比特位、第15比特位上的取值为0,说明原始IP地址中第1字节、第3字节、第10字节、第11字节、第15字节为非零字节,按序依次将24da0dbf01这5个字节分配到原始IP地址中第1字节、第3字节、第10字节、第11字节、第15字节,而原始IP地址中其他字节都填充为零字节00,这样,经过解压缩得到的原始IP地址为2400da000000000000000dbf00000100。

在实际应用中,在解压缩阶段,针对待解压缩的IPv6地址可以申请一个16字节的解压区,用于存放解压缩后的IPv6地址,从零位图的第一个比特开始遍历直到遍历到最后一个比特。具体的,判断当前遍历的比特是否为0,若是,则从非零字节去取出一个字节,顺序放入解压区中,若否,将零字节放入解压区中。在遍历完零位图之后,输出解压区,解压区即为解压后的IPv6地址。

本申请实施例提供的IP地址的解压缩方法,基于零位图在从待解压缩IP地址中解析出原始IP地址中的非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址。由此,实现原始IP地址无损还原,该方法时间复杂度、空间复杂度均较好,解压缩处理效率较高。

在上述实施例的基础上,可选的,从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,包括:获取所述待解压缩IP地址中前N个字节对应的比特序列,以得到零位图;将待解压缩IP地址中的后续字节作为原始IP地址中的非零字节。

在本实施例中,N取决于IP地址的类型。例如,针对IPv6地址,则N的取值为2。

沿用上例,待解压缩IP地址为5fcd24da0dbf01,5fcd这两个字节对应的比特序列0101111111001101为零位图中的比特序列。

在上述实施例的基础上,可选的,根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址,包括:针对零位图中的每个比特位,若该比特位上的数为第一值,则确定该比特位对应的原始IP地址中对应字节位置为零字节,在原始IP地址中对应字节位置添加零字节;若该比特位上的数为第二值,则确定该比特位对应的原始IP地址中对应字节位置为非零字节,并按序从解析出的非零字节中读取最靠前且尚未被取出过的非零字节添加到原始IP地址中对应字节位置上,以得到原始IP地址。

其中,第一值可以是二进制数0,第二值可以是二进制数1;或者,第一值可以是二进制数1,第二值可以是二进制数0。当然,第一值和第二值还可以根据实际情形进行定义。

在上述实施例的基础上,可选的,在执行步骤202之前,还包括以下步骤:统计待解压缩IP地址的字节长度;若字节长度小于未压缩IP地址的字节长度,则执行从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节的操作。

在实际情形中,接收到的原始IP地址可能未被压缩,这时无需进行解压缩步骤的。具体地,可以通过待解压缩IP地址的字节长度与压缩IP地址的字节长度的比较结果来识别待解压缩IP地址是否经过压缩处理,若经过压缩处理,则执行解压缩操作,反之,若未经过压缩处理,则不执行解压缩操作。可以理解的是,不同IP地址类型的未压缩IP地址的字节长度不同,例如,IPv6地址的地址长度为16个字节。

需要指出的是,IP地址的压缩方法和解压缩方法可以应用在任一应用场景中,例如,可以在IP地址存储时,对其进行压缩;在需要使用IP地址时,对压缩后的IP地址进行解压缩。又例如,在报文收发阶段,对待发送的报文中IP地址进行压缩后,再将报文发送出去。以及对接收到的报文采用解压缩方法处理压缩后的IP地址以得到压缩前的IP地址。

图3为本申请一示例性实施例提供的一种报文发送方法的流程示意图。如图3所示,该方法包括如下步骤:

步骤301、获取待发送的报文中的IP地址。

步骤302、按照IP地址中的字节顺序,生成零位图,零位图中的每个比特表示IP地址中对应字节是否为零字节。

步骤303、根据零位图和IP地址中的非零字节,生成压缩后的IP地址。

步骤304、将压缩后的IP地址添加到报文中,并将报文发送出去。

在实际应用中,当待发送的报文包含大量的IP地址时,会增加网络开销。因此本实施例对待发送的报文中的IP地址进行压缩,再将经过IP地址压缩后的报文发送出去,实现报文数据长度大幅降低,减少报文传输过程中的网络开销。

需要指出的是,待发送的报文中可以包括源IP地址和目的IP地址,其中,可以采用本实施例提供的压缩方法对源IP地址和/或目的IP地址压缩,得到包含压缩后的源IP地址和/或目标IP地址的报文,并发送出去。

进一步的,按照待压缩IP地址中的字节顺序,生成零位图,包括:遍历待压缩IP地址中的每个字节;若该字节为零字节,则将该字节编码为第一值并添加到零位图中对应比特位上;若该字节为非零字节,则将该字节编码为第二值并添加到零位图中对应比特位上。

进一步的,在按照待压缩IP地址中的字节顺序,生成零位图之前,还包括:统计待压缩IP地址中零字节的数量;若数量不小于预设的数量阈值,则执行按照待压缩IP地址中的字节顺序,生成零位图的操作。

进一步的,待压缩IP地址为IPv6地址。

需要指出的是,关于IP地址的压缩方法可以参见上述实施例中介绍的IP地址的压缩方法,在此不再赘述。

图4为本申请一示例性实施例提供的一种报文接收方法的流程示意图。如图4所示,该方法包括如下步骤:

步骤401、接收对端发送的报文,报文包含待解压缩IP地址;

步骤402、从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,零位图中的每个比特表示原始IP地址中对应字节是否为零字节;

步骤403、根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址。

在本实施例中,对端可以理解为报文发送端。在接收到对端发送的报文之后,采用解压缩方法将报文中的待解压缩IP地址还原为原始IP地址。

需要指出的是,接收到的报文可以是包含压缩后的源IP地址和/或目标IP地址的报文,这时在对接收到的报文IP地址进行解压缩时,需要对源IP地址和/或目标IP地址采用本实施例提供的解压缩方法进行还原。

从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,包括:

获取待解压缩IP地址中前N个字节对应的比特序列,以得到零位图;

将待解压缩IP地址中的后续字节作为原始IP地址中的非零字节。

进一步的,根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址,包括:

针对零位图中的每个比特位,若该比特位上的数为第一值,则确定该比特位对应的原始IP地址中对应字节位置为零字节,在原始IP地址中对应字节位置添加零字节;

若该比特位上的数为第二值,则确定该比特位对应的原始IP地址中对应字节位置为非零字节,并按序从解析出的非零字节中读取最靠前且尚未被取出过的非零字节添加到原始IP地址中对应字节位置上,以得到原始IP地址。

进一步的,从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节之前,还包括:统计待解压缩IP地址的字节长度;若字节长度小于未压缩IP地址的字节长度,则执行从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节的操作。

关于IP地址的解压缩方法可以参见上述实施例中介绍的IP地址的解压缩方法,在此不再赘述。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤203的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图5为本申请一示例性实施例提供的一种IP地址的压缩装置的结构示意图。如图5所示,该装置包括:包括:存储器11和处理器12。

存储器11,用于存储计算机程序,并可被配置为存储其它各种数据以支持在处理器上的操作。这些数据的示例包括用于在处理器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器11可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

处理器12,与存储器11耦合,用于执行存储器11中的计算机程序,以用于:

按照待压缩IP地址中的字节顺序,生成零位图,零位图中的每个比特表示待压缩IP地址中对应字节是否为零字节;

根据零位图和待压缩IP地址中的非零字节,生成压缩后的IP地址。

进一步的,处理器12在生成零位图时,具体用于:

遍历待压缩IP地址中的每个字节;

若该字节为零字节,则将该字节编码为第一值并添加到零位图中对应比特位上;

若该字节为非零字节,则将该字节编码为第二值并添加到零位图中对应比特位上。

进一步的,处理器12,生成零位图之前,还用于:

统计待压缩IP地址中零字节的数量;

若数量不小于预设的数量阈值,则执行按照待压缩IP地址中的字节顺序,生成零位图的操作。

进一步的,待压缩IP地址为IPv6地址。

图5所示装置可以执行上述实施例的方法,本实施例未详细描述的部分,可参考对上述实施例的相关说明。该技术方案的执行过程和技术效果参见上述实施例中的描述,在此不再赘述。

进一步,如图5所示,该装置还包括:通信组件13、显示器14、电源组件15、音频组件16等其它组件。图5中仅示意性给出部分组件,并不意味着处理器只包括图5所示组件。另外,图5中虚线框所示组件为可选组件,而非必选组件,具体可视IP地址的压缩装置的具体实现形态而定。如果IP地址的压缩装置实现为笔记本电脑、平板、手机等终端设备,则可以包含图5中虚线框所示组件;如果IP地址的压缩装置实现为常规服务器、云服务器或服务器阵列等服务端设备,则不包含图5中虚线框所示组件。

图6为本申请一示例性实施例提供的一种IP地址的解压缩装置的结构示意图。如图6所示,该装置包括:包括:存储器21和处理器22。

存储器21,用于存储计算机程序,并可被配置为存储其它各种数据以支持在处理器上的操作。这些数据的示例包括用于在处理器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器21可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

处理器22,与存储器21耦合,用于执行存储器21中的计算机程序,以用于:

获取待解压缩IP地址;

从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,零位图中的每个比特表示原始IP地址中对应字节是否为零字节;

根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址。

进一步的,处理器22在解析待解压缩IP地址时,具体用于:

获取待解压缩IP地址中前N个字节对应的比特序列,以得到零位图;

将待解压缩IP地址中的后续字节作为原始IP地址中的非零字节;N是编码数据占据的固定数量的字节数。

进一步的,处理器22在得到原始IP地址,具体用于:

针对零位图中的每个比特位,若该比特位上的数为第一值,则确定该比特位对应的原始IP地址中对应字节位置为零字节,在原始IP地址中对应字节位置添加零字节;

若该比特位上的数为第二值,则确定该比特位对应的原始IP地址中对应字节位置为非零字节,并按序从解析出的非零字节中读取最靠前且尚未被取出过的非零字节添加到原始IP地址中对应字节位置上,以得到原始IP地址。

进一步的,处理器22在解析待解压缩IP地址时,还用于:统计待解压缩IP地址的字节长度;若字节长度小于未压缩IP地址的字节长度,则执行从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节的操作。

图6所示装置可以执行上述实施例的方法,本实施例未详细描述的部分,可参考对上述实施例的相关说明。该技术方案的执行过程和技术效果参见上述实施例中的描述,在此不再赘述。

进一步,如图6所示,该装置还包括:通信组件23、显示器24、电源组件25、音频组件26等其它组件。图6中仅示意性给出部分组件,并不意味着处理器只包括图6所示组件。另外,图6中虚线框所示组件为可选组件,而非必选组件,具体可视IP地址的解压缩装置的具体实现形态而定。如果IP地址的解压缩装置实现为笔记本电脑、平板、手机等终端设备,则可以包含图6中虚线框所示组件;如果IP地址的解压缩装置实现为常规服务器、云服务器或服务器阵列等服务端设备,则不包含图6中虚线框所示组件。

图7为本申请一示例性实施例提供的一种报文发送装置的结构示意图。如图7所示,该装置包括:包括:存储器31和处理器32。

存储器31,用于存储计算机程序,并可被配置为存储其它各种数据以支持在处理器上的操作。这些数据的示例包括用于在处理器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器31可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

处理器32,与存储器31耦合,用于执行存储器31中的计算机程序,以用于:

获取待发送的报文中的IP地址;

按照IP地址中的字节顺序,生成零位图,零位图中的每个比特表示IP地址中对应字节是否为零字节;

根据零位图和IP地址中的非零字节,生成压缩后的IP地址;

将压缩后的IP地址添加到报文中,并将报文发送出去。

进一步的,处理器32在生成零位图时,具体用于:

遍历待压缩IP地址中的每个字节;

若该字节为零字节,则将该字节编码为第一值并添加到零位图中对应比特位上;

若该字节为非零字节,则将该字节编码为第二值并添加到零位图中对应比特位上。

进一步的,处理器32,生成零位图之前,还用于:

统计待压缩IP地址中零字节的数量;

若数量不小于预设的数量阈值,则执行按照待压缩IP地址中的字节顺序,生成零位图的操作。

进一步的,待压缩IP地址为IPv6地址。

图7所示装置可以执行上述实施例的方法,本实施例未详细描述的部分,可参考对上述实施例的相关说明。该技术方案的执行过程和技术效果参见上述实施例中的描述,在此不再赘述。

进一步,如图7所示,该装置还包括:通信组件33、显示器34、电源组件35、音频组件36等其它组件。图7中仅示意性给出部分组件,并不意味着处理器只包括图7所示组件。另外,图7中虚线框所示组件为可选组件,而非必选组件,具体可视IPv6地址的压缩和解压缩装置的具体实现形态而定。如果报文发送装置实现为笔记本电脑、平板、手机等终端设备,则可以包含图7中虚线框所示组件;如果报文发送装置实现为常规服务器、云服务器或服务器阵列等服务端设备,则不包含图7中虚线框所示组件。

图8为本申请一示例性实施例提供的一种报文接收装置的结构示意图。如图8所示,该装置包括:包括:存储器41和处理器42。

存储器41,用于存储计算机程序,并可被配置为存储其它各种数据以支持在处理器上的操作。这些数据的示例包括用于在处理器上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器41可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

处理器42,与存储器41耦合,用于执行存储器41中的计算机程序,以用于:

获取待解压缩IP地址;

从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节,零位图中的每个比特表示原始IP地址中对应字节是否为零字节;

根据零位图在非零字节的基础上对原始IP地址中的零字节进行还原,以得到原始IP地址。

进一步的,处理器42在解析待解压缩IP地址时,具体用于:

获取待解压缩IP地址中前N个字节对应的比特序列,以得到零位图;

将待解压缩IP地址中的后续字节作为原始IP地址中的非零字节。

进一步的,处理器42在得到原始IP地址,具体用于:

针对零位图中的每个比特位,若该比特位上的数为第一值,则确定该比特位对应的原始IP地址中对应字节位置为零字节,在原始IP地址中对应字节位置添加零字节;

若该比特位上的数为第二值,则确定该比特位对应的原始IP地址中对应字节位置为非零字节,并按序从解析出的非零字节中读取最靠前且尚未被取出过的非零字节添加到原始IP地址中对应字节位置上,以得到原始IP地址。

进一步的,处理器42在解析待解压缩IP地址时,还用于:统计待解压缩IP地址的字节长度;若字节长度小于未压缩IP地址的字节长度,则执行从待解压缩IP地址中解析出零位图和原始IP地址中的非零字节的操作。

图8所示装置可以执行上述实施例的方法,本实施例未详细描述的部分,可参考对上述实施例的相关说明。该技术方案的执行过程和技术效果参见上述实施例中的描述,在此不再赘述。

进一步,如图8所示,该装置还包括:通信组件43、显示器44、电源组件45、音频组件46等其它组件。图8中仅示意性给出部分组件,并不意味着处理器只包括图8所示组件。另外,图8中虚线框所示组件为可选组件,而非必选组件,具体可视报文接收装置的具体实现形态而定。如果IP地址的解压缩装置实现为笔记本电脑、平板、手机等终端设备,则可以包含图8中虚线框所示组件;如果报文接收装置实现为常规服务器、云服务器或服务器阵列等服务端设备,则不包含图8中虚线框所示组件。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由处理器执行的各步骤。

上述图5至图8中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

上述图5至图8中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

上述图5至图8中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

上述图5至图8中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • IP地址的压缩、解压缩与报文收发方法、装置及存储介质
  • 存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置
技术分类

06120112191399