精华内容
下载资源
问答
  • 帧同步和状态同步区别

    千次阅读 2020-09-14 11:26:28
    一、同步 所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的...二、状态同步和帧同步的区别 最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端。战斗逻辑是

    一、同步

    所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要十个玩家的屏幕显示的英雄位置完全相同、技能释放角度、释放时间完全相同,这个就是同步。就好像很多个人一起跳街舞齐舞,每个人的动作都要保持一致。而对于大多数游戏,不仅客户端的表现要一致,而且需要客户端和服务端的数据是一致的。所以,同步是一个网络游戏概念,只有网络游戏才需要同步,而单机游戏是不需要同步的。

    二、状态同步和帧同步的区别

    最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端。战斗逻辑是包括技能逻辑、普攻、属性、伤害、移动、AI、检测、碰撞等等的一系列内容,这常常也被视为游戏开发过程中最难的部分。由于核心逻辑必须知道一个场景中的所有实体情况,所以MMO游戏(例如魔兽世界)就必须把战斗逻辑写在服务端,所以MMO游戏必须是状态同步的,因为MMO游戏的客户端承载有限,并不能把整张地图的实体全部展现出来(例如100米以外的NPC和玩家就不显示了),所以客户端没有足够的信息计算全图的人的所有行为。
    具体到客户端和服务端通信上,在状态同步下,客户端更像是一个服务端数据的表现层,举个例子,一个英雄的几乎所有属性(例如血量、攻击、防御、攻速、魔法值等等)都是服务端传给客户端的,而且在属性发生改变的时候,服务端需要实时告诉客户端哪些属性改变了,客户端并不能改变这些属性,而是服务端传来多少属性就显示多少属性(虽然可以改变客户端数值达到表现上的效果,例如无限血量,但是服务端那边的血量属性为0时,一样要死)。再举个例子,一个英雄要释放一个非指向性技能(例如伊泽瑞尔的Q),具体的过程就是,客户端通知服务端“我要释放一个技能”-》服务端通知客户端“在某地以什么方向释放某技能”-》客户端根据这些信息创建一个特效放在某地,然后以某个方向飞行-》服务端根据碰撞检测逻辑判断到某个时刻,这个技能碰到了敌方英雄,通知客户端-》客户端根据服务端信息,删除特效,被打的英雄减血同时播放受击特效。
    而在帧同步下,通信就比较简单了,服务端只转发操作,不做任何逻辑处理。以下图为例:

    现在同一局里有4个玩家,也就是4个客户端,这时客户端A释放了一个技能x,此时将操作传递给服务端,服务端不做任何判断,直接把A的操作全部分发给ABCD,则ABCD同时让客户端A控制的英雄释放技能x。

    三、流量

    状态同步比帧同步流量消耗大,例如一个复杂游戏的英雄属性可能有100多条,每次改变都要同步一次属性,这个消耗是巨大的,而帧同步不需要同步属性;例如释放一个技能,服务端需要通知客户端很多条消息(必须是分步的,不然功能做不了),而帧同步就只需要转发一次操作就行了。

    四、回放&观战

    帧同步的回放&观战比状态同步好做得多,因为只需要保存每局所有人的操作就好了,而状态同步的回放&观战,需要有一个回放&观战服务器,当一局战斗打响,战斗服务器在给客户端发送消息的同时,还需要把这些消息发给放&观战服务器,回放&观战服务器做储存,如果有其他客户端请求回放或者观战,则回放&观战服务器把储存起来的消息按时间发给客户端。

    五、安全性

    状态同步的安全性比帧同步高很多,因为状态同步的所有逻辑和数值都是在服务端的,如果想作弊,就必须攻击服务器,而攻击服务器的难度比更改自己客户端数据的难度高得多,而且更容易被追踪,被追踪到了还会有极高的法律风险。而帧同步因为所有数据全部在客户端,所以解析客户端的数据之后,就可以轻松达到自己想要的效果,例如moba类游戏的全图挂,吃鸡游戏的透视挂,都是没办法防止的,而更改数据达到胜利的作弊方式(例如更改自己的英雄攻击力)可以通过服务器比对同局其他人的战斗结果来预防。

    六、服务器压力

    状态同步服务器压力比较大,因为要做更多运算。

    七、开发效率

    首先要说,状态同步的游戏占主流,其次就是状态同步开发起来比较难。而帧同步服务器开发难度低,同一套方案可以给很多不同类型的游戏使用,反正都是转发操作;减少了服务端客户端沟通,老实说,没有扯皮的时间,开发效率最起码提高20%,状态同步的方案下,同一个功能至少需要一个客户端和服务端共同完成;PVP和PVE基本用的是同一套代码,做完PVP很容易就可以做单机的PVE。

    八、知名游戏

    王者荣耀、魔兽争霸3、所有格斗类游戏

    九、断线重连

    状态同步的断线重连很好做,无非就是把整个场景和人物全部重新生成一遍,各种数值根据服务端提供加到人物身上而已。帧同步的断线重连就比较麻烦了,例如客户端在战场开始的第10秒短线了,第15秒连回来了,就需要服务端把第10秒到第15秒之间5秒内的所有消息一次性发给客户端,然后客户端加速整个游戏的核心逻辑运行速度(例如加速成10倍),直到追上现有进度。

    十、注意点

    需要保证每次随机的数字都相同,所以需要自己实现一套随机数,不能用unity自带的那个随机数接口,而且需要服务端发送相同的随机种子;因为非常微小的误差就有可能产生蝴蝶效应,所以所有float型的参数必须变成int型,保证计算结果一致。

    如有侵权,请及时联系我删除,谢谢!

    展开全文
  • 封装成帧、帧定界帧同步2.组帧的四种方法(1)字符计数法(2)字符填充的首尾定界法(3)零比特填充的首尾标志法(4)违规编码法 1.封装成帧、帧定界帧同步 关于组帧的四种方法我们还得了解一下透明传输的...


    1.封装成帧、帧定界、帧同步

    在这里插入图片描述

    • 关于组帧的四种方法我们还得了解一下透明传输的概念
      在这里插入图片描述

    2.组帧的四种方法

    (1)字符计数法

    在这里插入图片描述

    (2)字符填充的首尾定界法

    • 发送方在封装帧时,数据的可能有图中两种类型,传输数据时可能会出现图中所述的错误
      在这里插入图片描述
    • 那么我们如何去解决这种错误呢?
    • 我们可以在特殊字符(SOH、EOT、ESC)前面填充一个转义字符来区分
    • 发送方在封装帧时,进行扫描,扫描到SOH、EOT、ESC(转义字符)时在其前面添加转义字符,以区分,告诉接受方这个和特殊字符相同的字符是数据,当然这些约定由双方之间的协议完成
      在这里插入图片描述

    (3)零比特填充的首尾标志法

    在这里插入图片描述

    (4)违规编码法

    在这里插入图片描述

    • 目前比较常用的编码方式
      在这里插入图片描述

    参考:https://www.bilibili.com/video/av70228743?p=20

    展开全文
  • 封装成帧、帧定界帧同步 关于组帧的四种方法我们还得了解一下透明传输的概念 组帧的四种方法 (1)字符计数法 (2)字符填充的首尾定界法 发送方在封装帧时,数据的可能有图中两种类型,传输数据时可能会出现图中...

    封装成帧、帧定界、帧同步

    • 关于组帧的四种方法我们还得了解一下透明传输的概念

    组帧的四种方法

    (1)字符计数法

    (2)字符填充的首尾定界法

    • 发送方在封装帧时,数据的可能有图中两种类型,传输数据时可能会出现图中所述的错误
    • 那么我们如何去解决这种错误呢?
    • 我们可以在特殊字符(SOH、EOT、ESC)前面填充一个转义字符来区分
    • 发送方在封装帧时,进行扫描,扫描到SOH、EOT、ESC(转义字符)时在其前面添加转义字符,以区分,告诉接受方这个和特殊字符相同的字符是数据,当然这些约定由双方之间的协议完成

    (3)零比特填充的首尾标志法

    (4)违规编码法

    在物理层比特编码时通常采用违规编码法,例如曼彻斯特编码方式,将'1'编码成“高-低”电平对,将数据比特'0'编码成“低-高”电平对。而“高-高”电平对和“低-低”电平对在数据比特是违规的(即没有采用)。可以利用这些违规编码来定界帧的起始和终止。局域网中IEEE 802就采用了这种方法。

    • 目前比较常用的编码方式
    展开全文
  • 帧同步

    2015-11-04 23:13:00
    帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始与终止。  概念:两个工作站之间以报文分组为单位传输信息时,必须将线路上的数据流划分成报文分组或HDLC(高级数据链路控制)规程的帧,以帧的...

      帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始与终止。

      概念:两个工作站之间以报文分组为单位传输信息时,必须将线路上的数据流划分成报文分组或HDLC(高级数据链路控制)规程的帧,以帧的格式进行传送。在HDLC通信规程中的帧的帧标识位F(01111110),就是用它来标识帧的开始和结束。通信开通时,当检测到帧标识F,即认为是帧的开始,然后在数据传输过程中一旦检测到帧标识F即表示帧结束。数据链路层所以要把比特组合成以帧为单位传送,是为了在出错时,可只将有错的帧重发,而不必将全部数据重新发送,从而提高了效率。通常为每个帧计算校验和(Checksum)。当一帧到达目的地时,校验和再被计算一遍,若与原校验和不同,就可发现差错了。

      常用的帧同步方法有:使用字符填充的首尾定界符法、使用比特填充的首尾标志法、违法编码法和字节计数法。

      在数据通信中最基本的同步方式就是“位同步”(bit synchronization)或比特同步。比特是数据传输的最小单位。位同步(比特同步)是指接收端时钟已经调整到和发送端时钟完全一样,因此接收端收到比特流后,就能够在每一位的中间位置进行判决(如下图所示)。位同步(比特同步)的目的是为了将发送端发送的每一个比特都正确地接收下来。这就要在正确的时刻(通常就是在每一位的中间位置)对收到的电平根据事先已约定好的规则进行判决。例如,电平若超过一定数值则为1,否则为0。
    位同步(比特同步)和帧同步的区别是什么?

      但仅仅有位同步还不够。因为数据要以帧为单位进行发送。若某一个帧有差错,以后就重传这个出错的帧。因此一个帧应当有明确的界限,也就是说,要有帧定界符。接收端在收到比特流后,必须能够正确地找出帧定界符,以便知道哪些比特构成一个帧。接收端找到了帧定界符并确定帧的准确位置,就是完成了“帧同步”(frame synchronization)。

      在使用PCM的时分复用通信中(这种通信都采用同步通信方式),接收端仅仅能够正确接收比特流是不够的。接收端还必须准确地将一个个时分复用帧区分出来。因此要利用特殊的时隙(包含有一些特殊的比特组合),使接收端能够把每一个时分复用帧的位置确定出来。这也叫做帧同步。下图给出了这两种不同的帧同步的示意图。

      图中上面部分的同步通信方式在电信网中使用得非常广泛,其中的一个重要特点是在发送端连续不断地发送比特流中,即使有的时隙没有被用户使用,但用于同步的时隙也要保留在时分复用帧中的相应位置上。在同步通信中帧同步的任务就是使接收端能够从收到的连续比特流中确定出每一个时分复用帧的位置。

      图中下面部分的异步通信方式在计算机网络中使用得较多。我们可以注意到,数据帧在接收端出现的时间是不规则的。因此在接收端必须进行帧定界。但帧定界也常称为帧同步。因此,当我们看到“帧同步”时,应当弄清这是同步通信中的帧同步,还是异步通信中的帧定界。

      这里我们要强调一下,在异步通信时,接收端即使找到了数据帧的开始处,也还必须将数据帧中的所有比特逐个接收下来。因此,接收端必须和数据帧中的各个比特进行比特同步(这就是异步通信中的同步问题)。试想:如果接收端不知道每一个比特要持续多长时间,那怎样能将一个个比特接收下来呢?因此,不管是同步通信还是异步通信,要想接收比特块中的每一个比特,就必须和比特块中的比特进行位同步(比特同步)。然而在异步通信中,位同步(比特同步)的方法和同步通信时并不完全一样。

      在同步通信中,最精确的同步方法是使全网时钟精确同步。全网的主时钟的长期精度要求达到 ± 1.0 ´ 1011,因此必须采用原子钟(例如,铯原子钟),但这样的同步网络的价格很高(如SDH/SONET网络)。实际上,在同步通信中,也可以采用比较经济的方法实现同步。这种方法就是在接收端设法从收到的比特流中将位同步的时钟信息提取出来(发送端在发送比特流时,发送时钟的信息就已经在所发送的比特流之中了)。这种同步方式常称为准同步(plesiochronous)。曼彻斯特编码就能够使接收端很方便地从收到的比特流中将时钟信息提取出来,这样就能够很容易地实现位同步。在以帧为传送单位的异步通信中,接收端通常也是采用从收到的比特流中提取时钟信息的方法来实现位同步。

      在以字符为单位的异步通信中,由于每一个字符只有8个比特,因此只要收发双方的时钟频率相差不太大,在开始位的触发下,这8个比特的位同步很容易做到,因此不需要采取其他措施来实现位同步(但不等于说可以不要位同步)。
    位同步(比特同步)和帧同步的区别是什么?

    参考链接:帧同步,帧同步是什么意思

    展开全文
  • 比特同步和帧同步的区别

    千次阅读 2016-09-19 21:10:22
    比特同步是指接收端时钟已经调整到发送端时钟完 全一样,因此接收端收到比特流后,就能够在每一个比特的中间位置进行判决(如下图所示)。比特同步的目的是为了将发送端发送的每一个比特都正确地接收下来。这就要...
  • 帧定界的基本方法

    千次阅读 2012-03-15 19:03:11
    帧定界就是标识帧的开始与结束。有4 种常见的定界方法,即字符计数法、带字符 填充的首尾界符法、带位填充的首尾标志法物理层编码违例法。 (1)字符计数法   这种帧同步方法是一种面向字节的同步规程,...
  • 位同步(比特同步)和帧同步的区别是什么?2009-03-09 07:30在数据通信中最基本的同步方式就是“位同步”(bit synchronization)或比特同步。比特是数据传输的最小单位。位同步(比特同步)是指接收端时钟已经调整到...
  • 异步信道传输时,是按照字节传输,接收端以每字节接收数据。 问题:在异步传输帧时,如何才能使接收端辨别...因此,上面的问题就转化为:帧中间若出现特殊字符F,接收端该如何确认字符F是帧定界符还是帧中的数据。...
  • 帧同步的方法

    千次阅读 2012-07-25 10:29:54
    帧同步的方法一般有以下几种: 1、字节计数法。 2、使用字符填充的首尾定界符法。 3、使用比特填充的首尾标志法。 4、违例编码法。  违例编码法在物理层采用特定的比特编码方法时采用。比如说,用曼彻斯特编码...
  • 每个以太之间都要有间隙(Interframe Gap),即每发完一个后要等待一段时间才能再发 另外一个,以便让接收者对接收的作必要的处理(如调整缓存的指针、更新计数、通知对 报文进行处理等等)。  在...
  • 计算机网络-数据链路层帧同步

    千次阅读 热门讨论 2018-02-25 17:35:38
    帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始与终止。概念两个工作站之间以报文分组为单位传输信息时,必须将线路上的数据流划分成报文分组或HDLC(高级数据链路控制)规程的帧,以帧的格式进行...
  • 数据包最大字节最小字节

    千次阅读 2016-01-13 09:56:12
     根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大长应该是以太网首部加上1500,再加上7字节的前导同步1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界...
  • 以太网最大帧和最小、MTU

    千次阅读 2016-07-23 14:32:38
    根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大长应该是以太网首部加上1500,再加上7字节的前导同步1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界符 + ...
  • 以太网最大帧和最小 以太网技术基础 ...2、起始定界符:1字节0xD5(10101011),表示一开始 3、DA(目的MAC):6字节 4、SA(源MAC):6字节 5、类型/长度:2字节,0~1500保留为长度域值,1536~6...
  • 最近在研究CAN总线的驱动,需要详细了解数据/标准/扩展/远程/错误这几种的详细组成格式,于是收集了一下,统一放在这里进行对比记录,以便日后需要时查阅
  • 三、 "数据帧" 帧同步、 四、 "数据帧" 长度、 五、 "数据帧" 组装方法、 六、 透明传输、 七、 字符计数法、 八、 字符填充法 ( 加转义字符 )、 九、 零比特填充法 ( 5 "1" 1 "0" )、 十、 违规编码法、 十一、 ...
  • 最大长和最小长详解

    万次阅读 多人点赞 2018-04-01 16:02:52
    文章出处:https://blog.csdn.net/ixidof/article/details/7799891 在传统以太网中,为什么要有最小长度最大长度的限制?... 起始定界符:1字节0xD5( 10101011 ),表示一开始; 3. DA ( 目...
  • 根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大长应该是以太网首部加上1500,再加上7字节的前导同步1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界符 + ...
  • 首部尾部包含着许多重要的控制信息,他们有着一个重要的作用:帧定界(确定帧的界限) 帧同步:接受方应当能够从收到的二进制比特流中区分出帧的起始结束 数据链路的帧长:从帧的首部到帧的尾部的长度(帧首部+...
  • 封装成

    2021-04-24 18:11:24
    在MAC帧中,并没有标志位来做帧定界,而是在数据链路层中封装好帧后,物理层给封装好的帧添加8字节的前导码,前七个字节是同步码,作用是使对方的时钟同步,第八个字节是帧开始的定界符,表明其后面紧跟着的是MAC帧 ...
  • 网络编程 Ethernet结构解析,为了达到比特同步,在传输媒体上实际传送的要比 MAC 还多 8 个字节 在的前面插入的 8 字节中的第一个字段共 7 个字节,是前...第二个字段是开始定界符,表示后面信息就是MAC
  • LIN协议中的结构与同步域(0x55)

    千次阅读 2013-08-29 13:02:46
    头,包含:间隔域(Break field),同步域(Sync field)受保护的标识符域(Protected indentifier field); 响应,包含:数据域(Data1~N),校验(Checksum)。 间隔域,以至少13个显性B

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,783
精华内容 2,713
关键字:

帧同步和帧定界