精华内容
下载资源
问答
  • 锁协议

    千次阅读 2017-11-17 10:19:55
    1、锁协议是指所有事务必须分个阶段对数据项加锁和解锁:  1.1、在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁。  1.2、 每个事务中,所有的封锁请求先于所有的解锁请求。  ...

    转自:http://blog.csdn.net/a479898045/article/details/8813365



    1、两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:

      1.1、在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁。
      1.2、 每个事务中,所有的封锁请求先于所有的解锁请求。
      例如事务T1遵守两段锁协议,其封锁序列是:
      Lock A, Read A, A:=A+100, Write A, Lock B, Unlock A, Read B, Unlock B, Commit;
      可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

    2、注意:

    两段锁协议和防止死锁的一次封锁法的异同之处。

    2.1、一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议;

    2.2、两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。

    这个程序要实现的就是模拟两段锁协议中对数据库中数据的加锁解锁操作,实现事务的冲突可串行化。


    3、要说明的问题:遵守两段锁协议的事务也可能发生死锁。


    展开全文
  • 锁协议 封锁的粒度 多粒度封锁 意向锁 锁的强度   前提 并发控制技术与前一篇提到的数据库恢复技术是主要的事务处理技术,同时并发控制机制和数据库恢复机制是数据库管理系统(DBMS)的重要组成部分。 ...

    主要内容

    两种基本封锁类型 

    封锁协议

    活锁

    死锁

    多粒度封锁

    意向锁

    锁的强度


     

    前提

    并发控制技术与前一篇提到的数据库恢复技术是主要的事务处理技术,同时并发控制机制和数据库恢复机制是数据库管理系统(DBMS)的重要组成部分。

    单处理机系统中,事务的并行执行实际上是这些并行事务轮流交叉运行。这种并行执行方式称为交叉并发方式(interleaved concurrency)。虽然单处理机系统中的并行事务并没有真正地(物理上)并行运行,但是减少了处理机和各设备的空闲时间,提高了系统的效率。

    多处理机系统中,当事务数小于处理机数时,每个处理机可以运行一个事务,实现真正意义上的并行运行。这种并行执行方式称为同时并发方式(simultaneous concurrency)

    当多个用户并发地操作数据库时,就有可能出现多个事务同时存取同一数据的情况,这种情况可能会破坏事务的一致性和数据库的一致性,所以数据库管理系统(DBMS)必须提供并发控制机制。并发控制机制是衡量一个DBMS性能的重要标志之一。


     

    并发操作带来的数据不一致性

    以下三类数据不一致性的主要原因是并发操作破坏了事务的隔离性

    1)丢失修改(lost update):

    事务T1和T2先后读入同一数据并修改,T1先提交,T2后提交,T2提交的结果将覆盖T1的结果,导致T1的修改被丢失。

    2)不可重复读(non-repeatable read):

    事务T1读入某一数据后(未进行操作),T2对同一数据进行了操作(修改、插入、删除),当T1再次读入该数据时,得到与前一次不同的值(或者多了、少了某些记录)。这种不一致性与丢失修改的理想情况相反。

    3)读“脏”数据(dirty read):

    事务T1修改某一数据后将其写入磁盘,事务T2读入修改后的数据,此时T1由于某种原因被撤销(ROLLBACK),被T1修改的数据恢复原值,导致T2读入的数据与数据库中的数据不一致。


     

    封锁

    事务T在对某个数据对象,如表、记录等操作之前,需要先向系统发出加锁请求,在事务T释放它的锁之前,其他事务不能对此数据进行修改。

     

    两种基本封锁类型 

    1)排他锁(exclusive locks,X锁):

    排他锁又称为写锁。事务T对数据对象A加上X锁后,只允许事务T对A进行读取和修改,其他事务不能对A加任何类型的锁,直到T释放它的X锁为止。从而保证了其他事务在T释放A上的X锁之前不能对A进行读取和修改。

    2)共享锁(share locks,S锁):

    共享锁又称为读锁。事务T对数据对象A加上S锁后,事务T只能对A进行读取,而不能修改。其他事务可以继续对A加上S锁,但是不能加X锁,直到T释放它的S锁为止。从而保证了其他事务可以读取A,但是在T释放A上的S锁之前不能对A进行修改。

    *需要注意的是,同一事务可以不断对某个数据对象加锁,不需要等锁的释放。

     

    封锁协议

    1)一级封锁协议:

    定义:事务T在修改数据A前,必须先对A加X锁,直到事务结束才释放因此X锁又被称为写锁,意为修改。

    目的:解决“丢失修改”的不一致问题,即在下一个事务操作前,先把上一个事务的修改操作结束。

    实现:事务T1的X锁→事务T2的X锁

    事务T1对数据对象A加上X锁后,只有等事务T1(修改)结束,释放X锁,事务T2才能对A加锁并进行操作(读取、修改)。

     

    2)二级封锁协议:

    定义:在一级封锁协议的基础上,增加事务T在读取数据A前,必须先对A加S锁,读完后即可释放因此S锁又被称为读锁,意为读取。

    目的:在一级封锁协议的基础上,进一步解决“读‘脏’数据”的不一致问题,即在下一个事务读取前,先等上一个事务的撤销操作结束。

    实现:事务T1的X锁→事务T2的S锁(读取数据后释放S锁)

    事务T1对数据对象A加上X锁后,只有等事务T1(修改、撤销)结束,释放X锁,事务T2才能对A加锁并进行操作(读取)。

     

    3)三级封锁协议:

    定义:在一级封锁协议的基础上,增加事务T在读取数据A前,必须先对A加S锁,直到事务结束才释放(与二级的区别)

    目的:在二级封锁协议的基础上,进一步解决“不可重复读”的不一致问题,即在下一个事务修改前,先等上一个事务的重复读操作结束。

    实现:事务T1的S锁(事务结束后释放S锁)→事务T2的X锁

    事务T1对数据对象A加上S锁后,只有等事务T1(重复读取)结束,释放S锁,事务T2才能对A加X锁并进行操作(修改)。


     

    活锁和死锁

    和操作系统一样,封锁的方法可能引起活锁和死锁等问题。

     

    活锁

    根据事务的优先级顺序,可能会出现某个事务永远在等待封锁的情况,即事务T1封锁了数据对象A后,T2、T3陆续请求封锁,但是T1释放锁后,系统优先批准了T3的请求,T2仍然在等待。

    最简单的解决方法就是先来先服务(FCFS),不考虑事务的优先级。

     

    死锁

    事务T1封锁了数据A,事务T2封锁了数据B,然后T1请求封锁B,与此同时T2也请求封锁A,但因为两个事务的请求都需要等待对方释放锁,这样就出现了永远在等待对方的死锁。

    在数据库中,解决死锁问题主要有两类方法:预防和诊断解除。

    1)预防:

    1. 一次封锁法:每个事务一次将所有要使用的数据加锁,否则事务不能继续执行。

    带来的问题:阻碍了其他事务对数据的利用,从而降低了系统的并发度。

    2. 顺序封锁法:预先对数据规定一个封锁顺序,所有事务都按照这个顺序加锁,保证“先到先得”。

    带来的问题:需要处理的信息太多,开销大,成本高。

     

    2)诊断与解除:

    1. 超时法:某个事务的等待时间超过规定时间,则系统判定为死锁。

    带来的问题:规定时间过短,可能误判死锁;规定时间过长,可能不能及时发现死锁。

    2. 等待图法:并发控制子系统周期性地生成事务等待图,动态地反映所有事务的等待情况。如果发现图中存在回路,则表示系统中出现了死锁。

    解除方法:通常撤销一个处理代价最小的事务,释放此事务持有的所有锁,使其他事务得以继续运行下去。


     

    并发调度的可串行性

    可串行性是并发事务正确调度的准则。

    当且仅当多个事务的并发执行结果,与按某一次序的串行执行结果相同,这种并发调度策略才是可串行化调度,即具有可串行性。

     

    例子(《数据库系统概论(第5版)》p318):

    事务T1:读B;A=B+1;写A

    事务T2:读A;B=A+1;写B

     

    那么如何判断可串行化调度呢?

    我们需要引入一个概念——冲突操作,冲突操作是指不同事务对同一个数据读写写写操作,其他操作都属于不冲突操作。

    很容易理解,对于同一数据的操作,不可能一边在读,同时另一边在写,更不可能两边都在写,这是不符合逻辑的。

     

    在一个调度策略中,交换两个事务的不冲突操作的次序,得到另一个调度策略,如果另一个调度策略的执行结果与原来的调度相同,则称原来的调度为冲突可串行化调度

    冲突可串行化调度是可串行化调度的充分条件,但不是必要条件。


     

    两段锁协议

    为了保证并发调度的正确性,DBMS的并发控制机制必须提供一定的手段来保证调度是可串行化的。

    目前DBMS普遍采用两段锁协议(TwoPhase Locking,2PL)来实现,所有事务遵守两段锁协议是可串行化调度的充分条件,但不是必要条件。

     

    两段锁的含义:

    1)第一阶段(扩展阶段):所有事务对数据加锁,但不能解锁;

    2)第二阶段(收缩阶段):所有事务对数据解锁,但不能加锁。

    *需要注意的是,不同事务对同一数据的加锁仍遵循两种锁的特性以及封锁协议。

     

    预防死锁的一次封锁法遵守两段锁协议;但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。


     

    封锁的粒度

    封锁粒度(granularity)是指封锁对象的大小。

    封锁对象可以是逻辑单元,也可以是物理单元。以关系数据库为例,逻辑单元包括属性值、属性值的集合、元组、关系、索引项、索引表乃至整个数据库;物理单元包括页(数据页或索引页)、物理记录等。

     

    封锁粒度与系统的并发度并发控制的开销有关:封锁粒度越大,数据库能封锁的数据单元越少,并发度越小,系统开销也变小。

    一般来说,处理个别元组的事务以元组为封锁粒度;处理某个关系的大量元组的事务以关系为封锁粒度;处理多个关系的大量元组的事务以数据库为封锁粒度。

     

    多粒度封锁

    在一个系统中,提供多种封锁粒度给不同的事务选择,这种封锁方法称为多粒度封锁( multiple granularity locking)

    • 定义多粒度树:多粒度树的根结点是整个数据库,表示最大的封锁粒度,叶结点是最小的封锁粒度,如元组、属性值等。
    • 封锁协议:给一个结点加锁的同时,该结点的所有后裔结点也会被加上同样的锁。对于该结点来说,这种加锁方式为显式封锁,而对于其后裔结点来说,这样的方式为隐式封锁

    在多粒度封锁中,显式封锁和隐式封锁的效果是一样的,因此系统检查封锁冲突时,不仅要检查显式封锁,还要沿着多粒度树上下检查隐式封锁。

    显然,这样的检查方法效率很低。为此人们引进了一种新型锁,称为意向锁(intention lock)

     

     

    意向锁

    对任何一个结点加锁时,必须先对它的上层结点加意向锁。

     

    三种常用的意向锁:

    1)意向共享锁(IS锁):

    对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁

    事务T1对数据对象A加上IS锁后,事务T2可以继续加除X锁以外的锁。

    2)意向排他锁(IX锁):

    对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁

    事务T1对数据对象A加上IX锁后,事务T2只能继续加IS或IX锁

    3)共享意向排他锁(SIX = S+IX锁):

    对一个数据对象先加S锁,再加IX锁。例如对某个表加SIX锁,则表示该事务要读(S)整个表,同时会更新(IX

    )个别元组。

    事务T1对数据对象A加上SIX锁后,事务T2只能加IS锁

     

    在具有意向锁的多粒度封锁方法中,任意事务T要对一个数据对象加锁,必须先对它的上层结点加意向锁。

    申请封锁时应该按自上而下的次序进行,释放封锁时则应该按自下而上的次序进行。(栈结构)

     

    具有意向锁的多粒度封锁方法提高了系统的并发度,减少了加锁和解锁的开销,已经在实际的DBMS产品中得到广泛使用。

     

    锁的强度

    锁的强度是指它对其他锁的排斥程度。

    一个事务在申请封锁时,以强锁代替弱锁是安全的,反之不然。

    强度排序:

    X > SIX > S / IX > IS

     

    展开全文
  • 封锁协议与锁协议

    千次阅读 2019-02-15 16:14:43
    封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务T在对某个数据对象例如表、...基本的封锁类型有种:排他(exclusive locks,简称X)和共享(share locks,简称S)。 排他又称为写。 共享...

    封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。

    确切的控制由封锁的类型决定。基本的封锁类型有两种:排他锁(exclusive locks,简称X锁)和共享锁(share locks,简称S锁)。

    排他锁又称为写锁。

    共享锁又称为读锁。

    排他锁和共享锁的控制方式可以用相容矩阵来表示。

    T1           T2

    X

    S

     

    X

    N

    N

    Y

    S

    N

    Y

    Y

     

    Y

    Y

    Y

    一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。

    二级封锁协议:在一级封锁协议基础上增加事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。除防止丢失修改,还可进一步防止读“脏”数据。

    三级封锁协议:在一级封锁协议基础上增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。除防止丢失修改和读“脏”数据外,还进一步防止了不可重复读。

     

     

    两段锁协议(TwoPhase Locking,简称2PL)

    ① 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。

    ② 在释放一个封锁之后,事务不再申请和获得其它任何封锁。

    即事务的执行分为两个阶段:

    第一阶段是获得封锁的阶段,称为扩展阶段。

    第二阶段是释放封锁的阶段,称为收缩阶段。

    可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。

    另外要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议;但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。

    事务T1

    事务T2

    给A加读锁

    读出A为260

     

     

    给A加写锁

    修改A为160

     

     

     

    给B加读锁

    读出B为1000

    给B加写锁

    修改B为1100

    释放A的锁

     

     

    释放B的锁

     

     

    给C加读锁

    读出C为300

     

     

    给C加写锁

    修改C为250

    给A加读锁

    等待

    等待

    等待

    等待

    等待

    读出A为160

    给A加写锁

     

    修改A为210

    释放C的锁

    遵守两段锁协议的可串行化调度

     

    摘自《数据库系统概论》(第5版)王珊 萨师煊编著

     

    展开全文
  • mysql中的锁协议和三级封锁协议

    千次阅读 2019-04-17 09:14:42
    锁协议 一个事务中一旦开始释放锁,就不能再申请新锁了。事务的加锁和解锁严格分为个阶段,第一阶段加锁,第二阶段解锁。 目的 :”引入2PL是为了保证事务的隔离性,保证并发调度的准确性,多个事务在并发的...

    两段锁协议

    一个事务中一旦开始释放锁,就不能再申请新锁了。事务的加锁和解锁严格分为两个阶段,第一阶段加锁,第二阶段解锁。

    目的 :”引入2PL是为了保证事务的隔离性,保证并发调度的准确性,多个事务在并发的情况下依然是串行的。

    封锁定理:

    如果事务是良构的且是两阶段的,那么任何一个合法的调度都是隔离的。

    2PL和2PC

    **2PL,两阶段加锁协议:主要用于单机事务中的一致性与隔离性。**主要是在MySql(仅限innodb)中使用的。
    2PC,两阶段提交协议,用于分布式事务。

    S2PL(Strict 2 PL)

    SQL是千变万化、条数不定的,数据库很难在事务中判定什么是加锁阶段,什么是解锁阶段。因此规定:

    1. 在事务中只有提交(commit)或者回滚(rollback)时才是解锁阶段,
    2. 其余时间为加锁阶段。
      在这里插入图片描述
      两阶段加锁对数据库性能的影响详见该文章(很好的文章,仔细看看):https://blog.csdn.net/qq4165498/article/details/76855139

    封锁协议:

    运用X锁和S锁对数据对象进行加锁时约定的规则就是封锁协议。

    目的是在不同程序上保证数据的一致性。

    三级封锁协议

    1. 一级封锁:修改数据加x锁直到事务结束才释放。在此协议中,仅仅是读数据是不需要加锁的,所以只能解决丢失修改问题,不能解决脏读和不可重复读。
    2. 二级封锁:在一级封锁的基础上,加了一条:T事务在读取数据R之前必须先对其加上S锁,读完释放S锁。可以解决丢失修改和脏读(加了读锁就可以防止在读的期间其他事务进行修改,但是读完之后,事务结束之前,依然可能会其他事务进行修改,导致不可重复读)。
    3. 三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。:解决了丢失修改、脏读和不可重复读的问题。
    展开全文
  • (1)改写T和T2, 增加加锁操作和解锁操作,并要求遵循阶段封锁协议。 (2)说明T和T2的执行是否会引起死锁,给出T和T2的一个调度并说明之。 二、问题解答 (1)如下表所示 T1 T2 Slock A R(A) Slock B ...
  • 请补充上述执行序列,使其满足2PL协议,并使持有的时间最短。 二、问题解答 【问题一】 将写订单记录和修改库存表作为一个完整的事务来处理,当修改库存表无法执行时,回滚事务,则会撤销写入的订单记录,,数据库...
  • 锁协议(2PL)

    万次阅读 2014-05-14 15:38:36
    1.可串行性  并行操作对并行事务...因此,一次封锁法遵守锁协议,但段锁并不要求事务必须一次性将所有要使用的数据全部加锁,这一点与一次性封锁不同,这就是遵守锁协议仍可能发生死锁的原因所在。
  • 分布式锁协议实现方式思考  分布式锁协议是分布式协调协调的一部分,通常业界的zookeeper,chubby等都可以实现分布式锁协议。    1. 基于zookeeper提供的ephermal file文件来创建。  每个ephermal file是与...
  • 阶段封锁协议

    千次阅读 2019-07-23 23:55:02
    锁协议是指每个事务的执行分为个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)。 加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。...
  • 众所周知,为了保护共享数据,需要一些同步机制,如自旋(spinlock),读写(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,...
  • 协议系列之HTTP协议

    千次阅读 2014-08-26 18:52:41
    HTTP协议用于从WWW服务器传输超文本到本地浏览器的传输协议,它能使浏览器更加高效,使网络传输减少,保证计算机正确快速地传输超文本文档。现在我们普遍使用的版本是HTTP1.1。 HTTP是一个应用层协议,它由请求和...
  • MQTT协议简介及协议原理

    千次阅读 2020-06-13 15:24:00
    带你看看MQTT协议简介及协议原理
  • Android usb学习笔记:Android AOA协议设备 流程总结

    万次阅读 热门讨论 2017-04-20 21:14:51
    Android手机与嵌入式设备通过usb直接连接的方式进行通信,其中Android的usb层使用了Android...上层协议参考了usbmuxd库,并在Android用java实现了usbmuxd的部分协议,最终使用可以抽象为双方socket端口间的通信过程。
  • http协议与https协议

    千次阅读 2015-07-21 15:55:52
    1、前言 在介绍 HTTP 协议之前,...协议是指计算机通信网络中台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,HTTP协议是一种应用层协议,由请求和响应构成,是一个标准的客户
  • 阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。...
  • (2PL)理解

    千次阅读 2018-11-29 19:30:00
    阶段(Two-phase locking - 2PL): 首先,阶段强调的是“加锁(增长阶段,growing phase)和解锁(缩减阶段,shrinking phase)这项操作,且每项操作各自为一个阶段,这就是说不管同一个事务...
  • 带你解锁蓝牙skill(二)

    千次阅读 2017-06-12 17:11:39
    本文已授权微信公众号fanfan程序媛独家发布 紧接着带你解锁蓝牙skill(一)继续分析 转载请注明出处,本文出自fanfan 的带你解锁蓝牙skill(二)3>,Pbap配置Pbap:...其中包括个角色 PCE:对应的协议配置文件为Pb
  • Mysql数据库中的各种

    万次阅读 多人点赞 2019-04-26 16:46:32
    在介绍InnoDB与MyIsam的区别时,提到了:InnoDB支持表、行(默认)级,而MyISAM支持表级 本文便着重对Mysql数据库中的进行介绍 概述 相对其他数据库而言,MySQL的机制比较简单,其最显著的特点是不同的...
  • TFTP协议详解

    万次阅读 2009-03-31 17:10:00
    TFTP协议详解一 TFTP协议简介TFTP协议全称为Trivial File Transfer Protocol。目标是在UDP之上上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它不包含FTP协议中的目录操作和用户权限等内容。与...
  • 通信协议制定

    万次阅读 2015-10-29 23:24:00
     通信协议定义    用于实现计算机与网络连接之间的标准,网络如果...台计算机在进行通信时,必须使用的通信协议。 通信协议的种类和特点    目前常见的通信协议主要有:NetBEUI、IPX/SPX、NWL
  • HTTP协议

    千次阅读 2016-09-14 21:17:17
    HTTP协议是整个web的基础,是客户端和服务器协同工作的基石,要想了解web的工作原理、优化web应用,就要完全理解HTTP协议。作为专注于web编程的PHP语言,简单的网络模型和接口,使得在PHP中实现套接字、curl等变得...
  • 对比Linux 1.2.13 和 2.6.3 协议栈,最大的区别在与对多核的支持,所以的支持情况很重要 http://www.ibm.com/developerworks/cn/linux/l-synch/part2/ 这是本系列文章的第二部分,它详细地介绍了Linux内核中...
  • 帮你深入理解OAuth2.0协议

    千次阅读 2014-05-06 16:16:35
    1. 引言如果你开车去酒店赴宴,你经常会苦于找不到停车位而...与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以车,但无法打开后备箱,无法使用车内其他设备。这
  • SSL协议

    千次阅读 2018-10-17 09:43:21
    SSL证书全称为安全套接层协议 (Secure Sockets Layer) 证书,是遵守SSL安全套接层协议的服务器数字证书。它通过加密算法,将HTTP明文传输变成HTTPS暗文传输。由于此协议很好地解决了互联网明文传输的不安全问题,...
  • TCP/IP协议,HTTP协议等相关概念的学习

    万次阅读 多人点赞 2018-05-14 10:36:50
     TCP是Tranfer Control Protocol的简称,TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。通过TCP协议传输,得到的是一个顺序的无差错的...发送方和接收方的成对的个socket之间必须建立连接,以...
  • Mesh?无线协议的选择

    千次阅读 2018-04-29 00:00:00
    智能家居和智能建筑等产品的开发者可以使用大量的无线协议。 Zigbee,Z-Wave,以及专有的无线协议,在这些市场中占据了主导地位,新的进入者还包括Thread 和蓝牙网格。 虽然传统的BLE和 W...
  • 带你解锁蓝牙skill(一)

    万次阅读 热门讨论 2017-06-09 09:23:18
    蓝牙模块支持什么功能完全由蓝牙所支持的蓝牙协议而确定,所以先从蓝牙协议看起转载请注明出处,本文出自带你解锁蓝牙skill 作者为fanfan1,Android各版本与蓝牙profile关系首先明确一下,目前市面上的Android机的...
  • 通信协议

    千次阅读 2011-05-07 11:17:00
    台计算机在进行通信时,必须使用的通信协议。通信协议的种类和特点  目前常见的通信协议主要有:NetBEUI、IPX/SPX、NWLink、TCP/IP,在这几种协议中用得最多、最为复杂的当然还是TCP/IP协议,最为简单的是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,138
精华内容 24,055
关键字:

两端锁协议