一种数据传输控制方法以及相关设备与流程

文档序号:16692116发布日期:2019-01-22 18:58阅读:224来源:国知局
一种数据传输控制方法以及相关设备与流程

本申请涉及通信技术领域,尤其涉及一种数据传输控制方法以及相关设备。



背景技术:

在通信系统中,在数据传输的过程中,当发送设备通过网络设备向接收设备发送数据帧时,网络设备需要对数据帧是否损坏进行校验。当校验不通过时,该数据帧将会被判定在传输的过程中已被损坏,最终已损坏的该数据帧被网络设备丢弃,并且传输控制协议(英文全称:transmissioncontrolprotocol,英文缩写:tcp)判定为由于网络拥塞造成的丢包事件。

由于当数据帧被损坏时,网络设备直接将该被损坏的数据帧丢弃,此时发送设备无法获知是因为数据帧损坏发生了丢包事件,而默认是由于网络拥塞造成的丢包事件,因此导致网络设备对数据传输的处理比较刻板,不够灵活。



技术实现要素:

为了解决现有技术中对数据传输的处理采用默认方式而不够灵活的技术问题,本申请实施例提供了一种数据传输控制方法,校验设备在对接收到的数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时,从该数据帧的部分数据中获取标识信息,以及向发送设备发送携带有该标识信息的丢包信息,以使得发送设备根据该丢包信息及时获知已发生丢包事件,并且根据该标识信息获知对应的数据包发生了丢包,从而对该标识信息对应的数据包进行重传,提高了对数据传输控制的灵活性。本申请实施例还提供了数据传输控制装置、发送设备、校验设备及计算机存储介质等相关设备。

本申请实施例第一方面提供了一种数据传输控制方法,可包括:校验设备接收发送设备发送的数据帧,该校验设备可以是网络设备,也可以是接收设备,即数据帧的损坏可以是在网络设备上发现的,也可以是在接收设备上发现的,例如,网络设备接收发送设备发送的数据帧,或者是接收设备接收网络设备转发发送设备发送的数据帧。然后,校验设备对接收到的数据帧进行第一校验,该第一校验可以是循环冗余校验(cyclicredundancycheck,crc)或帧校验(framechecksequence,fcs)等。当第一校验不通过时,校验设备确定数据帧已被损坏。此时,校验设备对数据帧的部分数据进行第二校验,例如,该数据帧的部分数据可以包括ip包头或tcp包头等,即对数据帧的部分数据进行第二校验可以是对ip包头校验和进行校验,还可以对tcp包头进行校验等。当对数据帧的部分数据进行第二校验通过时,校验设备确定数据帧的该部分数据未被损坏。在第二校验通过时,校验设备从数据帧的该部分数据中获取标识信息,该标识信息可包括源地址和目的地址等,该标识信息可以用于指示与该标识信息对应的数据包发生了丢包。由于数据帧的部分数据未被损坏,此时从该部分数据获取到的标识信息是正确的。在得到正确的标识信息后,校验设备可以向发送设备发送丢包信息,该丢包信息包括该标识信息。以使得发送设备根据该丢包信息确定数据帧已丢失,并且根据该标识信息获知对应的数据包发生了丢包,从而对标识信息对应的数据包执行重传操作,提高了对数据传输控制的灵活性。

结合本申请实施例第一方面,在本申请实施例第一方面的第一种实施方式中,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,即校验设备可以生成非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。例如,硬件故障、信号干扰等原因造成数据帧的损坏,以及在使用无线wifi网络、非屏蔽双绞线或无线蜂窝网等链路质量相对较差的介质进行数据帧的传输时,也会造成数据帧损坏,这些造成数据帧损坏后将数据帧丢弃的情况均属于由非网络拥塞原因引起的丢包事件。此时,校验设备可以向发送设备发送非拥塞丢包信息,以使得发送设备根据该非拥塞丢包信息确定是由非网络拥塞原因引起的丢包事件,从而发送设备维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作,该数据包可以是tcp层的数据包,或者是udp层的数据包。避免发送设备进行错误的乘性降速行为,相对于盲目通过缩小拥塞窗口来降低发送速率以减轻网络拥塞程度,提高了网络链路的利用率,以及提高了网络的吞吐量。

结合本申请实施例第一方面或在本申请实施例第一方面的第一种实施方式,在本申请实施例第一方面的第二种实施方式中,为了确定数据帧对应的发送设备,校验设备获取到的标识信息可包括源ip地址,数据帧的部分数据包括ip包头,该源ip地址可以从ip包头中获取到。校验设备从ip包头中获取源ip地址后,可以根据该源ip地址向发送设备发送丢包信息。由于对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,校验设备确定ip包头未被损坏,此时可从ip包头中获取正确的源ip地址,方便校验设备将丢包信息正确发送至对应的发送设备,提高了校验设备对丢包信息进行发送的准确性。

结合本申请实施例第一方面的第二种实施方式,在本申请实施例第一方面的第三种实施方式中,为了确定数据帧对应的接收设备,校验设备获取到的标识信息可包括目的ip地址,该目的ip地址可以从ip包头中获取到。校验设备从ip包头中获取目的ip地址后,可以根据源ip地址向发送设备发送该目的ip地址。由于对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,校验设备确定ip包头未被损坏,此时可从ip包头中获取正确的目的ip地址,提高了校验设备向发送设备发送目的ip地址的准确性。

结合本申请实施例第一方面的第三种实施方式,在本申请实施例第一方面的第四种实施方式中,校验设备获取到的标识信息还包括序列号,数据帧的部分数据可包括ip包头或tcp包头,该序列号可以从tcp包头或ip包头中获取到。由于当同一数据流上可能存在多个数据帧时,该标识信息对应的多个数据包,因此为了让发送设备准确获知是哪个数据包出现了丢包事件,此时校验设备获取已被损坏的数据包对应的序列号,将该序列号发送给发送设备,以使得发送设备根据该序列号确定已损坏的数据包,对该数据包进行准确重传,避免将所有数据包都进行重传而浪费网络资源。

结合本申请实施例第一方面的第四种实施方式,在本申请实施例第一方面的第五种实施方式中,校验设备获取到的标识信息还包括端口信息,该端口信息可以包括源端口和目的端口等。当数据帧为校验设备接收到的发送设备发送给接收设备的至少两条数据流上的数据帧时,为了使得发送设备获知是哪条数据流上的数据帧已损坏,校验设备可以从tcp包头中获取端口信息,然后根据源ip地址向发送设备发送该端口信息。由于发送设备可能是向接收设备发送多条数据流,因此为了让发送设备准确获知是哪条数据流上的数据帧出现了损坏,此时校验设备获取端口信息发送给发送设备,以使得发送设备根据端口信息确定已损坏的数据帧所在的数据流。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第五种实施方式中任意一种,在本申请实施例第一方面的第六种实施方式中,校验设备对数据帧进行第一校验可以是在数据链路层对数据帧进行校验,例如,在数据链路层对数据帧进行crc校验或fcs校验等,以循环冗余校验为例,校验设备可以根据数据帧的内容计算得到循环冗余校验码,并将循环冗余校验码与数据帧中尾部预置的校验码进行比较。当循环冗余校验码与该校验码不一致时,校验设备确定对数据帧的校验不通过。使得校验设备可以方便地对数据帧进行校验,提高了校验设备对数据帧进行校验的便捷性。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第六种实施方式中任意一种,在本申请实施例第一方面的第七种实施方式中,校验设备对数据帧中的部分数据进行第二校验可以是,在ip层对数据帧中的部分数据进行ip包头校验。例如,校验设备在ip层获取ip包头中的内容,根据ip包头中的内容计算得到校验和校验码。然后校验设备将校验和校验码与ip包头中预置的校验码进行比较,当该校验和校验码与该校验码一致时,校验设备确定ip包头校验和校验通过。使得校验设备可以方便地对数据帧的部分数据进行校验,提高了校验设备对数据帧的部分数据进行校验的便捷性。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第七种实施方式中任意一种,在本申请实施例第一方面的第八种实施方式中,当校验设备为网络设备或对应数据帧的接收设备时,校验设备向发送设备发送丢包信息之前,校验设备可以在预置的控制报文协议(英文全称:internetcontrolmessageprotocol,英文缩写:icmp)的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项。在校验设备向发送设备发送丢包信息时,校验设备向发送设备发送携带有丢包信息的icmp。使得当校验设备为网络设备或接收设备时,均可便捷将丢包信息向发送设备反馈。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第七种实施方式中任意一种,在本申请实施例第一方面的第九种实施方式中,当校验设备为对应数据帧的接收设备时,在校验设备向发送设备发送丢包信息之前,校验设备可以在预置的应答报文协议(英文全称:acknowledgement,英文缩写:ack)的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项。在校验设备向发送设备发送丢包信息时,校验设备向发送设备发送携带有丢包信息的ack。由于ack是在tcp层生成的,而网络设备无法看到tcp层,因此只有校验设备为接收设备时,才能够生成携带有丢包信息ack,提高了接收设备向发送设备反馈丢包信息的灵活性。

本申请实施例第二方面提供了一种数据传输控制方法,可包括:发送设备向校验设备发送数据帧,该校验设备可以是网络设备,也可以是接收设备。例如,发送设备向网络设备发送数据帧,或者是,发送设备通过网络设备向接收设备发送数据帧。发送设备侦测是否接收到校验设备发送的丢包信息,该丢包信息由校验设备对数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时发送,该丢包信息包括校验设备从数据帧的部分数据中获取到的标识信息,该标识信息用于指示与其对应的数据包发生了丢包。若发送设备侦测接收到校验设备发送的丢包信息,则发送设备根据该丢包信息确定数据帧已丢失,并且根据该标识信息获知对应的数据包发生了丢包,从而对标识信息对应的数据包执行重传操作,提高了对数据传输控制的灵活性。

结合本申请实施例第二方面,在本申请实施例第二方面的第一种实施方式中,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,发送设备对标识信息对应的数据包执行重传操作的过程中,发送设备首先判断丢包信息中是否包含非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。例如,硬件故障、信号干扰等原因造成数据帧的损坏,以及在使用无线wifi网络、非屏蔽双绞线或无线蜂窝网等链路质量相对较差的介质进行数据帧的传输时,也会造成数据帧损坏,这些造成数据帧损坏后将数据帧丢弃的情况均属于由非网络拥塞原因引起的丢包事件。若丢包信息中包含非拥塞丢包信息,则发送设备根据该非拥塞丢包信息确定是由非网络拥塞原因引起的丢包事件,从而发送设备维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作。例如,若发送设备的拥塞控制机制处于慢启动阶段,则发送设备维持当前慢启动的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于快速重传阶段,则发送设备维持当前快速重传的拥塞控制机制对标识信息对应的数据包执行重传操作,等等。避免发送设备进行错误的乘性降速行为,相对于盲目通过缩小拥塞窗口来降低发送速率以减轻网络拥塞程度,提高了网络链路的利用率,以及提高了网络的吞吐量。

本申请实施例第三方面提供了一种数据传输控制装置,可包括:接收单元、第一校验单元、第二校验单元、第一获取单元及第一发送单元等,其中,接收单元用于,接收发送设备发送的数据帧。第一校验单元用于,对接收单元接收到的数据帧进行第一校验,该第一校验可以是crc校验或fcs校验等,在第一校验单元确定校验不通过时,第二校验单元确定数据帧已损坏。此时,第二校验单元对数据帧的部分数据进行第二校验,例如,该数据帧的部分数据可以包括ip包头或tcp包头等,即对数据帧的部分数据进行第二校验可以是对ip包头校验和进行校验,还可以对tcp包头进行校验等。当对数据帧的部分数据进行第二校验通过时,第二校验单元确定数据帧的该部分数据未被损坏。在第二校验单元确定第二校验通过时,第一获取单元从数据帧的该部分数据中获取标识信息,该标识信息可包括源地址和目的地址等,该标识信息可以用于指示与该标识信息对应的数据包发生了丢包。由于数据帧的部分数据未被损坏,此时从该部分数据获取到的标识信息是正确的。在第一获取单元得到正确的标识信息后,第一发送单元可以向发送设备发送携带有标识信息的丢包信息,以使得发送设备根据该丢包信息确定数据帧已丢失,并且根据该标识信息获知对应的数据包发生了丢包,从而对标识信息对应的数据包执行重传操作,提高了对数据传输控制的灵活性。

结合本申请实施例第三方面,在本申请实施例第三方面的第一种实施方式中,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。例如,硬件故障、信号干扰等原因造成数据帧的损坏,以及在使用无线wifi网络、非屏蔽双绞线或无线蜂窝网等链路质量相对较差的介质进行数据帧的传输时,也会造成数据帧损坏,这些造成数据帧损坏后将数据帧丢弃的情况均属于由非网络拥塞原因引起的丢包事件。此时,第一发送单元可以向发送设备发送非拥塞丢包信息,以使得发送设备根据该非拥塞丢包信息确定是由非网络拥塞原因引起的丢包事件,从而发送设备维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作。避免发送设备进行错误的乘性降速行为,相对于盲目通过缩小拥塞窗口来降低发送速率以减轻网络拥塞程度,提高了网络链路的利用率,以及提高了网络的吞吐量。

结合本申请实施例第三方面或在本申请实施例第三方面的第一种实施方式,在本申请实施例第三方面的第二种实施方式中,为了确定数据帧对应的发送设备,第一获取单元获取到的标识信息可包括源ip地址,数据帧的部分数据包括ip包头,该源ip地址可以由第一获取单元从ip包头中获取到。第一获取单元从ip包头中获取源ip地址后,第一发送单元可以根据第一获取单元获取到的该源ip地址向发送设备发送丢包信息。由于第二校验单元对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,第二校验单元确定ip包头未被损坏,此时第一获取单元可从ip包头中获取正确的源ip地址,方便第一发送单元将丢包信息正确发送至对应的发送设备,提高了第一发送单元对丢包信息进行发送的准确性。

结合本申请实施例第三方面的第二种实施方式,在本申请实施例第三方面的第三种实施方式中,为了确定数据帧对应的接收设备,第一获取单元获取到的标识信息可包括目的ip地址,该目的ip地址可以由第一获取单元从ip包头中获取到。第一获取单元从ip包头中获取目的ip地址后,第一发送单元可以根据第一获取单元获取到的源ip地址向发送设备发送第一获取单元获取到的该目的ip地址。由于第二校验单元对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,第二校验单元确定ip包头未被损坏,此时第一获取单元可从ip包头中获取正确的目的ip地址,提高了第一发送单元向发送设备发送第一获取单元获取到的目的ip地址的准确性。

结合本申请实施例第三方面的第三种实施方式,在本申请实施例第三方面的第四种实施方式中,第一获取单元获取到的标识信息还包括序列号,数据帧的部分数据可包括ip包头或tcp包头,该序列号可以由第一获取单元从tcp包头或ip包头中获取到。由于同一数据流上可能存在与该标识信息对应的多个数据包,因此为了让发送设备准确获知是哪个数据包出现了丢包事件,此时第一获取单元获取已被损坏的数据包对应的序列号,由第一发送单元根据第一获取单元获取到的源ip地址向发送设备发送该序列号,以使得发送设备根据该序列号确定已损坏的数据包,对该数据包进行准确重传,避免将所有数据包都进行重传而浪费网络资源。

结合本申请实施例第三方面的第四种实施方式,在本申请实施例第三方面的第五种实施方式中,第一获取单元获取到的标识信息还包括端口信息,该端口信息可以包括源端口和目的端口等。当数据帧为接收单元接收到的发送设备发送给接收设备的至少两条数据流上的数据帧时,为了使得发送设备获知是哪条数据流上的数据帧已损坏,第一获取单元可以从tcp包头中获取端口信息,然后由第一发送单元根据第一获取单元获取到的源ip地址向发送设备发送第一获取单元获取到的该端口信息。由于发送设备可能是向接收设备发送多条数据流,因此为了让发送设备准确获知是哪条数据流上的数据帧出现了损坏,此时第一获取单元获取端口信息后由第一发送单元发送给发送设备,以使得发送设备根据端口信息确定已损坏的数据帧所在的数据流。

结合本申请实施例第三方面、本申请实施例第三方面的第一种实施方式至第五种实施方式中任意一种,在本申请实施例第三方面的第六种实施方式中,第一校验单元对数据帧进行第一校验可以是在数据链路层对数据帧进行校验,例如,在数据链路层对数据帧进行crc校验或fcs校验等,以循环冗余校验为例,第一校验单元可以根据数据帧的内容计算得到循环冗余校验码,将循环冗余校验码与数据帧中尾部预置的校验码进行比较。当循环冗余校验码与该校验码不一致时,第一校验单元确定对数据帧的校验不通过。使得第一校验单元可以方便地对数据帧进行校验,提高了第一校验单元对数据帧进行校验的便捷性。

结合本申请实施例第三方面、本申请实施例第三方面的第一种实施方式至第六种实施方式中任意一种,在本申请实施例第三方面的第七种实施方式中,第二校验单元对数据帧中的部分数据进行第二校验可以是,在ip层对数据帧中的部分数据进行ip包头校验。例如,第二校验单元在ip层获取ip包头中的内容,根据ip包头中的内容计算得到校验和校验码。然后第二校验单元将校验和校验码与ip包头中预置的校验码进行比较,当该校验和校验码与该校验码一致时,第二校验单元确定ip包头校验和校验通过。使得第二校验单元可以方便地对数据帧的部分数据进行校验,提高了第二校验单元对数据帧的部分数据进行校验的便捷性。

结合本申请实施例第三方面、本申请实施例第三方面的第一种实施方式至第七种实施方式中任意一种,在本申请实施例第三方面的第八种实施方式中,数据传输控制装置还包括第一添加单元,该第一添加单元可以在预置的控制报文协议icmp的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项。在第一发送单元向发送设备发送丢包信息时,第一发送单元可以向发送设备发送第一添加单元得到的携带有丢包信息的icmp。方便了第一添加单元将丢包信息进行便捷打包至icmp,并由第一发送单元向发送设备反馈icmp,使得发送设备根据icmp中携带的丢包信息获知数据帧的损坏是非网络拥塞造成的。

结合本申请实施例第三方面、本申请实施例第三方面的第一种实施方式至第七种实施方式中任意一种,在本申请实施例第三方面的第九种实施方式中,数据传输控制装置还包括第二添加单元,该第二添加单元可以在预置的应答报文协议ack的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项。在第一发送单元向发送设备发送丢包信息时,第一发送单元可以向发送设备发送第一添加单元得到的携带有丢包信息的ack。提高了第一发送单元向发送设备反馈丢包信息的灵活性。

本申请实施例第四方面提供了一种发送设备,可包括发送单元、侦测单元及执行单元等,其中,发送单元向校验设备发送数据帧,该校验设备可以是网络设备,也可以是接收设备。例如,发送单元向网络设备发送数据帧,或者是,发送单元通过网络设备向接收设备发送数据帧。此时侦测单元侦测是否接收到校验设备发送的丢包信息,该丢包信息由校验设备对数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时发送,该丢包信息包括校验设备从数据帧的部分数据中获取到的标识信息,该标识信息用于指示与其对应的数据包发生了丢包。若侦测单元侦测接收到校验设备发送的丢包信息,则执行单元根据该丢包信息确定数据帧已丢失,并且根据该标识信息获知对应的数据包发生了丢包,从而对标识信息对应的数据包执行重传操作,提高了对数据传输控制的灵活性。

结合本申请实施例第四方面,在本申请实施例第四方面的第一种实施方式中,执行单元可包括判断子单元和执行子单元,其中,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,执行单元对标识信息对应的数据包执行重传操作的过程中,首先由判断子单元判断丢包信息中是否包含非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。例如,硬件故障、信号干扰等原因造成数据帧的损坏,以及在使用无线wifi网络、非屏蔽双绞线或无线蜂窝网等链路质量相对较差的介质进行数据帧的传输时,也会造成数据帧损坏,这些造成数据帧损坏后将数据帧丢弃的情况均属于由非网络拥塞原因引起的丢包事件。若丢包信息中包含非拥塞丢包信息,则执行单元根据该非拥塞丢包信息确定是由非网络拥塞原因引起的丢包事件,从而执行单元维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作。例如,若发送设备的拥塞控制机制处于慢启动阶段,则执行单元维持当前慢启动的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于快速重传阶段,则执行单元维持当前快速重传的拥塞控制机制对标识信息对应的数据包执行重传操作,等等。避免发送设备进行错误的乘性降速行为,相对于盲目通过缩小拥塞窗口来降低发送速率以减轻网络拥塞程度,提高了网络链路的利用率,以及提高了网络的吞吐量。

本申请实施例第五方面提供了一种校验设备,可包括:处理器、存储器、总线、输入装置以及输出装置;其中,该存储器中存储有程序代码,处理器调用存储器中的程序代码时执行如前述本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至本申请实施例第一方面的第九种实施方式中的任一种实施方式所述的数据传输控制方法。

本申请实施例第六方面提供了一种校验设备,可包括:处理器、存储器、总线、输入装置以及输出装置;其中,该存储器中存储有程序代码,处理器调用存储器中的程序代码时执行如前述本申请实施例第二方面或本申请实施例第二方面的第一种实施方式所述的数据传输控制方法。

本申请实施例第七方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至本申请实施例第一方面的第九种实施方式中的任一种实施方式所述的数据传输控制方法。

本申请实施例第八方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述本申请实施例第二方面或本申请实施例第二方面的第一种实施方式所述的数据传输控制方法。

本申请实施例第九方面提供了一种计算机可读存储介质,该计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行时执行如前述本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至本申请实施例第一方面的第九种实施方式中的任一种实施方式所述的数据传输控制方法。

本申请实施例第十方面提供了一种计算机可读存储介质,该计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如前述本申请实施例第二方面或本申请实施例第二方面的第一种实施方式所述的数据传输控制方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

校验设备在对接收到的数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时,说明该数据帧已损坏,但该数据帧的部分数据中包含的标识信息未被损坏,此时,校验设备可以从该数据帧的部分数据中获取标识信息。然后,校验设备向发送设备发送携带有该标识信息的丢包信息,以使得发送设备根据该丢包信息及时获知已发生丢包事件,并且根据该标识信息获知对应的数据包发生了丢包,从而对该标识信息对应的数据包进行重传,提高了对数据传输控制的灵活性。

附图说明

图1为本申请实施例中通信系统的架构图;

图2为本申请实施例中数据传输控制方法一个实施例示意图;

图3为本申请实施例中数据传输控制方法另一实施例示意图;

图4为本申请实施例中数据传输控制方法另一实施例示意图;

图5为本申请实施例中数据传输控制方法另一实施例示意图;

图6为本申请实施例中数据传输控制装置一个实施例示意图;

图7为本申请实施例中发送设备一个实施例示意图;

图8为本申请实施例中校验设备一个实施例示意图;

图9为本申请实施例中终端一个实施例示意图。

具体实施方式

为了解决现有技术中对数据传输的处理采用默认方式而不够灵活的技术问题,本申请实施例提供了一种数据传输控制方法,校验设备在对接收到的数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时,从该数据帧的部分数据中获取标识信息,以及向发送设备发送携带有该标识信息的丢包信息,以使得发送设备根据该丢包信息及时获知已发生丢包事件,并且根据该标识信息获知对应的数据包发生了丢包,从而对该标识信息对应的数据包进行重传,提高了对数据传输控制的灵活性。本申请实施例还提供了数据传输控制装置、发送设备、校验设备、计算机程序产品及计算机存储介质等相关设备。

如图1所示,在通信系统中,一般情况下,发送设备需要通过网络设备向接收设备发送数据帧,该发送设备包括手机或电脑等终端,该网络设备包括路由器、计算机、集线器或交换机等,该接收设备包括手机或电脑等终端。可以理解的是,在实际应用中,发送设备、网络设备及接收设备的类型还可以是其他类型的设备,具体此处不作限定。发送设备在向接收设备发送数据帧,数据帧在网络进行传输的过程中,可以经过多种校验机制的校验,校验失败的数据帧被确定该数据帧在传输过程中被损坏。

对数据帧的校验可以是发送设备在将数据帧发送给网络设备时,由网络设备对接收到的数据帧进行校验。例如,其校验机制可包括:在数据帧从物理层向数据链路层传输时,在数据链路层对数据帧的内容进行校验,例如,crc校验或fcs校验等,以检查数据帧在传输过程中是否被损坏。在数据帧从数据链路层向ip层传输时,在ip层对数据帧剥离数据链路层头部得到ip数据包,在ip层对得到的数据包进行校验,例如,对数据包的ip头部进行校验和校验,检查数据包的ip头部在传输过程中是否被损坏。网络设备对数据包的校验机制还可以包括其他的校验,具体此处不作限定。

对数据帧的校验还可以是发送设备在将数据帧发送给网络设备时,由网络设备按照其校验机制校验后,确定数据帧没有被损坏,将数据帧发送给接收设备,由接收设备对接收到的数据帧进行校验。例如,其校验机制可包括:在数据帧从物理层向数据链路层传输时,在数据链路层对数据帧的内容进行校验,例如,crc校验或fcs校验等,以检查数据帧在传输过程中是否被损坏。在数据帧从数据链路层向ip层传输时,在ip层对数据帧剥离数据链路层头部得到ip数据包,在ip层对得到的数据包进行校验,例如,对数据包的ip头部进行校验和校验,检查数据包的ip头部在传输过程中是否被损坏。在数据包从ip层向tcp层传输时,在tcp层对数据包的tcp头部进行校验,检查数据包相应部分在传输过程中是否被损坏。可以理解的是,在实际应用中,在数据包从ip层向tcp层传输时,接收设备在tcp层除了可以对tcp头部进行校验之外,还可以是对其他头部进行校验,例如,在tcp层对数据包的ip伪头部、数据载荷进行校验,检查数据包相应部分在传输过程中是否被损坏等,具体此处不作限定。

对数据帧的校验还可以发送设备通过网络设备将数据帧发送给接收设备后,直接由接收设备对接收到的数据帧进行校验。

需要说明的是,图1所示的通信系统的架构图仅仅是一个示例,本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

为便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图2,本申请实施例中数据传输控制方法的一个实施例包括:

201、校验设备接收发送设备发送的数据帧;

本实施例中,发送设备向校验设备发送数据帧,校验设备接收发送设备发送的该数据帧。该校验设备可以是网络设备,也可以是接收设备,例如,网络设备接收发送设备发送的数据帧,或者是接收设备接收网络设备转发发送设备发送的数据帧。

需要说明的是,在实际应用中,该数据帧可以称之为数据,即校验设备接收发送设备发送的数据,该数据在从物理层向数据链路层传输时,在数据链路层该数据被称为数据帧,该数据帧从数据链路层向ip层传输时,在ip层被称为数据包。该数据在传输过程中的名称可以根据实际需要进行灵活设置,具体此处不作限定。本申请实施例描述的名称是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。

202、校验设备对数据帧进行第一校验;

校验设备需要对接收到的数据帧进行第一校验,由于校验设备可以是网络设备,也可以是接收设备,因此,对数据帧的第一校验可以是发送设备在将数据帧发送给网络设备时,由网络设备对接收到的数据帧进行第一校验。对数据帧的校验也可以是发送设备在将数据帧发送给网络设备时,由网络设备对数据帧进行第一校验后,确定数据帧没有被损坏,将数据帧发送给接收设备,由接收设备对接收到的数据帧进行第一校验。对数据帧的第一校验还可以是发送设备通过网络设备将数据帧发送给接收设备后,直接由接收设备对接收到的数据帧进行第一校验。

该第一校验可以是crc校验或fcs校验等,例如,在以太网中,第一校验为crc校验,在令牌环网中,第一校验为fcs校验。以循环冗余校验为例,校验设备对数据帧进行循环冗余校验时,首先,校验设备在数据帧从物理层向数据链路层传输时,在数据链路层对数据帧进行循环冗余校验。例如,循环冗余校验的机制包括:校验设备获取数据帧中的内容,根据数据帧内容计算得到循环冗余校验码,并将循环冗余校验码与数据帧中尾部预置的校验码进行比较。当循环冗余校验码与该校验码不一致时,校验设备确定对数据帧的循环冗余校验失败,即对数据帧的循环冗余校验不通过;当循环冗余校验码与该校验码一致时,校验设备确定对数据帧的循环冗余校验通过。可以理解的是,在实际应用中,循环冗余校验的机制还可以为crc32或crc64等其他的校验机制,具体此处不作限定。

203、当第一校验不通过时,校验设备对数据帧中的部分数据进行第二校验;

当校验设备对数据帧的第一校验不通过时,校验设备确定数据帧已被损坏。由于校验设备可以是网络设备,也可以是接收设备,因此数据帧的损坏可以是在网络设备上发现的,也可以是在接收设备上发现的。在对数据帧的第一校验失败时,校验设备不直接将该数据帧丢弃,而是将数据帧从数据链路层向ip层传输,对数据帧的部分数据进行第二校验。

当校验设备确定数据帧损坏时,为了保证获取到的标识信息是正确的,此时校验设备进一步对数据帧的部分数据进行第二校验,该标识信息包含于数据帧的该部分数据,该数据帧的部分数据可包括ip包头或tcp包头等。本实施例中,对数据帧的部分数据进行第二校验可以是在数据帧从数据链路层向ip层传输时,在ip层对ip包头校验和进行校验,可以理解的是,在实际应用中,除了可以对ip包头进行校验之外,还可以是对其他包头进行校验,例如,在数据帧从ip层向tcp层传输时,在tcp层对ip伪头部、tcp头部和数据载荷进行校验,检查数据帧相应部分在传输过程中是否被损坏等,具体此处不作限定。

以在ip层对ip包头校验和进行校验为例,在数据帧从数据链路层向ip层传输时,校验设备在ip层获取ip包头中的内容,根据ip包头的内容计算得到校验和校验码。然后校验设备将校验和校验码与ip包头中预置的校验码进行比较,当该校验和校验码与该校验码一致时,校验设备确定ip包头校验和校验成功,即确定ip包头校验和校验通过;当该校验和校验码与该校验码不一致时,校验设备确定ip包头校验和校验不通过。

204、当第二校验通过时,校验设备从数据帧的部分数据中获取标识信息;

当对数据帧的第二校验通过时,校验设备确定数据帧的部分数据未被损坏,而数据帧的损坏是出现在其他数据帧的字段,此时校验设备从数据帧的部分数据中存储标识信息的字段内提取出该标识信息,该标识信息可包括源地址和目的地址等,当该标识信息为源地址时,可以用于指示发送该数据帧对应的发送设备;当该标识信息为目的ip地址时,可以用于指示接收该数据帧对应的接收设备。该标识信息还可以用于指示与该标识信息对应的数据包发生了丢包,例如,该标识信息可以包括序列号、端口信息等。由于数据帧的包头未被损坏,此时获取到的标识信息是正确的。

205、校验设备向发送设备发送丢包信息。

本实施例中,丢包信息用于表示数据帧已丢失,丢包信息包括标识信息,标识信息用于指示与标识信息对应的数据包发生了丢包。

需要说明的是,由于发送设备可以是向接收设备发送一个数据帧,也可以是向接收设备发送多个数据帧,因此校验设备可以是每校验完成一个数据帧之后,确定是该数据帧丢失时,校验设备生成该数据帧的丢包信息,并将该丢包信息发送给发送设备。校验设备也可以是在预设时间周期内对一个或多个数据帧进行校验后,确定该一个或多个数据帧丢失时,校验设备生成该一个或多个数据帧的丢包信息,并将该丢包信息发送给发送设备。

校验设备在得到正确的标识信息及生成丢包信息后,校验设备可以向发送设备发送携带有该标识信息的丢包信息。以使得发送设备根据该丢包信息确定数据帧已丢失,并且根据该标识信息获知对应的数据包发生了丢包,从而对标识信息对应的数据包执行重传操作。

本申请实施例中校验设备在对接收到的数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时,说明该数据帧已损坏,但该数据帧的部分数据中包含的标识信息未被损坏,此时,校验设备可以从该数据帧的部分数据中获取标识信息。然后,校验设备向发送设备发送携带有该标识信息的丢包信息,以使得发送设备根据该丢包信息及时获知已发生丢包事件,并且根据该标识信息获知对应的数据包发生了丢包,从而对该标识信息对应的数据包进行重传,提高了对数据传输控制的灵活性。

另外,由于现有技术中当已损坏的该数据帧被网络设备丢弃后,tcp通常通过收到的重复确认报文(例如,ack)的数量,然后将该确认报文的数量与设定的阈值进行比较,来判断网络中是否发生丢包事件,进而依据网络丢包事件的发生来判定网络的拥塞。在丢包事件发生后,tcp拥塞控制机制通过调整拥塞窗口(英文全称:congestionwindow,英文缩写:cwnd)的大小来控制发送的数据帧的总量,进而调节数据帧的发送速率。发送设备通过调整后的cwnd对数据包进行重传,以保证数据帧通过网络设备传输的可靠性。例如,tcp通过tcp拥塞控制机制在针对同一数据帧收到三次重复的确认报文时,就判定网络中该数据帧发生了丢包事件,进而调整cwnd对数据包进行重传。因此,发送设备在通过网络设备向接收设备发送数据帧的过程中,当数据帧被损坏时,网络设备直接将该被损坏的数据帧丢弃,并在多次收到确认报文时才会重传数据包,而要接收到多个确认报文需要等待较长时间,因此,发送设备无法获知数据帧的丢包事件的时机,需要等到接收到的确认报文满足一定次数后,发送设备才获知数据帧丢失,然后对数据包进行重传。发送设备在无法及时获知数据帧丢失的情况下,延迟了对数据包的重传,降低了对数据包重传的效率。而本申请实施例中,校验设备向发送设备发送携带有该标识信息的丢包信息,可以使得发送设备根据该丢包信息及时获知已发生丢包事件,避免发送设备一直等待接收到多个确认报文后才对数据包进行重传,提高了对标识信息对应的数据包的重传效率。

本申请实施例中,为了区分数据帧的丢失是否是由于网络拥塞造成的丢包事件,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。例如,硬件故障、信号干扰等原因造成数据帧的损坏,以及在使用无线wifi网络、非屏蔽双绞线或无线蜂窝网等链路质量相对较差的介质进行数据帧的传输时,也会造成数据帧损坏,这些造成数据帧损坏后将数据帧丢弃的情况均属于由非网络拥塞原因引起的丢包事件。此时,校验设备可以向发送设备发送非拥塞丢包信息。校验设备可以是每校验完成一个数据帧之后,确定是该数据帧由非网络拥塞原因引起的丢包事件时,校验设备生成该数据帧的非拥塞丢包信息,并将该非拥塞丢包信息发送给发送设备。校验设备也可以是在预设时间周期内对一个或多个数据帧进行校验后,确定该一个或多个数据帧由非网络拥塞原因引起的丢包事件时,校验设备生成该一个或多个数据帧的非拥塞丢包信息,并将该非拥塞丢包信息发送给发送设备。

发送设备在接收到校验设备发送的非拥塞丢包信息后,发送设备可以根据该非拥塞丢包信息确定是由非网络拥塞原因引起的丢包事件,从而发送设备维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作,该数据包可以是tcp层的数据包,或者是udp层的数据包。解决了现有技术中发送设备确定丢包事件的发生后,判定为由于网络拥塞造成的,将会成倍的减少当前的cwnd值,从而按比例乘性降低数据帧的发送速率(简称乘性降速)以减轻网络拥塞程度,以及在数据包重传的过程中,缓慢增加数据包的发送速率,直至丢包事件再次发生的技术问题,避免了发送设备将校验不通过产生的丢包事件错误地判定为由于网络拥塞造成而盲目进行乘性降速操作,相对于盲目通过缩小拥塞窗口来降低发送速率以减轻网络拥塞程度,提高了网络链路的利用率,以及提高了网络的吞吐量。

另外,对于在wifi网络或蜂窝网等场景,由于传输介质的特性,发送设备统计的rtt值往往变化频繁且剧烈,因此若发送设备通过比较当前rtt值与预先设置的时间阈值,来判断当前的数据帧的损坏是否为网络拥塞造成的,则其判断的准确率很低。而本申请实施例中校验设备在可以对数据帧进行第一校验及对数据帧的部分数据进行第二校验,实现了对数据帧的准确校验,提高了发送设备维持当前的拥塞控制机制,以及在当前的拥塞控制机制下对标识信息对应的数据包执行重传操作的可靠性。

可以理解的是,tcp通过拥塞控制机制来保证数据在网络中的可靠传输,由于拥塞控制机制主要是通过改变拥塞窗口cwnd的大小来控制发送设备可以发送的数据帧的总量,进而调节数据帧发送速率。另外,拥塞控制机制还通过对丢失的数据帧的重传,来保证数据帧的可靠传输。拥塞控制机制包括慢启动、拥塞避免、快速重传和快速恢复等多个阶段。因此,发送设备维持当前的拥塞控制机制,以及在当前的拥塞控制机制下对标识信息对应的数据包执行重传操作可以是:当发送设备接收到校验设备发送的非拥塞丢包信息时,若发送设备的拥塞控制机制处于慢启动阶段,则发送设备维持当前慢启动的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于拥塞避免阶段,则发送设备维持当前拥塞避免的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于快速重传阶段,则发送设备维持当前快速重传的拥塞控制机制对标识信息对应的数据包执行重传操作;等等,此处不再进行一一枚举。

本申请实施例中,校验设备向发送设备发送丢包信息的方式包括:校验设备向发送设备发送携带有丢包信息的icmp,或者校验设备向发送设备发送携带有丢包信息的ack等,以下将分别进行详细描述。

一、校验设备向发送设备发送携带有丢包信息的icmp。

(一)当校验设备为网络设备时,由网络设备对数据帧进行校验,请参阅图3,本申请实施例中数据传输控制方法的另一实施例包括:

301、发送设备向网络设备发送数据帧;

当发送设备向接收设备发送数据帧时,需要通过网络设备作为中转,即先将数据帧发送给网络设备。

302、网络设备对数据帧进行第一校验;

网络设备在接收到数据帧后,在数据帧从物理层向数据链路层传输时,在数据链路层对数据帧进行第一校验,例如,在数据链路层对数据帧进行crc校验或fcs校验等,以循环冗余校验为例,网络设备对数据帧进行解包,获取数据帧的内容,网络设备可以根据数据帧的内容计算得到循环冗余校验码,并将循环冗余校验码与数据帧中尾部预置的校验码进行比较。当循环冗余校验码与该校验码不一致时,网络设备确定对数据帧的校验不通过,即第一校验不通过;当循环冗余校验码与该校验码一致时,网络设备确定对数据帧的循环冗余校验通过,即第一校验通过。可以理解的是,在实际应用中,循环冗余校验的机制还可以按照其他的校验方式进行校验,具体此处不作限定。

需要说明的是,网络设备在接收到数据帧后,可以先在物理层对数据帧的前导码进行校验,检查数据帧的信号在传输过程中是否被损坏,若未被损坏,则将数据帧从物理层向数据链路层传输,并在数据链路层对数据帧进行第一校验。

当第一校验通过时,说明数据帧没有被损坏,此时网络设备获取目的ip地址,根据目的ip地址向对应的接收设备发送该数据帧。

303、当第一校验不通过时,网络设备对数据帧的部分数据进行第二校验;

当网络设备对数据帧的第一校验不通过时,网络设备确定数据帧损坏,为了将丢包信息发送给发送设备,网络设备需要获取正确的标识信息。由于对数据帧的校验失败意味着数据帧的任意字段都可能存在误码错误,而网络设备在将丢包信息反馈给发送设备时,还需要保证从发生误码的数据帧中获得的标识信息是正确的,即存储标识信息的字段未被损坏。因此,网络设备不直接将该数据帧丢弃,而是需要进一步对数据帧的分部数据进行第二校验,该数据帧的部分数据存储有标识信息,该数据帧的部分数据可包括ip包头或tcp包头等。

本实施例中,对数据帧的部分数据进行第二校验可以是在数据帧从数据链路层向ip层传输时,在ip层对ip包头校验和进行校验,可以理解的是,在实际应用中,除了可以对ip包头进行校验之外,还可以是对其他包头进行校验,例如,在数据帧从ip层向tcp层传输时,在tcp层对ip伪头部、tcp头部和数据载荷进行校验,检查数据帧相应部分在传输过程中是否被损坏等,具体此处不作限定。

网络设备在对数据帧的ip包头进行校验时,可以在数据帧从数据链路层向ip层传输时,网络设备在ip层获取ip包头中的内容,根据ip包头的内容计算得到校验和校验码。然后网络设备将校验和校验码与ip包头中预置的校验码进行比较,当该校验和校验码与该校验码一致时,网络设备确定ip包头校验和校验通过,即第二校验通过;当该校验和校验码与该校验码不一致时,网络设备确定ip包头校验和校验不通过,即第二校验不通过。

304、当第二校验通过时,网络设备生成携带有丢包信息的控制报文协议icmp;

当对数据帧的部分数据进行第二校验通过时,网络设备确定数据帧的包头未被损坏,此时网络设备生成丢包信息,并在icmp的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项。例如,网络设备在icmp中自定义一个类型字段值为36,该类型字段值为36对应的icmp的类型选项为丢包类型选项,该丢包类型选项对应存储的是丢包信息。

需要说明的是,当数据帧不是由于网络拥塞造成的丢包事件时,该丢包信息可包括非拥塞丢包信息,即网络设备可以生成非拥塞丢包信息,该非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。网络设备可以在icmp的选项字段中扩展非拥塞丢包类型选项,将非拥塞丢包信息添加至该非拥塞丢包类型选项。

305、网络设备向发送设备发送携带有丢包信息的icmp;

网络设备在将携带有丢包信息的icmp发送给发送设备之前,首先网络设备从数据帧的部分数据中获取标识信息,该标识信息可包括源地址和目的地址等,该标识信息与丢包信息可以随icmp一起发送给发送设备。需要说明的是,在以太网的ip协议中,该标识信息可包括源ip地址和目的ip地址等,在m2cnp等非ip协议中该标识信息可包括相应源地址和目的地址等。

为了确定数据帧对应的发送设备,网络设备获取到的标识信息可包括源ip地址,该源ip地址用于指示发送数据帧对应的发送设备。由于数据帧的部分数据包括ip包头,因此该源ip地址可以从ip包头中获取到。网络设备从ip包头中获取源ip地址后,可以根据该源ip地址向发送设备发送携带有丢包信息的icmp。由于对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,网络设备确定ip包头未被损坏,此时可从ip包头中获取正确的源ip地址,提高了网络设备对携带有丢包信息的icmp进行发送的准确性。

为了确定数据帧对应的接收设备,网络设备获取到的标识信息可包括目的ip地址,该源ip地址用于指示接收数据帧对应的接收设备。由于数据帧的部分数据包括ip包头,因此该目的ip地址可以从ip包头中获取到。网络设备从ip包头中获取目的ip地址后,可以根据源ip地址向发送设备发送携带有该目的ip地址的icmp。由于对数据帧的部分数据进行第二校验可以是对ip包头进行校验,因此,当对ip包头校验通过时,网络设备确定ip包头未被损坏,此时可从ip包头中获取正确的目的ip地址,提高了网络设备向发送设备发送目的ip地址的准确性。

需要说明的是,tcp是一种面向连接及基于字节流的传输层通信协议,tcp通过拥塞控制机制来保证数据帧在网络中的可靠传输。tcp为了保证不发生丢包,就给每个数据帧设定一个序列号,同时该序列号也保证了数据帧从发送设备传输到接收设备的数据帧的按序接收。由于发送设备可能是向接收设备发送多个数据帧,因此当数据帧为网络设备接收到的发送设备发送给接收设备的多个数据帧时,该标识信息对应多个数据包,为了让发送设备准确获知是哪个数据包出现了丢包事件,此时网络设备获取到的标识信息还包括序列号,根据源ip地址向发送设备发送携带有该序列号的icmp。例如,网络设备可以将序列号添加入icmp的内容部分,随icmp发送给发送设备。

由于数据帧的部分数据可包括ip包头或tcp包头,因此该序列号可以从tcp包头或ip包头中获取到。本实施例中,由于当同一数据流上可能存在多个数据帧时,该标识信息对应的多个数据包,因此为了让发送设备准确获知是哪个数据包出现了丢包事件,此时网络设备获取已被损坏的数据包对应的序列号,将该序列号发送给发送设备,以使得发送设备根据该序列号确定已损坏的数据包,对该数据包进行准确重传,避免将所有数据包都进行重传而浪费网络资源。

由于发送设备可能是向接收设备发送多条数据流,因此当数据帧为网络设备接收到的发送设备发送给至少两个接收设备的至少两条数据流上的数据帧时,为了让发送设备准确获知是哪条数据流上的数据帧出现了损坏,此时网络设备获取到的标识信息还包括端口信息,该端口信息可以包括源端口和目的端口等。由于数据帧的部分数据可以包括tcp包头,因此网络设备可以从tcp包头中获取端口信息,然后根据源ip地址向发送设备发送携带有该端口信息的icmp,以使得发送设备根据端口信息确定已损坏的数据帧所在的数据流。

需要说明的是,网络设备还可以直接将未损坏的ip包头或tcp包头等包头发送给发送设备,由发送设备从包头中获取目的ip地址、序列号及端口信息等标识信息,再对数据包进行重传。例如,网络设备将未损坏的ip包头和tcp包头添加入icmp的内容部分,并随icmp发送至发送设备。发送设备可以从接收到的icmp的内容部分获取ip包头,再从ip包头中提取目的ip地址,以及从接收到的icmp的内容部分获取tcp包头,再从tcp包头中提取序列号。

本实施例中,由于网络设备还可以在icmp预留的多个字段中写入源ip地址、源端口、目的ip地址、目的端口和传输层协议类型等五元组,因此提高了发送设备根据该五元组便捷获知数据帧流向的便捷性。

可以理解的是,网络设备在向发送设备发送携带有丢包信息、源ip地址、目的ip地址、序列号及端口信息等信息的icmp时,可以是在预设时间周期内对一个或多个数据帧进行校验后,确定该一个或多个数据帧中存在丢包事件,且已损坏的数据帧的部分数据未被损坏时,网络设备将携带有丢包信息、源ip地址、目的ip地址、序列号及端口信息等信息的icmp发送给发送设备。如果该时间周期内存在多个数据帧被损坏时,网络设备将每个数据帧对应的丢包信息、源ip地址、目的ip地址、序列号及端口信息等信息进行关联添加至icmp,随icmp一起发送给发送设备。

例如,在某个时间周期内,网络设备确定同一数据流上序列号为3至6的数据帧已损坏,则此次网络设备将携带有序列号为3至6的数据帧对应的丢包信息的icmp发送给发送设备。或者是,在某个时间周期内,网络设备确定数据流a上序列号为1和数据流b上序列号为6的数据帧已损坏,则此次网络设备将携带有数据流a上序列号为1和数据流b上序列号为6的数据帧的丢包信息的icmp发送给发送设备。

可以理解的是,在实际应用中,网络设备除了按照预设时间周期向发送设备发送icmp之外,还可以是其他的发送方式,例如,网络设备每校验一个数据帧,当确定引起丢包事件,且数据帧的部分数据未被损坏时,网络设备就向发送设备发一次携带有丢包信息、源ip地址、目的ip地址、序列号及端口信息等信息的icmp,具体此处不作限定。

当对数据帧的部分数据进行第二校验不通过时,说明数据帧的部分数据已被损坏,此时网络设备无法从数据帧的部分数据中获取正确的标识信息,网络设备将数据帧丢弃,或者执行其他操作,具体此处不作限定。

306、发送设备在接收到icmp后,根据icmp中携带有丢包信息确定需要重传标识信息对应的数据包;

本实施例中,发送设备根据接收到的icmp中携带有丢包信息确定需要重传数据包,在接收到丢包信息后,发送设备还可以进一步检测丢包信息是否携带有非拥塞丢包信息。若携带有非拥塞丢包信息,则发送设备根据非拥塞丢包信息确定重传机制,该重传机制为维持当前的拥塞控制机制,以及在当前的拥塞控制机制下执行重传数据包。

307、发送设备重传数据包;

发送设备在接收到丢包信息后重传数据包,若接收到非拥塞丢包信息,则发送设备在接收到icmp后,根据从icmp中解析出非拥塞丢包信息确定由非网络拥塞原因引起的丢包事件,此时发送设备维持当前的拥塞控制机制,并在当前的拥塞控制机制下执行重传数据包。例如,若发送设备的拥塞控制机制处于慢启动阶段,则发送设备维持当前慢启动的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于拥塞避免阶段,则发送设备维持当前拥塞避免的拥塞控制机制对标识信息对应的数据包执行重传操作;若发送设备的拥塞控制机制处于快速重传阶段,则发送设备维持当前快速重传的拥塞控制机制对标识信息对应的数据包执行重传操作。

308、网络设备对接收到的数据包进行校验;

发送设备通过网络设备向接收设备重传的数据包时,网络设备对接收到重传的数据包进行校验,其校验机制与前述对数据帧的校验方式类似,此处不再赘述。

309、当对重传的数据包校验通过时,网络设备将数据包发送给接收设备;

当对重传的数据包进行校验通过时,说明数据包未被损坏,此时网络设备将数据包发送给接收设备。

310、接收设备在接收到重传的数据包时,通过网络设备向发送设备发送确认报文。

接收设备在接收到重传的数据包时,通过网络设备向发送设备发送确认报文,该确认报文用于指示接收设备已经接收到重传的数据包,该确认报文可以是ack,该ack携带有接收设备已接收到数据帧的确认信息。

为了保证接收设备向发送设备发送确认报文时,接收设备接收到的数据帧是未损坏的,而由于网络设备在将未损坏的数据帧传输给接收设备的过程中,数据帧也可能会在网络设备与接收设备之间传输的过程中被损坏,因此,接收设备在接收到重传的数据包时,首先对接收到重传的数据包进行校验,其校验机制与前述网络设备对数据帧进行第一校验、以及对数据帧的部分数据进行第二校验等校验的校验机制类似,具体此处不再赘述。

当接收设备重传的数据包后,若接收设备确定重传的数据包未被损坏,则向发送设备发送确认报文。当接收设备重传的数据包后,若接收设备确定重传的数据包已被损坏,则生成重传的数据包的丢包信息,并向发送设备发送该丢包信息。

(二)当校验设备为接收设备时,由接收设备对数据帧进行校验,请参照图4,本申请实施例中数据传输控制方法的另一实施例包括:

401、发送设备通过网络设备向接收设备发送数据帧;

402、接收设备对数据帧进行第一校验;

403、当第一校验不通过时,接收设备对数据帧的部分数据进行第二校验;

404、当第二校验通过时,接收设备生成携带有丢包信息的控制报文协议icmp;

405、接收设备通过网络设备向发送设备发送携带有丢包信息的icmp;

406、发送设备在接收到icmp后,根据icmp中携带有丢包信息确定需要重传标识信息对应的数据包;

407、发送设备重传数据包;

408、接收设备对接收到的数据包进行校验;

409、当对重传的数据包校验通过时,接收设备通过网络设备向发送设备发送确认报文。

需要说明的是,对数据帧进行校验及生成icmp等处理可以由网络设备执行之外,还可以由接收设备执行,本实施例中接收设备执行的步骤401至步骤409与前述图3所示实施例中网络设备执行的步骤306至步骤310类似,此处不再赘述。

二、校验设备向发送设备发送携带有丢包信息的ack。

本实施例中,该校验设备为接收设备,由接收设备对数据帧进行校验,请参照图5,本申请实施例中数据传输控制方法的另一实施例包括:

501、发送设备通过网络设备向接收设备发送数据帧;

502、接收设备对数据帧进行第一校验;

503、当第一校验不通过时,接收设备对数据帧的部分数据进行第二校验;

需要说明的是,本实施例中的步骤501至步骤503与前述图4所示实施例中的步骤401至步骤403类似,具体此处不再赘述。

接收设备接收到的数据帧,可以是已经被网络设备校验过的数据帧,也可以是未经网络设备校验的数据帧,即发送设备将数据帧发送给网络设备进行检验后,由网络设备转发给接收设备,接收设备再对数据帧进行校验,或者是发送设备直接将数据帧通过网络设备发送给接收设备,由接收设备随数据帧进行校验。

504、当第二校验通过时,接收设备生成携带有丢包信息的控制报文协议ack;

当对数据帧的部分数据进行第二校验通过时,接收设备确定数据帧的该部分数据未被损坏,此时接收设备生成丢包信息,以及在ack的选项字段中扩展丢包类型选项,将丢包信息添加至该丢包类型选项,该选项字段可以是tcp选项字段。

505、接收设备通过网络设备向发送设备发送携带有丢包信息的ack;

506、发送设备在接收到ack后,根据ack中携带有丢包信息确定需要重传标识信息对应的数据包;

507、发送设备重传数据包;

508、接收设备对接收到的数据包进行校验;

509、当对重传的数据包校验通过时,接收设备通过网络设备向发送设备发送确认报文。

需要说明的是,本实施例中的步骤505至步骤509中接收设备发送ack,以及对数据帧的重传操作,与前述图4所示实施例中的步骤405至步骤409中接收设备发送icmp,以及对数据帧的重传操作类似,此处不再赘述。

上面对本申请实施例中的数据传输控制方法进行了描述,下面对本申请实施例中的数据传输控制装置进行描述,请参阅图6,本申请实施例中数据传输控制装置一个实施例包括:

接收单元601,用于接收发送设备发送的数据帧;

第一校验单元602,用于对接收单元601接收到的数据帧进行第一校验;

第二校验单元603,用于当第一校验单元602确定第一校验不通过时,对接收单元601接收到的数据帧的部分数据进行第二校验;

第一获取单元604,用于当第二校验单元603确定第二校验通过时,从数据帧的部分数据中获取标识信息;

第一发送单元605,用于根据第一获取单元604获取到的标识信息向发送设备发送丢包信息,该丢包信息包括第一获取单元获取到的标识信息,该标识信息用于指示与其对应的数据包发生了丢包。

需要说明的是,本实施例中,数据传输控制装置中各个单元所执行的流程与前述图2所示的实施例中描述的方法流程类似,此处不再赘述。

本申请实施例的一些实施例中,丢包信息包括非拥塞丢包信息,非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。第一发送单元605具体用于,校验设备根据第一获取单元604获取到的标识信息向发送设备发送非拥塞丢包信息,非拥塞丢包信息用于指示发送设备维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作。

本申请实施例的一些实施例中,标识信息包括源ip地址,数据帧的部分数据包括ip包头,第一获取单元604具体用于,从ip包头中获取源ip地址。第一发送单元605具体用于,根据第一获取单元604获取到的源ip地址向发送设备发送丢包信息。

本申请实施例的一些实施例中,标识信息还包括目的ip地址,第一获取单元604具体用于,从ip包头中获取目的ip地址。第一发送单元605具体用于,根据第一获取单元604获取到的源ip地址向发送设备发送目的ip地址。

本申请实施例的一些实施例中,标识信息还包括序列号,数据帧的部分数据还包括tcp包头,第一获取单元604具体用于,从tcp包头或ip包头中获取序列号。第一发送单元605具体用于,根据第一获取单元604获取到的源ip地址向发送设备发送序列号。

本申请实施例的一些实施例中,标识信息还包括端口信息,第一获取单元604具体用于,从tcp包头中获取端口信息;第一发送单元605具体用于,根据第一获取单元604获取到的源ip地址向发送设备发送端口信息。

本申请实施例的一些实施例中,第一校验单元602具体用于,在数据链路层对接收单元601接收到的数据帧进行校验。

本申请实施例的一些实施例中,第二校验单元603具体用于,在ip层对接收单元601接收到的数据帧中的部分数据进行ip包头校验。

本申请实施例的一些实施例中,数据传输控制装置还包括:第一添加单元,用于将丢包信息添加至预置的控制报文协议icmp的丢包类型选项。第一发送单元605具体用于,向发送设备发送第一添加单元得到的携带有丢包信息的icmp。

本申请实施例的一些实施例中,数据传输控制装置还包括:第二添加单元,用于将丢包信息添加至预置的应答报文协议ack的丢包类型选项。第一发送单元605具体用于,向发送设备发送第二添加单元得到的携带有丢包信息的ack。

需要说明的是,在本申请实施例的一些实施例中,数据传输控制装置中各个单元所执行的流程与前述图2至图5所示的实施例中描述的方法流程类似,此处不再赘述。

上面对本申请实施例中的数据传输控制装置进行了描述,下面对本申请实施例中的发送设备进行描述,请参阅图7,本申请实施例中发送设备一个实施例包括:

发送单元701,用于向校验设备发送数据帧;

侦测单元702,用于侦测是否接收到校验设备发送的丢包信息,丢包信息由校验设备对发送单元701发送的数据帧进行第一校验不通过,且对数据帧的部分数据进行第二校验通过时发送,该丢包信息包括校验设备从数据帧的部分数据中获取到的标识信息;

执行单元703,用于若侦测单元702确定接收到校验设备发送的丢包信息,则对标识信息对应的数据包执行重传操作。

本申请实施例的一些实施例中,执行单元703包括:判断子单元,用于判断丢包信息中是否包含非拥塞丢包信息,非拥塞丢包信息用于表示由非网络拥塞原因引起的丢包事件。执行子单元,用于若判断子单元确定丢包信息中包含非拥塞丢包信息,则维持当前的拥塞控制机制,以及在拥塞控制机制下对标识信息对应的数据包执行重传操作。

需要说明的是,在本申请实施例的实施例中,发送设备中各个单元所执行的流程与前述图2至图5所示的实施例中描述的方法流程类似,此处不再赘述。

上面从模块化功能实体的角度对本申请实施例中的数据传输控制装置及发送设备进行描述,下面从硬件处理的角度对本申请实施例中的校验设备进行描述,本申请实施例中的校验设备一个实施例包括:

输入装置801、输出装置802、处理器803和存储器804(其中网络设备中的处理器801的数量可以一个或多个,图8中以一个处理器801为例)。在本发明的一些实施例中,输入装置801、输出装置802、处理器803和存储器804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。

其中,存储器804中存储有程序代码,通过调用存储器804存储的程序代码,处理器803用于执行如前述图2至图5所示实施例的方法。

本申请实施例中的发送设备一个实施例包括:输入装置、输出装置、处理器和存储器(其中网络设备中的处理器的数量可以一个或多个)。在本发明的一些实施例中,输入装置、输出装置、处理器和存储器可通过总线或其它方式连接。其中,存储器中存储有程序代码,通过调用存储器存储的程序代码,处理器用于执行如前述图2至图5所示实施例的方法。

本申请实施例中,发送设备及接收设备均可以是终端,本实施例提供了一种终端,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、pda(personaldigitalassistant,个人数字助理)、pos(pointofsales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:

如图9所示,图9示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图9,手机包括:射频(radiofrequency,rf)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wirelessfidelity,wifi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图9对手机的各个构成部件进行具体的介绍:

rf电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,rf电路1110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路1110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1130可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板1141。进一步的,触控面板1131可覆盖显示面板1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图9中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1160、扬声器1161,传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经rf电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了wifi模块1170,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。

手机还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本申请实施例中,该终端所包括的处理器1180还具有以下功能:处理器调用存储器中的程序代码时执行如前述图2至图5所示实施例的数据传输控制方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1