CN102075416A - 一种软硬件结合实现tcp连接数据缓存的方法 - Google Patents
一种软硬件结合实现tcp连接数据缓存的方法 Download PDFInfo
- 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
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/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数据缓存包括两部分,一部分是当前报文的数据缓存,另一部分是根据系统预设的需要缓存的上一个包的末尾数据的大小,在当前报文数据缓存之前,预留的一块空间。
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)
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)
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 | 曙光信息产业(北京)有限公司 | 一种支持多类型网卡链路聚合的零拷贝方法 |
-
2010
- 2010-12-17 CN CN201010611753.8A patent/CN102075416B/zh active Active
Patent Citations (4)
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)
Title |
---|
杜英明: "高速网络环境下基于零拷贝的报文捕获机制研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 * |
Cited By (4)
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 |