竞态条件

来源:互联网 发布:怎么在淘宝找客户资料 编辑:程序博客网 时间:2024/05/17 22:41

1、竞态条件(race condition) 

从多进程间通信的角度来讲,是指两个或者多个进程对共享数据进行读或者写的操作时,最终的结果取决于这些进程的执行顺序。竞态条件的发生指的是设备或系统出现不恰当的执行顺序,而得到的不正确的结果。
(待补充)

2、游戏安全中的竞态条件

2.1 简介

竞态条件和其他状态问题是网络游戏中BUG的主要来源,多重世界有边界问题。竞态条件建立在软件边界状态的基础上。
网络延迟(会产生时间扭曲,就像黑洞那样)会让这些问题进一步恶化。大型网络的有序特别的设计,需要将大量的数据分布在许多服务器上。有些存储的是账号信息,有些存储的事状态信息。
竞态条件这种类型的错误都是关于时间的

2.1.1 如何免费玩游戏

一旦你激活了自己的账号,几件事情就会发生。第一,你的账号信息会更新。然后你的玩家账号上会被奖赏一个游戏数据库编码。然而,有些事情可能不是同时发生的。事实上,在你付费要求到达账户服务器和你实际付费的时间之间,空窗期就开启了。这个时间上的延迟有可能长达三天。然而,激活你的角色要用的时间短的多,通常只要几分钟。所以这三天,将会是免费的游戏时间。

但是到此为止,还没有能显示出完整的事件,我们假设在新的一天开始的时候,你登录了网络账号管理系统,取消了付费。这个时候就会出现很有趣的事情了,你的玩家账号可能并没有如你想象的被删除。他被放置为展厅的状态。同时账号服务器获取了一个信息,把你的账号标志为不可付费。这一切都发生在空窗期内,所以你不会受到任何账单。

一天之后,回到家,打算开始玩一晚上的游戏,这是你恢复了你的账号,三天的空窗期再次从零开始。你又可以玩一个晚上,当新的一天再次开始,例行取消付费。

3 网络中的竞态条件

网络里,竞态条件(race condition)会在两个用户同时试图访问同一个可用信道的时候发生,在系统同意访问之前没有计算机能得到信道被占用的提示。统计上说这种情况通常是发生在有相当长的延迟时间的网络里,比如使用地球同步卫星。为了防止这种竞态条件发生,需要家里一个优先级列表。比如用户的用户名在字母表里排列靠前可以得到相对较高的优先级。黑客可以利用竞态条件这一弱点来赢得非法访问网络的权利。  
  当出现如数冲突的时候,逻辑门偶尔发生竞态条件。由于门的输出状态是有限的,相应输入变化的时间是非零值,因此会导致一些不合适的操作。

0 0
原创粉丝点击