zoukankan      html  css  js  c++  java
  • 'IOKING' TCP Transmission Server Engine ('云猴'©TCP通讯server引擎)(预告版)

    关键词:

    IOKING IOCP TCP  Transmission Server Engine Lock Free Interlocked

    云猴完毕portTCP通讯server引擎 无锁 原子锁(函数)


    'IOKING' TCP Transmission Server Engine ('云猴'©TCP通讯server引擎)(预告版)


    下载连接:

    http://download.csdn.net/detail/guestcode/7474171

     

    补充:

    无锁消息引擎已经完毕:

    http://blog.csdn.net/guestcode/article/details/44964951


    一、       技术要点

    I O C P:基于Windows的IOCP模型

    句柄重用:避免反复创建socket句柄

    内 存 池:专有的IO内存管理

    无    锁:消息队列、连接池和内存池的多线程竞争不只实现了0内核态,还是连原子函数均未使用的真正得的“无锁”

    限    速:限制client发送最大流量(避免恶意流量攻击)。限制client接收最小流量(client接收数据连续低于此速率3秒钟,将会被断开,避免恶意连接)

    X86&X64:全然兼容两个系统平台

    IPv4&IPv6:全然兼容两种IP格式

    日    志:具有更完好的日志信息,便于server的故障分析,每秒採用数据存于Logs文件夹

    引    擎:内置了生产消费者线程(包括能用于数据库操作和磁盘操作的线程)和生产消费队列,设置队列的生产消费关系能够架构复杂的应用server框架,不须要考虑线程的创建和队列的同步问题,仅需定义消息格式然后在对应的消费者线程里处理该消息就可以。

    二、       执行界面

     


     


    1、 点击Start

    2、 设置监听IP和port点击Listen

    三、       主要配置參数

    iBuf:输入(接收)缓冲

    oBuf:输出(发送)缓冲

    IsIPv6:Socket句柄初始化默认是否是IPv6,假设监听地址是IPv6,最好打钩,能够避免句柄重用时的初始化

    Max Input:最大输入速率(KB/S),限制发送client速率,避免恶意攻击,0为不限制

    Min Output:最小输出速率(KB/S),client接收数据连续低于此速率3秒钟,将会被断开。避免恶意连接,0为不限制

    四、       測试表现

    用例1:

    client:GSocketclient,1000个连接。回射模式:client收到上一个回射数据包后再发送下一个数据包

    GSocket Server:CPU平均占用25%

    IOKING Server:CPU平均占用22%+

    数据包的往返时间一致

    用例2:

    client:GSocketclient。1000个连接,密集数据模式:client投递完一个数据包后马上再投递下一个数据包

    GSocket Server:CPU平均占用26%+

    IOKING Server:CPU平均占用15%-

    GSocket Server:数据包往返时间超过2秒

    IOKING Server:数据包往返小于600毫秒

    结果:用例1情况下,基本没有多大区别。但在用例3情况下,数据越密集,与GSOCKET相比,IOKING具有更佳的表现。

    达到了设计预期。

    五、       开发过程

    IOKING是GSOCKET1.0公布以后就開始着手做的。原来仅仅是考虑通讯引擎功能,前后历经了5年,为最求真正的“无锁”非常多技术问题须要慢慢的測试和求证。前后经过无数次的推到重建。期间研究了非常多锁和队列。经过充分分析IO事件的紧要等级和合理调配线程的角色,才得以“无锁”的实现(所谓无锁是指程序猿能控制的线程竞争区域实现的无锁操作,包含不使用原子函数(指令)在内实现的同步机制)。

    在开发后期,增加了生产消费者线程和生产消费队列。这是个人每次做server程序都非常讨厌的反复创建server程序框架代码,有了这个功能即降低了反复工作也避免了新代码的Bug,还降低了server程序架构的所需的技术水平要求。

    因此整个组件命名为:TCP通讯server引擎。由网络IO引擎和消息引擎(生产消费)这两大核心模块组成。

    原定中文名为:泛虎(IO为泛,king为虎),经过多番思量才在2010年终于定为:云猴(IO为云,King为猴)。不想它能有多大作为。仅为体现一个程序猿认真的做事态度和完美的执着最求。

    六、       公布说明

    1、 消息引擎尚未全然測试,临时公布EchoServer

    2、 測试可能由于个人硬件配置和软件配置等因素影响

    3、 尚未做好保护措施。Demo暂不包括组件LIB文件。

    4、 附带的exe具有全然功能可做压力測试用以參考。

    使用前请对exe进行安全监測。本人无法确定自己的机器是否具有“危急”亦无法确定exe是否已经感染了“危急”,对此本人不担负不论什么责任。

    5、 待全部功能都測试完成后再连一些測试数据和截图一起公布,因此此次公布定为预告版。

  • 相关阅读:
    每日一篇文献:Robotic pick-and-place of novel objects in clutter with multi-affordance grasping and cross-domain image matching
    每日一篇文献:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion
    每日一篇文献:Virtual Kinesthetic Teaching for Bimanual Telemanipulation
    HEBI Robotic Arm VR Teleoperation
    「iQuotient Case」AR device teleoperated robotic arm
    VR and Digital Twin Based Teleoperation of Robotic Arm
    HEBI Robotic Arm VR Teleoperation
    Human Robot Interaction
    Immersive Teleoperation Project
    机器人演示学习
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7105701.html
Copyright © 2011-2022 走看看