有效
基于标签交换的边缘网络数据包头压缩传输方法及系统
彭伟、唐竹、荀鹏、郦苏丹、王宝生、贾旭东
中国人民解放军国防科技大学
摘要
本发明公开了一种基于标签交换的边缘网络数据包头压缩传输方法及系统,本发明包括为边缘网络创建MPLS域以及标签转发表;入口端节点为IP数据包构建带MPLS标签的标签路径建立请求或压缩数据包并传送给下一跳节点;网络节点根据标签路径建立请求消息建立标签交换路径并保存数据流的固定信息,进行转发或根据保存的数据流固定信息恢复出IP数据包。本发明将MPLS的标签技术应用到边缘网络中,利用标签交换的机制设计一种数据包头压缩方法,适用于边缘网络中IPv4/IPv6数据包的压缩传输,压缩后的数据包能够在入口端和出口端之间多跳传输,从而达到节约网络带宽、降低传输延迟的目的。
1.一种基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,包括:为边缘网络创建包含包括入口端节点、出口端节点以及网络节点的MPLS域,每个网络节点包含一个用于标签交换的标签转发表;入口端节点针对待发送至出口端节点的IP数据包,若该IP数据包为数据流的第一个IP数据包,则为该IP数据包分配MPLS标签并在标签转发表中建立新的表项以表示一条新的数据流,根据该IP数据包构建带MPLS标签的标签路径建立请求消息并向下一跳节点转发;若该IP数据包为数据流的后续IP数据包,则对该IP数据包进行包头压缩去除包头中固定不变的字段后,构建带MPLS标签的压缩数据包并传送给下一跳节点;网络节点在收到带MPLS标签的数据包后,若该数据包为带MPLS标签的标签路径建立请求消息,则建立标签交换路径并保存标签对应的数据流的固定信息,并根据标签转发表以及标签交换机制对标签路径建立请求消息进行转发;若该数据包为带MPLS标签的压缩数据包,若网络节点不是出口端节点,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,否则根据保存的数据流固定信息恢复出IP数据包。
2.根据权利要求1所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,所述标签转发表的每个表项包含入接口、MAC源地址、入标签、出标签、出接口、下一跳MAC地址、更新时间、出标签确认标志以及数据包头固定字段;其中入接口和出接口分别为输入、输出带MPLS标签的数据包的网络接口,其中MPLS标签的字段包括标签字段Label、生存时间字段TTL以及实验字段Exp;入标签和出标签分别为网络节点与上一跳节点、下一跳节点之间链路的分配标签;MAC源地址和下一跳MAC地址为网络节点的上一跳节点、下一跳节点的MAC地址;更新时间为表项的最后更新时间,且当前时间与更新时间的差值为表项的生存时间;出标签确认标志表示该表项中的出标签是否已得到下一跳节点的确认,若该确认标志为1,则出标签处于可用状态,否则为不可用状态;数据包头固定字段至少包括用于确定一条数据流的五元组,所述五元组包括IP源地址、IP目的地址、协议号、源端口号和目的端口号。
3.根据权利要求2所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,所述入口端节点针对待发送至出口端节点的IP数据包的处理包括:S101,判断该IP数据包是否满足压缩数据流的条件,若该IP数据包不满足压缩数据流的条件,则直接将该IP数据包发送出去,结束并退出,否则执行步骤S102;S102,根据该IP数据包的五元组查找标签转发表,若在标签转发表中没有对应的表项,则该IP数据包属于一条新数据流,执行步骤S103;否则该IP数据包属于一条已存在的数据流,跳转到步骤S104;S103,在标签转发表中增加一条新的表项,对新的表项的各个字段进行初始化;将该IP数据包的固定字段信息填入新的表项,通过查询路由表或转发表获得该IP数据包的出接口和下一跳MAC地址并填入新的表项,为新数据流分配一个出接口上未用的标签值,并填入新的表项的出标签,将新的表项的更新时间设置为当前时间,出标签确认标志设置为0,转步骤S105;S104,根据该IP数据包在标签转发表对应的表项的更新时间判断该表项是否有效,若表项有效则检查该IP数据包中除五元组以外的固定字段是否相对表项发生改变,若该表项无效或该IP数据包中除五元组以外的固定字段相对表项发生改变,则将表项中保存的固定字段信息替换为该IP数据包中除五元组以外的固定字段,将表项的更新时间设置为当前时间,出标签确认标志设置为0,转步骤S105;否则,若该表项有效且该IP数据包中除五元组以外的固定字段相对表项未发生改变,将表项的更新时间设置为当前时间,进一步根据出标签确认标志检查出标签是否可用,若出标签不可用,则转步骤S105;否则,出标签可用,对该IP数据包进行包头压缩操作,将压缩后的数据包通过出接口发送给下一跳MAC地址指定的下一跳节点,处理结束;S105,将该IP数据包封装为带MPLS标签的标签路径建立请求消息,包括:在该IP数据包前添加一个MPLS标签,MPLS标签中的标签字段Label设置为该标签转发表项的出标签值,生存时间字段TTL设置为0、实验字段Exp设置为0表示这是一个带MPLS标签的标签路径建立请求消息,将带MPLS标签的标签路径建立请求消息通过出接口发送给下一跳MAC地址指定的下一跳节点,结束并退出。
4.根据权利要求3所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,步骤S101中判断该IP数据包是否满足压缩数据流的条件时,若该IP数据包为IPv4数据包,则满足压缩数据流的条件包括:该IP数据包的包头中没有选项数据,分片标志表示该数据包没有分片,协议号表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,生存时间字段TTL大于0;若该IP数据包为IPv6数据包,则满足压缩数据流的条件包括:该IP数据包的下一头部字段表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,跳数限制值Hop Limit字段大于0。
5.根据权利要求3所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,步骤S103中对该IP数据包进行包头压缩操作包括:若该IP数据包为IPv4数据包,则去除IPv4数据包头中的固定字段,在数据包前添加一个MPLS标签,MPLS标签中的标签字段Label设置为该标签转发表项的出标签值,生存时间字段TTL设置为IPv4数据包头中的生存时间字段TTL值,保留IPv4数据包头中的序列号、包头校验和字段到压缩数据包中,去除UDP/TCP包头中的源端口号和目的端口号,将数据包的剩余内容保留在压缩数据包中,所述去除IPv4数据包头中的固定字段包括五元组、版本号、头长、服务类型、分片标志以及分片偏移量;若该IP数据包为IPv6数据包,则去除IPv6数据包头中的固定字段,在数据包前添加一个MPLS标签,MPLS标签中的标签字段Label设置为该标签转发表项的出标签值,生存时间字段TTL设置为IPv6数据包头中的跳数限制值Hop Limit的字段值,去除UDP/TCP包头中的源端口号和目的端口号,将数据包的剩余内容保留在压缩数据包中,所述IPv6数据包头中的固定字段包括五元组、版本号、流标签以及流类型。
6.根据权利要求2所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,所述网络节点在收到带MPLS标签的数据包后的处理包括:S201,读取该带MPLS标签的数据包的MPLS标签中生存时间字段TTL的值,若生存时间字段TTL的值为0,则判定该带MPLS标签的数据包为指定的控制消息,转步骤S202;否则判定该带MPLS标签的数据包为带MPLS标签的压缩数据包,转步骤S203;S202,根据控制消息的类别分别进行处理,结束并退出;S203,若该数据包为带MPLS标签的压缩数据包,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,结束并退出。
7.根据权利要求6所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,步骤S202包括:S301,读取该带MPLS标签的数据包的MPLS标签中实验字段Exp的值,若实验字段Exp的值为0,则跳转步骤S302以进入标签路径建立请求消息的处理流程;若实验字段Exp的值为1,则跳转步骤S308;若实验字段Exp的值为2,则跳转步骤S309;否则,判定该带MPLS标签的数据包为未知消息,丢弃该消息,结束并退出;S302,查找网络节点的标签转发表是否有对应的表项,若标签转发表中已有对应的表项,则将标签转发表项的更新时间设置为当前时间并跳转步骤S303;否则跳转步骤S305;S303,检查该带MPLS标签的数据包中的固定字段信息与标签转发表的表项中保存的固定字段信息相比是否有改变,若有改变则跳转步骤S304;否则跳转步骤S306;S304,检查该带MPLS标签的数据包中的固定字段信息与标签转发表的表项中保存的固定字段信息中IP目的地址字段是否发生改变,若IP目的地址字段没有发生改变,则将表项的出标签确认标志设置为0;否则,通过查询路由表或转发表获得该IP数据包的出接口和下一跳MAC地址,将标签转发表项的出接口和下一跳MAC地址设置为对应的值,若出接口发生了改变,则为该数据流分配一个出接口上未用的标签值,将表项的出标签设置为该标签值,若查询路由表确定本节点是标签交换路径的出口端设备,则出标签应设置为0;将出标签确认标志设置为0,跳转步骤S306;S305,创建一个新的标签转发表项,初始化新的标签转发表项的各字段,记录下该带MPLS标签的数据包中IP数据包的固定字段信息,表项的入接口、MAC源地址分别设置为收到该MPLS标签的数据包的入接口、MAC源地址;通过查询路由表或转发表获得该IP数据包的出接口和下一跳MAC地址并填入新的表项,为新数据流分配一个出接口上未用的标签值,并填入新的表项的出标签,将新的表项的更新时间设置为当前时间,出标签确认标志设置为0;S306,将该数据包的MPLS标签中的标签字段Label的值替换为出标签,将该数据包从表项的出接口发送给表项中下一跳MAC地址确定的下一跳节点;S307,向上游节点返回一个标签确认消息,标签确认消息包含MPLS标签和IP数据包头信息,其中MPLS标签的标签字段Label与收到的数据包的标签字段Label相同,生存时间字段TTL设置为0,实验字段Exp设置为1以表示标签确认消息,结束并退出;S308,判定该带MPLS标签的数据包为标签确认消息,查找网络节点的标签转发表,获得与该消息对应的表项,其中表项的出接口是收到该消息的接口,表项的出标签与消息中MPLS标签的标签字段Label的值相同;若未找到对应的表项,则丢弃消息,结束并退出;否则,检查表项中保存的IP数据包固定字段内容是否与该带MPLS标签的数据包中包含的IP数据包固定字段信息相同,若不相同,则丢弃消息,结束并退出;否则若相同,则将表项的出标签确认标志设置为1,结束并退出;S309,判定该带MPLS标签的数据包为标签错误消息,查找节点的标签转发表,获得与该消息对应的表项,其中表项的出接口是收到该消息的接口,表项的出标签与消息中MPLS标签的标签字段Label值相同,若未找到对应的表项,则丢弃消息,结束并退出;否则,将表项的出标签确认标志设置为0,结束并退出。
8.根据权利要求6所述的基于标签交换的边缘网络数据包头压缩传输方法,其特征在于,步骤S203包括:S401,在网络节点的标签转发表中查找该带MPLS标签的数据包对应的表项,若未找到对应的表项,则向上游节点返回一个标签错误消息,消息包含一个MPLS标签,MPLS标签的标签字段Label为收到的数据包的标签中的标签字段Label的值,生存时间字段TTL设置为0,实验字段Exp设置为2,将标签错误消息返回给上游节点,结束并退出;若找到对应的表项,则跳转步骤S402;S402,判断对应表项的出标签是否为0,若对应表项的出标签为0,表明本节点是标签交换路径的出口端设备,则去掉数据包的MPLS标签,用表项中保存的固定字段信息恢复IP数据包,将恢复后的IP数据包交给节点的IP协议模块进行处理,结束并退出;否则跳转步骤S403;S403,判断对应表项的出标签确认标志是否为1,若表项的出标签确认标志为1,表明出标签已得到下游节点确认,则跳转步骤S404;若表项的出标签确认标志为0,表明出标签尚未得到下游节点确认,则跳转步骤S405;S404,用表项中的出标签代替数据包中MPLS标签的标签字段Label的值,将MPLS标签的生存时间字段TTL减1,若生存时间字段TTL的值变为0,则丢弃数据包,结束并退出;否则将数据包通过表项的出接口发送给表项中目的MAC地址指定的下一跳节点,结束并退出;S405,将压缩数据包恢复为完整的IP数据包,并将数据包封装为一个标签路径建立请求消息,用表项中保存的固定字段信息恢复IP数据包,将IPv4数据包头中的生存时间字段TTL或IPv6数据包头中的跳数限制字段Hop Limit的值设置为MPLS标签中的生存时间字段TTL值,将MPLS标签中的生存时间字段TTL设置为0,将MPLS标签中的过期时间字段Exp设置为0,将封装后得到的标签路径建立请求消息通过表项的出接口发送给表项中下一跳MAC地址指定的下一跳节点,结束并退出。
9.一种基于标签交换的边缘网络数据包头压缩传输系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述基于标签交换的边缘网络数据包头压缩传输方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述基于标签交换的边缘网络数据包头压缩传输方法。



