[发明专利]数据接收方法、装置和网卡有效
申请号: | 201511032143.1 | 申请日: | 2015-12-31 |
公开(公告)号: | CN105610840B | 公开(公告)日: | 2018-09-11 |
发明(设计)人: | 殷石 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 接收 方法 装置 网卡 | ||
本发明实施例提供了一种数据接收方法、装置和网卡,涉及数据传输领域,所述方法包括:根据TCP接收窗口接收数据,通过将TCP接收窗口的左边缘右移目标距离的方式缩小TCP接收窗口;在TCP接收窗口的右边缘未达到边缘上限时,通过右移TCP接收窗口的右边缘的方式放大缩小后的TCP接收窗口,并再次执行通过将TCP接收窗口的左边缘右移目标距离的方式缩小TCP接收窗口的步骤;在TCP接收窗口的右边缘达到边缘上限时,再次执行通过将TCP接收窗口的左边缘右移目标距离的方式缩小TCP接收窗口的步骤,在TCP接收窗口缩小至关闭时,将历史接收到的数据DMA到用户空间。解决了现有技术中数据传输会发生中断的问题。
技术领域
本发明实施例涉及数据传输领域,特别涉及一种数据接收方法、装置和网卡。
背景技术
在符合数据传输协议(英文:Transmission Control Protocol,简称:TCP)的数据传输过程中,发送端发送TCP数据包至接收端之后,接收端中的网卡将接收该TCP数据包,并将该TCP数据包直接内存访问(英文:Directional Memory Access,简称:DMA)至中央处理器(英文,Central Processing Unit,简称:CPU),由CPU将该TCP数据包拷贝到用户空间。
零拷贝接收技术是指网卡直接将接收到的TCP数据包DMA至用户空间,中间无需CPU参与,进而降低CPU的负载,提高CPU的性能的技术。一种基于零拷贝接收技术的数据接收方法包括:网卡根据TCP接收窗口接收TCP数据包,将TCP接收窗口的左边缘右移该TCP数据包的数据大小所对应的距离,当TCP接收窗口的左边缘右移至右边缘,也即TCP接收窗口缩小至关闭时,网卡将接收到的TCP数据包DMA至用户空间。此后,在CPU确认用户空间收到数据且用户空间中仍然可以存储数据时,CPU发送窗口开启指令至网卡,网卡接收到该窗口开启指令之后,重新打开一个TCP接收窗口,并根据重新打开的TCP接收窗口继续接收数据,直至用户空间中存满数据为止。其中,最后一次打开的TCP接收窗口关闭时,网卡累计接收到的数据的数据大小等于用户空间的空间大小。
上述方案中,在用户空间中仍然可以存储数据,但是在TCP接收窗口被关闭之后,发送端将无法向网卡继续发送数据,数据传输将发生中断。
发明内容
为了解决现有技术中在用户空间仍然可以存储数据的情况下,由于TCP接收窗口关闭而导致的数据传输发生中断的问题,本发明实施例提供了一种数据接收方法、装置和网卡,所述技术方案如下:
在符合TCP的数据传输过程中,TCP的头部设置有一个16bit的接收窗口的字段,该字段用于告知数据的发送端当前能够接收的数据的数据大小,也即用于表示接收数据的缓冲区的大小。通常情况下,我们将该字段表示的大小称之为TCP接收窗口的窗口大小。
TCP接收窗口的窗口大小会随着接收到的数据的数据大小而不断减小。具体的,在网卡接收到发送端发送的数据之后,为了表征网卡能够接收到的数据变小,网卡可以通过将该TCP接收窗口的左边缘右移接收到的数据的数据大小所对应的距离的方式来缩小该TCP接收窗口。比如,在网卡接收到10kb的数据时,说明网卡能够继续接收到的数据的数据大小将减少10kb,所以此时,网卡可以将该TCP接收窗口的左边缘右移10kb所对应的距离。这样,随着数据的接收,TCP接收窗口将不断缩小,在该TCP接收窗口缩小至关闭时,发送端将不能再向网卡发送数据,数据接收过程结束。
其中,每个应用进程在运行时,应用进程会在CPU中申请一个用户空间,该用户空间的空间大小即为所需接收的数据的数据大小。TCP接收窗口的左边缘的初始位置对应于该用户空间的起始位置。
与上述方案不同的是,在本发明实施例的第一方面,提供了一种数据接收方法,该数据接收方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201511032143.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置