CN110460547B - 一种面向可重构云架构的可靠端到端通信方法 - Google Patents
一种面向可重构云架构的可靠端到端通信方法 Download PDFInfo
- Publication number
- CN110460547B CN110460547B CN201810433931.9A CN201810433931A CN110460547B CN 110460547 B CN110460547 B CN 110460547B CN 201810433931 A CN201810433931 A CN 201810433931A CN 110460547 B CN110460547 B CN 110460547B
- Authority
- CN
- China
- Prior art keywords
- message
- module
- board
- sending
- ack
- 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.)
- Expired - Fee Related
Links
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/1607—Details of the supervisory signal
-
- 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/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种面向可重构云架构的可靠端到端通信方法,技术方案是构建一种由交换平面、可重构平面、传统服务平面构成的面向可重构云架构的可靠端到端通信装置,可重构平面板卡中的识别分析模块由接收模块和发送模块组成,接收模块由第一时间戳模块、分类检测模块和接收缓存模块组成,发送模块由发送缓存模块、发送控制模块、重传模块、第二时间戳模块、仲裁模块和速率控制模块组成;发送端与接收端建立通信连接完成三次握手后,发送端与接收端进行端对端数据传输,传输时不断调整传输速率,传输完毕进行连接释放。本发明可完成可靠通信,缓解网络拥堵,提高带宽利用率,且不需对交换设备进行修改,硬件资源消耗少。
Description
技术领域
本发明涉及计算机网络通信技术领域,特别涉及一种面向可重构云架构的可靠端到端通信方法。
背景技术
随着计算机网络通信技术的快速发展,用户对计算速度的需求不断增加,大数据、深度学习等新兴应用迅猛发展。为了提升用户的使用体验,数据中心开发商开始在数据中心里使用可重构云架构进行应用加速。因此,面向可重构云架构的端到端数据传输是实现端对端可靠通信的前提。
如图1所示,可重构云架构由交换平面和传统服务平面构成(如微软于2015年部署的异构云,参见Adrian M.Caulfield等.一种云规模加速体系结构[C].MICRO会议,2016,32(3):213-229),交换平面通过交换机与传统服务平面进行通信。交换平面由多个交换设备组成,交换机设备按照从上到下的拓扑结构为核心层交换机、汇聚层交换机、TOR(top ofrank,柜顶)交换机三层。TOR交换机的数量与传统服务平面中板卡的数量相同,与板卡相连,一台TOR交换机与其相连的板卡一一对应。汇聚交换机与多台TOR交换机和一台核心交换机相连,负责在TOR交换机与核心交换机间转发数据。核心交换机与多台汇聚交换机和路由器相连,负责在汇聚层交换机与路由器之间转发数据。交换平面负责报文的传输,通过TOR交换机与传统服务平面相连接;传统服务平面由计算机终端和内嵌在计算机终端中的板卡(一般是FPGA器件)组成,板卡与其所属的计算机终端一一对应,板卡上部署有可靠端对端交互协议LTL(Lightweight Transport Layer,轻量级传输层)或TCP协议。计算机终端将报文以RDMA(Remote Direct Memory Access,远程直接数据存取)方式传输给其内嵌的板卡,由板卡上部署的LTL或TCP协议完成可靠端对端的数据交互。
然而,基于现有的可重构云架构的可靠端对端交互协议存在以下问题:
(1)在可重构云中部署LTL协议,需要交换设备开启基于优先级流量控制PFC(Priority-based Flow Control)等复杂且具有暂停风暴(网络中所有的流都暂停发送)和受害流(PFC机制在特定情况会强制暂停某个端口的流,这些流中可能有不应该被暂停的流,这些不该被暂停的流称为受害流)风险的机制,需要对现有的交换设备进行修改,使其难以在传统数据中心里大规模部署。
(2)由于TCP协议的设计是面向巨型拓扑,其中许多机制已经不适合在可重构云中部署,多余的机制和复杂化的机制使板卡上部署TCP协议消耗的存储和逻辑资源过多,限制板卡的可扩展性。此外,其中的许多机制(迟钝的拥塞控制,慢启动等)导致传输速率低,且容易丢包,延时、吞吐效率不高,因而也不适合在传统数据中心里大规模部署。
如何在实现数据中心传输目标(小流低延时,大流高吞吐)的前提下,既不需要对现有的交换设备进行修改,又减少硬件资源的消耗,通过根据监测网络拥塞状况实时调整传输速率,缓解网络拥堵,提高带宽利用率,实现端到端的可靠通信是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是提出一种面向可重构云架构的可靠端到端通信方法,在不需要对现有交换设备进行任何修改的前提下,实现数据中心小流低延时、大流高吞吐的传输目标,且解决硬件资源消耗过多的问题。
本发明的技术方案是:
第一步,构建一种面向可重构云架构的可靠端到端通信装置。面向可重构云架构的可靠端到端通信装置由交换平面、可重构平面、传统服务平面三个平面构成,交换平面与可重构平面相连,可重构平面与交换平面和传统服务平面相连,传统服务平台与可重构平面相连。
交换平面的结构和组成与背景技术图1的完全一样;交换平面通过TOR交换机与可重构平面相连;
传统交换服务平面仅由计算机终端组成;
可重构平面由多个板卡组成,一个板卡仅与一台TOR交换机和一台计算机终端相连,因此TOR交换机和与其相连的板卡,以及与该板卡相连的计算机终端是一一对应的。
板卡由高速接口控制器和识别分析模块组成,高速接口控制器负责报文的接收和发送,识别分析模块负责对报文进行识别、分析和进行相应操作。
高速接口控制器(如Altera公司提供的Hard IP 10GBASE-R、100GBASE-T/SGMIIPHY(Physical,物理核)等,一般集成在FPGA中)按照标准10GBASE-R接口规范完成以太接口的数据接收和发送,与TOR交换机、识别分析模块相连。高速接口控制器一方面从识别分析模块接收syn报文(请求报文)、syn_ack报文(请求响应报文)、ack报文(数据响应报文)、nack报文(乱序或超时响应报文,即非正常接收报文)、数据报文、fin报文(释放请求报文)和fin_ack报文(释放请求响应报文),将这些报文发送给TOR交换机,另一方面从TOR交换机接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,将这些报文发送给识别分析模块。
识别分析模块与计算机终端、高速接口控制器相连。识别分析模块一方面从计算机终端获取数据块,将这些数据块封装成数据帧,将数据帧发送到高速接口控制器,另一方面从高速接口控制器接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,对这些报文进行识别、分析、解封装等逻辑处理,得到数据块,将数据块传输到计算机终端。
识别分析模块由接收模块和发送模块组成,接收模块由第一时间戳模块、分类检测模块和接收缓存模块组成,发送模块由发送缓存模块、发送控制模块、重传模块、第二时间戳模块、仲裁模块和速率控制模块组成。
计算机终端和板卡既可以作为发送端,也可以是接收端。将需要向外发送报文的计算机终端定义为发送端,与其相连的板卡定义为发送端板卡,将需要从外部接收报文的计算机终端定义为接收端,与其相连的板卡定义为接收端板卡。为了描述方便,将发送端中的计算机终端命名为计算机终端A,将对应的板卡命名为板卡A;将接收端中的计算机终端命名为计算机终端B,将对应的板卡命名为板卡B。
第一时间戳模块与高速接口控制器、分类检测模块相连。板卡A的第一时间戳模块只用于转发通过它的报文,对接收的报文不打时间戳,板卡B的第一时间戳模块记录报文的接收时刻并将该接收时刻作为接收时间戳,将报文和接收时间戳转发给分类检测模块。板卡A的第一时间戳模块从高速接口控制器中接收syn_ack报文、ack报文、nack报文、fin_ack报文,将这些报文发送给分类检测模块。板卡B的第一时间戳模块从高速接口控制器接收syn报文、ack报文、数据报文、fin报文,分别记录这些报文的接收时刻作为接收时间戳,并将接收时间戳发送给分类检测模块。各种报文的数据结构如图2所示,均是相同的,各种报文均由报文头和数据两部分组成。报文头包括源端口号、目的端口号、长度、校验和、STT(单程时延)、序号、确认号、syn标识位、fin标识位、ack标识位、nack标识位、选项这些字段,数据只有数据报文才有内容,其它报文的数据部分均为空。源端口号在需要对方回信时选用,不需要时可用全0;目的端口号在终点交付报文时使用;长度指数据和报文头的长度,其最小值是24字节(仅有报文头);校验和存放的是校验码,是用来保证数据的完整性和准确性的字段,校验码生成方法是:首先将报文分成若干个16位的二进制数,对这些16位的二进制数进行1的补码和运算,累加的结果再取反码即生成了检验码。STT(单程时延):在发送端发送数据时,该位段存储该报文的发送时间戳,在接收端返回ack报文时,该位段存储的是单程时延;序号指本报文所发送的数据的第一个字节的序号;确认号:ACK标志位为1时有效,上次成功收到的数据字节序号+1(如接收到的为1024--2048,则返回2049)。syn标识位:syn标志位置1时表示这是一个syn报文,通常带有syn标志的报文表示发送端请求连接到接收端。fin标识位,当fin标识位置1时表明此报文是fin报文,收到此报文的接收端被要求释放连接资源。ack标识位,当ack标识位置1时确认号字段有效,代表这个报文为ack报文,当ack标识位为0时,表示不是ack报文。nack标识位,当nack标识位置1时确认号字段有效,代表这个报文为nack报文,当nack标识位为0时,表示不是nack报文。选项:默认全置为0,保留为以后使用。
分类检测模块与第一时间戳模块、接收缓存模块和发送模块中的仲裁模块相连。分类检测模块由分类模块、定时器、计数器、检测模块和合法分析模块组成。
分类模块与第一时间戳模块相连。板卡B的分类模块从第一时间戳模块接收报文,并对报文进行识别:若报文首部的syn标志位为1且ack标志位不为1,则分类模块识别出是syn报文,构造syn_ack报文发送到仲裁模块;若报文首部的fin标志位为1且ack标志位不为1,则分类模块识别出是fin报文,构造fin_ack报文发送到仲裁模块,并将fin报文的接收时间戳传递给合法分析模块;板卡A的分类模块从第一时间戳模块接收报文,若报文首部的syn与ack标志位都为1则分类模块识别出该报文是syn_ack报文;若报文首部的fin与ack标志位都为1则分类模块识别出该报文是fin_ack报文;若报文首部仅ack标志位为1,则分类模块识别出该报文是ack报文;若报文首部仅nack标志位为1,则分类模块识别出该报文nack报文;识别出来后直接将该报文发送给仲裁模块;若该报文首部的syn、ack、fin和nack标志位均为0,则分类模块识别出该报文为数据报文,将数据报文长度发送给计数器,记录这些报文的接收时刻作为接收时间戳,并将接收时间戳发送给定时器,将报文中序号字段发送给检测模块,将报文传递给合法分析模块。
计数器与分类模块、合法分析模块相连,计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于QKB(Q为2的q次幂,q为正整数,q>3,优选q=6,即Q为64),则计数器继续计数;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零。
定时器与分类模块、合法分析模块相连,定时器从分类模块接收第num个报文的接收时间戳tnum,2(num为报文的顺序号,为大于等于0的整数,第二个下标参数为1或2,1表示发送,2表示接收,tnum,2为第num个报文的接收时间戳,后述的tnum,1为第num个报文的发送时间戳)和第num+1个报文的接收时间戳tnum+1,2,计算两个时间戳的时间间隔(即tnum+1,2-tnum+1,2),将此时间间隔赋给定时器,当定时器的值超过超时阈值RTO(说明相邻两个数据报文接收时间相隔太长)时向合法分析模块发送定时器超时的指令;超时重传阈值RTO的计算公式为:
RTO=8×AvgSTT+2×STT
a是一个小于1的系数,当a的值接近于1,表示加权计算的平均STT(用S表示)受第n个STT即STTn(n是STT的顺序号,由合法分析模块中的计数器记录,发送端每接收到一个syn_ack或ack或fin_ack报文,顺序号n加1)影响较大,反之,影响较小,a的值优选设为1/8。b也是一个小于1的系数,优选设置为1/4。AvgSTT是S和STTn间偏差的加权平均值。
检测模块与分类模块、合法分析模块相连,检测模块从分类模块接收报文序号字段,对累计接收的报文的序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块;
合法分析模块与计数器、定时器、检测模块、分类模块,接收缓存模块相连,若合法分析模块接收到报文序号乱序的指令或定时器超时的指令,则生成nack报文,向仲裁模块发送nack报文;若合法分析模块既未接收到报文序号乱序的指令,又未收到定时器超时的指令,且从计数器收到报文长度等于QKB的指令,则从分类模块获取报文及该报文的接收时间戳,将报文中的数据发送给接收缓存模块,之后合法分析模块根据报文的接收时间戳和报文中自带的发送时间戳计算STT(STT=报文的接收时间戳-报文中的发送时间戳),构造ack报文,将ack报文提交给仲裁模块。
接收缓存模块与分类检测模块、计算机终端相连,接收缓存模块将从分类检测模块中的合法分析模块接收的数据进行缓存,供计算机终端读取。
第二时间戳模块与仲裁模块、发送控制模块和高速接口控制器相连,板卡A的第二时间戳模块给通过它的报文打上发送时间戳后再转发,板卡B的第二时间戳模块只对通过报文进行转发,不打时间戳。板卡A的第二时间戳模块从发送控制模块接收报文:当板卡A的第二时间戳模块从发送控制模块接收到syn报文或数据报文,记录syn报文或数据报文的接收时间,将该接收时间作为接收时间戳,将syn报文或数据报文及它们的接收时间戳输出到高速接口控制器。板卡B的第二时间戳模块从仲裁模块接收syn_ack报文、fin_ack报文、ack报文、fin报文,将这些报文输出到高速接口控制器。
仲裁模块与分类检测模块、速率控制模块、第二时间戳模块、重传模块相连。板卡B的仲裁模块只对通过它的报文进行转发,板卡A的仲裁模块对通过它的报文要进行仲裁,根据仲裁结果进行转发。板卡B的仲裁模块从分类检测模块接收报文,并根据报文的类别将报文进行分发:当板卡B的仲裁模块从分类检测模块接收的报文为syn_ack报文或fin_ack报文,则将syn_ack报文或fin_ack报文发送给第二时间戳模块;当板卡B的仲裁模块从分类检测模块接收的报文为nack报文或ack报文,则仲裁模块将nack报文或ack报文发送给速率控制模块。板卡A的仲裁模块从分类检测模块接收报文,对报文进行仲裁,根据仲裁结果进行转发:当板卡A的仲裁模块从分类检测模块接收的报文为nack报文,则将nack报文发送给速率控制模块,并提取nack报文中的序号(即需要重传的报文序号),将需要重传的报文序号发送给重传模块;当板卡A的仲裁模块从分类检测模块接收的报文为ack报文,则直接将ack报文发送给速率控制模块。
速率控制模块与仲裁模块、发送控制模块相连。板卡B的速率控制模块只对通过它的报文进行转发,不进行速率重置;板卡A的速率控制模块在发送端与接收端通信连接建立成功时设置初始传输速率v0m,若从仲裁模块接收的是nack报文,则将数据报文传输速率重置为当前传输速率的一半;若板卡A的速率控制模块接收的是ack报文,则根据ack报文中的STT调整传输速率,将调整后的传输速率发送给发送控制模块。
发送控制模块与发送缓存模块、速率控制模块、重传模块和第二时间戳模块相连。发送控制模块从速率控制模块接收数据报文发送时间间隔,根据数据报文发送间隔控制相邻数据报文的发送时间间隔,并将该数据报文发送给第二时间戳模块,同时,发送控制模块复制一份相同的数据报文发送给重传模块。
发送缓存模块与计算机终端、发送控制模块相连。发送缓存模块从计算机终端A接收syn报文、数据报文、fin报文,对它们进行缓存,供发送控制模块读取。
重传模块与发送控制模块、仲裁模块相连。该模块接收从发送控制模块发来的报文,并对报文进行缓存,当从仲裁模块接收到需要重传的报文序号时,将该报文序号对应的需要重传的报文送给发送控制模块。
面向可重构云架构的可靠端到端通信装置支持多流传输,同一计算机终端可以同时传输多条数据流(例如同一计算机终端既可以放音乐,又可以放视频,还可以进行高性能计算,这3种活动就是3条不同的流,3条流互不干扰,可并行也可串行),一般多条数据流按照产生的时间顺序排序,流的序号用m表示,m为正整数。面向可重构云架构的可靠端到端通信装置对于每条流的传输过程是一样的,不失一般性,下面的传输方法以第m条流的传输过程来说明。
第二步,发送端与接收端建立通信连接,完成三次握手过程,以传输第m条流,具体方法为:
2.1初始化报文序号num为0,初始化STT的顺序号n为0,初始化二维数组V=[vnm]为空,vnm为传输第m条流时第n次接收ack后调整的报文传输速率。
2.2发送端与接收端进行第一次握手,方法是:
2.2.1发送端的计算机终端A发送syn报文给板卡A的发送缓存模块;
2.2.2板卡A的发送缓存模块从计算机终端A接收并存储syn报文;
2.2.3板卡A的发送控制模块从发送缓存模块读取syn报文,将syn报文发送到板卡A的第二时间戳模块;
2.2.4板卡A的第二时间戳模块从发送控制模块接收syn报文,将syn报文的STT字段赋值为发送端发送初始报文的时间,此时STT字段即为发送时间戳t0,1(此过程也称为给syn报文打时间戳t0,1,此时num为0,表示此时发送的不是数据报文),并将打了t0,1的syn报文发送到板卡A的高速接口控制器;
2.2.5板卡A的高速接口控制器从板卡A的第二时间戳模块接收打了t0,1的syn报文,将此syn报文发送到交换平面的TOR交换机,并令num=num+1;
2.2.6交换平面的TOR交换机从板卡A的高速接口控制器接收打了t0,1的syn报文,将此打了t0,1的syn报文转发到板卡B的高速接口控制器,此时接收端进入请求报文发送状态(即SYN_SENT状态);
2.2.7接收端的高速接口控制器从交换平面的交换机接收打了t0,1的syn报文,将打了t0,1的syn报文发送给板卡B的第一时间戳模块;
2.2.8板卡B的第一时间戳模块从板卡B的高速接口控制器接收打了t0,1的syn报文,记录接收该syn报文的时间作为接收端接收初始报文的时间戳t0,2(此时num为0),将t0,2和syn报文送给板卡B的分类检测模块;
2.2.9板卡B的分类检测模块从板卡B的第一时间戳模块接收t0,2和syn报文,构造syn_ack报文(即将syn标识位和ack标志位都置1,源端口号和目的端口号对应着syn报文中的目的端口号和源端口号;长度是该syn_ack报文头的长度,校验和存放校验码。STT赋值为t0,2-t0,1,序号字段是随机产生,确认号为syn报文中的序号+1,其他标志位和选项置0,数据字段也置0)发送给板卡B的仲裁模块,完成第一次握手,令STTn为syn_ack报文中的STT。
2.3接收端与发送端进行第二次握手,方法是:
2.3.1板卡B的仲裁模块从板卡B的分类检测模块接收syn_ack报文,将syn_ack报文发送给板卡B的第二时间戳模块;
2.3.2板卡B的第二时间戳模块从板卡B的仲裁模块接收syn_ack报文,将syn_ack报文发送给板卡B的高速接口控制器;
2.3.3板卡B的高速接口控制器从板卡B的第二时间戳模块接收syn_ack报文,将syn_ack报文发送到交换平面的TOR交换机;
2.3.4交换平面的TOR交换机将syn_ack报文转发给板卡A的高速接口控制器,此时接收端进入请求报文接收状态(即SYN_RECV状态);
2.3.5板卡A的高速接口控制器从交换平面的TOR交换机接收syn_ack报文,并将syn_ack报文送给板卡A的第一时间戳模块;
2.3.6板卡A的第一时间戳模块从板卡A的高速接口控制器中接收syn_ack报文,将syn_ack报文发送给板卡A的分类检测模块;
2.3.7板卡A的分类检测模块从板卡A的第一时间戳模块接收syn_ack报文,记录syn_ack报文的STT字段,令n=n+1,并构造ack报文(将ack标志位置为1,源端口号和目的端口号对应syn_ack报文中的目的端口号和源端口号,长度是该ack报文头的长度,校验和存放校验码。STT赋值为0,序号字段是syn_ack报文的序号字段值+该报文的字节数,确认号为syn_ack报文的序号字段+1,其他标志位和选项置0,数据字段也置0)发送给板卡A的仲裁模块,完成第二次握手。
2.4发送端与接收端进行第三次握手,方法是:
2.4.1板卡A的仲裁模块从板卡A的分类检测模块接收ack报文,发送ack报文给板卡A的速率控制模块;
2.4.2板卡A的速率控制模块将ack报文发送给板卡A的发送控制模块,此时速率控制模块只是转发该ack报文,不做其他处理;
2.4.3板卡A的发送控制模块从速率控制模块接收ack报文,将ack报文发送给板卡A的第二时间戳模块,同时复制一份相同的ack报文发送给板卡A的重传模块;
2.4.4板卡A的第二时间戳模块从板卡A的发送控制模块接收ack报文,将ack报文送给板卡A的高速控制器;
2.4.5板卡A的高速接口控制器将ack报文发送给交换平面的TOR交换机,并令num=num+1;
2.4.6交换平面的TOR交换机将ack报文转发到板卡B的高速接口控制器;
2.4.7板卡B的高速接口控制器从交换平面的交换机接收ack报文,将ack报文送给板卡B的第一时间戳模块;
2.4.8板卡B的第一时间戳模块从高速接口控制器接收ack报文,将ack报文发送给分类检测模块;
2.4.9板卡B的分类检测模块从板卡B的第一时间戳模块接收ack报文,将ack报文发送给板卡B的仲裁模块,完成第三次握手,此时发送端与接收端通信连接建立。
第三步,发送端与接收端进行端对端数据传输,方法是:
3.1板卡A的速率控制模块为第m条流设置初始传输速率(此时n=1,即),其中B表示发送端与接收端通信连接建立时的带宽。(即第一条流初始传输速率v01为发送端与接收端通信连接建立时的带宽,第二条流初始传输速率v02为v01的一半,第三条流初始传输速率v03则为v01的1/3;)(流的区别在于五元组(目的端IP地址,发送端IP地址,发送端端口,目的端端口和传输层协议,若五元组相同,则表示报文属于同一条流,若五元组任意一项不同,则属于不同流)。
3.2发送端的计算机终端A发送第num个报文给板卡A的发送缓存模块(如前所述,发送缓存模块从计算机终端A接收syn报文、数据报文、fin报文,syn报文是用来进行握手的,握手已完成,且此时num≥2,所以此时的报文只能是数据报文或fin报文);
3.3板卡A的发送缓存模块从计算机终端A接收并存储第num个报文;
3.4板卡A的发送控制模块从板卡A的发送缓存模块读取第num个报文,若该报文是数据报文,转3.5,若该报文是fin报文,转第四步。
3.5板卡A的发送控制模块将读取的第num个数据报文发送到板卡A的第二时间戳模块;
3.6板卡A的第二时间戳模块从板卡A的发送控制模块接收第num个数据报文,对第num个数据报文打上发送端发送第num个数据报文的时间戳tnum,1,并将已打tnum,1的数据报文发送到板卡A的高速接口控制器;
3.7板卡A的高速接口控制器从板卡A的第二时间戳模块接收已打tnum,1的数据报文,将已打tnum,1的数据报文按照速率vnm发送到交换平面的交换机;
3.8交换平面的交换机从板卡A的高速接口控制器接收已打tnum,1的数据报文,将已打tnum,1的数据报文转发到板卡B的高速接口控制器;
3.9板卡B的高速接口控制器从交换平面的交换机接收已打tnum,1的数据报文,将该数据报文发送给板卡B的第一时间戳模块;
3.10板卡B的第一时间戳模块接收已打tnum,1的数据报文,记录接收该数据报文的时刻,将该时刻作为接收时间戳tnum,2,将已打tnum,1的数据报文和时间戳tnum,2发送给板卡B的分类检测模块;
3.11板卡B的分类检测模块中的分类模块从板卡B的第一时间戳模块接收时间戳tnum,2和已打tnum,1的数据报文,板卡B的分类检测模块中的计数器对累计接收的数据报文长度进行计数,板卡B的分类检测模块中的定时器对tnum,2和tnum,1的差值进行记录,板卡B的分类检测模块中的检测模块对累计接收的数据报文的报文序序号进行检测,若检测正常,则将数据报文发送给接收缓存模块,具体方法是:
3.11.1分类模块将数据报文长度发送给计数器,将tnum,2传给定时器,同时将数据报文的序号字段发送给检测模块;
3.11.2计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于QKB,转3.11.3;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零,转3.11.6;
3.11.3定时器从分类模块接收tnum,2,记录tnum,2与tnum,1的差值,若差值超过设定的阈值RTO,则向合法分析模块发送定时器超时的指令,转3.11.5,若差值未超过设定的阈值RTO,转3.11.4;
3.11.4检测模块从分类模块接收数据报文序号,对数据报文序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块,转3.11.5;若检测模块未检测到报文序号乱序,令num=num+1,转3.2。
3.11.5合法分析模块接收报文序号乱序的指令或定时器超时的指令,生成nack报文(将nack标志位置为1,源端口号和目的端口号对应着该数据报文中的目的端口号和源端口号,长度是该nack报文报文头的长度,校验和存放校验码。STT赋值0,序号字段是上一ack或nack报文中的序号字段+该ack或nack报文的字节数,确认号为该乱序或超时数据报文中的序号字段+1,其他标志位和选项置0,数据字段也置0)),并向仲裁模块发送nack报文,转步骤3.13;
3.11.6合法分析模块从计数器接收累计接收的报文长度等于QKB的指令(此时既未从检测模块接收到报文序号乱序的指令,又未从定时器收到超时的指令),合法分析模块分析从分类模块接收报文和该报文的接收时间戳,则计算tnum,2与tnum,1的差值,构造生成ack报文(将ack标志位置为1,源端口号和目的端口号对应着该接收报文中的目的端口号和源端口号,长度是该ack报文报文头的长度,校验和存放校验码。STT赋值为tnum,2与tnum,1的差值,序号字段是上一ack或nack报文的序号字段+该报文的字节数,确认号为该接收报文的序号字段+1,其他标志位和选项置0,数据字段也置0),向板卡B的仲裁模块发送ack报文,并将接收的数据报文发送给板卡B的接收缓存模块,转步骤3.12;
3.12板卡B的接收缓存模块从合法分析模块接收数据报文,将数据报文进行缓存,供计算机终端B读取,转3.13;
3.13板卡B的仲裁模块从板卡B的合法分析模块接收nack报文(见3.11.5)或ack(见3.11.6)报文,将nack报文或ack报文直接转发给板卡B的速率控制模块;
3.14板卡B的速率控制模块从板卡B的仲裁模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的发送控制模块;
3.15板卡B的发送控制模块从板卡B的速率控制模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的第二时间戳模块;
3.16板卡B的第二时间戳模块从板卡B的发送控制模块接收nack报文或ack报文,将接收到的nack报文或ack报文转发给板卡B的高速接口控制器;
3.17板卡B的高速接口控制器从板卡B的第二时间戳模块接收nack报文或ack报文,将nack报文或ack报文发送给交换平面的TOR交换机;
3.18交换平面的TOR交换机从板卡B的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的高速接口控制器;
3.19板卡A的高速接口控制器从交换平面的TOR交换机接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的第一时间戳模块;
3.20板卡A的第一时间戳模块从板卡A的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的分类检测模块;
3.21板卡A的分类检测模块从板卡A的第一时间戳模块接收nack报文或ack报文,由分类模块将nack报文或ack报文直接发送给板卡A的仲裁模块;
3.22板卡A的仲裁模块从板卡A的分类检测模块接收nack报文或ack报文,进行以下处理:
若板卡A的仲裁模块接收到nack报文,则板卡A的仲裁模块提取nack报文中确认号字段中的乱序的报文序号发送给板卡A的重传模块,转步骤3.23;若板卡A的仲裁模块接收到ack报文,则板卡A的仲裁模块将ack报文发送给速率控制模块,转步骤3.24;
3.23板卡A的重传模块根据从仲裁模块接收的乱序的报文序号,令num=乱序的报文序号num,从发送缓存模块中复制需要重传的数据报文,将此数据报文发送给板卡A的发送控制模块,转步骤3.24;
3.24若板卡A的速率控制模块从板卡A的仲裁模块接收到接收端返回的报文,更新传输速率vnm,方法为:
3.24.1若板卡A的速率控制模块接收的是nack报文,则将传输速率vnm调整为vnm/2,并向板卡A的发送控制模块发送传输速率vnm,转步骤3.2;
3.24.2若板卡A的速率控制模块接收的是ack报文,令STTn为ack报文中的STT,按以下方法控制传输速率,方法为:
3.24.3.1板卡A的速率控制模块计算单程时延梯度G=STTn-STTn-1;
3.24.3.2将STTn与Tlow和Thigh进行比较,Tlow为数据传输时链路队列(链路即为从发送端到接收端的路径,链路队列即为在该路径中所有结点中等待的队列长度)占有率(即填充数据的队列深度占整个队列长度的比例)为1/32时的单程时延值,Thigh为链路队列占有率为1/8时的单程时延值,Tlow和Thigh是两个常量:
3.24.3.2.1如果STTn小于Tlow,则板卡A的速率控制模块将传输速率在V(n-1)m基础上增加NMbps/s(N与带宽容量相关,N为正整数(N<B),优选200),即调整后的传输速率vnm=V(n-1)m+N,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.2如果STTn大于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率调整为V(n-1)m的3/4,即vnm=(3/4)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.3如果STTn大于Thigh且小于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率调整为V(n-1)m的7/8,即vnm=(7/8)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.4如果STTn值在Tlow与Thigh之间,则根据单程时延梯度变量G进行判断,方法为:
3.24.3.2.4.1若G<0,则板卡A的速率控制模块将传输速率在V(n-1)m基础上增加NMbps/S,即vnm=V(n-1)m+N,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.4.2若G=0,则传输速率不变,即vnm=V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.4.3若G>0,则板卡A的速率控制模块将传输速率调整为V(n-1)m的(1-2*G)倍,即vnm=(1-2*G)V(n-1)m;将vnm发送给发送控制模块,转步骤3.25;
3.25板卡A的发送控制模块从速率控制模块接收vnm,发送控制模块根据vnm将报文发送到板卡A的第二时间戳模块,同时发送控制模块复制一份相同的报文发送给板卡A的重传模块,令n=n+1转步骤3.3。
第四步,释放端对端通信连接,方法是:
4.1板卡A的发送控制模块从板卡A的发送缓存模块读取fin报文,将fin报文发送到板卡A的发送模块的第一时间戳模块;
4.2板卡A的第一时间戳模块给fin报文打上发送时间戳tnum,1后将已打tnum,1的fin报文发送给板卡A的高速接口控制器,发送端进入等待释放连接响应的状态。
4.3板卡A的高速接口控制器将已打tnum,1的fin报文发送给交换平面的交换机;
4.4交换平面的交换机将已打tnum,1的fin报文转发至接收端的板卡B的高速接口控制器;
4.5板卡B的高速接口控制器将已打tnum,1的fin报文发送给板卡B的接收模块的第二时间戳模块;
4.6第二时间戳模块不打时间戳,将fin报文转发给合法分析模块。
4.7板卡B的合法分析模块接收到报文后识别出是已打tnum,1的fin报文,构造fin_ack报文(将ack标志位置为1,源端口号和目的端口号对应着fin报文中的目的端口号和源端口号,长度是这个fin_ack报文报文头的长度,校验和存放校验码。STT赋值为0,序号字段是fin报文的确认号字段值,确认号为fin报文的序号字段值+1,其他标志位和选项置0,数据字段也置0)送给板卡B的仲裁模块;
4.8板卡B的仲裁模块接收到fin_ack报文后送给板卡B的发送模块的第二时间戳模块;
4.9板卡B的第二时间戳模块将fin_ack报文送给板卡B的高速接口控制器,此时接收端进入连接关闭状态,此时接收端的连接已经释放;
4.10板卡B的高速接口控制器将fin_ack报文发送给交换平面的交换机;
4.11交换平面的交换机将fin_ack报文送给板卡A的高速接口控制器;
4.12板卡A的高速接口控制器将fin_ack报文送给板卡A的接收模块的第一时间戳模块;
4.13板卡A的第一时间戳模块接收到fin_ack报文后,将fin_ack报文发送给板卡A的分类检测模块;
4.14板卡A的分类检测模块识别到该报文为fin_ack报文后,送给板卡A的仲裁模块;
4.15板卡A的仲裁模块从分类检测模块接收到fin_ack报文,发送端进入到连接关闭状态,此时发送端和接收端的连接都已经释放。
采用本发明可以达到以下技术效果:
1)本发明通过连接建立、数据传输和连接释放三个步骤,完成了发送端和接收端的可靠通信。
2)本发明数据传输中利用可重构平面中的速率控制模块,不断调整数据报文的传输速率,有效缓解了网络拥堵,提高了带宽利用率。
3)与现有技术相比,本发明不需要对现有交换设备进行任何修改,解决了现有技术中消耗的硬件资源过多的问题。
附图说明
图1为背景技术中基于FPGA的可重构云架构示意图;
图2为报文的结构示意图;
图3为本发明的总体流程图;
图4为本发明第一步构建的面向可重构云架构端到端通信装置逻辑结构图;
图5为图4中可重构平面的逻辑结构图;
图6为图5中分类检测模块的逻辑结构图。
具体实施方式
下面结合说明书附图对本发明实施例进行详细描述。
图2为报文的结构示意图;各种报文的数据结构如图2所示,均是相同的,各种报文均由报文头和数据两部分组成。报文头包括源端口号、目的端口号、长度、校验和、STT(单程时延)、序号、确认号、syn标识位、fin标识位、ack标识位、nack标识位、选项这些字段,数据只有数据报文才有内容,其它报文的数据部分均为空。源端口号在需要对方回信时选用,不需要时可用全0;目的端口号在终点交付报文时使用;长度指数据和报文头的长度,其最小值是24字节(仅有报文头);校验和存放的是校验码,是用来保证数据的完整性和准确性的字段,校验码生成方法是:首先将报文分成若干个16位的二进制数,对这些16位的二进制数进行1的补码和运算,累加的结果再取反码即生成了检验码。STT(单程时延):在发送端发送数据时,该位段存储该报文的发送时间戳,在接收端返回ack报文时,该位段存储的是单程时延;序号指本报文所发送的数据的第一个字节的序号;确认号:ACK标志位为1时有效,上次成功收到的数据字节序号+1。syn标识位:syn标志位置1时表示这是一个syn报文,通常带有syn标志的报文表示发送端请求连接到接收端。fin标识位:当fin标识位置1时表明此报文是fin报文,收到此报文的接收端被要求释放连接资源。ack标识位:当ack标识位置1时确认号字段有效,代表这个报文为ack报文,当ack标识位为0时,表示不是ack报文。nack标识位:当nack标识位置1时确认号字段有效,代表这个报文为nack报文,当nack标识位为0时,表示不是nack报文。选项:默认全置为0,保留为以后使用。
图3为本发明的总体流程图;如图3所示,本发明包括以下步骤:
第一步,构建一种面向可重构云架构的可靠端到端通信装置。面向可重构云架构的可靠端到端通信装置如图4所示,由交换平面、可重构平面、传统服务平面三个平面构成,交换平面与可重构平面相连,可重构平面与交换平面和传统服务平面相连,传统服务平台与可重构平面相连。交换平面的结构和组成与图1的完全一样;交换平面通过TOR交换机与可重构平面相连;传统交换服务平面仅由计算机终端组成;
如图5所示,可重构平面由多个板卡组成,一个板卡仅与一台TOR交换机和一台计算机终端相连,因此TOR交换机和与其相连的板卡,以及与该板卡相连的计算机终端一一对应。
板卡由高速接口控制器和识别分析模块组成,高速接口控制器负责报文的接收和发送,识别分析模块负责对报文进行识别、分析和进行相应操作。
高速接口控制器按照标准10GBASE-R接口规范完成以太接口的数据接收和发送,与TOR交换机、识别分析模块相连。高速接口控制器一方面从识别分析模块接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文和fin_ack报文,将这些报文发送给TOR交换机,另一方面从TOR交换机接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,将这些报文发送给识别分析模块。
识别分析模块与计算机终端、高速接口控制器相连。识别分析模块一方面从计算机终端获取数据块,将这些数据块封装成数据帧,将数据帧发送到高速接口控制器,另一方面从高速接口控制器接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,对这些报文进行识别、分析、解封装等逻辑处理,得到数据块,将数据块传输到计算机终端。
识别分析模块由接收模块和发送模块组成,接收模块由第一时间戳模块、分类检测模块和接收缓存模块组成,发送模块由发送缓存模块、发送控制模块、重传模块、第二时间戳模块、仲裁模块和速率控制模块组成。
计算机终端和板卡既可以作为发送端,也可以是接收端。将需要向外发送报文的计算机终端定义为发送端,与其相连的板卡定义为发送端板卡,将需要从外部接收报文的计算机终端定义为接收端,与其相连的板卡定义为接收端板卡。为了描述方便,将发送端中的计算机终端命名为计算机终端A,将对应的板卡命名为板卡A;将接收端中的计算机终端命名为计算机终端B,将对应的板卡命名为板卡B。
第一时间戳模块与高速接口控制器、分类检测模块相连。板卡A的第一时间戳模块只用于转发通过它的报文,对接收的报文不打时间戳,板卡B的第一时间戳模块记录报文的接收时刻并将该接收时刻作为接收时间戳,将报文和接收时间戳转发给分类检测模块。板卡A的第一时间戳模块从高速接口控制器中接收syn_ack报文、ack报文、nack报文、fin_ack报文,将这些报文发送给分类检测模块。板卡B的第一时间戳模块从高速接口控制器接收syn报文、ack报文、数据报文、fin报文,分别记录这些报文的接收时刻作为接收时间戳,并将接收时间戳发送给分类检测模块。
分类检测模块与第一时间戳模块、接收缓存模块和发送模块中的仲裁模块相连。如图6所示,分类检测模块由分类模块、定时器、计数器、检测模块和合法分析模块组成。
分类模块与第一时间戳模块相连。板卡B的分类模块从第一时间戳模块接收报文,并对报文进行识别:若报文首部的syn标志位为1且ack标志位不为1,则分类模块识别出是syn报文,构造syn_ack报文发送到仲裁模块;若报文首部的fin标志位为1且ack标志位不为1,则分类模块识别出是fin报文,构造fin_ack报文发送到仲裁模块,并将fin报文的接收时间戳传递给合法分析模块;板卡A的分类模块从第一时间戳模块接收报文,若报文首部的syn与ack标志位都为1则分类模块识别出该报文是syn_ack报文;若报文首部的fin与ack标志位都为1则分类模块识别出该报文是fin_ack报文;若报文首部仅ack标志位为1,则分类模块识别出该报文是ack报文;若报文首部仅nack标志位为1,则分类模块识别出该报文nack报文;识别出来后直接将该报文发送给仲裁模块;若该报文首部的syn、ack、fin和nack标志位均为0,则分类模块识别出该报文为数据报文,将数据报文长度发送给计数器,记录这些报文的接收时刻作为接收时间戳,并将接收时间戳发送给定时器,将报文中序号字段发送给检测模块,将报文传递给合法分析模块。
计数器与分类模块、合法分析模块相连,计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于QKB,则计数器继续计数;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零。
定时器与分类模块、合法分析模块相连,定时器从分类模块接收第num个报文的接收时间戳tnum,2和第num+1个报文的接收时间戳tnum+1,2,计算两个时间戳的时间间隔(即tnum+1,2-tnum,2),将此时间间隔赋给定时器,当定时器的值超过超时阈值RTO时向合法分析模块发送定时器超时的指令;
检测模块与分类模块、合法分析模块相连,检测模块从分类模块接收报文序号字段,对累计接收的报文的序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块;
合法分析模块与计数器、定时器、检测模块、分类模块,接收缓存模块相连,若合法分析模块接收到报文序号乱序的指令或定时器超时的指令,则生成nack报文,向仲裁模块发送nack报文;若合法分析模块既未接收到报文序号乱序的指令,又未收到定时器超时的指令,且从计数器收到报文长度等于QKB的指令,则从分类模块获取报文及该报文的接收时间戳,将报文中的数据发送给接收缓存模块,之后合法分析模块根据报文的接收时间戳和报文中自带的发送时间戳计算STT(STT=报文的接收时间戳-报文中的发送时间戳),构造ack报文,将ack报文提交给仲裁模块。
接收缓存模块与分类检测模块、计算机终端相连,接收缓存模块将从分类检测模块中的合法分析模块接收的数据进行缓存,供计算机终端读取。
第二时间戳模块与仲裁模块、发送控制模块和高速接口控制器相连,板卡A的第二时间戳模块给通过它的报文打上发送时间戳后再转发,板卡B的第二时间戳模块只对通过报文进行转发,不打时间戳。板卡A的第二时间戳模块从发送控制模块接收报文:当板卡A的第二时间戳模块从发送控制模块接收到syn报文或数据报文,记录syn报文或数据报文的接收时间,将该接收时间作为接收时间戳,将syn报文或数据报文及它们的接收时间戳输出到高速接口控制器。板卡B的第二时间戳模块从仲裁模块接收syn_ack报文、fin_ack报文、ack报文、fin报文,将这些报文输出到高速接口控制器。
仲裁模块与分类检测模块、速率控制模块、第二时间戳模块、重传模块相连。板卡B的仲裁模块只对通过它的报文进行转发,板卡A的仲裁模块对通过它的报文要进行仲裁,根据仲裁结果进行转发。板卡B的仲裁模块从分类检测模块接收报文,并根据报文的类别将报文进行分发:当板卡B的仲裁模块从分类检测模块接收的报文为syn_ack报文或fin_ack报文,则将syn_ack报文或fin_ack报文发送给第二时间戳模块;当板卡B的仲裁模块从分类检测模块接收的报文为nack报文或ack报文,则仲裁模块将nack报文或ack报文发送给速率控制模块。板卡A的仲裁模块从分类检测模块接收报文,对报文进行仲裁,根据仲裁结果进行转发:当板卡A的仲裁模块从分类检测模块接收的报文为nack报文,则将nack报文发送给速率控制模块,并提取nack报文中的序号(即需要重传的报文序号),将需要重传的报文序号发送给重传模块;当板卡A的仲裁模块从分类检测模块接收的报文为ack报文,则直接将ack报文发送给速率控制模块。
速率控制模块与仲裁模块、发送控制模块相连。板卡B的速率控制模块只对通过它的报文进行转发,不进行速率重置;板卡A的速率控制模块在发送端与接收端通信连接建立成功时设置初始传输速率v0m,若从仲裁模块接收的是nack报文,则将数据报文传输速率重置为当前传输速率的一半;若板卡A的速率控制模块接收的是ack报文,则根据ack报文中的STT调整传输速率,将调整后的传输速率发送给发送控制模块。
发送控制模块与发送缓存模块、速率控制模块、重传模块和第二时间戳模块相连。发送控制模块从速率控制模块接收数据报文发送时间间隔,根据数据报文发送间隔控制相邻数据报文的发送时间间隔,并将该数据报文发送给第二时间戳模块,同时,发送控制模块复制一份相同的数据报文发送给重传模块。
发送缓存模块与计算机终端、发送控制模块相连。发送缓存模块从计算机终端A接收syn报文、数据报文、fin报文,对它们进行缓存,供发送控制模块读取。
重传模块与发送控制模块、仲裁模块相连。该模块接收从发送控制模块发来的报文,并对报文进行缓存,当从仲裁模块接收到需要重传的报文序号时,将该报文序号对应的需要重传的报文送给发送控制模块。
第二步,发送端与接收端建立通信连接,完成三次握手过程,以传输第m条流,具体方法为:
2.1初始化报文序号num为0,初始化STT的顺序号n为0,初始化二维数组V=[vnm]为空,vnm为传输第m条流时第n次接收ack后调整的报文传输速率;
2.2发送端与接收端进行第一次握手,方法是:
2.2.1发送端的计算机终端A发送syn报文给板卡A的发送缓存模块;
2.2.2板卡A的发送缓存模块从计算机终端A接收并存储syn报文;
2.2.3板卡A的发送控制模块从发送缓存模块读取syn报文,将syn报文发送到板卡A的第二时间戳模块;
2.2.4板卡A的第二时间戳模块从发送控制模块接收syn报文,将syn报文的STT字段赋值为发送端发送初始报文的时间,此时STT字段即为发送时间戳t0,1(此过程也称为给syn报文打时间戳t0,1,此时num为0,表示此时发送的不是数据报文),并将打了t0,1的syn报文发送到板卡A的高速接口控制器;
2.2.5板卡A的高速接口控制器从板卡A的第二时间戳模块接收打了t0,1的syn报文,将此syn报文发送到交换平面的TOR交换机,并令num=num+1;
2.2.6交换平面的TOR交换机从板卡A的高速接口控制器接收打了t0,1的syn报文,将此打了t0,1的syn报文转发到板卡B的高速接口控制器,此时接收端进入请求报文发送状态(即SYN_SENT状态);
2.2.7接收端的高速接口控制器从交换平面的交换机接收打了t0,1的syn报文,将打了t0,1的syn报文发送给板卡B的第一时间戳模块;
2.2.8板卡B的第一时间戳模块从板卡B的高速接口控制器接收打了t0,1的syn报文,记录接收该syn报文的时间作为接收端接收初始报文的时间戳t0,2(此时num为0),将t0,2和syn报文送给板卡B的分类检测模块;
2.2.9板卡B的分类检测模块从板卡B的第一时间戳模块接收t0,2和syn报文,构造syn_ack报文(即将syn标识位和ack标志位都置1,源端口号和目的端口号对应着syn报文中的目的端口号和源端口号;长度是该syn_ack报文头的长度,校验和存放校验码。STT赋值为t0,2-t0,1,序号字段是随机产生,确认号为syn报文中的序号+1,其他标志位和选项置0,数据字段也置0)发送给板卡B的仲裁模块,完成第一次握手,令STTn为syn_ack报文中的STT。
2.3接收端与发送端进行第二次握手,方法是:
2.3.1板卡B的仲裁模块从板卡B的分类检测模块接收syn_ack报文,将syn_ack报文发送给板卡B的第二时间戳模块;
2.3.2板卡B的第二时间戳模块从板卡B的仲裁模块接收syn_ack报文,将syn_ack报文发送给板卡B的高速接口控制器;
2.3.3板卡B的高速接口控制器从板卡B的第二时间戳模块接收syn_ack报文,将syn_ack报文发送到交换平面的TOR交换机;
2.3.4交换平面的TOR交换机将syn_ack报文转发给板卡A的高速接口控制器,此时接收端进入请求报文接收状态(即SYN_RECV状态);
2.3.5板卡A的高速接口控制器从交换平面的TOR交换机接收syn_ack报文,并将syn_ack报文送给板卡A的第一时间戳模块;
2.3.6板卡A的第一时间戳模块从板卡A的高速接口控制器中接收syn_ack报文,将syn_ack报文发送给板卡A的分类检测模块;
2.3.7板卡A的分类检测模块从板卡A的第一时间戳模块接收syn_ack报文,记录syn_ack报文的STT字段,令n=n+1,并构造ack报文(将ack标志位置为1,源端口号和目的端口号对应syn_ack报文中的目的端口号和源端口号,长度是该ack报文头的长度,校验和存放校验码。STT赋值为0,序号字段是syn_ack报文的序号字段值+该报文的字节数,确认号为syn_ack报文的序号字段+1,其他标志位和选项置0,数据字段也置0)发送给板卡A的仲裁模块,完成第二次握手。
2.4发送端与接收端进行第三次握手,方法是:
2.4.1板卡A的仲裁模块从板卡A的分类检测模块接收ack报文,发送ack报文给板卡A的速率控制模块;
2.4.2板卡A的速率控制模块将ack报文发送给板卡A的发送控制模块,此时速率控制模块只是转发该ack报文,不做其他处理;
2.4.3板卡A的发送控制模块从速率控制模块接收ack报文,将ack报文发送给板卡A的第二时间戳模块,同时复制一份相同的ack报文发送给板卡A的重传模块;
2.4.4板卡A的第二时间戳模块从板卡A的发送控制模块接收ack报文,将ack报文送给板卡A的高速控制器;
2.4.5板卡A的高速接口控制器将ack报文发送给交换平面的TOR交换机,并令num=num+1;
2.4.6交换平面的TOR交换机将ack报文转发到板卡B的高速接口控制器;
2.4.7板卡B的高速接口控制器从交换平面的交换机接收ack报文,将ack报文送给板卡B的第一时间戳模块;
2.4.8板卡B的第一时间戳模块从高速接口控制器接收ack报文,将ack报文发送给分类检测模块;
2.4.9板卡B的分类检测模块从板卡B的第一时间戳模块接收ack报文,将ack报文发送给板卡B的仲裁模块,完成第三次握手,此时发送端与接收端通信连接建立。
第三步,发送端与接收端进行端对端数据传输,方法是:
3.2发送端的计算机终端A发送第num个报文给板卡A的发送缓存模块;
3.3板卡A的发送缓存模块从计算机终端A接收并存储第num个报文;
3.4板卡A的发送控制模块从板卡A的发送缓存模块读取第num个报文,若该报文是数据报文,转3.5,若该报文是fin报文,转第四步。
3.5板卡A的发送控制模块将读取的第num个数据报文发送到板卡A的第二时间戳模块;
3.6板卡A的第二时间戳模块从板卡A的发送控制模块接收第num个数据报文,对第num个数据报文打上发送端发送第num个数据报文的时间戳tnum,1,并将已打tnum,1的数据报文发送到板卡A的高速接口控制器;
3.7板卡A的高速接口控制器从板卡A的第二时间戳模块接收已打tnum,1的数据报文,将已打tnum,1的数据报文按照速率vnm发送到交换平面的交换机;
3.8交换平面的交换机从板卡A的高速接口控制器接收已打tnum,1的数据报文,将已打tnum,1的数据报文转发到板卡B的高速接口控制器;
3.9板卡B的高速接口控制器从交换平面的交换机接收已打tnum,1的数据报文,将该数据报文发送给板卡B的第一时间戳模块;
3.10板卡B的第一时间戳模块接收已打tnum,1的数据报文,记录接收该数据报文的时刻,将该时刻作为接收时间戳tnum,2,将已打tnum,1的数据报文和时间戳tnum,2发送给板卡B的分类检测模块;
3.11板卡B的分类检测模块中的分类模块从板卡B的第一时间戳模块接收时间戳tnum,2和已打tnum,1的数据报文,板卡B的分类检测模块中的计数器对累计接收的数据报文长度进行计数,板卡B的分类检测模块中的定时器对tnum,2和tnum,1的差值进行记录,板卡B的分类检测模块中的检测模块对累计接收的数据报文的报文序序号进行检测,若检测正常,则将数据报文发送给接收缓存模块,具体方法是:
3.11.1分类模块将数据报文长度发送给计数器,将tnum,2传给定时器,同时将数据报文的序号字段发送给检测模块;
3.11.2计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于QKB,转3.11.3;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零,转3.11.6;
3.11.3定时器从分类模块接收tnum,2,记录ttnum,2与tnum,1的差值,若差值超过设定的阈值RTO,则向合法分析模块发送定时器超时的指令,转3.11.5,若差值未超过设定的阈值RTO,转3.11.4;
3.11.4检测模块从分类模块接收数据报文序号,对数据报文序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块,转3.11.5;若检测模块未检测到报文序号乱序,令num=num+1,转3.2。
3.11.5合法分析模块接收报文序号乱序的指令或定时器超时的指令,生成nack报文(将nack标志位置为1,源端口号和目的端口号对应着该数据报文中的目的端口号和源端口号,长度是该nack报文报文头的长度,校验和存放校验码。STT赋值0,序号字段是上一ack或nack报文中的序号字段+该ack或nack报文的字节数,确认号为该乱序或超时数据报文中的序号字段+1,其他标志位和选项置0,数据字段也置0)),并向仲裁模块发送nack报文,转步骤3.13;
3.11.6合法分析模块从计数器接收累计接收的报文长度等于QKB的指令(此时既未从检测模块接收到报文序号乱序的指令,又未从定时器收到超时的指令),合法分析模块分析从分类模块接收报文和该报文的接收时间戳,则计算tnum,2与tnum,1的差值,构造生成ack报文(将ack标志位置为1,源端口号和目的端口号对应着该接收报文中的目的端口号和源端口号,长度是该ack报文报文头的长度,校验和存放校验码。STT赋值为tnum,2与tnum,1的差值,序号字段是上一ack或nack报文的序号字段+该报文的字节数,确认号为该接收报文的序号字段+1,其他标志位和选项置0,数据字段也置0),向板卡B的仲裁模块发送ack报文,并将接收的数据报文发送给板卡B的接收缓存模块,转步骤3.12;
3.12板卡B的接收缓存模块从合法分析模块接收数据报文,将数据报文进行缓存,供计算机终端B读取,转3.13;
3.13板卡B的仲裁模块从板卡B的合法分析模块接收nack报文(见3.11.5)或ack(见3.11.6)报文,将nack报文或ack报文直接转发给板卡B的速率控制模块;
3.14板卡B的速率控制模块从板卡B的仲裁模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的发送控制模块;
3.15板卡B的发送控制模块从板卡B的速率控制模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的第二时间戳模块;
3.16板卡B的第二时间戳模块从板卡B的发送控制模块接收nack报文或ack报文,将接收到的nack报文或ack报文转发给板卡B的高速接口控制器;
3.17板卡B的高速接口控制器从板卡B的第二时间戳模块接收nack报文或ack报文,将nack报文或ack报文发送给交换平面的TOR交换机;
3.18交换平面的TOR交换机从板卡B的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的高速接口控制器;
3.19板卡A的高速接口控制器从交换平面的TOR交换机接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的第一时间戳模块;
3.20板卡A的第一时间戳模块从板卡A的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的分类检测模块;
3.21板卡A的分类检测模块从板卡A的第一时间戳模块接收nack报文或ack报文,由分类模块将nack报文或ack报文直接发送给板卡A的仲裁模块;
3.22板卡A的仲裁模块从板卡A的分类检测模块接收nack报文或ack报文,进行以下处理:
若板卡A的仲裁模块接收到nack报文,则板卡A的仲裁模块提取nack报文中确认号字段中的乱序的报文序号发送给板卡A的重传模块,转步骤3.23;若板卡A的仲裁模块接收到ack报文,则板卡A的仲裁模块将ack报文发送给速率控制模块,转步骤3.24;
3.23板卡A的重传模块根据从仲裁模块接收的乱序的报文序号,令num=乱序的报文序号,从发送缓存模块中复制需要重传的数据报文,将此数据报文发送给板卡A的发送控制模块,转步骤3.24;
3.24若板卡A的速率控制模块从板卡A的仲裁模块接收到接收端返回的报文,更新传输速率vnm,方法为:
3.24.1若板卡A的速率控制模块接收的是nack报文,则将传输速率vnm调整为vnm/2,并向板卡A的发送控制模块发送传输速率vnm,转步骤3.2;
3.24.2若板卡A的速率控制模块接收的是ack报文,令STTn为ack报文中的STT,按以下方法控制传输速率,方法为:
3.24.3.1板卡A的速率控制模块计算单程时延梯度G=STTn-STTn-1;
3.24.3.2将STTn与Tlow和Thigh进行比较,Tlow为数据传输时链路队列(链路即为从发送端到接收端的路径,链路队列即为在该路径中所有结点中等待的队列长度)占有率(即填充数据的队列深度占整个队列长度的比例)为1/32时的单程时延值,Thigh为链路队列占有率为1/8时的单程时延值,Tlow和Thigh是两个常量:
3.24.3.3.1如果STTn小于Tlow,则板卡A的速率控制模块将传输速率在V(n-1)m基础上增加NMbps/s(N与带宽容量相关,N为正整数(N<B),优选200),即调整后的传输速率vnm=V(n-1)m+N,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.2如果STTn大于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率调整为V(n-1)m的3/4,即vnm=(3/4)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.3如果STTn大于Thigh且小于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率调整为V(n-1)m的7/8,即vnm=(7/8)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.4如果STTn值在Tlow与Thigh之间,则根据单程时延梯度变量G进行判断,方法为:
3.24.3.3.4.1若G<0,则板卡A的速率控制模块将传输速率在V(n-1)m基础上增加NMbps/S,即vnm=V(n-1)m+N,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.4.2若G=0,则传输速率不变,即vnm=V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.3.4.3若G>0,则板卡A的速率控制模块将传输速率调整为V(n-1)m的(1-2*G)倍,即vnm=(1-2*G)V(n-1)m;将vnm发送给发送控制模块,转步骤3.25;
3.25板卡A的发送控制模块从速率控制模块接收vnm,发送控制模块根据vnm将报文发送到板卡A的第二时间戳模块,同时发送控制模块复制一份相同的报文发送给板卡A的重传模块,令n=n+1转步骤3.3。
第四步,释放端对端通信连接,方法是:
4.1板卡A的发送控制模块从板卡A的发送缓存模块读取fin报文,将fin报文发送到板卡A的发送模块的第一时间戳模块;
4.2板卡A的第一时间戳模块给fin报文打上发送时间戳tnum,1后将已打tnum,1的fin报文发送给板卡A的高速接口控制器,发送端进入等待释放连接响应的状态。
4.3板卡A的高速接口控制器将已打tnum,1的fin报文发送给交换平面的交换机;
4.4交换平面的交换机将已打tnum,1的fin报文转发至接收端的板卡B的高速接口控制器;
4.5板卡B的高速接口控制器将已打tnum,1的fin报文发送给板卡B的接收模块的第二时间戳模块;
4.6第二时间戳模块不打时间戳,将fin报文转发给合法分析模块。
4.7板卡B的合法分析模块接收到报文后识别出是已打tnum,1的fin报文,构造fin_ack报文(将ack标志位置为1,源端口号和目的端口号对应着fin报文中的目的端口号和源端口号,长度是这个fin_ack报文报文头的长度,校验和存放校验码。STT赋值为0,序号字段是fin报文的确认号字段值,确认号为fin报文的序号字段值+1,其他标志位和选项置0,数据字段也置0)送给板卡B的仲裁模块;
4.8板卡B的仲裁模块接收到fin_ack报文后送给板卡B的发送模块的第二时间戳模块;
4.9板卡B的第二时间戳模块将fin_ack报文送给板卡B的高速接口控制器,此时接收端进入连接关闭状态,此时接收端的连接已经释放;
4.10板卡B的高速接口控制器将fin_ack报文发送给交换平面的交换机;
4.11交换平面的交换机将fin_ack报文送给板卡A的高速接口控制器;
4.12板卡A的高速接口控制器将fin_ack报文送给板卡A的接收模块的第一时间戳模块;
4.13板卡A的第一时间戳模块接收到fin_ack报文后,将fin_ack报文发送给板卡A的分类检测模块;
4.14板卡A的分类检测模块识别到该报文为fin_ack报文后,送给板卡A的仲裁模块;
4.15板卡A的仲裁模块从分类检测模块接收到fin_ack报文,发送端进入到连接关闭状态,此时发送端和接收端的连接都已经释放。
Claims (8)
1.一种面向可重构云架构的可靠端到端通信方法,其特征在于包括以下步骤:
第一步,构建一种面向可重构云架构的可靠端到端通信装置,面向可重构云架构的可靠端到端通信装置由交换平面、可重构平面、传统服务平面三个平面构成,交换平面与可重构平面相连,可重构平面与交换平面和传统服务平面相连,传统服务平台与可重构平面相连;交换平面由多个交换设备组成,交换机设备按照从上到下的拓扑结构为核心层交换机、汇聚层交换机、TOR即柜顶交换机三层,交换平面通过TOR交换机与可重构平面相连;
可重构平面由多个板卡组成,一个板卡仅与一台TOR交换机和一台计算机终端相连,TOR交换机和与其相连的板卡,以及与该板卡相连的计算机终端一一对应;
板卡由高速接口控制器和识别分析模块组成,高速接口控制器负责报文的接收和发送,识别分析模块负责对报文进行识别、分析和进行相应操作;
高速接口控制器完成以太接口的数据接收和发送,与TOR交换机、识别分析模块相连;高速接口控制器一方面从识别分析模块接收syn报文即请求报文、syn_ack报文即请求响应报文、ack报文即数据响应报文、nack报文即乱序或超时响应报文、数据报文、fin报文即释放请求报文和fin_ack报文即释放请求响应报文,将这些报文发送给TOR交换机,另一方面从TOR交换机接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,将这些报文发送给识别分析模块;
识别分析模块与计算机终端、高速接口控制器相连;识别分析模块一方面从计算机终端获取数据块,将这些数据块封装成数据帧,将数据帧发送到高速接口控制器,另一方面从高速接口控制器接收syn报文、syn_ack报文、ack报文、nack报文、数据报文、fin报文、fin_ack报文,对这些报文进行识别、分析、解封装,得到数据报文,将数据报文传输到计算机终端;
识别分析模块由接收模块和发送模块组成,接收模块由第一时间戳模块、分类检测模块和接收缓存模块组成,发送模块由发送缓存模块、发送控制模块、重传模块、第二时间戳模块、仲裁模块和速率控制模块组成;
计算机终端和板卡既可以作为发送端,也可以是接收端;将需要向外发送报文的计算机终端定义为发送端,与其相连的板卡定义为发送端板卡,将需要从外部接收报文的计算机终端定义为接收端,与其相连的板卡定义为接收端板卡;为了描述方便,将发送端中的计算机终端命名为计算机终端A,将对应的板卡命名为板卡A;将接收端中的计算机终端命名为计算机终端B,将对应的板卡命名为板卡B;
第一时间戳模块与高速接口控制器、分类检测模块相连;板卡A的第一时间戳模块只用于转发通过它的报文,对接收的报文不打时间戳,板卡B的第一时间戳模块记录报文的接收时刻并将该接收时刻作为接收时间戳,将报文和接收时间戳转发给分类检测模块;板卡A的第一时间戳模块从高速接口控制器中接收syn_ack报文、ack报文、nack报文、fin_ack报文,将这些报文发送给分类检测模块;板卡B的第一时间戳模块从高速接口控制器接收syn报文、ack报文、数据报文、fin报文,分别记录这些报文的接收时刻作为接收时间戳,并将接收时间戳发送给分类检测模块;各种报文的数据结构相同,各种报文均由报文头和数据两部分组成,报文头包括源端口号、目的端口号、长度、校验和、STT即单程时延、序号、确认号、syn标识位、fin标识位、ack标识位、nack标识位、选项这些字段,数据只有数据报文才有内容,其它报文的数据部分均为空;源端口号在需要对方回信时选用,不需要时用全0;目的端口号在终点交付报文时使用;长度指数据和报文头的长度;校验和存放校验码,是用来保证数据的完整性和准确性的字段;STT:在发送端发送数据时,该字段存储该报文的发送时间戳,在接收端返回ack报文时,该字段存储的是单程时延;序号指本报文所发送的数据的第一个字节的序号;确认号:ACK标志位为1时有效,上次成功收到的数据字节序号+1;syn标识位:syn标志位置1时表示这是一个syn报文,带有syn标志的报文表示发送端请求连接到接收端;fin标识位:当fin标识位置1时表明此报文是fin报文,收到此报文的接收端被要求释放连接资源;ack标识位:当ack标识位置1时确认号字段有效,代表这个报文为ack报文,当ack标识位为0时,表示不是ack报文;nack标识位:当nack标识位置1时确认号字段有效,代表这个报文为nack报文,当nack标识位为0时,表示不是nack报文;选项:默认全置为0,保留为以后使用;
分类检测模块与第一时间戳模块、接收缓存模块和发送模块中的仲裁模块相连,分类检测模块由分类模块、定时器、计数器、检测模块和合法分析模块组成;
分类模块与第一时间戳模块相连;板卡B的分类模块从第一时间戳模块接收报文,并对报文进行识别:若报文首部的syn标志位为1且ack标志位不为1,则分类模块识别出是syn报文,构造syn_ack报文发送到仲裁模块;若报文首部的fin标志位为1且ack标志位不为1,则分类模块识别出是fin报文,构造fin_ack报文发送到仲裁模块,并将fin报文的接收时间戳传递给合法分析模块;板卡A的分类模块从第一时间戳模块接收报文,若报文首部的syn与ack标志位都为1则分类模块识别出该报文是syn_ack报文;若报文首部的fin与ack标志位都为1则分类模块识别出该报文是fin_ack报文;若报文首部仅ack标志位为1,则分类模块识别出该报文是ack报文;若报文首部仅nack标志位为1,则分类模块识别出该报文nack报文,识别出来后直接将该报文发送给仲裁模块;若该报文首部的syn、ack、fin和nack标志位均为0,则分类模块识别出该报文为数据报文,将数据报文长度发送给计数器,记录该报文的接收时刻作为接收时间戳,并将接收时间戳发送给定时器,将该报文中序号字段发送给检测模块,将该报文传递给合法分析模块;
计数器与分类模块、合法分析模块相连,计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于QKB,则计数器继续计数;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零;
定时器与分类模块、合法分析模块相连,定时器从分类模块接收第num个报文的接收时间戳c和第num+1个报文的接收时间戳tnum+1,2,计算两个时间戳的时间间隔,将此时间间隔赋给定时器,当定时器的值超过超时阈值RTO时向合法分析模块发送定时器超时的指令;num为报文的顺序号,为大于等于0的整数,tnum,1为第num个报文的发送时间戳,c为第num个报文的接收时间戳;
检测模块与分类模块、合法分析模块相连,检测模块从分类模块接收报文序号字段,对累计接收的报文的序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块;
合法分析模块与计数器、定时器、检测模块、分类模块,接收缓存模块相连,若合法分析模块接收到报文序号乱序的指令或定时器超时的指令,则生成nack报文,向仲裁模块发送nack报文;若合法分析模块既未接收到报文序号乱序的指令,又未收到定时器超时的指令,且从计数器收到报文长度等于QKB的指令,则从分类模块获取报文及该报文的接收时间戳,将报文中的数据发送给接收缓存模块,之后合法分析模块根据报文的接收时间戳和报文中自带的发送时间戳计算STT,构造ack报文,将ack报文提交给仲裁模块,STT=报文的接收时间戳-报文中的发送时间戳;
接收缓存模块与分类检测模块、计算机终端相连,接收缓存模块将从分类检测模块中的合法分析模块接收的数据进行缓存,供计算机终端读取;
第二时间戳模块与仲裁模块、发送控制模块和高速接口控制器相连,板卡A的第二时间戳模块给通过它的报文打上发送时间戳后再转发,板卡B的第二时间戳模块只对通过报文进行转发,不打时间戳;板卡A的第二时间戳模块从发送控制模块接收报文:当板卡A的第二时间戳模块从发送控制模块接收到syn报文或数据报文,记录syn报文或数据报文的接收时间,将该接收时间作为接收时间戳,将syn报文或数据报文及它们的接收时间戳输出到高速接口控制器;板卡B的第二时间戳模块从仲裁模块接收syn_ack报文、fin_ack报文、ack报文、fin报文,将这些报文输出到高速接口控制器;
仲裁模块与分类检测模块、速率控制模块、第二时间戳模块、重传模块相连;板卡B的仲裁模块只对通过它的报文进行转发,板卡A的仲裁模块对通过它的报文要进行仲裁,根据仲裁结果进行转发;板卡B的仲裁模块从分类检测模块接收报文,并根据报文的类别将报文进行分发:当板卡B的仲裁模块从分类检测模块接收的报文为syn_ack报文或fin_ack报文,则将syn_ack报文或fin_ack报文发送给第二时间戳模块;当板卡B的仲裁模块从分类检测模块接收的报文为nack报文或ack报文,则仲裁模块将nack报文或ack报文发送给速率控制模块;板卡A的仲裁模块从分类检测模块接收报文,对报文进行仲裁,根据仲裁结果进行转发:当板卡A的仲裁模块从分类检测模块接收的报文为nack报文,则将nack报文发送给速率控制模块,并提取nack报文中的序号即需要重传的报文序号,将需要重传的报文序号发送给重传模块;当板卡A的仲裁模块从分类检测模块接收的报文为ack报文,则直接将ack报文发送给速率控制模块;
速率控制模块与仲裁模块、发送控制模块相连;板卡B的速率控制模块只对通过它的报文进行转发,不进行速率重置;板卡A的速率控制模块在发送端与接收端通信连接建立成功时设置初始传输速率v0m,若从仲裁模块接收的是nack报文,则将数据报文传输速率重置为当前传输速率的一半;若板卡A的速率控制模块接收的是ack报文,则根据ack报文中的STT调整传输速率,将调整后的传输速率发送给发送控制模块;
发送控制模块与发送缓存模块、速率控制模块、重传模块和第二时间戳模块相连;发送控制模块从速率控制模块接收数据报文发送时间间隔,根据数据报文发送间隔控制相邻数据报文的发送时间间隔,并将该数据报文发送给第二时间戳模块,同时,发送控制模块复制一份相同的数据报文发送给重传模块;
发送缓存模块与计算机终端、发送控制模块相连;发送缓存模块从计算机终端A接收syn报文、数据报文、fin报文,对它们进行缓存,供发送控制模块读取;
重传模块与发送控制模块、仲裁模块相连,该模块接收从发送控制模块发来的报文,并对报文进行缓存,当从仲裁模块接收到需要重传的报文序号时,将该报文序号对应的需要重传的报文送给发送控制模块;
第二步,发送端与接收端建立通信连接,完成三次握手过程,以传输第m条流,m为正整数,具体方法为:
2.1初始化报文序号num为0,初始化STT的顺序号n为0,初始化二维数组V=[vnm]为空,vnm为传输第m条流时第n次接收ack后调整的报文传输速率;
2.2发送端与接收端进行第一次握手,方法是:
2.2.1发送端的计算机终端A发送syn报文给板卡A的发送缓存模块;
2.2.2板卡A的发送缓存模块从计算机终端A接收并存储syn报文;
2.2.3板卡A的发送控制模块从发送缓存模块读取syn报文,将syn报文发送到板卡A的第二时间戳模块;
2.2.4板卡A的第二时间戳模块从发送控制模块接收syn报文,将syn报文的STT字段赋值为发送端发送初始报文的时间,此时STT字段即为发送时间戳t0,1,此过程也称为给syn报文打时间戳t0,1,并将打了t0,1的syn报文发送到板卡A的高速接口控制器;
2.2.5板卡A的高速接口控制器从板卡A的第二时间戳模块接收打了t0,1的syn报文,将此syn报文发送到交换平面的TOR交换机,并令num=num+1;
2.2.6交换平面的TOR交换机从板卡A的高速接口控制器接收打了t0,1的syn报文,将此打了t0,1的syn报文转发到板卡B的高速接口控制器,此时接收端进入请求报文发送状态即SYN_SENT状态;
2.2.7接收端的高速接口控制器从交换平面的交换机接收打了t0,1的syn报文,将打了t0,1的syn报文发送给板卡B的第一时间戳模块;
2.2.8板卡B的第一时间戳模块从板卡B的高速接口控制器接收打了t0,1的syn报文,记录接收该syn报文的时间作为接收端接收初始报文的时间戳t0,2,将t0,2和syn报文送给板卡B的分类检测模块;
2.2.9板卡B的分类检测模块从板卡B的第一时间戳模块接收t0,2和syn报文,构造syn_ack报文并发送给板卡B的仲裁模块,完成第一次握手,并令STTn为syn_ack报文中的STT;构造syn_ack报文的方法是:将syn标识位和ack标志位都置1,源端口号和目的端口号对应着syn报文中的目的端口号和源端口号;长度是该syn_ack报文头的长度,校验和存放校验码,STT赋值为t0,2-t0,1,序号字段是随机产生,确认号为syn报文中的序号+1,其他标志位和选项置0,数据字段也置0;
2.3接收端与发送端进行第二次握手,方法是:
2.3.1板卡B的仲裁模块从板卡B的分类检测模块接收syn_ack报文,将syn_ack报文发送给板卡B的第二时间戳模块;
2.3.2板卡B的第二时间戳模块从板卡B的仲裁模块接收syn_ack报文,将syn_ack报文发送给板卡B的高速接口控制器;
2.3.3板卡B的高速接口控制器从板卡B的第二时间戳模块接收syn_ack报文,将syn_ack报文发送到交换平面的TOR交换机;
2.3.4交换平面的TOR交换机将syn_ack报文转发给板卡A的高速接口控制器,此时接收端进入请求报文接收状态即SYN_RECV状态;
2.3.5板卡A的高速接口控制器从交换平面的TOR交换机接收syn_ack报文,并将syn_ack报文送给板卡A的第一时间戳模块;
2.3.6板卡A的第一时间戳模块从板卡A的高速接口控制器中接收syn_ack报文,将syn_ack报文发送给板卡A的分类检测模块;
2.3.7板卡A的分类检测模块从板卡A的第一时间戳模块接收syn_ack报文,记录syn_ack报文的STT字段,令n=n+1,并构造ack报文发送给板卡A的仲裁模块,完成第二次握手;构造ack报文的方法是:将ack标志位置为1,源端口号和目的端口号对应syn_ack报文中的目的端口号和源端口号,长度是该ack报文头的长度,校验和存放校验码,STT赋值为0,序号字段是syn_ack报文的序号字段值+该报文的字节数,确认号为syn_ack报文的序号字段+1,其他标志位和选项置0,数据字段也置0;
2.4发送端与接收端进行第三次握手,方法是:
2.4.1板卡A的仲裁模块从板卡A的分类检测模块接收ack报文,发送ack报文给板卡A的速率控制模块;
2.4.2板卡A的速率控制模块将ack报文发送给板卡A的发送控制模块;
2.4.3板卡A的发送控制模块从速率控制模块接收ack报文,将ack报文发送给板卡A的第二时间戳模块,同时复制一份相同的ack报文发送给板卡A的重传模块;
2.4.4板卡A的第二时间戳模块从板卡A的发送控制模块接收ack报文,将ack报文送给板卡A的高速控制器;
2.4.5板卡A的高速接口控制器将ack报文发送给交换平面的TOR交换机,并令num=num+1;
2.4.6交换平面的TOR交换机将ack报文转发到板卡B的高速接口控制器;
2.4.7板卡B的高速接口控制器从交换平面的交换机接收ack报文,将ack报文送给板卡B的第一时间戳模块;
2.4.8板卡B的第一时间戳模块从高速接口控制器接收ack报文,将ack报文发送给分类检测模块;
2.4.9板卡B的分类检测模块从板卡B的第一时间戳模块接收ack报文,将ack报文发送给板卡B的仲裁模块,完成第三次握手,此时发送端与接收端通信连接建立;
第三步,发送端与接收端进行端对端数据传输,方法是:
3.2发送端的计算机终端A发送第num个报文给板卡A的发送缓存模块,此时的报文是数据报文或fin报文;
3.3板卡A的发送缓存模块从计算机终端A接收并存储第num个报文;
3.4板卡A的发送控制模块从板卡A的发送缓存模块读取第num个报文,若该报文是数据报文,转3.5,若该报文是fin报文,转第四步;
3.5板卡A的发送控制模块将读取的第num个数据报文发送到板卡A的第二时间戳模块;
3.6板卡A的第二时间戳模块从板卡A的发送控制模块接收第num个数据报文,对第num个数据报文打上发送端发送第num个数据报文的时间戳tnum,1,并将已打tnum,1的数据报文发送到板卡A的高速接口控制器;
3.7板卡A的高速接口控制器从板卡A的第二时间戳模块接收已打tnum,1的数据报文,将已打tnum,1的数据报文按照速率vnm发送到交换平面的交换机;
3.8交换平面的交换机从板卡A的高速接口控制器接收已打tnum,1的数据报文,将已打tnum,1的数据报文转发到板卡B的高速接口控制器;
3.9板卡B的高速接口控制器从交换平面的交换机接收已打tnum,1的数据报文,将该数据报文发送给板卡B的第一时间戳模块;
3.10板卡B的第一时间戳模块接收已打tnum,1的数据报文,记录接收该数据报文的时刻,将该时刻作为接收时间戳tnum,2,将已打tnum,1的数据报文和时间戳tnum,2发送给板卡B的分类检测模块;
3.11板卡B的分类检测模块中的分类模块从板卡B的第一时间戳模块接收时间戳tnum,2和已打tnum,1的数据报文,板卡B的分类检测模块中的计数器对累计接收的数据报文长度进行计数,板卡B的分类检测模块中的定时器对tnum,2和tnum,1的差值进行记录,板卡B的分类检测模块中的检测模块对累计接收的数据报文的报文序号进行检测,若检测正常,则将数据报文发送给接收缓存模块,具体方法是:
3.11.1分类模块将数据报文长度发送给计数器,将tnum,2传给定时器,同时将数据报文的序号字段发送给检测模块;
3.11.2计数器从分类模块接收数据报文长度,计算累计接收的报文长度,若累计接收的报文长度小于Q KB,转3.11.3;若累计接收的报文长度等于QKB,则计数器向合法分析模块发送累计接收的报文长度等于QKB的指令,计数器数据清零,转3.11.6;
3.11.3定时器从分类模块接收tnum,2,记录tnum,2与tnum,1的差值,若差值超过设定的阈值RTO,则向合法分析模块发送定时器超时的指令,转3.11.5,若差值未超过设定的阈值RTO,转3.11.4;
3.11.4检测模块从分类模块接收数据报文序号,对数据报文序号进行检测,若检测模块检测到报文序号乱序,则将报文序号乱序的指令发送给合法分析模块,转3.11.5;若检测模块未检测到报文序号乱序,令num=num+1,转3.2;
3.11.5合法分析模块接收报文序号乱序的指令或定时器超时的指令,生成nack报文,并向仲裁模块发送nack报文,生成nack报文的方法是:将nack标志位置为1,源端口号和目的端口号对应着该数据报文中的目的端口号和源端口号,长度是该nack报文报文头的长度,校验和存放校验码,STT赋值0,序号字段是上一ack或nack报文中的序号字段+该ack或nack报文的字节数,确认号为该乱序或超时数据报文中的序号字段+1,其他标志位和选项置0,数据字段也置0;转步骤3.13;
3.11.6合法分析模块从计数器接收累计接收的报文长度等于QKB的指令,合法分析模块分析从分类模块接收报文和该报文的接收时间戳,则计算tnum,2与tnum,1的差值,构造生成ack报文,向板卡B的仲裁模块发送ack报文,并将接收的数据报文发送给板卡B的接收缓存模块,构造ack报文的方法是:将ack标志位置为1,源端口号和目的端口号对应着接收报文中的目的端口号和源端口号,长度是该ack报文报文头的长度,校验和存放校验码;STT赋值为tnum,2与tnum,1的差值,序号字段是上一ack或nack报文的序号字段+该报文的字节数,确认号为接收报文的序号字段+1,其他标志位和选项置0,数据字段也置0;转步骤3.12;
3.12板卡B的接收缓存模块从合法分析模块接收数据报文,将数据报文进行缓存,供计算机终端B读取,转3.13;
3.13板卡B的仲裁模块从板卡B的合法分析模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的速率控制模块;
3.14板卡B的速率控制模块从板卡B的仲裁模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的发送控制模块;
3.15板卡B的发送控制模块从板卡B的速率控制模块接收nack报文或ack报文,将nack报文或ack报文直接转发给板卡B的第二时间戳模块;
3.16板卡B的第二时间戳模块从板卡B的发送控制模块接收nack报文或ack报文,将接收到的nack报文或ack报文转发给板卡B的高速接口控制器;
3.17板卡B的高速接口控制器从板卡B的第二时间戳模块接收nack报文或ack报文,将nack报文或ack报文发送给交换平面的TOR交换机;
3.18交换平面的TOR交换机从板卡B的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的高速接口控制器;
3.19板卡A的高速接口控制器从交换平面的TOR交换机接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的第一时间戳模块;
3.20板卡A的第一时间戳模块从板卡A的高速接口控制器接收nack报文或ack报文,将nack报文或ack报文发送给板卡A的分类检测模块;
3.21板卡A的分类检测模块从板卡A的第一时间戳模块接收nack报文或ack报文,由分类模块将nack报文或ack报文直接发送给板卡A的仲裁模块;
3.22板卡A的仲裁模块从板卡A的分类检测模块接收nack报文或ack报文,进行以下处理:
若板卡A的仲裁模块接收到nack报文,则板卡A的仲裁模块提取nack报文中确认号字段中的乱序的报文序号发送给板卡A的重传模块,转步骤3.23;若板卡A的仲裁模块接收到ack报文,则板卡A的仲裁模块将ack报文发送给速率控制模块,转步骤3.24;
3.23板卡A的重传模块根据从仲裁模块接收的乱序的报文序号,令num=乱序的报文num,从发送缓存模块中复制需要重传的数据报文,将此数据报文发送给板卡A的发送控制模块,转步骤3.24;
3.24若板卡A的速率控制模块从板卡A的仲裁模块接收到接收端返回的报文,更新传输速率vnm,方法为:
3.24.1若板卡A的速率控制模块接收的是nack报文,则将传输速率vnm调整为vnm/2,并向板卡A的发送控制模块发送传输速率vnm,转步骤3.2;
3.24.2若板卡A的速率控制模块接收的是ack报文,令STTn为ack报文中的STT,按以下方法控制传输速率,方法为:
3.24.3.1板卡A的速率控制模块计算单程时延梯度G=STTn-STTn-1;
3.24.3.2将STTn与Tlow和Thigh进行比较,Tlow为数据传输时链路队列占有率为1/32时的单程时延值,Thigh为链路队列占有率为1/8时的单程时延值,Tlow和Thigh是两个常量:
3.24.3.2.1如果STTn小于Tlow,则板卡A的速率控制模块将传输速率vnm调整为vnm=V(n-1)m+N,N为正整数且N<B,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.2如果STTn大于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率vnm调整为vnm=(3/4)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.3如果STTn大于Thigh且小于(1+1/32)倍的Thigh,则板卡A的速率控制模块将传输速率vnm调整为vnm=(7/8)V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.4如果STTn值在Tlow与Thigh之间,则根据单程时延梯度变量G进行判断,方法为:
3.24.3.2.4.1若G<0,则板卡A的速率控制模块将传输速率vnm调整为vnm=V(n-1)m+N,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.4.2若G=0,则传输速率不变,即vnm=V(n-1)m,将vnm发送给发送控制模块,转步骤3.25;
3.24.3.2.4.3若G>0,则板卡A的速率控制模块将传输速率vnm调整为vnm=(1-2*G)V(n-1)m;将vnm发送给发送控制模块,转步骤3.25;
3.25板卡A的发送控制模块从速率控制模块接收vnm,发送控制模块根据vnm将报文发送到板卡A的第二时间戳模块,同时发送控制模块复制一份相同的报文发送给板卡A的重传模块,令n=n+1,转步骤3.3;
第四步,释放端对端通信连接,方法是:
4.1板卡A的发送控制模块从板卡A的发送缓存模块读取fin报文,将fin报文发送到板卡A的发送模块的第一时间戳模块;
4.2板卡A的第一时间戳模块给fin报文打上发送时间戳tnum,1后将已打tnum,1的fin报文发送给板卡A的高速接口控制器,发送端进入等待释放连接响应的状态;
4.3板卡A的高速接口控制器将已打tnum,1的fin报文发送给交换平面的交换机;
4.4交换平面的交换机将已打tnum,1的fin报文转发至接收端的板卡B的高速接口控制器;
4.5板卡B的高速接口控制器将已打tnum,1的fin报文发送给板卡B的接收模块的第二时间戳模块;
4.6第二时间戳模块不打时间戳,将fin报文转发给合法分析模块;
4.7板卡B的合法分析模块接收到报文后识别出是已打tnum,1的fin报文,构造fin_ack报文送给板卡B的仲裁模块,构造fin_ack报文的方法是:将ack标志位置为1,源端口号和目的端口号对应fin报文中的目的端口号和源端口号,长度是这个fin_ack报文报文头的长度,校验和存放校验码,STT赋值为0,序号字段是fin报文的确认号字段值,确认号为fin报文的序号字段值+1,其他标志位和选项置0,数据字段也置0;
4.8板卡B的仲裁模块接收到fin_ack报文后送给板卡B的发送模块的第二时间戳模块;
4.9板卡B的第二时间戳模块将fin_ack报文送给板卡B的高速接口控制器,此时接收端进入连接关闭状态,此时接收端的连接已经释放;
4.10板卡B的高速接口控制器将fin_ack报文发送给交换平面的交换机;
4.11交换平面的交换机将fin_ack报文送给板卡A的高速接口控制器;
4.12板卡A的高速接口控制器将fin_ack报文送给板卡A的接收模块的第一时间戳模块;
4.13板卡A的第一时间戳模块接收到fin_ack报文后,将fin_ack报文发送给板卡A的分类检测模块;
4.14板卡A的分类检测模块识别到该报文为fin_ack报文后,送给板卡A的仲裁模块;
4.15板卡A的仲裁模块从分类检测模块接收到fin_ack报文,发送端进入到连接关闭状态,此时发送端和接收端的连接都已经释放。
2.如权利要求1所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于所述高速接口控制器集成在FPGA中,按照标准10GBASE-R接口规范完成以太接口的数据接收和发送。
3.如权利要求1所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于所述报文中的校验和存放的校验码生成方法是:首先将报文分成若干个16位的二进制数,对这些16位的二进制数进行1的补码和运算,累加的结果再取反码即生成了检验码。
4.如权利要求1所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于所述Q为2的q次幂,q为正整数,q>3。
5.如权利要求1所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于所述Q为64。
7.如权利要求6所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于所述a设置为1/8,b设置为1/4。
8.如权利要求1所述的一种面向可重构云架构的可靠端到端通信方法,其特征在于3.24.3.2.1步中的N为200。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810433931.9A CN110460547B (zh) | 2018-05-08 | 2018-05-08 | 一种面向可重构云架构的可靠端到端通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810433931.9A CN110460547B (zh) | 2018-05-08 | 2018-05-08 | 一种面向可重构云架构的可靠端到端通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110460547A CN110460547A (zh) | 2019-11-15 |
CN110460547B true CN110460547B (zh) | 2021-04-16 |
Family
ID=68480281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810433931.9A Expired - Fee Related CN110460547B (zh) | 2018-05-08 | 2018-05-08 | 一种面向可重构云架构的可靠端到端通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110460547B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558872B1 (en) * | 2002-01-31 | 2009-07-07 | Force10 Networks, Inc. | Point-to-point protocol flow control extension |
CN102833332A (zh) * | 2012-08-23 | 2012-12-19 | 武汉烽火网络有限责任公司 | 一种分布式多对多设备通信和管理方法 |
-
2018
- 2018-05-08 CN CN201810433931.9A patent/CN110460547B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558872B1 (en) * | 2002-01-31 | 2009-07-07 | Force10 Networks, Inc. | Point-to-point protocol flow control extension |
CN102833332A (zh) * | 2012-08-23 | 2012-12-19 | 武汉烽火网络有限责任公司 | 一种分布式多对多设备通信和管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110460547A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mittal et al. | Revisiting network support for RDMA | |
Lu et al. | {Multi-Path} transport for {RDMA} in datacenters | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
KR101727874B1 (ko) | 고성능 패브릭 내에서의 qos를 위한 방법, 장치 및 시스템 | |
JP5270901B2 (ja) | ネットワーク試験装置及び方法 | |
EP2003823B1 (en) | Autonegotiation over an interface for which no autonegotiation standard exists | |
US10320677B2 (en) | Flow control and congestion management for acceleration components configured to accelerate a service | |
US8949578B2 (en) | Sharing of internal pipeline resources of a network processor with external devices | |
CN108881008A (zh) | 一种数据传输的方法、装置和系统 | |
JPH11187051A (ja) | 媒体アクセスコントローラからのパケットデータを伝送するための方法および装置 | |
CN1659833A (zh) | 用于确定光纤信道结构中路由特征的方法和装置 | |
CN110121868B (zh) | 通过被配置为加速服务的加速组件的消息传输 | |
Shukla et al. | TCP PLATO: Packet labelling to alleviate time-out | |
CN113472697A (zh) | 网络信息传输系统 | |
CN110868359A (zh) | 一种网络拥塞控制方法 | |
Liu et al. | NetReduce: RDMA-compatible in-network reduction for distributed DNN training acceleration | |
CN103812797A (zh) | 传输数据分组的方法及发送和接收数据分组的通信模块 | |
Hu et al. | AMRT: Anti-ECN marking to improve utilization of receiver-driven transmission in data center | |
CN110460547B (zh) | 一种面向可重构云架构的可靠端到端通信方法 | |
Yan et al. | An enhanced congestion control mechanism in infiniband networks for high performance computing systems | |
Wang et al. | An Optimized RDMA QP Communication Mechanism for Hyperscale AI Infrastructure | |
Lee et al. | An analysis of the performance of TCP over IEEE 1394 home networks | |
Pakulova et al. | Simulation of priority multi-path data transmission in the AnyLogic environment | |
EP3386166A1 (en) | Technique for managing communications at a router | |
Kiss et al. | Network coding-based congestion control at network layer: Protocol design and evaluation |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210416 |
|
CF01 | Termination of patent right due to non-payment of annual fee |