CN116232996A - 基于标签交换的边缘网络数据包头压缩传输方法及系统 - Google Patents
基于标签交换的边缘网络数据包头压缩传输方法及系统 Download PDFInfo
- Publication number
- CN116232996A CN116232996A CN202211649015.1A CN202211649015A CN116232996A CN 116232996 A CN116232996 A CN 116232996A CN 202211649015 A CN202211649015 A CN 202211649015A CN 116232996 A CN116232996 A CN 116232996A
- Authority
- CN
- China
- Prior art keywords
- label
- data packet
- mpls
- field
- packet
- 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.)
- Granted
Links
- 230000006835 compression Effects 0.000 title claims abstract description 51
- 238000007906 compression Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 title claims abstract description 45
- 230000007246 mechanism Effects 0.000 claims abstract description 14
- 238000012790 confirmation Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 22
- 238000002474 experimental method Methods 0.000 claims description 19
- 230000009191 jumping Effects 0.000 claims description 18
- 238000013467 fragmentation Methods 0.000 claims description 16
- 238000006062 fragmentation reaction Methods 0.000 claims description 16
- 238000011144 upstream manufacturing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 6
- 230000004083 survival effect Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于标签交换的边缘网络数据包头压缩传输方法及系统,本发明包括为边缘网络创建MPLS域以及标签转发表;入口端节点为IP数据包构建带MPLS标签的标签路径建立请求或压缩数据包并传送给下一跳节点;网络节点根据标签路径建立请求消息建立标签交换路径并保存数据流的固定信息,进行转发或根据保存的数据流固定信息恢复出IP数据包。本发明将MPLS的标签技术应用到边缘网络中,利用标签交换的机制设计一种数据包头压缩方法,适用于边缘网络中IPv4/IPv6数据包的压缩传输,压缩后的数据包能够在入口端和出口端之间多跳传输,从而达到节约网络带宽、降低传输延迟的目的。
Description
技术领域
本发明涉及边缘网络中的数据传输技术领域,具体涉及一种基于标签交换的边缘网络数据包头压缩传输方法及系统。
背景技术
边缘网络包括有线局域网、无线局域网、无线自组网等位于互联网边缘的用户网络,由于应用场景多种多样而呈现出各不相同的特点。在包含无线链路的边缘网络中,由于节点可能频繁移动、无线链路带宽低、无线通信容易受环境影响,因而在实现高效的网络通信方面存在较大挑战。为了充分利用有限的无线通信资源,过去针对无线链路上的数据包头压缩已经开展了一系列研究,主要是对TCP/IP协议数据包头进行压缩。例如,互联网协议标准化组织IETF相继制定了一系列TCP/IP数据包头压缩的协议标准,包括编号分别为1144、2507、3095、4995、4996、5225、5795、6846的RFC标准,其中3095之后的标准称为ROHC标准。ROHC协议标准很好地解决了单条无线链路上的IP数据包头压缩问题,例如40字节的IP/UDP/RTP数据包头能被压缩成1-3个字节来传输。尽管ROHC标准能取得很好的数据包头压缩性能,但它们只适用于单条无线链路,而不适用于经过多跳传输的端端通信。针对使用IPv6协议的低速个域网,IETF还制定了6LowPAN协议,包括编号为4919、4944、7400等的RFC标准。6LowPAN协议只针对IPv6数据包头的压缩,而没有考虑UDP、TCP等传输层数据包头的压缩。虽然6LowPAN协议通过mesh包头支持多跳转发,但由于没有优先级和流类别等信息,因而网络节点不能为不同类别的数据包提供区别服务。国内外还提出了其他针对不同特定场景的数据包头压缩方法,但绝大多数没有成为公认的协议标准,因而难以推广应用。
为了给互联网上不同类别的数据流提供区分服务,过去提出了区分服务模型及相应的多协议标签交换(MPLS)技术。通过将不同的服务等价类映射到不同的标签交换路径,可以为不同类别的数据流提供不同的传输路径,并有助于互联网运营商实现流量工程和网络负载均衡。MPLS包括LDP、RSVP等协议,相关协议标准包括编号为3031、3032、3036、3107、3209、3212、5036、8277等的RFC标准,主要应用于互联网骨干网上。MPLS的标签共32位,包含Label、Exp、S、TTL(time-to-live)几个字段。Label为20位的MPLS标签;Exp为3位的实验字段,用于表示QoS优先级;S为栈底标志位,S为1表示为栈底;TTL为生存时间,即数据包允许经过的最大跳步数。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于标签交换的边缘网络数据包头压缩传输方法及系统,本发明将MPLS的标签技术应用到边缘网络中,利用标签交换的机制设计一种数据包头压缩方法,适用于边缘网络中IPv4/IPv6数据包的压缩传输,压缩后的数据包能够在入口端和出口端之间多跳传输,从而达到节约网络带宽、降低传输延迟的目的。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于标签交换的边缘网络数据包头压缩传输方法,包括:
为边缘网络创建包含包括入口端节点、出口端节点以及网络节点的MPLS域,每个网络节点包含一个用于标签交换的标签转发表;
入口端节点针对待发送至出口端节点的IP数据包,若该IP数据包为数据流的第一个IP数据包,则为该IP数据包分配MPLS标签并在标签转发表中建立新的表项以表示一条新的数据流,根据该IP数据包构建带MPLS标签的标签路径建立请求消息并向下一跳节点转发;若该IP数据包为数据流的后续IP数据包,则对该IP数据包进行包头压缩去除包头中固定不变的字段后,构建带MPLS标签的压缩数据包并传送给下一跳节点;
网络节点在收到带MPLS标签的数据包后,若该数据包为带MPLS标签的标签路径建立请求消息,则建立标签交换路径并保存标签对应的数据流的固定信息,并根据标签转发表以及标签交换机制对标签路径建立请求消息进行转发;若该数据包为带MPLS标签的压缩数据包,若网络节点不是出口端节点,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,否则根据保存的数据流固定信息恢复出IP数据包。
可选地,所述标签转发表的每个表项包含入接口、MAC源地址、入标签、出标签、出接口、下一跳MAC地址、更新时间、出标签确认标志以及数据包头固定字段;其中入接口和出接口分别为输入、输出带MPLS标签的数据包的网络接口,其中MPLS标签的字段包括标签字段Label、生存时间字段TTL以及实验字段Exp;入标签和出标签分别为网络节点与上一跳节点、下一跳节点之间链路的分配标签;MAC源地址和下一跳MAC地址为网络节点的上一跳节点、下一跳节点的MAC地址;更新时间为表项的最后更新时间,且当前时间与更新时间的差值为表项的生存时间;出标签确认标志表示该表项中的出标签是否已得到下一跳节点的确认,若该确认标志为1,则出标签处于可用状态,否则为不可用状态;数据包头固定字段至少包括用于确定一条数据流的五元组,所述五元组包括IP源地址、IP目的地址、协议号、源端口号和目的端口号。
可选地,所述入口端节点针对待发送至出口端节点的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地址指定的下一跳节点,结束并退出。
可选地,步骤S101中判断该IP数据包是否满足压缩数据流的条件时,若该IP数据包为IPv4数据包,则满足压缩数据流的条件包括:该IP数据包的包头中没有选项数据,分片标志表示该数据包没有分片,协议号表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,生存时间字段TTL大于0;若该IP数据包为IPv6数据包,则满足压缩数据流的条件包括:该IP数据包的下一头部字段表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,跳数限制值Hop Limit字段大于0。
可选地,步骤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数据包头中的固定字段包括五元组、版本号、流标签以及流类型。
可选地,所述网络节点在收到带MPLS标签的数据包后的处理包括:
S201,读取该带MPLS标签的数据包的MPLS标签中生存时间字段TTL的值,若生存时间字段TTL的值为0,则判定该带MPLS标签的数据包为指定的控制消息,转步骤S202;否则判定该带MPLS标签的数据包为带MPLS标签的压缩数据包,转步骤S203;
S202,根据控制消息的类别分别进行处理,结束并退出;
S203,若该数据包为带MPLS标签的压缩数据包,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,结束并退出。
可选地,步骤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,结束并退出。
可选地,步骤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地址指定的下一跳节点,结束并退出。
此外,本发明还提供一种基于标签交换的边缘网络数据包头压缩传输系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于标签交换的边缘网络数据包头压缩传输方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于标签交换的边缘网络数据包头压缩传输方法。
和现有技术相比,本发明主要具有下述优点:
1、本发明将MPLS的标签技术应用到边缘网络中,利用标签交换的机制设计一种数据包头压缩方法,适用于边缘网络中IPv4/IPv6数据包的压缩传输,压缩后的数据包能够在入口端和出口端之间多跳传输,从而达到节约网络带宽、降低传输延迟的目的。
2、本发明在边缘网络中,在中间节点不进行压缩和解压缩的前提下,实现入口端和目的端之间压缩数据包的多跳传输,能够克服网络链路中断和拓扑变化带来的影响,同时还尽可能保持与已有互联网协议标准的兼容性。
3、本发明能够适用于以太网、无线局域网、无线传感网、移动自组网等边缘有线或无线网络,具有通用性好、适用范围广的优点。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中MPLS域的拓扑结构示意图。
图3为本发明实施例中入口端发送一个IP数据包时的处理流程图。
图4为本发明实施例中压缩后的IPv4数据包格式图。
图5为本发明实施例中压缩后的IPv6数据包格式图。
图6为本发明实施例中网络节点收到一个带MPLS标签的数据包时的总体处理流程图。
图7为本发明实施例中标签路径建立请求消息的处理流程图。
图8为本发明实施例中带MPLS标签的压缩数据包的处理流程图。
具体实施方式
如图1所示,本实施例基于标签交换的边缘网络数据包头压缩传输方法包括:
为边缘网络创建包含包括入口端节点、出口端节点以及网络节点的MPLS域,每个网络节点包含一个用于标签交换的标签转发表;
入口端节点针对待发送至出口端节点的IP数据包,若该IP数据包为数据流的第一个IP数据包,则为该IP数据包分配MPLS标签并在标签转发表中建立新的表项以表示一条新的数据流,根据该IP数据包构建带MPLS标签的标签路径建立请求消息并向下一跳节点转发;若该IP数据包为数据流的后续IP数据包,则对该IP数据包进行包头压缩去除包头中固定不变的字段后,构建带MPLS标签的压缩数据包并传送给下一跳节点;
网络节点在收到带MPLS标签的数据包后,若该数据包为带MPLS标签的标签路径建立请求消息,则建立标签交换路径并保存标签对应的数据流的固定信息,并根据标签转发表以及标签交换机制对标签路径建立请求消息进行转发;若该数据包为带MPLS标签的压缩数据包,若网络节点不是出口端节点,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,否则根据保存的数据流固定信息恢复出IP数据包。
图2所示为本实施例中建立的MPLS域的拓扑结构示意图。参见图2,该MPLS域的边缘网络包括多个通信节点,每个通信节点有一个或多个网络接口,网络接口可以是有线接口或无线接口,可以是广播型的或点对点的网络接口,如以太网接口、POS接口、WiFi接口、Zigbee接口等,通信节点可以是主机、路由器或交换机。入口端(通信源端)、出口端(通信目的端)为利用边缘网络进行数据传输的节点,入口端或出口端可以是不具备路由及标签交换能力的主机,但其余节点应具备路由及标签交换能力,称为交换节点或网络节点。图2中有一个入口端、一个出口端,其余节点为网络节点。假设通信源端的IP地址为79.22.10.15,通信目的端的IP地址为153.12.106.220。通信节点通过路由表或转发表来确定IP数据包的出接口和下一跳节点地址。转发表分为二层转发表或三层转发表。二层转发表由生成树协议产生,三层转发表由某个网络路由协议产生,例如IS-IS或OSPF路由协议、移动自组网中的AODV或OLSR路由协议等。根据二层转发表和MAC目的地址可以确定出接口及下一跳节点地址,根据三层转发表和IP目的地址也可以确定出接口及下一跳节点地址。图1中假设网络节点为运行了OSPF路由协议的三层交换机,可以根据IP目的地址、路由表或三层转发表确定路径的下一跳。每个网络节点上运行本文所述的标签控制协议,用于标签交换路径的建立。标签交换路径是从入口端经过若干网络节点到达目的端的传输路径。对路径上的某个节点,位于路径的前一节点称为上游节点,位于路径的下一跳节点称为下游节点。入口端只有下游节点,出口端则只有上游节点。例如图1中从入口端到出口端的传输路径为(入口端,A,D,G,出口端),对节点A来说,入口端节点为上游节点,D为下游节点。
标签转发表用于标签交换。本实施例中,标签转发表的每个表项包含入接口、MAC源地址、入标签、出标签、出接口、下一跳MAC地址、更新时间、出标签确认标志以及数据包头固定字段,如表1所示:
表1:标签转发表的结构图。
其中入接口和出接口分别为输入、输出带MPLS标签的数据包的网络接口,其中MPLS标签的字段包括标签字段Label、生存时间字段TTL以及实验字段Exp;入标签和出标签分别为网络节点与上一跳节点、下一跳节点之间链路的分配标签;MAC源地址和下一跳MAC地址为网络节点的上一跳节点、下一跳节点的MAC地址;更新时间为表项的最后更新时间,且当前时间与更新时间的差值为表项的生存时间;出标签确认标志表示该表项中的出标签是否已得到下一跳节点的确认,若该确认标志为1,则出标签处于可用状态,否则为不可用状态;数据包头固定字段至少包括用于确定一条数据流的五元组,所述五元组包括IP源地址、IP目的地址、协议号、源端口号和目的端口号。当中间节点收到一个MPLS数据包时,根据入接口、MAC源地址和入标签找到对应的标签转发表项,然后根据表项中的信息,将数据包中的标签替换为出标签,然后将数据包通过出接口转发给由下一跳MAC地址确定的下一个网络节点。标签转发表项的生存时间为当前时间与更新时间的差值,当标签转发表项的生存时间超过最大生存时间MAX_LIFETIME时,表项失效,否则表项处于有效状态。出标签确认标志表示该表项中的出标签是否已得到下一跳节点的确认,若该确认标志为1,则出标签处于可用状态,否则为不可用状态。
本实施例中,IPv4数据包的固定字段如表2所示,IPv6数据包的固定字段如表3所示,MPLS标签如表4所示。
表2:IPv4数据包的固定字段。
此外,IPv4数据包头中的固定字段还包括版本号、头长、服务类型(Type ofService)、分片标志、分片偏移量。IPv4数据包的版本号为固定值4。IPv4数据包一般没有选项(options),此时头长字段为固定值5,表示头长为20个字节。普通IPv4数据包的服务类型字段为0。IPv4数据包一般不分片,此时分片偏移量为0。
表3:IPv6数据包的固定字段。
IPv6数据包头中的固定字段还包括流标签(Flow Label)。IPv6数据包头中的流类型(Traffic Class)在传输过程中大多数情况下不变,因此本文也将该字段作为固定字段。IPv6数据包头中的下一头部(Next Header)字段对应于五元组中的协议号,为固定字段。
表4:MPLS标签。
MPLS标签中,MPLS标签的字段包括标签字段Label、生存时间字段TTL以及实验字段Exp,标签字段Label为20位的MPLS标签;实验字段Exp用于区分数据包的类型;S为栈底标志位,S为1表示为栈底;生存时间字段TTL为生存时间,即数据包允许经过的最大跳步数。本实施例中TTL为生存时间,即数据包允许经过的最大跳步数。本文用生存时间字段TTL来区分数据包类型,TTL为0表示用于标签控制的特殊MPLS数据包,TTL大于0表示压缩后的MPLS数据包。当TTL为0时,用过期时间字段Exp来进一步区分不同的数据包类型。过期时间字段Exp为0表示标签路径建立请求消息,Exp为1表示标签确认消息,Exp为2表示标签错误消息。
本实施例中,每个中间节点上运行一个标签控制协议,用于标签交换路径的建立。标签交换路径是从入口端经过若干中间节点到目的端的传输路径。对路径上的某个节点,位于路径的前一节点称为上游节点,位于路径的下一跳节点称为下游节点。入口端只有下游节点,出口端则只有上游节点。路径上的节点通过标签控制协议对MPLS标签进行确认,只有经过确认后的标签才能用于压缩数据包中。
如图3所示,本实施例中入口端节点针对待发送至出口端节点的IP数据包的处理包括:
S101,判断该IP数据包是否满足压缩数据流的条件,若该IP数据包不满足压缩数据流的条件,则直接将该IP数据包发送出去,结束并退出,否则执行步骤S102;
S102,根据该IP数据包的五元组查找标签转发表,若在标签转发表中没有对应的表项,则该IP数据包属于一条新数据流,执行步骤S103;否则该IP数据包属于一条已存在的数据流,跳转到步骤S104;
S103,在标签转发表中增加一条新的表项,对新的表项的各个字段进行初始化;将该IP数据包的固定字段信息填入新的表项,通过查询路由表或转发表获得该IP数据包的出接口和下一跳MAC地址并填入新的表项,为新数据流分配一个出接口上未用的标签值(给数据流分配的标签值不能是MPLS协议标准保留的标签值,例如0~15的标签值,假设对于图2中IP源地址为79.22.10.15、IP目的地址为153.12.106.220的一条数据流,为其分配的出标签为419),并填入新的表项的出标签,将新的表项的更新时间设置为当前时间,出标签确认标志设置为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地址指定的下一跳节点,结束并退出。
本实施例中,步骤S101中判断该IP数据包是否满足压缩数据流的条件时,若该IP数据包为IPv4数据包,则满足压缩数据流的条件包括:该IP数据包的包头中没有选项数据(IPv4数据包头长为5),分片标志表示该数据包没有分片,协议号表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,生存时间字段TTL大于0;若该IP数据包为IPv6数据包,则满足压缩数据流的条件包括:该IP数据包的下一头部字段表示该数据包为UDP或TCP数据包,该IP数据包中有源端口号和目的端口号字段,跳数限制值Hop Limit字段大于0。
本实施例中,步骤S103中对该IP数据包进行包头压缩操作包括:若该IP数据包为IPv4数据包,则去除IPv4数据包头中的固定字段,在数据包前添加一个MPLS标签,MPLS标签中的标签字段Label设置为该标签转发表项的出标签值,生存时间字段TTL设置为IPv4数据包头中的生存时间字段TTL值,保留IPv4数据包头中的序列号、包头校验和字段到压缩数据包中,去除UDP/TCP包头中的源端口号和目的端口号,将数据包的剩余内容保留在压缩数据包中,所述去除IPv4数据包头中的固定字段包括五元组、版本号、头长、服务类型、分片标志以及分片偏移量;如图4展示了压缩后的IPv4数据包格式,其中Identification为原始IPv4数据包中的序列号字段,Header CheckSum为原始IPv4数据包中的头校验和字段。将头校验和字段保留在压缩数据包中,可以避免在数据包恢复时的校验和计算。与原始IPv4数据包相比,压缩后的数据包减少了16字节。若该IP数据包为IPv6数据包,则去除IPv6数据包头中的固定字段,在数据包前添加一个MPLS标签,MPLS标签中的标签字段Label设置为该标签转发表项的出标签值,生存时间字段TTL设置为IPv6数据包头中的跳数限制值Hop Limit的字段值,去除UDP/TCP包头中的源端口号和目的端口号,将数据包的剩余内容保留在压缩数据包中,所述IPv6数据包头中的固定字段五元组、版本号、头长、服务类型、分片标志、分片偏移量、流标签以及流类型。如图5展示了压缩后的IPv6数据包格式。与原始IPv6数据包相比,压缩后的数据包减少了40字节。
如图6所示,本实施例中网络节点在收到带MPLS标签的数据包后的处理包括:
S201,读取该带MPLS标签的数据包的MPLS标签中生存时间字段TTL的值,若生存时间字段TTL的值为0,则判定该带MPLS标签的数据包为指定的控制消息,转步骤S202;否则判定该带MPLS标签的数据包为带MPLS标签的压缩数据包,转步骤S203;
控制消息可能有多种类型,其中至少一种极为前文提及的带MPLS标签的标签路径建立请求消息(标签之后是完整的IPv4或IPv6数据包);
S202,根据控制消息的类别分别进行处理,结束并退出;
S203,若该数据包为带MPLS标签的压缩数据包,则根据标签转发表以及标签交换机制对带MPLS标签的压缩数据包进行转发,结束并退出。
如图7所示,本实施例中步骤S202包括:
S301,读取该带MPLS标签的数据包的MPLS标签中实验字段Exp的值,若实验字段Exp的值为0,则跳转步骤S302以进入标签路径建立请求消息的处理流程;若实验字段Exp的值为1,则跳转步骤S308;若实验字段Exp的值为2,则跳转步骤S309;否则,判定该带MPLS标签的数据包为未知消息,丢弃该消息,结束并退出;
S302,查找网络节点的标签转发表是否有对应的表项(其中表项的入接口为收到该数据包的接口,表项的入标签为标签中的标签字段Label值,表项的MAC源地址为数据包的MAC源地址),若标签转发表中已有对应的表项,则将标签转发表项的更新时间设置为当前时间并跳转步骤S303;否则跳转步骤S305;
S303,检查该带MPLS标签的数据包中的固定字段信息与标签转发表的表项中保存的固定字段信息相比是否有改变,若有改变则跳转步骤S304;否则跳转步骤S306;
S304,检查该带MPLS标签的数据包中的固定字段信息与标签转发表的表项中保存的固定字段信息中IP目的地址字段是否发生改变,若IP目的地址字段没有发生改变,则将表项的出标签确认标志设置为0;否则,通过查询路由表或转发表获得该IP数据包的出接口和下一跳MAC地址,将标签转发表项的出接口和下一跳MAC地址设置为对应的值,若出接口发生了改变,则为该数据流分配一个出接口上未用的标签值(给数据流分配的标签值不能是MPLS协议标准保留的标签值,例如0~15的标签值;例如在图2的例子中,当节点A第一次收到入口端发来的标签路径建立请求消息时,将创建标签转发表项,为数据流分配出标签,假设为38。节点D和节点G也将执行类似的操作,假设为该数据流分配的出标签分别为1206和67),将表项的出标签设置为该标签值,若查询路由表确定本节点是标签交换路径的出口端设备,则出标签应设置为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以表示标签确认消息(在MPLS标签之后是数据包的复制数据,包括完整的IPv4或IPv6数据包头,以及UDP或TCP的源端口号和目的端口号,标签确认消息通过收到数据包的入接口返回给上游节点,标签确认消息的MAC目的地址是收到的数据包的MAC源地址),结束并退出;
S308,判定该带MPLS标签的数据包为标签确认消息,查找网络节点的标签转发表,获得与该消息对应的表项,其中表项的出接口是收到该消息的接口,表项的出标签与消息中MPLS标签的标签字段Label的值相同;若未找到对应的表项,则丢弃消息,结束并退出;否则,检查表项中保存的IP数据包固定字段内容是否与该带MPLS标签的数据包中包含的IP数据包固定字段信息相同,若不相同,则丢弃消息,结束并退出;否则若相同,则将表项的出标签确认标志设置为1,结束并退出;
S309,判定该带MPLS标签的数据包为标签错误消息(若标签的过期时间字段Exp为2,表示这是一个标签错误消息,包含一个MPLS标签),查找节点的标签转发表,获得与该消息对应的表项,其中表项的出接口是收到该消息的接口,表项的出标签与消息中MPLS标签的标签字段Label值相同,若未找到对应的表项,则丢弃消息,结束并退出;否则,将表项的出标签确认标志设置为0,结束并退出。
如图8所示,本实施例中步骤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地址指定的下一跳节点,结束并退出。
综上所述,本实施例方法由网络设备构成MPLS域,包括入口端设备和出口端设备。数据包从入口端设备进入MPLS域,由入口端设备分配MPLS标签,并向下一跳节点转发。MPLS域内中间节点和出口端设备自动建立标签交换路径,并保存标签对应的数据流的固定信息,包括数据流的源IP地址、目的IP地址、源端口号、目的端口号等。标签交换路径建立成功后,入口端设备对后续的数据包进行包头压缩,去除包头中固定不变的字段,并传送给下一跳节点。网络中间节点按照标签交换机制进行压缩数据包的转发。出口端设备根据保存的数据流固定信息恢复压缩数据包。本实施例方法将MPLS的标签技术应用到边缘网络中,利用标签交换的机制设计一种数据包头压缩方法,适用于边缘网络中IPv4/IPv6数据包的压缩传输,压缩后的数据包能够在入口端和出口端之间多跳传输,从而达到节约网络带宽、降低传输延迟的目的。本实施例方法在边缘网络中,在中间节点不进行压缩和解压缩的前提下,实现入口端和目的端之间压缩数据包的多跳传输,能够克服网络链路中断和拓扑变化带来的影响,同时还应尽最大可能保持与已有互联网协议标准的兼容性。本实施例方法能够适用于以太网、无线局域网、无线传感网、移动自组网等边缘有线或无线网络,具有通用性好、适用范围广的优点。
此外,本实施例还提供一种基于标签交换的边缘网络数据包头压缩传输系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述基于标签交换的边缘网络数据包头压缩传输方法。此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行前述基于标签交换的边缘网络数据包头压缩传输方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
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中任意一项所述基于标签交换的边缘网络数据包头压缩传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649015.1A CN116232996B (zh) | 2022-12-21 | 2022-12-21 | 基于标签交换的边缘网络数据包头压缩传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211649015.1A CN116232996B (zh) | 2022-12-21 | 2022-12-21 | 基于标签交换的边缘网络数据包头压缩传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116232996A true CN116232996A (zh) | 2023-06-06 |
CN116232996B CN116232996B (zh) | 2024-05-28 |
Family
ID=86570585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211649015.1A Active CN116232996B (zh) | 2022-12-21 | 2022-12-21 | 基于标签交换的边缘网络数据包头压缩传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116232996B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020017291A (ko) * | 2000-08-29 | 2002-03-07 | 윤종용 | 통신시스템에서 프로토콜 헤더 압축장치 및 방법 |
US20050169264A1 (en) * | 2004-01-29 | 2005-08-04 | Jin-Hyoung Kim | Multi-protocol label switching (MPLS) edge router |
US20070002850A1 (en) * | 2005-06-29 | 2007-01-04 | Guichard James N | System and methods for compressing message headers |
WO2018010560A1 (zh) * | 2016-07-15 | 2018-01-18 | 中兴通讯股份有限公司 | 多协议交换标签的检测、处理方法、装置及系统 |
-
2022
- 2022-12-21 CN CN202211649015.1A patent/CN116232996B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020017291A (ko) * | 2000-08-29 | 2002-03-07 | 윤종용 | 통신시스템에서 프로토콜 헤더 압축장치 및 방법 |
US20050169264A1 (en) * | 2004-01-29 | 2005-08-04 | Jin-Hyoung Kim | Multi-protocol label switching (MPLS) edge router |
US20070002850A1 (en) * | 2005-06-29 | 2007-01-04 | Guichard James N | System and methods for compressing message headers |
WO2018010560A1 (zh) * | 2016-07-15 | 2018-01-18 | 中兴通讯股份有限公司 | 多协议交换标签的检测、处理方法、装置及系统 |
Non-Patent Citations (4)
Title |
---|
ZHU TANG等: "Security enhancement for MPLS data-plane forwarding based on dynamic signature label calculation", 《2019 COMPUTING, COMMUNICATIONS AND IOT APPLICATIONS (COMCOMAP)》, 2 May 2020 (2020-05-02) * |
宋玲;李海霞;: "MPLS组播树的构建方法", 北京邮电大学学报, no. 02, 15 April 2007 (2007-04-15) * |
朱颖;韦蓉;魏宇欣;武穆清;: "一种基于MPLS的Ad hoc无线移动网络解决方案", 高技术通讯, no. 10, 15 October 2007 (2007-10-15) * |
石鸿伟;黄凤芝;: "基于关键节点的分段路由标签栈压缩算法", 电子技术与软件工程, no. 12, 15 June 2020 (2020-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN116232996B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4893581B2 (ja) | 多重化通信システム、送信処理装置、受信処理装置、多重化通信方法、送信処理方法、および受信処理方法 | |
US20060075134A1 (en) | Routing data packets in a compressed-header domain | |
US20190182145A1 (en) | Information Management Method, Apparatus, and System | |
US20080159150A1 (en) | Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly | |
CN107770073B (zh) | 一种信息同步的方法,装置及系统 | |
US9392482B2 (en) | Method for optimizing the capabilities of an ad hoc telecommunication network | |
US20130315257A1 (en) | Energy efficient routing and switching | |
KR100865490B1 (ko) | 베어러 아키텍처들에서 네트워크 헤더들을 mpls 헤더들에 맵핑하기 위한 방법 및 장치 | |
JP5115033B2 (ja) | パケット中継方法及び装置 | |
KR100636273B1 (ko) | 이더넷을 통한 mpls 멀티캐스트 패킷 전송 장치 및 방법 | |
WO2009036678A1 (fr) | Procédé, dispositif et système de réseau pour acheminer un message | |
KR100810558B1 (ko) | 패킷-지향 네트워크에서의 헤더 압축 방법 및 장치 | |
JP2009239401A (ja) | パケット転送装置 | |
JP2008118281A (ja) | 通信装置 | |
US20240007397A1 (en) | Supporting stateful explicit paths | |
US8743907B1 (en) | Apparatus for reassembling a fragmented data unit and transmitting the reassembled data unit | |
CN116232996B (zh) | 基于标签交换的边缘网络数据包头压缩传输方法及系统 | |
CN116233279A (zh) | 一种报文处理方法、设备及系统 | |
CN114520762B (zh) | BIERv6报文的发送方法以及第一网络设备 | |
JP2002368787A (ja) | 明示的経路指定中継装置 | |
US20220385560A1 (en) | Network-topology discovery using packet headers | |
US11172051B2 (en) | Communication device | |
US11757767B2 (en) | Source routing with shadow addresses | |
CN113285878A (zh) | 负载分担的方法、第一网络设备 | |
WO2024045537A1 (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 |