摘要:
1. 简介pbuilder(personal Debian package builder)是ubuntu环境下维护debian包的专业工具,能够为每个deb包创建纯净的编译构建环境,自动解析和安装依赖包,并且不污染宿主系统。2. 使用pbuilder的流程(1) 使用pbuild create创建纯净的编译构建环境,可以通过参数指定所要模拟的debian环境版本(2) 使用apt-get source下载目标deb包的src包(3) 使用pbuilder build编译目标源码包,参数为src包的dsc文件(4) 回到第(2)步继续编译更多的包3. pbuilder的主要功能(摘自manua 阅读全文
摘要:
TCP NewRenoNewReno是在Reno的基础上,改进了Fast Recovery,主要思想是保证处于network中的packet的总量是饱和的。在Reno算法中,一个超时会导致相应的那个packet的重传,然而,一个超时发生时,本可以重传多个潜在的丢包,但Reno算法没有这样实现,这就导致性能不高。Reno在遇到多包丢失时,存在两个问题:一个是,大量的包没有足够的重复ACK触发重传,只能等待超时才能得以重传。第二个是,即使采取措施(在Partial Acknowledgement一节中已有所讨论)避免了超时,也会存在Multiple Fast Retransmits和严重的wind 阅读全文
摘要:
1. Multiple Packet LossesFast Retransmit/Fast Recovery机制可以很好地处理单个packet丢失的问题,但当大量packet同时丢包时(一个RTT内),FR机制可能无济于事。下面举例说明。下面两张图是一次多包丢失的情景。其中上图中的三条线分别描述的是SND.UNA,SND.NXT,SND.UNA+SND.WND三个变量随着时间变化的情况,下图中的线描述的是拥塞窗口cwnd随着时间变化的情况。由于丢包具有随机性,我们假设下面的情景开始之前,小于65号的包都已经被sender发送出去,但51, 53, 55号在网络中被丢弃。在0.83s之前,sen 阅读全文
摘要:
TCP RenoTCPReno引入了ssthresh(Slow Start threshold)变量,作为TCP的Slow Start和Congestion Avoidance两个阶段的分界线。当cwnd = ssthresh时,TCP进入Congestion Avoidance阶段。ssthresh实际上影响着TCP的性能,但其初始值在RFC中没有明确定义,可以为任意大的值,在实现时一般初始化为rwnd。TCP Reno拥塞控制算法继承了“数据包守恒准则”,保证处于网络中的packet的总量是守恒的。它通过4个算法保证这一点:1. Slow Start在TCP连接建立之后,由于不知道实际可用 阅读全文
摘要:
拥塞控制不同于流量控制,拥塞控制是在拥塞发生时,发送方根据一定的反馈,主动调节自己的发送速率,以防止拥塞恶化的行为。1. 网络拥塞路由器是网络中的关键组件,其内部有一定量的缓冲区,用于缓存来不及转发(forward,或称transmit)出去的packet。如果将网络看成一个整体,那么一个网络的链路容量(link capacity)就取决于网络中的路由器的缓冲区大小。链路容量越大,整个网络可容纳的outstanding(即在网络中propagate)的packet就越多。当网络中的packet较少时,每个packet进入路由器,会较快被转发出去,几乎没有延迟。而当网络中的packet过多时,路 阅读全文
摘要:
下面简单介绍了TCP的流量控制。流量控制是发送方和接收方合作完成的端到端的流量控制,用于防止发送方发送数据包的速率超过了接收方的接收速率,造成了接收方溢出。流量控制早于拥塞控制出现,是实现拥塞控制的基础,因此在深入学习拥塞控制之前,有必要回顾流量控制。1.1 Acknowledgement机制TCP基于ACK实现可靠传输。sender每发送一个packet,都会等待receiver的响应,而receiver收到packet之后,会立即反馈一个ACK,ACK表明receiver成功收到了该packet[5]。ACK机制得以稳定运行的前提之一是所有的数据都是按序编号的,因此packet和其ACK便 阅读全文
摘要:
1.LiveCD原理 LiveCD本质上是ISO 9660/El Torito格式的CD-ROM。 下面对LiveCD涉及的各种技术做了简单的调研。1.1. CD-ROM CD-ROM是一种光盘存储介质。 与磁盘类似,CD-ROM被划分为多个track,track又被划分为多个sector。sector大小为2352字节,随着sector所采用的编码方式的不同,其内部结构也不同,见下图。CD digital audio格式是CD唱片采用的方式,CD-ROM Mode1/2是CD-ROM数据盘(LiveCD属于此种情况)采用的方式。1.2. ISO9660 CD-ROM中,每个track上都可以 阅读全文
摘要:
因为采用了信道复用技术:时分复用(TDM, Time Division Multiplexing),将时间划分成一段段等长的时分复用帧,也相当于时分复用的周期,每个时分复用的用户在每个TDM帧中占用固定的时隙。每个用户都使用全部的频率带宽。频分复用(FDM, Frequency Division Multiplexing),将信道总的频率带宽划分成多个区间,每个用户使用不同的频率区间,同时传输。我们知道,频率的意思是电压每秒钟变化的次数,它只是一个逻辑上的概念,真正变化的是电流,即电子的流量,那么为什么不同频率的电磁波能同时存在一个传输信道上呢?原因是利用了波的干涉原理,即两个波干涉的条件是必 阅读全文
摘要:
ACID:关系型数据库中事务的4个属性:Atomicity,原子性,整个事务的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间的某个环节。事务在执行过程中出错,会回滚到事务开始前的状态,就像没发生一样。Consistency,一致性,在事务开始之前和结束之后,数据的完整性没有被破换。所谓数据完整性,是指数据是正确无误的,没有歧义的。如果数据存在自相矛盾,不相容的地方,则其完整性被破坏了。Isolation,隔离性,两个事务的执行是互不干扰的,一个事务不能看到其他事务运行时中间某一时刻的数据。Durability,持久性,事务结束之后,该事务对数据库所做的修改会持久地保存在数据库中,不会 阅读全文
摘要:
两阶段锁协议在数据库系统领域,并发控制机制主要有两种,即锁和多版本机制。1.事务在加锁时有多种方式:一次性锁协议,事务开始时,即一次性申请所有的锁,之后不会再申请任何锁,如果其中某个锁不可用,则整个申请就不成功,事务就不会执行,在事务尾端,一次性释放所有的锁。一次性锁协议不会产生死锁的问题,但事务的并发度不高。两阶段锁协议,整个事务分为两个阶段,前一个阶段为加锁,后一个阶段为解锁。在加锁阶段,事务只能加锁,也可以操作数据,但不能解锁,直到事务释放第一个锁,就进入解锁阶段,此过程中事务只能解锁,也可以操作数据,不能再加锁。两阶段锁协议使得事务具有较高的并发度,因为解锁不必发生在事务结尾。它的不足 阅读全文