传输控制协议代理方法、存储介质及服务器技术

技术编号:20978394 阅读:44 留言:0更新日期:2019-04-29 18:40
本发明专利技术公开了一种传输控制协议代理方法、存储介质及服务器,该方法包括:将接收到的报文数据缓存在接口buffer中;创建链表节点,将链表节点挂在接收缓存链表中;将链表节点从接收缓存链表中进行摘链,并挂在发送缓存列表中;根据接口buffer的首地址获取接口buffer中缓存的报文数据,并发送报文数据。本发明专利技术通过接口buffer缓存接收到的报文数据,使用链表管理方式对接口buffer的内存地址进行管理,由于在TCP代理过程中,一直被操作的是包含内存地址的链表节点,减少了报文数据的拷贝处理,进而节省了内存资源,解决了现有技术中需要占用大部分的内存资源作为缓存区,使TCP代理过程的转发效率较低的问题。

Transport Control Protocol Agent Method, Storage Media and Server

The invention discloses a transmission control protocol proxy method, storage medium and server, which includes: caching received message data in interface buffer; creating linked list node, hanging linked list node in receiving buffer list; extracting linked list node from receiving buffer list and hanging it in sending buffer list; obtaining connection according to the first address of interface buffer. Cached message data in port buffer and send message data. The invention caches the received message data through the interface buffer and manages the memory address of the interface buffer by using the linked list management mode. Because in the process of TCP proxy, the linked list node containing the memory address is always operated, which reduces the copy processing of the message data, consequently saves the memory resources, and solves the problem of occupying most of the memory resources in the existing technology. For the buffer, the forwarding efficiency of TCP proxy process is low.

【技术实现步骤摘要】
传输控制协议代理方法、存储介质及服务器
本专利技术涉及网络通信
,特别是涉及一种传输控制协议(TCP,TransmissionControlProtocol)代理方法、存储介质及服务器。
技术介绍
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,主要完成第四层传输层所指定的功能,实现不同主机的应用层之间可靠的数据传输。TCP代理技术,是指在端与端网络之间增加一个TCP代理设备,其模拟部分TCP协议功能,以提高慢启动速度和重传效率,从而达到提升网络中TCP数据传输性能。如图1所示,用户向服务器发起TCP连接,TCP代理设备首先模拟代理服务器与用户终结,形成TCP代理连接1,然后TCP代理设备模拟代理客户端向服务器发起新连接,形成TCP代理连接2。用户与服务器之间的报文数据转发通过两个TCP代理连接完成,在转发过程中,报文数据被依次缓存到如图2所示的TCP代理两端的接收缓存区、发送缓存区和TCP代理之间的转发缓存区。现有技术中通过拷贝方式实现报文数据的缓存,在一次TCP代理中,一个报文数据从接收到发送被拷贝了三次。在大量TCP连接转发的网络场景下,现有的拷贝报文数据的方式,需要占用大部分的内存资源作为缓存区,使TCP代理过程的转发效率较低,无法达到提升网络中TCP数据传输性能的目的。
技术实现思路
本专利技术提供一种传输控制协议代理方法、存储介质及服务器,用以解决现有技术需要占用大部分的内存资源作为缓存区,使TCP代理过程的转发效率较低,无法达到提升网络中TCP数据传输性能的目的的问题。为解决上述技术问题,一方面,本专利技术提供一种传输控制协议代理方法,包括:将接收到的报文数据缓存在接口缓冲器(buffer)中;创建链表节点,并将所述链表节点挂在接收缓存链表中的第一预定位置,其中,所述链表节点的内容至少包括所述接口buffer的首地址;在所述链表节点移动到第二预定位置时,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置;在所述链表节点移动到第四预定位置时,根据所述链表节点中接口buffer的首地址获取所述接口buffer中缓存的报文数据,并发送所述报文数据。进一步,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置,包括:将所述链表节点从所述接收缓存链表中的所述第二预定位置进行摘链,并挂在转发缓存链表中的第五预定位置;在所述链表节点移动到第六预定位置时,将所述链表节点从所述转发缓存链表中的所述第六预定位置进行摘链,并挂在发送缓存列表中的所述第三预定位置。进一步,所述将接收到的报文数据缓存在接口缓冲器buffer中,包括:判断接口buffer池中是否存在空闲接口buffer;在存在空闲接口buffer的情况下,将接收到的报文数据缓存在所述空闲接口buffer中。进一步,将接收到的报文数据缓存在所述空闲接口buffer中之后,还包括:从硬件buffer池中置换一个空闲的硬件buffer至接口buffer池。进一步,发送所述报文数据之后,还包括:将所述接口buffer释放回硬件buffer池。进一步,发送所述报文数据,包括:判断所述报文数据的长度是否小于最大报文段长度MSS;在所述报文数据的长度小于所述MSS的情况下,将所述报文数据与所述链表节点相邻的下一个链表节点对应的报文数据合并发送,其中,所述下一个链表节点对应的报文数据为所述下一个链表节点对应的接口buffer中存储的预设长度的报文数据,所述预设长度为MSS值与所述报文数据的长度的差值。另一方面,本专利技术还提供一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如下步骤:将接收到的报文数据缓存在接口缓冲器buffer中;创建链表节点,并将所述链表节点挂在接收缓存链表中的第一预定位置,其中,所述链表节点的内容至少包括所述接口buffer的首地址;在所述链表节点移动到第二预定位置时,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置;在所述链表节点移动到第四预定位置时,根据所述链表节点中接口buffer的首地址获取所述接口buffer中缓存的报文数据,并发送所述报文数据。进一步,所述计算机程序在被所述处理器执行将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置的步骤时,具体实现如下步骤:将所述链表节点从所述接收缓存链表中的所述第二预定位置进行摘链,并挂在转发缓存链表中的第五预定位置;在所述链表节点移动到第六预定位置时,将所述链表节点从所述转发缓存链表中的所述第六预定位置进行摘链,并挂在发送缓存列表中的所述第三预定位置。进一步,所述计算机程序在被所述处理器执行将接收到的报文数据缓存在接口缓冲器buffer中的步骤时,具体实现如下步骤:判断接口buffer池中是否存在空闲接口buffer;在存在空闲接口buffer的情况下,将接收到的报文数据缓存在所述空闲接口buffer中。进一步,所述计算机程序在被所述处理器执行将接收到的报文数据缓存在所述空闲接口buffer中的步骤之后,还被所述处理器执行以下步骤:从硬件buffer池中置换一个空闲的硬件buffer至接口buffer池。进一步,所述计算机程序在被所述处理器执行发送所述报文数据的步骤之后,还被所述处理器执行以下步骤:将所述接口buffer释放回硬件buffer池。进一步,所述计算机程序在被所述处理器执行发送所述报文数据的步骤时,具体实现如下步骤:判断所述报文数据的长度是否小于最大报文段长度MSS;在所述报文数据的长度小于所述MSS的情况下,将所述报文数据与所述链表节点相邻的下一个链表节点对应的报文数据合并发送,其中,所述下一个链表节点对应的报文数据为所述下一个链表节点对应的接口buffer中存储的预设长度的报文数据,所述预设长度为MSS值与所述报文数据的长度的差值。另一方面,本专利技术还提供一种服务器,包括上述的存储介质。本专利技术通过接口buffer缓存接收到的报文数据,使用链表管理方式对接口buffer的内存地址进行管理,在发送时直接根据内存地址获取并发送接口buffer中缓存的报文数据。由于在TCP代理过程中,一直被操作的是包含有接口buffer的内存地址的链表节点,减少了报文数据的拷贝处理,进而节省了内存资源,提升了TCP代理的转发效率,解决了现有技术中需要占用大部分的内存资源作为缓存区,使TCP代理过程的转发效率较低,无法达到提升网络中TCP数据传输性能的目的的问题。附图说明图1是本专利技术现有技术中TCP代理示意图;图2是本专利技术现有技术中报文数据的缓存示意图;图3是本专利技术第一实施例中TCP代理方法的流程图;图4是本专利技术第三实施例中服务器的代理过程示意图。具体实施方式为了解决现有技术需要占用大部分的内存资源作为缓存区,使TCP代理过程的转发效率较低,无法达到提升网络中TCP数据传输性能的目的的问题,本专利技术提供了一种TCP代理方法、存储介质及服务器,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术第一实施例提供了一种TCP代理方法,其流程图如图3所示,具体包括步骤S301至S304:S3本文档来自技高网...

【技术保护点】
1.一种传输控制协议代理方法,其特征在于,包括:将接收到的报文数据缓存在接口缓冲器buffer中;创建链表节点,并将所述链表节点挂在接收缓存链表中的第一预定位置,其中,所述链表节点的内容至少包括所述接口buffer的首地址;在所述链表节点移动到第二预定位置时,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置;在所述链表节点移动到第四预定位置时,根据所述链表节点中接口buffer的首地址获取所述接口buffer中缓存的报文数据,并发送所述报文数据。

【技术特征摘要】
1.一种传输控制协议代理方法,其特征在于,包括:将接收到的报文数据缓存在接口缓冲器buffer中;创建链表节点,并将所述链表节点挂在接收缓存链表中的第一预定位置,其中,所述链表节点的内容至少包括所述接口buffer的首地址;在所述链表节点移动到第二预定位置时,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置;在所述链表节点移动到第四预定位置时,根据所述链表节点中接口buffer的首地址获取所述接口buffer中缓存的报文数据,并发送所述报文数据。2.如权利要求1所述的传输控制协议代理方法,其特征在于,将所述链表节点从所述接收缓存链表中进行摘链,并挂在发送缓存列表中的第三预定位置,包括:将所述链表节点从所述接收缓存链表中的所述第二预定位置进行摘链,并挂在转发缓存链表中的第五预定位置;在所述链表节点移动到第六预定位置时,将所述链表节点从所述转发缓存链表中的所述第六预定位置进行摘链,并挂在发送缓存列表中的所述第三预定位置。3.如权利要求1所述的传输控制协议代理方法,其特征在于,所述将接收到的报文数据缓存在接口缓冲器buffer中,包括:判断接口buffer池中是否存在空闲接口buffer;在存在空闲接口buffer的情况下,将接收到的报文数据缓存在所述空闲接口buffer中。4.如权利要求3所述的传输控制协议代理方法,其特征在于,将接收到的报文数据缓存在所述空闲接口buffer中之后,还包括:从硬件buffer池中置换一个空闲的硬件buffer至接口buffer池。5.如权利要求4所述的传输控制协议代理方法,其特征在于,发送所述报文数据之后,还包括:将所述接口buffer释放回硬件buffer池。6.如权利要求1至5中任一项所述的传输控制协议代理方法,其特征在于,发送所述报文数据,包括:判断所述报文数据的长度是否小于最大报文段长度MSS;在所述报文数据的长度小于所述MSS的情况下,将所述报文数据与所述链表节点相邻的下一个链表节点对应的报文数据合并发送,其中,所述下一个链表节点对应的报文数据为所述下一个链表节点对应的接口buffer中存储的预设长度的报文数据,所述预设长度为MSS值与所述报文数据的长度的差值。7.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如下步骤:将接收到的报文数据缓存在接口缓冲器buffer中;创建链表节点,并将所述...

【专利技术属性】
技术研发人员:吕燕燕
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1