SFS2X 客户端-服务器协议

SFS2X使用了一种高效的二进制协议,这种协议可以使服务器在各方面都表现出色。消息通过客户端和服务器引擎得到快速转换,在带宽上传输可更加轻便。附加的即时压缩,能够在不影响总体性能的前提下允许更大程度的压缩。

这是对象传输使用基于XML的SmartFoxServer1.x的协议和SmartFoxServer2X二进制协议的例子。

SmartFoxServer 1.x:

这一存储消息,大小为1027bytes。

SmartFoxServer 2X:

这一消息,以二进制协议存储,没有进行压缩,大小为351bytes,大概为XML版本的1/3。

然后下面的是经过压缩后的存储信息,大小为239bytes,减少了32%大小。大消息更能体现出效果,特别是那些包含了许多字符串或者复杂嵌套对象的的消息。在这种情况系啊,消息大小压缩可以达到2-300%的数量级。

相比之前的版本,SFS2X的总体要求是它们的4.2倍左右。保守预测,接下来的新协议会在大体上再进行带宽减少3-6倍。

协议性能:

在服务端和客户端的2X版本中,转换协议的整体性能也同样得到了很大的提高。特别是在服务端效果更显著。我们是以消息数/秒为基准的,所以可以用旧的和新的文本协议进行转换。

SFS文本协议:

SFS二进制协议:

在消息转换上提高了有5-6倍。Fragmentation这一栏显示了表格中有多少模块是消息。换言之,在基准测试过程中,我们模拟了不同程度的模块包用以观察在数据汇总阶段对性能的影响。

模块的平均程度为使用6-10个模块,高级程度的是使用20-25个模块,原始的消息大小为350 bytes。

压缩:

当消息的大小大于配置数量时,可以通过客户端或者服务器激活压缩功能。

采用的算法是GZip/Zip格式的填充/释放技术,该算法具有快速和支持所有公共平台(如Flash,Java,.Net)等特点。

性能方面,该算法可以解压缩大于10K的消息/秒,压缩5K左右的消息/秒的任何双核机。这也意味着,在客户端的数据压缩的效果是微不足道的。

[SmartFoxServer概述]SFS2X协议的更多相关文章

  1. [SmartFoxServer概述]SFS2X特点

    SFS2X 特点概述 SFS2X采用SFS核心原理并在新的方向进行扩展,介绍了许多改善方案,同时专注于几个方面:使用简单化,通用化和性能化. *使用简单化:清除了SFS之前版本中所有不必要的复杂方法, ...

  2. [SmartFoxServer概述]SFS2X栈平台

    SmartFoxServer 2X 栈平台 在这有一张SmartFoxServer 2X平台的鸟瞰图,接下来会简要介绍栈中的每个组件. 首先是服务器的核心——网络引擎(代号BitSwarm),它是用以 ...

  3. USB概述及协议基础

    USB概述及协议基础 USB的拓扑结构 USB是一种主从结构的系统.主机叫做Host,从机叫做Device(也叫做设备). 通常所说的主机具有一个或者多个USB主控制器(host controller ...

  4. [SmartFoxServer概述]使用文档

    如何使用文档和例子 这份文档提供了一份关于如何通过SmartFoxServer 2X(缩写SFS2X)文档掌握要点的快速教程.在使用例子和技术文档之前,我们建议先参考以下主题内容. 不管你是Smart ...

  5. [SmartFoxServer概述]Zones和Rooms结构

    Zones和Rooms结构: 相对于SFS 1.X而言,在Zones和Rooms的配置上,SFS2X有了显著的改善.尤其是我们建立了房组这样一个简单的概念,它允许在一个逻辑组中管理Rooms,从而独立 ...

  6. TCP系列01—概述及协议头格式

    一.TCP简单介绍 我们经常听人说TCP是一个面向连接的(connection-oriented).可靠的(reliable).字节流式(byte stream)传输协议,  TCP的这三个特性该怎么 ...

  7. 18. HTTP协议一:概述、原理、版本、请求方法

    HTTP协议概述 HTTP协议就是我们常说的超文本协议(HyperText Transfer Protocol).HTTP协议是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. ...

  8. Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析

    本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  9. 【转】SPDY协议

    SPDY协议 - v3 原文:SPDY Protocol - Draft 3 翻译:邱鹏滔(QQ: 95350530,主页:www.fireflysource.com) 1 概述 HTTP协议的瓶颈在 ...

随机推荐

  1. SAMEORIGIN

    http://www.css88.com/archives/5141 Response.AppendHeader("X-Frame-Options", "SAMEORIG ...

  2. java中数据类型转换

    1.自动类型转换:首先两者数据类型要兼容,且目标类型要大于源类型如(int类型转换成double类型) 2.强制转换:两者数据类型要兼容,会使破坏数据的结构

  3. EXCL poi导入

    public static void importExcel2(File file) throws Exception { InputStream is = new FileInputStream(f ...

  4. mac配置vim-go

    基本的设置信息(参考网址:http://hessian.cn/p/1026.html): "还是配置/.vimrc文件. syn on "语法支持 set laststatus=2 ...

  5. SQLServer日志无法收缩原因分析及解决

    SQL Server中的事务日志无疑是SQL Server中最重要的部分之一.因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback).从而还部分确保了事 ...

  6. Spark MLlib之协同过滤

    原文:http://blog.selfup.cn/1001.html 什么是协同过滤 协同过滤(Collaborative Filtering, 简称CF),wiki上的定义是:简单来说是利用某兴趣相 ...

  7. python基础知识---变量

    一.变量是什么? python变量是对内存中一个数据结构的引用,用一个变量给另外一个变量赋值,那就有两个变量引用同一个数据结构(数字.字符串.列表.元组.字典.自定义对象等) 当一个数据结构的引用计数 ...

  8. 借助 MySQLTuner 优化 MySQL 性能(转载的一篇文章)

    MySQLTuner 是一个 Perl 脚本,可以用来分析您的 MySQL 性能,并且基于收集到的信息给出相应的优化建议.这样子,您就可以调整 my.cnf 从而优化您的 MySQL 设置. 这边只是 ...

  9. ecshop 商品页面添加商品标签:

    /* @脚垫客户 需要给商品加属性.最简单粗暴的办法.后台调用加入.界面没有美化. */ goods.dwt <ul class="quantity"> <h2& ...

  10. spi_flash

    http://blog.chinaunix.net/uid-27406766-id-3384699.html