一种数据分段卸载发送方法技术

技术编号:16400768 阅读:429 留言:1更新日期:2017-10-17 20:52
本发明专利技术涉及一种数据分段卸载发送方法。本方法是一种软硬件协同的、分组I/O开销低、硬件实现复杂度低的大块数据分段卸载发送方法。将一部分硬件的功能卸载到软件实现,即采用驱动切分大报文及更新报文头字段,省去了硬件分段计算处理开销,大大降低硬件设计复杂度;另外,本发明专利技术支持低开销分组I/O,大大降低软硬件协同代价,同时相较于支持轻量级分组I/O的网卡,省去了分段报文到专用软件缓冲区的一次拷贝,仅将切分后内容更新的报文头部分拷贝到软件缓冲区,大大提高性能,实现了数据分段卸载的高效发送。

Data segment unloading sending method

The invention relates to a data segment unloading sending method. This method is a chunk data offload sending method with low cost and low hardware complexity, which has the advantages of hardware and software co operation, low packet I/O overhead and low hardware implementation complexity. The function of unloading part of hardware to software implementation, which is used to drive the messages and update the message header segment field, eliminating the need for hardware to calculate the processing cost, greatly reduce the complexity of hardware design; in addition, the present invention supports low overhead packet I/O, greatly reduce the cost of hardware and Software Co, at the same time compared to support lightweight block I/O a copy of the card, eliminating the segmented message buffer to special software, only copy the header into the software updates after splitting the buffer, greatly improve performance, efficient implementation of data sending unloading the.

【技术实现步骤摘要】
一种数据分段卸载发送方法
本专利技术主要涉及到多核网络分组处理中,支持大块数据高效发送的软硬件方法设计领域,特指在多核网络分组处理中的一种软硬件协同的、分组I/O开销低、硬件实现复杂度低的大块数据分段卸载发送方法。
技术介绍
随着新型网络业务、协议的发展,越来越多的网络设备聚合存储资源,为全系统提供安全快速的存储服务能力。主机系统和存储设备之间数据的封装和快速可靠传输,为存储资源的按需调度和共享共用提供有力支撑。具备高可编程性的通用多核处理器是网络设备中广泛采用的数据平面处理核心器件。然而,传统网卡最大只能支持最大分段长度MSS(MaxSegmentSize,一般为MTU-IP头-TCP头)大小的数据传输,当请求大量数据时,TCP发送方必须将大块数据拆分成MSS大小的数据块,然后进一步封装为数据包形式,以便最终可以在网络中进行传输。由于多核处理器需要对每个分段进行处理,降低了其处理效率。已有研究TSO技术,支持大报文的直接发送,TCP发送方CPU直接将大块数据(最大支持64KB大小)交给网络设备处理,通过网络设备进行TCP段的分割,将大部分CPU的处理工作转移到网卡来处理,即报文的切本文档来自技高网...
一种数据分段卸载发送方法

【技术保护点】
一种数据分段卸载发送方法,将一部分硬件的功能卸载到软件实现,即采用驱动切分大报文及更新报文头字段,省去了硬件分段计算处理开销,降低硬件设计复杂度,其特征在于,包括以下步骤:步骤401:获取SKB,socket buffer是linux网络代码中的数据结构,线性缓冲区和页缓冲区数目,解析报文头,对于TCP报文,确认报文分段数目,以及是否需要进行报文分片,报文长度大于1514字节;步骤402:对于需要分片的报文,根据需要分片的数目,将报文头拷贝至多个专用软件缓冲区,完成每个分片报文头内容的更新,无需分片则跳过此步骤;步骤403:根据报文分段,为每个分段完成DMA映射;步骤404:为每个分片的每个报...

【技术特征摘要】
1.一种数据分段卸载发送方法,将一部分硬件的功能卸载到软件实现,即采用驱动切分大报文及更新报文头字段,省去了硬件分段计算处理开销,降低硬件设计复杂度,其特征在于,包括以下步骤:步骤401:获取SKB,socketbuffer是linux网络代码中的数据结构,线性缓冲区和页缓冲区数目,解析报文头,对于TCP报文,确认报文分段数目,以及是否需要进行报文分片,报文长度大于1514字节;步骤402:对于需要分片的报文,根据需要分片的数目,将报文头拷贝至多个专用软件缓冲区,完成每个分片报文头内容的更新,无需分片则跳过此步骤;步骤403:根据报文分段,为每个分段完成DMA映射;步骤404:为每个分片的每个报文分段,包括专用缓冲区、线性缓冲区、页缓冲区分别获取一个发送描述符,填充相关字段,构造描述符链表,在获取描述符时需获得锁,确保不会有多个进程获得同一个描述符;步骤405:将SKB缓存到SKB缓冲区环,并更新发送描述符缓冲区环的write_p指针;步骤406:构造一个发送描述符控制块,通知硬件有新的报文需要发送;步骤407:硬件根据发送描述符控制块的内容DMA读发送描述符链,获取所有分片中每个...

【专利技术属性】
技术研发人员:杨惠李韬吕高锋孙志刚赵国鸿毛席龙全巍张彦龙范鹏冉
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南,43

网友询问留言 已有1条评论
  • 来自[广东省深圳市电信] 2019年12月05日 14:46
    66666
    1
1