CN112702362B - Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 - Google Patents
Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112702362B CN112702362B CN202110310964.6A CN202110310964A CN112702362B CN 112702362 B CN112702362 B CN 112702362B CN 202110310964 A CN202110310964 A CN 202110310964A CN 112702362 B CN112702362 B CN 112702362B
- Authority
- CN
- China
- Prior art keywords
- socket
- function
- server
- client
- parameter
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种TCP/IP协议栈的增强方法、装置、电子设备及存储介质,所述方法包括:客户端处理流程和服务器端处理流程,所述客户端处理流程与所述服务器端处理流程相适配;服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项。本申请通过扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,使用该新配置选项和setsockopt编程接口为指定socket配置一个选项值,则对于该给定socket,除已经绑定的端口号外,该socket将继续关联该端口号之后的连续socket配置选项值个端口号,能够有效减少在socket配置选项值个端口上运行相同的处理程序的***开销。
Description
技术领域
本发明涉及计算机网络技术领域,尤其是一种TCP/IP协议栈的增强方法、装置、电子设备及存储介质。
背景技术
经典的TCP/IP网络协议栈实现方案中,对给定的端口号,仅接受目标地址为该指定端口的网络连接,并为该网络连接创建套接字供上层应用编程使用。
现有技术的基于网络分层的架构设计,对于协议栈的上层应用程序,仅使用操作***协议栈创建的套接字编程。因此,当上层应用需要在多个网络端口上执行相同的处理程序时,必须针对每个待使用的端口通过协议栈创建socket,并准备网络连接上下文环境和初始化应处理程序实例。假设每一个应用处理实例所需的***开销为R,在没有特殊优化的情况下,当需要在N个端口上运行相同的处理程序时,***开销为R * N,***开销较大。
因此,现有技术需要改进。
发明内容
本发明实施例所要解决的一个技术问题是:提供一种TCP/IP协议栈的增强方法、装置、电子设备及存储介质,以解决现有技术存在的问题。
在本申请的实施例中,所述TCP/IP协议栈的增强方法包括:
客户端处理流程和服务器端处理流程,所述客户端处理流程与所述服务器端处理流程相适配;
所述客户端处理流程包括:
客户端调用socket函数创建套接字;
客户端使用connect函数连接到服务器端;
客户端调用send函数和recv函数与服务器端进行通讯;
客户端调用close函数终止连接;
所述服务器端处理流程包括:
服务器端使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上;
服务器端调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字;
服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项;
服务器端通过accept函数接受客户端的连接请求;
服务器端通过调用send函数和recv函数与客户端进行通讯;
服务器端调用close函数关闭不需要的套接字。
在另一个实施例中,所述服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,包括:
扩展协议栈的套接字编程接口setsockopt参数,增加新的配置项optname;
为新的配置项optname的值optval进行赋值,将所述socket函数创建的套接字关联的端口扩展optval赋值个;
新的optname使协议栈监听扩展至指定的连续端口号,所述指定的连续端口号数量为optval赋值个。
在另一个实施例中,所述为新的配置项optname的值optval进行赋值时,所述optval的赋值范围为1至65535。
在另一个实施例中,所述connect函数用于建立客户端与服务器端的网络连接服务。
在另一个实施例中,所述send函数用于由客户端向服务器端发送请求,由服务器端向客户端发送应答;
所述recv函数用于客户端接收服务器端的应答,服务器端接收客户端的请求。
在另一个实施例中,所述setsockopt参数包括第一参数socket、第二参数level、第三参数option_name;
所述第一参数socket是所述setsockopt参数的套接字描述符;
所述第二参数level是所述setsockopt参数的被设置的选项级别;
所述第三参数option_name是所述setsockopt参数准备设置的选项;
在所述第一参数socket的套接字级别上设置选项时,所述第二参数level设置为SOL_SOCKET;
所述第二参数level的参数设置决定所述第三参数option_name的取值。
在另一个实施例中,所述第三参数option_name的取值包括:
SO_DEBUG,当所述第三参数option_name的取值为SO_DEBUG时,表示打开或关闭调试信息,其中当SO_DEBUG取值不等于0时,表示打开调试信息,否则,关闭调试信息;
SO_REUSEADDR,当所述第三参数option_name的取值为SO_REUSEADDR时,表示打开或关闭地址复用功能,其中当SO_REUSEADDR取值不等于0时,表示打开地址复用功能,否则,表示关闭地址复用功能;
SO_DONTROUTE,当所述第三参数option_name的取值为SO_DONTROUTE时,表示打开或关闭路由查找功能,其中当SO_DONTROUTE取值不等于0时,表示打开路由查找功能,否则,表示关闭路由查找功能;
SO_BROADCAST,当所述第三参数option_name的取值为SO_BROADCAST时,表示允许或禁止发送广播数据,其中当SO_BROADCAST取值不等于0时,表示允许发送广播数据,否则,表示禁止发送广播数据;
SO_SNDBUF,当所述第三参数option_name的取值为SO_SNDBUF时,表示设置发送缓冲区的大小,所述发送缓冲区上限为256字节,下限为2048字节。
基于本发明实施例的另一个方面,公开一种TCP/IP协议栈的增强装置,所述装置包括:
客户端,用于执行客户端处理流程,调用socket函数创建套接字,使用connect函数连接到服务器端,调用send函数和recv函数与服务器端进行通讯,调用close函数终止连接;
服务器端,用于执行服务器端处理流程,使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上,调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字,扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,通过accept函数接受客户端的连接请求,通过调用send函数和recv函数与客户端进行通讯,调用close函数关闭不需要的套接字;
所述客户端处理流程与所述服务器端处理流程相适配。
基于本发明实施例的又一个方面,公开一种电子设备,所述电子设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现本发明各实施例提供的TCP/IP协议栈的增强方法。
基于本发明实施例的又一个方面,公开一种存储有计算机程序的计算机可读存储介质,该计算机程序被执行时实现本发明各实施例提供的TCP/IP协议栈的增强方法。
与现有技术相比,本发明具有以下优点:
本申请的TCP/IP协议栈的增强方法、装置、电子设备及存储介质通过扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,使用该新配置选项和setsockopt编程接口为指定socket配置一个选项值,则对于该给定socket,除已经绑定的端口号外,该socket将继续关联该端口号之后的连续socket配置选项值个端口号,能够有效减少在socket配置选项值个端口上运行相同的处理程序的***开销。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为一个实施例中TCP/IP协议栈的增强方法的应用场景图;
图2为本发明一个实施例中TCP/IP协议栈的增强装置的结构框图;
图3为一个实施例中电子设备的内部结构图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请提供的TCP/IP协议栈的增强方法,可以应用于如图1所示的应用环境中。该TCP/IP协议栈的增强方法应用于TCP/IP协议栈的增强装置中。该TCP/IP协议栈的增强装置的客户端配置在终端102,服务器端配置在服务器104,由终端102与服务器104交互完成TCP/IP协议栈的增强方法。
其中,终端102与服务器104可以通过网络进行通信。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,终端102需具有获取FPGA与多路网口的配置信息和CPU的千兆网卡控制器与所述FPGA的连接信息,将所述多路网口的MAC地址汇总到所述CPU的千兆网卡控制器上信息的功能,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,提供了一种TCP/IP协议栈的增强方法,本实施例主要以该方法应用于图1中的终端102与服务器104中。
TCP/IP协议栈的增强方法包括客户端处理流程和服务器端处理流程,所述客户端处理流程与所述服务器端处理流程相适配;
所述客户端处理流程包括:
客户端调用socket函数创建套接字;
具体的,socket函数是用于创建套接字的函数,客户端调用socket函数创建TCP套接字的程序描述为:
SOCKET socket(int af, int type, int protocol);
除了返回值类型不同,其他都是相同的。Windows不把套接字作为普通文件对待,而是返回SOCKET类型的句柄。比如,一个具体的实施例为:
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);//创建TCP套接字。
客户端使用connect函数连接到服务器端;
具体的,客户端用connect函数来建立于TCP服务器端的连接,程序描述为:
#include<sys/socket.h>
int connect(int sockfd, const struct sockaddr *servaddr, int *addrlen);
返回:若成功则返回0,失败则返回-1。
客户端调用send函数和recv函数与服务器端进行通讯;
具体的,客户端调用send函数与服务器端进行通讯的程序描述为:
int send( SOCKET s, const char FAR *buf, int len, int flags );
客户端用send函数来向TCP连接的另一端发送数据,客户端用send函数向服务器发送请求。
具体的,客户端调用recv函数与服务器端进行通讯的程序描述为:
Int recv(SOCKETs,char FAR*buf,int len, int flags);
客户端用recv函数从TCP连接的另一端接收数据,该函数的第一个参数指定接收端套接字描述符。
客户端调用close函数终止连接。
所述服务器端处理流程包括:
服务器端使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上;
具体的,所述服务器端使用socket函数创建与客户端相适配的套接字的方式与客户端创建套接字的方式一致,服务器端调用socket函数创建TCP套接字的程序描述为:SOCKET socket(int af, int type, int protocol)。
所述服务器端通过调用bind函数把所述套接字绑定到一个监听端口上是通过socket调用创建的套接字命名,从而让socket函数创建的套接字可以被其他进程使用。对于AF_UNIX,调用该函数后套接字就会关联到一个文件***路径名,对于AF_INET,则会关联到一个IP端口号。函数原型为:
int bind( int socket, const struct sockaddr *address, size_t address_len)。
服务器端调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字;
服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项;
服务器端通过accept函数接受客户端的连接请求;
服务器端通过调用send函数和recv函数与客户端进行通讯;
具体的,服务器端调用send函数与服务器端进行通讯的方式与客户端调用send函数与服务器端进行通讯的方式相同,其程序描述为:
int send( SOCKET s, const char FAR *buf, int len, int flags );
服务器端用send函数来向TCP连接的另一端发送数据,服务器端用send函数向服务器发送响应。
具体的,服务器端调用recv函数与客户端进行通讯的程序描述为:
Int recv(SOCKETs,char FAR*buf,int len, int flags);
服务器端用recv函数从TCP连接的另一端接收数据,该函数的第一个参数指定接收端套接字描述符。
服务器端调用close函数关闭不需要的套接字。
在另一个实施例中,所述服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,包括:
扩展协议栈的套接字编程接口setsockopt参数,增加新的配置项optname;
为新的配置项optname的值optval进行赋值,将所述socket函数创建的套接字关联的端口扩展optval赋值个;
新的optname使协议栈监听扩展至指定的连续端口号,所述指定的连续端口号数量为optval赋值个。
在一个具体的实施例中,比如,为新的配置项optname设置对应的值optval为N。则对于该给定socket,除已经绑定的端口号P外,该socket将继续关联该端口号之后的连续N个端口号,即该socket将接收所有请求到端口号P至端口号P+N的TCP连接。新的配置项optname使协议栈监听指定的连续端口号,即端口号P至端口号P+N。
在另一个实施例中,所述为新的配置项optname的值optval进行赋值时,所述optval的赋值范围为1至65535。
在另一个实施例中,所述connect函数用于建立客户端与服务器端的网络连接服务。
在另一个实施例中,所述send函数用于由客户端向服务器端发送请求,由服务器端向客户端发送应答;
所述recv函数用于客户端接收服务器端的应答,服务器端接收客户端的请求。
在另一个实施例中,所述setsockopt参数包括第一参数socket、第二参数level、第三参数option_name;
所述第一参数socket是所述setsockopt参数的套接字描述符;
所述第二参数level是所述setsockopt参数的被设置的选项级别;
所述第三参数option_name是所述setsockopt参数准备设置的选项;
在所述第一参数socket的套接字级别上设置选项时,所述第二参数level设置为SOL_SOCKET;
所述第二参数level的参数设置决定所述第三参数option_name的取值。
在另一个实施例中,所述第三参数option_name的取值包括:
SO_DEBUG,当所述第三参数option_name的取值为SO_DEBUG时,表示打开或关闭调试信息,其中当SO_DEBUG取值不等于0时,表示打开调试信息,否则,关闭调试信息;
SO_REUSEADDR,当所述第三参数option_name的取值为SO_REUSEADDR时,表示打开或关闭地址复用功能,其中当SO_REUSEADDR取值不等于0时,表示打开地址复用功能,否则,表示关闭地址复用功能;
SO_DONTROUTE,当所述第三参数option_name的取值为SO_DONTROUTE时,表示打开或关闭路由查找功能,其中当SO_DONTROUTE取值不等于0时,表示打开路由查找功能,否则,表示关闭路由查找功能;
SO_BROADCAST,当所述第三参数option_name的取值为SO_BROADCAST时,表示允许或禁止发送广播数据,其中当SO_BROADCAST取值不等于0时,表示允许发送广播数据,否则,表示禁止发送广播数据;
SO_SNDBUF,当所述第三参数option_name的取值为SO_SNDBUF时,表示设置发送缓冲区的大小,所述发送缓冲区上限为256字节,下限为2048字节。
本申请的TCP/IP协议栈的增强方法通过扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,使用该新配置选项和setsockopt编程接口为指定socket配置一个选项值,则对于该给定socket,除已经绑定的端口号外,该socket将继续关联该端口号之后的连续socket配置选项值个端口号,能够有效减少在socket配置选项值个端口上运行相同的处理程序的***开销。
在一个实施例中,如图2所示,提供了一种TCP/IP协议栈的增强装置,包括:服务器端、客户端。
获取模块,用于获取需要展示的大数据文件;
客户端,用于执行客户端处理流程,调用socket函数创建套接字,使用connect函数连接到服务器端,调用send函数和recv函数与服务器端进行通讯,调用close函数终止连接;
服务器端,用于执行服务器端处理流程,使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上,调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字,扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,通过accept函数接受客户端的连接请求,通过调用send函数和recv函数与客户端进行通讯,调用close函数关闭不需要的套接字;
所述客户端处理流程与所述服务器端处理流程相适配。
本申请的TCP/IP协议栈的增强装置通过扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,使用该新配置选项和setsockopt编程接口为指定socket配置一个选项值,则对于该给定socket,除已经绑定的端口号外,该socket将继续关联该端口号之后的连续socket配置选项值个端口号,能够有效减少在socket配置选项值个端口上运行相同的处理程序的***开销。
关于TCP/IP协议栈的增强装置的具体限定可以参见上文中对于TCP/IP协议栈的增强方法的限定,在此不再赘述。上述TCP/IP协议栈的增强装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图3所示。该电子设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该计算机程序被处理器执行时以实现一种TCP/IP协议栈的增强方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的TCP/IP协议栈的增强装置可以实现为一种计算机程序的形式,计算机程序可在如图3所示的电子设备上运行。电子设备的存储器中可存储组成该基于TCP/IP协议栈的增强装置的各个程序模块,比如,图2所示的服务器端、客户端。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的TCP/IP协议栈的增强方法中的步骤。
例如,图3所示的电子设备可以通过图2所示的TCP/IP协议栈的增强装置的客户端执行客户端处理流程,调用socket函数创建套接字,使用connect函数连接到服务器端,调用send函数和recv函数与服务器端进行通讯,调用close函数终止连接;服务器端执行服务器端处理流程,使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上,调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字,扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,通过accept函数接受客户端的连接请求,通过调用send函数和recv函数与客户端进行通讯,调用close函数关闭不需要的套接字;所述客户端处理流程与所述服务器端处理流程相适配。
本申请计算机程序被处理器执行时,通过通过扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,使用该新配置选项和setsockopt编程接口为指定socket配置一个选项值,则对于该给定socket,除已经绑定的端口号外,该socket将继续关联该端口号之后的连续socket配置选项值个端口号,能够有效减少在socket配置选项值个端口上运行相同的处理程序的***开销。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,比如静态随机存取存储器(Static Random Access Memory,SRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种TCP/IP协议栈的增强方法,其特征在于,包括:
客户端处理流程和服务器端处理流程,所述客户端处理流程与所述服务器端处理流程相适配;
所述客户端处理流程包括:
客户端调用socket函数创建套接字;
客户端使用connect函数连接到服务器端;
客户端调用send函数和recv函数与服务器端进行通讯;
客户端调用close函数终止连接;
所述服务器端处理流程包括:
服务器端使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上;
服务器端调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字;
服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项;
服务器端通过accept函数接受客户端的连接请求;
服务器端通过调用send函数和recv函数与客户端进行通讯;
服务器端调用close函数关闭不需要的套接字;
所述服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,包括:
扩展协议栈的套接字编程接口setsockopt参数,增加新的配置项optname;
为新的配置项optname的值optval进行赋值,将所述socket函数创建的套接字关联的端口扩展optval赋值个;
新的optname使协议栈监听扩展至指定的连续端口号,所述指定的连续端口号数量为optval赋值个。
2.根据权利要求1所述的TCP/IP协议栈的增强方法,其特征在于,所述为新的配置项optname的值optval进行赋值时,所述optval的赋值范围为1至65535。
3.根据权利要求1所述的TCP/IP协议栈的增强方法,其特征在于,所述connect函数用于建立客户端与服务器端的网络连接服务。
4.根据权利要求1所述的TCP/IP协议栈的增强方法,其特征在于,所述send函数用于由客户端向服务器端发送请求,由服务器端向客户端发送应答;
所述recv函数用于客户端接收服务器端的应答,服务器端接收客户端的请求。
5.根据权利要求1所述的TCP/IP协议栈的增强方法,其特征在于,所述setsockopt参数包括第一参数socket、第二参数level、第三参数option_name;
所述第一参数socket是所述setsockopt参数的套接字描述符;
所述第二参数level是所述setsockopt参数的被设置的选项级别;
所述第三参数option_name是所述setsockopt参数准备设置的选项;
在所述第一参数socket的套接字级别上设置选项时,所述第二参数level设置为SOL_SOCKET;
所述第二参数level的参数设置决定所述第三参数option_name的取值。
6.根据权利要求5所述的TCP/IP协议栈的增强方法,其特征在于,所述第三参数option_name的取值包括:
SO_DEBUG,当所述第三参数option_name的取值为SO_DEBUG时,表示打开或关闭调试信息,其中当SO_DEBUG取值不等于0时,表示打开调试信息,否则,关闭调试信息;
SO_REUSEADDR,当所述第三参数option_name的取值为SO_REUSEADDR时,表示打开或关闭地址复用功能,其中当SO_REUSEADDR取值不等于0时,表示打开地址复用功能,否则,表示关闭地址复用功能;
SO_DONTROUTE,当所述第三参数option_name的取值为SO_DONTROUTE时,表示打开或关闭路由查找功能,其中当SO_DONTROUTE取值不等于0时,表示打开路由查找功能,否则,表示关闭路由查找功能;
SO_BROADCAST,当所述第三参数option_name的取值为SO_BROADCAST时,表示允许或禁止发送广播数据,其中当SO_BROADCAST取值不等于0时,表示允许发送广播数据,否则,表示禁止发送广播数据;
SO_SNDBUF,当所述第三参数option_name的取值为SO_SNDBUF时,表示设置发送缓冲区的大小,所述发送缓冲区上限为256字节,下限为2048字节。
7.一种TCP/IP协议栈的增强装置,其特征在于,所述装置包括:
客户端,用于执行客户端处理流程,调用socket函数创建套接字,使用connect函数连接到服务器端,调用send函数和recv函数与服务器端进行通讯,调用close函数终止连接;
服务器端,用于执行服务器端处理流程,使用socket函数创建与客户端相适配的套接字,并调用bind函数把所述套接字绑定到一个监听端口上,调用listen函数,使所述绑定到监听端口的套接字成为一个处于监听状态的套接字,扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,通过accept函数接受客户端的连接请求,通过调用send函数和recv函数与客户端进行通讯,调用close函数关闭不需要的套接字;
所述客户端处理流程与所述服务器端处理流程相适配;
所述服务器端扩展协议栈的套接字编程接口setsockopt,提供新的TCP配置选项,包括:扩展协议栈的套接字编程接口setsockopt参数,增加新的配置项optname;为新的配置项optname的值optval进行赋值,将所述socket函数创建的套接字关联的端口扩展optval赋值个;新的optname使协议栈监听扩展至指定的连续端口号,所述指定的连续端口号数量为optval赋值个。
8.一种电子设备,其特征在于,所述设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至6中任一项所述的方法。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,该计算机程序被执行时实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110310964.6A CN112702362B (zh) | 2021-03-24 | 2021-03-24 | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110310964.6A CN112702362B (zh) | 2021-03-24 | 2021-03-24 | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702362A CN112702362A (zh) | 2021-04-23 |
CN112702362B true CN112702362B (zh) | 2021-06-08 |
Family
ID=75515593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110310964.6A Active CN112702362B (zh) | 2021-03-24 | 2021-03-24 | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702362B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390024B (zh) * | 2021-12-31 | 2024-03-19 | 中科南京移动通信与计算创新研究院 | 接入网协议栈测试方法、***及存储介质 |
CN116366639B (zh) * | 2023-06-01 | 2023-11-14 | 深圳市七彩虹禹贡科技发展有限公司 | 一种在uefi下联网更新主板bios的方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016102004A1 (en) * | 2014-12-23 | 2016-06-30 | Huawei Technologies Co., Ltd. | Network extended tcp splicing |
CN105991462B (zh) * | 2015-03-02 | 2019-05-28 | 华为技术有限公司 | 传输控制协议tcp数据包的发送方法、发送装置和*** |
CN104734825B (zh) * | 2015-03-03 | 2018-04-06 | 国家电网公司 | 一种基于ip协议扩展的网络冗余容错方法及*** |
CN106506644A (zh) * | 2016-11-07 | 2017-03-15 | 深圳市共进电子股份有限公司 | 终端调试信息收集方法和*** |
CN111837371A (zh) * | 2018-01-26 | 2020-10-27 | Idac控股公司 | 基于增强mptcp的应用移动性 |
-
2021
- 2021-03-24 CN CN202110310964.6A patent/CN112702362B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112702362A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052675B (zh) | 日志管理方法、***及计算机可读存储介质 | |
US5748897A (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
US5818448A (en) | Apparatus and method for identifying server computer aggregation topologies | |
EP2321937B1 (en) | Load balancing for services | |
US8291486B2 (en) | Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring | |
US20030231632A1 (en) | Method and system for packet-level routing | |
CN112702362B (zh) | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 | |
US8539089B2 (en) | System and method for vertical perimeter protection | |
CN112769794B (zh) | 一种数据转换方法及装置 | |
US11916740B2 (en) | K8S-based service deployment method and apparatus, device, and medium | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN112822061B (zh) | 一种边缘节点对外暴露服务的方法和*** | |
CN114268667B (zh) | 数据转发方法、装置、计算机设备及存储介质 | |
CN112165449A (zh) | web应用实时权限的控制方法、电子装置和存储介质 | |
US11861386B1 (en) | Application gateways in an on-demand network code execution system | |
US20050144290A1 (en) | Arbitrary java logic deployed transparently in a network | |
CN111787105B (zh) | 文件传输方法、装置、计算机设备和存储介质 | |
US7363383B2 (en) | Running a communication protocol state machine through a packet classifier | |
CN116881040A (zh) | 一种业务操作处理方法、装置、电子装置和存储介质 | |
US20050188070A1 (en) | Vertical perimeter framework for providing application services | |
CN104969533B (zh) | 一种数据包处理方法和装置 | |
CN113641518B (zh) | 服务调用方法、装置及存储介质 | |
US8499023B1 (en) | Servlet-based grid computing environment using grid engines and switches to manage resources | |
US7290055B2 (en) | Multi-threaded accept mechanism in a vertical perimeter communication environment | |
WO2020031726A1 (ja) | サーバ、サーバシステム及びサーバのネットワーク帯域増加方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |