本发明涉及通信技术领域,尤其涉及一种数据传输的方法、无线接入点、用户设备及传输设备。
背景技术:
随着网络技术的不断发展,网络已经成为人们生活的重要组成部分,尤其在家庭网络中,各终端设备(如机顶盒)通过无线保真(wirelessfidelity,wi-fi)接入网络连接来访问网络设备(如服务器)已经逐渐成为主流。终端设备与网络设备之间可以通过传输控制协议(transmissioncontrolprotocol,tcp)进行数据传输。终端设备和网络设备之间的数据通过无线接入点进行传输,在数据传输过程中,无线接入点将网络设备发送的tcp报文封装在介质访问控制(mediaaccesscontrol,mac)层的数据帧中并通过wi-fi发送给终端设备。
在现有技术中,可以采用tcp层的重传确认机制保证终端设备与网络设备之间数据传输的可靠性,并采用mac层的重传确认机制保证终端设备与无线接入点之间数据传输的可靠性。
在tcp层的重传确认机制中,终端设备通过无线接入点向服务器发送用于确认已接收到tcp报文的tcp确认(acknowledgement,ack)报文。在mac层的重传确认机制中,终端设备向无线接入点发送用于确认已接收到数据帧的块确认(blockack,ba)帧。由于采用两层重传确认机制,增加了通过wi-fi传输数据的数量,加剧了信道的竞争,降低了tcp传输数据的性能。
技术实现要素:
本申请提供了一种数据传输的方法、装置及存储介质,能够提高tcp传输数据的性能。
第一方面,本申请提供了一种数据传输的方法,包括:
无线接入点通过与终端设备之间的无线连接接收终端设备发送的ba帧,ba帧用于确认终端设备已接收到无线接入点发送的第一数据帧,第一数据帧中封装了第一tcp报文;
无线接入点根据ba帧确定第一tcp报文的信息;
无线接入点根据第一tcp报文的信息构造第一tcpack报文,第一tcpack报文用于确认用户设备已接收到第一tcp报文,用户设备为终端设备或通过终端设备与无线接入点通信的设备;
无线接入点向网络设备发送第一tcpack报文,网络设备为发送第一tcp报文的设备。
本申请中,无线接入点在接收用于确认终端设备已接收到数据帧的ba帧后,可以根据ba帧确定出数据帧中封装的tcp报文的信息,进而可以构造出用于确认用户设备已接收到tcp报文的tcpack报文,并将构造的tcpack报文发送给网络设备。如此无线接入点可以在接收ba帧后构造出用于确认用户设备已接收到tcp报文的tcpack报文,并发送给网络设备,所以终端设备不需要在发送ba帧后向其发送tcpack报文,无线接入点也可以构造tcpack报文发送给网络设备,以完成重传确认机制,减少了通过无线接入点与终端设备之间无线连接传输数据的数量,进而提高了tcp传输数据的性能。
结合第一方面,在第一方面的第一种可能的实施方式中,第一tcpack报文包括第一接收窗口值的,第一接收窗口值为无线接入点存储的或从ba帧中获取的,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
结合第一方面或第一方面的任一种可能的实施方式,在第一方面的第二种可能的实施方式中,在无线接入点根据第一tcp报文的信息构造第一tcpack报文之前,还包括:
无线接入点判断ba帧是否包括接收窗口值;
当ba帧包括接收窗口值时,无线接入点确定第一接收窗口值为ba帧中的接收窗口值;
当ba帧不包括接收窗口值时,无线接入点确定第一接收窗口值为无线接入点存储的接收窗口值,无线接入点存储的接收窗口值为无线接入点在接收ba帧之前接收的另一ba帧中获取的,另一ba帧为终端设备发送的。
结合第一方面或第一方面的任一种可能的实施方式,在第一方面的第三种可能的实施方式中,还包括:
当ba帧包括接收窗口值时,无线接入点将无线接入点存储的接收窗口值更新为ba帧中的接收窗口值。
结合第一方面或第一方面的任一种可能的实施方式,在第一方面的第四种可能的实施方式中,无线接入点根据ba帧确定第一tcp报文的信息之前,还包括:
无线接入点存储向终端设备发送的数据帧的序号和数据帧中所封装tcp报文的信息之间的对应关系;
无线接入点根据ba帧确定第一tcp报文的信息,包括:
无线接入点根据ba帧获取第一序号,第一序号为ba帧所确认的数据帧的序号;
无线接入点根据第一序号和对应关系确定第一tcp报文的信息。
第二方面,本申请提供了一种数据传输的方法,包括:
用户设备通过与无线接入点之间的无线连接接收无线接入点发送的封装了第一tcp报文的第一数据帧;
用户设备通过无线连接向无线接入点发送包括第一接收窗口值的ba帧,ba帧用于表示用户设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcpack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
本申请中,用户设备在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,使无线接入点构造出包括第一接收窗口值且用于确认用户设备已接收到tcp报文的tcpack报文,如此用户设备通过ba帧向无线接入点发送用户设备的接收窗口值,从而可以使无线接入点构造出用于确认用户设备已接收到tcp报文的tcpack报文,而不需要用户设备向无线接入点发送tcpack报文,减少了通过无线连接传输数据的数量,提高了tcp传输数据的性能。
结合第二方面,在第二方面的第一种可能的实施方式中,在用户设备通过与无线接入点之间的无线连接接收到无线接入点发送的封装了第一传输控制协议tcp报文的第一数据帧之前,还包括:
用户设备在通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,获取第一接收窗口值。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,用户设备包括mac模块和tcp模块;
用户设备在通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,获取第一接收窗口值,包括:
mac模块在通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,向tcp模块发送第二tcp报文;
mac模块接收tcp模块发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示tcp模块已接收到第二tcp报文;
用户设备通过与无线接入点之间的无线连接接收无线接入点发送的封装了第一传输控制协议tcp报文的第一数据帧,包括:
mac模块通过无线连接接收第一数据帧;
用户设备通过无线连接向无线接入点发送包括第一接收窗口值的块确认ba帧,包括:
mac模块通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,mac模块接收tcp模块发送的第二tcpack报文,包括:
mac模块判断第一接收窗口值与mac模块存储的第二接收窗口值是否相同;
当第一接收窗口值与第二接收窗口值不相同时,mac模块将第二接收窗口值更新为第一接收窗口值。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第四种可能的实施方式中,mac模块通过无线连接向无线接入点发送包括第一接收窗口值的ba帧,包括:
mac模块判断mac模块在目标时间段内是否更新了mac模块存储的接收窗口值,目标时间段表示mac模块前一次向无线接入点发送ba帧与当前时刻之间的时间段;
当在目标时间段内更新了mac模块存储的接收窗口值时,mac模块通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第五种可能的实施方式中,在mac模块通过无线连接接收第一数据帧后,还包括:
mac模块缓存第一tcp报文;
mac模块向tcp模块发送第一tcp报文。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第六种可能的实施方式中,在mac模块向tcp模块发送第一tcp报文之后,还包括:
当接收到tcp模块发送的预设数目个重复确认(duplicateack,dack)报文时,mac模块向tcp模块再次传输第一tcp报文。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第七种可能的实施方式中,在mac模块向tcp模块发送第一tcp报文之后,还包括:
当在预设时间段内未收到tcp模块发送的目标tcpack报文时,mac模块向tcp模块再次传输第一tcp报文,目标tcpack报文表示tcp模块已接收到第一tcp报文。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第八种可能的实施方式中,还包括:
当接收到tcp模块发送的目标tcpack报文时,mac模块删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
第三方面,本申请提供了一种数据传输的方法,包括:
传输设备通过与无线接入点之间的无线连接接收封装了第一tcp报文的第一数据帧,第一tcp报文为网络设备向用户设备发送的;
传输设备通过无线连接向无线接入点发送包括第一接收窗口值的ba帧,ba帧用于确认传输设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcpack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小;
传输设备通过与用户设备之间的有线连接向用户设备发送第一tcp报文。
本申请中,传输设备在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,使无线接入点构造出包括第一接收窗口值且用于确认用户设备已接收到tcp报文的tcpack报文,如此传输设备通过ba帧向无线接入点发送用户设备的接收窗口值,从而可以使无线接入点自己构造出用于确认用户设备已接收到tcp报文的tcpack报文,而不需要用户设备向无线接入点发送tcpack报文,减少了通过无线连接传输数据的数量,提高了tcp传输数据的性能。
结合第三方面,在第三方面的第一种可能的实施方式中,在传输设备通过与无线接入点之间的无线连接接收封装了第一传输控制协议tcp报文的第一数据帧之前,还包括:
传输设备在通过无线连接接收封装了第二tcp报文的第二数据帧时,通过有线连接向用户设备发送第二tcp报文;
传输设备接收用户设备通过有线连接发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示用户设备已接收到第二tcp报文。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第二种可能的实施方式中,传输设备接收用户设备通过有线连接发送的第二tcpack报文之后,还包括:
传输设备判断第一接收窗口值与传输设备存储的第二接收窗口值是否相同;
当第一接收窗口值与第二接收窗口值不相同时,传输设备将第二接收窗口值更新为第一接收窗口值。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第三种可能的实施方式中,传输设备通过无线连接向无线接入点发送包括第一接收窗口值的块确认ba帧,包括:
传输设备判断传输设备在目标时间段内是否更新了传输设备存储的接收窗口值,目标时间段表示传输设备前一次向无线接入点发送ba帧与当前时刻之间的时间段;
当在目标时间段内更新了传输设备存储的接收窗口值时,传输设备通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第四种可能的实施方式中,在传输设备通过无线连接接收第一数据帧后,还包括:
传输设备缓存第一tcp报文。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第五种可能的实施方式中,在传输设备通过与用户设备之间的有线连接向用户设备发送第一tcp报文之后,还包括:
当接收到用户设备发送的预设数目个dack报文时,传输设备通过有线连接向用户设备再次传输第一tcp报文。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第六种可能的实施方式中,在传输设备通过与用户设备之间的有线连接向用户设备发送第一tcp报文之后,还包括:
当在预设时间段内未收到用户设备发送的目标tcpack报文时,传输设备通过有线连接向用户设备再次传输第一tcp报文,目标tcpack报文表示用户设备已接收到第一tcp报文。
结合第三方面或第三方面的任一种可能的实施方式,在第三方面的第七种可能的实施方式中,还包括:
当接收到用户设备发送的目标tcpack报文时,传输设备删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
第四方面,本申请提供了一种无线接入点,包括:
接收单元,用于通过与终端设备之间的无线连接接收终端设备发送的ba帧,ba帧用于确认终端设备已接收到无线接入点发送的第一数据帧,第一数据帧中封装了第一tcp报文;
确定单元,用于根据ba帧确定第一tcp报文的信息;
构造单元,用于根据第一tcp报文的信息构造第一tcpack报文,第一tcpack报文用于确认用户设备已接收到第一tcp报文,用户设备为终端设备或通过终端设备与无线接入点通信的设备;
发送单元,用于向网络设备发送第一tcpack报文,网络设备为发送第一tcp报文的设备。
结合第四方面,在第四方面的第一种可能的实施方式中,第一tcpack报文包括第一接收窗口值的,第一接收窗口值为无线接入点存储的或从ba帧中获取的,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
结合第四方面或第四方面的第一种可能的实施方式,在第四方面的第二种可能的实施方式中,还包括:
判断单元,用于判断ba帧是否包括接收窗口值;
确定单元还用于当ba帧包括接收窗口值时,确定第一接收窗口值为ba帧中的接收窗口值;
确定单元还用于当ba帧不包括接收窗口值时,确定第一接收窗口值为无线接入点存储的接收窗口值,无线接入点存储的接收窗口值为无线接入点在接收ba帧之前接收的另一ba帧中获取的,另一ba帧为终端设备发送的。
结合第四方面或第四方面的第一种可能的实施方式,在第四方面的第三种可能的实施方式中,还包括:
更新单元,用于当ba帧包括接收窗口值时,将无线接入点存储的接收窗口值更新为ba帧中的接收窗口值。
结合第四方面或第四方面的第一种可能的实施方式,在第四方面的第四种可能的实施方式中,还包括:
存储单元,用于存储向终端设备发送的数据帧的序号和数据帧中所封装tcp报文的信息之间的对应关系;
确定单元在根据ba帧确定第一tcp报文的信息时,具体用于:
根据ba帧获取第一序号,第一序号为ba帧所确认的数据帧的序号;
根据第一序号和对应关系确定第一tcp报文的信息。
第五方面,本申请提供了一种用户设备,包括:
第一接收单元,用于通过与无线接入点之间的无线连接接收无线接入点发送的封装了第一tcp报文的第一数据帧;
第一发送单元,用于通过无线连接向无线接入点发送包括第一接收窗口值的ba帧,ba帧用于表示用户设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcpack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
结合第五方面,在第五方面的第一种可能的实施方式中,还包括:
处理单元,用于在第一接收单元通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,获取第一接收窗口值。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第二种可能的实施方式中,用户设备包括mac模块和tcp模块;mac模块包括第一接收单元、第一发送单元、处理单元、第二接收单元和第一发送单元;
处理单元具体用于在第一接收单元通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,通过第二发送单元向tcp模块发送第二tcp报文;以及,用于通过第二接收单元接收tcp模块发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示tcp模块已接收到第二tcp报文。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第三种可能的实施方式中,处理单元还用于判断第一接收窗口值与mac模块存储的第二接收窗口值是否相同;以及,用于当第一接收窗口值与第二接收窗口值不相同时,将第二接收窗口值更新为第一接收窗口值。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第四种可能的实施方式中,处理单元还用于判断mac模块在目标时间段内是否更新了mac模块存储的接收窗口值,目标时间段表示mac模块前一次向无线接入点发送ba帧与当前时刻之间的时间段;
第一发送单元具体用于当在目标时间段内更新了mac模块存储的接收窗口值时,通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第五种可能的实施方式中,处理单元还用于缓存第一tcp报文;以及,用于通过第二发送单元向tcp模块发送第一tcp报文。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第六种可能的实施方式中,处理单元还用于当通过第二接收单元接收到tcp模块发送的预设数目个重复确认dack报文时,通过第二发送单元向tcp模块再次传输第一tcp报文。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第七种可能的实施方式中,处理单元还用于当在预设时间段内通过所述第二接收单元未接收到tcp模块发送的目标tcpack报文时,通过第二发送单元向tcp模块再次传输第一tcp报文,目标tcpack报文表示tcp模块已接收到第一tcp报文。
结合第五方面或第五方面的第一种可能的实施方式,在第五方面的第八种可能的实施方式中,处理单元用于当通过第二接收单元接收到tcp模块发送的目标tcpack报文时,删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
第六方面,本申请提供了一种传输设备,包括:
第一接收单元,用于通过与无线接入点之间的无线连接接收封装了第一tcp报文的第一数据帧,第一tcp报文为网络设备向用户设备发送的;
第一发送单元,用于通过无线连接向无线接入点发送包括第一接收窗口值的ba帧,ba帧用于确认传输设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcpack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小;
第二发送单元,用于通过与用户设备之间的有线连接向用户设备发送第一tcp报文。
结合第六方面,在第六方面的第一种可能的实施方式中,第二发送单元还用于在接收单元通过无线连接接收封装了第二tcp报文的第二数据帧时,通过有线连接向用户设备发送第二tcp报文;
传输设备还包括:
第二接收单元,用于接收用户设备通过有线连接发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示用户设备已接收到第二tcp报文。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第二种可能的实施方式中,还包括:
第一判断单元,用于判断第一接收窗口值与传输设备存储的第二接收窗口值是否相同;
更新单元,用于当第一接收窗口值与第二接收窗口值不相同时,将第二接收窗口值更新为第一接收窗口值。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第三种可能的实施方式中,还包括:
第二判断单元,用于判断传输设备在目标时间段内是否更新了传输设备存储的接收窗口值,目标时间段表示传输设备前一次向无线接入点发送ba帧与当前时刻之间的时间段;
第一发送单元具体用于当在目标时间段内更新了传输设备存储的接收窗口值时,通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第四种可能的实施方式中,还包括:
缓存单元,用于缓存第一tcp报文。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第五种可能的实施方式中,第二发送单元还用于当第二接收单元接收到用户设备发送的预设数目个dack报文时,通过有线连接向用户设备再次传输第一tcp报文。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第六种可能的实施方式中,第二发送单元还用于当第二接收单元在预设时间段内未收到用户设备发送的目标tcpack报文时,通过有线连接向用户设备再次传输第一tcp报文,目标tcpack报文表示用户设备已接收到第一tcp报文。
结合第六方面或第六方面的第一种可能的实施方式,在第六方面的第七种可能的实施方式中,还包括:
删除单元,用于当第二接收单元接收到用户设备发送的目标tcpack报文时,删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
第七方面,本发明实施例提供一种无线接入点,包括:
存储器、处理器、通信接口和总线;
存储器、处理器和通信接口通过总线连接并完成相互间的通信;
存储器用于存储程序代码;
处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行如第一方面所述的方法。
第八方面,本发明实施例提供一种用户设备,包括:
存储器、处理器、通信接口和总线;
存储器、处理器和通信接口通过总线连接并完成相互间的通信;
存储器用于存储程序代码;
处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行如第二方面所述的方法。
第九方面,本发明实施例提供一种传输设备,包括:
存储器、处理器、通信接口和总线;
存储器、处理器和通信接口通过总线连接并完成相互间的通信;
存储器用于存储程序代码;
处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行如第三方面所述的方法。
第十方面,本发明实施例提供一种数据处理的系统,包括如第四方面所述的无线接入点和如第五方面所述的用户设备。
第十一方面,本发明实施例提供一种数据处理的系统,包括如第四方面所述的无线接入点和如第六方面所述的传输设备。
第十二方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
第十三方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第二方面所述的方法。
第十四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第三方面所述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1是根据本发明实施例提供的一种网络架构示意图;
图2是根据本发明实施例提供的又一种网络架构示意图;
图3是根据本发明一实施例提供的数据传输的方法的示意性流程图;
图4是根据本发明又一实施例提供的数据传输的方法的示意性流程图;
图5为根据本发明一实施例提供的无线接入点的示意性框图;
图6为根据本发明又一个或多个实施例提供的无线接入点的示意性框图;
图7为根据本发明一实施例提供的用户设备的示意性框图;
图8为根据本发明又一个或多个实施例提供的用户设备的示意性框图;
图9是根据本发明一实施例提供的传输设备的示意性框图;
图10是根据本发明又一个或多个实施例提供的传输设备的示意性框图;
图11为根据本发明另一实施例提供的无线接入点的示意性框图;
图12是根据本发明另一实施例提供的用户设备的示意性框图;
图13是根据本发明另一实施例提供的传输设备的示意性框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例适用于通过tcp协议在无线网络中进行数据传输的场景。如图1所示,为本发明实施例适用的一种网络架构示意图。在图1中,网络设备为网络中为用户设备提供服务的设备,具体可以为服务器等等;无线接入点为网络中间设备,通常同时包含有线网络接口和无线网络接口,可以通过无线网络接口与用户设备建立如wi-fi等无线网络连接,从而可以将用户设备连接到网络中,同时,无线接入点还可以通过有线网络接口与网络设备建立有线连接,从而使网络设备可以通过无线接入点为用户设备提供服务,无线接入点具体的可以为家庭网关(homegateway,homegw)等等;用户设备可以包括机顶盒、手机、计算机等设备,通过如wi-fi等无线网络与无线接入点连接,并可以通过无线接入点与网络设备建立连接,例如tcp连接,从而用户设备与网络设备之间可以进行数据传输。如图2所示,为本发明实施例适用的又一种网络架构示意图。图2中网络设备与图1中网络设备相同,图2中无线接入点与图1中无线接入点相同,详情可以参见图1中描述;如图2所示,用户设备与无线接入点之间还可以不直接连接,而是通过传输设备进行连接。在图2中,传输设备与无线接入点之间建立无线网络连接,并与用户设备之间建立有线连接,所以用户设备通过传输设备和无线接入点与网络设备之间建立如tcp连接等数据连接,从而可以与网络设备之间进行数据传输,传输设备具体可以是接入点(accesspoint,ap)。对于图1中与无线接入点连接的用户设备和图2中与无线接入点连接的传输设备可以通称为终端设备。
需要说明的是,通过tcp协议传输数据时,根据tcp协议发送端可以通过接收端的tcp接收窗口的大小来控制传输数据流的大小,接收窗口值表示了tcp接收窗口的大小。tcp接收窗口的大小通常随着数据传输过程中丢包情况、接收端缓存等因素而实时变化,所以接收端会在返回发送端的tcpack报文中添加接收端实时的接收窗口值,从而可以使发送端能够根据接收端的接收窗口值来调整发送的数据流。所以在图1和图2所示网络架构中,网络设备作为发送端向作为接收端的用户设备发送tcp报文,用户设备在向网络设备发送tcpack报文时会携带用户设备当前的接收窗口值。
本发明一实施例提供了一种数据传输的方法,用于图1所示的网络架构中,如图3所示,该方法包括以下步骤。
101,网络设备与用户设备之间建立tcp连接。
网络设备与用户设备之间通过无线接入点建立tcp连接,以便于两者之间可以通过建立的tcp连接通信。
网络设备与用户设备之间进行数据传输过程中,网络设备向用户设备发送tcp报文,用户设备在接收到网络设备发送的tcp报文后,会回复tcp报文对应的tcpack报文,tcpack报文用于确认用户设备已经收到tcpack报文对应的tcp报文。用户设备发送tcp报文对应的tcpack报文,以便于通知网络设备其已经接收到tcp报文。网络设备通过接收tcp报文对应的tcpack报文,来确认用户设备已经接收到tcp报文。如果网络设备确认用户设备没有接收到该tcp报文,则会重传该tcp报文。
102,网络设备向无线接入点发送第一tcp报文。
第一tcp报文为网络设备向用户设备发送的。网络设备与用户设备之间通过无线接入点建立tcp连接后,即可通过无线接入点与用户设备进行数据传输。网络设备通过网络设备与无线接入点之间的有线连接,将要发送给用户设备的第一tcp报文发送给无线接入点,通过无线接入点传输给用户设备。
103,无线接入点将第一tcp报文封装为第一数据帧后,将第一数据帧发送至用户设备。
无线接入点接收网络设备发送的第一tcp报文后,需要将其封装为第一数据帧后再进行传输。第一数据帧中封装了第一tcp报文,无线接入点完成封装后将第一数据帧发送给用户设备。
需要说明的是,本发明实施例中将tcp报文封装为数据帧指的是,为该tcp报文添加无线局域网(wirelesslocalareanetwork,wlan)头部从而生成包括该tcp报文的数据帧。
需要说明的是,无线接入点在封装第一tcp报文后,可以存储第一数据帧的信息和第一tcp报文的信息之间的对应关系,以便于后续无线接入点根据第一数据帧的信息来查找第一tcp报文的信息,以及根据第一tcp报文的信息来构造对应第一tcp报文的tcpack报文。在网络设备与用户设备之间建立tcp连接时,无线接入点还可以通过连接建立过程中传输的数据来获取tcp连接相关的信息,例如,tcp连接的五元组信息,以便于构造tcpack报文。第一tcp报文的信息可以包括第一tcp报文的序号、第一tcp报文的报文长度等,第一数据帧的信息包括第一数据帧的序号。
104,用户设备接收第一数据帧后,向无线接入点发送包括第一接收窗口值的ba帧。
ba帧用于表示用户设备已接收到第一数据帧。用户设备与无线接入点之间通过无线网络传输数据帧,在无线接入点通过无线网络向用户设备发送数据帧后,用户设备会通过无线网络向无线接入点返回ba帧,无线接入点接收到ba帧可以确认用户设备已经接收到了数据帧。
用户设备接收的第一数据帧后,对第一数据帧进行解析即可得出第一tcp报文,即用户设备接收到第一tcp报文,通常情况下,此时用户设备需要通过无线接入点向网络设备发送对应第一tcp报文的第一tcpack报文,并在第一tcpack报文中添加用户设备此时的第一接收窗口值。本发明实施例中,为了减少无线接入点与用户设备之间传输的数据,用户设备向无线接入点发送ba帧后,无线接入点可以构造出用于确认用户设备已接收到第一tcp报文的第一tcpack报文并发送给网络设备,从而不需要用户设备向无线接入点发送第一tcpack报文。但是,网络设备需要通过第一tcpack报文确定用户设备的接收窗口值,所以用户设备可以在向无线接入点发送ba帧时,在ba帧中添加用户设备的第一接收窗口值,将用户设备的第一接收窗口值发送给无线接入点,无线接入点接收ba帧后可以在构造第一tcpack报文时,将ba帧中的第一接收窗口值添加到第一tcpack报文中,进而使网络设备能够根据第一tcpack报文确定出用户设备的第一接收窗口值。
由于接收窗口值的字段长度只有2个字节,其添加到ba帧中并不会给ba帧的传输带来很大的影响,所以本发明实施例中可以在基本不影响ba帧传输的情况下,减少通过wi-fi传输数据的数量,提高了tcp传输数据的性能。
作为本发明实施例的一种可选的实施方式,用户设备在接收第一数据帧之前,还可以在通过无线连接接收无线接入点发送的第二数据帧时,获取第一接收窗口值。
第二数据帧中封装了第二tcp报文。用户设备在接收第二数据帧时获取到了用户设备的第一接收窗口值,则本步骤中可以通过ba帧将第一接收窗口值发送给无线接入点。
需要说明的是,用户设备在每次获取到接收窗口值时,并不一定会立刻向无线接入点发送ba帧,所以用户设备可以将获取的接收窗口值先进行存储,当向无线接入点发送ba帧时再通过ba帧将接收窗口值发送给无线接入点。
另外,为了进一步保证ba帧传输的稳定性,本发明实施例中可以在用户设备获取的接收窗口值发生变化时,再向无线接入点发送包括接收窗口值的ba帧,而在用户设备获取的接收窗口值未发生变化时,向无线接入点发送不包括接收窗口值的ba帧,从而可以降低对ba帧传输的影响。
具体的,用户设备可以在获取到第一接收窗口值时,可以判断获取的第一接收窗口值与存储的接收窗口值是否相同。如果第一接收窗口值与存储的接收窗口值不相同,说明用户设备的接收窗口值发生了变化,则可以向无线接入点发送包括接收窗口值的ba帧;如果第一接收窗口值与存储的接收窗口值相同,说明用户设备的接收窗口值未发生变化,则可以向无线接入点发送不包括接收窗口值的ba帧。
105,无线接入点接收ba帧后,根据ba帧确定第一tcp报文的信息。
无线接入点接收ba帧后,可以确认用户设备已收到第一数据帧,第一数据帧中封装了第一tcp报文,所以可以确认用户设备也接收到了第一tcp报文。无线接入点可以根据ba帧确定第一tcp报文的信息,以便于构造用于确认用户设备已接收到第一tcp报文的第一tcpack报文。
具体的,在步骤103中,无线接入点可以存储向用户设备发送的第一数据帧的序号、第一tcp报文的信息,以及第一数据帧的序号与第一tcp报文的信息之间的对应关系。本步骤中,无线接入点根据ba帧中的信息可以获取出ba帧所确认数据帧的序号,即第一数据帧的序号,进而根据第一数据帧的序号和对应关系即可确定出封装在第一数据帧中的第一tcp报文的信息。
106,无线接入点根据第一tcp报文的信息构造第一tcpack报文。
第一tcpack报文用于确认用户设备已接收到第一tcp报文。无线接入点可以根据第一tcp报文的信息构造第一tcpack报文,而不需要用户设备发送,减少无线网络中传输的数据量。
由于用户设备通常通过tcpack报文携带其接收窗口值,来通知网络设备其接收窗口值,所以无线接入点在构造第一tcpack报文时,还可以在第一tcpack报文中添加用户设备的接收窗口值,即ba帧中的第一接收窗口值。
作为本发明实施例的一种可选的实施方式,用户设备可以在接收窗口值发生变化时才通过ba帧发送变化后的接收窗口值,所以无线接入点可以在首次接收包括接收窗口值的ba帧时,将接收窗口值进行存储。在后续再次接收到ba帧后构造tcpack报文时,判断ba帧中是否包括了接收窗口值。如果ba帧中包括了接收窗口值,则说明用户设备的接收窗口值发生变化,此时需要根据ba帧中包括的接收窗口值构造tcpack报文;如果ba帧中未包括接收窗口值,则说明用户设备的接收窗口值未发生变化,此时需要根据无线接入点存储的接收窗口值构造tcpack报文。同时,在ba帧中包括了接收窗口值时,将无线接入点存储的接收窗口值更新为ba帧中包括的接收窗口值,以保证无线接入点中存储的接收窗口值的准确性。
具体的,本步骤中无线接入点可以在接收到ba帧后,可以判断ba帧是否包括第一接收窗口值。如果ba帧包括第一接收窗口值,则在第一tcpack报文中添加第一接收窗口值,并将无线接入点存储的接收窗口值更新为ba帧中包括的第一接收窗口值;如果ba帧不包括第一接收窗口值,则在第一tcpack报文中添加无线接入点存储的接收窗口值。
需要说明的是,所述无线接入点存储的接收窗口值均为无线接入点从接收的用户设备发送的ba帧中获取的。
107,无线接入点向网络设备发送构造的第一tcpack报文。
无线接入点构造第一tcpack报文后,将构造的第一tcpack报文发送给网络设备,以便于网络设备可以确认用户设备已经接收到了第一tcp报文。并在第一tcpack报文包括用户设备的接收窗口值时,根据第一tcpack报文来确定用户设备的接收窗口值。
本发明实施例中,用户设备在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,无线接入点在接收用于确认终端设备已接收到数据帧的ba帧后,可以根据ba帧确定出数据帧中封装的tcp报文的信息,进而可以构造出用于确认用户设备已接收到tcp报文的tcpack报文,并将构造出用于确认用户设备已接收到tcp报文的tcpack报文发送给网络设备。如此无线接入点可以在接收ba帧后构造出用于确认用户设备已接收到tcp报文的tcpack报文,并发送给网络设备,所以用户设备不需要在发送ba帧后向其发送tcpack报文,无线接入点也可以构造tcpack报文发送给网络设备,以完成重传确认机制,减少了通过无线接入点与用户设备之间无线连接传输数据的数量,进而提高了tcp传输数据的性能。
根据tcp/网间协议(internetprotocol,ip)协议栈原理,设备可以划分为不同的网络结构,例如划分为5层网络结构,包括应用层、tcp层、ip层、mac层和物理层。其中,应用层、tcp层、ip层和mac层相当于将设备的控制器分为应用模块、tcp模块、ip模块和mac模块,分别用来执行对应的功能。本发明实施例中,用户设备也可以划分网络结构,具体的可以包括tcp模块和mac模块。mac模块与无线接入点进行通信,进行数据帧的传输,tcp模块从mac模块中获取发送给用户设备的tcp报文并进行处理。
所以作为本发明实施例的又一种可选的实施方式,用户设备可以包括tcp模块和mac模块。步骤104中用户设备通过mac模块接收第一数据帧,并通过mac模块向无线接入点发送包括第一接收窗口值的ba帧。
mac模块接收无线接入点发送的数据帧后,对数据帧进行解析得出数据帧中封装的tcp报文,然后将tcp报文发送给tcp模块进行处理。tcp模块接收tcp报文后,会向mac模块返回表示确认已接收到tcp报文的tcpack报文,并在tcpack报文添加了用户设备的接收窗口值。所以mac模块可以通过tcp模块发送的tcpack报文来获得用户设备的接收窗口值。所以步骤104中mac模块向无线接入点发送的ba帧中包括的第一接收窗口值,可以为mac模块在接收第一数据帧之前向tcp模块发送第二tcp报文,并接收tcp模块发送的对应第二tcp报文的第二tcpack报文中获得的。
mac模块在通过tcp模块发送的tcpack报文中获得接收窗口值后,并不一定会立刻向无线接入点发送ba帧,所以mac模块可以将获取的接收窗口值先进行存储,在后续向无线接入点发送ba帧时通过ba帧将接收窗口值发送给无线接入点。
mac模块在存储用户设备的接收窗口值过程中,用户设备的接收窗口值可能会发生变化,mac模块为了保证存储的接收窗口值的准确性,需要对存储的接收窗口值进行更新。
具体的,mac模块在通过第二tcpack报文获取到第一接收窗口值时,可以判断获取的第一接收窗口值与存储的第二接收窗口值是否相同。如果第一接收窗口值与第二接收窗口值不相同,说明用户设备的接收窗口值发生了变化,则可以将第二接窗口值更新为第一接收窗口值;如果第一接收窗口值与存储的接收窗口值相同,说明用户设备的接收窗口值未发生变化,则不对第二接收窗口值进行更新。
为了进一步保证ba帧传输的稳定性,mac模块可以在获取的接收窗口值发生变化时,向无线接入点发送包括接收窗口值的ba帧,而在获取的接收窗口值未发生变化时,向无线接入点发送不包括接收窗口值的ba帧,从而可以降低对ba帧传输的影响。
具体的,mac模块可以在发送ba帧时,判断mac模块在目标时间段内是否更新了mac模块存储的接收窗口值,目标时间段表示mac模块前一次向无线接入点发送ba帧与当前时刻之间的时间段;当mac模块在目标时间段内更新了传输设备存储的接收窗口值时,说明获取的接收窗口值发生了变化,则mac模块通过无线连接向无线接入点发送包括第一接收窗口值的ba帧;当mac模块在目标时间段内未更新传输设备存储的接收窗口值时,说明获取的接收窗口值未发生变化,则mac模块通过无线连接向无线接入点发送不包括第一接收窗口值的ba帧。
并且,在上述过程中,当第一接收窗口值与第二接收窗口值不相同时,mac模块还可以将存储的第二接收窗口值更新为第一接收窗口值,以保证mac模块中存储的第二接收窗口值的准确性。
作为本发明实施例的又一种可选的实施方式,mac模块接收第一数据帧后,还可以向tcp模块发送第一tcp报文。并且,mac模块还可以缓存第一tcp报文,如此在tcp模块未接收到第一tcp报文时,可以重传第一tcp报文,以保证tcp模块能够接收到第一tcp报文。
具体的,mac模块可以设置重传机制。
例如,mac模块向tcp模块发送第一tcp报文后,当接收到tcp模块发送的预设数目个dack报文时,可以向tcp模块再次传输第一tcp报文。
tcp模块在未接收到第一tcp报文时,可以周期性发送dack报文,mac模块在接收到预设数目个dack报文时,可以确定tcp模块未接收到tcp报文,则此时可以向tcp模块再次传输tcp报文。预设数目可以设置为3。
再例如,mac模块向tcp模块发送第一tcp报文后,当在预设时间段内未收到tcp模块发送的目标tcpack报文时,mac模块可以向tcp模块再次传输第一tcp报文。
目标tcpack报文表示tcp模块已接收到第一tcp报文。tcp模块在接收到第一tcp报文时,会及时反馈目标tcpack报文,所以如果mac模块在预设时间段内未接收到tcpack报文,则可以说明tcp模块未接收到tcp报文,则此时mac模块可以向tcp模块再次传输第一tcp报文。预设时间段的长度可以根据实际场景设置。
需要说明的是,mac模块向tcp模块发送第一tcp报文后,当接收到tcp模块发送的目标tcpack报文时,mac模块可以确认tcp模块已接收到所述第一tcp报文,则此时可以删除缓存的第一tcp报文。
本发明实施例中,mac模块为了避免缓存第一tcp报文时出现差错,还可以存储传输第一tcp报文的tcp连接的信息,例如,网络设备和用户设备的ip地址、端口号等等。同时在缓存第一tcp报文时存储第一tcp报文的序号、封装第一tcp报文时的序号等等。通过存储上述信息来唯一标识tcp报文,从而避免缓存或重传第一tcp报文时出现差错。
本发明又一实施例提供了一种数据传输的方法,用于图2所示的网络架构中,如图4所示,该方法包括以下步骤。
201,网络设备与用户设备之间建立tcp连接。
本步骤中的数据处理过程和原理与步骤101的数据处理过程和原理相同,在此不再赘述。
202,网络设备向无线接入点发送第一tcp报文。
本步骤中的数据处理过程和原理与步骤102的数据处理过程和原理相同,在此不再赘述。
203,无线接入点将第一tcp报文封装为第一数据帧后,将第一数据帧发送至传输设备。
本步骤中数据处理的过程和原理与步骤103的数据处理过程和原理相同,区别之处在于步骤203中无线接入点将第一数据帧发送至传输设备,而步骤103无线接入点将第一数据帧发送至用户设备。
204,传输设备接收第一数据帧后,向无线接入点发送包括第一接收窗口值的ba帧。
ba帧用于表示传输设备已接收到第一数据帧。传输设备与无线接入点之间通过无线网络传输数据帧,在无线接入点通过无线网络向传输设备发送数据帧后,传输设备会通过无线网络向无线接入点返回ba帧,无线接入点接收到ba帧可以确认传输设备已经接收到了数据帧。
传输设备接收到第一数据帧后,对第一数据帧进行解析即可得出第一tcp报文,并向用户设备发送第一tcp报文,通常情况下,此时传输设备需要在接收到用户设备返回的对应第一tcp报文的第一tcpack报文后,通过无线接入点将第一tcpack报文向网络设备发送,并且用户设备在第一tcpack报文中添加了用户设备的第一接收窗口值。
由于用户设备和传输设备之间是有线连接,数据传输比较可靠,丢包可能性较小,因此,如果传输设备成功接收到第一数据帧,则通常可以表明用户设备会成功接收到第一tcp报文,因此本发明实施例中,为了减少无线接入点与传输设备之间传输的数据,传输设备向无线接入点发送ba帧后,无线接入点可以构造出用于确认用户设备已接收到第一tcp报文的第一tcpack报文并发送给网络设备,从而不需要传输设备向无线接入点发送第一tcpack报文。
但是,网络设备需要通过第一tcpack报文确定用户设备的接收窗口值,所以传输设备可以通过用户设备发送的tcpack报文确定出用户设备的第一接收窗口值,并在向无线接入点发送ba帧时,在ba帧中添加用户设备的第一接收窗口值,将用户设备的第一接收窗口值发送给无线接入点,无线接入点接收ba帧后可以在构造第一tcpack报文时,将ba帧中的第一接收窗口值添加到第一tcpack报文中,进而使网络设备能够根据第一tcpack报文确定出用户设备的第一接收窗口值。
由于接收窗口值的字段长度只有2个字节,其添加到ba帧中并不会给ba帧的传输带来很大的影响,所以本发明实施例中可以在基本不影响ba帧传输的情况下,减少通过wi-fi传输数据的数量,提高了tcp传输数据的性能。
作为本发明实施例的一种可选的实施方式,用户设备在接收第一数据帧之前,还可以在通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,通过有线连接向用户设备发送第二tcp报文;并接收用户设备通过有线连接发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示用户设备已接收到第二tcp报文。
传输设备在接收到第二数据帧后,将第二数据帧中封装的第二tcp报文发送给用户设备,用户设备在接收第二tcp报文后,会回复第二tcpack报文,并通过第二tcpack报文携带用户设备的第一接收窗口值,传输设备可以通过第二tcpack报文获取用户设备的第一接收窗口值,则本步骤中可以通过ba帧将第一接收窗口值发送给无线接入点。
需要说明的是,传输设备在每次获取到接收窗口值时,并不一定会立刻向无线接入点发送ba帧,所以传输设备可以将获取的接收窗口值先进行存储,当向无线接入点发送ba帧时再通过ba帧将接收窗口值发送给无线接入点。
传输设备在存储用户设备的接收窗口值过程中,用户设备的接收窗口值可能会发生变化,传输设备为了保证存储的接收窗口值的准确性,需要对存储的接收窗口值进行更新。
具体的,传输设备在获取到第一接收窗口值时,可以判断获取的第一接收窗口值与存储的第二接收窗口值是否相同。如果第一接收窗口值与第二接收窗口值不相同,说明用户设备的接收窗口值发生了变化,则可以将第二接窗口值更新为第一接收窗口值;如果第一接收窗口值与存储的接收窗口值相同,说明用户设备的接收窗口值未发生变化,则不对第二接收窗口值进行更新。
另外,为了进一步保证ba帧传输的稳定性,本发明实施例中可以在传输设备获取的接收窗口值发生变化时,向无线接入点发送包括接收窗口值的ba帧,而在传输设备获取的接收窗口值未发生变化时,向无线接入点发送不包括接收窗口值的ba帧,从而可以降低对ba帧传输的影响。
具体的,传输设备可以在发送ba帧时,判断传输设备在目标时间段内是否更新了传输设备存储的接收窗口值,目标时间段表示传输设备前一次向无线接入点发送ba帧与当前时刻之间的时间段;当在目标时间段内更新了传输设备存储的接收窗口值时,说明传输设备获取的接收窗口值发生了变化,则传输设备通过无线连接向无线接入点发送包括第一接收窗口值的ba帧;当在目标时间段内未更新传输设备存储的接收窗口值时,说明传输设备获取的接收窗口值未发生变化,则传输设备通过无线连接向无线接入点发送不包括第一接收窗口值的ba帧。
205,传输设备接收第一数据帧后,向用户设备发送第一tcp报文。
传输设备从第一数据帧中解析出第一tcp报文后,将其通过有线连接发送给用户设备。
用户设备接收第一tcp报文后,会向传输设备返回表示确认已接收到第一tcp报文的第一tcpack报文,并在第一tcpack报文添加了用户设备的第一接收窗口值。所以传输可以通过用户设备发送的tcpack报文来获得用户设备的接收窗口值。
作为本发明实施例的又一种可选的实施方式,传输设备接收第一数据帧后,还可以缓存第一tcp报文,如此在用户设备未接收到第一tcp报文时,可以重传第一tcp报文,以保证用户设备能够接收到第一tcp报文。
具体的,传输设备与用户设备之间可以设置重传机制。
例如,传输设备向用户设备发送第一tcp报文后,当接收到用户设备发送的预设数目个dack报文时,可以向用户设备再次传输第一tcp报文。
用户设备在未接收到第一tcp报文时,可以周期性发送dack报文,传输设备在接收到预设数目个dack报文时,可以确定用户设备未接收到tcp报文,则此时可以向用户设备再次传输tcp报文。预设数目可以设置为3。
再例如,传输设备向用户设备发送第一tcp报文后,当在预设时间段内未收到用户设备发送的目标tcpack报文时,传输设备可以向用户设备再次传输第一tcp报文。
目标tcpack报文表示用户设备已接收到第一tcp报文。用户设备在接收到第一tcp报文时,会及时反馈目标tcpack报文,所以如果传输设备在预设时间段内未接收到tcpack报文,则可以说明用户设备未接收到tcp报文,则此时传输设备可以向用户设备再次传输第一tcp报文。预设时间段的长度可以根据实际场景设置。
需要说明的是,传输设备向用户设备发送第一tcp报文后,当接收到用户设备发送的目标tcpack报文时,传输设备可以确认用户设备已接收到所述第一tcp报文,则此时可以删除缓存的第一tcp报文。
本发明实施例中,传输设备为了避免缓存第一tcp报文时出现差错,还可以存储传输第一tcp报文的tcp连接的信息,例如,网络设备和用户设备的ip地址、端口号等等。同时在缓存第一tcp报文时存储第一tcp报文的序号、封装第一tcp报文时的序号等等。通过存储上述信息来唯一标识tcp报文,从而避免缓存或重传第一tcp报文时出现差错。
需要说明的是,步骤204中和步骤205在执行时没有严格时间先后顺序。
206,无线接入点接收ba帧后,根据ba帧确定第一tcp报文的信息。
无线接入点接收ba帧后,可以确认传输设备已收到第一数据帧,第一数据帧中封装了第一tcp报文,由于用户设备和传输设备之间是有线连接,数据传输比较可靠,丢包可能性较小,所以可以确认用户设备接收到了第一tcp报文。无线接入点可以根据ba帧确定第一tcp报文的信息,以便于构造用于确认用户设备已接收到第一tcp报文的第一tcpack报文。
具体的,在步骤203中,无线接入点可以存储向传输设备发送的第一数据帧的序号、第一tcp报文的信息,以及第一数据帧的序号与第一tcp报文的信息之间的对应关系。本步骤中,无线接入点根据ba帧中的信息可以获取出ba帧所确认数据帧的序号,即第一数据帧的序号,进而根据第一数据帧的序号和对应关系即可确定出封装在第一数据帧中第一tcp报文的信息。
207,无线接入点根据第一tcp报文的信息构造第一tcpack报文。
第一tcpack报文用于确认用户设备已接收到第一tcp报文。无线接入点可以根据第一tcp报文的信息构造第一tcpack报文,而不需要传输设备发送,减少无线网络中传输的数据量。
由于用户设备通常通过tcpack报文携带其接收窗口值,来通知网络设备其接收窗口值,所以无线接入点在构造第一tcpack报文时,还可以在第一tcpack报文中添加用户设备的接收窗口值,即ba帧中的第一接收窗口值。
作为本发明实施例的又一种可选的实施方式,传输设备可以在接收窗口值发生变化时才通过ba帧发送变化后的接收窗口值,所以无线接入点可以在首次接收包括接收窗口值的ba帧时,将接收窗口值进行存储。在后续再次接收到ba帧后构造tcpack报文时,判断ba帧中是否包括了接收窗口值。如果ba帧中包括了接收窗口值,则说明用户设备的接收窗口值发生变化,此时需要根据ba帧中包括的接收窗口值构造tcpack报文;如果ba帧中未包括接收窗口值,则说明用户设备的接收窗口值未发生变化,此时需要根据无线接入点存储的接收窗口值构造tcpack报文。同时,在ba帧中包括了接收窗口值时,将无线接入点存储的接收窗口值更新为ba帧中包括的接收窗口值,以保证无线接入点中存储的接收窗口值的准确性。
具体的,本步骤中无线接入点可以在接收到ba帧后,可以判断ba帧是否包括第一接收窗口值。如果ba帧包括第一接收窗口值,则在第一tcpack报文中添加第一接收窗口值,并将无线接入点存储的接收窗口值更新为ba帧中包括的第一接收窗口值;如果ba帧不包括第一接收窗口值,则在第一tcpack报文中添加无线接入点存储的接收窗口值。
需要说明的是,所述无线接入点存储的接收窗口值均为无线接入点从接收的传输设备发送的ba帧中获取的。
208,无线接入点向网络设备发送构造的第一tcpack报文。
无线接入点构造第一tcpack报文后,将构造的第一tcpack报文发送给网络设备,以便于网络设备可以确认用户设备已经接收到了第一tcp报文。并在第一tcpack报文包括用户设备的接收窗口值时,根据第一tcpack报文来确定用户设备的接收窗口值。
本发明实施例中,传输设备在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,无线接入点在接收用于确认用户设备已接收到数据帧的ba帧后,可以根据ba帧确定出数据帧中封装的tcp报文的信息,进而可以构造出用于确认用户设备已接收到tcp报文的tcpack报文,并将构造的tcpack报文发送给网络设备。如此无线接入点可以在接收ba帧后构造出用于确认用户设备已接收到tcp报文的tcpack报文,并发送给网络设备,所以传输设备不需要在发送ba帧后向其发送tcpack报文,无线接入点也可以构造tcpack报文发送给网络设备,以完成重传确认机制,减少了通过无线接入点与传输设备之间无线连接传输数据的数量,进而提高了tcp传输数据的性能。
图5是根据本发明一实施例提供的无线接入点300的示意性框图。如图5所示,该无线接入点300包括:
接收单元301,用于通过与终端设备之间的无线连接接收终端设备发送的ba帧,ba帧用于确认终端设备已接收到无线接入点发送的第一数据帧,第一数据帧中封装了第一tcp报文;
确定单元302,用于根据ba帧确定第一tcp报文的信息;
构造单元303,用于根据第一tcp报文的信息构造第一tcpack报文,第一tcpack报文用于确认用户设备已接收到第一tcp报文,用户设备为终端设备或通过终端设备与无线接入点通信的设备;
发送单元304,用于向网络设备发送第一tcpack报文,网络设备为发送第一tcp报文的设备。
本发明实施例中,无线接入点300在接收用于确认终端设备已接收到数据帧的ba帧后,可以根据ba帧确定出数据帧中封装的tcp报文的信息,进而可以构造出用于确认用户设备已接收到tcp报文的tcpack报文,并将构造的tcpack报文发送给网络设备。如此无线接入点300可以在接收ba帧后构造出用于确认用户设备已接收到tcp报文的tcpack报文,并发送给网络设备,所以终端设备不需要在发送ba帧后向其发送tcpack报文,无线接入点300也可以构造tcpack报文发送给网络设备,以完成重传确认机制,减少了通过无线接入点与终端设备之间无线连接传输数据的数量,进而提高了tcp传输数据的性能。
可以理解的是,第一tcpack报文包括第一接收窗口值的,第一接收窗口值为无线接入点存储的或从ba帧中获取的,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
图6为根据本发明又一个或多个实施例提供的无线接入点300的示意性框图。
可以理解的是,如图6所示,无线接入点300还包括:
判断单元305,用于判断ba帧是否包括接收窗口值;
确定单元302还用于当ba帧包括接收窗口值时,确定第一接收窗口值为ba帧中的接收窗口值;
确定单元302还用于当ba帧不包括接收窗口值时,确定第一接收窗口值为无线接入点存储的接收窗口值,无线接入点存储的接收窗口值为无线接入点在接收ba帧之前接收的另一ba帧中获取的,另一ba帧为终端设备发送的。
可以理解的是,如图6所示,无线接入点300还包括:
更新单元306,用于当ba帧包括接收窗口值时,将无线接入点存储的接收窗口值更新为ba帧中的接收窗口值。
可以理解的是,如图6所示,无线接入点300还包括:
存储单元307,用于存储向终端设备发送的数据帧的序号和数据帧中所封装tcp报文的信息之间的对应关系;
确定单元302在根据ba帧确定第一tcp报文的信息时,具体用于:
根据ba帧获取第一序号,第一序号为ba帧所确认的数据帧的序号;
根据第一序号和对应关系确定第一tcp报文的信息。
根据本发明实施例的无线接入点300,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且无线接入点300中的各个模块的上述和其它操作和/或功能分别为了实现图3或图4所示实施例中无线接入点所执行的各个方法的相应流程,为了简洁,在此不再赘述。
图7是根据本发明一实施例提供的用户设备400的示意性框图。如图7所示,该用户设备400包括:
第一接收单元401,用于通过与无线接入点之间的无线连接接收无线接入点发送的封装了第一tcp报文的第一数据帧;
第一发送单元402,用于通过无线连接向无线接入点发送包括第一接收窗口值的块确认ba帧,ba帧用于表示用户设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcpack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小。
本发明实施例中,用户设备400在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,使无线接入点构造出包括第一接收窗口值且用于确认用户设备400已接收到tcp报文的tcpack报文,如此用户设备400通过ba帧向无线接入点发送用户设备400的接收窗口值,从而可以使无线接入点构造出用于确认用户设备400已接收到tcp报文的tcpack报文,而不需要用户设备400向无线接入点发送tcpack报文,减少了通过无线连接传输数据的数量,提高了tcp传输数据的性能。
图8为根据本发明又一个或多个实施例提供的用户设备400的示意性框图。
可以理解的是,如图8所示,用户设备400还可以包括:
处理单元403,用于在第一接收单元401通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,获取第一接收窗口值。
可以理解的是,如图8所示,用户设备400还可以包括mac模块和tcp模块;mac模块包括第一接收单元401、第一发送单元402、处理单元403、第二接收单元404和第二发送单元405;
处理单元403具体用于在第一接收单元401通过无线连接接收无线接入点发送的封装了第二tcp报文的第二数据帧时,通过第二发送单元405向tcp模块发送第二tcp报文;以及,用于通过第二接收单元404接收tcp模块发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示tcp模块已接收到第二tcp报文。
可以理解的是,处理单元403还用于判断第一接收窗口值与mac模块存储的第二接收窗口值是否相同;以及,用于当所述第一接收窗口值与所述第二接收窗口值不相同时,将所述第二接收窗口值更新为所述第一接收窗口值。
可以理解的是,处理单元403还用于判断mac模块在目标时间段内是否更新了mac模块存储的接收窗口值,目标时间段表示mac模块前一次向无线接入点发送ba帧与当前时刻之间的时间段;
第一发送单元402具体用于当在目标时间段内更新了mac模块存储的接收窗口值时,通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
可以理解的是,处理单元403还用于缓存第一tcp报文;以及,用于通过第二发送单元405向tcp模块发送第一tcp报文。
可以理解的是,处理单元403还用于当通过第二接收单元404接收到tcp模块发送的预设数目个dack报文时,通过第二发送单元405向tcp模块再次传输第一tcp报文。
可以理解的是,处理单元403还用于当在预设时间段内通过第二接收单元404未接收到tcp模块发送的目标tcpack报文时,通过第二发送单元408向tcp模块再次传输第一tcp报文,目标tcpack报文表示tcp模块已接收到第一tcp报文。
可以理解的是,处理单元403用于当通过第二接收单元404接收到tcp模块发送的目标tcpack报文时,删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
需要说明的是,本发明实施例中,mac模块包括第一接收单元401、第一发送单元402和处理单元403,则可以执行第一接收单元401、第一发送单元402和处理单元403所执行的内容。
根据本发明实施例的用户设备400,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且用户设备400中的各个模块的上述和其它操作和/或功能分别为了实现图3所示实施例中用户设备所执行的相应流程,为了简洁,在此不再赘述。
图9是根据本发明一实施例提供的传输设备500的示意性框图。如图9所示,该传输设备500包括:
第一接收单元501,用于通过与无线接入点之间的无线连接接收封装了第一传输控制协议tcp报文的第一数据帧,第一tcp报文为网络设备向用户设备发送的;
第一发送单元502,用于通过无线连接向无线接入点发送包括第一接收窗口值的块确认ba帧,ba帧用于确认传输设备已接收到第一数据帧,使无线接入点构造包括第一接收窗口值且用于确认用户设备已接收到第一tcp报文的第一tcp确认ack报文,第一接收窗口值用于表示用户设备的tcp接收窗口的大小;
第二发送单元503,用于通过与用户设备之间的有线连接向用户设备发送第一tcp报文。
本发明实施例中,传输设备500在通过无线连接接收无线接入点发送的封装了tcp报文的数据帧后,向无线接入点发送包括接收窗口值的ba帧,使无线接入点构造出包括第一接收窗口值且用于确认用户设备已接收到tcp报文的tcpack报文,如此传输设备500通过ba帧向无线接入点发送用户设备的接收窗口值,从而可以使无线接入点自己构造出用于确认用户设备已接收到tcp报文的tcpack报文,而不需要用户设备向无线接入点发送tcpack报文,减少了通过无线连接传输数据的数量,提高了tcp传输数据的性能。
图10为根据本发明又一个或多个实施例提供的传输设备500的示意性框图。
可以理解的是,第二发送单元503还用于在第一接收单元501通过无线连接接收封装了第二tcp报文的第二数据帧时,通过有线连接向用户设备发送第二tcp报文;
如图8所示,传输设备500还可以包括:
第二接收单元504,用于接收用户设备通过有线连接发送的第二tcpack报文,第二tcpack报文包括第一接收窗口值,第二tcpack报文用于表示用户设备已接收到第二tcp报文。
可以理解的是,如图8所示,传输设备500还可以包括:
第一判断单元505,用于判断第一接收窗口值与传输设备存储的第二接收窗口值是否相同;
更新单元506,用于当第一接收窗口值与第二接收窗口值不相同时,将第二接收窗口值更新为第一接收窗口值。
可以理解的是,如图8所示,传输设备500还可以包括:
第二判断单元507,用于判断传输设备在目标时间段内是否更新了传输设备存储的接收窗口值,目标时间段表示传输设备前一次向无线接入点发送ba帧与当前时刻之间的时间段;
第一发送单元502具体用于当在目标时间段内更新了传输设备存储的接收窗口值时,通过无线连接向无线接入点发送包括第一接收窗口值的ba帧。
可以理解的是,如图8所示,传输设备500还可以包括:
缓存单元508,用于缓存第一tcp报文。
可以理解的是,第二发送单元503还用于当第二接收单元504接收到用户设备发送的预设数目个重复确认dack报文时,通过有线连接向用户设备再次传输第一tcp报文。
可以理解的是,第二发送单元503还用于当第二接收单元504在预设时间段内未收到用户设备发送的目标tcpack报文时,通过有线连接向用户设备再次传输第一tcp报文,目标tcpack报文表示用户设备已接收到第一tcp报文。
可以理解的是,如图8所示,传输设备500还可以包括:
删除单元509,用于当第二接收单元504接收到用户设备发送的目标tcpack报文时,删除缓存的第一tcp报文,目标ack报文表示tcp模块已接收到第一tcp报文。
根据本发明实施例的传输设备500,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且传输设备500中的各个模块的上述和其它操作和/或功能分别为了实现图4所示实施例中传输设备所执行的相应流程,为了简洁,在此不再赘述。
图11是根据本发明另一实施例的无线接入点600的示意性框图。如图11所示,无线接入点600包括处理器601、存储器602和通信接口603,存储器602用于存储可执行的程序代码,处理器601通过读取存储器602中存储的可执行程序代码来运行与可执行程序代码对应的程序,通信接口603用于与外部设备通信,无线接入点600还可以包括总线604,总线604用于连接处理器601、存储器602和通信接口603,使处理器601、存储器602和通信接口603通过总线604进行相互通信。
根据本发明实施例的无线接入点600,可对应于根据本发明实施例的数据校验的方法中的执行主体,并且无线接入点600中的各操作和/或功能分别为了实现图3至图4所示实施例中无线接入点所执行的相应流程,为了简洁,在此不再赘述。
图12是根据本发明另一实施例的用户设备700的示意性框图。如图12所示,用户设备700包括处理器701、存储器702和通信接口703,存储器702用于存储可执行的程序代码,处理器701通过读取存储器702中存储的可执行程序代码来运行与可执行程序代码对应的程序,通信接口703用于与外部设备通信,用户设备700还可以包括总线704,总线704用于连接处理器701、存储器702和通信接口703,使处理器701、存储器702和通信接口703通过总线704进行相互通信。
根据本发明实施例的用户设备700,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且用户设备700中的各操作和/或功能分别为了实现图3所示实施例中用户设备所执行的相应流程,为了简洁,在此不再赘述。
图13是根据本发明另一实施例的传输设备800的示意性框图。如图13所示,传输设备800包括处理器801、存储器802和通信接口803,存储器802用于存储可执行的程序代码,处理器801通过读取存储器802中存储的可执行程序代码来运行与可执行程序代码对应的程序,通信接口803用于与外部设备通信,传输设备800还可以包括总线804,总线804用于连接处理器801、存储器802和通信接口803,使处理器801、存储器802和通信接口803通过总线804进行相互通信。
根据本发明实施例的传输设备800,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且传输设备800中的各操作和/或功能分别为了实现图4所示实施例中传输设备所执行的相应流程,为了简洁,在此不再赘述。
本发明一个实施例提供了一种数据传输的系统,包括如图5或图6所示的无线接入点300和如图7或图8所示的用户设备400。
本发明一个实施例提供了一种数据传输的系统,包括如图5或图6所示的无线接入点300和如图9或图10所示的传输设备500。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(olidstatedisk,ssd))等。