CN102082688B - 一种软硬件结合实现tcp乱序缓冲区管理的方法 - Google Patents
一种软硬件结合实现tcp乱序缓冲区管理的方法 Download PDFInfo
- Publication number
- CN102082688B CN102082688B CN201010611748.7A CN201010611748A CN102082688B CN 102082688 B CN102082688 B CN 102082688B CN 201010611748 A CN201010611748 A CN 201010611748A CN 102082688 B CN102082688 B CN 102082688B
- Authority
- CN
- China
- Prior art keywords
- order
- tcp
- software
- hardware
- connection
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种软硬件结合实现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乱序缓冲区管理的方法,包括以下步骤:
A、网卡接收到一个TCP连接的报文后,如果报文发生了乱序,则从板载内存中申请一个乱序缓冲区,用来对该连接的报文进行排序;
B、网卡在向软件传输该TCP连接的报文时,通过在报文的报头中设置一个标记,通知软件该连接发生了乱序,占用了一个乱序缓冲区;
C、接口库收到发生乱序的TCP连接的报文后,把该TCP连接串连到一个乱序TCP链表中,并对链表的最大容量进行维护;
D、当乱序TCP容量超过***预设的阈值时,接口库软件从链表中找出一个需要释放的乱序TCP连接,通知硬件释放该连接的乱序缓冲区。
本发明的一种优选技术方案在于:
所述D步骤中软件查找需要释放的乱序缓冲区时,可以按最老连接,最少使用连接等方法选择,并通知释放该连接的乱序缓冲区。
本发明实现了大容量TCP乱序缓冲区管理,使TCP卸载***可以在高速网络上进行乱序重排。
附图说明
图1是本发明***组成结构图
具体实施方式
硬件中使用板载内存中的乱序缓冲区对乱序报文进行排序,在乱序缓冲区管理过程中,硬件负责乱序缓冲区的申请和使用。
软件在应用软件API接口库中,建立使用中的乱序缓冲区的链表,对乱序缓冲区进行管理,软件负责乱序缓冲区的释放。
实现方法和过程如下:
(1)硬件网卡接收到乱序TCP报文,申请乱序缓冲区。
硬件网卡接收到一个TCP连接的报文后,如果报文发生了乱序,则从板载内存中申请一个乱序缓冲区,用来对该连接的报文进行排序。
(2)硬件网卡通知软件TCP连接发生了乱序。
硬件在向软件传输该TCP连接的报文时,通过在报文的报头中设置一个标记,通知软件该连接发生了乱序,占用了一个乱序缓冲区。
(3)接口库软件处理乱序TCP连接,通知硬件释放缓冲区。
接口库收到发生乱序的TCP连接的报文后,把该TCP连接串连到一个乱序TCP链表中,并对链表的最大容量进行维护,当乱序TCP容量超过***预设的阈值时,接口库软件从链表中找出一个需要释放的乱序TCP连接,比如最老的连接或最少使用的连接,通知硬件释放该连接的乱序缓冲区。
Claims (1)
1.一种软硬件结合实现TCP乱序缓冲区管理的方法,其特征在于:包括以下步骤:
A、网卡接收到一个TCP连接的报文后,如果报文发生了乱序,则从板载内存中申请一个乱序缓冲区,用来对该连接的报文进行排序;
B、网卡在向软件传输该TCP连接的报文时,通过在报文的报头中设置一个标记,通知软件该连接发生了乱序,占用了一个乱序缓冲区;
C、接口库收到发生乱序的TCP连接的报文后,把该TCP连接串连到一个乱序TCP链表中,并对链表的最大容量进行维护;
D、当乱序TCP容量超过***预设的阈值时,接口库软件从链表中找出一个需要释放的乱序TCP连接,通知硬件释放该连接的乱序缓冲区;
所述D步骤中软件查找需要释放的乱序缓冲区时,可以按最老连接,最少使用连接等方法选择,并通知释放该连接的乱序缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611748.7A CN102082688B (zh) | 2010-12-17 | 2010-12-17 | 一种软硬件结合实现tcp乱序缓冲区管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611748.7A CN102082688B (zh) | 2010-12-17 | 2010-12-17 | 一种软硬件结合实现tcp乱序缓冲区管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102082688A CN102082688A (zh) | 2011-06-01 |
CN102082688B true CN102082688B (zh) | 2014-08-13 |
Family
ID=44088445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010611748.7A Active CN102082688B (zh) | 2010-12-17 | 2010-12-17 | 一种软硬件结合实现tcp乱序缓冲区管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102082688B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024924B (zh) * | 2022-01-05 | 2022-04-12 | 北京安博通科技股份有限公司 | 一种tcp流重组方法、装置、电子设备及存储介质 |
Citations (5)
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 | 曙光信息产业(北京)有限公司 | 一种支持多类型网卡链路聚合的零拷贝方法 |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7295555B2 (en) * | 2002-03-08 | 2007-11-13 | Broadcom Corporation | System and method for identifying upper layer protocol message boundaries |
-
2010
- 2010-12-17 CN CN201010611748.7A patent/CN102082688B/zh active Active
Patent Citations (5)
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 | 曙光信息产业(北京)有限公司 | 一种支持多类型网卡链路聚合的零拷贝方法 |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
Non-Patent Citations (1)
Title |
---|
杜英明.高速网络环境下基于零拷贝的报文捕获机制研究与实现.《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》.2009,第34页第1段,第4.3.1节,图4.4. * |
Also Published As
Publication number | Publication date |
---|---|
CN102082688A (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101754545B1 (ko) | 플래시 메모리들에서 커맨드 완료의 확인 | |
US20190026319A1 (en) | Adaptive monitoring and processing of new data files and changes to existing data files | |
CN105490985B (zh) | 一种基于信令传输的tcp长连接的实现方法及装置 | |
US20190068501A1 (en) | Throttling for bandwidth imbalanced data transfers | |
WO2018121696A1 (zh) | 用于多线程处理的方法及装置、服务器 | |
CN108885585A (zh) | 在基于中央处理单元(cpu)的***中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩 | |
US11914552B1 (en) | Facilitating existing item determinations | |
WO2019062572A1 (zh) | 一种数据处理方法、装置及*** | |
CN102082688B (zh) | 一种软硬件结合实现tcp乱序缓冲区管理的方法 | |
CN104199800A (zh) | 一种解决多核***中表项互斥的方法 | |
US20090106454A1 (en) | Independent synchronization of meta-data between devices | |
CN117544507A (zh) | 基于云对象存储服务的多区域分布式配置方法及*** | |
CN102750342A (zh) | 一种集群文件***数据一致性的方法 | |
CN102075416B (zh) | 一种软硬件结合实现tcp连接数据缓存的方法 | |
CN102609217B (zh) | 一种io设备的高速存储方法及*** | |
CN107615259A (zh) | 一种数据处理方法及*** | |
CN110266526A (zh) | 一种设备树的加载方法及设备 | |
CN102098290A (zh) | 一种tcp流淘汰替换方法 | |
WO2014019479A1 (en) | Method and device based on android system for tracking imported file | |
WO2023019712A1 (zh) | 基于Zlib压缩算法的云计算资源管理器通信延迟优化方法 | |
JP6766534B2 (ja) | Uimおよびuim発行システム | |
US20120102230A1 (en) | Network storage system and network storage method | |
EP1668525B1 (en) | Data transfer management method, software and system | |
CN104035835A (zh) | 信息处理的方法及电子设备 | |
JP2006246233A (ja) | 課金システム、課金方法 |
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: 20220802 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 |