控制协议(通用7篇)
1.控制协议 篇一
传输控制协议 (TCP) 已经在目前的网络中取得了巨大的成功, 然而, TCP协议并不是完美的, TCP本身针对拥塞问题的AIMD (additive increase multiplicative de-AIMD (additive decrease) 算法无法很好地在高带宽网络环境中充分利用带宽, 同时它在数据包的修复上也一直存在性能问题, TCP协议的缺陷在高速网络中正日显突出, 而且应用也对新的协议有了需求。被多方认知的新传输协议有Fast TCP、Bi C TCP、Scalable TCP、High Speed TCP、XCP等, 但它们大多仅能在模拟实验中表现卓越, 要将它们应用在实时的大范围网络环境中依然存在各种问题。因此, 人们考虑从协议的应用层面着手, 以UDP为基础发展传输协议, 比如UDT、SABUL、Tsunami、RBUDP、FOBS以及GTP, 这类基于UDP的传输协议往往具有轻便、容易安装、调试时间少、测试周期短等优点。
本文主要介绍UDT及其拥塞控制机制。
1 UDT简介
UDT是UDP-based Data Transfer Protocol的简称, 即基于UDP的数据传输协议, 是一种网际网络数据传输协议。UDT是开源软件, UDT的主要目的就是针对“TCP在高带宽长距离网络上的传输性能差”这一问题, 尽可能地全面支持高速广域网上的海量数据传输。UDT建于UDP之上, 引入了新的拥塞控制算法和数据可靠性控制机制。UDT是完全在UDP上实现的, 面向双向的应用层协议, 因此它不仅支持可靠的数据流传输和部分可靠的数据报传输, 也可以应用在除高速数据传输之外的其它领域, 例如点对点技术, 防火墙穿透, 多媒体数据传输等。
2 UDT的设计动机和理念
尽管高效的数据传输一直是网络传输协议的设计目标, 但数据传输效率往往会随着BDP的增长而下降。BDP, 全称bandwidth delay product, 即频宽-延迟乘积, 它由网络连接容量 (link capacity) 和往返时间 (RTT, Round-Trip Time) 共同决定。在网络传输中, 数据传输的友好性和稳定性有极其重要的地位, 因此, 在对数据传输高效率的界定与实现上会受到相当的束缚。目前大多数被广泛使用的传输协议都是被设计为在以bytes每秒的环境下运行的, 均没有在高BDP环境下进行过测试, 对于高带宽环境下的应用效果仍有各种保留。对于离散系统下的数据密集型应用来说, 它们无法容忍旧型传输协议所允许的延迟。其对每一个事件的执行大都设有一个“最大时间限制”, 应用必须在这一段时间内完成任务, 否则效率不足的实行将会引起数据包的丢失与超时报告。它们对数据传输协议可提供的传输速度有时甚至可高达“100000个数据包每秒”这样的要求。然而, 在实际中要达到这种程度并不容易。从理论上说, 若能在传送层或更低级的基础层面实现将是最理想的, 但在现实中并不实际, 反而更多地会选择在应用层上实现。而传送层上的UDP用户数据报协议正好提供了一个可在其基础上进行扩展的空间。
3 UDT的拥塞控制
(1) 应答
应答是拥塞控制中是不可缺少的一环, 但在高速网络中, 生成和处理应答包的时间代价并不可忽略, 应答包自身有一定大小, 会占用一定的带宽。因此UDT选中了以时间为基准的选择性应答。UDT会根据一个固定的时间差生成应答包, 即传输的速度越快, 控制阻塞所消耗带宽的比例就越小, 固定的间隔与速率控制的间隔保持一致。不过, 若在低带宽的状态下, UDT传输协议将会以累积确认协议 (cumulative acknowledgement) 实行应答机制。为了实现这个模型, NAK (negative acknowledgeement) 被用作于报告包, 用于传递在传送中丢失的信息, 并激活拥塞控制运行机制。当包丢失被探测出来, NAK随即被生成并被传送到数据源。包含丢失包序列号的信息将在间隔被延长后被发送出去, 这样即表示超时需重发, 或NAK本身已经丢失。
(2) 窗口流量控制与速率控制
在UDT中, 窗口流量控制算法并不会将数据以包的形式单独发送, 而是将大批量的包数据一同发送出去。这种高密度的信息传输很容易形成信息爆炸, 从而导致当发送者获悉问题时已经造成拥塞。与此同时, 为了减缓这种信息爆炸的后遗症, 普遍的做法是在路由器上设置一个与BDP具有相同大小的缓冲区。但是, 在高BDP的环境下, 这种做法显然是不可行的。针对在TCP运用的TCP pacing (在预设范围为cwnd的拥塞窗口内以一平均间隔传送包) , 为了不减少最后的网络吞吐量, 在高BDP连接下运用速率控制 (Rate Control, RC控制) 机制来直接制定包发送的间隔成为了UDT所选择解决此问题的做法。
只使用窗口流量控制已不能满足当前的网络需求。同样, 若只使用RC控制, 一样无法达到期望的结果。例如, 在只使用RC控制的前提下, 若网络连接中已出现了拥塞, 但数据源依旧不断地发送数据直到它收到关于数据丢失的报告或者超时信息, 这将导致大量的数据丢失。因此, 需要有一个特定的控制算法来定义一个阈值来划分已应答和未应答的包。而这个现成的控制算法, 即是窗口流量控制。
UDT以RC控制为主, 窗口流量控制为辅, 共同组建成其自身的拥塞控制算法。UDT用RC控制算法确定传送周期, 用窗口流量控制算法判别包的应答状况。值得补充的是, UDT的窗口流量控制亦可称作流控制, 它通过反馈在拥塞窗口范围和当前可用的接收端的缓冲区大小之间的最小值, 来合并为一个简单的流控制结构。拥塞窗口的大小W根据公式保持动态更新, W=AS* (SYN+RTT) , AS是包抵达时的速度, 通过计算包到达中间节点时的间隔而得出的。而在整个UDT传输协议中, SYN值为每次应答的间隔时间。因此对于每个包应答的过程来说, 数据包传送的最大值等于接收端接收时的传送速度乘以RTT与SYN的和 (RTT+SYN) 。这也获得了窗口流量大小的即时动态值。
(3) DAIMD
TCP中使用的AIMD速率控制算法是兼顾稳定性和公平性的, 但其每次RTT带来的网络开销无法满足高BDP连接的需求。因此, AIMD算法在UDT中被重新定义, 发展成为DAIMD算法, 即递减的AIMD速率控制算法。对所有速率控制间隔来说, 如果没有NAK从接收端发出, 而是发送ACK, 包的发送速率增加为:x←x+α (x) (α (x) 为非增长函数且随x的增长而无限接近零) 。如果有NAK发出, 包地发送速率减少为:x← (1-β) •x (β为固定系数, β (0<β<1) ) 。这样当更改a (x) 的值时, 便可得到一组附加参数越来越小的RC控制算法值, 即DAIMD算法结果。若将速率控制间隔作为一个单位时间, 从时间点t到时间点t+1, 发送率的增幅是:x (t+1) =x (t) +α (x (t) ) , 减幅是:x (t+1) = (1-β) n•x (t) (n为NAK的次数) 。假设p (i) 为i号包在传送过程中丢失的机率, D为双向延迟的时间值, 那x (tD) 则为在时间 (t, t+1) 内可能反馈的包数量, 而P (i) • (1- (1-β) i) 则是丢失可导致的减幅。
将p (0) 和p (1) 看成独立事件且p (0) +p (1) =1, 以此为前提化简上面的公式再求导, 经过一系列的计算及再化简, 可得出的UDT拥塞算法的实用程序函数
由数学的函数特征来分析, 证明DAIMD算法的趋向稳定及相对平衡是十分容易的, 只要对实用程序函数进行二次求导便可。
图1:随着窗口大小的增加, TCP类协议中的a (x) 均在增长, 而运用DAIMD的UDT却是在减小。
图2:此图展示DAIMD流可能首先能探查到的可用带宽, 而每一阶段的线段长度便是其在此阶段上俱有的积极性。线段越长, UDT在此阶段表现得更积极。
UDT的速率控制是一个特定的DAIMD算法, 它对于a (x) 有其独立的定义:
x的单位是包/秒, L是连接极值单位为bit/秒, S是大小单位为Bytes的UDT包。C (x) 是用于将现在传送率x从单位包/秒转换到bit/秒的公式。C (x) =x*S*8。τ是协议参数, 在UDT中为9。公式中的1500/S是为了平衡各个包之间大小差异而定义的一个平衡系数 (UDT将1500bytes定义为标准包的大小) 。
由于C (x) 公式的存在, UDT的拥塞算法有几个阶段。如图3所示, UDT在初期, 传动率攀升的速度十分之快, 但随之越接近连接的容限极值L, 开始慢慢减速。另外, 除了第一阶段外可能会有所不同外, UDT中其余每个阶段的时间范围都是完全一致的。
每次SYN间隔时间, 如果上一次SYN时间没有NAK, 但有ACK被接收, 那么在下一个SYN时, 包数量的增量inc为:inc=max, 1/1500) ×1500/MSS, B为可用带宽的估算值 (bits/秒) , MSS为最大分段范围 (bytes) , SYN为0.01秒。包的发送周期P将被重新计算, 计算公式为SYN/P=SYN/P’+inc, P’为当前包的发送周期。
表1是一个UDT增量参数计算列表例子:
根据列表的值域, 并代入inc公式中计算, 若UDT想在一个丢失后恢复到90%带宽的利用率, 那么耗时将会是7.5秒:[ (L-10n-1) / (10n-9*1500*8) + (0.9*L- (L-10n-1) ) / (10n-10*1500*8) ]*0.01= (0.9*10n) / (10n-9*1500*8) *0.01=750 SYN=7.5s。相比之下, 在RTT为200ms时, TCP需要28分钟恢复到1Gbit/s, 4小时43分钟恢复到10Gb/s, 以此看来, UDT的优势十分明显。
(4) 带宽估算
有效地利用网络带宽需要知道网络连接的确切信息, UDT采用以下带宽估算算法获取连接信息:每N个数据包 (默认为N=16) , 发送端不会等待下一个包的发送, 相反地会发送两个连续的包 (可称之为包对) , 且包与包之间没有任何延时和间隙。等到接收端收取这一包对的时候, 再计算网络连接容量, 并将其包含在下一个ACK中反馈回去。若L为连接容量极值, C为当前传送速度, d为递减系数1/9 (NAK出现的比率) , 对于所有的流来说, 当现在的传送率大于上一次减幅发生时的传送率时, 带宽估算值是L-C。在每一次减幅发生之后, 传送率恢复完成之前, 带宽估算值的将会在min{L*d, L-C}间波动。其中L*d代表当拥塞发生或事件丢失时, 所有的流将对应的递减系数。由于L值有可能小于C值, 所以在范围取值时要取可行的正数。
将带宽估算结合到瓶颈问题上, 面对单个瓶颈问题 (所有流都有将近一致的L值) 时, 拥有较高传送率的流的速率无法更快地增加, 此时UDT对流是公正公平的, 而且比标准TCP中的AIMD要快速。而面对多个瓶颈问题, UDT亦至少可以达到最少一半的公平性。
4 结束语
网络带宽的快速增加给新型传输协议的设计带来了强有力的挑战, 既要求传输协议性能优越并易于使用、部署, 又要求它们和已有传输协议保持兼容、友好, 以达到更理想的使用效果。UDT很好的满足了这两方面的要求, UDT非常适合数据源少但数据密集型的应用, 从而充分地利用网络带宽。UDT是开源软件, 相信将来会有更多的网络应用采用UDT协议实现数据传输, 同时, 当多个UDT流共享同一网络链路时, UDT协议如何更精确地估计网络带宽是UDT拥塞控制算法的发展和改进重点。
参考文献
[1] L.Xu, K.Harfoush, and I.Rhee.Binary Increase Congestion Control for Fast Long-Distance Networks.IEEE Infocom‘04, Hongkong, China, Mar.2004.
[2] D.J.Leith and R.Shorten.H-TCP Protocol for High-Speed Long Distance Networks.PFLDnet‘04, Feb.2004.
[3] K.Kumazoe, Y.Hori, M.Tsuru, and Y.Oie.Transport Protocol for Fast Long Distance Networks:Comparison of Their Performances in JGN.SAINT‘04, Tokyo, Japan, 26~30 Jan.2004.
[4] D.Clark, M.Lambert, and L.Zhang.NETBLT:A high throughput transport protocol.ACM SIGCOMM‘87, Stowe, VT, Aug.1987.
[5] Yunhong Gu and Robert L.Grossman UDT:UDP-based Data Transfer for High-Speed Wide Area Networks, Computer Networks (Elsevier) .Volume 51, Issue 7.May 2007.
[6] Yunhong Gu and Robert L.Grossman, Supporting Configurable Congestion Control in Data Transport Services, SC 2005, Nov 12-18, Seattle, WA, USA.
2.否定协议控制是一种倒退 篇二
有人责怪方兴东,是多事的他激化了矛盾,若非他在微博中说腾讯财付通因为“协议控制”被央行收回第三方支付牌照,外界对马云的争论仍集中在契约精神和企业利益哪个更重要的基点上。
当然,更有人大骂央行的一些人“无知”,在不懂中国互联网网情的情况下,制订了一个让各方(包括央行自身)都骑虎难下的第三方支付牌照政策——依据央行的意思,申请牌照的第三方支付企业,至少在现阶段应该是纯得不能再纯的内資企业,血统和基因上不能沾惹半点洋人的东西,这样才能保证中国的金融安全。
对于这一目的,已经有专业人士批评央行“神经过敏”,因为第三方支付企业根本就与中国的货币安全、股市安全、汇市安全、债市安全不搭边,再夸张过度的联想,都无法将它与中国的金融安全关联起来。
但因为这一似是而非的原因,以及央行对中国互联网网情的无知,它们当前对协议控制倾向于否定的态度,却在业内形成了一个僵局:如果全盘否定,不仅央行要在自己摆出的大“乌龙”中回收之前发出的27张支付牌照,中国绝大部分的第三方支付企业也将集体面临改组;如果不否定,马云通过“私下运作”树立起来的“100%合法”榜样,就是在将央行的军,就是国际資本市场的一大笑话。
现在,第三方支付企业都在观望央行对协议控制的下一步行动,而央行又因能力不够,把皮球踢给了国务院。就这样,协议控制,一个本不成为问题的问题,一下子被放大成行业性的头等难题。
所谓协议控制(VIE)模式,可简单理解为:外資A公司在中国的限制类或禁入类行业有其投資的B公司,为了规避中国的投資和监管政策(主要为《外商投資产业指导目录》),B公司必须转为内資企业,于是,A公司在中国境内新设完全控股的C公司,再用协议的方式让B公司业务的实际受益人和产权控制人完全向C公司负责,A公司就达到了通过协议的方式控制B公司的目的,但A公司和B公司之间没有任何股权关系。
通过这种操作路径不难看出,协议控制模式完全是为规避中国的相关法规而刻意产生,它肯定不合法,但也未必就“违法”。正是在这种各方都语焉不详的灰色地带中,从新浪的律师和投資人在2000年首创该模式始至今,它在中国存活了整整10年。而依据京东商城CEO刘强东的观点——国内所有拿到融資的互联网企业,不管是上市的还是未上市的,不管是新浪、搜狐、腾讯,还是阿里巴巴、京东商城和奇虎360等,企业内部全有协议控制模式。于是乎,有人戏言,协议控制对中国互联网公司而言,就像你我手里的手机一样,是标配。
标配既然存在,就证明有其存在的必要性和合理性。
中国是行业监管极度严格的国家,与电信、军工、影视、制药、零售、视频、ICP等行业的准入制度相伴相生的牌照问题,至今仍让国内外的从业者挠破头皮。而中国对資本市场的开放,又是从境外資本开始,国内的A股市场和人民币基金不被鼓励用于互联网的“烧钱”项目。于是,中国市场独有的协议控制模式应运而生。
对此,易凯資本CEO王冉形象地形容其为“中国企业从自身及产业发展的实际需要出发,在保证合法合规的前提下,对政府部门在市场准入、外汇管理、IPO审批等领域的过度监管的一种市场化修正”。而中国最具国际影响力的两位IT人士,均对协议控制模式举双手赞成,李开复表示“绝对要支持”,李亚勤称其为“中国互联网产业一大创举”。显然,这样的评论和态度并不为过。摆在眼前的事实已证明,10年来,因为这些互联网公司的合力,中国互联网产业取得的发展和成就全球有目共睹,而“标配”所带来的数千亿美元境外資本,分明就是滋养中国互联网产业的营养和血液。
因此,我们已经有几点可以肯定:一,我们不可能全然推翻协议控制模式;二,不可能因称其“不合法”而收回第三方支付牌照;三,更不可能让中国的互联网企业推倒重建。否则,这将开中国经济开放的历史倒车,让中国市场的诚信空前蒙尘。
现在,僵局已经形成,但我们相信,化解问题的幕后奔走肯定在紧锣密鼓地进行着,我们也相信管理方最终能理解包括第三方支付公司在内的中国互联网企业为何在发展过程中需要境外投資人,分清楚财务投資人和战略投資人的区别,运用高超智慧,拿出一个可安人心的妙计。
3.合同协议的内部控制案例[推荐] 篇三
百成化学工业公司(以下简称百成公司)是一家在新加坡上市的外商独资企业,公司的治理结构和内部控制在近几年的发展中不断完善,有一整套的内控流程和操作规范。百成公司采购时按照填制请购单、评审订购单合同、填制验收单、取得卖方发票、填制付款凭单、编制付款凭证及向卖方发出对账单等内部控制流程进行。
1.从百成公司请购单→询比价→选择供应商→合同评审→合同的签订过程中发现:
(1)当初在询比价的过程中,采购员要求各供应商报价的产品规格、型号不一致,从而使得公司询比价的作用不能发挥,由该采购员最终确定的供应商的产品价格最高;同时通过运用电话和网上询价,此采购员所选供应商价格比同类厂家价格高出近10万元;
(2)该采购员在合同报告中没有说明该供应商提供增值税票的要求,从而使得该供应商以偷逃税款的方式降低报价,没有全面真实反映实际情况,却告知领导是最低价采购,造成主管审核、批准失误;
(3)签订合同时原合同报告中的供应商名称又变成了没有法人资质的二级代理商,该二级代理商不具有一般纳税人资质,为百成公司以后对卖方发票的抵扣不足留下隐患;1/4
(4)抽查该采购员所签合同,没有要求供应方提供17%的增值税票(百成公司是外企,对购买国内设备享有退税政策)。
2.生产部门的使用情况和反馈意见显示,此采购员所购8台该供应商的设备经常出现跑、冒、滴、漏现象,其中5台已返还供应商检修,有2台在仓库,现在使用的只有1台。
3.在编制付款凭证和取得卖方发票的过程中经过查看验收单、卖方发票、付款凭单、付款凭证及卖方对账单。结果发现:
(1)在采购入库的过程中此采购员违反公司物品验收管理制度的规定,没有通过仓库保管员验收,就分3次在3个星期日把原材料直接送到生产使用部门;
(2)由于百成公司供应商对账工作一直未开展,同时卖方的付款由采购处负责,使得该采购员一直未将2003年客户开具的增值税票到公司财务部入账且未被发现,近1万元的进项税额超过税法规定的90天抵扣时效,又造成公司1万元的税款损失。
【案例分析】
从百成公司采购作业制度来看,请购单、订购单合同评审、验收单、卖方发票、付款凭单、付款凭证及卖方对账单等内部控制流程比较完善,但在合同协议的内部控制方面仍存在不足之处,以导致在执行过程中,由于部分采购人员投机取巧,为谋求个人利益铤而走险,给百成公司造成了不该有的损失。
1.百成公司签约前没有对供应商的签约主体资格进行调查。企业应当对拟签约对象的民事主体资格、注册资本、资金运营、技术和质量指标保证能力、市场信誉、产品质量等方面进行资格审查,以确定其是否具有对合同协议的履约能力和独立承担民事责任的能力,并查证对方签约人的合法身份和法律资格。本案例中供应商是没有法人资质的二级代理商,应当调查其是否按照法律规定登记并领取营业执照,对于未经核准登记,也未领取营业执照,却以非法人经济组织的名义签订合同协议的当事人,不能与之签约。
2.百成公司在采购过程中合同询价和合同的签订均由采购员负责,容易形成舞弊。百成公司应当建立相应的制度,规范合同协议正式订立前的资格审查、内容谈判、文本拟定等流程,确保合同协议的签订符合国家及行业有关规定和企业自身利益,防范合同协议签订过程中的舞弊、欺诈等风险。应当根据合同协议内容对供应商、价格及变化趋势、质量、供货期和市场分布等方面进行综合分析论证,掌握市场情况,合理选择合同协议对方。重大合同协议或法律关系复杂的合同协议,应当指定法律、技术、财会、审计等专业人员参加谈判,必要时可以聘请外部专家参与。对于谈判过程中的重要事项应当予以记录。
3.百成公司应当指定专人负责拟定合同协议文本。合同协议文本原则上由承办部门起草,重大合同协议或特殊合同协议应当由企业的法律部门参与起草,必要时可以聘请外部专家参与起草。由对方起草合同协议,应当进行认真审查,确保合同协议内容准确反映企业诉求。国家或行业有示范合同协议文本的,企业
4.控制协议 篇四
风险投资与私募股权 67班
徐光远学号:07
班主任:任秀玲
近几年来,对赌协议在我国创业投资领域得到了广泛的运用。在投资创业企业时,创业投资机构往往与企业的创始股东、控股股东或管理层等签订对赌协议或者在投资协议中设置了对赌条款,以此来锁定投资风险,确保投资收益,而对于创业企业来讲,虽然可立即获得大笔资金,但是一旦失败,损失将十分惨重。2005年永乐电器与摩根士丹利、鼎晖投资签订对赌协议,结果永乐未能完成目标,导致控制权旁落,最终被国美电器并购;2007年太子奶与高盛、英联及摩根士丹利签订对赌协议,结果2008年太子奶销售额只完成了年计划的26.75%,对赌协议被迫提前履行,李途纯失去控股权。因此创业企业控制对赌协议的风险就尤为重要。
一、对赌协议的概念及成因
对赌协议的英文名称是ValuationAdjustmentMechanism(VAM),翻译成中文就是估值调整机制,它是国际创业投资机构在创业投资过程中常用的一种金融工具。对赌协议是投资方与融资方在达成投资协议时,双方对于未来不确定情况的一种约定。如果约定的条件出现,投资方可以行使一种权利;如果约定的条件不出现,融资方则行使一种权利。在投融资双方签订的对赌协议中,对赌的标尺(即触发对赌的条件)通常包括融资企业的净利润、销售收入等财务指标或其他非财务指标,而对赌的筹码则包括融资企业的股权、投票权、董事会席位、新股认购权、股息优先分派权、清算优先权甚至现金等等。根据对赌协议,赌赢的一方可以增加或维持其所持企业的股权、获得现金补偿,或在投票权、董事会席位分配、新股认购、股息分派、公司清算财产的分配等方面获得某些优惠。
对创业企业的估值从来都是一个仁者见人,智者见智的事。要准确地对成长过程中的创业企业给予恰当的估值殊非易事。在创业投资实践中,投融资双方存在严重的信息不对称,融资方是信息的优势方,投资方则是信息的劣势方。另一方面,融资企业方经常过分美好地描述自己的价值和前景。许多企业在融资时为了提高要价,为企业融得尽可能多的资金,往往以投资后一年或两年的业绩作为估值基础。比如要求估值水平要达到以投资后一年或几年的利润为基数的多少倍。面对这样的出价,投资方往往会提出对赌要求,如果将来企业经营未能实现该业绩目标,则调整企业的估值,从而调整投资方和创业企业原股东所持企业的股权,或重新分配企业的其他权益。
二、对赌协议的主要内容
对赌的核心是股权出让方和收购方对企业未来价值的不同预期,具体情况不同对赌双方所关心内容也不尽相同,双方根据各自的预期对协议条款进行设计。对赌协议通常涉及财务绩效、非财务绩效、赎回补偿、企业行为、股票发行和治理层去向六个方面的条款。
1、在财务绩效方面,若企业的收入或者净利润等指标未达标,治理层将转让规定数额的股权给投资方,或增加投资方的董事会席位等。
2、在非财务绩效方面,若企业完成了新的战略合作或者取得了新的专利权,则投资方
进行下一轮注资等。
3、在赎回补偿方面,若企业无法回购优先股,投资方在董事会将获得多数席位,或提
高累积股息等。
4、在企业行为方面,投资者会以转让股份的方式鼓励企业采用新技术,或者以在董事
会获得多数席位为要挟,要求企业重新聘用满足的CEO等。
5、在股票发行方面,投资方可能要求企业在约定的时间内上市,否则有权出售企业,或者在企业成功获得其他投资,且股价达到一定水平的情况下,撤销对投资方治理层的委任。
6、在治理层方面,协议可约定投资方可以根据治理层是否在职,确定是否追加投资,治理层离职后是否失去未到期的员工股。
可以看出对赌协议约定的范围非常广泛,既有财务方面的,也有非财务方面的,涉及企业运营治理的多个方面。除了以“股权”为“筹码”外,治理层和投资方之间还以董事会席位、二轮注资和期权认购权等多种方式来实现对赌。
三、“对赌协议”四重风险应警惕
从上面的失败案例我们可以看到创业企业签订对赌协议风险性很大,公司管理对赌失败会丢掉公司的控股权,甚至被投资机构控制并出售给其他公司,那么对赌协议的巨大风险来源于哪里呢?
第一重风险:对赌机制中容易隐含“不切实的业绩目标”。这种强势意志的投资者资本注入后,很容易导致管理层不惜采取短期行为,使企业潜力过度开发,将企业引向过度追求规模的非理性扩张,这将会放大企业本身“不成熟的商业模式”和“错误的发展战略”,从而把企业推向困境。
第二重风险:企业家急于获得高估值融资,又对自己的企业发展充满信心,而忽略了详细衡量和投资人要求的差距,以及内部或者外部当经济大环境的不可控变数带来的负面影响。
第三重风险:企业家常会忽略控制权的独立性。商业协议建立在双方的尊重之上,但也不排除有投资方在资金紧张的情况下,向目标公司安排高管,插手公司的管理,甚至调整其业绩。怎样保持企业决策的独立性还需要企业家做好戒备。
第四重风险:企业家业绩未达标失去退路而导致奉送控股权。一般来说,国内企业间的“对赌协议”相对较为温和,但很多国外的投资方对企业业绩要求极为严厉,很可能因为业绩发展过于低于预期,而奉送企业的控制权。一旦经营环境发生变化,原先约定的业绩目标不能达到,企业将不得不通过割让大额股权等方式补偿投资者,其损失将是巨大的。
四、怎样降低“对赌协议”中的风险
1、配合投资方做好尽职调查。企业管理层必须是非常了解本企业和行业的管理专家,能够对企业的经营状况和发展前景做出较为准确的判断。企业管理者公开透明的向投资方开
放企业信息,在双方共赢的前提下设定“对赌”。同样,投资方应认真的尽职调查,而不是仅凭“对赌”机制来保护自身利益,规避风险,这样反而会面临更大风险。
2、合理定价,了解目标差距。启明创投创始合伙人邝子平曾表示,他签的“对赌协议”里面起码80%左右是达不到的。企业家有一个很大的优点,很有激情。但投资人给出预测确实比较难,他们对企业的限定也许不只是盈利数字,有的还有用户量的指标。这种情况下,应早些把价格定得比较合理。对于融资方的企业管理层来说, 全面分析企业综合实力, 设定有把握的对赌标准,是维护自己利益的关键渠道。企业管理层除了准确判断企业自身的发展状况外, 还必须对整个行业的发展态势, 如行业情况、竞争者情况、核心竞争力等有良好的把握, 才能在与机构投资者的谈判中掌握主动。
3、管理层控制权需明确细化。签署对赌协议后,投融资双方的互信,除了用商业道德来束缚,更重要的是用协议细化,其中最重要的问题是管理层控制权的独立性。高管层、董事会、全体股东这三层权力与义务必须界定。这些全部需要在协议中写明,不能只写一句“公司的实际控制者仍然是原拥有者”。从风险防范的角度出发,企业在同私人股权资本的谈判中应掌握主动权,把握好自己的原则和底限,要通过合理的协议安排锁定风险,以保证自身的对企业最低限度控股地位。
4、审计问题事前规定。审计机构的选择对于“对赌协议”的执行至关重要,一定要保证得到双方认可,协议中不能仅写明“需使用双方都认可的审计机构”,最好规定好审计单位。
5.控制协议 篇五
为什么使用防火墙
防火墙是限制外面用户通过因特网进入自己网络的一种安全机制,是一套过滤数据包的规则,可以让期望的数据通过,阻止不需要的流量。大多数防火墙通过相应配置,依据访问控制列表(ACL)与管道(Conduit)检查数据包中的相关信息,然后转发数据包。
(译者注:管道是一个通过防火墙的虚电路,它允许外部机器启动至内部机器的一条连接。每条管道都是潜在威胁,因此,必须根据安全政策和业务的要求限制对它的使用。如果可能,可以用远程源地址、本地目标地址和协议加以限制。ACL是一种在网络设备中(如路由器或交换机)通过一系列PERMIT,DENY语句来过滤数据包的方法。为了减少所需的接入,应该认真配置访问列表。如果可能,应该用远程源地址、本地目标地址和协议对访问列表施加更多的限制。)
如果不匹配访问控制列表(ACL)与管道(Conduit)的要求,防火墙会丢弃这些数据包。访问控制列表(ACL)与管道(Conduit)定义符合要求的帧,这些帧必须满足网络可以接受的规则。符合条件即可以一般性设定,也可以设定得很具体。例如,防火墙中一般的管道充许网络中所有的流量通过,不限制任何源主机和目的主机。特别设定后,管道只充许IP地址为45.30.155.30的主机通过UDP协议的161(SNMP)端口与IP地址为10.17.2.30的内部网络中的主机通信。结果,只有这两个主机之间的SNMP的流量可以通过防火墙。
怎样配置防火墙来实现远程访问
通过防火墙远程访问OptiView协议分析仪需要注意几件事。管理员要在防火墙中加一两条配置语句,除非让防火墙的所有应用都是开放的。
首先,OptiView协议分析仪需要一个公共的IP地址。当在内部网络采用私有地址时,许多网络管理员会使用网络地址转换(NAT)的方法来处理,这样可以把使用几千个私有地址的网络转换为一个或几个公共地址的网络。网络地址转换(NAT)的作用是将内部接口上的主机地址转换为与外部接口相关的“全球地址”,这样能防止将主机地址暴露给其它网络接口,
如果选择使用NAT 保护内部主机地址,应该先确定一组用于转换的地址段。
(译者注:对于内部系统,NAT能够转换向外传输的包的源IP地址。它同时支持动态转换和静态转换。NAT允许为内部系统分配专用地址,或者保留现有的无效地址。NAT 还能提高安全性,因为它能向外部网络隐藏内部系统的真实网络身份。)
当使用NAT时,OptiView协议分析仪需要一个静态的NAT表。如果,NAT以动态的方式使用,实际地址来自于一个指定的地址段,这样内部主机就不会每次得到一个相同的外部地址。OptiView协议分析仪从地址映射表中获得一个固定的地址,这个固定的地址,可以让外面的主机访问到它。如果不使用NAT,那么OptiView 协议分析仪就用当前的地址进行工作。一旦OptiView 协议分析仪由静态的NAT表确定了地址,就需要对防火墙进行一些配置,如果OptiView协议分析仪让远程用户以WEB形式访问,就要充许http服务。
图1:OptiView协议分析仪在因特网中的地址为45.30.1.1
http通信要基于TCP的连接,默认的服务端口为TCP80端口,所以要开放OPTIVIEW协议分析仪的80端口,例如,可以让所有主机通过80端口访问OptiView 协议分析仪,也可以只让一台主机通过80端口访问 OptiView 协议分析仪。
在图2中,主机200.200.200.1试图远程访问OptiView协议分析仪,防火墙会检查信息的匹配性,如果通过,会通过NAT转换了一个内部地址与OptiView 协议分析仪通信。
远程用户需要下载远程用户接口程序,然后安装在当前主机中,该程序可以用E-mail或其它文件传输方式操作OptiView协议分析仪。用户必须下载远程控制软件,远程控制接口采用TCP的1695端口,所以在防火墙中必须开放这一端口。
举例来说,如图3是对本地防火墙的配置。许多管理员喜欢对进出流量进行控制,这样在本地防火墙中,远程用户接口很可能被阻挡。
6.数据库的并发控制和封锁协议分析 篇六
目前主流的关系数据库通常都允许多个用户同时使用和共享, 所以也都具有并发控制的机制, 也就是控制数据库, 防止多用户并发使用数据库时造成数据错误和程序运行错误, 以保证数据的完整性。
二、事务与并发控制的概念
当多用户并发存取数据时, 就会产生多个事务同时存取同一数据的情况, 从而引起严重的数据错误和程序运行错误。
那么我们来看, 什么是事务及并发控制呢?
事务就是用户定义的一个数据库操作序列, 这些操作要么全做要么全不做, 是一个不可分割的很小的工作单位。例如, 在SQL语言中, 定义事务的语句有三条:
其中的BEGIN TRANSACTION是事务开始的标记, 而以COM-MIT或者ROLLBACK结束, COMMIT用于提交事务的所有操作, ROLLBACK则在事务运行过程中一旦发生了某种故障而使事务无法继续执行的时候, 系统就将事务中对数据库的所有刚刚完成的操作全部撤消, 滚动回到事务开始时的状态。
为了充分利用系统资源, 使数据库的共享资源得以有效利用, 必须可以使多个事务并行的执行, 而数据库对并行执行的事务进行的控制就是并发控制。
三、事务进行并发操作可能引起的数据不一致问题
由于种种原因, 都可能引起数据库的数据遭到破坏, 比如多个事务在并行运行的时候, 不同的事务的操作产生了交叉执行, 或者, 事务在运行过程中被强行停止或者中断。
因此, 事务在进行并发操作的时候很可能引起数据的不一致, 下面我们看一个具体的例子。例如飞机票的联网销售系统, 如果有以下的操作序列:
1. 甲售票处 (设置为T1事务) 读出某班次的机票剩余数A, 设A=20
2. 乙售票处 (设置为T2事务) 读出同班次的机票剩余数A, 也是20
3. 甲售票处 (T1事务) 卖出一张机票, 修改剩余数减一 (A←A-1) , 把A=19写回数据库中
4. 乙售票处 (T2事务) 也卖出一张机票, 修改剩余数减一 (A←A-1) , 把A=19写回数据库中
从这些操作中, 我们看到, 乙售票处的修改数据覆盖了甲售票处修改的数据, 实际发生了两张机票的销售, 而数据库中却错误的存入19, 少了一张。参看图1的情况。
这种情况是并发操作引起数据不一致的第一种情况, 叫做丢失修改 (Lost Update) , 第二种是不可重复读 (Non-Repeatable Read) , 第三种是读“脏”数据 (Dirty Read) 。
下边看第二种情况, 不可重复读是指事务T1读数据以后, T2执行更新操作, 就使T1无法再现原先读取的数据, 得到与上一次不同的结果, 例如图2。
读“脏”数据是指T1修改某数据并将其写回数据库, T2读取同一数据后, T1由于某种原因被撤消, T1执行回滚, 恢复到原始的数据, T2就读取到了过程中的一个作废的数据, 这个数据就是一种垃圾数据, 称之为“脏”数据, 也是不正确的。参看图3。
从以上例子我们看到, 数据不一致性的主要原因就是并发操作没有对事务进行一定的隔离, 所以, 正确的调度应该使一个用户的事务不受到其他事务的干扰, 从而避免数据的不一致性。
四、在并发控制中采用封锁协议解决数据的不一致性
并发控制的主要方法是封锁 (Locking) 。就是要用正确的方式调度并发操作, 使一个用户的事务在执行过程中不受其他事务的干扰, 从而避免造成数据的不一致性。
封锁是使事务对它要操作的数据有一定的控制能力。封锁通常具有3个环节:第一个环节是申请加锁, 即事务在操作前要对它将使用的数据提出加锁申请;第二个环节是获得锁, 即当条件成熟时, 系统允许事务对数据进行加锁, 从而事务获得数据的控制权;第三个环节是释放锁, 即完成操作后事务放弃数据的控制权。
基本的封锁类型有以下两种:
1. 排它锁 (Exclusive Locks, 简称X锁)
排它锁也称为独占锁或写锁。一旦事务T对数据对象A加上排它锁 (X锁) , 则只允许T读取和修改A, 其他任何事务既不能读取和修改A, 也不能再对A加任何类型的锁, 直到T释放A上的锁为止。
2. 共享锁 (Share Locks, 简称S锁)
共享锁又称读锁。如果事务T对数据对象A加上共享锁 (S锁) , 其他事务只能再对A加S锁, 不能加X锁, 直到事务T释放A上的S锁为止。
在对数据进行加锁时, 另外需要约定并执行一些规则和协议, 其中包括何时申请锁, 保持锁的时间以及何时释放等, 这些规则就称为封锁协议 (Locking Protocol) , 其总共分为以下三级:
(1) 一级封锁协议。一级封锁协议是事务T在修改数据之前必须先对其加X锁, 直到事务结束才释放。
(2) 二级封锁协议。二级封锁协议是事务T对要修改数据必须先加X锁, 直到事务结束才释放X锁;对要读取的数据必须先加S锁, 读完后即可释放S锁。
(3) 三级封锁协议。三级封锁协议是事务T在读取数据之前必须先对其加S锁, 在要修改数据之前必须先对其加X锁, 直到事务结束后才释放所有锁。
执行了封锁协议之后, 就可以克服数据库操作中的数据不一致所引起的问题。
参看图4。
从图4的情况我们看到事务T1在执行过程中独自占用并加X锁, 直到处理完之后再释放锁, T2虽然也需要使用, 但是在封锁协议的约束之下, T2所要求的X锁就被拒绝, 因此必须处于等待状态, 直到T1释放之后, T2才获得使用的权利, 这样就不会发生使用冲突, 避免了数据的丢失。这里我们看到, 此处实际上是执行了一级封锁协议。
下面我们看图5。
通过图5, 能够清楚的看到, 由于施行了封锁协议, 使事务T1使用了共享锁占用A, B两块数据, 这样T2需要加上的X锁就无法实现, (如果是S锁, 虽然可以加上, 但也不能够随便修改数据, 只是读取一下数据。) 当T1释放锁之后, T2就可以得到并使用锁了, 这样读取的数据B仍然还是100, 不影响A+B的结果, 这就是可重复读取。因此我们看到, 其实这里用的就是三级封锁协议。参看图6, 事务T1在对数据C修改之前, 先加上了X锁, 修改后写回数据库, 这时T2请求在C上添加S锁, 因为T1加了X锁, T2只好等待, 当T1因为某种原因撤销了修改的数据后, C就恢复了原来的数据100, 等T1释放X锁后T2获得C上的S锁, 读到的还是C=1 0 0, 因此避免了读出“脏”数据。这里使用的其实就是二级封锁协议。
通过以上内容, 数据库由于采用一定的封锁协议避免了数据的不一致性问题, 这使得数据库的并发控制有效而且有益, 从而使得多项事务可以并行的操作数据库的共享资源了。这就是数据库合理的进行调度, 避免了冲突, 避免了数据的不一致。
参考文献
[1]苗雪兰:数据库系统原理及应用教程[M].北京:机械工业出版社, 2004
[2] (美) Mary Pyefinch著:希望图书创作室译[M].SQL数据库开发从入门到精通[M].北京希望电子出版社, 2000
7.控制协议 篇七
1、前言
在自动化控制系统(如单片机和DSP等嵌入式系统)中,串行通信是实现两端设备数据交换的一种非常重要且普遍使用的通信方式。串行通信在数据量要求不是特别高的情况下,因其具有硬件设备简单、成本低廉、成熟度高和编码复杂程度低等优点,为过去和现在的自动化控制系统作出了巨大的贡献,在未来一段时期仍将发挥不可低估的作用。
串行通信中,由于实际信道的传输特性不尽理想以及噪声干扰,使得通信接收端易产生误码。为了保证通信可靠,实现两端设备数据正确交换,通信协议中需要采取差错控制技术,实现差错检测和纠正,改善通信系统的传输可靠性。本文介绍了差错控制技术在串行通讯协议中的应用。
2、差错控制概述
2.1差错控制
差错就是在通信接收端收到的数据与发送端实际发出的数据出现不一致的现象。差错出现的原因有多种,如信号在物理信道中传输时,线路本身电器特性造成的随机噪声、信号幅度的衰减、频率和相位的畸变、电器信号在线路上产生反射造成的回音效应、相邻线路间的串扰等造成的信号失真;如大气中的闪电、开关的跳火、外界强电流磁场的变化、电源的波动等各种外界因素造成的信号失真等。在串行数据通信中,信号失真将会使接收端收到的二进制数位和发送端实际发送的二进制数位不一致,从而造成由“0”变成“1”或由“1”变成“0”的差错。物理层传输链路受到干扰带来的数据差错无法被物理層识别,因而在数据链路层通信协议中采取差错控制技术,实现差错检测、数据纠正是十分必要的。
差错控制是指在数据通信过程中能发现或纠正差错,把差错限制在尽可能小的允许范围内。差错检测是通过差错控制编码来实现的;而差错纠正是通过差错控制方法来实现的。
2.2差错控制编码
差错控制编码是用以实现差错控制的编码,可分为检错码和纠错码。检错码是指能自动发现差错的编码,如奇偶校验码、循环冗余校验码(CRC)等。纠错码是指不仅能发现差错而且能自动纠正差错的编码,如正反码、海明码等。
差错控制编码的原理是:发送方对准备传输的数据进行抗干扰编码,即按照某种算法附加上一定的冗余位,构成一个码字后再发送。接收方收到数据后进行校验,即检查信息位和附加的冗余位之间的关系,以检查传输过程中是否有差错发生。
2.3差错控制方法
差错控制方法是在数据通信中检测差错后对差错进行纠正,把差错限制在所能允许范围内的技术和方法。差错控制方法一般可分为反馈检测、自动请求重发(ARQ)和前向纠错(FEC)三类。
反馈检查方法的原理是:双方在进行数据传输时,接收方将接收到的数据重新发送回发送方,由发送方检查是否与原始数据完全相符;如不相符,则发送方发送一个控制信息删去出错的数据,并重新发送该数据;如相符则发送下一个数据。
自动请求重发(ARQ)的原理是:发送方将要发送的数据附加上一定的冗余检错码一并发送。接收方则根据检错码对数据进行差错检测;如发现差错,则接收方返回请求重发的信息,发送方在收到请求重发的信息后,重新传送数据;如没有发现差错,则发送下一个数据。ARQ方式使用检错码检查差错,并通过重发机制纠正差错。
前向纠错(FEC)的原理是:发送方将要发送的数据附加上一定的冗余纠错码一并发送,接收方则根据纠错码对数据进行差错检测,如发现差错,由接收方进行纠正。FEC方式需要使用纠错码。
3、差错控制在串口通信协议中的应用
串口通信协议是串行通信的核心,它的主要功能是为应用层提供可靠的数据信息。串口通信协议包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等。为了能够充分发挥串口通信的自身作用,制定合适的数据链路层协议就显得尤为重要。串口通信数据链路层协议包括协议帧结构、重发机制等内容。
3.1差错控制编码的应用
3.1.1协议帧结构
设备常用的串口通信数据链路层协议帧结构一般包括帧头、信息域、检错码和帧尾。在实际应用中,根据实际情况可以对帧结构进行删减,但是删减的前提是保证帧结构的检错能力,把差错限制在所能允许的范围内。
3.1.2帧头和帧尾
如果接收端在接收中有一个错误,导致识别不到下一个数据帧的开始或结束,整个通信将会混乱,所以帧头和帧尾的识别相当重要。帧头是识别帧起始的重要标志。帧头的长度越长识别的可靠性就越高,但是过长的帧头会带来整帧长度的增加,从而影响传输效率。因此帧头一般控制在1-3个字节。帧尾是识别帧结束的重要标志。如果定义了帧长度,那么可以通过帧长度和帧尾共同识别帧的结束,增加识别的可靠性。帧尾一般控制在1-2个字节。
3.1.3信息域
信息域包含的内容丰富,长度是可变的。信息域包括地址段、控制段、数据段等多种信息。其中控制段的内容还可细分为帧序号、帧长度、帧类型、通信控制命令和数据块链接信息等等,它们可以根据实际需求删减。地址段、控制段中的帧序号和帧长度等等信息都是识别差错的重要依据。地址段用于识别发送端、接收端地址,如果不是多机通信,可以删减。帧序号的设置主要目的是为了数据帧在传输过程中出错时,进行漏帧检测。帧长度表示协议帧的字节数,指示帧的结束位置。在非定长帧协议中,帧长度的定义是非常必要的。数据段是数据信息交互的部分。如果协议设计中数据段采用ASCII码数据格式,帧头帧尾、地址段、控制段等其他信息选用区别于数据段使用的ASCII码,则在数据帧的检测中可以大大提高识别的可靠性。ASCII码数据格式的缺点是数据冗长、传输效率低,比较适用于数据量少且实时性要求不高的场合。
3.1.4检错码的应用
检错码用于检测通过物理层链路传输后数据可能出现的错误。比较常用的检错码有:累加和、异或和、纵向冗余校验、循环冗余校验(CRC)等等。累加和(Check-Sum)校验算法:累加和校验码的初始值为0,将需运算的所有数据字节(8bit),与初始值相加模256,最后所得的余数即为累加和校验码。异或(XOR)校验算法:异或和校验码的初始值为0,将需运算的所有数据字节(8bit),与初始值相异或,最后所得结果即为异或校验码。纵向冗余(Longitudinal Redundancy Code,简称LRC)校验算法:纵向冗余校验码的初始值为0,将需运算的所有数据字节(8bit)相加,所得之和丢弃进位,求补码,所得结果即为纵向冗余校验码。
循环冗余(Cyclic Redundancy Check,简称CRC)校验算法:将需运算的所有数据字节(8bit),按照约定的CRC码生成规则,用16位CCITT生成多项式G(x)生成的余数即是CRC码(n位)。目前较常使用的CRC位数(n位)有8、16、32,CRC位数越大,错误检测能力越强,不过运算费时。据理论统计,使用16位CRC时,超过17个连续位的错误检测率有99.9969%。累加和、异或和、纵向冗余3种检错码算法简单,对内存要求小,但是检错码的重码率高,错误检测率低;相对来说CRC校验码是高效的。
3.2差错控制方法的应用
根据多年的实际工作总结,串口通信数据链路層协议中可以通过以下三种方法实现重发机制:逐字节检测重发、全数据检测重发、时间控制重发。
3.2.1逐字节检测重发
逐字节检测重发机制属于差错控制方法中的反馈检测方法。两端数据传输过程中进行逐字节握手,如果握手不成功则重新开始逐字节握手,直到确认整帧握手成功。优点:纠错能力强,不依靠检错码检错、随时纠错。缺点:两端数据逐字节握手,传输效率低。这种数据重发机制适用于对传输时间要求低,但对传输可靠性要求高的系统。在进行软件系统设计时,需重点考虑完成整帧发送和接收的最长时间是否有可能对系统时间或时序造成影响。
3.2.2全数据检测重发
全数据检测重发机制属于差错控制方法中的自动请求重发方法。发送端将数据包一次性发出,接收端根据帧头帧尾、地址段、检错码等特征字符判断接收的数据包的完整性和正确性,如果不正确要求发送端重发。与逐字节检测方式相比,全数据检测方式握手频率减少,大大提高了传输效率,只是检错和纠错只能在一帧数据传输完毕之后。
在进行软件系统设计时,如果选用这种数据重发机制,需考虑通信出现错误时发送方决定重发的条件、重发次数和重发延时时间,及对系统的影响。建议发送方的重发延时时间取T21的5~10倍。
3.2.3时间控制重发
时间控制重发机制属于差错控制方法中的前向纠错方法的简化。发送端按约定的频率,不断将数据帧发送到接收端;接收端根据帧头帧尾、地址段、检错码等特征字符判断接收的数据包的完整性和正确性。由于没有握手机制,如果检测到差错只能等待下一时刻的数据帧来完成纠错;同样由于没有握手机制,数据传输具有较高的实时性,尤其在传输线路条件良好的前提下。
在进行软件系统设计时,需根据数据传输波特率、数据帧长度、字格式计算数据传输时间,然后确定数据帧间隔时间。上述几种不同的差错控制方法各有其优缺点和使用范围。如果存在反馈信道,而且传输的实时性要求不高,那么ARQ方式是很好的选择。串口通信数据链路层协议广泛采用了ARQ方式的差错控制方法:运用检错方法和重发机制达到对差错的检测和纠正。
4、结语
文中介绍了一种适用于单片机系统的串行数据通信协议,协议将差错控制方法与差错控制编码相结合,实现了数据差错的有效控制。差错控制一直是保障通信传输可靠性的重要手段,通过合理运用差错控制方法可以有效的提高数据通信的可靠性及通信质量。