CN110753123A - 一种面向连接的命名数据网络数据传输方法 - Google Patents
一种面向连接的命名数据网络数据传输方法 Download PDFInfo
- Publication number
- CN110753123A CN110753123A CN201911029796.2A CN201911029796A CN110753123A CN 110753123 A CN110753123 A CN 110753123A CN 201911029796 A CN201911029796 A CN 201911029796A CN 110753123 A CN110753123 A CN 110753123A
- Authority
- CN
- China
- Prior art keywords
- data
- consumer
- packet
- producer
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种面向连接的数据传输方法,属于网络数据传输技术领域。包括消费者A及生产者B创建套接字;消费者A发送连接请求兴趣包,生产者B持续接收并连接请求数据包回复;生产者B发送连接确认兴趣包,消费者A持续接收并连接确认数据包回复;消费者A发送询问兴趣包,生产者B回复告知数据包;消费者A发送数据请求兴趣包,生产者B回复数据内容数据包;消费者A发送释放兴趣包,生产者B回复并发送释放兴趣包,消费者A回复释放数据包;生产者B定期发送检测兴趣包及消费者A回复;消费者A定期发送检测兴趣包,生产者B回复检测数据包及消费者A与生产者B定期检测重传计时器并重发。所述方法实现了数据的可靠传输。
Description
技术领域
本发明涉及一种面向连接的数据传输方法,尤其涉及一种面向连接的命名数据网络(Named DataNetworking,NDN)数据传输方法,属于计算机网络数据传输技术领域。
背景技术
命名数据网络NDN是一种以命名数据为主要通信对象的网络体系。在NDN中,通过对数据内容进行命名,并根据数据包的内容名称信息进行通信,改变了目前网络基于IP地址的通信方式,实现了数据内容和主机地址的分离,其鲁棒性和扩展性相对于TCP/IP网络更优。NDN中的通信由内容请求者驱动,即内容请求者需要首先发送数据内容请求,内容发布者再根据数据内容请求将相应的数据内容回复给数据内容请求者。并且,在NDN中,数据内容发布者被称为生产者,数据内容请求者被称为消费者。NDN中包含两种格式的包,分别是兴趣包(InterestPacket)和数据包(DataPacket),其中兴趣包是消费者即数据内容请求者为请求数据内容而发送的包含所需内容名称的请求包,数据包是生产者即内容发布者为响应兴趣包而回复的,包含消费者所请求的数据内容的包,并且数据包的名称与相应兴趣包的内容名称相同。兴趣包由内容名称(ContentName)、选择器(Selector)、现时标记(Nonce)三部分组成,数据包由内容名称、签名(Signature)、加密信息(SignedInformation)、数据(Data)四部分组成。
NDN的包不携带目的地址信息,所有包均被NDN路由器以逐跳转发的方式进行处理。每个NDN路由器包含三种表结构,分别是转发信息表FIB(Forwarding InformationBase)、待定请求表PIT(PendingInterestTable)和内容存储表CS(ContentStore)。FIB表记录的是相应内容名称的兴趣包可以被转发的“下游”(Down Stream)接口集合,用来将兴趣包转发到匹配的下一接口,如果没有匹配接口,则这个兴趣包将被丢弃。PIT表存储的是已经被当前结点转发出去的兴趣包的内容名称和来自哪个接口,便于收到数据包后,按照兴趣包转发的反向路径将数据包回复给内容请求者。CS中存储的是内容发布者发送而来的数据,在数据包的转发过程中,沿途路由器将收到的数据包缓存在其CS中,则其他消费者请求同名的数据内容时可以直接从该CS中获取所请求的数据,而无需转发所请求的兴趣包到内容发布者。
目前NDN网络中只支持请求、应答的数据交互模式,缺乏面向连接的服务方式。面向连接服务提供按顺序、保证传输质量的、可恢复错误和流量控制的可靠的连接。而IP电话、交互视频等大多数业务所需的正是这种按需递交的、可靠的服务。
综上所述,目前NDN中缺少一种面向连接的数据传输机制,以便于对数据进行端到端的控制,提高数据传输的可靠性,来适应多种业务的需求。
发明内容
本发明的目的在于进一步提高NDN网络中面向连接数据传输的可靠性,由此提出了一种面向连接的命名数据网络数据传输方法。
本发明的技术方案包括数据传输操作及数据传输异常操作;其中,前者包括:(a)消费者A及生产者B分别创建各自的套接字;
(b)消费者A发送连接请求兴趣包,生产者B持续接收,直至收到并以连接请求数据包回复;
(c)生产者B发送连接确认兴趣包,消费者A持续接收,直至收到并以连接确认数据包回复;
(d)消费者A发送询问兴趣包,以及生产者B回复告知数据包;
(e)消费者A发送数据请求兴趣包以及生产者B回复数据内容数据包;
(f)消费者A发送释放兴趣包以及生产者B回复释放数据包以及
(g)生产者B发送释放兴趣包以及消费者A回复释放数据包。
后者包括:
(i)生产者B定期发送检测兴趣包以及消费者A回复检测数据包;
(ii)消费者A定期发送检测兴趣包以及生产者B回复检测数据包以及
(iii)消费者A与生产者B定期检测重传计时器是否到时并进行重发。
所述面向连接的命名数据网络数据传输方法,包括以下步骤:
步骤1、消费者A及生产者B分别创建各自的套接字,包括如下子步骤:
1.1生产者B选定其与消费者进行交互的端口b,并创建代表交互端点的套接字(B,b),再在端口b上监听;
1.2消费者A选定其与生产者进行交互的端口a,并创建代表交互端点的套接字(A,a),再在端口a上监听;
其中,消费者和生产者的名称是由“字母、数字、特殊符号”组成的字符串;a是消费者端口号,a的取值范围是1~9999;b是生产者端口号,b的取值范围是1~9999;
步骤2、消费者A发送连接请求兴趣包,生产者B持续接收,直至收到并回复该连接请求数据包,包括如下子步骤:
步骤2.1消费者A发送内容名称为“TCP/B/b/A/a/t/x/”的连接请求兴趣包,记录该兴趣包发送时间为t1,设置估计的平均往返时间SRTT_a初值为一适值,设置超时重传时间RTO_a初值,并使RTO_a的值略大于SRTT_a,设置重传定时器T1=RTO_a并开始计时,设置消费者A检测到的往返时间变化RTTVAR初值为(RTO_a-SRTT_a)/4;
其中,内容名称“TCP/B/b/A/a/t/x/”中的“TCP”代表了该包是一个与面向连接操作相关的兴趣包;“t”代表该兴趣包用于建立连接;x为一随机数,且x的取值范围为0~2^32;
其中,SRTT_a的初值取值范围是0~9999毫秒,RTO_a的初值取值范围是0~9999毫秒;
其中,RTTVAR_a的初值设置依据了TCP协议内重传参数计算式内体现出的”往返时间变化”、“重传时间”、“平均往返时间”三个量之间的关系;
重传定时器T1的设置是为了当兴趣包在网络中丢失时进行重传;
步骤2.2生产者B接收到消费者A发送的连接请求兴趣包,若生产者同意本次连接,则回复数据内容为“同意本次连接”的连接请求数据包,若生产者不同意本次连接,则回复数据内容为“不同意本次连接”的连接请求数据包;
步骤2.3消费者A接收到生产者B回复的连接请求数据包,销毁重传计时器T1,获取该数据包的到达时间t2,获得本次往返时间R=t2-t1,并利用公式(1)更新RTO_a,消费者A根据连接请求数据包数据内容部分判断生产者B是否同意本次连接,若生产者不同意则通知上层应用连接失败,清除与本次连接相关的数据,停止执行并结束本方法,若生产者接受,则跳至步骤3;
SRTT_a=α_aSRTT_a+(1-α)R (1)
RTTVAR_a=β_aRTTVAR_a+(1-β)|SRTT_a-R1|
RTO_a=SRTT_a+4×RTTVAR_a
其中,α_a是计算平均往返时间时的平滑因子,的取值范围为[0,1],默认值为7/8;
其中,β_a是计算往返时间变化的平滑因子,的取值范围为[0,1],默认值为3/4;
步骤3、生产者B发送连接确认兴趣包,消费者A持续接收,直至收到并以连接确认数据包回复,具体包括如下子步骤:
步骤3.1生产者B产生一个内容名称为“/TCP/A/a/B/b/t/x+1/”的连接确认兴趣包,记录该兴趣包发送时间为t3,设置估计的平均往返时间SRTT_b初值为一适值,设置超时重传时间RTO_b初值,并使其值略大于SRTT_b,设置重传定时器T2=RTO_b并开始计时,将生产者B检测到的往返时间变化RTTVAR_b初值设置为(RTO_b-SRTT_b)/4;
步骤3.2消费者A接收到消费者B发送的连接确认兴趣包,若消费者A同意本次连接,则回复数据内容为“同意本次连接”的连接确认数据包,设置消费者端的保活计时器Tlivea为一较长时间,并开始计时,若消费者A不同意本次连接,则回复数据内容为“不同意本次连接”的连接确认数据包,并清除与本次连接相关的数据;
步骤3.3生产者B接收到消费者A发送的连接确认数据包,销毁重传计时器T2,获取该数据包的到达时间t4,获得本次往返时间R=t4-t3,并利用公式(2)更新RTO_b,生产者B根据连接请求数据包数据内容部分判断消费者A是否同意本次连接,若消费者不同意则清除与本次连接相关的数据,停止执行并结束本方法,若消费者接受,则设置生产者B的保活计时器Tliveb为一较长时间并开始计时,并跳至步骤4;
SRTT_b=α_bSRTT_b+(1-α_b)R (2)
RTTVAR_b=β_bRTTVAR+(1-β_b)|SRTT_b-R|
RTO_b=SRTT_b+4×RTTVAR_b
其中,α_b是计算平均往返时间时的平滑因子,的取值范围为[0,1],默认值为7/8;
其中,β_b是计算往返时间变化的平滑因子,的取值范围为[0,1],默认值为3/4;
保活计时器Tlivea、Tliveb的设置是为了当连接空闲时间较长时,查看连接对方是否仍存在,避免资源的浪费,Tlivea的取值范围是0~9999毫秒,Tliveb的取值范围是0~9999毫秒;
步骤4、消费者A发送询问兴趣包以及生产者B回复告知数据包,具体包括如下子步骤:
步骤4.1消费者A产生一个内容名称为“/TCP/B/b/A/a/r/请求内容名称/”的询问兴趣包,记录该兴趣包发送时间为t5,设置重传计时器T3=RTO_a并开始计时;
其中,询问兴趣包内容名称“/TCP/B/b/A/a/r/请求内容名称/”中的“r”代表了这是一个询问兴趣包;
步骤4.2生产者B接收到询问兴趣包,重置保活计时器Tliveb并判断是否可以给消费者A发送其请求的数据,若判断可以给消费者A发送数据,则回复数据内容为“同意发送数据内容/datasize”的告知数据包,否则回复数据内容为“不同意发送数据内容”的告知数据包;
其中,datasize为消费者A所请求的数据内容所包含的字节数;
步骤4.3消费者A接收到告知数据包,销毁重传计时器T3,获取该数据包的到达时间t6,获得本次往返时间R=t6-t5,并利用公式(1)更新RTO_a,若从告知数据包中获知生产者B不同意发送数据内容且消费者A还想请求其他数据内容,则转置步骤4.1,若从告知数据包中获知生产者B不同意发送数据内容且消费者A不想请求其他内容,则转至步骤6,若从告知数据包中获知生产者B同意发送数据内容则转置步骤5;
步骤5、消费者A发送数据请求兴趣包以及生产者B回复数据内容数据包,具体包括如下子步骤:
步骤5.1消费者A发送内容名称为“/TCP/B/b/A/a/d/申请的数据包内容名称/st/en/”的数据请求兴趣包,记录该兴趣包发送时间为t7,设置重传计时器T4=RTO_a并开始计时;
其中,数据请求兴趣包内容名称“/TCP/B/b/A/a/d/申请的数据包内容名称/st/en/”中的“d”代表了这是一个数据请求兴趣包;
其中,st为申请数据包片段的起始字节,其取值为0~datasize中的任意整数;
其中,en为申请数据包片段的终止字节,其取值为st~datasize中的任意整数;
步骤5.2生产者B接收到数据请求兴趣包,重置保活计时器Tliveb,并回复数据内容为所请求数据内容的数据内容数据包;
步骤5.3消费者A收到生产者B所发送的数据内容数据包,重置保活计时器Tlivea;销毁重传计时器T4,获取该数据包的到达时间t8,获得本次往返时间R=t8-t7,并利用公式(1)更新RTO_a;
步骤5.4重复步骤5直至获取到所请求数据内容的所有数据内容片段;
步骤6、消费者A发送释放兴趣包以及生产者B回复释放数据包,具体包括如下子步骤:
步骤6.1当消费者A希望断开连接时,消费者A发送内容名称为“/TCP/B/b/A/a/e/”的释放兴趣包,设置重传计时器T5=RTO_a,并开始计时;
其中,释放兴趣包内容名称“/TCP/B/b/A/a/e/”中的“e”代表了这是一个释放兴趣包;
步骤6.2生产者B收到释放兴趣包,重置保活计时器Tliveb,回复数据内容为空的释放数据包;
步骤6.3消费者A接收到释放数据包,销毁重传计时器T5;
步骤7、生产者B发送释放兴趣包以及消费者A回释放数据包,具体包括如下子步骤:
步骤7.1当生产者B发送释放数据包并发送完成所有消费者A之前请求过的数据内容后,发送内容名称为“/TCP/A/a/B/b/e/”的释放兴趣包,设置重传计时器T6=RTO_b,并开始计时;
步骤7.2消费者A收到释放兴趣包,则回复数据内容为空的释放数据包,清除本次连接相关数据;
步骤7.3生产者B接收到释放数据包,销毁重传计时器T6,释放连接;
至此,从步骤1到步骤7,结束了一种面向连接的命名数据网络数据传输方法中的数据传输操作,以下是数据传输异常操作。
步骤8、生产者B定期发送连接检测兴趣包以及消费者A回复连接检测数据包,具体包括如下子步骤:
步骤8.1当保活计时器Tliveb变为0的时候,生产者B发送内容名称为“/TCP/A/a/B/b/keepalive/”的检测兴趣包,并重置保活计时器Tliveb,令Tleft=TOb,设置重传计时器T7=RTO_b并开始计时;
其中,检测兴趣包内容名称“/TCP/A/a/B/b/keepalive/”中的“keepalive”代表了这是一个检测兴趣包;
其中,TOb为生产者允许重传次数的最大值,其取值可为任意自然数;
步骤8.2当消费者A接收到检测兴趣包时,重置保活计时器Tlivea,并回复一个数据内容为空的检测数据包;
步骤8.3若生产者B接收到检测数据包时,重置保活计时器Tliveb,销毁重传计时器T7;
步骤9、消费者A定期发送连接检测兴趣包以及生产者B回复连接检测数据包,具体包括如下子步骤:
步骤9.1当保活计时器Tlivea变为0的时候,消费者A发送内容名称为“/TCP/B/b/A/a/keepalive/”的检测兴趣包,设置重传计时器T8=RTO_a并开始计时,重置保活计时器Tlivea,令Tleft=TOa;
步骤9.2当生产者B接收到检测兴趣包时,重置保活计时器Tliveb,并回复一个数据内容为空的检测数据包;
步骤9.3消费者A接收到检测数据包,重置保活计时器Tlivea,销毁重传计时器T8;
其中,TOa为消费者允许重传次数的最大值,其取值可为任何自然数;
步骤10、消费者A与生产者B定期检测重传计时器是否到时并进行重发,当任一重传计时器到时为0,若重传计时器超时且处于步骤8或步骤9中且Tleft=0,则断开连接,否则重传计时器超时且处于步骤8或步骤9中且TTleft≠0则重发对应的兴趣包,并令Tleft=Tleft-1,若重传计时器超时且不处于步骤8或步骤9中,则重发对应的兴趣包。
有益效果
本发明提出的针对命名数据网络面向连接的数据传输方法,与现有数据传输方法相比,具有如下有益效果:
1.与目前的NDN网络中无连接的数据通信机制相比,本发明所述面向连接的命名数据网络数据传输方法的优势在于本发明涉及了NDN中数据重传机制以及保活机制,提高了数据传输可靠性;
2.NDN网络中使用本发明所述的面向连接的命名数据网络数据传输方法,在所述数据传输方法下,便于在命名中心网络中进行端到端的拥塞控制与流量控制;
3.应用本发明所述的面向连接的命名数据网络数据传输方法,能够实现IP网络与NDN网络的互联互通。
附图说明
图1为本发明一种面向连接的命名数据网络数据传输方法的流程图。
具体实施方式
下面将结合实施例对本发明加以详细说明,同时论述本发明的技术方案解决的技术问题及有益效果;需要指出的是,所描述的实施例旨在便于对本发明的理解,对本发明不起任何限定作用。
实施例1
本实施例论述的是面向连接的命名数据网络传输控制协议在NDN通信中的应用,其实施流程如图1所示。本实施例基于NDN网络,消费者发送兴趣包请求数据,生产者回复数据包响应此请求,其中消费者为A,生产者为B,消费者通信所用接口为a,生产者通信所用接口为b,用户所需的数据名称为datawanted,其大小为300字节。应用本发明传输控制协议的NDN通信实例如下:
步骤I、消费者A以及生产者B分别创建各自的套接字,具体包括如下子步骤:
步骤I.1生产者B选定其与消费者进行交互的端口b,并创建代表交互端点的套接字(B,b),再在端口b上监听;
步骤I.2消费者A选定其与生产者进行交互的端口a,并创建代表交互端点的套接字(A,a),再在端口a上监听;
步骤II、消费者A发送连接请求兴趣包,生产者B持续接收,直至收到并回复该连接请求数据包,包括如下子步骤:
步骤II.1A产生一个32位随机数,此时A产生的随机数为十进制下的1234567,因此A发送内容名称为“/TCP/B/b/A/a/t/1234567/”的连接请求兴趣包,记录该兴趣包发送时间为t1=0ms,设置估计的平均往返时间SRTT_a=300ms,设置超时重传时间RTO_a=600ms,设置重传定时器T1=RTO_a并开始计时,设置消费者A检测到的往返时间变化RTTVAR_a=75ms;
步骤II.2生产者B接收到消费者A发送的连接请求兴趣包,生产者同意本次连接,回复数据内容为“同意本次连接”的连接请求数据包;
步骤II.3消费者A接收到生产者B回复的连接请求数据包,销毁重传计时器T1,获取该数据包的到达时间t2=405ms,获得本次往返时间R=t2-t1=405ms,并利用公式(1)更新RTO_a=630ms,消费者A根据连接请求数据包数据内容部分判断生产者B同意本次连接;
步骤III、生产者B发送连接确认兴趣包,消费者A持续接收,直至收到并以连接确认数据包回复,具体包括如下子步骤:
步骤III.1生产者B产生一个内容名称为“/TCP/A/a/B/b/t/x+1/”的连接确认兴趣包,记录该兴趣包发送时间为t3=66ms,设置估计的平均往返时间SRTT_b=300ms,设置超时重传时间RTO_b=600ms,设置重传定时器T2=RTO_b=600ms并开始计时,将生产者B检测到的往返时间变化RTTVAR_b初值设置为75ms;
步骤III.2消费者A接收到消费者B发送的连接确认兴趣包,消费者A同意本次连接,回复数据内容为“同意本次连接”的连接确认数据包,并设置消费者端的保活计时器Tlivea=2s,并开始计时;
步骤III.3生产者B接收到消费者A发送的连接确认数据包,销毁重传计时器T2,获取该数据包的到达时间t4=390ms,获得本次往返时间R=t4-t3=324ms,并利用公式(2)更新RTO_b=550ms,生产者B根据连接请求数据包数据内容部分判断消费者A同意本次连接,设置生产者B的保活计时器Tliveb=2s并开始计时;
步骤IV、消费者A发送询问兴趣包以及生产者B回复告知数据包,具体包括如下子步骤:
步骤IV.1消费者A产生一个内容名称为“/TCP/B/b/A/a/r/datawanted/”的询问兴趣包,记录该兴趣包发送时间为t5=168ms,设置重传计时器T3=630ms并开始计时;
步骤IV.2生产者B接收到询问兴趣包,重置保活计时器Tliveb=2s并判断可以给消费者A发送数据,回复数据内容为“同意发送数据内容/300”的告知数据包;
步骤IV.3消费者A接收到告知数据包,销毁重传计时器T3,获取该数据包的到达时间t6=435ms,获得本次往返时间R=t6-t5=267ms,并利用公式(1)更新RTO_a=585ms,从告知数据包中获知生产者B同意发送内容数据;
步骤V、消费者A发送数据请求兴趣包以及生产者B回复数据内容数据包,具体包括如下子步骤:
步骤V.1A发送内容名称为“/TCP/B/b/A/a/d/datawanted/0/300/”的数据请求兴趣包,记录该兴趣包发送时间为t7=436ms,设置重传计时器T4=RTO_a=585ms并开始计时;
步骤V.2B接收到数据请求兴趣包,重置保活计时器Tliveb=2s,并回复数据内容为datawanted的第0至300字节的数据内容数据包;
步骤V.3A接收到B所发送的数据内容数据包,重置保活计时器Tlivea=2s,销毁重传计时器T4,获取该数据包的到达时间t8=762ms,获得本次往返时间R=t6-t5=326,并利用公式(1)更新RTO_a=534ms;
步骤VI、消费者A发送释放兴趣包以及生产者B回复释放数据包,具体包括如下子步骤:
步骤VI.1消费者A发送内容名称为“/TCP/B/b/A/a/e/”的释放兴趣包,设置重传计时器T5=RTO_a=534ms;
步骤VI.2B收到释放兴趣包,重置保活计时器Tliveb=2s,回复数据内容为空的释放数据包;
步骤VI.3消费者A接收到释放数据包,销毁重传计时器T5;
步骤VII、生产者B发送释放兴趣包以及消费者A回复释放数据包,具体包括如下子步骤:
步骤VII.1生产者B发送内容名称为“/TCP/A/a/B/b/e/”的释放兴趣包,设置重传计时器T6=RTO_b=550ms;
步骤VII.2消费者A收到释放兴趣包,则回复数据内容为空的释放数据包,释放连接;
步骤VII.3生产者B接收到释放数据包,销毁重传计时器T6,释放连接;
至此,结束了一种面向连接的命名数据网络数据传输方法中的数据传输操作,发明内容中的步骤8-步骤10为数据传输异常操作,在本案例中不涉及。
本实施例中使用的多种兴趣包命名实例如表1所示。
表1多种兴趣包命名实例表
本实施例描述了NDN中一种面向连接的命名数据网络数据交互方法,这种方法实现了NDN网络中面向连接的信息交互,有效支持NDN网络中传输,有效支持NDN网络中传输层的端到端差错控制、流量控制方法,所述实例描述了没有丢包重传下的数据传输流程,若在其执行过程中,重传计时器T1-T4中任意一个重传计时器超时,则根据本方法,重传计时器对应的兴趣包会进行重传,因此也增加了传输可靠性。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种面向连接的命名数据网络数据传输方法,其特征在于:包括数据传输操作及数据传输异常操作,包括以下步骤:
步骤1、消费者A及生产者B分别创建各自的套接字,包括如下子步骤:
1.1生产者B选定其与消费者进行交互的端口b,并创建代表交互端点的套接字(B,b),再在端口b上监听;
1.2消费者A选定其与生产者进行交互的端口a,并创建代表交互端点的套接字(A,a),再在端口a上监听;
步骤2、消费者A发送连接请求兴趣包,生产者B持续接收,直至收到并回复该连接请求数据包,包括如下子步骤:
步骤2.1消费者A发送内容名称为“TCP/B/b/A/a/t/x/”的连接请求兴趣包,记录该兴趣包发送时间为t1,设置估计的平均往返时间SRTT_a初值为一适值,设置超时重传时间RTO_a初值,并使RTO_a的值略大于SRTT_a,设置重传定时器T1=RTO_a并开始计时,设置消费者A检测到的往返时间变化RTTVAR初值为(RTO_a-SRTT_a)/4;
其中,内容名称“TCP/B/b/A/a/t/x/”中的“TCP”代表了该包是一个与面向连接操作相关的兴趣包;“t”代表该兴趣包用于建立连接;x为一随机数;
其中,RTTVAR_a的初值设置依据了TCP协议内重传参数计算式内体现出的”往返时间变化”、“重传时间”、“平均往返时间”三个量之间的关系;
重传定时器T1的设置是为了当兴趣包在网络中丢失时进行重传;
步骤2.2生产者B接收到消费者A发送的连接请求兴趣包,若生产者同意本次连接,则回复数据内容为“同意本次连接”的连接请求数据包,若生产者不同意本次连接,则回复数据内容为“不同意本次连接”的连接请求数据包;
步骤2.3消费者A接收到生产者B回复的连接请求数据包,销毁重传计时器T1,获取该数据包的到达时间t2,获得本次往返时间R=t2-t1,并利用公式(1)更新RTO_a,消费者A根据连接请求数据包数据内容部分判断生产者B是否同意本次连接,若生产者不同意则通知上层应用连接失败,清除与本次连接相关的数据,停止执行并结束本方法,若生产者接受,则跳至步骤3;
SRTT_a=α_aSRTT_a+(1-α)R (1)
RTTVAR_a=β_aRTTVAR_a+(1-β)|SRTT_a-R1|
RTO_a=SRTT_a+4×RTTVAR_a
其中,α_a是计算平均往返时间时的平滑因子;其中,β_a是计算往返时间变化的平滑因子;
步骤3、生产者B发送连接确认兴趣包,消费者A持续接收,直至收到并以连接确认数据包回复,具体包括如下子步骤:
步骤3.1生产者B产生一个内容名称为“/TCP/A/a/B/b/t/x+1/”的连接确认兴趣包,记录该兴趣包发送时间为t3,设置估计的平均往返时间SRTT_b初值为一适值,设置超时重传时间RTO_b初值,并使其值略大于SRTT_b,设置重传定时器T2=RTO_b并开始计时,将生产者B检测到的往返时间变化RTTVAR_b初值设置为(RTO_b-SRTT_b)/4;
步骤3.2消费者A接收到消费者B发送的连接确认兴趣包,若消费者A同意本次连接,则回复数据内容为“同意本次连接”的连接确认数据包,设置消费者端的保活计时器Tlivea为一较长时间,并开始计时,若消费者A不同意本次连接,则回复数据内容为“不同意本次连接”的连接确认数据包,并清除与本次连接相关的数据;
步骤3.3生产者B接收到消费者A发送的连接确认数据包,销毁重传计时器T2,获取该数据包的到达时间t4,获得本次往返时间R=t4-t3,并利用公式(2)更新RTO_b,生产者B根据连接请求数据包数据内容部分判断消费者A是否同意本次连接,若消费者不同意则清除与本次连接相关的数据,停止执行并结束本方法,若消费者接受,则设置生产者B的保活计时器Tliveb为一较长时间并开始计时,并跳至步骤4;
SRTT_b=α_bSRTT_b+(1-α_b)R (2)
RTTVAR_b=β_bRTTVAR+(1-β_b)|SRTT_b-R|
RTO_b=SRTT_b+4×RTTVAR_b
其中,α_b是计算平均往返时间时的平滑因子;β_b是计算往返时间变化的平滑因子;
保活计时器Tlivea、Tliveb的设置是为了当连接空闲时间较长时,查看连接对方是否仍存在,避免资源的浪费;
步骤4、消费者A发送询问兴趣包以及生产者B回复告知数据包,具体包括如下子步骤:
步骤4.1消费者A产生一个内容名称为“/TCP/B/b/A/a/r/请求内容名称/”的询问兴趣包,记录该兴趣包发送时间为t5,设置重传计时器T3=RTO_a并开始计时;
其中,询问兴趣包内容名称“/TCP/B/b/A/a/r/请求内容名称/”中的“r”代表了这是一个询问兴趣包;
步骤4.2生产者B接收到询问兴趣包,重置保活计时器Tliveb并判断是否可以给消费者A发送其请求的数据,若判断可以给消费者A发送数据,则回复数据内容为“同意发送数据内容/datasize”的告知数据包,否则回复数据内容为“不同意发送数据内容”的告知数据包;
其中,datasize为消费者A所请求的数据内容所包含的字节数;
步骤4.3消费者A接收到告知数据包,销毁重传计时器T3,获取该数据包的到达时间t6,获得本次往返时间R=t6-t5,并利用公式(1)更新RTO_a,若从告知数据包中获知生产者B不同意发送数据内容且消费者A还想请求其他数据内容,则转置步骤4.1,若从告知数据包中获知生产者B不同意发送数据内容且消费者A不想请求其他内容,则转至步骤6,若从告知数据包中获知生产者B同意发送数据内容则转置步骤5;
步骤5、消费者A发送数据请求兴趣包以及生产者B回复数据内容数据包,具体包括如下子步骤:
步骤5.1消费者A发送内容名称为“/TCP/B/b/A/a/d/申请的数据包内容名称/st/en/”的数据请求兴趣包,记录该兴趣包发送时间为t7,设置重传计时器T4=RTO_a并开始计时;
其中,数据请求兴趣包内容名称“/TCP/B/b/A/a/d/申请的数据包内容名称/st/en/”中的“d”代表了这是一个数据请求兴趣包;
其中,st为申请数据包片段的起始字节,其取值为0~datasize中的任意整数;
其中,en为申请数据包片段的终止字节,其取值为st~datasize中的任意整数;
步骤5.2生产者B接收到数据请求兴趣包,重置保活计时器Tliveb,并回复数据内容为所请求数据内容的数据内容数据包;
步骤5.3消费者A收到生产者B所发送的数据内容数据包,重置保活计时器Tlivea;销毁重传计时器T4,获取该数据包的到达时间t8,获得本次往返时间R=t8-t7,并利用公式(1)更新RTO_a;
步骤5.4重复步骤5直至获取到所请求数据内容的所有数据内容片段;
步骤6、消费者A发送释放兴趣包以及生产者B回复释放数据包,具体包括如下子步骤:
步骤6.1当消费者A希望断开连接时,消费者A发送内容名称为“/TCP/B/b/A/a/e/”的释放兴趣包,设置重传计时器T5=RTO_a,并开始计时;
其中,释放兴趣包内容名称“/TCP/B/b/A/a/e/”中的“e”代表了这是一个释放兴趣包;
步骤6.2生产者B收到释放兴趣包,重置保活计时器Tliveb,回复数据内容为空的释放数据包;
步骤6.3消费者A接收到释放数据包,销毁重传计时器T5;
步骤7、生产者B发送释放兴趣包以及消费者A回释放数据包,具体包括如下子步骤:
步骤7.1当生产者B发送释放数据包并发送完成所有消费者A之前请求过的数据内容后,发送内容名称为“/TCP/A/a/B/b/e/”的释放兴趣包,设置重传计时器T6=RTO_b,并开始计时;
步骤7.2消费者A收到释放兴趣包,则回复数据内容为空的释放数据包,清除本次连接相关数据;
步骤7.3生产者B接收到释放数据包,销毁重传计时器T6,释放连接;
至此,从步骤1到步骤7,结束了一种面向连接的命名数据网络数据传输方法中的数据传输操作,以下是数据传输异常操作;
步骤8、生产者B定期发送连接检测兴趣包以及消费者A回复连接检测数据包,具体包括如下子步骤:
步骤8.1当保活计时器Tliveb变为0的时候,生产者B发送内容名称为“/TCP/A/a/B/b/keepalive/”的检测兴趣包,并重置保活计时器Tliveb,令Tleft=TOb,设置重传计时器T7=RTO_b并开始计时;
其中,检测兴趣包内容名称“/TCP/A/a/B/b/keepalive/”中的“keepalive”代表了这是一个检测兴趣包;
其中,TOb为生产者允许重传次数的最大值,其取值可为任意自然数;
步骤8.2当消费者A接收到检测兴趣包时,重置保活计时器Tlivea,并回复一个数据内容为空的检测数据包;
步骤8.3若生产者B接收到检测数据包时,重置保活计时器Tliveb,销毁重传计时器T7;
步骤9、消费者A定期发送连接检测兴趣包以及生产者B回复连接检测数据包,具体包括如下子步骤:
步骤9.1当保活计时器Tlivea变为0的时候,消费者A发送内容名称为“/TCP/B/b/A/a/keepalive/”的检测兴趣包,设置重传计时器T8=RTO_a并开始计时,重置保活计时器Tlivea,令Tleft=TOa;
步骤9.2当生产者B接收到检测兴趣包时,重置保活计时器Tliveb,并回复一个数据内容为空的检测数据包;
步骤9.3消费者A接收到检测数据包,重置保活计时器Tlivea,销毁重传计时器T8;
其中,TOa为消费者允许重传次数的最大值,其取值可为任何自然数;
步骤10、消费者A与生产者B定期检测重传计时器是否到时并进行重发,当任一重传计时器到时为0,若重传计时器超时且处于步骤8或步骤9中且Tleft=0,则断开连接,否则重传计时器超时且处于步骤8或步骤9中且TTleft≠0则重发对应的兴趣包,并令Tleft=Tleft-1,若重传计时器超时且不处于步骤8或步骤9中,则重发对应的兴趣包。
2.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤1中,消费者和生产者的名称是由“字母、数字、特殊符号”组成的字符串;a是消费者端口号,a的取值范围是1~9999;b是生产者端口号,b的取值范围是1~9999。
3.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤2.1中x的取值范围为0~2^32。
4.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤2.1中,SRTT_a的初值取值范围是0~9999毫秒,RTO_a的初值取值范围是0~9999毫秒。
5.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤2.3中,α_a的取值范围为[0,1],默认值为7/8;β_a的取值范围为[0,1],默认值为3/4。
6.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤3.3中,α_b的取值范围为[0,1],默认值为7/8;β_b的取值范围为[0,1],默认值为3/4。
7.根据权利要求1所述的一种面向连接的命名数据网络数据传输方法,其特征在于:步骤3.3中,Tlivea的取值范围是0~9999毫秒,Tliveb的取值范围是0~9999毫秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911029796.2A CN110753123B (zh) | 2019-10-28 | 2019-10-28 | 一种面向连接的命名数据网络数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911029796.2A CN110753123B (zh) | 2019-10-28 | 2019-10-28 | 一种面向连接的命名数据网络数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110753123A true CN110753123A (zh) | 2020-02-04 |
CN110753123B CN110753123B (zh) | 2020-10-23 |
Family
ID=69280290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911029796.2A Active CN110753123B (zh) | 2019-10-28 | 2019-10-28 | 一种面向连接的命名数据网络数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110753123B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039781A (zh) * | 2020-09-09 | 2020-12-04 | 北京同创神州航天科技有限公司 | 一种基于流控制的命名数据网络转发方法 |
CN112134803A (zh) * | 2020-09-25 | 2020-12-25 | 中国人民解放军陆军装甲兵学院 | 一种命名数据网络系统及其数据传输方法与装置 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN114866458A (zh) * | 2022-05-26 | 2022-08-05 | 国网河北省电力有限公司电力科学研究院 | 一种命名数据网中生产者移动的管理方法及管理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821039A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 基于名称的网络系统中防止待定兴趣表溢出的设备和方法 |
CN103179037A (zh) * | 2012-12-13 | 2013-06-26 | 清华大学 | 基于内容的数据中心网络的数据传输方法 |
CN103457999A (zh) * | 2013-08-06 | 2013-12-18 | 北京大学深圳研究生院 | 一种基于ndn网络架构的p2p文件传输方法 |
CN103491003A (zh) * | 2012-06-14 | 2014-01-01 | 华为技术有限公司 | 一种内容路由器及其处理报文的方法 |
US20150281079A1 (en) * | 2012-12-12 | 2015-10-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for routing and forwarding, establishing routing table, and acquiring content |
US20150280918A1 (en) * | 2014-03-31 | 2015-10-01 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
CN110149274A (zh) * | 2019-05-20 | 2019-08-20 | 北京理工大学 | 基于位置信息和内容推送的命名数据网络综合路由方法 |
-
2019
- 2019-10-28 CN CN201911029796.2A patent/CN110753123B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821039A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 基于名称的网络系统中防止待定兴趣表溢出的设备和方法 |
CN103491003A (zh) * | 2012-06-14 | 2014-01-01 | 华为技术有限公司 | 一种内容路由器及其处理报文的方法 |
US20150281079A1 (en) * | 2012-12-12 | 2015-10-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for routing and forwarding, establishing routing table, and acquiring content |
CN103179037A (zh) * | 2012-12-13 | 2013-06-26 | 清华大学 | 基于内容的数据中心网络的数据传输方法 |
CN103457999A (zh) * | 2013-08-06 | 2013-12-18 | 北京大学深圳研究生院 | 一种基于ndn网络架构的p2p文件传输方法 |
US20150280918A1 (en) * | 2014-03-31 | 2015-10-01 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
CN110149274A (zh) * | 2019-05-20 | 2019-08-20 | 北京理工大学 | 基于位置信息和内容推送的命名数据网络综合路由方法 |
Non-Patent Citations (1)
Title |
---|
葛志诚等: "一种移动内容分发网络的分层协同缓存机制", 《计算机学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039781A (zh) * | 2020-09-09 | 2020-12-04 | 北京同创神州航天科技有限公司 | 一种基于流控制的命名数据网络转发方法 |
CN112039781B (zh) * | 2020-09-09 | 2022-09-09 | 北京同创神州航天科技有限公司 | 一种基于流控制的命名数据网络转发方法 |
CN112134803A (zh) * | 2020-09-25 | 2020-12-25 | 中国人民解放军陆军装甲兵学院 | 一种命名数据网络系统及其数据传输方法与装置 |
CN112134803B (zh) * | 2020-09-25 | 2022-03-25 | 中国人民解放军陆军装甲兵学院 | 一种命名数据网络系统及其数据传输方法与装置 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN114866458A (zh) * | 2022-05-26 | 2022-08-05 | 国网河北省电力有限公司电力科学研究院 | 一种命名数据网中生产者移动的管理方法及管理系统 |
CN114866458B (zh) * | 2022-05-26 | 2023-08-01 | 国网河北省电力有限公司电力科学研究院 | 一种命名数据网中生产者移动的管理方法及管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110753123B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753123B (zh) | 一种面向连接的命名数据网络数据传输方法 | |
US5905872A (en) | Method of transferring connection management information in world wideweb requests and responses | |
US7502860B1 (en) | Method and apparatus for client-side flow control in a transport protocol | |
EP1266503B1 (en) | Processing network communication control messages | |
US7020714B2 (en) | System and method of source based multicast congestion control | |
US5519704A (en) | Reliable transport protocol for internetwork routing | |
EP1266502B1 (en) | Processing network address identifiers | |
Camarillo et al. | Evaluation of transport protocols for the session initiation protocol | |
JP2003502945A (ja) | セッション開始プロトコル(sip)を用いた遠距離通信ネットワークにおいて付加価値サービス(vas)を提供するシステム及び方法 | |
WO2002023832A2 (en) | 1002em and method for disseminating topology and link-state information to routing nodes in a mobile ad hoc network | |
US8156209B1 (en) | Aggregation devices processing keep-alive messages of point-to-point sessions | |
CN1309201C (zh) | 用于网络传输丢失容限的客户端应用控制的方法和系统 | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
EP1708459A1 (en) | Routing element with special functions | |
CN112468513B (zh) | 一种企业网的终端管理通信方法 | |
US7260107B1 (en) | PPP data conversion apparatus and method | |
Cisco | Data-Link Switching (DLSw) | |
CN106911707B (zh) | 一种双向解耦的传输控制方法和系统 | |
US20090052446A1 (en) | Communications Interface | |
Delgrossi et al. | RFC1819: Internet Stream Protocol version 2 (ST2) protocol specification-version st2+ | |
Fischbeck et al. | CORBA interworking over SS. 7 | |
JP2001333096A (ja) | 通信装置 | |
CN100407713C (zh) | 网关网元以太口ip地址发现协议的实现方法 | |
Jensen | Internet protocol and transport protocols | |
Meyer | Extensions to RIP to Support Demand Circuits |
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 |