CN114039707A - 基于SRv6可编程网络的报文传输超时处理方法 - Google Patents
基于SRv6可编程网络的报文传输超时处理方法 Download PDFInfo
- Publication number
- CN114039707A CN114039707A CN202111322488.6A CN202111322488A CN114039707A CN 114039707 A CN114039707 A CN 114039707A CN 202111322488 A CN202111322488 A CN 202111322488A CN 114039707 A CN114039707 A CN 114039707A
- Authority
- CN
- China
- Prior art keywords
- message
- network
- flow
- time
- pkt
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 151
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 123
- 230000032683 aging Effects 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000010276 construction Methods 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000036962 time dependent Effects 0.000 claims 4
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000011160 research Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000465502 Tobacco latent virus Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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/1848—Time-out mechanisms
-
- 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
- H04L1/188—Time-out mechanisms
-
- 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/34—Source routing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SRv6可编程网络的报文传输超时处理方法,目的是解决IP网络中报文传输超时无法判断和处理的问题。技术方案是先设计报文传输超时处理协议格式,构建由部署有报文构建发送模块的报文发送节点、M个部署有报文超时处理模块的报文转发节点组成的网络报文传输超时处理系统;报文构建发送模块和M个超时处理模块并行配合工作,报文构建发送模块管理网络流传输时效时间并将网络应用传输的网络报文封装为超时控制网络报文;M个超时处理模块并行判断并对网络报文传输超时进行处理,丢弃超时了的报文。本发明能解决现有IP网络中超时无效报文占用网络资源并可能影响网络应用正常运行的问题,使得网络传输中没有超时失效报文。
Description
技术领域
本发明属于计算机网络技术领域,尤其涉及基于SRv6(Segment Routing forIPv6即IPv6网络中的段路由)可编程网络的报文传输超时处理方法。
背景技术
随着各种互联网应用和5G网络技术的发展,报文传输的时效性越来越重要。在很多应用中,一旦报文传输的时间超出时效时间,则该报文内容就已经失效,没有必要再在网络中传输,如果继续传输失效的报文,则会造成网络资源的浪费;甚至当接收端接收到失效报文后,反倒对网络应用的正常运行带来负面影响,比如在工业控制领域,已经失效的控制指令报文到达后将打乱接收端设备的正常运行甚至造成重大损失。因此在网络传输中及时丢弃已经超出时效时间的网络报文很有意义。
IETF规范RFC6298设计了一种TCP报文重传的超时计算方法,但是该方法是用于发送端超时没有收到接收端反馈的报文进行重传,是针对发送端的,用以解决传输可靠性问题,并不能解决超时无效报文在网络中继续传输从而占用网络资源的问题。阿维夫·巴内亚等提出的传输超时动态计算方法(参见阿维夫·巴内亚,伊多·萨梅,艾坦·扎哈维,约瑟夫·伊蒂金,罗特·丹斯克尔.使用传输超时的网络系统通信方法及通信装置:中国专利,申请号201911132556.5,2020年05月22日)是对RFC6298所述方法的改进,用于超时重传机制,仍然是针对传输可靠性问题,无法解决无效报文继续传输的问题。
目前关于网络超时的研究主要集中于网络连接的超时,而非网络报文传输的超时。如雷郴湘提出一种基于大数据的网络连接超时时间设置方法(参见雷郴湘.网络连接超时时间设置方法、装置、设备及介质:中国专利,申请号201910780385.0,2019年12月27日),该方法可以解决当前网络连接管理中设置固定超时时间的方法在弱网环境中影响用户产品体验的问题。刘锋提出一种网络流超时处理方法(参见刘锋.一种网络流超时处理方法:中国专利,申请号200910273113.8,2011年09月07日),该方法中的网络流是基于网络连接的,实际上是对超时网络连接的处理,通过网络连接创建时间和预期超时时间对网络流排队,实现超时处理。J.C.莫格尔提出为网络连接设置细粒度超时时间的方法(参见J.C.莫格尔.使用故意延迟发送的网络超时:中国专利,授权公告号CN 106462474 B,2020年03月31日),发送方发送正常的数据消息和对应的超时消息,网络控制器通过判断数据消息激发的响应消息和超时消息哪个先到来判断请求是否超时。刘俊启提出的在网络中用于确定数据传输超时时间的方法(参见刘俊启.一种用于确定数据传输超时时间的方法、装置与设备:中国专利,授权公告号CN 102355327 B,2015年05月13日),该方法根据实际传输的网络类型来确定网络连接超时时间,以改善使用固定网络超时时间的问题。该方法仍然是针对网络连接,用于发送端确认是否需要断开连接或者重传报文。拉卡拉支付股份有限公司提出一种网络请求超时重传方法(参见拉卡拉支付股份有限公司.网络请求超时重传方法及装置:中国专利,授权公告号CN 111711514 B,2021年07月09日),用以解决现有技术在重传过程中无法快速发现问题并自动纠错的问题。
上述文献和方案都是针对网络连接超时进行研究,关于网络报文本身在网络中传输的时效性问题,目前还没有公开技术方案涉及这一方面的技术手段。
SRv6技术为IP报文设计了SRH(Segment Routing Header)报文头。在SRH中设计有Optional TLV字段,使得网络设备可以根据Optional TLV字段的定义实现对网络报文的特殊处理,为网络报文的处理带来了可编程特性,进而为解决现有IP网络中的问题提供了一种技术手段,成为科研院所、网络设备商和网络运营商在网络新技术领域的研究热点。
如何利用SRv6技术带来的网络可编程特性,设计针对网络报文的满足网络应用的报文传输时效性需求的报文传输超时处理方法,解决现有IP网络中报文传输是否超时无法判断和处理的问题是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是基于SRv6技术的网络可编程特性解决现有IP网络中报文传输超时无法判断和处理的问题。
第一步,设计报文传输超时处理协议格式,方法是:
SRv6技术规范(RFC8754)中定义了Segment-Routing Header协议头(SRH)。在SRH中定义了可选的TLV(Type Length Value)字段(即表1的Optional TLV字段),通过设计TLV字段,可以为网络报文处理增加可编程功能(SRH格式如表1)。SRH共包括7个固定字段、n个Segment List元素和1个可选字段(长度可变,不好描述,这里用字段来描述),分别为NextHeader、Hdr Ext Len、Routing Type、Seg Left、Last Entry、Flags、Tag、n个128位的IPv6地址(存放在Segment List[0]到Segment List[n])和Optional TLV,表1中各个字段的长度及含义在RFC8754中有详细定义。
表1SRH格式
在SRH中,与本发明相关的字段为Hdr Ext Len、Last Entry和Optional TLV。HdrExt Len字段,长度为8bit,指示从Segment List[0]到Segment List[n]的长度,长度的单位为8字节(即Hdr Ext Len字段中的1个值表示8个字节);Last Entry字段,长度为8bit,指示Segment List中元素的个数n;Optional TLV字段,长度可变,为可选字段。
为实现报文传输超时处理,在SRH报文头的基础上,设计一种新的TLV,命名为TTP(Transmission Timeout Process)TLV,以支持和实现对报文传输时间超时的处理。TTPTLV格式如表2所示。即在表1所示SRH中用8个字节长的TTP TLV代替Optional TLV字段。
表2TTP TLV格式
TTP TLV各个字段长度及含义如下:
Type:字段长度8bit,表示TTP TLV的类型。目前RFC8754定义了Type值为4和5的两种类型TLV。TTP TLV的Type值为type_value,type_value可以选0~255范围内除4和5以外的任意不会引起歧义的值,type_value优选为101。
Length:字段长度8bit,取值为b,b为0~255中任意值,表示TTP TLV从Type字段开始到StartTime字段结束的总长度,以字节为单位。本发明中,b为8,表示TTP TLV的长度为8个字节。
Timeout:字段长度16bit,取值为0~65535中任意值,表示报文传输的时效时间(即当报文在网络中传输时间大于该字段值时,认为报文无效),单位为毫秒。在本发明的设计中,Timeout优选设置为0~65.5秒,由于报文在网络中传输时延一般不超过60秒,因此可满足报文传输时效性的需求。
StartTime:字段长度32bit,取值为0~4294967296中任意值,报文从源节点发出的时间,单位为秒。本发明中StartTime采用Unix时间,即从1970年1月1日0时0分0秒开始的秒数。在本发明的设计中,报文发送时间最多可表示136年,即从1970年开始一直到2106年,即本发明可以用至2106年,满足当前应用的需求。
第二步,构建网络报文传输超时处理系统,方法是:
网络报文传输超时处理系统由一个报文发送节点、M个报文转发节点组成。报文发送节点是网络中网络应用的客户端或服务端,其上部署有报文构建发送模块。报文转发节点是网络中的路由器、交换机等实施报文转发功能的专用设备或通用服务器,其上部署有报文超时处理模块。
报文构建发送模块位于报文发送节点的网络应用和外部网络之间,从网络应用接收网络报文,处理后发送至外部网络。网络应用是指利用网络传输数据的应用程序。报文构建发送模块监听网络应用,从网络应用接收网络流传输时效时间数据和要传输的网络报文。报文构建发送模块将网络流传输时效时间数据存储于网络流传输时效时间链表flow_time_list。flow_time_list中每个元素存储一个网络流的报文传输时效时间数据flow_time,flow_time包含6个域:网络流的源IP(即flow_sip)、网络流的目的IP(即flow_dip)、网络流的源端口(即flow_sport)、网络流的目的端口(即flow_dport)、网络流协议号(即flow_proto)、网络流传输时效时间(即flow_etime)。报文构建发送模块从网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口以及网络协议号数据从flow_time_list中查找对应网络流传输时效时间数据,获取系统当前时间,并根据系统当前时间和网络流传输时效时间数据中的flow_etime字段值构建TTP TLV,并更新网络报文的SRH,将更新后的网络报文发送至外部网络。报文构建发送模块如果没有从flow_time_list中查找到对应网络流传输时效时间数据,则将报文直接发送至外部网络。
报文超时处理模块位于部署于同一报文转发节点的转发处理部分(即报文转发节点中用于完成报文转发功能的功能模块,如路由器、交换机中的用软件或硬件实现的交换模块)与外部网络之间。报文超时处理模块从外部网络接收报文,完成报文传输超时处理后,发送给所在节点上的转发处理部分。报文超时处理模块获取系统当前时间,根据报文中TTP TLV中Timeout字段和Start Time字段的值,判断报文当前传输是否超时,如果超时则丢弃报文,如果没有超时,则将报文发送至转发处理部分。
第三步,报文传输超时处理系统的报文构建发送模块和M个超时处理模块并行配合工作,对网络报文传输超时进行处理。方法是:
报文构建发送模块按照3.1所述流程监听所属报文发送节点上的网络应用,从网络应用接收网络流传输时效时间数据flow_time,将flow_time存入网络流传输时效时间链表flow_time_list,从网络应用接收要传输的网络报文pkt,根据pkt的源IP、目的IP、源端口、目的端口和协议号从flow_time_list中找出对应的flow_time_pkt,根据flow_time_pkt和第一步设计的报文传输超时处理协议格式构建TTP TLV,将TTP TLV插入pkt中,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络;同时M个报文超时处理模块均按照3.2所述流程从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTP TLV,根据第一步设计的报文传输超时处理协议格式从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给报文超时处理模块所属报文转发节点上的转发处理部分。即第m个报文超时处理模块按照3.2所述流程从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTP TLV,根据第一步设计的报文传输超时处理协议格式从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给第m个报文转发节点上的转发处理部分。
3.1报文构建发送模块按3.1.1-3.1.12所述方法管理网络流传输时效时间并将网络应用传输的网络报文封装超时控制网络报文:
3.1.1初始化网络流传输时效时间链表flow_time_list为空。
3.1.2监听报文构建发送模块所属报文发送节点上的网络应用,如果有网络流传输时效时间数据到达,转步骤3.1.3,如果有网络报文到达,转步骤3.1.4,否则转3.1.2继续监听。
3.1.3初始化flow_time为0,从网络应用接收网络流传输时效时间数据并存入flow_time,将flow_time插入链表flow_time_list,转步骤3.1.2。
3.1.4从网络应用接收网络报文pkt,从pkt中获取源IP字段值pkt_sip、目的IP字段值pkt_dip、源端口字段值pkt_sport、目的端口字段值pkt_dport、协议号pkt_proto。
3.1.5获取链表flow_time_list中元素个数FLOWN,获取系统当前时间CT。
3.1.6定义循环变量i,令i=1。
3.1.7获取链表flow_time_list的第i个元素i_flow_time。
3.1.8判断以下公式是否同时成立:
i_flow_time.flow_sip=pkt_sip;
i_flow_time.flow_dip=pkt_dip;
i_flow_time.flow_sport=pkt_sport;
i_flow_time.flow_dport=pkt_dport;
i_flow_time.flow_proto=pkt_proto;
如果同时成立,说明报文pkt属于网络流传输时效时间数据i_flow_time对应的网络流,需要对pkt做超时控制网络报文的封装,转步骤3.1.10;只要有一个公式不成立,转步骤3.1.9。
3.1.9令i=i+1,如果i≤FLOWN,转步骤3.1.7,否则转步骤3.1.12。
3.1.10根据表2的格式构建TTP TLV,令:
TTP TLV字段Type=type_value;
TTP TLV字段Length=b。
TTP TLV字段Timeout=i_flow_time.flow_etime;
TTP TLV字段StartTime=CT;
3.1.11根据表3所述IP报文头格式,将TTP TLV插入到网络报文pkt的SRH的后面,令报文pkt的SRH的Hdr Ext Len=Hdr Ext Len+1,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络。转步骤3.1.2。
表3添加了TTP TLV的报文头格式
3.1.12将报文pkt发送至外部网络。转步骤3.1.2。
3.2第1个报文转发节点1,…,第m个报文转发节点,…,第M个报文转发节点上的报文超时处理模块并行按3.2.1-3.2.9所述方法判断从外部网络接收的报文是否为超时控制网络报文,判断超时控制网络报文传输时间是否超时,处理超时的超时控制网络报文;令第m个报文转发节点上的报文超时处理模块为第m个报文超时处理模块,第m个报文超时处理模块的处理方法是:
3.2.1第m个报文超时处理模块监听外部网络,如果有网络报文到达,转步骤3.2.2,否则转3.2.1继续监听。
3.2.2第m个报文超时处理模块从外部网络接收报文pkt_r,根据表3所述报文头格式获取pkt_r的Next Header字段,判断Next Header是否等于43,如果是,说明pkt_r属于SRv6报文,转步骤3.2.3继续判断,否则转步骤3.2.9。
3.2.3第m个报文超时处理模块根据表3所述报文头格式获取pkt_r的Hdr Ext Len字段和Last Entry字段,判断Hdr Ext Len是否等于Last Entry+1,如果是,说明pkt_r的SRv6报文头中包含TTP TLV,转步骤3.2.4继续判断,否则转步骤3.2.9。
3.2.4第m个报文超时处理模块根据表3所述报文头格式,获取pkt_r的TTP TLV。
3.2.5第m个报文超时处理模块根据表2所述格式,获取TTP TLV的Type、Length、Timeout字段和StartTime字段,判断Type=type_value并且Length=b是否同时成立,如果是,说明pkt_r是超时控制网络报文,转步骤3.2.6处理;如果Type=type_value和Length=b(见3.1.10的说明)不同时成立,转步骤3.2.9。
3.2.6第m个报文超时处理模块获取系统当前时间CT1。
3.2.7第m个报文超时处理模块判断CT1-StartTime<Timeout是否成立,如果是,说明pkt_r传输没有超时,转步骤3.2.9,否则说明pkt_r传输超时,转步骤3.2.8。
3.2.8第m个报文超时处理模块丢弃pkt_r,转步骤3.2.1。
3.2.9第m个报文超时处理模块将pkt_r发送至第m个报文转发节点上的转发处理部分,转步骤3.2.1。
本发明利用SRv6技术,利用SRH报文头的可扩展性,在SRH中设计了针对报文传输时间超时处理的TLV——TTP TLV,定义了TTP TLV各个字段的长度及含义;基于SRv6技术和设计的TTP TLV设计了报文传输超时处理方法,能够解决现有IP网络中超时无效报文占用网络资源并可能影响网络应用正常运行的问题。
采用本发明可以达到以下技术效果:
1)本发明第一步在SRH中设计了针对报文传输超时处理的TLV——TTP TLV,TTPTLV中记录了该TLV的类型、长度、报文从源节点发出的时间以及报文传输的有效时间,利用TTP TLV可实现对报文传输超时的控制和处理。
2)本发明第二步基于SRv6技术和TTP TLV构建了报文传输超时处理系统,根据网络应用对报文传输时效时间的实际需求,在报文的SRH报文头中添加TTP TLV,构建超时控制网络报文,并在后续转发时,根据TTP TLV判断报文传输是否超时并进行处理。
3)本发明第三步报文构建发送模块实时接收网络应用的传输超时处理需求,并根据需求为每个网络应用的每个报文封装TTP TLV,可以实现报文传输超时处理系统为每个网络应用的每个报文提供传输超时服务,使得网络传输中没有超时失效报文,解决了现有IP网络中报文传输超时无法判断和处理的问题。
4)本发明可以支持任意基于TCP/IP协议的网络应用,只需要网络应用所在节点部署报文构建发送模块并且网络应用将报文传输超时需求按照第二步所述格式发送给报文构建发送模块,因此通用性好。
附图说明
图1是本发明总体流程图;
图2是本发明第二步构建的网络报文传输超时处理系统逻辑结构图。
具体实施方式
下面对照附图对本发明进行详细说明:
如图1所示,本发明包括以下步骤:
第一步,设计报文传输超时处理协议格式,方法是:
在SRH报文头的基础上,设计一种新的TLV,命名为TTP TLV,以支持和实现对报文传输时间超时的处理。TTP TLV格式如表2所示。即在表1所示SRH中用8个字节长的TTP TLV代替Optional TLV字段。
TTP TLV各个字段长度及含义如下:
Type:字段长度8bit,表示TTP TLV的类型。TTP TLV的Type值为type_value,type_value可以选0~255范围内除4和5以外的任意不会引起歧义的值,type_value优选为101。
Length:字段长度8bit,取值为b,b为0~255中任意值,表示TTP TLV从Type字段开始到StartTime字段结束的总长度,以字节为单位。本发明中,b为8,表示TTP TLV的长度为8个字节。
Timeout:字段长度16bit,取值为0~65535中任意值,表示报文传输的时效时间,单位为毫秒。本实施例中,Timeout设置为0~65.5秒。
StartTime:字段长度32bit,取值为0~4294967296中任意值,报文从源节点发出的时间,单位为秒。本发明中StartTime采用Unix时间,即从1970年1月1日0时0分0秒开始的秒数。在本发明的设计中,报文发送时间最多可表示136年,即从1970年开始一直到2106年,即本发明可以用至2106年,满足当前应用的需求。
第二步,构建网络报文传输超时处理系统,方法是:
网络报文传输超时处理系统如图2所示,由一个报文发送节点、M个报文转发节点组成。报文发送节点是网络中网络应用的客户端或服务端,其上部署有报文构建发送模块。报文转发节点是网络中的路由器、交换机等实施报文转发功能的专用设备或通用服务器,其上部署有报文超时处理模块。
报文构建发送模块位于报文发送节点的网络应用和外部网络之间,从网络应用接收网络报文,处理后发送至外部网络。网络应用是指利用网络传输数据的应用程序。报文构建发送模块监听网络应用,从网络应用接收网络流传输时效时间数据和要传输的网络报文。报文构建发送模块将网络流传输时效时间数据存储于网络流传输时效时间链表flow_time_list。flow_time_list中每个元素存储一个网络流的报文传输时效时间数据flow_time,flow_time包含6个域:网络流的源IP(即flow_sip)、网络流的目的IP(即flow_dip)、网络流的源端口(即flow_sport)、网络流的目的端口(即flow_dport)、网络流协议号(即flow_proto)、网络流传输时效时间(即flow_etime)。报文构建发送模块从网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口以及网络协议号数据从flow_time_list中查找对应网络流传输时效时间数据,获取系统当前时间,并根据系统当前时间和网络流传输时效时间数据中的flow_etime字段值构建TTP TLV,并更新网络报文的SRH,将更新后的网络报文发送至外部网络。报文构建发送模块如果没有从flow_time_list中查找到对应网络流传输时效时间数据,则将报文直接发送至外部网络。
报文超时处理模块位于部署于同一报文转发节点的转发处理部分(即报文转发节点中用于完成报文转发功能的功能模块,如路由器、交换机中的用软件或硬件实现的交换模块)与外部网络之间。报文超时处理模块从外部网络接收报文,完成报文传输超时处理后,发送给所在节点上的转发处理部分。报文超时处理模块获取系统当前时间,根据报文中TTP TLV中Timeout字段和Start Time字段的值,判断报文当前传输是否超时,如果超时则丢弃报文,如果没有超时,则将报文发送至转发处理部分。
第三步,报文传输超时处理系统的报文构建发送模块和M个超时处理模块并行配合工作,对网络报文传输超时进行处理。方法是:
报文构建发送模块按照3.1所述流程监听所属报文发送节点上的网络应用,从网络应用接收网络流传输时效时间数据flow_time,将flow_time存入网络流传输时效时间链表flow_time_list,从网络应用接收要传输的网络报文pkt,根据pkt的源IP、目的IP、源端口、目的端口和协议号从flow_time_list中找出对应的flow_time_pkt,根据flow_time_pkt和第一步设计的报文传输超时处理协议格式构建TTP TLV,将TTP TLV插入pkt中,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络;同时M个报文超时处理模块均按照3.2所述流程从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTP TLV,根据第一步设计的报文传输超时处理协议格式从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给报文超时处理模块所属报文转发节点上的转发处理部分。即第m个报文超时处理模块按照3.2所述流程从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTP TLV,根据第一步设计的报文传输超时处理协议格式从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给第m个报文转发节点上的转发处理部分。
3.1报文构建发送模块按3.1.1-3.1.12所述方法管理网络流传输时效时间并将网络应用传输的网络报文封装超时控制网络报文:
3.1.1初始化网络流传输时效时间链表flow_time_list为空。
3.1.2监听报文构建发送模块所属报文发送节点上的网络应用,如果有网络流传输时效时间数据到达,转步骤3.1.3,如果有网络报文到达,转步骤3.1.4,否则转3.1.2继续监听。
3.1.3初始化flow_time为0,从网络应用接收网络流传输时效时间数据并存入flow_time,将flow_time插入链表flow_time_list,转步骤3.1.2。
3.1.4从网络应用接收网络报文pkt,从pkt中获取源IP字段值pkt_sip、目的IP字段值pkt_dip、源端口字段值pkt_sport、目的端口字段值pkt_dport、协议号pkt_proto。
3.1.5获取链表flow_time_list中元素个数FLOWN,获取系统当前时间CT。
3.1.6定义循环变量i,令i=1。
3.1.7获取链表flow_time_list的第i个元素i_flow_time。
3.1.8判断以下公式是否同时成立:
i_flow_time.flow_sip=pkt_sip;
i_flow_time.flow_dip=pkt_dip;
i_flow_time.flow_sport=pkt_sport;
i_flow_time.flow_dport=pkt_dport;
i_flow_time.flow_proto=pkt_proto;
如果同时成立,说明报文pkt属于网络流传输时效时间数据i_flow_time对应的网络流,需要对pkt做超时控制网络报文的封装,转步骤3.1.10;只要有一个公式不成立,转步骤3.1.9。
3.1.9令i=i+1,如果i≤FLOWN,转步骤3.1.7,否则转步骤3.1.12。
3.1.10根据表2的格式构建TTP TLV,令:
TTP TLV字段Type=type_value;
TTP TLV字段Length=b,b为0~255,b优选为8。
TTP TLV字段Timeout=i_flow_time.flow_etime;
TTP TLV字段StartTime=CT;
3.1.11根据表3所述IP报文头格式,将TTP TLV插入到网络报文pkt的SRH的后面,令报文pkt的SRH的Hdr Ext Len=Hdr Ext Len+1,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络。转步骤3.1.2。
3.1.12将报文pkt发送至外部网络。转步骤3.1.2。
3.2第1个报文转发节点1,…,第m个报文转发节点,…,第M个报文转发节点上的报文超时处理模块并行按3.2.1-3.2.9所述方法判断从外部网络接收的报文是否为超时控制网络报文,判断超时控制网络报文传输时间是否超时,处理超时的超时控制网络报文;令第m个报文转发节点上的报文超时处理模块为第m个报文超时处理模块,第m个报文超时处理模块的处理方法是:
3.2.1第m个报文超时处理模块监听外部网络,如果有网络报文到达,转步骤3.2.2,否则转3.2.1继续监听。
3.2.2第m个报文超时处理模块从外部网络接收报文pkt_r,根据表3所述报文头格式获取pkt_r的Next Header字段,判断Next Header是否等于43,如果是,说明pkt_r属于SRv6报文,转步骤3.2.3继续判断,否则转步骤3.2.9。
3.2.3第m个报文超时处理模块根据表3所述报文头格式获取pkt_r的Hdr Ext Len字段和Last Entry字段,判断Hdr Ext Len是否等于Last Entry+1,如果是,说明pkt_r的SRv6报文头中包含TTP TLV,转步骤3.2.4继续判断,否则转步骤3.2.9。
3.2.4第m个报文超时处理模块根据表3所述报文头格式,获取pkt_r的TTP TLV。
3.2.5第m个报文超时处理模块根据表2所述格式,获取TTP TLV的Type、Length、Timeout字段和StartTime字段,判断Type=type_value并且Length=b是否同时成立,如果是,说明pkt_r是超时控制网络报文,转步骤3.2.6处理;如果Type=type_value和Length=b不同时成立,转步骤3.2.9。
3.2.6第m个报文超时处理模块获取系统当前时间CT1。
3.2.7第m个报文超时处理模块判断CT1-StartTime<Timeout是否成立,如果是,说明pkt_r传输没有超时,转步骤3.2.9,否则说明pkt_r传输超时,转步骤3.2.8。
3.2.8第m个报文超时处理模块丢弃pkt_r,转步骤3.2.1。
3.2.9第m个报文超时处理模块将pkt_r发送至第m个报文转发节点上的转发处理部分,转步骤3.2.1。
Claims (4)
1.一种基于SRv6可编程网络的报文传输超时处理方法,其特征在于包括以下步骤:
第一步,设计报文传输超时处理协议格式,方法是:
在SRH中用TTP TLV代替Optional TLV字段,TTP TLV包含4个字段,4个字段的长度及含义分别是:
Type:表示TTPTLV的类型,Type值=type_value,type_value为0~255范围内除4和5以外的任意不会引起歧义的值;
Length:取值为b,b为0~255中任意值,表示TTP TLV从Type字段开始到StartTime字段结束的总长度,长度以字节为单位;
Timeout:取值为0~65535中任意值,表示报文传输的时效时间,即当报文在网络中传输时间大于该字段值时,该报文无效,单位为毫秒;
StartTime:取值为0~4294967296中任意值,报文从源节点发出的时间,单位为秒;
第二步,构建网络报文传输超时处理系统,方法是:
网络报文传输超时处理系统由一个报文发送节点、M个报文转发节点组成;报文发送节点是网络中网络应用的客户端或服务端,其上部署有报文构建发送模块;报文转发节点是网络中实施报文转发功能的专用设备或通用服务器,其上部署有报文超时处理模块;
报文构建发送模块位于报文发送节点的网络应用和外部网络之间,从网络应用接收网络报文,处理后发送至外部网络;网络应用是指利用网络传输数据的应用程序;报文构建发送模块监听网络应用,从网络应用接收网络流传输时效时间数据和要传输的网络报文;报文构建发送模块将网络流传输时效时间数据存储于网络流传输时效时间链表flow_time_list;flow_time_list中每个元素存储一个网络流的报文传输时效时间数据flow_time,flow_time包含7个域:网络流的源IP即flow_sip、网络流的目的IP即flow_dip、网络流的源端口即flow_sport、网络流的目的端口即flow_dport、网络流协议号即flow_proto、网络流最近传输报文的时间即flow_dtime、网络流传输时效时间即flow_etime;报文构建发送模块从网络应用接收要传输的网络报文,根据网络报文的源IP、目的IP、源端口、目的端口以及网络协议号数据从flow_time_list中查找对应网络流传输时效时间数据,更新网络流传输时效时间数据中的网络流最近传输报文时间flow_dtime,获取系统当前时间,并根据系统当前时间和网络流传输时效时间数据中的flow_etime字段值构建TTP TLV,并更新网络报文的SRH,将更新后的网络报文发送至外部网络;报文构建发送模块如果没有从flow_time_list中查找到对应网络流传输时效时间数据,则将报文直接发送至外部网络;
报文超时处理模块位于部署于同一转发节点的转发处理部分与外部网络之间;报文超时处理模块从外部网络接收报文,完成报文传输超时处理后,发送给所在节点上的转发处理部分;报文超时处理模块获取系统当前时间,根据报文中TTP TLV中Timeout字段和StartTime字段的值,判断报文当前传输是否超时,如果超时则丢弃报文,如果没有超时,则将报文发送至转发处理部分;
第三步,报文传输超时处理系统的报文构建发送模块和M个超时处理模块并行配合工作,对网络报文传输超时进行处理,方法是:
报文构建发送模块管理网络流传输时效时间并将网络应用传输的网络报文封装为超时控制网络报文,方法是:监听所属报文发送节点上的网络应用,从网络应用接收网络流传输时效时间数据flow_time,将flow_time存入网络流传输时效时间链表flow_time_list,从网络应用接收要传输的网络报文pkt,根据pkt的源IP、目的IP、源端口、目的端口和协议号从flow_time_list中找出对应的flow_time_pkt,根据flow_time_pkt和第一步设计的报文传输超时处理协议格式构建TTP TLV,将TTP TLV插入pkt中,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络;
同时第1个报文转发节点1,…,第m个报文转发节点,…,第M个报文转发节点上的报文超时处理模块并行从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTP TLV,根据第一步设计的报文传输超时处理协议格式从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给报文超时处理模块所属报文转发节点上的转发处理部分;第1个报文转发节点1,…,第m个报文转发节点,…,第M个报文转发节点上的报文超时处理模块的处理方法相同。
2.如权利要求1所述的一种基于SRv6可编程网络的报文传输超时处理方法,其特征在于所述TTP TLV中的Type字段长度为8bit,type_value选为101;Length字段长度为8bit,b=8;Timeout字段长度为16bit,Timeout设置为0~65.5秒;StartTime字段长度为32bit,StartTime采用Unix时间,即从1970年1月1日0时0分0秒开始的秒数,报文发送时间最多表示136年。
3.如权利要求1所述的一种基于SRv6可编程网络的报文传输超时处理方法,其特征在于第三步所述报文构建发送模块管理网络流传输时效时间并将网络应用传输的网络报文封装为超时控制网络报文的具体方法是:
3.1.1初始化网络流传输时效时间链表flow_time_list为空;
3.1.2监听报文构建发送模块所属报文发送节点上的网络应用,如果有网络流传输时效时间数据到达,转步骤3.1.3,如果有网络报文到达,转步骤3.1.4,否则转3.1.2继续监听;
3.1.3初始化flow_time为0,从网络应用接收网络流传输时效时间数据并存入flow_time,将flow_time插入链表flow_time_list,转步骤3.1.2;
3.1.4从网络应用接收网络报文pkt,从pkt中获取源IP字段值pkt_sip、目的IP字段值pkt_dip、源端口字段值pkt_sport、目的端口字段值pkt_dport、协议号pkt_proto;
3.1.5获取链表flow_time_list中元素个数FLOWN,获取系统当前时间CT;
3.1.6定义循环变量i,令i=1;
3.1.7获取链表flow_time_list的第i个元素i_flow_time;
3.1.8判断以下公式是否同时成立:
i_flow_time.flow_sip=pkt_sip;
i_flow_time.flow_dip=pkt_dip;
i_flow_time.flow_sport=pkt_sport;
i_flow_time.flow_dport=pkt_dport;
i_flow_time.flow_proto=pkt_proto;
如果同时成立,说明报文pkt属于网络流传输时效时间数据i_flow_time对应的网络流,需要对pkt做超时控制网络报文的封装,转步骤3.1.10;只要有一个公式不成立,转步骤3.1.9;
3.1.9令i=i+1,如果i≤FLOWN,转步骤3.1.7,否则转步骤3.1.12;
3.1.10构建TTP TLV,令:
TTP TLV字段Type=type_value;
TTP TLV字段Length=b;
TTP TLV字段Timeout=i_flow_time.flow_etime;
TTP TLV字段StartTime=CT;
3.1.11将TTP TLV插入到网络报文pkt的SRH的后面,令报文pkt的SRH的Hdr Ext Len=Hdr Ext Len+1,构建超时控制网络报文pkt_new,将pkt_new发送至外部网络;转步骤3.1.2;
3.1.12将报文pkt发送至外部网络,转步骤3.1.2。
4.如权利要求1所述的一种基于SRv6可编程网络的报文传输超时处理方法,其特征在于第三步所述第1个报文转发节点1,…,第m个报文转发节点,…,第M个报文转发节点上的报文超时处理模块并行从外部网络接收超时控制网络报文pkt_new,从pkt_new中获取TTPTLV,从TTP TLV中获取报文传输时效时间Timeout和报文从源节点发出的时间StartTime,并获取当前系统时间CurrentTime,根据Timeout、StartTime和CurrentTime判断pkt_new传输是否超时,如果超时则丢弃pkt_new,否则将pkt_new发送给报文超时处理模块所属报文转发节点上的转发处理部分的具体方法是:令第m个报文转发节点上的报文超时处理模块为第m个报文超时处理模块,第m个报文超时处理模块的处理方法是:
3.2.1第m个报文超时处理模块监听外部网络,如果有网络报文到达,转步骤3.2.2,否则转3.2.1继续监听;
3.2.2第m个报文超时处理模块从外部网络接收报文pkt_r,获取pkt_r的Next Header字段,判断Next Header是否等于43,如果是,说明pkt_r属于SRv6报文,转步骤3.2.3继续判断,否则转步骤3.2.9;
3.2.3第m个报文超时处理模块获取pkt_r的Hdr Ext Len字段和Last Entry字段,判断Hdr Ext Len是否等于Last Entry+1,如果是,说明pkt_r的SRv6报文头中包含TTP TLV,转步骤3.2.4继续判断,否则转步骤3.2.9;
3.2.4第m个报文超时处理模块获取pkt_r的TTP TLV;
3.2.5第m个报文超时处理模块获取TTP TLV的Type、Length、Timeout字段和StartTime字段,判断Type=type_value并且Length=b是否同时成立,如果是,说明pkt_r是超时控制网络报文,转步骤3.2.6处理;如果Type=type_value和Length=b不同时成立,转步骤3.2.9;
3.2.6第m个报文超时处理模块获取系统当前时间CT1;
3.2.7第m个报文超时处理模块判断CT1-StartTime<Timeout是否成立,如果是,说明pkt_r传输没有超时,转步骤3.2.9,否则说明pkt_r传输超时,转步骤3.2.8;
3.2.8第m个报文超时处理模块丢弃pkt_r,转步骤3.2.1;
3.2.9第m个报文超时处理模块将pkt_r发送至第m个报文转发节点上的转发处理部分,转步骤3.2.1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111322488.6A CN114039707B (zh) | 2021-11-09 | 2021-11-09 | 基于SRv6可编程网络的报文传输超时处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111322488.6A CN114039707B (zh) | 2021-11-09 | 2021-11-09 | 基于SRv6可编程网络的报文传输超时处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114039707A true CN114039707A (zh) | 2022-02-11 |
CN114039707B CN114039707B (zh) | 2023-11-07 |
Family
ID=80137024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111322488.6A Active CN114039707B (zh) | 2021-11-09 | 2021-11-09 | 基于SRv6可编程网络的报文传输超时处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039707B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110141911A1 (en) * | 2009-12-10 | 2011-06-16 | Alcatel-Lucent | Connectivity fault management timeout period control |
US20150326698A1 (en) * | 2014-05-08 | 2015-11-12 | Google Inc. | Network timeouts using intentionally delayed transmissions |
CN110971433A (zh) * | 2018-09-29 | 2020-04-07 | 华为技术有限公司 | 获取SRv6隧道信息的方法、设备和系统 |
CN111585890A (zh) * | 2020-04-10 | 2020-08-25 | 清华大学 | 基于SRv6的网络路径验证方法及系统 |
CN113098774A (zh) * | 2021-03-25 | 2021-07-09 | 北京金山云网络技术有限公司 | 一种报文转发方法及装置 |
CN113347092A (zh) * | 2021-05-27 | 2021-09-03 | 大连理工大学 | 一种基于IPv6的SRv6数据处理方法 |
-
2021
- 2021-11-09 CN CN202111322488.6A patent/CN114039707B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110141911A1 (en) * | 2009-12-10 | 2011-06-16 | Alcatel-Lucent | Connectivity fault management timeout period control |
US20150326698A1 (en) * | 2014-05-08 | 2015-11-12 | Google Inc. | Network timeouts using intentionally delayed transmissions |
CN110971433A (zh) * | 2018-09-29 | 2020-04-07 | 华为技术有限公司 | 获取SRv6隧道信息的方法、设备和系统 |
CN111585890A (zh) * | 2020-04-10 | 2020-08-25 | 清华大学 | 基于SRv6的网络路径验证方法及系统 |
CN113098774A (zh) * | 2021-03-25 | 2021-07-09 | 北京金山云网络技术有限公司 | 一种报文转发方法及装置 |
CN113347092A (zh) * | 2021-05-27 | 2021-09-03 | 大连理工大学 | 一种基于IPv6的SRv6数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114039707B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10237153B2 (en) | Packet retransmission method and apparatus | |
CN109218186B (zh) | 一种多路径数据传输处理方法及网络设备 | |
US8406240B2 (en) | Packet fragmentation prevention | |
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
KR100785293B1 (ko) | 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법 | |
US9621384B2 (en) | Systems and methods for communicating data over parallel data paths | |
US7355971B2 (en) | Determining packet size in networking | |
JP4430597B2 (ja) | ネットワークシステム、送信側振分装置、パケット通信方法、および、パケット通信プログラム | |
US20070171828A1 (en) | Method of determining a maximum transmission unit value of a network path using transport layer feedback | |
CN107070689B (zh) | 减少使用网络保活消息时的错误警告的方法及装置 | |
EP3535932A1 (en) | Application characterization using transport protocol analysis | |
WO2014037760A1 (zh) | 增加数据流传输的方法和系统 | |
US20070076618A1 (en) | IP communication device and IP communication system therefor | |
WO2009139914A1 (en) | Method and system for transmission of fragmented packets on a packet-based communication network | |
US7304959B1 (en) | Utility based filtering mechanism for PMTU probing | |
CN102769520B (zh) | 基于sctp协议的无线网络拥塞控制方法 | |
US8782286B2 (en) | Optimizing state sharing between firewalls on multi-homed networks | |
JP2006222659A (ja) | 無線通信装置、無線通信システム及び方法 | |
JPWO2007015482A1 (ja) | 送信装置および送信レート制御方法 | |
CN102469016B (zh) | 反向确定路径最大传输单元的方法和装置 | |
WO2019196853A1 (zh) | Tcp加速方法及装置 | |
CN114039707A (zh) | 基于SRv6可编程网络的报文传输超时处理方法 | |
JP4752722B2 (ja) | パケット転送装置及びパケット転送方法 | |
CN103036648A (zh) | 一种capwap报文处理方法及装置 | |
JP2006253867A (ja) | フレーム伝送システム及びフレーム伝送方法 |
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 |