一种基于Socket对接TOE驱动的TCP加速方法技术

技术编号:31481034 阅读:28 留言:0更新日期:2021-12-18 12:14
本发明专利技术提供了一种基于Socket对接TOE驱动的TCP加速方法,所述方法应用于基于Socket对接TOE驱动的TCP加速网卡;所述方法通过动态替换Socket模块使Socket跳过linux内核协议栈直接对接TOE驱动,通过FGPA实现运输层,网络层以及数据链路层的封装,校验,解包等操作。本发明专利技术采用动态替换Socket模块方法不需要修改内核源码,使用方便,工作量相对较小。工作量相对较小。工作量相对较小。

【技术实现步骤摘要】
一种基于Socket对接TOE驱动的TCP加速方法


[0001]本专利技术涉及一种互联网
,尤其涉及一种基于Socket对接TOE驱动的TCP加速方法。

技术介绍

[0002]随着网络信息的高速发展,在网络数据的传输量呈现指数增长的趋势,传统的TCP通信计算量过大,导致网络吞吐量受限于CPU性能,于是市场上出现了一种TCP加速技术TCP/IP Offload Engine,该技术将TCP/IP通信模块直接移植到FGPA,通过硬件做计算加速。该技术的引发了一个问题,在linux内核中,由于Socket模块直接对接TCP/IP模块(网络协议栈),为了保证用户习惯的一致性,需要修改Socket模块使其直接对接TOE网卡驱动。
[0003]linux内核网络协议栈中包含TCP、UDP、IP、ICMP、IGMP等多种协议。
[0004]应用层:负责处理特定的应用层细节,应用与应用之间通过解析应用层协议来进行传输和控制。
[0005]运输层:TCP协议负责提供端到端的高可靠的数据通信。
[0006]网络层:处理分组在互本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Socket对接TOE驱动的TCP加速方法,其特征在于,动态替换Socket模块使Socket跳过linux内核协议栈直接对接TOE驱动;所述方法包括如下步骤:S1:增加add_port接口,将toe port保存到toe list port中;S2:在init的过程中通过钩子函数动态替换tcp_port为fitoe_tcp_port,替换inet_stream_ops结构体为fitoe_inet_stream_ops;S3:在fitoe_tcp_port和fitoe_inet_stream_ops中对当前port与toe port list对比,判断当前port是否属于toe port,若属于转S4;否则调用原tcp_prot和inet_stream_ops;S4:通过Driver将数据传递给FPGA,由FPGA进行多层网络协议的数据包处理工作;S5:在exit的过程中通过恢复被替换tcp_port和inet_stream_ops结构体。2.根据权利要求1所述的一种基于Socket对接TOE驱动的TCP加速方法,其特征在于,所述linux内核协议包括TCP协议和IP协议。3.根据权利要求1所述的一种基于Socket对接TOE驱动的TCP加速方法,其特征在于,所述Socket其上层为操作系统API,其下层直接对运输层。4.根据权利要求1所述基于Socket对接TOE驱动的TCP加速方法,其特征在于,所述TCP数据发送的数据流如下:A1:应用层,将用户数据添加用户首部生成应用数据,并通过Socket层tcp_sndmsg发送到运输层;A2:运输层,在应用数据中增加20byte的TCP首部生成TCP段,并将一个16bit的端口号即应用程序的标识符存入TCP首部,然后将数据交给网络层;A3:网络层,在TCP段中增加IP首部生成IP数据报,IP首部长度为20byte,其中包含了一个8bit的协议域用来标识数据属于哪一层,网络层将数据传递到数据链路层;A4:数据链路层,在IP数据报中增加14byte的以太网首部和4byte的以太网尾部生成以太网桢,最后以太网帧被FPGA通过网卡设备发送到网络中。5.根据权利要求1所述的一种基于Socket对接TOE驱动的TCP加速方法,其特征在于,所述TCP数据接收的数据流如下:B1:数据链路层,将以太...

【专利技术属性】
技术研发人员:张向前
申请(专利权)人:方一信息科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1