CN106470228B - 网络通信方法和系统 - Google Patents
网络通信方法和系统 Download PDFInfo
- Publication number
- CN106470228B CN106470228B CN201510511524.1A CN201510511524A CN106470228B CN 106470228 B CN106470228 B CN 106470228B CN 201510511524 A CN201510511524 A CN 201510511524A CN 106470228 B CN106470228 B CN 106470228B
- Authority
- CN
- China
- Prior art keywords
- task
- time slice
- client
- running
- clients
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网络通信方法和系统,该方法包括以下步骤:通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到所述管理容器的任务队列中;通过所述管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片;每隔第一设置时间向每个客户端发送一次心跳包。上述网络通信方法和系统,提高了服务器与客户端之间网络通信的效率,确保了通信的实时性。
Description
【技术领域】
本发明涉及数据传输领域,特别是涉及一种网络通信方法和系统。
【背景技术】
当主控服务器需要跟多个信号发生器进行通信时,传统的做法是主控服务器给每个信号发生器都分配固定的时间片,在这种做法下,当某些信号发生器与主控服务器间几乎没有数据传输或者二者传输的数据量很少时,依然分配了固定的时间片给信号发生器,这样就会导致其它拥有大量数据传输的信号发生器只能进行等待,严重影响了主控服务器和信号发生器之间的传输效率。
若是采用当信号发生器与主控服务器之间没有数据传输时不分配运行时间片的做法,则会导致信号发生器因长时间与主控服务器之间没有数据交互而掉线,两者的通信的实时性又无法得到保障。
【发明内容】
基于此,有必要提供一种网络通信方法,其能提高服务器与多客户端的传输效率,并确保通信的实时性。
此外,还有必要提供一种网络通信系统,其能提高服务器与多客户端的传输效率,并确保通信的实时性。
一种网络通信方法,包括以下步骤:
通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到所述管理容器的任务队列中;
通过所述管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片;
每隔第一设置时间向每个客户端发送一次心跳包。
在其中一个实施例中,所述方法还包括步骤:
设置所述客户端的最小运行时间片;
设置所述客户端的最大运行时间片,其中,所述任务运行时间片大于或等于最小运行时间片,且小于或等于最大运行时间片。
在其中一个实施例中,所述通过所述管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片的步骤包括:
通过所述管理容器给每个任务分配固定运行时间片;
轮询运行所述任务队列中的任务;
判断各个任务是否在当前任务运行时间片内将数据处理完,若否,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的当前任务运行时间片加上第二设置时间作为下次的任务运行时间片分配给该任务;
若是,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的本次耗时作为下次的任务运行时间片分配给该任务。
在其中一个实施例中,所述方法还包括步骤:
设置N个机会运行时间片,其中,当所述客户端的数量小于或等于2时,N为0,当所述客户端的数量大于2且小于或等于10时,N为1,当所述客户端的数量大于10且小于或等于100时,N为2,当所述客户端的数量大于100时,N为3;
通过所述管理容器将所述机会运行时间片分配给拥有最大运行时间片且连接最早的客户端,分配数量为所述机会运行时间片的数量N。
在其中一个实施例中,所述设置所述客户端的最大运行时间片的步骤包括:
确定总轮询数量,当所述机会运行时间片的数量N为0时,所述总轮询数量为所述客户端的数量,当所述机会运行时间片的数量N不为0时,所述总轮询数量为所述客户端的数量与所述机会运行时间片的数量N之和;
根据所述总轮询数量动态设置最大运行时间片,所述最大运行时间片与所述总轮询数量成线性相关。
一种网络通信系统,包括:
任务建立模块,用于通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到所述管理容器的任务队列中;
分配模块,用于通过所述管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片;
心跳包模块,用于每隔第一设置时间每个客户端发送一次心跳包。
在其中一个实施例中,所述系统还包括:
最小时间片设置模块,用于设置所述客户端的最小运行时间片;
最大时间片设置模块,用于设置所述客户端的最大运行时间片,其中,所述任务运行时间片大于或等于最小运行时间片,且小于或等于最大运行时间片。
在其中一个实施例中,所述分配模块还包括:
固定时间片分配子模块,用于通过所述管理容器给每个任务分配固定运行时间片;
轮询子模块,用于轮询运行所述任务队列中的任务;
运行时间片调整子模块,用于通过所述管理容器给各个任务调整下次的任务运行时间片,所述运行时间片调整子模块的调整形式为判断各个任务是否在当前任务运行时间片内将数据处理完,若否,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的当前任务运行时间片加上第二设置时间作为下次任务运行时间片分配给该任务,若是,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的本次耗时作为下次的任务运行时间片分配给该任务。
在其中一个实施例中,所述系统还包括:
机会时间片设置模块,用于设置N个机会运行时间片,所述机会时间片设置模块设置数量N的形式为当所述客户端的数量小于或等于2时,N为0,当所述客户端的数量大于2且小于或等于10时,N为1,当所述客户端的数量大于10且小于或等于100时,N为2,当所述客户端的数量大于100时,N为3;
机会时间片分配模块,用于通过所述管理容器将所述机会运行时间片分配给拥有最大运行时间片且连接最早的客户端,分配数量为所述机会运行时间片的数量N。
在其中一个实施例中,所述最大时间片设置模块包括:
总轮询数量确定子模块,用于确定所述总轮询数量,当所述机会运行时间片的数量N为0时,所述总轮询数量为所述客户端的数量,当所述机会运行时间片的数量N不为0时,所述总轮询数量为所述客户端的数量与所述机会运行时间片的数量N之和;
动态设置子模块,用于根据所述总轮询数量动态设置最大运行时间片,所述最大运行时间片与所述总轮询数量成线性相关。
上述网络通信方法和系统,服务器通过预先建立的管理容器为与服务器连接的客户端建立任务并将任务加入到管理容器的任务队列中后,轮询进行任务运行,使管理容器根据客户端的数据量动态为客户端分配运行时间片,提高了服务器与客户端之间网络通信的效率,避免客户端进行不必要的等待,让资源得到最合理的利用。同时,服务器定时向客户端发送心跳包,防止客户端与服务器因长时间没有数据传输而掉线,保证了通信的实时性。
服务器还通过设置最小运行时间片、最大运行时间片和N个机会运行时间片来实现服务器与多客户端数据传输的均衡。
【附图说明】
图1为一个实施例中网络通信方法的流程示意图;
图2为另一个实施例中网络通信方法的流程示意图;
图3为一个实施例中管理容器动态分配任务运行时间片的流程示意图;
图4为一个实施例中网络通信系统的结构示意图;
图5为另一个实施例中网络通信系统的结构示意图;
图6为一个实施例中分配模块的结构示意图。
【具体实施方式】
下面结合附图及具体的实施例对本发明的技术方案进行详细的描述。
如图1所示,在一个实施例中,一种网络通信方法,包括以下步骤:
步骤S110,通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到管理容器的任务队列中。
具体的,服务器为主控服务器,客户端为信号发生装置客户端,服务器创建管理容器专门用于管理客户端,管理容器为每个客户端建立任务,任务包含客户端的运行状态、运行时间片等属性。任务被加入到任务队列中,管理容器负责对任务队列中的所有任务进行调度和管理。
步骤S120,通过管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片。
步骤S130,每隔第一设置时间向每个客户端发送一次心跳包。
具体的,心跳包所携带的数据很小,并不会占用太多的资源,第一设置时间不过能长,也不能过短,发送心跳包时间间隔过长会导致客户端因长时间与服务器没有数据传输而掉线,时间间隔过短会增加网络传输的负担。如第一设置时间取为3000ms(毫秒),则服务器每隔3000ms向已建立连接的每个客户端发送一次心跳包。
上述网络通信方法,服务器通过预先建立的管理容器为与服务器连接的客户端建立任务并将任务加入到管理容器的任务队列中后,轮询进行任务运行,使管理容器根据客户端的数据量动态为客户端分配运行时间片,提高了服务器与客户端之间网络通信的效率,避免客户端进行不必要的等待,让资源得到最合理的利用。同时,服务器定时向客户端发送心跳包,防止客户端与服务器因长时间没有数据传输而掉线,保证了通信的实时性。
如图2所示,在另一个实施例中,上述网络通信方法,还包括以下步骤:
步骤S210,设置最小运行时间片。
具体的,最小运行时间片可以设置为很小的数值,比如0.01ms,用以处理心跳包,确保连接到服务器的客户端均有运行的机会,因为心跳包的数据量很小,所以最小运行时间片很小也足够处理心跳包。每个客户端每次分配的任务运行时间片不能小于最小时运行间片。
步骤S220,设置最大运行时间片。
具体的,每个客户端每次分配的任务运行时间片不能大于最大运行时间片,最大运行时间片是一个动态变化值,它跟连接到服务器的客户端数量有关。连接的客户端数量少,最大运行时间片就大,连接的客户端数量多,最大运行时间片就小,但是最小不会小于最小运行时间片,以此来确保每个客户端运行完成到下一次取得运行权的时间间隔在一个合理的区间内,保证每个客户端在该时间间隔内都能得到响应,确保通信的实时性。
每个客户端运行完成到下一次取得运行权的时间间隔可以视具体情况而定,如将其设为100ms,即要求每个客户端要在100ms内能得到响应。最大运行时间片与管理容器的总轮询数量程线性相关,当总轮询数量为1时,那么最大运行时间片为100ms,当总轮询数量为2时,那么最大运行时间片为50ms,当总轮询数量为3时,那么最大运行时间片为33ms,以此类推。总轮询数量与建立连接的客户端数量和机会运行时间片的数量N有关。当机会运行时间片的数量N为0时,总轮询数量为客户端的数量,当机会运行时间片的数量N不为0时,总轮询数量为客户端的数量与机会运行时间片的数量N之和。
步骤S230,设置N个机会运行时间片。
具体的,设置机会运行时间片,可将其分配给拥有最大运行时间片且连接服务器最早的N个客户端,让数据量大且最早连接的客户端获取更多的机会进行数据传输。机会运行时间片的数量N根据连接的客户端数量来定,具体方法如下:当客户端连接数量≤2时,N可为0;当2﹤客户端连接数量≤10时,N可为1;当10﹤客户端连接数量≤100时,N可为2;当客户端连接数量﹥100时,N可为3,也可为4、5、6等。
图3管理容器动态分配时间片的流程示意图,在一个实施例中,如图3所示,管理容器根据每个客户端的通信数据量动态给各个客户端分配网络通信运行时间片的步骤具体包括:
步骤S302,通过管理容器给每个任务分配固定运行时间片。
具体的,初始化时,管理容器给任务队列中的每个队列分配固定运行时间片,比如分配的固定运行时间片为20ms。
步骤S304,轮询运行任务队列中的任务。
具体的,任务轮询运行的先后按客户端连接服务器的先后顺序进行排列。
步骤S306,判断任务是否在当前任务运行时间片内将数据处理完,若否,则执行步骤S308,若是,则执行步骤S312。
步骤S308,管理容器剥夺任务的运行权,将运行权交给下一个任务,然后执行步骤S310。
步骤S312,管理容器剥夺任务的运行权,将运行权交给下一个任务,然后执行步骤S314。
步骤S310,管理容器将该任务的当前任务运行时间片加上第二设置时间作为下次的任务运行时间片分配给该任务,然后执行步骤S320。
具体的,当一个任务的任务运行时间片用完但数据还未处理完时,管理容器会强制剥夺它的运行权,然后将运行权交给任务队列中的下一个任务。未处理完的数据将在下次该任务获得运行权时继续处理。分配下次的任务运行时间片时,管理容器会以该任务当前任务运行时间片加上第二设置时间作为新的任务运行时间片分配给它,但是下次的任务运行时间片不能高于最大运行时间片,若高于最大运行时间片则以最大运行时间片作为下次的任务运行时间片分配。其中,第二设置时间为一个存放在配置文件中的值,可以根据应用场合来定,如5ms,3ms。
步骤S314,判断任务数据处理完时当前任务运行时间片是否刚好用完,若是,则执行步骤S316,若否,则执行步骤S318。
步骤S316,分配下次的任务运行时间片时数值不变,然后执行步骤S320。
具体的,当一个任务数据处理完成时运行时间片也刚好用完,管理容器剥夺它的运行权,然后将运行权交给下一个任务,该任务下一次的任务运行时间片保持不变。
步骤S318,管理容器将任务的本次耗时作为下次的任务运行时间片分配。
具体的,当一个任务数据处理完成但其任务运行时间片还未用完时,管理容器也将剥夺它的运行权,然后将运行权交给下一交任务,分配下次的任务运行时间片时,即以本次耗时作为下次的任务运行时间片分配给该任务,下次的任务运行时间片不能小于最小运行时间片。若任务当前无数据量传输,则它下次的任务运行时间片为最小运行时间片。
步骤S320,管理容器将机会运行时间片分配给拥有最大运行时间片且连接最早的N个客户端,然后执行步骤S306。
具体的,根据步骤S230取得机会运行时间片的数量N,管理容器将机会运行时间片分配给拥有最大运行时间片且连接最早的N个客户端,让数据量大的客户端拥有更多的运行时间片进行传输数据的机会。
在一个实施例中,客户端与服务器失联后,会自动进行连接。
客户端启动后自动向服务器请求Socket(套接字)连接,如果请求Socket连接失败,则每隔一段时间(例如100ms)不断向服务器请求Socket连接直到连接成功为止。连接成功后,启动一个工作线程和一个监控线程,工作线程负责与服务器进行数据交互,监控线程用于监控接收心跳包状态,如果超过指定时间没有收到心跳包,则认为掉线,重新向服务器请求Socket连接直到连接成功为止。其中,指定时间即为第一设置时间。这样客户端即便掉线也能马上连接服务器,确保通信的实时性。
在一个实施例中,服务器与客户端的数据传输是采用特定的数据包的形式进行传递,有利于过滤掉无效数据,让系统专注于有效数据的传输服务器与客户端的所有通信数据按包为单位进行传送,包分为三个部分:头部、头部数据和数据。如下图所示:
其中,Tag是一个特殊的数字,用来说明这是一个有效的包;Cmd用来约定包的类型,包一共有两种类型:请求包和响应包;Header_size表示头部数据的大小;Data_size表示数据域的大小;Header为头部数据,头部数据在传输文件的时候有效,主要用来存放文件名称;Data为数据部分。
如图4所示,一种网络通信系统,包括任务建立模块410,分配模块420和心跳包模块430。
任务建立模块410,用于通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到管理容器的任务队列中。
具体的,服务器创建管理容器专门用于管理客户端,管理容器为每个客户端建立任务,任务包含客户端的运行状态、运行时间片等属性。
分配模块420,用于通过管理容器根据每个客户端的通信数据量动态给各个客户端分配任务运行时间片。
心跳包模块430,用于每隔第一设置时间每个客户端发送一次心跳包。
具体的,心跳包所携带的数据很小,并不会占用太多的资源,第一设置时间不过能长,也不能过短,发送心跳包时间间隔过长会导致客户端因长时间与服务器没有数据传输而掉线,时间间隔过短会增加网络传输的负担。如第一设置时间取3000ms(毫秒),则服务器每隔3000ms向已建立连接的每个客户端发送一次心跳包。
上述网络通信系统,服务器通过预先建立的管理容器为与服务器连接的客户端建立任务并将任务加入到管理容器的任务队列中后,轮询进行任务运行,使管理容器根据客户端的数据量动态为客户端分配运行时间片,提高了服务器与客户端之间网络通信的效率,避免客户端进行不必要的等待,让资源得到最合理的利用。同时,服务器定时向客户端发送心跳包,防止客户端与服务器因长时间没有数据传输而掉线,保证了通信的实时性。
如图5所示,在其中一个实施例中,上述网络通信系统,除了包括任务建立模块410,分配模块420,心跳包模块430,还包括最小时间片设置模块440,最大时间片设置模块450,机会时间片设置模块460和机会时间片分配模块470。
最小时间片设置模块440,用于设置客户端的最小运行时间片。
具体的,最小运行时间片可以设置为很小的数值,比如0.01ms,用以处理心跳包,确保连接到服务器的客户端均有运行的机会,因为心跳包的数据量很小,所以最小运行时间片很小也足够处理心跳包。每个客户端每次分配的任务运行时间片不能小于最小时运行间片。
最大时间片设置模块450,用于设置客户端的最大运行时间片。最大时间片设置模块450还包括总轮询数量确定子模块452和动态设置子模块454。
总轮询数量确定子模块452,用于确定总轮询数量,确定总轮询数量的方式为当机会运行时间片的数量N为0时,总轮询数量为客户端的数量,当机会运行时间片的数量N不为0时,总轮询数量为客户端的数量与机会运行时间片的数量N之和。
动态设置子模块454,用于根据总轮询数量动态设置最大运行时间片。
具体的,每个客户端每次分配的运行时间片不能大于最大运行时间片,最大运行时间片是一个动态变化值,它跟连接到服务器的客户端数量有关。连接的客户端数量少,最大运行时间片就大,连接的客户端数量多,最大运行时间片就小,但是最小不会小于最小运行时间片,以此来确保每个客户端运行完成到下一次取得运行权的时间间隔在一个合理的区间内,保证每个客户端在该时间间隔内都能得到响应,确保通信的实时性。
每个客户端运行完成到下一次取得运行权的时间间隔可以视具体情况而定,如将其设为100ms,即要求每个客户端要在100ms内能得到响应。最大运行时间片与管理容器的总轮询数量程线性相关,当总轮询数量为1时,那么最大运行时间片为100ms,当总轮询数量为2时,那么最大运行时间片为50ms,当总轮询数量为3时,那么最大运行时间片为33ms,以此类推。
机会时间片设置模块460,用于设置N个机会运行时间片。
具体的,机会时间片设置模块460设置数量N的形式为当与服务器建立连接的客户端数量小于或等于2时,N可为0,当与服务器建立连接的客户端数量大于2且小于或等于10时,N可为1,当与服务器建立连接的客户端数量大于10且小于或等于100时,N可为2,当所述客户端的数量大于100时,N可为3,也可为4、5、6等。
机会时间片分配模块470,用于将机会运行时间片分配给拥有最大运行时间片且连接最早的客户端,分配数量为机会运行时间片的数量N。
如图6所示,在其中一个实施例中,分配模块420还包括固定时间片分配子模块422,轮询子模块424,运行时间片调整子模块426。
固定时间片分配子模块422,用于通过管理容器给每个任务分配固定运行时间片。
具体的,初始化时,管理容器给任务队列中的每个队列分配固定运行时间片,比如分配的固定运行时间片为20ms。
轮询子模块424,用于轮询运行任务队列中的任务。
运行时间片调整子模块426,用于通过管理容器给各个任务调整下次的任务运行时间片。运行时间片调整子模块426的调整形式为判断各个任务是否在当前任务运行时间片内将数据处理完,若否,则管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的当前任务运行时间片加上第二设置时间作为下次的任务运行时间片分配给该任务,若是,则管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的本次耗时作为下次的运行时间片分配。
具体的,当一个任务的任务运行时间片用完但数据还未处理完时,管理容器会强制剥夺它的运行权,然后将运行权交给任务队列中的下一个任务。未处理完的数据将在下次该任务获得运行权时继续处理。分配下次的任务运行时间片时,管理容器会以该任务的当前任务运行时间片加上第二设置时间作为下次的任务运行时间片分配给它,但是下次的任务运行时间片不能高于最大运行时间片,若高于最大运行时间片则以最大运行时间片作为下次的任务运行时间片分配。其中,第二设置时间为一个存放在配置文件中的值,可以根据应用场合来定,如5ms,3ms。
当一个任务数据处理完成时任务运行时间片也刚好用完时,管理容器剥夺它的运行权,然后将运行权交给下一个任务,该任务下次的任务运行时间片保持不变。
当一个任务数据处理完成但其任务运行时间片还未用完时,管理容器也将剥夺它的运行权,然后将运行权交给下一交任务,分配下次的任务运行时间片时,即以本次耗时作为下次的任务运行时间片分配给该任务,下次的任务运行时间片不能小于最小运行时间片。若任务当前无数据量传输,则它下次的任务运行时间片为最小运行时间片。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种网络通信方法,其特征在于,包括以下步骤:
通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到所述管理容器的任务队列中;
通过所述管理容器给每个任务分配固定运行时间片;
设置N个机会运行时间片,其中,当所述客户端的数量小于或等于2时,N为0,当所述客户端的数量大于2且小于或等于10时,N为1,当所述客户端的数量大于10且小于或等于100时,N为2,当所述客户端的数量大于100时,N为3;
通过所述管理容器将所述机会运行时间片分配给拥有最大运行时间片且连接最早的客户端,分配数量为所述机会运行时间片的数量N;
轮询运行所述任务队列中的任务;
判断各个任务是否在当前任务运行时间片内将数据处理完,若否,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的当前任务运行时间片加上第二设置时间作为下次的任务运行时间片分配给该任务;
若是,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的本次耗时作为下次的任务运行时间片分配给该任务;
每隔第一设置时间向每个客户端发送一次心跳包。
2.根据权利要求1所述的网络通信方法,其特征在于,所述方法还包括步骤:
设置所述客户端的最小运行时间片;
设置所述客户端的最大运行时间片,其中,所述任务运行时间片大于或等于最小运行时间片,且小于或等于最大运行时间片。
3.根据权利要求1所述的网络通信方法,其特征在于,所述任务包含客户端的运行状态、运行时间片等属性。
4.根据权利要求1所述的网络通信方法,其特征在于,所述服务器与客户端的数据传输是采用特定的数据包的形式进行传递,所述数据包包括头部、头部数据和数据三个部分。
5.根据权利要求1所述的方法,其特征在于,所述最大运行时间片是一个动态变化值,跟连接到服务器的客户端数量有关。
6.根据权利要求1所述的方法,其特征在于,所述任务轮询运行的先后按客户端连接服务器的先后顺序进行排列。
7.根据权利要求1所述的网络通信方法,其特征在于,所述设置所述客户端的最大运行时间片的步骤包括:
确定总轮询数量,当所述机会运行时间片的数量N为0时,所述总轮询数量为所述客户端的数量,当所述机会运行时间片的数量N不为0时,所述总轮询数量为所述客户端的数量与所述机会运行时间片的数量N之和;
根据所述总轮询数量动态设置最大运行时间片,所述最大运行时间片与所述总轮询数量成线性相关。
8.一种网络通信系统,其特征在于,包括:
任务建立模块,用于通过预先创建的管理容器分别给每个与服务器连接的客户端建立任务,并将建立的任务加入到所述管理容器的任务队列中;所述任务包含客户端的运行状态、运行时间片等属性;所述服务器与客户端的数据传输是采用特定的数据包的形式进行传递,所述数据包包括头部、头部数据和数据三个部分;固定时间片分配子模块,用于通过所述管理容器给每个任务分配固定运行时间片;
轮询子模块,用于轮询运行所述任务队列中的任务;
运行时间片调整子模块,用于通过所述管理容器给各个任务调整下次的任务运行时间片,所述运行时间片调整子模块的调整形式为判断各个任务是否在当前任务运行时间片内将数据处理完,若否,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的当前任务运行时间片加上第二设置时间作为下次任务运行时间片分配给该任务,若是,则所述管理容器剥夺该任务的运行权,然后将运行权交给下一个任务,并将该任务的本次耗时作为下次的任务运行时间片分配给该任务;
机会时间片设置模块,用于设置N个机会运行时间片,所述机会时间片设置模块设置数量N的形式为当所述客户端的数量小于或等于2时,N为0,当所述客户端的数量大于2且小于或等于10时,N为1,当所述客户端的数量大于10且小于或等于100时,N为2,当所述客户端的数量大于100时,N为3;
机会时间片分配模块,用于通过所述管理容器将所述机会运行时间片分配给拥有最大运行时间片且连接最早的客户端,分配数量为所述机会运行时间片的数量N;所述最大运行时间片是一个动态变化值,跟连接到服务器的客户端数量有关;
心跳包模块,用于每隔第一设置时间每个客户端发送一次心跳包。
9.根据权利要求8所述的网络通信系统,其特征在于,所述系统还包括:
最小时间片设置模块,用于设置所述客户端的最小运行时间片;
最大时间片设置模块,用于设置所述客户端的最大运行时间片,其中,所述任务运行时间片大于或等于最小运行时间片,且小于或等于最大运行时间片。
10.根据权利要求8所述的网络通信系统,其特征在于,所述最大时间片设置模块包括:
总轮询数量确定子模块,用于确定所述总轮询数量,当所述机会运行时间片的数量N为0时,所述总轮询数量为所述客户端的数量,当所述机会运行时间片的数量N不为0时,所述总轮询数量为所述客户端的数量与所述机会运行时间片的数量N之和;
动态设置子模块,用于根据所述总轮询数量动态设置最大运行时间片,所述最大运行时间片与所述总轮询数量成线性相关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510511524.1A CN106470228B (zh) | 2015-08-19 | 2015-08-19 | 网络通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510511524.1A CN106470228B (zh) | 2015-08-19 | 2015-08-19 | 网络通信方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106470228A CN106470228A (zh) | 2017-03-01 |
CN106470228B true CN106470228B (zh) | 2020-12-15 |
Family
ID=58214498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510511524.1A Active CN106470228B (zh) | 2015-08-19 | 2015-08-19 | 网络通信方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106470228B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958157B (zh) * | 2018-07-09 | 2020-09-18 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1237767C (zh) * | 2004-07-09 | 2006-01-18 | 清华大学 | 一种共享资源访问的调度控制方法及装置 |
US8640131B2 (en) * | 2008-01-18 | 2014-01-28 | Microsoft Corporation | Demand-based processor cycle allocation subsequent to equal group-based processor cycle distribution |
CN101246437B (zh) * | 2008-01-28 | 2010-06-09 | 中兴通讯股份有限公司 | 一种嵌入式实时系统进程均衡调度方法 |
US8656443B2 (en) * | 2009-11-17 | 2014-02-18 | Broadcom Corporation | Method and system for providing dynamic time slice encoding for complete internet anywhere |
KR101120914B1 (ko) * | 2009-12-14 | 2012-02-27 | 삼성전기주식회사 | 데이터 전송 기간의 가변 할당 기능을 갖는 무선 네트워크 장치 및 이의 데이터 전송 기간 할당 방법 |
CN101848549B (zh) * | 2010-04-29 | 2012-06-20 | 中国人民解放军国防科学技术大学 | 无线传感器网络节点任务调度方法 |
CN102970762A (zh) * | 2012-05-11 | 2013-03-13 | 深圳市创想网络系统有限公司 | 无线网络中基于时间片轮转结合令牌调度的处理方法 |
CN103713949A (zh) * | 2012-10-09 | 2014-04-09 | 鸿富锦精密工业(深圳)有限公司 | 动态任务分配系统及方法 |
US9417920B2 (en) * | 2013-10-04 | 2016-08-16 | Freescale Semiconductor, Inc. | Method and apparatus for dynamic resource partition in simultaneous multi-thread microprocessor |
CN103885825B (zh) * | 2014-03-05 | 2018-01-05 | 南京邮电大学 | 基于动态时间片的速率单调实时调度方法 |
-
2015
- 2015-08-19 CN CN201510511524.1A patent/CN106470228B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106470228A (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066332B (zh) | 分布式系统及其调度方法和调度装置 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
JP2015057886A (ja) | 通信ネットワークに対する予約要求をスケジューリングするためのシステムおよび方法 | |
CN105335231B (zh) | 一种服务端线程的动态分配方法和设备 | |
CN112003797B (zh) | 一种虚拟化dpdk网络性能提高方法、系统、终端及存储介质 | |
CN109561513A (zh) | 一种分布式无冲突自组网多址接入协议 | |
KR20200053466A (ko) | 데이터 패킷 배포 방법, 송신자 장치, 수신자 장치 및 저장 매체 | |
CN113099535A (zh) | 电力通信多业务承载方法及装置 | |
CN113938435A (zh) | 数据传输方法、装置、电子设备、存储介质及程序产品 | |
JP2013125548A (ja) | 仮想マシン割り当てシステム及びその使用方法 | |
CN106470228B (zh) | 网络通信方法和系统 | |
US10397797B2 (en) | Devices, systems, and methods for resource allocation of shared spectrum | |
CN106464835B (zh) | 上行带宽的分配方法、装置和系统 | |
CN109429347B (zh) | 时隙分配方法及装置 | |
CN107026919B (zh) | 一种确定节点设备网络地址的方法、节点设备和控制系统 | |
CN111131081B (zh) | 一种支持多进程的高性能单向传输的方法和装置 | |
US10292052B2 (en) | Access method and device | |
CN112380001A (zh) | 日志输出方法、负载均衡设备及计算机可读存储介质 | |
CN112749012A (zh) | 终端设备的数据处理方法、装置、系统及存储介质 | |
CN114640630B (zh) | 一种流量管控方法、装置、设备及可读存储介质 | |
CN114610441A (zh) | 基于yarn调度的flink参数优化方法、系统、设备和存储介质 | |
US10149056B1 (en) | System for configuring audio devices to distribute audio data | |
CN116954874A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN106776031A (zh) | 一种数据发送方法及装置 | |
CN104717658A (zh) | 认知网络中采用频谱分配的拥塞控制方法 |
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 |