CN102075416A - 一种软硬件结合实现tcp连接数据缓存的方法 - Google Patents

一种软硬件结合实现tcp连接数据缓存的方法 Download PDF

Info

Publication number
CN102075416A
CN102075416A CN2010106117538A CN201010611753A CN102075416A CN 102075416 A CN102075416 A CN 102075416A CN 2010106117538 A CN2010106117538 A CN 2010106117538A CN 201010611753 A CN201010611753 A CN 201010611753A CN 102075416 A CN102075416 A CN 102075416A
Authority
CN
China
Prior art keywords
tcp
data
message
buffer memory
current
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
Application number
CN2010106117538A
Other languages
English (en)
Other versions
CN102075416B (zh
Inventor
刘朝辉
窦晓光
纪奎
张磊
白宗元
刘灿
李锋伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201010611753.8A priority Critical patent/CN102075416B/zh
Publication of CN102075416A publication Critical patent/CN102075416A/zh
Application granted granted Critical
Publication of CN102075416B publication Critical patent/CN102075416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种软硬件结合实现TCP连接数据缓存的方法。硬件网卡接收报文,进行TCP连接管和排序,接口库为新建连接构造TCP节点结构,在每个包TCP数据的内存之前,预留出一块缓存区域,用来缓存上一个包中的末尾数据,同时记录缓存数据的长度,并使用一个指针,表示当前要处理的数据的起始位置。接口库收到tcp数据包后,从数据报文中提取TCP数据,更新TCP节点结构,如果应用需要缓存报文,接口库通过数据拷贝和移动指针在TCP节点中缓存数据,当下一个tcp数据包达到后,接口库使用缓存数据拼接前后两个报文。本发明不需要在TCP卸载系统的网卡硬件中缓存数据,降低网卡硬件成本。

Description

一种软硬件结合实现TCP连接数据缓存的方法
技术领域
本发明涉及网络数据处理领域,具体涉及一种软硬件结合实现TCP连接数据缓存的方法。
背景技术
TCP卸载技术是把主机软件中的TCP/IP网络协议栈处理固化到网卡硬件中实现,以便降低系统CPU负载,增大网络IO带宽的技术。TCP卸载系统一般包括两部分功能,第一部分是TCP连接状态管理,用TCP连接表来维护每个TCP连接开始、数据传输、关闭的状态。第二部分是TCP数据管理,用来把乱序的TCP报文的数据进行重新排序,把TCP传输的数据提取出来提交给主机。
一般在TCP卸载系统中,硬件在进行TCP数据管理时,一般在TCP卸载系统中使用一个数据缓存器,把每个TCP连接的数据提取出来,用缓冲器完成TCP数据的重排序和拼接,然后以缓冲区为单位向主机系统提交。
在有些需要对TCP数据实时处理的系统中,主机不仅需要及时拿到TCP传输的数据,有时还需要把上一个数据包的末尾的数据和下一个数据包的开头的数据连起来处理,也就是说需要缓存上一个数据包的部分数据到下一个数据包中,如果在硬件中进行缓存,就需要硬件消耗大量的存储。
发明内容
本发明的目的是在软件中对指定tcp连接的当前报文的末尾数据缓存,避免硬件的增加存储成本。
一种软硬件结合实现TCP连接数据缓存的方法,步骤如下:
A、网卡接收报文,启动TCP卸载功能,对TCP连接状态管理,对发生乱序的TCP数据进行重排序,并以报文为单位上传至主机软件;
B、接口库为每个新建的TCP连接构造TCP节点结构,包括该TCP当前数据缓存和指向数据开始位置的指针;
C、接口库收到一个TCP连接的数据包时,根据该报文查找对应的TCP节点结构,然后提取出报文中包含的TCP数据,放入节点结构中当前报文的数据缓存区域;
D、应用软件需要缓存当前TCP报文中的数据时,则调用接口库提供的API,传入缓存数据的长度,接口库响应调用,在TCP节点中记录缓存数据长度,把当前TCP数据末尾的指定长度内容拷贝到TCP节点结构的数据缓存的预留空间中;
E、当该TCP节点的下一个报文到来时,接口库把报文中的TCP数据放入TCP节点结构中当前报文的数据缓存区域,并根据TCP节点中记录的上次缓存的上一个报文的数据长度,向前偏移当前TCP数据的指针,使指针指向上一个包的末尾数据,提交应用处理。
本发明的一种优选技术方案在于:所述主机软件主要是在应用软件API接口库中,对表示一个TCP连接的TCP节点结构进行扩展,在每个包TCP数据的内存之前,预留出一块缓存区域,用来缓存上一个包中的末尾数据,同时记录缓存数据的长度,并使用一个指针,表示当前要处理的数据的起始位置。
本发明的另一优选技术方案在于:TCP数据缓存包括两部分,一部分是当前报文的数据缓存,另一部分是根据系统预设的需要缓存的上一个包的末尾数据的大小,在当前报文数据缓存之前,预留的一块空间。
本发明不需要在TCP卸载系统的网卡硬件中缓存数据,降低网卡硬件成本。
附图说明
图1是本发明系统组成原理图
具体实施方式
本发明是一个软硬件结合的系统,硬件是可以对网络报文进行TCP连接管理和乱序重排的TCP卸载设备。软件主要是在应用软件API接口库中,对表示一个TCP连接的TCP节点结构进行扩展,在每个包TCP数据的内存之前,预留出一块缓存区域,用来缓存上一个包中的末尾数据,同时记录缓存数据的长度,并使用一个指针,表示当前要处理的数据的起始位置。
该发明的实现方法和过程如下:
(1)硬件网卡接收报文,进行TCP连接管理和排序。
网卡启动TCP卸载功能,对TCP连接状态管理,对发生乱序的TCP数据进行重排序,以报文为单位上传给主机软件。
(2)接口库为新建连接构造TCP节点结构。
接口库为每个新建的TCP连接构造TCP节点结构,其中包括该TCP连接当前数据的缓存和指向数据开始位置的指针。TCP数据缓存包括两部分,一部分是当前报文的数据缓存,另一部分是根据系统预设的需要缓存的上一个包的末尾数据的大小,在当前报文数据缓存之前,预留的一块空间。
(3)接口库从数据报文中提取TCP数据,更新TCP节点结构
当接口收到一个TCP连接的数据包时,首先根据该报文查找到对应的TCP节点结构,然后提取出报文中包含的TCP数据,放入TCP节点结构中当前报文的数据缓存区域。
(4)接口库在TCP节点中缓存数据。
应用软件需要缓存当前TCP报文中的数据时,则调用接口库提供的API,传入缓存数据的长度。接口库响应调用,在TCP节点中记录缓存数据长度,把当前TCP数据末尾的指定长度的内容,拷贝到TCP节点结构的数据缓存的预留空间中。
(5)接口库使用缓存数据拼接报文。
当该TCP节点的下一个报文到来时,接口库把报文中的TCP数据放入TCP节点结构中当前报文的数据缓存区域,并根据TCP节点中记录的上次缓存的上一个报文的数据长度,向前偏移当前TCP数据的指针,使指针指向上一个包的末尾数据,提交应用处理。

Claims (3)

1.一种软硬件结合实现TCP连接数据缓存的方法,其特征在于:步骤如下:
A、网卡接收报文,启动TCP卸载功能,对TCP连接状态管理,对发生乱序的TCP数据进行重排序,并以报文为单位上传至主机软件;
B、接口库为每个新建的TCP连接构造TCP节点结构,包括该TCP连接的当前数据缓存和指向数据开始位置的指针;
C、接口库收到一个TCP连接的数据包时,根据该报文查找对应的TCP节点结构,然后提取出报文中包含的TCP数据,放入节点结构中当前报文的数据缓存区域;
D、应用软件需要缓存当前TCP报文中的数据时,则调用接口库提供的API,传入缓存数据的长度,接口库响应调用,在TCP节点中记录缓存数据长度,把当前TCP数据末尾的指定长度内容拷贝到TCP节点结构的数据缓存的预留空间中;
E、当该TCP节点的下一个报文到来时,接口库把报文中的TCP数据放入TCP节点结构中当前报文的数据缓存区域,并根据TCP节点中记录的上次缓存的上一个报文的数据长度,向前偏移当前TCP数据的指针,使指针指向上一个包的末尾数据,提交应用处理。
2.如权利要求1所述一种软硬件结合实现TCP连接数据缓存的方法,其特征在于:所述主机软件主要是在应用软件API接口库中,对表示一个TCP连接的TCP节点结构进行扩展,在每个包TCP数据的内存之前,预留出一块缓存区域,用来缓存上一个包中的末尾数据,同时记录缓存数据的长度,并使用一个指针,表示当前要处理的数据的起始位置。
3.如权利要求2所述一种软硬件结合实现TCP连接数据缓存的方法,其特征在于:TCP数据缓存包括两部分,一部分是当前报文的数据缓存,另一部分是根据系统预设的需要缓存的上一个包的末尾数据的大小,在当前报文数据缓存之前,预留的一块空间。
CN201010611753.8A 2010-12-17 2010-12-17 一种软硬件结合实现tcp连接数据缓存的方法 Active CN102075416B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010611753.8A CN102075416B (zh) 2010-12-17 2010-12-17 一种软硬件结合实现tcp连接数据缓存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010611753.8A CN102075416B (zh) 2010-12-17 2010-12-17 一种软硬件结合实现tcp连接数据缓存的方法

Publications (2)

Publication Number Publication Date
CN102075416A true CN102075416A (zh) 2011-05-25
CN102075416B CN102075416B (zh) 2014-07-30

Family

ID=44033768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010611753.8A Active CN102075416B (zh) 2010-12-17 2010-12-17 一种软硬件结合实现tcp连接数据缓存的方法

Country Status (1)

Country Link
CN (1) CN102075416B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068766A (zh) * 2015-08-14 2015-11-18 上海红神信息技术有限公司 一种基于fpga高速读取磁盘阵列中文件的方法
CN116896536A (zh) * 2023-09-11 2023-10-17 北京大禹智芯科技有限公司 一种基于mtcp接收乱序处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679282A (zh) * 2002-08-30 2005-10-05 美国博通公司 Tcp卸载的系统和方法
CN1985492A (zh) * 2004-06-17 2007-06-20 美国博通公司 支持iSCSI读操作和iSCSI烟囱的方法和系统
CN101253745A (zh) * 2005-07-18 2008-08-27 博通以色列研发公司 用于透明tcp卸载的方法和系统
CN101540720A (zh) * 2008-06-06 2009-09-23 曙光信息产业(北京)有限公司 一种支持多类型网卡链路聚合的零拷贝方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679282A (zh) * 2002-08-30 2005-10-05 美国博通公司 Tcp卸载的系统和方法
CN1985492A (zh) * 2004-06-17 2007-06-20 美国博通公司 支持iSCSI读操作和iSCSI烟囱的方法和系统
CN101253745A (zh) * 2005-07-18 2008-08-27 博通以色列研发公司 用于透明tcp卸载的方法和系统
CN101540720A (zh) * 2008-06-06 2009-09-23 曙光信息产业(北京)有限公司 一种支持多类型网卡链路聚合的零拷贝方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杜英明: "高速网络环境下基于零拷贝的报文捕获机制研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068766A (zh) * 2015-08-14 2015-11-18 上海红神信息技术有限公司 一种基于fpga高速读取磁盘阵列中文件的方法
CN105068766B (zh) * 2015-08-14 2017-10-31 上海红神信息技术有限公司 一种基于fpga高速读取磁盘阵列中文件的方法
CN116896536A (zh) * 2023-09-11 2023-10-17 北京大禹智芯科技有限公司 一种基于mtcp接收乱序处理方法
CN116896536B (zh) * 2023-09-11 2023-11-24 北京大禹智芯科技有限公司 一种基于mtcp接收乱序处理方法

Also Published As

Publication number Publication date
CN102075416B (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
CN101741986B (zh) 一种用于移动通讯设备终端的页面缓存方法
US9760486B2 (en) Accelerating cache state transfer on a directory-based multicore architecture
US10334047B2 (en) Remote direct memory access with reduced latency
US9400754B2 (en) Asynchronous swap mechanism and page eviction from memory
CN104090795B (zh) 实现多核移动终端升级的方法、系统及装置
CN105430478B (zh) 一种网络视频缓冲播放方法、装置及电视机
CN103152423A (zh) 一种云存储系统及其数据存取方法
CN110073653A (zh) 视频图像数据传输方法、系统、存储介质及程序产品
JP6847105B2 (ja) 分散キャッシュライブマイグレーション
JP2018531471A6 (ja) 分散キャッシュライブマイグレーション
WO2015180513A1 (zh) 一种数据传输方法及计算机
US10331359B2 (en) Memory subsystem with wrapped-to-continuous read
CN111615692A (zh) 数据搬运方法、计算处理装置、设备及存储介质
CN113986791A (zh) 一种智能网卡快速dma设计方法、系统、设备及终端
CN103179190A (zh) 一种图片传输方法、装置和系统
CN105786997A (zh) 基于iOS系统的图片缓存与压缩方法
WO2015084506A1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
CN115543882A (zh) 不同位宽总线间的数据转发装置及数据传输方法
US20160085683A1 (en) Data receiving device and data receiving method
CN102075416B (zh) 一种软硬件结合实现tcp连接数据缓存的方法
US9490988B2 (en) Continuous information transfer with reduced latency
WO2024119812A1 (zh) 图片处理方法、系统、装置、图像压缩装置及存储介质
US20150281317A1 (en) Requesting media content segments via multiple network connections
US9787755B2 (en) Method and device for browsing network data, and storage medium
EP2843594B1 (en) Image forming apparatus and image forming method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220727

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right