CN117997824A - 数据传输方法、装置及存储介质 - Google Patents
数据传输方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117997824A CN117997824A CN202211342258.0A CN202211342258A CN117997824A CN 117997824 A CN117997824 A CN 117997824A CN 202211342258 A CN202211342258 A CN 202211342258A CN 117997824 A CN117997824 A CN 117997824A
- Authority
- CN
- China
- Prior art keywords
- routing node
- message
- response message
- server
- information
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000003860 storage Methods 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 516
- 230000002159 abnormal effect Effects 0.000 claims abstract description 300
- 238000012545 processing Methods 0.000 claims description 95
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 238000012790 confirmation Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 230000004927 fusion Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据传输方法、装置及存储介质,该方法包括:路由节点接收客户端发送的第一响应报文,所述第一响应报文携带异常路由节点信息;所述异常路由节点信息用于表征所述客户端与所述服务器之间存在的异常路由节点,所述第一响应报文为所述服务器向所述客户端发送的目标流量报文的响应报文;若所述路由节点的下一跳节点与所述异常路由节点信息指示的节点相同,则忽略所述下一跳节点,向其他下一跳节点转发所述第一响应报文。该方案能够使得路由节点在对响应报文的传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,也提高了响应报文传输的效率。
Description
技术领域
本发明一般涉及计算机网络通信技术领域,具体涉及一种数据传输方法、装置及存储介质。
背景技术
随着科学技术的快速发展,互联网已经被越来越多的用户所使用,每时每刻都会存在海量的数据进行传输,例如用户在终端使用应用程序过程中产生的数据可以传输至服务器,从而通过服务器对这些使用数据进行保存和处理。其中,为了保证数据传输的质量,对如何改善数据的传输性能的研究显得非常重要。
目前,相关技术中客户端和服务器之间可以采用新的流量传输协议进行数据传输,例如基于用户数据报协议(User Datagram Protocol,UDP)的快速UDP互联网连接(Quick UDP Internet Connection,QUIC)协议,或者基于传输控制协议(TransportControl Protocol,TCP)/UCP的多路径数据传输。
然而上述方案仅通过新的流量传输协议进行数据传输存在较为片面的问题,导致传输的消息确认报文无法按照正常的状态到达服务器,降低了消息确认报文传输的准确度,并且使得数据传输效率较低。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种数据传输方法、装置及存储介质,能够在响应报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,也提高了响应报文传输的效率。
第一方面,本申请实施例提供了一种数据传输方法,该方法包括:
路由节点接收客户端发送的第一响应报文,第一响应报文携带异常路由节点信息;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文;
若所述路由节点的下一跳节点与所述异常路由节点信息指示的节点相同,则忽略所述下一跳节点,向其他下一跳节点转发所述第一响应报文。
第二方面,本申请实施例提供了一种数据传输方法,该方法包括:
服务器通过与客户端之间的路由节点向客户端发送目标流量报文,确定路由节点的报文处理时延;
服务器根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息,使得客户端根据异常路由节点信息向服务器发送目标流量报文的第一响应报文;异常路由节点信息用于指示异常路由节点,第一响应报文指示接收第一响应报文的路由节点转发第一响应报文时忽略异常路由节点信息指示的节点。
第三方面,本申请实施例提供了一种数据传输装置,应用于路由节点,该装置包括:
接收模块,用于接收客户端发送的第一响应报文,第一响应报文携带异常路由节点信息;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文;
转发模块,用于若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。
第四方面,本申请实施例提供了一种数据传输装置,应用于服务器,该装置包括:
确定模块,用于通过与客户端之间的路由节点向客户端发送目标流量报文,确定路由节点的报文处理时延;
发送模块,用于根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息,使得客户端根据异常路由节点信息向服务器发送目标流量报文的第一响应报文;异常路由节点信息用于指示异常路由节点,第一响应报文指示接收第一响应报文的路由节点转发第一响应报文时忽略异常路由节点信息指示的节点。
第五方面,本申请实施例提供了一种数据传输系统,该系统包括:客户端、路由节点和服务器;
服务器用于向客户端发送目标流量报文,确定路由节点的报文处理时延,根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息;所述异常路由节点信息用于指示所述异常路由节点;
客户端用于接收服务器发送的异常路由节点信息,根据异常路由节点信息向客户端与服务器之间的路由节点发送目标流量报文的第一响应报文;
路由节点用于接收客户端发送的第一响应报文,若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。
第六方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如本申请实施例描述的数据传输方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序用于被处理器执行时实现如本申请实施例描述的数据传输方法。
第八方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品中包括指令,该指令被执行时实现如本申请实施例描述的数据传输方法。
本申请实施例提供的数据传输方法、装置及存储介质,路由节点接收客户端发送的第一响应报文,该第一响应报文携带异常路由节点信息,异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文,若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。本申请中的技术方案相比于现有技术而言,一方面,路由节点接收到携带有异常路由节点信息的第一响应报文,能够在后续第一响应报文的传输过程中考虑到异常路由节点的因素,提供了精准的数据指导信息,以便后续有针对性地忽略客户端与服务器之间的异常路由节点。另一方面,路由节点能够根据异常路由节点信息转发第一响应报文,即若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文,从而能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的相关技术中数据传输系统的结构示意图;
图2为本申请实施例提供的数据传输系统的实施环境架构图;
图3为本申请实施例提供的数据传输方法的流程示意图;
图4为本申请实施例提供的规避异常路由节点的结构示意图;
图5为本申请另一实施例提供的数据传输方法的流程示意图;
图6为本申请实施例提供的在第二响应报文中添加报文收发时间的结构示意图;
图7为本申请实施例提供的数据传输方法的流程示意图;
图8为本申请另一实施例提供的数据传输方法的流程示意图;
图9为本申请实施例提供的在第二响应报文中添加时间戳信息的结构示意图;
图10为本申请实施例提供的数据传输方法的交互示意图;
图11为本申请实施例提供的在请求报文中添加签名信息、加密标识和ip地址信息的结构示意图;
图12为本申请另一实施例提供的在请求报文中添加签名信息、加密标识和ip地址信息的结构示意图;
图13为本申请实施例提供的数据转发方法的流程示意图;
图14为本申请实施例提供的在第二响应报文中添加报文收发时间的结构示意图;
图15为本申请实施例提供的在请求报文中添加签名信息、加密标识和ip地址信息的结构示意图;
图16为本申请实施例提供的数据传输系统的交互示意图;
图17为本申请实施例提供的客户端发送请求报文方法的结构示意图;
图18为本申请实施例提供的发送第二响应报文方法的结构示意图;
图19为本申请实施例提供的发送第一响应报文方法的结构示意图
图20为本申请实施例提供的数据转发装置的结构示意图;
图21为本申请实施例提供的数据转发装置的结构示意图;
图22为本申请实施例提供的数据转发装置的结构示意图;
图23为本申请实施例提供的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
私有云(Private Cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有云设备(IaaS,Infrastructure as a Service,基础设施即服务)软件。
私有云计算同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或服务器,而非云计算厂商的数据中心。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。私有云计算,对个人来说只服务于亲朋好友,对企业来说只服务于本企业员工以及本企业的客户和供应商,因此个人或企业自己的个人电脑或服务器已经足够用来提供云服务。
公有云(Public Cloud)通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。
混合云(Hybrid Cloud)融合了公有云(Public Cloud)和私有云(PrivateCloud),是近年来云计算的主要模式和发展方向。私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。
为了更清楚的描述本申请,以下为对相关技术术语的解释:
传输控制协议(Transport Control Protocol,TCP):是Internet最基本的协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,是指能够在多个不同网络间实现信息传输的协议簇,TCP/IP通过提供其他功能(包括寻址,映射和确认)负责全面的数据连接并端对端传输数据。
互联网协议:(Internet Protocol,IP),是互联网协议群(Internet ProtocolSuite,IPS)中众多通信协议中的一个,也是其中最重要的一个。IP协议属于通信协议中的第三层网络层协议,具有完成路由寻址和消息传递的功能。特指为实现一个相互连接的网络系统上从一个源到一个目的地传输比特数据包(互联网数据包)所提供必要功能的协议。
往返时延:(Round-Trip Time,RTT),是计算机网络中一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延。可以通过RTT来诊断网络连接速度,可靠性以及拥塞程度。
用户数据报协议:(User Datagram Protocol,UDP),是一个简单的面向无连接的,不可靠的数据报的传输层协议。在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠交付,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份。
快速UDP互联网连接:(Quick UDP Internet Connection,QUIC),是一种实验性的传输层网络传输协议,其使用UDP协议,它在两个端点间创建连接,且支持多路复用连接,能够减小数据传输及创建连接时的延迟时间,双向控制带宽,以避免网络拥塞。
内容分发网络(Content Delivery Network,CDN),是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提供用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
可以理解,在信息技术不断发展的过程中,各个设备上产生了海量的信息数据,为了实现客户端和服务器等不同设备之间的信息交互处理,需要进行数据传输。目前,相关技术中一种方式是客户端和服务器可以采用新的流量传输协议进行数据传输,例如基于UDP的QUIC协议、基于TCP/UDP的多路径传输等;另一种方式可以在服务器端采用拥塞控制算法向客户端进行数据传输,该算法例如可以是BBR算法、Cubic算法,然而该两种方式在报文数据传输过程仅考虑改进服务器端和客户端收发数据的方式,存在较为单一片面的问题,导致消息确认数据在中间传输过程中可能被故意延时、加速或损坏,从而无法按照正常的状态及时到达服务器,降低了消息确认报文传输的准确度,使得数据传输效率较低。
请参见图1所示,图1所示的数据传输系统中包括云服务器、路由节点和和用户端。服务器可以通过路由节点向客户端发送流量报文,该流量报文可以包括流量报文1、流量报文2、流量报文3、流量报文4,当客户端接收到流量报文后,需要通过路由节点向服务器发送消息确认报文,然而路由节点R1可能为异常节点,当接收到来自客户端发往服务器的消息确认报文时,可能由于R1可能存在一些异常行为,该异常行为例如可以包括:(1)当路由节点R1因为需要处理较多的流量转发需求而导致自身负载过大;(2)路由节点被恶意劫持等原因,使得故意延迟消息确认报文,或者故意加速转发消息确认报文(即对于还未收到消息确认报文伪装已经收到,并向服务器回复消息确认报文),导致服务器无法按照正常的状态接收到消息确认报文,即无法根据消息确认报文判断是否出现流量报文丢包现象,进而使得丢失的流量报文无法按时得到重传,使得流量传输的效率降低。
基于上述缺陷,本申请实施例提供了一种数据传输方法、装置及存储介质,与现有技术相比,路由节点接收到携带有异常路由节点信息的第一响应报文,能够在后续第一响应报文的传输过程中考虑到异常路由节点的因素,提供了精准的数据指导信息,使得路由节点能够根据异常路由节点信息转发第一响应报文,若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文,从而能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
请参见图2,图2示出了本申请实施例提供的数据传输系统的系统架构图。如图2所示,该系统架构包括:客户端10、路由节点20和服务器30,该路由节点20的数量可以是一个,也可以是两个或多个,甚至更多。
其中,上述客户端10可以运行在终端设备上,该客户端可以是任意类型的客户端,例如可以是用于搜索和观看视频的客户端,也可以是用于搜索和购买商品的客户端,还可以是用于发送邮件的客户端,也可以是用于即时通讯的客户端等。
上述客户端10用于通过路由节点向服务器发送报文请求,以及接收服务器通过路由节点发送的报文数据。上述路由节点20用于接收客户端10发送的报文请求并将该报文请求转发至服务器30,以及用于将服务器30发送的流量报文数据转发至客户端10;上述服务器30用于接收并响应于报文请求,通过路由节点20发送针对报文请求对应的流量报文至客户端10。
可选的,上述运行有客户端10的终端设备可以是是智能电视、智能手机、平板电脑、电视机、笔记本电脑、台式电脑、可穿戴设备、车载终端等,本申请实施例对此不进行具体限定。
上述路由节点20可以是不同的设备、或者,不同设备上部署的功能节点(例如,微服务),也可以是同一设备上部署的不同功能节点,其中,不同的设备例如可以是路由器、交换机、网关等设备,还可以是光网络单元(optical network unit,ONU),光线路终端(optical line terminal,OLT),电缆调制解调器(cable modem,CM),以及无线局域网(wireless local area networks,WLAN)中的站点(station,STA),接入点(access point,AP)等具备路由转发功能的设备。
上述服务器30可以被配置在独立的物理服务器上,也可以是多个物理服务器组成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例提供的数据传输方案,可以包括但不限于内容分发网络(ContentDelivery Network,CDN)业务,也可以应用于边缘云计算、分布式云服务等业务场景,或者其他适用此技术架构的多个场景中。
上述客户端10还可以包括配置接口,客户端的运维人员或管理人员可以通过配置接口访问客户端10。该配置接口包括图形用户界面(graphical user interface,GUI)或应用程序接口(application programming interface,API)。GUI可以是配置界面。其中,可以通过配置界面提供报文请求或流量报文数据的显示,另外,可以基于应用程序接口将报文请求通过路由节点20发送至服务器30。
需要说明的是,当路由节点20为一个时,客户端10可以通过该路由节点20与服务器30进行连接;当路由节点20有两个或多个时,相邻的两个路由节点20之间依次连接,客户端10可以通过依次连接的多个路由节点20与服务器30连接。其中,图2中示出了n个路由节点,分别为路由节点1、路由节点2、路由节点3...路由节点n。其中,n为任意正整数。客户端与第一个路由节点1相连接,第一个路由节点1与第二个路由节点2相连接,第二个路由节点2与第三个路由节点3相连接,...最后一个路由节点n与服务器相连接。
其中,客户端10与路由节点20之间、相邻路由节点之间、路由节点20与服务器30之间可以通过无线网络建立通信连接。可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local AreaNetwork,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
为了更好的理解和说明本申请实施例提供的数据传输方法、装置及存储介质,下面通过图3至图23详细解释说明。
图3为本申请实施例提供的数据传输方法的流程示意图,如图3所示,该方法可以由客户端执行,该方法包括:
S101、客户端接收服务器发送的异常路由节点信息,根据异常路由节点信息生成第一响应报文;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文。
本实施例中,上述异常路由节点信息用于指示客户端与服务器之间存在的无法正常转发数据的路由节点信息。可选的,该异常路由节点信息例如可以是自身负载过大的路由节点,也可以是被恶意劫持的路由节点,还可以是故意延迟报文传输的路由节点,或者可以是故意加速报文传输的路由节点。其中,异常路由节点的数量可以是一个,也可以是两个或多个。
上述异常路由节点信息是指确定出的存在异常的路由节点对应的信息,可以包括异常路由节点标识、异常路由节点类型、异常路由节点属性等。其中,异常路由节点标识用于唯一表示异常路由节点的身份信息,可以是通过数字、字符或者其组合等进行表示。
可选的,上述异常路由节点信息可以是根据报文进入路由节点的往返时延确定的,也可以是对路由节点处理历史数据的操作记录进行分析确定的,还可以是通过查询预先构建的异常路由节点信息表确定的。其中,该异常路由节点信息表是对不同异常路由节点类型、节点形态和结构等特征的路由节点数据进行汇总和分类整理后构建的。上述获取异常路由节点信息的各个实现方式仅仅是作为一种示例,本申请实施例对此不做限定。
可以理解的是,客户端、路由节点和服务器之间可以通过预设的传输协议进行通信,该传输协议可以是TCP协议、也可以是UDP协议,还可以是QUIC协议等。
需要说明的是,上述第一响应报文中携带有异常路由节点信息,上述第一响应报文还可以包括目标流量报文的丢包信息。该丢包信息用于指示目标流量报文在传输过程中丢失的流量报文信息。丢包信息可以包括丢失的流量报文标识、丢失的流量报文类型、丢失的流量报文属性、丢失的报文长度、丢失的报文版本等。其中,丢失的流量报文标识用于唯一表示丢失的流量报文的身份信息,可以是通过数字、字符或者其组合等进行表示。
作为一种可实现方式,客户端可以通过路由节点向服务器发送请求报文,服务器响应于该请求报文,获取目标流量报文并通过路由节点发送至客户端,使得客户端在接收到服务器发送的目标流量报文后,可以根据目标流量报文的丢包信息生成消息确认报文,并在接收到服务器发送的异常路由节点信息后,可以将异常路由节点信息添加至该消息确认报文中,从而生成第一响应报文。其中,在将异常路由节点信息添加至消息确认报文的过程中,可以将异常路由节点信息添加至第一响应报文的特定字段中。该特定字段例如可以是报文头部等。
作为另一种可实现方式,客户端在接收到服务器发送的目标流量报文后,确定接收的目标流量报文的丢包信息,并接收到服务器发送的异常路由节点信息后,可以对异常路由节点信息和目标流量报文的丢包信息进行封装处理,从而生成第一响应报文。
上述第一响应报文可以包括响应行、响应头和响应体。响应行包括客户端状态码、客户端地址等。响应头是指客户端向服务器响应的数据格式,该数据格式例如可以是文本、json、图片、音视频等不同类型格式。响应体是指客户端向服务器响应的数据内容,该数据内容可以包括丢包信息和异常路由节点信息。
示例性地,当客户端通过路由节点向服务器发送请求报文时,该请求报文携带有请求获取的流量报文,例如可以是流量报文1、流量报文2、流量报文3和流量报文4,则服务器响应于请求报文,通过路由节点向客户端发送流量报文1、流量报文2、流量报文3和流量报文4,由于服务器与客户端之间存在异常路由节点的干扰,使得客户端仅接收到流量报文1和流量报文2,则客户端可以确定出丢包信息包括:未收到流量报文3和流量报文4。
本实施例中客户端通过接收到异常路由节点信息,能够自动生成嵌入有异常路由节点信息的第一响应报文,由于考虑到异常路由节点的因素,从而为后续第一响应报文在路由节点的传输过程中提供精准的数据指导信息,提高了响应报文传输的精确度。
S102、客户端向客户端与服务器之间的路由节点发送第一响应报文,使得路由节点根据第一响应报文中的异常路由节点信息转发第一响应报文。
需要说明的是,可以对于不同的业务响应报文设置不同的路由规则,每种路由规则上可以包括多种路由路径,每种路由路径的优先级也不同。优先级越高,则优先确定该路由路径为客户端需要发送第一响应报文的路由路径。
客户端在向客户端与服务器之间的路由节点进行发送第一响应报文之前,需要确定与第一响应报文对应的标识确定匹配的路由规则,然后根据路由规则确定路由路径,并将第一响应报文发送至路由路径上的路由节点中。
上述客户端与服务器之间的路由节点可以是一个,也可以是两个或者多个,其中,相邻的路由节点两两之间相互连接。上述第一响应报文用于指示路由节点根据异常路由节点信息进行转发第一响应报文。
作为一种可实现方式,客户端在生成嵌入有异常路由节点信息的第一响应报文后,可以通过预设的通信传输协议将该第一响应报文发送至路由节点,使得路由节点在接收到第一响应报文后,可以确定下一跳节点,然后根据第一响应报文中的异常路由节点信息判断该下一跳节点是否为异常路由节点,如果不是,则将该第一响应报文转发至该下一跳节点;如果判断出该下一跳节点为异常路由节点,则忽略该下一跳节点,并将第一响应报文转发至其他下一跳节点。
需要说明的是,上述其他下一跳节点可以是缺省状态的下一跳路由节点,也可以是次优最短路径上的下一跳路由节点。可以理解的是,缺省状态是指在没有决策者干预的情况下,为决策或应用软件和计算机程序自动选择系统参数。
作为另一种可实现方式,路由节点在接收到客户端发送的第一响应报文后,可以添加报文进入路由节点和离开路由节点的时间戳信息,并确定下一跳节点,然后根据第一响应报文中的异常路由节点信息判断该下一跳节点是否为异常路由节点,如果不是,则将添加了时间戳信息的第一响应报文转发至该下一跳节点;如果判断出该下一跳节点为异常路由节点,则忽略该下一跳节点,并将添加了时间戳信息的第一响应报文转发至其他下一跳节点。
示例性地,请参见图4所示,当客户端与服务器之间存在的路由节点包括R1、R2、R3、R4、R5和R6时,且对应的路由路径包括第一路径:R1→R2→R3和第二路径:R4→R5→R6,第一路径的优先级高于第二路径的优先级,假设当确定出的异常路由节点信息中包括R2为异常路由节点时,客户端在将嵌入异常路由节点信息的第一响应报文后,可以将第一响应报文发送至第一路径中的路由节点R1,然后路由节点R1确定出下一跳节点为R2且为异常路由节点,则忽略异常路由节点R2,并将第一响应报文转发至其他下一跳节点,该其他下一跳节点例如可以是第一路径中的路由节点R3或者第二路径中的路由节点R4。
例如当路由节点R3接收到第一响应报文后,可以确定出下一跳节点为服务器,则将第一响应报文转发至服务器。又如当路由节点R4接收到第一响应报文后,可以确定下一跳节点为路由节点R5,则确定该路由节点R5不为异常路由节点,则将第一响应报文转发至路由节点R5,依次类推,将第一响应报文转发至路由节点R6,进而通过路由节点R6转发第一响应报文,直至到达服务器。
本申请实施例提供的数据传输方法,相比于现有技术而言,一方面,客户端接收到异常路由节点信息,能够自动生成嵌入有异常路由节点信息的第一响应报文,由于考虑到异常路由节点的因素,从而为后续第一响应报文在路由节点的传输过程中提供精准的数据指导信息,以便后续有针对性地忽略客户端与服务器之间的异常路由节点。另一方面,客户端通过向路由节点发送嵌入有异常路由节点信息的第一响应报文,能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
在本申请的另一实施例中,请参见图5所示,还提供了一种客户端接收服务器发送的异常路由节点信息的实现方式,该方法包括:
S201、客户端通过路由节点向服务器发送第二响应报文,第二响应报文用于指示接收第二响应报文的路由节点在第二响应报文中添加报文收发时间。
上述第二响应报文是指客户端对服务器发送的目标流量报文的响应报文。该第二响应报文中可以包括目标流量报文的丢包信息,其可以是报文传输之前未添加报文收发时间的响应报文,也可以是报文传输过程中添加了路由节点对应的报文收发时间的响应报文,该添加的报文收发时间可以是一个或多个,每个路由节点对应一个报文收发时间。其中,上述报文收发时间包括路由节点接收第二响应报文的时间和发送第二响应报文的时间。每个路由节点对应的报文收发时间不同。
一种可能的实现方式中,客户端通过路由节点向服务器发送请求报文,服务器响应于该请求报文,确定目标流量报文并通过路由节点发送至服务器,使得客户端在接收到服务器发送的目标流量报文后,可以根据目标流量报文的丢包信息生成第二响应报文,并通过预设的通信传输协议将第二响应报文发送至客户端与服务器之间的路由节点,使得各个路由节点按照路由路径依次添加对应的报文收发时间至第二响应报文中。其中,在将报文收发时间添加至第二响应报文的过程中,可以是将报文收发时间添加至第二响应报文的特定字段中,该特定字段例如可以是第二响应报文头部等。
需要说明的是,当客户端与服务器之间的路由路径上存在多个路由节点时,多个路由节点在将报文收发时间添加至第二响应报文中的过程中,可以按照预设的报文添加规则进行依次添加,例如可以按照路由路径上路由节点从前至后的路由顺序,在第二响应报文的头部依次从前至后添加每个路由节点对应的报文收发时间;也可以按照路由路径上路由节点从后至前的路由顺序,在第二响应报文的头部依次从后至前添加每个路由节点对应的报文收发时间。
示例性地,请参见图6所示,客户端与服务器之间存在路由路径R1→R2→R3→R4,对应的路由节点包括第一路由节点R1、第二路由节点R2、第三路由节点R3和第四路由节点R4。客户端在发送第二响应报文的过程中,可以先将第二响应报文发送至路由路径上的第一个路由节点R1,第一路由节点R1添加接收第二响应报文的第一报文收发时间,该第一报文收发时间为第一路由节点对第二响应报文的接收时间和发送时间,并将添加了第一报文收发时间的第二响应报文发送至第二路由节点R2,使得第二路由节点R2添加接收第二响应报文的第二报文收发时间,依次类推,将添加了第一报文收发时间和第二报文时间的第二响应报文发送至第三路由节点R3,并依次使得第三路由节点R3添加第三报文收发时间和通过第四路由节点R4添加第四报文收发时间,直至添加了第一收发时间、第二收发时间、第三收发时间和第四收发时间的第二响应报文到达服务器。
一种可能的实现方式中,上述第二响应报文中可以包括报文类型标识,该报文类型标识用于指示接收第二响应报文的路由节点所需要执行的操作信息,即是否需要在第二响应报文中添加报文收发时间。报文类型标识和异常路由节点信息占用字段相同或不同。异常路由节点信息占用字段用于指示是否存在异常路由节点信息。
作为一种可实现方式,该报文类型标识例如可以是0或其他任意非0数字,0表示无需在接收到的第二响应报文中添加报文收发时间,其他任意非0数字表示需要在接收到的第二响应报文中添加报文收发时间。
示例性地,若当前路由节点接收到第二响应报文后,查看接收到的第二响应报文中的报文类型标识,当报文类型标识为0时,则该路由节点无需添加当前报文收发时间,可以直接将其转发至下一路由节点;当报文类型标识为其他任意非0非零数字时,则该路由节点需要获取当前报文收发时间,包括当前路由节点接收第二响应报文的时间和发送第二响应报文的时间,然后当前路由节点将该当前报文收发时间添加至第二响应报文中,并将添加了当前报文收发时间的第二响应报文转发至下一路由节点。
作为另一种可实现方式,上述异常路由节点信息占用字段可以为0或其他任意非0数字。当异常路由节点信息占用字段为其他任意非0数字时,表示接收第二响应报文的路由节点需要在第二响应报文中添加报文收发时间;当异常路由节点信息占用字段为0时,表示接收第二响应报文的路由节点无需在第二响应报文中添加报文收发时间。
示例性地,若当前路由节点接收到第二响应报文后,确定异常路由节点信息占用字段对应的字段值,当占用字段的字段值为其他任意非0数字时,则当前路由节点需要在第二响应报文中添加当前报文收发时间,并将添加了当前报文收发时间的第二响应报文转发至下一跳节点;当异常路由节点信息占用字段的字段值为0时,则当前路由节点无需在第二响应报文中添加当前报文收发时间,可直接将其转发至下一跳节点。
上述第二响应报文可以包括响应行、响应头和响应体。响应行包括客户端状态码、客户端地址等。响应头是指客户端向服务器响应的数据格式,该数据格式例如可以是文本、json、图片、音视频等不同类型格式。响应体是指客户端向服务器响应的数据内容,该数据内容可以包括丢包信息和报文类型标识。
S202、客户端接收服务器发送的异常定位报文,异常定位报文包括异常路由节点信息;异常路由节点信息是服务器根据路由节点发送的第二响应报文中的报文收发时间确定的。
上述异常定位报文是指服务器根据异常路由节点信息进行封装处理后得到的报文。当服务器接收到第二响应报文后,可以获取第二响应报文中的收发时间,根据第二响应报文中的收发时间确定客户端与服务器之间的所有路由节点中存在的异常路由节点信息,然后根据异常路由节点信息进行封装得到异常定位报文并通过路由节点发送至客户端。其中,服务器接收到的第二响应报文中包括了客户端与服务器之间的路由路径上所有路由节点对应的报文收发时间。
客户端可以通过预设的通信传输协议通过路由节点接收到服务器发送的异常定位报文后,然后对异常定位报文进行解析处理,例如可以获取异常定位报文的报文格式、报文中所包含的各个字段以及字段在报文中的位置,然后根据报文格式调用对应的数据获取接口,以根据位置获取各个字段在异常定位报文中对应的字段值,并将各个字段的字段值转化为异常路由节点信息。其中,数据获取接口中定义了用于根据位置获取字段的字段值的方法。
客户端在解析得到异常路由节点信息后,可以根据异常路由节点信息生成第一响应报文,并向客户端与服务器之间的路由节点发送第一响应报文,使得路由节点根据第一响应报文中的异常路由节点信息转发第一响应报文。
可选的,上述异常定位报文可以是:可扩展标记语言xml格式、JS对象简谱Json格式以及流式等。
需要说明的是,本申请实施例中的第一响应报文和第二响应报文并不限定响应报文的先后顺序,仅用于区分客户端向服务器发送的两个响应报文,例如,该第一响应报文和第二响应报文可以是针对目标流量报文的两个响应报文。
本实施例中客户端通过路由节点向服务器发送第二响应报文,从而得到异常路由节点信息,能够自动生成第一响应报文,使得在后续报文传输过程中及时规避异常的路由节点,保证了第一响应报文能够精准且及时地到达服务器,提高了第一响应报文的传输效率。
在本申请的另一实施例中,客户端在接收服务器发送的异常路由节点信息之前,还通过路由节点向服务器发送目标流量报文的请求报文,使得接收请求报文的路由节点在请求报文中添加路由节点的共享密钥,该共享密钥用于服务器从第二响应报文中获取报文收发时间。
上述请求报文是客户端根据实际的业务需求生成的报文。具体的,当用户想要获取流量数据以处理相关业务时,会通过客户端向服务器发送请求报文,该请求报文中携带有待获取流量的标识,用于识别流量数据。此外,该请求报文中还可以携带有待获取流量的其他信息。该其他信息可以包括待获取流量的属性、格式、类型等信息。
其中,待获取流量的属性用于描述待获取流量的物理含义、数据格式、数据精度、数据取值范围。示例性的,待获取流量的物理含义例如可以是温度、压力值等;数据格式可以是整数、浮点数等;数据的精度可以是0.001、0.01等;数据的取值范围可以是数值大小范围。
上述请求报文可以是传输之前未添加路由节点的共享密钥的报文,也可以是传输过程中添加了路由节点的共享密钥的报文,该共享密钥可以是一个或多个,每个路由节点对应一个共享密钥。
示例性地,当用户想要办理相关的贷款业务时,向服务器发送请求报文,该请求报文中可以携带有待办理业务的标识,还可以携带客户端的位置、用户的信用额度以及待办理业务的额度等信息。
上述请求报文用于指示接收请求报文的路由节点在请求报文中添加路由节点的共享密钥。该共享密钥是路由节点与服务器可以共同使用的密钥。客户端通过通信传输协议向路由节点发送请求报文,使得路由节点按照路由路径依次添加对应的共享密钥至请求报文中,直至添加了各个路由节点的共享密钥的请求报文到达服务器。其中,在将共享密钥添加至请求报文的过程中,可以是将共享密钥进行加密处理然后添加至请求的特定字段中,该特定字段例如可以是请求报文头部等。
需要说明的是,当客户端与服务器之间的路由路径上存在多个路由节点时,多个路由节点在将共享密钥添加至请求报文中的过程中,可以按照预设的报文添加规则进行依次添加,例如可以按照路由路径上路由节点从前至后的路由顺序,在请求报文的头部依次从前至后添加每个路由节点对应的共享密钥;也可以按照路由路径上路由节点从前至后的路由顺序,在请求报文的头部依次从后至前添加每个路由节点对应的共享密钥。
其中,对于任一路由节点在接收到请求报文后,可以获取请求报文的流标识并根据流标识和当前路由节点的私有信息计算当前路由节点对应的共享密钥,其中,当前路由节点的私有信息用于唯一标识当前路由节点的重要信息,例如可以是当前路由节点的出厂信息。
可以理解的是,上述请求报文可以包括请求行、请求头和请求体。请求行包括请求方法、URL(请求地址)。请求头是指客户端发送至服务器的请求报文的格式,该报文格式例如可以是文本、json、图片、音视频等。请求体包括客户端发送至服务器请求获取的数据。
本实施例中客户端通过路由节点向服务器发送目标流量报文的请求报文,能够使得接收请求报文的路由节点在请求报文中添加路由节点的共享密钥,从而使得服务器精准地获取到各个路由节点的共享密钥,以便在保证数据安全的情况下,精准地确定异常路由节点信息。
另一方面,图7为本申请实施例提供的数据传输方法的流程示意图,如图7所示,该方法可以由路由节点执行,该方法包括:
S301、路由节点接收客户端发送的第一响应报文,第一响应报文携带异常路由节点信息;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文。
S302、路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。
上述路由节点是指客户端与服务器之间的路由路径上的节点。该路由节点具有判断网络地址和选择路径的功能,可以按照预设的路由通信协议,查找路由表并确定下一跳节点以根据异常路由节点信息向下一跳节点进行转发第一响应报文。其中,该路由表中可以包括整个路由路径中包含的各个节点,以及不同节点间的路径情况。路由节点可以是一个,也可以是多个。下一跳节点可以是路由路径上的路由节点或者服务器。上述第一响应报文是携带有异常路由节点信息的报文。第一响应报文还包括目标流量报文的丢包信息。
具体地,客户端在接收服务器发送的异常路由节点信息后,根据异常路由节点信息生成第一响应报文,使得路由节点接收客户端发送的第一响应报文并执行转发操作。
需要说明的是,路由节点在接收到第一响应报文后,可以获取路由节点与服务器的共享密钥,以及获取接收第一响应报文的时间戳和发送第一响应报文的时间戳,然后采用共享密钥对接收第一响应报文的时间戳和发送第一响应报文的时间戳进行加密,得到时间戳信息并添加至该第一响应报文中,然后确定第一响应报文的下一跳节点,如果下一跳节点与异常路由节点信息指示的节点相同,则忽略异常路由节点信息指示的节点,并向其他下一跳节点转发添加了时间戳信息的第一响应报文。若下一跳节点与异常路由节点信息指示的节点不同,则向下一跳节点转发添加了时间戳信息的第一响应报文。下一跳节点在接收到该第一响应报文后,也可以执行与上述路由节点相同的操作,包括获取共享密钥、添加时间戳信息等,并根据异常路由节点信息进行转发添加了时间戳信息的第一响应报文,直至服务器接收到该添加了时间戳信息的第一响应报文。
可以理解的是,路由节点在向下一跳节点进行转发第一响应报文时,可以通过匹配路由表中的路由项来实现。可以通过从第一响应报文中提取到目的地址信息,该目的地址信息例如可以是目标IP地址,然后将目标IP地址与路由表中路由表项包含的目的地址进行比较,如果与某路由项中的目的地址相同,则认为与此路由项匹配。如果路由项匹配,则路由节点查看所匹配的路由项的下一跳节点的地址是否在直连的链路上,如果在直连的链路上,则确定为下一跳节点,可以进一步根据异常路由节点信息判断是否通过此下一跳节点进行转发;如果不在直连的链路上,则需要在路由表中再次查找此下一跳节点的地址所匹配的路由项。
作为一种可实现方式,当路由表中存在多个路由项可以同时匹配目标IP地址时,可以根据路由最长匹配规则进行转发,即路由查找进程会选择其中掩码最长的路由项进行转发,掩码越长表明其代表的网络范围越小,匹配的程度就越精确。
例如,当路由节点接收到的第一响应报文的目的地址为30.0.0.0时,经查找整个路由表,发现与路由项30.0.0.0/24和30.0.0.0/8均能匹配,则根据最长匹配的原则,路由节点将会选择路由项30.0.0.0/24,并根据该路由项对应的节点为下一跳节点,可以进一步根据异常路由节点信息判断是否通过此下一跳节点进行转发第一响应报文。
作为另一种可实现方式,如果所匹配的路由项的下一跳节点的地址不在直连链路上,路由节点还需要对路由表进行迭代查找,确定出下一跳节点。
例如,路由节点接收到的第一响应报文的目的地址为50.0.0.2,经查找路由表,发现与路由表中的路由项50.0.0.0/24匹配,但此路由项的下一跳40.0.0.2并不在路由节点的直连链路上,所有路由节点还需要在路由表中以40.0.0.2为目的地址查找下一跳节点,经查找,到达40.0.0.2的下一跳节点的地址信息为20.0.0.2,且此地址信息在该路由节点的直连链路上,则确定出其为下一跳节点,可以进一步根据异常路由节点信息判断是否通过此下一跳节点进行转发第一响应报文。
本实施例中,当根据异常路由节点信息判断是否通过此下一跳节点进行转发第一响应报文的过程中,当该下一跳节点与异常路由节点信息指示的节点相同,表示该下一跳节点为异常路由节点,即该下一跳节点可能出现被恶意劫持,也可能是故意延迟报文转发,还可能是故意加速报文转发等情况,则忽略异常路由节点信息指示的节点,将第一响应报文转发至其他下一跳节点;当该下一跳节点与异常路由节点信息指示的节点不同时,表示该下一跳节点为正常路由节点,可以执行正常的路由和报文转发操作,可以将第一响应报文转发至该下一跳节点,通过确定下一跳节点的地址信息,路由节点根据下一跳节点的地址信息将第一响应报文通过对应的接口转发至下一跳节点。
其中,当上述下一跳节点是最优路径上的节点且确定出下一跳节点为异常节点时,则可以将第一响应报文转发至其他下一跳节点,该其他下一跳节点可以是最优路径上缺省状态的下一跳节点,也可以是次优路径上的节点。
本实施例中路由节点接收客户端发送的携带异常路由节点信息的第一响应报文,并根据异常路由节点信息转发第一响应报文,从而在传输第一响应报文的过程中规避异常节点,提升了第一响应报文的回传速率,进而提高了报文的传输速率。
在本申请的另一实施例中,路由节点在接收客户端发送的第一响应报文之前,还提供了路由节点在第二响应报文中添加报文收发时间的具体实现方式,在上述实施例的基础上,图8为本申请实施例提供的在第二响应报文中添加报文收发时间方法的流程示意图。请参见图9所示,该方法包括:
S401、路由节点接收客户端发送的第二响应报文。
S402、路由节点在第二响应报文中添加报文收发时间,并向下一跳节点发送已添加报文收发时间的第二响应报文,直至服务器接收第二响应报文,使得服务器根据第二响应报文中的报文收发时间确定异常路由节点信息。
需要说明的是,上述第二响应报文是客户端接收到服务器发送的目标流量报文后生成的响应报文。该第二响应报文中可以包括目标流量报文的丢包信息。客户端在生成第二响应报文后,可以通过预设的通信传输协议将第二响应报文发送至路由节点,使得路由节点接收第二响应报文。
一种可能的实现方式中,路由节点在接收到客户端发送的第二响应报文后,可以直接在第二响应报文中添加报文收发时间,然后将报文收发时间添加至第二响应报文中,并发送已添加报文收发时间的第二响应报文至下一节点。
另一种可能的实现方式中,上述第二响应报文还可以包括报文类型标识,该报文类型标识用于指示路由节点是否在第二响应报文中添加报文收发时间。路由节点在接收到客户端发送的第二响应报文后,可以解析该第二响应报文,从而获取报文类型标识,并根据报文类型标识在第二响应报文中添加报文收发时间,然后发送添加了报文收发时间的第二响应报文至下一节点。
本实施例中,上述报文类型标识可以对应有不同的数值,例如可以为0或其他任意非0数字,不同的数字对应的含义也不同。其中,路由节点在接收到第二响应报文后,可以根据第二响应报文中报文类型标识所对应的数值,判断是否在第二响应报文中添加报文收发时间。当报文类型标识为0时,则该路由节点无需在第二响应报文中添加报文收发时间;当报文类型标识为其他任意非0数字时,则该路由节点需要在第二响应报文中添加报文收发时间。又如,路由节点也可以是根据异常路由节点信息占用字段对应字段值判断是否在第二响应报文中添加报文收发时间。当占用字段的字段值为其他任意非0数字时,则当前路由节点需要在第二响应报文中添加当前报文收发时间,并将添加了当前报文收发时间的第二响应报文转发至下一跳节点;当异常路由节点信息占用字段的字段值为0时,则当前路由节点无需在第二响应报文中添加当前报文收发时间,可直接将其转发至下一跳节点。
在其中一个实施例中,路由节点可以根据共享密钥对报文收发时间进行加密处理,获得时间戳信息,然后将时间戳信息添加至第二响应报文中。该共享密钥是指路由节点与服务器共同使用的密钥,用于对报文收发时间进行加密处理,以增加时间戳信息传输的安全性。该共享密钥可以是路由节点根据第二响应报文的流标识计算得到的。流标识用于唯一表示第二响应报文的身份信息。
其中,对于每一路由节点在根据共享密钥对报文收发时间进行加密处理的过程中,可以根据报文收发时间包括的路由节点接收第二响应报文的第一时间戳和路由节点发送第二响应报文的第二时间戳,然后采用共享密钥对第一时间戳和第二时间戳进行加密处理,得到时间戳信息。例如可以采用对称加密算法,也可以采用线性散列算法进行加密处理,还可以是混合加密算法。上述第一时间戳是指第二响应报文进入路由节点的接收时间戳,例如路由节点在接收到第二响应报文时,记录第二响应报文进入该路由节点的时间戳。第二时间戳是指第二响应报文离开路由节点的发送时间戳,例如路由节点在发送第二响应报文前,记录第二响应报文即将离开该路由节点的时间戳。
需要说明的是,上述对称加密算法是指加密和解密采用相同的密钥,即本实施例中路由节点加密和服务器解密采用同一共享密钥,该对称加密算法例如可以是AES、DES、3DES等。其中,AES加密算法采用的是对称分组密码体制,密钥长度的最少支持位128;DES是一种分组数据加密技术,先将数据分成固定长度的小数据块,之后进行加密,其适用于大量数据加密;3DES是一种基于DES的加密算法,可以对一个分组数据块进行三次加密,使得密文强度更高。线性散列算法例如可以是MD5、SHA1、HMAC等。
作为一种可实现方式,可以先采用加密算法通过共享密钥将第一时间戳进行加密处理,得到第一加密结果,然后采用加密算法通过共享密钥对第二时间戳进行加密处理,得到第二加密结果,然后将第一加密结果和第二加密进行拼接处理,从而得到时间戳信息。其中,对第一时间戳和第二时间戳进行加密处理所采用的加密算法可以相同,也可以不同,例如可以是均采用AES对称加密算法进行加密,也可以是采用AES对称加密算法对第一时间戳进行加密,采用DES对称加密算法对第二时间戳进行加密处理。
作为另一种可实现方式,可以先对第一时间戳和第二时间戳进行拼接处理,得到融合结果,然后采用加密算法通过共享密钥对融合结果进行加密处理,从而得到时间戳信息。该加密算法例如可以是AES、DES、3DES等任意对称加密算法。
在得到时间戳信息后,可以将时间戳信息添加至第二响应报文中,可以是先确定第二响应报文中的预设字段位置,该预设字段位置用于添加时间戳信息,然后在预设的字段位置添加时间戳信息。其中,对路由路径上的多个路由节点,该预设的字段位置与传输路由路径上路由节点接收第二响应报文的顺序相关,例如可以是正序。
示例性地,请参见图9所示,当客户端与服务器之间的路由路径为R1→R2→R3→R4,对应的路由节点包括第一路由节点R1、第二路由节点R2、第三路由节点R3和第四路由节点R4时,客户端发送第二响应报文至第一路由节点R1,然后第一路由节点R1在接收到第二响应报文时,记录第二响应报文进入该路由节点的第一时间戳,获取第二响应报文的流标识并计算共享密钥,然后在发送第二响应报文之前,记录第二响应报文即将离开该路由节点的第二时间戳,并采用共享密钥对第一时间戳和第二时间戳进行加密处理,得到第一时间戳信息,并确定第二响应报文中的预设字段位置,将第一时间戳信息添加至第二响应报文的预设字段位置中,并将添加了第一时间戳信息的第二响应报文发送至第二路由节点R2。同理,第二路由节点R2计算对应的共享密钥,并获取对应的第一时间戳、第二时间戳,然后采用第二路由节点R2对应的共享密钥对第一时间戳、第二时间戳进行加密处理,得到第二时间戳信息,并在第一时间戳信息之后的预设字段位置添加第二时间戳,得到添加了第二时间戳信息的第二响应报文发送至第三路由节点R3。依次类推,依次使得第三路由节点R3在第二时间戳信息的位置之后添加第三时间戳信息并将其转发至第四路由节点R4,第四路由节点R4在第三时间戳信息的位置之后添加第四时间戳信息并将其转发至服务器,直至服务器接收到添加了R1、R2、R3、R4对应的时间戳信息的第二响应报文。
本实施例中路由节点在接收到第二响应报文后,将时间戳信息通过共享密钥加密的形式嵌入至第二响应报文,在保证时间戳信息安全的同时,使得服务器能够通过共享密钥进行解析得到时间戳信息,进而精准地确定出存在的异常路由节点。
在本申请的另一实施例中,路由节点在接收客户端发送的第二响应报文之前,还提供了路由节点向目标流量报文的请求报文中添加共享密钥的具体实现方式,在上述实施例的基础上,图10为本申请实施例提供的在请求报文中添加共享密钥方法的流程示意图。请参见图10所示,该方法包括:
路由节点接收客户端发送的目标流量报文的请求报文,在请求报文中添加共享密钥。然后向下一跳节点发送已添加共享密钥的请求报文,直至服务器接收请求报文,使得服务器根据请求报文中的共享密钥解析时间戳信息获得报文收发时间。
需要说明的是,上述请求报文是客户端向服务器发送的请求获取目标流量报文的报文。该请求报文可以是传输之前未添加共享密钥的请求报文,也可以是传输过程中添加了共享密钥的请求报文。该请求报文中可以包括流标识或其他传输信息,流标识用于唯一标识请求报文的身份信息,用于指示向服务器请求目标流量报文。其他传输信息用于指示请求报文从客户端传输至服务器所包含的路由路径上的信息。例如可以包括请求报文的源地址、目的地址、源端口标识、目的端口标识、流量传输协议等。
客户端在生成请求报文后,可以通过预设的通信传输协议将请求报文发送至路由节点,使得路由节点接收请求报文,在请求报文中添加共享密钥并发送添加了共享密钥的请求报文。
本实施例中,路由节点在接收到请求报文时,该请求报文中携带有流标识,可以查看请求报文中的流标识,根据流标识计算路由节点与服务器的共享密钥。
可选的,上述流标识可以是通过请求报文的头部对应标识得到,也可以是根据请求报文的传输信息进行计算处理得到。例如先从请求报文获取请求报文的源地址、目的地址、源端口标识、目的端口标识、流量传输协议,然后对源地址、目的地址、源端口标识、目的端口标识和流量传输协议进行拼接操作,得到操作结果,并对该操作结果进行哈希运算处理,从而得到请求报文的流标识。其中,流量传输协议例如可以是UDP协议,也可以是TCP协议,还可以是QUIC协议。源端口标识用于为唯一表示源端口的身份信息,例如可以是源端口号。目的端口标识用于唯一表示目的端口的身份信息,例如可以是目的端口号。
对于任意一个路由节点,在获取到请求报文的流标识后,可以获取路由节点的私有路由信息,并对路由节点的私有路由信息和流标识进行拼接操作处理,得到拼接结果,然后对拼接结果进行哈希运算处理,从而得到该路由节点与服务器的共享密钥。
可以理解的是,上述私有路由信息用于唯一表示路由节点的重要信息,例如可以是路由节点的出厂信息等,该私有路由信息只有该路由节点知晓,其他节点(如其他路由节点、服务器、客户端等)均无法获得。
路由节点在获取到与服务器的共享密钥后,可以在请求报文中添加共享密钥,可以先将共享密钥通过服务器的公钥进行加密处理,得到加密标识,然后采用路由节点的私钥对加密标识进行签名处理,得到路由节点对应的签名信息,并将加密标识、签名信息和路由节点的地址信息添加至请求报文中。该路由节点的地址信息例如可以是ip地址信息。
其中,将共享密钥通过服务器的公钥进行加密处理,得到加密标识的过程中,可以采用对称加密算法、线性散列算法或其他混合加密算法。在得到路由节点对应的签名信息后,在请求报文中确定预设字段位置,然后在预设字段位置处添加加密标识、路由节点的签名信息和路由节点的地址信息,并将已添加加密标识、路由节点的签名信息和路由节点的地址信息的请求报文转发至下一跳节点,该下一跳节点可以是下一路由节点或服务器。其中,对路由路径上的多个路由节点,该预设的字段位置与传输路由路径上路由节点接收请求报文的顺序相关,例如可以是正序。
需要说明的是,上述服务器的公钥对应有唯一的私钥,路由节点的私钥对应有唯一的公钥。服务器的公钥用于对共享密钥进行加密处理,以得到加密标识;服务器的私钥用于对加密标识进行解密处理,得到路由节点对应的共享密钥。路由节点的私钥用于对加密标识进行签名处理,以得到签名信息,路由节点的公钥用于验证路由节点的签名信息的正确性。
示例性地,请参见图11和图12所示,当客户端与服务器之间的路由路径为R1→R2→R3→R4,对应的路由节点包括第一路由节点R1、第二路由节点R2、第三路由节点R3和第四路由节点R4时,客户端发送初始请求报文至第一路由节点R1,然后第一路由节点R1在接收到客户端发送的初始请求报文,获取初始请求报文对应的流标识,然后对流标识和第一路由节点R1的私有路由信息进行哈希处理,得到第一路由节点R1与服务器的第一共享密钥,并通过服务器的公钥对第一共享密钥进行加密处理,得到第一加密标识,R1采用自身私钥对第一加密标识进行签名操作,得到第一签名信息,然后获取自身的第一ip地址信息,将第一加密标识、第一签名信息和第一ip地址信息嵌入至接收到的初始请求报文中,得到第一请求报文,并将添加了第一加密标识、第一签名信息和第一ip地址信息的第一请求报文转发至第二路由节点R2。
同理,第二路由节点R2对流标识和第二路由节点R2的私有路由信息进行哈希处理,得到第二路由节点R2与服务器的第二共享密钥,并通过服务器的公钥对第二共享密钥进行加密处理,得到第二加密标识,R2采用自身私钥对第二加密标识进行签名操作,得到第二签名信息,然后获取自身的第二ip地址信息,将第二加密标识、第二签名信息和第二ip地址信息嵌入至接收到的第一请求报文中,得到第二请求报文,并将添加了第二加密标识、第二签名信息和第二ip地址信息的第二请求报文转发至第三路由节点R3。同理,第三路由节点R3然后按照与第二路由节点R2相同的步骤进行对第三共享密钥加密、签名和添加操作得到第三请求报文并转发至第四路由节点R4,使得第四路由节点R4对第四共享密钥加密、签名和添加操作得到第四请求报文并转发至服务器,直至服务器接收到添加了R1、R2、R3、R4对应的共享密钥的请求报文。
本实施例中路由节点在接收到请求报文后,在请求报文中进行加密、签名等处理操作添加共享密钥并发送至下一跳节点,能够增加共享密钥在传输过程中的安全性和完整性,使得仅仅只有服务器可以得到每个路由节点的共享密钥,并精准地根据共享密钥解析时间戳信息获取报文收发时间。
另一方面,图13为本申请实施例提供的数据传输方法的流程示意图,如图13所示,该方法可以由服务器执行,该方法包括:
S501、服务器通过与客户端之间的路由节点向客户端发送目标流量报文,确定路由节点的报文处理时延。
S502、服务器根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息,使得客户端根据异常路由节点信息向服务器发送目标流量报文的第一响应报文;异常路由节点信息用于指示异常路由节点,第一响应报文指示接收第一响应报文的路由节点转发第一响应报文时忽略异常路由节点信息指示的节点。
需要说明的是,上述报文处理时延是指第一响应报文在路由节点中进行处理所对应的时间。其中,每个路由节点对第一响应报文有一个对应的报文处理时延,每个路由节点的报文处理时延可以是该路由节点发送第一响应报文时对应的第一时间戳与路由节点接收第一响应报文对应的第二时间戳之间的差值,第二时间戳大于第一时间戳。
其中,上述接收第一响应报文的路由节点转发第一响应报文时忽略异常路由节点信息指示的节点,也可以理解为,接收第一响应报文的路由节点在执行转发第一响应报文操作的情况下,忽略异常路由节点信息指示的节点。
当服务器接收到客户端的请求报文时,该请求报文中携带有待获取流量标识,响应于请求报文根据待获取流量标识查找并获取目标流量报文,然后通过服务器与客户端之间的路由节点向客户端发送目标流量报文。
在其中一个实施例中,客户端在接收到目标流量报文后,可以生成第二响应报文并发送至路由节点,使得路由节点接收客户端发送的第二响应报文,使得路由节点在接收到的第二响应报文中添加对应报文收发时间后然后转发至下一跳节点,直至服务器接收路由节点发送的第二响应报文,然后根据第二响应报文中的报文收发时间获取到每个路由节点的报文处理时延。该下一跳节点可以是指下一路由节点或服务器。服务器接收到的第二响应报文中包括的每个路由节点的报文收发时间可以是根据客户端与服务器的传输路径上的顺序确定的位置进行存储的。
可以理解的是,由于服务器接收到的第二响应报文中包括多个路由节点的报文收发时间,可以获取第二响应报文的报文格式、所包含的各个路由节点对应的字段以及字段在报文中的位置,然后根据报文格式调用对应的数据获取接口,根据位置获取各个字段在第二响应报文中对应的字段值,并将各个字段的字段值转化为路由节点的报文收发时间。然后根据报文收发时间确定路由节点的报文处理时延。
本实施例中,在确定每个路由节点的报文收发时间的过程中,服务器可以先根据路由节点在客户端与服务器的传输路径上的位置,确定第二响应报文中与路由节点对应的字段,然后根据与路由节点对应的字段确定路由节点的报文收发时间。
示例性地,请参见图14所示,当服务器与客户端之间的传输路由路径为R1→R2→R3时,所包含的路由节点分别为第一路由节点R1、第二路由节点R2和第三路由节点R3,且每个路由节点的报文收发时间在第二响应报文中的位置是由后之前依次排列存储,第一路由节点R1对应的位置为第一位置,第二路由节点R2对应的位置为位于第一位置之前的第二位置,第三路由节点R3对应的位置为位于第二位置之前的第三位置。
服务器可以先获取第一位置并确定第一位置对应的第一字段,然后根据该第一字段进行解析得到第一路由节点R1对应的报文收发时间;然后获取第二位置并确定第二位置对应的第二字段,然后根据该第二字段进行解析得到第二路由节点R2对应的报文收发时间;同理,获取第三位置并确定第三位置对应的第三字段,然后根据该第三字段进行解析得到第三路由节点R3对应的报文收发时间。其中,每个路由节点对应的该报文收发时间包括路由节点接收第二响应报文的时间戳和发送第二响应报文的时间戳。
在分别确定出第一路由节点R1、第二路由节点R2和第三路由节点R3的报文收发时间后,将R1发送第二响应报文的时间戳与接收第二响应报文的时间戳进行作差处理,得到第一路由节点R1的报文处理时延;同理,将R2发送第二响应报文的时间戳与接收第二响应报文的时间戳进行作差处理,得到第二路由节点R2的报文处理时延,并得到第三路由节点R3的报文处理时延。
其中,每个路由节点与服务器有对应的共享密钥,服务器在对路由节点对应的字段进行解析的过程中,可以利用路由节点的共享密钥对与路由节点对应的字段进行解密处理,获得各个路由节点的报文收发时间。
可选的,可以采用对称解密算法,也可以采用线性散列算法进行解密处理,还可以是混合解密算法,只要采用与路由节点加密算法所对应的解密算法即可,本实施例对此不进行限定。其中,对称解密算法例如可以是AES、DES、3DES等对应的解密算法。
需要说明的是,可以根据实际异常路由节点的时延特征、形态和类型,预先对于每个路由节点确定对应的异常处理时延条件,获取每个路由节点的标识并根据每个路由节点的标识和异常处理时延条件构建异常处理时延库。
服务器在获取到报文处理时延后,可以先获取待检测的路由节点的标识,然后在异常处理时延库中查找与待检测的路由节点的标识对应的异常处理时延条件,并查看待检测的路由节点的报文处理时延是否符合异常处理时延条件,当符合异常处理时延条件时,确定该待检测的路由节点为异常路由节点;当不符合异常处理时延条件时,确定该检测的路由节点为正常路由节点。
其中,上述异常处理时延条件可以是超过预设的固定值,也可以是处于某一区间范围等。
本实施例中服务器通过确定路由节点的报文处理时延,能够根据报文处理时延精准地确定出路由节点中的异常路由节点信息并发送至客户端,使得客户端根据异常路由节点信息生成第一响应报文,进而使得路由节点收到该第一响应报文后规避异常的路由节点,从而提高了响应报文的传输速率,提高了用户体验。
在本申请的另一实施例中,服务器在接收第二响应报文之前,需要通过路由节点接收来自客户端的请求报文,并根据请求报文确定共享密钥,该请求报文用于客户端请求目标流量报文。
需要说明的是,上述请求报文中可以携带有目标流量报文的标识,目标流量报文的标识用于唯一表示目标流量报文的身份信息。服务器接收到的请求报文中可以包括各个路由节点与服务器之间的各个共享密钥。每个路由节点与服务器有对应的共享密钥。
客户端在生成请求报文并发送至路由节点,使得路由节点接收请求报文,并在请求报文中添加对应的共享密钥然后转发至下一跳节点,直至服务器接收路由节点发送的请求报文,然后服务器在通过路由节点接收请求报文后,根据请求报文确定与各个路由节点的共享密钥。该下一跳节点可以是指下一路由节点或服务器。服务器接收到的请求报文中包括的每个路由节点的共享密钥可以是根据客户端与服务器的传输路径上的顺序确定的位置进行存储的。
可以理解的是,由于服务器接收到的请求报文中包括多个路由节点的共享密钥,可以获取请求报文的报文格式,所包含的各个路由节点对应的字段以及字段在报文中的位置,然后根据报文格式调用对应的数据获取接口,根据位置获取各个字段在请求报文中对应的字段值,并将各个字段的字段值进行解析处理,得到各个路由节点的共享密钥。
本实施例中,服务器可以根据路由节点在客户端与服务器的传输路径上的位置,确定请求报文中与路由节点对应的字段,然后根据与路由节点对应的字段确定路由节点的共享密钥。每个路由节点的共享密钥对应的字段值不同。该路由节点对应的字段可以包括路由节点的加密标识、路由节点的签名信息和地址信息。该加密标识可以是路由节点通过服务器的公钥对其进行加密处理得到的,签名信息可以是路由节点根据自身的私钥对加密标识进行签名操作得到的,地址信息是指路由节点处理数据时当前所处的位置信息。
具体地,服务器在获取到路由节点对应的字段后,可以根据路由节点对应的字段确定路由节点对应的地址信息、路由节点的签名信息和加密标识,然后通过路由节点对应的地址信息查询路由节点的公钥,并采用路由节点的公钥验证请求报文中携带的签名信息的正确性,若验证签名信息为正确时,采用服务器的私钥对加密标识进行解密,得到路由节点与服务器的共享密钥。若验证签名信息为不正确时,则丢弃该请求报文。其中,该地址信息例如可以是ip地址信息。
需要说明的是,服务器中可以预先存储各个路由节点的地址信息和对应的公钥,该公钥用于验证每个路由节点对应的签名信息的正确性。当服务器获取到路由节点对应的字段后,可以获取路由节点的地址信息、路由节点的签名信息和加密标识,然后根据路由节点的地址信息查找到路由节点对应的公钥。
服务器在验证路由节点的签名信息的正确性的过程中,可以通过路由节点的公钥对签名信息进行解密处理,得到加密标识对应的摘要,然后再对加密标识进行哈希处理,得到哈希结果,将哈希结果与摘要进行比对,如果比对结果一致,则表示该加密标识正确且未被修改过;如果比对结果不一致,则表示该加密标识不正确可能被修改过。进行解密处理时所采用的解密算法与加密算法相对应,例如可以采用对称解密算法,也可以采用线性散列算法进行解密处理,还可以是混合解密算法。
示例性地,请参见图15所示,当服务器与客户端之间的传输路由路径为R1→R2→R3时,所包含的路由节点分别为第一路由节点R1、第二路由节点R2和第三路由节点R3,且每个路由节点的共享密钥在请求报文中的位置是由后之前依次排列存储,第一路由节点R1的共享密钥对应的位置为第一位置,第二路由节点R2的共享密钥对应的位置为位于第一位置之前的第二位置,第三路由节点R3的共享密钥对应的位置为位于第二位置之前的第三位置。其中,该第一路由节点R1的共享密钥可以是通过第一加密标识、第一签名信息和第一路由节点R1的地址信息来表示。
服务器可以获取第一位置对应的第一字段,根据第一路由节点R1对应的第一字段确定第一路由节点对应的地址信息、第一路由节点的第一签名信息和第一加密标识,然后通过第一路由节点对应的地址信息查询第一路由节点的公钥,并采用第一路由节点的公钥验证请求报文中携带的第一签名信息的正确性,若第一签名信息为正确时,采用服务器的私钥对第一加密标识进行解密,得到第一路由节点R1与服务器的第一共享密钥。同理,可以获取第二位置对应的第二字段,并确定对第二路由节点R2对应的地址信息、第二路由节点的第二签名信息和第二加密标识,依次验证签名的正确性,当签名正确时对第二加密标识进行解密处理,得到第二路由节点R2与服务器的第二共享密钥,进而通过相同的方式得到第三路由节点R3与服务器的第三共享密钥。
服务器在获取到各个路由节点的共享密钥后,可以进行存储,以便于通过各个路由节点的共享密钥对客户端发送的第二响应报文进行解密处理,得到各个路由节点的报文收发时间。
本实施例中服务器通过对请求报文中的字段解析,得到路由节点对应的地址信息、签名信息和加密标识,能够通过签名信息验证加密标识的正确性,保证了路由节点的身份信息,增加了共享密钥的安全性和完整性,能够使得服务器得到每个路由节点的共享密钥,以精准地根据共享密钥解析时间戳信息获取报文收发时间。
在本申请的另一实施例中,还提供了一种根据报文处理时延确定路由节点中的异常路由节点的具体实现方式,其中,服务器在确定路由节点中的异常路由节点的过程中,可以将报文处理时延与预设阈值的大小进行比较,将报文处理时延大于预设阈值时对应的路由节点确定为异常路由节点;将报文处理时延不大于预设阈值时对应的路由节点确定为正常路由节点。
需要说明的是,上述预设阈值用于筛选异常路由节点,是预先根据实际历史路由节点在处于异常状态时所对应的形态、特征和类型进行自定义确定的,可以是由管理人员自定义设置的。每个路由节点对应的报文处理时延可以对应一个相同的预设阈值。不同路由节点对应的报文处理时延可以对应多个不同的预设阈值。
示例性地,当服务器与客户端之间的传输路由路径为R1→R2→R3时,所包含的路由节点分别为第一路由节点R1、第二路由节点R2和第三路由节点R3,在确定出第一路由节点R1的第一报文处理时延、第二路由节点R2的第二报文处理时延和第三路由节点R3的第三报文处理时延后,可以将第一报文处理时延、第二报文处理时延和第三报文处理时延分别与预设阈值进行比较,假设第一报文处理时延大于预设阈值,则将第一报文处理时延对应的第一路由节点R1确定为异常路由节点,在对第一响应报文进行转发的过程中,需要忽略该第一路由节点R1;如果第二报文处理时延和第三报文处理时延均不大于预设阈值,则将第二报文处理时延对应的第二路由节点R2,以及第三报文处理时延对应的第三路由节点R3确定为正常路由节点,可以通过R2和R3进行第一响应报文的转发。
本实施例中通过将报文处理时延与预设阈值进行比较,能够精准地确定出路由节点中存在的异常路由节点,进而将异常路由节点信息发送至客户端,使得客户端根据异常路由节点信息生成第一响应报文,进而使得路由节点收到该第一响应报文后规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率。
为了更加清楚地说明本申请,下面来进一步说明本申请提出的数据传输方法的完整流程图方法。图16为本申请实施例提供的数据传输方法的流程示意图,如图16所示,该方法包括:
S701、客户端向路由节点发送目标流量报文的请求报文。
具体的,客户端可以提供给用户可执行操作的配置界面,使得用户通过点击、触摸、滑动、长按等方式在配置界面上执行对应业务操作,该业务操作需要向服务器获取目标流量报文,则生成请求报文Pkt_req并发送至路由节点。其中,该请求报文Pkt_req中携带有流标识FlowID,是用于唯一表示目标流量报文的身份信息。
S702、路由节点接收客户端发送的目标流量报文的请求报文,获取请求报文的流标识,根据请求报文的流标识确定路由节点与服务器的共享密钥。
请参见图17-图19所示,路由节点接收客户端发送的目标流量报文的请求报文Pkt_req,从请求报文Pkt_req中获取流标识FlowID,然后获取路由节点的私有路由信息Key_router,根据流标识FlowID和路由节点的私有路由信息Key_router进行哈希处理,得到路由节点对应的共享密钥。
可选的,上述流标识FlowID可以是从请求报文Pkt_req的报文头部获取。例如当客户端与路由节点之间的通信传输协议为QUIC时,则对应的流标识FlowID可以为QUIC协议的连接标识。
上述流标识还可以根据请求报文的传输信息进行计算处理得到。例如先从请求报文获取请求报文的源地址、目的地址、源端口标识、目的端口标识、流量传输协议,然后对源地址、目的地址、源端口标识、目的端口标识和流量传输协议进行拼接操作,得到操作结果,并对该操作结果进行哈希运算处理,从而得到请求报文的流标识。可以通过如下公式计算得到:
FlowID=Hash(src||dst||sport||dport||protocol);
其中,src表示请求报文Pkt_req中的源地址,dst表示请求报文Pkt_req中的目的地址,sport表示请求报文Pkt_req中的源端口标识,dport表示请求报文Pkt_req中的目的端口标识,protocol表示流量传输协议(例如可以为UDP或TCP协议),符号“||”表示拼接操作。
在得到流标识后,可以通过如下公式计算路由节点与服务器的共享密钥:
Key_share=Hash(FlowID||Key_router);
其中,Key_router表示路由节点的私有路由信息,也是能够唯一标识中间路由节点的重要信息(如出厂信息),FlowID表示请求报文的流标识。
S703、路由节点将共享密钥通过服务器的公钥进行加密处理,得到加密标识。
S704、路由节点采用路由节点的私钥对加密标识进行签名处理,得到所路由节点对应的签名信息。
S705、路由节点将加密标识、签名信息和路由节点的地址信息添加至请求报文中,并转发至至下一跳节点。
S706、路由节点将已添加各个路由节点的共享密钥的请求报文发送至服务器。
路由节点将获取的共享密钥Key_share通过服务器的公钥Key_server_pub加密后得到加密标识Key_share_enc,可以通过如下公式表示:
Key_share_enc=Enc{Key_server_pub,Key_share};
其中,Key_server_pub为服务器的公钥,Key_share为共享密钥。
路由节点在得到加密标识Key_share_enc后,把然后采用自身私钥Key_router_prt对加密标识Key_share_enc进行签名,得到Sign_router_share,可以通过如下公式表示:
Sign_router_share=Sign{Key_router_prt,Key_share_enc};
其中,Sign表示签名操作;Key_router_prt表示路由节点自身的私钥;Key_share_enc表示路由节点对应的加密标识。
然后路由节点通过如下公式将上述计算得到的加密标识Key_share_enc和签名信息Sign_router_share以及自身的IP地址信息IP_router嵌入至请求报文Pkt_req中。并将添加了相关信息的请求报文发送至其他路由节点,使得其他路由节点在接收到请求报文Pkt_req后重新执行上述步骤S702-S705的方法添加对应的共享密钥至请求报文中,并将添加了各个路由节点的共享密钥的请求报文转发至服务器,直至服务器接收到该请求报文Pkt_req。
S707、服务器通过路由节点接收来自客户端的请求报文,确定请求报文中与路由节点对应的字段,得到路由节点对应的地址信息、签名信息和加密标识。
S708、服务器通过路由节点对应的地址信息查询路由节点的公钥,并采用路由节点的公钥验证请求报文中携带的签名信息的正确性。
S709、服务器当验证签名信息为正确时,采用服务器的私钥对加密标识进行解密,得到路由节点与服务器的共享密钥并存储。
S710、服务器响应于客户端的请求报文,向客户端发送目标流量报文。
服务器在接收到请求报文Pkt_req后,可以确定请求报文中与路由节点对应的字段,解析该字段得到路由节点对应的地址信息、签名信息和加密标识,然后通过路由节点的IP_router(IP地址信息)查询该路由节点的公钥Key_router_pub,并使用该公钥Key_router_pub验证报文中携带的签名信息Sign_router_share的正确性,若不正确,则丢弃该请求报文;若正确,则采用服务器的私钥对加密标识进行解密,得到路由节点与服务器的共享密钥并存储。
服务器在根据采用服务器的私钥Key_server_prt对加密标识Key_share_enc进行解密,可以通过如下公式得到每个路由节点与服务器的共享密钥Key_router_share:
Key_router_share=Denc{Key_server_prt,Key_share_enc};
其中,Key_server_prt表示服务器的私钥,Key_share_enc表示路由节点的加密标识。其中,每个路由节点对应一个加密标识,且对应一个签名信息和地址信息。
服务器在得到每个路由节点与服务器的共享密钥Key_router_share后,可以对其进行存储。然后响应于客户端的请求报文Pkt_req,根据流标识获取目标流量报文并通过路由节点向客户端发送该目标流量报文。
S711、客户端通过路由节点向服务器发送第二响应报文。
S712、路由节点接收第二响应报文,根据共享密钥对报文收发时间进行加密处理,获得时间戳信息,将时间戳信息添加至第二响应报文中并转发至下一跳节点。
S713、路由节点发送已添加各个时间戳信息的第二响应报文至服务器。
客户端通过路由节点接收到服务器发送的目标流量报文,然后确定目标流量报文的丢包信息,然后丢包信息生成第二响应报文Pkt_ack1,并将第二响应报文Pkt_ack1发送至路由节点。
路由节点接收第二响应报文Pkt_ack1,然后记录路由节点接收到第二响应报文Pkt_ack1的第一时间戳Timestamp_in,并获取第二响应报文中的流标识FlowID,然后对流标识FlowID和路由节点的私有路由信息Key_router进行哈希处理,得到路由节点对应的共享密钥Key_share。并在发送第二响应报文Pkt_ack1之前,记录第二响应报文Pkt_ack1即将离开该路由节点的第二时间戳Timestamp_out;然后路由节点通过共享密钥Key_share对第一时间戳Timestamp_in和第二时间戳Timestamp_out进行加密处理,得到时间戳信息,例如可以先对第一时间戳和第二时间戳进行拼接操作,得到融合时间戳,然后采用对称加密算法对融合时间戳进行加密处理,得到时间戳信息,其可以通过如下公式计算得到:
Timestamp_enc=Enc{Key_share,Timestamp_in||Timestamp_out};
其中,Key_share表示路由节点与服务器的共享密钥;
Timestamp_in表示路由节点接收到第二响应报文Pkt_ack1的第一时间戳;Timestamp_out表示第二响应报文Pkt_ack1即将离开该路由节点的第二时间戳。
路由节点在得到时间戳信息后,可以将该时间戳信息添加至第二响应报文Pkt_ack1中并发送至下一跳节点,并将添加了相关时间戳信息的第二响应报文Pkt_ack1发送至其他路由节点,使得其他路由节点在接收到第二响应报文Pkt_ack1后执行上述步骤的获取对应的共享密钥、第一时间戳和第二时间戳,然后采用共享密钥对第一时间戳和第二时间戳进行加密得到对应的时间戳信息并添加至第二响应报文Pkt_ack1中以进行转发,然后将添加了各个路由节点的共享密钥的第二响应报文Pkt_ack1文转发至服务器,直至服务器接收到该第二响应报文Pkt_ack1。
S714、服务器接收第二响应报文,利用路由节点的共享密钥对与路由节点对应的字段进行解密处理,获得路由节点的报文收发时间。
S715、服务器根据报文处理时延确定路由节点中的异常路由节点。
S716、服务器向客户端发送异常定位报文,该异常定位报文中携带有异常路由节点信息。
服务器在接收到第二响应报文Pkt_ack1,该第二响应报文Pkt_ack1中添加了各个路由节点通过各自的共享密钥加密后的时间戳信息。
服务器可以基于第二响应报文Pkt_ack1,获取各个路由节点对应的字段,然后对于每个路由节点对应的字段,通过该路由节点与服务器的共享密钥Key_share对时间戳信息Timestamp_enc进行解密,获得每个中间路由节点的第一时间戳Timestamp_in和第二时间戳Timestamp_out信息;其中,第二时间戳Timestamp_out大于第一时间戳Timestamp_in。
服务器根据第一时间戳Timestamp_in和第二时间戳Timestamp_out信息计算每个中间路由节点的报文处理时延Time_process,可以通过如下公式计算得到:
Time_process=Timestamp_out–Timestamp_in;
其中,Timestamp_out表示路由节点的第二时间戳;Timestamp_in表示路由节点的第一时间戳。
进一步地,服务器在得到各个路由节点的报文处理时延Time_process后,将报文处理时延Time_process与预设阈值T的大小进行比较;对于某一路由节点,当计算得到的报文处理时延Time_process超过阈值T时,表明该路由节点出现异常,即为异常路由节点;当计算得到的报文处理时延Time_process不超过阈值T时,表明该路由节点为正常路由节点。
服务器在得到异常路由节点信息IP_router_un后,可以生成异常定位报文Pkt_un并通过路由节点发送至客户端,该异常定位报文Pkt_router_un中携带有异常路由节点信息IP_router_un。
S717、客户端接收服务器发送的异常路由节点信息,根据异常路由节点信息生成第一响应报文。
S718、客户端向路由节点发送第一响应报文。
客户端接收服务器发送的异常定位报文Pkt_router_un,对其进行解析处理得到异常路由节点信息IP_router_un,然后根据异常路由节点信息IP_router_un生成第一响应报文Pkt_ack2。并将第一响应报文Pkt_ack2发送至路由节点。
S719、路由节点接收客户端发送的第一响应报文,根据异常路由节点信息转发第一响应报文至下一跳节点。
S720、路由节点发送第一响应报文至服务器。
S721、服务器接收第一响应报文,确定目标流量报文的丢包信息,该丢包信息用于指示目标流量报文中丢失的流量报文;
S722、服务器发送丢失的流量报文至客户端。
路由节点在接收到第一响应报文Pkt_ack2后,可以执行上述步骤S711-S712中的获取路由节点对应的共享密钥、第一时间戳和第二时间戳,然后采用共享密钥对第一时间戳和第二时间戳进行加密得到对应的时间戳信息并添加至第一响应报文Pkt_ack2中以进行转发,与此同时,查找转发该第一响应报文Pkt_ack2的下一跳路由节点IP_next,并根据异常异常路由节点信息IP_router_un是否等于异常路由节点信息IP_router_un;若下一跳路由节点IP_next不等于IP_router_un,则将该添加了相关信息的第一响应报文Pkt_ack2转发至下一跳路由节点IP_next;若下一跳路由节点IP_next等于IP_router_un,则将该添加了相关信息的第一响应报文Pkt_ack2转发至其他下一跳路由节点。例如判断出R2为异常路由节点,则将第一响应报文Pkt_ack2转发至其他下一跳路由节点R5,并使得R5添加对应的时间戳信息然后判断下一跳路由节点是否为异常路由节点,并将第一响应报文Pkt_ack2进行转发至下一节点,依次类推,直至服务器接收到添加了相关路由节点时间戳信息的第一响应报文Pkt_ack2。
需要说明的是,该其他下一跳路由节点可以是缺省状态的下一跳路由节点(非IP_router_un),也可以是次优最短路径上的下一跳路由节点,然后将添加了各个路由节点的时间戳信息的第一响应报文Pkt_ack2文转发至服务器,直至服务器接收到该第二响应报文Pkt_ack1。
服务器在接收到该第一响应报文Pkt_ack2后,可以继续解析第一响应报文Pkt_ack2,得到各个路由节点对应的时间戳信息并判断异常路由节点,同时,根据第一响应报文Pkt_ack2获取目标流量报文的丢包信息,然后将丢失的流量报文重新回传,通过路由器发送至客户端。
本实施例中路由节点与服务器共享密钥,且路由节点在接收到第二响应报文后,将接收与发送的时间戳通过共享密钥的形式嵌入至第二响应报文中,保证了时间戳信息传输的安全性,使得服务器根据第二响应报文中的时间戳信息判断异常路由节点的信息并发送至客户端,使得客户端在后期发送的第一响应报文中嵌入异常路由节点信息,进而路由节点能够在接收到该第一响应报文后根据异常路由节点信息规避异常的路由节点,从而使得第一响应报文快速且准确地传输至服务器,提升了响应报文的回传速率,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
另一方面,本申请实施例提供了数据传输系统,请继续参见图1所示,该数据传输系统包括客户端10、路由节点20和服务器30。
服务器用于向客户端发送目标流量报文,确定路由节点的报文处理时延,根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息。客户端用于接收服务器发送的异常路由节点信息,根据异常路由节点信息向客户端与服务器之间的路由节点发送目标流量报文的第一响应报文。路由节点用于接收客户端发送的第一响应报文,若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。第一响应报文还包括目标流量报文的丢包信息。
其中,上述客户端具体用于通过路由节点向下一跳节点服务器发送第二响应报文,该第二响应报文用于指示接收第二响应报文的路由节点在第二响应报文中添加报文收发时间,该第二响应报文为目标流量报文的响应报文;
客户端还用于接收服务器发送的异常定位报文,该异常定位报文包括异常路由节点信息;该异常路由节点信息是服务器根据路由节点发送的第二响应报文中的报文收发时间确定的。以及用于通过路由节点向服务器发送目标流量报文的请求报文,使得接收请求报文的路由节点在请求报文中添加路由节点的共享密钥;共享密钥用于服务器从第二响应报文中获取报文收发时间。
其中,上述路由节点还用于若下一跳节点与异常路由节点信息指示的节点不同,则向下一跳节点转发第一响应报文。
上述路由节点还用于接收客户端发送的第二响应报文;在第二响应报文中添加报文收发时间,并向下一跳节点发送已添加报文收发时间的第二响应报文,直至服务器接收第二响应报文,使得服务器根据第二响应报文中的报文收发时间确定异常路由节点信息。
上述路由节点还用于接收客户端发送的目标流量报文的请求报文,在请求报文中添加共享密钥;向下一跳节点发送已添加共享密钥的请求报文,直至服务器接收请求报文,使得服务器根据请求报文中的共享密钥解析时间戳信息获得报文收发时间。
其中,上述服务器具体用于接收路由节点发送的第二响应报文;根据第二响应报文中的报文收发时间确定路由节点的报文处理时延。
上述服务器还用于通过路由节点接收来自客户端的请求报文,根据路由节点在客户端与服务器的传输路径上的位置,确定请求报文中与路由节点对应的字段;根据与路由节点对应的字段确定路由节点的共享密钥。
上述服务器还用于根据路由节点对应的字段确定路由节点对应的地址信息、签名信息和加密标识;通过路由节点对应的地址信息查询路由节点的公钥;采用路由节点的公钥验证请求报文中携带的签名信息的正确性;若验证签名信息为正确时,采用服务器的私钥对加密标识进行解密,得到路由节点与服务器的共享密钥。
本申请实施例提供的数据传输系统,路由节点接收到携带有异常路由节点信息的第一响应报文,能够在后续第一响应报文的传输过程中考虑到异常路由节点的因素,提供了精准的数据指导信息,以便后续有针对性地忽略客户端与服务器之间的异常路由节点。另一方面,路由节点能够根据异常路由节点信息转发第一响应报文,即若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文,从而能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
另一方面,图20为本申请实施例提供的一种数据传输装置的结构示意图。该装置可以为客户端内的装置,如图20所示,该装置800包括:
处理模块810,用于接收服务器发送的异常路由节点信息,根据异常路由节点信息生成第一响应报文;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文;
发送模块820,用于客户端向客户端与服务器之间的路由节点发送第一响应报文,使得路由节点根据第一响应报文中的异常路由节点信息转发第一响应报文。
可选的,上述处理模块810,具体包括:
第一发送单元811,用于通过路由节点向服务器发送第二响应报文,第二响应报文用于指示接收第二响应报文的路由节点在第二响应报文中添加报文收发时间,第二响应报文为目标流量报文的响应报文;
第二发送单元812,用于客户端接收服务器发送的异常定位报文,异常定位报文包括异常路由节点信息;异常路由节点信息是服务器根据路由节点发送的第二响应报文中的报文收发时间确定的。
可选的,上述装置,还用于:
通过路由节点向服务器发送目标流量报文的请求报文,使得接收请求报文的路由节点在请求报文中添加路由节点的共享密钥;共享密钥用于服务器从第二响应报文中获取报文收发时间。
可选的,第一响应报文还包括目标流量报文的丢包信息。
另一方面,图21为本申请实施例提供的一种数据传输装置的结构示意图。该装置可以为路由节点内的装置,如图21所示,该装置包括:
接收模块830,用于接收客户端发送的第一响应报文,第一响应报文携带异常路由节点信息;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文;
转发模块840,用于若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。
可选的,上述转发模块840,还用于:
若下一跳节点与异常路由节点信息指示的节点不同,则向下一跳节点转发第一响应报文。
可选的,上述装置,还用于:
接收客户端发送的第二响应报文;
在第二响应报文中添加报文收发时间,并向下一跳节点发送已添加报文收发时间的第二响应报文,直至服务器接收第二响应报文,使得服务器根据第二响应报文中的报文收发时间确定异常路由节点信息。
可选的,上述装置,还用于:
路由节点根据共享密钥对报文收发时间进行加密处理,获得时间戳信息;
将时间戳信息添加至第二响应报文。
可选的,上述装置,还用于:
路由节点根据报文收发时间包括的路由节点接收第二响应报文的第一时间戳和路由节点发送第二响应报文的第二时间戳;
采用共享密钥对第一时间戳和第二时间戳进行加密处理,得到时间戳信息。
可选的,上述装置,还用于:
接收客户端发送的目标流量报文的请求报文,在请求报文中添加共享密钥;
向下一跳节点发送已添加共享密钥的请求报文,直至服务器接收请求报文,使得服务器根据请求报文中的共享密钥解析时间戳信息获得报文收发时间。
路由节点获取请求报文的流标识;
根据请求报文的流标识确定路由节点与服务器的共享密钥。
可选的,上述装置,还用于:
将共享密钥通过服务器的公钥进行加密处理,得到加密标识;
采用路由节点的私钥对加密标识进行签名处理,得到路由节点对应的签名信息;
路由节点将加密标识、签名信息和路由节点的地址信息添加至请求报文中。
可选的,第一响应报文还包括目标流量报文的丢包信息。
另一方面,图22为本申请实施例提供的一种数据传输装置的结构示意图。该装置可以为服务器内的装置,如图22所示,该装置包括:
确定模块850,用于通过与客户端之间的路由节点向客户端发送目标流量报文,确定路由节点的报文处理时延;
发送模块860,用于根据报文处理时延确定路由节点中的异常路由节点,向客户端发送异常路由节点信息,使得客户端根据异常路由节点信息向服务器发送目标流量报文的第一响应报文;异常路由节点信息用于指示异常路由节点,第一响应报文指示接收第一响应报文的路由节点转发第一响应报文时忽略异常路由节点信息指示的节点。
可选的,上述确定模块850,包括:
接收单元851,用于接收路由节点发送的第二响应报文;
确定单元852,用于根据第二响应报文中的报文收发时间确定路由节点的报文处理时延;第二响应报文中的报文收发时间为接收第二响应报文的路由节点添加的。
可选的,上述装置,还用于:
根据路由节点在客户端与服务器的传输路径上的位置,确定第二响应报文中与路由节点对应的字段;
根据与路由节点对应的字段确定路由节点的报文收发时间。
可选的,上述装置,还用于:
利用路由节点的共享密钥对与路由节点对应的字段进行解密处理,获得路由节点的报文收发时间。
可选的,上述装置,还用于:
通过路由节点接收来自客户端的请求报文,根据请求报文确定共享密钥;请求报文用于客户端请求目标流量报文。
可选的,上述装置,还用于:
根据路由节点在客户端与服务器的传输路径上的位置,确定请求报文中与路由节点对应的字段;
根据与路由节点对应的字段确定路由节点的共享密钥。
可选的,上述装置,还用于:
服务器根据路由节点对应的字段确定路由节点对应的地址信息、签名信息和加密标识;
服务器通过路由节点对应的地址信息查询路由节点的公钥;
服务器采用路由节点的公钥验证请求报文中携带的签名信息的正确性;
若验证签名信息为正确时,采用服务器的私钥对加密标识进行解密,得到路由节点与服务器的共享密钥。
可选的,上述发送模块860,包括:
比较单元861,用于将报文处理时延与预设阈值的大小进行比较;
确定单元862,用于将报文处理时延大于预设阈值的路由节点确定为异常节点。
本申请实施例提供的数据传输装置,一方面,路由节点接收到携带有异常路由节点信息的第一响应报文,能够在后续第一响应报文的传输过程中考虑到异常路由节点的因素,提供了精准的数据指导信息,以便后续有针对性地忽略客户端与服务器之间的异常路由节点。另一方面,路由节点能够根据异常路由节点信息转发第一响应报文,即若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文,从而能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
另一方面,本申请实施例还提供一种计算机设备,该设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上所述的数据传输方法。
下面参考图23,其示出了适于用来实现本申请实施例的设备的计算机系统900的结构示意图。
如图23所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分903加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本申请公开的内容分享或处理的实施例,上文参考图4描述的过程可以被实现为计算机软件程序。例如,本申请公开的电子红包处理的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,该计算机程序包含用于执行图4的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种内容分享或处理实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块及转发模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,接收模块还可以被描述为“用于接收客户端发送的第一响应报文,第一响应报文携带异常路由节点信息;异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本申请的数据传输方法,具体执行:
路由节点接收客户端发送的第一响应报文,所述第一响应报文携带异常路由节点信息;所述异常路由节点信息用于表征所述客户端与所述服务器之间存在的异常路由节点,所述第一响应报文为所述服务器向所述客户端发送的目标流量报文的响应报文;
若所述路由节点的下一跳节点与所述异常路由节点信息指示的节点相同,则忽略所述下一跳节点,向其他下一跳节点转发所述第一响应报文。
本申请实施例提供的数据传输方法、装置及存储介质,路由节点接收客户端发送的第一响应报文,该第一响应报文携带异常路由节点信息,异常路由节点信息用于表征客户端与服务器之间存在的异常路由节点,第一响应报文为服务器向客户端发送的目标流量报文的响应报文,若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文。本申请中的技术方案相比于现有技术而言,一方面,路由节点接收到携带有异常路由节点信息的第一响应报文,能够在后续第一响应报文的传输过程中考虑到异常路由节点的因素,提供了精准的数据指导信息,以便后续有针对性地忽略客户端与服务器之间的异常路由节点。另一方面,路由节点能够根据异常路由节点信息转发第一响应报文,即若路由节点的下一跳节点与异常路由节点信息指示的节点相同,则忽略下一跳节点,向其他下一跳节点转发第一响应报文,从而能够在报文传输过程中及时规避异常的路由节点,在保证精准地传输响应报文的同时,并且加快了第一响应报文的传输速度,使得服务器根据第一响应报文及时发现丢失的流量报文数据,以实现快速地对丢失报文进行重传,提高了服务器端丢失报文重传的效率,改善了用户的业务体验。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种数据传输方法,其特征在于,所述方法包括:
路由节点接收客户端发送的第一响应报文,所述第一响应报文携带异常路由节点信息;所述异常路由节点信息用于表征所述客户端与服务器之间存在的异常路由节点,所述第一响应报文为所述服务器向所述客户端发送的目标流量报文的响应报文;
若所述路由节点的下一跳节点与所述异常路由节点信息指示的节点相同,则忽略所述下一跳节点,向其他下一跳节点转发所述第一响应报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述下一跳节点与所述异常路由节点信息指示的节点不同,则向所述下一跳节点转发所述第一响应报文。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述路由节点接收所述客户端发送的第二响应报文;
在所述第二响应报文中添加报文收发时间,并向下一跳节点发送已添加所述报文收发时间的第二响应报文,直至所述服务器接收所述第二响应报文,使得所述服务器根据所述第二响应报文中的报文收发时间确定所述异常路由节点信息。
4.根据权利要求3所述的方法,其特征在于,在所述第二响应报文中添加报文收发时间,包括:
所述路由节点根据共享密钥对所述报文收发时间进行加密处理,获得时间戳信息;
将所述时间戳信息添加至所述第二响应报文。
5.根据权利要求4所述的方法,其特征在于,所述路由节点根据共享密钥对所述报文收发时间进行加密处理,获得时间戳信息,包括:
所述路由节点根据所述报文收发时间包括的所述路由节点接收所述第二响应报文的第一时间戳和所述路由节点发送所述第二响应报文的第二时间戳;
采用所述共享密钥对所述第一时间戳和所述第二时间戳进行加密处理,得到所述时间戳信息。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的所述目标流量报文的请求报文,在所述请求报文中添加所述共享密钥;
向下一跳节点发送已添加所述共享密钥的请求报文,直至所述服务器接收所述请求报文,使得所述服务器根据所述请求报文中的所述共享密钥解析所述时间戳信息获得所述报文收发时间。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述路由节点获取所述请求报文的流标识;
根据所述请求报文的流标识确定所述路由节点与所述服务器的共享密钥。
8.根据权利要求6或7所述的方法,其特征在于,在所述请求报文中添加所述共享密钥,包括:
将所述共享密钥通过服务器的公钥进行加密处理,得到加密标识;
采用所述路由节点的私钥对所述加密标识进行签名处理,得到所述路由节点对应的签名信息;
所述路由节点将所述加密标识、所述签名信息和所述路由节点的地址信息添加至所述请求报文中。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一响应报文还包括所述目标流量报文的丢包信息。
10.一种数据传输方法,其特征在于,所述方法包括:
服务器通过与客户端之间的路由节点向所述客户端发送目标流量报文,确定所述路由节点的报文处理时延;
服务器根据所述报文处理时延确定所述路由节点中的异常路由节点,向所述客户端发送异常路由节点信息,使得所述客户端根据所述异常路由节点信息向所述服务器发送所述目标流量报文的第一响应报文;所述异常路由节点信息用于指示所述异常路由节点,所述第一响应报文指示接收所述第一响应报文的路由节点转发所述第一响应报文时忽略所述异常路由节点信息指示的节点。
11.根据权利要求10所述的方法,其特征在于,确定路由节点的报文处理时延,包括:
接收所述路由节点发送的第二响应报文;
根据所述第二响应报文中的报文收发时间确定所述路由节点的报文处理时延;所述第二响应报文中的报文收发时间为接收所述第二响应报文的路由节点添加的。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述路由节点在所述客户端与所述服务器的传输路径上的位置,确定所述第二响应报文中与所述路由节点对应的字段;
根据所述与所述路由节点对应的字段确定所述路由节点的报文收发时间。
13.根据权利要求12所述的方法,其特征在于,根据所述与所述路由节点对应的字段确定所述路由节点的报文收发时间,包括:
利用所述路由节点的共享密钥对所述与所述路由节点对应的字段进行解密处理,获得所述路由节点的报文收发时间。
14.根据权利要求13所述的方法,其特征在于,所述还包括:
通过所述路由节点接收来自所述客户端的请求报文,根据所述请求报文确定所述共享密钥;所述请求报文用于所述客户端请求所述目标流量报文。
15.根据权利要求14所述的方法,其特征在于,根据所述请求报文确定所述共享密钥,包括:
根据所述路由节点在所述客户端与所述服务器的传输路径上的位置,确定所述请求报文中与所述路由节点对应的字段;
根据所述与所述路由节点对应的字段确定所述路由节点的共享密钥。
16.根据权利要求15所述的方法,其特征在于,所述服务器根据所述与所述路由节点对应的字段确定所述路由节点的共享密钥,包括:
服务器根据所述路由节点对应的字段确定所述路由节点对应的地址信息、签名信息和加密标识;
所述服务器通过所述路由节点对应的地址信息查询所述路由节点的公钥;
所述服务器采用路由节点的公钥验证所述请求报文中携带的所述签名信息的正确性;
若验证所述签名信息为正确时,采用所述服务器的私钥对所述加密标识进行解密,得到所述路由节点与所述服务器的共享密钥。
17.根据权利要求10所述的方法,其特征在于,根据所述报文处理时延确定所述路由节点中的异常路由节点,包括:
将所述报文处理时延与预设阈值的大小进行比较;
将报文处理时延大于所述预设阈值的路由节点确定为所述异常节点。
18.一种数据传输装置,应用于路由节点,其特征在于,包括:
接收模块,用于接收客户端发送的第一响应报文,所述第一响应报文携带异常路由节点信息;所述异常路由节点信息用于表征所述客户端与服务器之间存在的异常路由节点,所述第一响应报文为所述服务器向所述客户端发送的目标流量报文的响应报文;
转发模块,用于若所述路由节点的下一跳节点与所述异常路由节点信息指示的节点相同,则忽略所述下一跳节点,向其他下一跳节点转发所述第一响应报文。
19.一种数据传输装置,应用于服务器,其特征在于,包括:
确定模块,用于通过与客户端之间的路由节点向所述客户端发送目标流量报文,确定所述路由节点的报文处理时延;
发送模块,用于根据所述报文处理时延确定所述路由节点中的异常路由节点,向所述客户端发送异常路由节点信息,使得所述客户端根据所述异常路由节点信息向所述服务器发送所述目标流量报文的第一响应报文;所述异常路由节点信息用于指示所述异常路由节点,所述第一响应报文指示接收所述第一响应报文的路由节点转发所述第一响应报文时忽略所述异常路由节点信息指示的节点。
20.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如权利要求1-17任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211342258.0A CN117997824A (zh) | 2022-10-28 | 2022-10-28 | 数据传输方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211342258.0A CN117997824A (zh) | 2022-10-28 | 2022-10-28 | 数据传输方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117997824A true CN117997824A (zh) | 2024-05-07 |
Family
ID=90892165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211342258.0A Pending CN117997824A (zh) | 2022-10-28 | 2022-10-28 | 数据传输方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117997824A (zh) |
-
2022
- 2022-10-28 CN CN202211342258.0A patent/CN117997824A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10305904B2 (en) | Facilitating secure network traffic by an application delivery controller | |
US10630784B2 (en) | Facilitating a secure 3 party network session by a network device | |
US10785020B2 (en) | Hardware offload for QUIC connections | |
US10601944B2 (en) | Accurate caching in adaptive video streaming based on collision resistant hash applied to segment contents and ephemeral request and URL data | |
US10681018B2 (en) | Transparent encryption in a content centric network | |
CN111133427B (zh) | 生成和分析网络配置文件数据 | |
EP3633949A1 (en) | Method and system for performing ssl handshake | |
US20120307655A1 (en) | System and method for two way push notifications | |
KR20170087406A (ko) | 무선 네트워크들에서 빠르고, 안전하며 프라이버시에 해가 되지 않는 인터넷 접속 발견을 위한 방법들 | |
US11558185B2 (en) | Stream-based key management | |
CN114095195A (zh) | 安全套接字层代理的自适应控制 | |
US20120127995A1 (en) | Backbone network with policy driven routing | |
Cui | Comparison of IoT application layer protocols | |
CN117997824A (zh) | 数据传输方法、装置及存储介质 | |
US11595367B2 (en) | Selectively disclosing content of data center interconnect encrypted links | |
CN115801298A (zh) | 文件传输的方法、系统、设备和存储介质 | |
US10469378B2 (en) | Protocol to query for historical network information in a content centric network | |
Muscariello et al. | Securing scalable real-time multiparty communications with hybrid information-centric networking | |
KR102055380B1 (ko) | 보안이 강화된 메시지 송수신 기법 | |
JP2011193055A (ja) | 通信装置および通信方法 | |
Pinto et al. | HTTP-DTNSec: An HTTP-Based Security Extension for Delay/Disruption Tolerant Networking | |
CN116996245A (zh) | 基于数据传输的验证方法、装置、设备、介质及产品 | |
CN117914525A (zh) | 一种数据报文处理方法及系统 | |
CN117560168A (zh) | 基于零信任的SRv6报文生成和传输方法 |
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 |