cisco路由器与QOS技术
我们传统IP网络只能提供“尽力而为”服务,所有业务流公平的竞争网络资源,很难保证每类业务的通信要求,这也是引发研究QoS的本质原因。
IP QoS在实现的时候,主要分为三种结构模型:尽力而为服务/Best-Effort Service、综合服务/IntServ、区分服务/DiffServ。
Best-Effort Service是一种单一服务模型,也是最简单的服务模型,应用程序可以在任何时候发出任意数量的报文,不需要事先获得批准也不需要通知网络,网络尽最大的可能性来发送报文,但对时延可靠性等性能不提供任何保证,Best-Effort服务是现在Internet的缺省服务模型,通过先入先出/FIFO队列来实现。
Intserv是一个综合服务模型,它可以满足多种QoS需求。这种服务模型在发送报文前,需要向网络申请特定的服务。这个请求是通过信令/signal来完成的,应用程序首先通知网络它自己的流量参数和需要的特定服务质量请求,包括带宽、时延等,应用程序一般在收到网络的确认信息,即网络已经为这个应用程序的报文预留了资源后,发送报文。
网络在收到应用程序的资源请求后,执行资源分配检查(Admission control),即基于应用程序的资源申请和网络现有的资源情况,判断是否为应用程序分配资源。一旦网络确认为应用程序的报文分配了资源,则只要应用程序的报文控制在流量参数描述的范围内,网络将承诺满足应用程序的QoS需求。而网络将为每个流/flow,由两端的IP地址、端口号、协议号确定)维护一个状态,并基于这个状态执行报文的分类、流量监管/policing、排队及其调度,来满足对应用程序的承诺,具有面向连接的特性。因此对网络设备的处理能力有较高要求。传送QoS请求的信令是RSVP(Resource Reservation Protocol),它通知路由器应用程序的QoS需求。
Diffserv即区别服务模型,它可以满足不同的QoS需求。与Integrated service不同,它不需要信令,即应用程序在发出报文前,不需要通知路由器。网络不需要为每个流维护状态,它根据每个报文指定的QoS,来提供特定的服务。可以用不同的方法来指定报文的QoS,如IP包的优先级/Precedence、报文的源地址和目的地址等。网络通过这些信息来进行报文的分类、流量×××、流量监管和排队。
这三种模型中,只有Intserv与Diffserv能提供多服务的IP QoS保障。其中,Intserv具有面向连接的特点,这与IP本身无连接特性是不符合的,容易导致网络的复杂化;在实现的时候,Intserv需要网络对每个流均维护一个状态,因此对设备性能提出更高的要求,另外,还需要全网设备都能提供一致的技术才能实现完整的QoS。而Diffserv则没有这方面的缺陷,且处理效率高,部署及实施可以分布进行。
因此,在实际应用的时候,往往采用Diffserv体系结构。
下面我们主要讲的也就是Diffserv模型的IP QoS:
流量分类是将数据报文划分为多个优先级或类。如使用IP报头的ToS(Type of service)字段的前3位,即IP优先级来标记报文,可以将报文最多分成8类;也可以使用DSCP(Differentiated Services Codepoint)ToS域的前6位,则最多可分成64类。
在报文分类后,就可以对不同的分类应用不同的QoS特性,实现基于类的拥塞管理、流量×××等。
网络管理者可以设置报文分类的策略,这个策略除可以包括IP报文的IP优先级或DSCP值、802.1p的CoS值等带内信令,还可以包括输入接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等。
在数据通信中,通信信道是被多种应用共享的,而且广域网的带宽通常要比局域网的带宽小,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽较小,局域网的数据将不可能按原有的发送速度在广域网上传输。此时 在局域网和广域网之间的路由器上就会发生了拥塞。
当拥塞发生时,如何进行管理和控制呢?方法是使用队列技术,使得报文在路由器中按一定的策略暂时缓存到队列中,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。
不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ、CQ、WFQ、CBWFQ、RTP优先队列等。
FIFO——First-InFirst-Out/先进先出队列,它不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,在队列的出口让报文按进队的顺序出队。这是一种尽力而为的服务。

PQ――Priority Queuing/优先队列,将所有报文依据预先配置分成最多4类,按照FIFO的策略分别进入4个优先级不同的队列。在报文出队的时候,高优先级的队列相对于低优先级的队列具有绝对的优先权,只有高优先级队列报文发送完毕,较低优先级才得到发送,而且较低优先级的报文会在发生拥塞时被较高优先级的报文抢断。因此采用这种队列机制可以保证在网络发生拥塞的情况下,重要业务(设定成高优先级)的数据传输得到绝对的优先传送。但在较高优先级的报文的速度总是大于接口的速度时,会使较低优先级的报文始终得不到发送的机会。

PQ是一种没有量化的QoS/DiffServ服务,只规定了预先规定的高优先权报文,有优先转发的权利。
CQ――Custom Queueing/定制队列,根据设置将所有报文分成最多至16类,然后按照FIFO的策略分别进入1个系统队列和16个CQ队列;此外还有一个0号的系统队列。在出队调度上,系统队列具有绝对的优先权,系统总是先处理完该队列后再用处理用户队列;16个用户队列占用出口带宽的比例可以设置,CQ按定义的比例使各队列之间在占用的接口带宽上满足管理员预先配置的比例关系。当拥塞发生时,CQ能保证不同业务根据比例获得相应的带宽占用,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽,避免PQ的一些缺点。

CQ是为了避免PQ在拥塞时,所有较低优先级的数据都无法发送问题而产生的,这里我们实验的重点也是观察在拥塞发生时,多个队列是如何分享带宽资源的。
WFQ――Weighted Fair Queuing/加权公平队列,对进入路由器端口的报文按流进行分类(相同源IP地址,目的IP地址,源端口号,目的端口号,协议号,TOS值相同的报文属于同一个流),每一个流被分配到一个队列。在出队调度的时候,WFQ根据报文的流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。在拥塞发生时,它能保证任何流量的流(业务),都能公平地得到一定的带宽占用,减少这个网络的时延,并当流(业务个数)的数目减少时,能自动增加现存流可占的带宽。也就是说剩余活动状态的流会根据各自的优先权比例瓜分空闲出来的带宽资源。

路由器的串口中同时存在8个流Sn(n=1~8),它们(流)的优先权Pn(n=1~8)分别为0、1、2、3、4、5、6、7,那么第n个流所占总带宽的比重为:(Pn+1)/∑(Pn+1),如第二个流的所占总带宽的比重为:(1+1)/(1+2+3+ 4+5+6+7+8)=2/36=5.56%。
一个流中,所有ip报文的TOS是相同的,所以某个流的优先权就是流中数据包的TOS值——一般情况下,绝大多数ip包的默认值为0,如下,ToS值为000:

3.2.5 CBWFQ
CBWFQ――Class Based Weighted Fair Queuing/基于类的加权公平队列。对于ip报文,CBWFQ通常根据DSCP、输入端口、ip报文的五要素来对报文进行分类;不同类别的报文分别进入不同的BQ(bandwidth queueing)队列中,如果不能匹配,则进入系统定义的缺省队列;除此以外,还有一个LLQ(low latency queueing),它是一个具有较高优先权的队列,优先权仅次于二层协议队列和RTP优先队列,如图:

在调度出队的时候,如果LLQ中有报文,则总是优先发送LLQ的内容,直到LLQ为空或者超过为LLQ预留的最大带宽时,才发送其他队列中的报文——这一点和CQ的系统队列、PQ的High队列比较类似。
进入LLQ的报文,在接口没有发生拥塞的时候(所有队列中都没有报文),所有属于LLQ的报文都可以被发送;而发生拥塞的时候(队列中有报文时),进入LLQ的报文被限速,超出规定流量/带宽的报文将被丢弃。这样,在接口不发生拥塞的情况下,可以使属于LLQ的报文能获得空闲的带宽,在接口拥塞的情况下,又可以保证属于LLQ的报文不会占用超出规定的带宽,保护了其他报文的应得带宽。另外,只要LLQ中有报文,系统就会发送LLQ中的报文,所以LLQ中的报文被发送的延迟最多是接口发送一个最大长度报文的时间,无论是时延还是时延抖动,LLQ都可以将之降低为最低限度。这为对时延敏感的应用如VoIP业务提供了良好的QoS保证。
BQ队列在调度出队的时候,按用户设定的带宽值将报文出队发送,可以实现各个类的队列的公平调度。当接口中某些类别的报文没有时,BQ队列的报文还可以公平地“分享”空闲的带宽,大大提高了线路的利用率,当然,在拥塞的时候还能保证各类报文得到用户设定的最小带宽。
当不能匹配用户设定的所有类别时,报文会进入系统定义的缺省类,虽然允许为缺省类配置带宽,使其作为BQ类进行基于类的队列调度,但是更多的情况是为缺省类配置WFQ,使所有进入缺省类的报文进行基于流的队列调度。
RTP――Real Time Protocol,这是一种用于解决实时业务(语音、视频等)QoS的简单的队列技术,其原理就是将承载语音或视频的RTP报文送入高优先级队列,使其得到优先发送,保证最小的时延和抖动。

如图,RTP优先队列可以同其他队列结合使用,它的优先级是最高的,不过由于CBWFQ中的LLQ完全可以解决实时业务的QoS问题,所以不推荐RTP与CBWFQ同时使用。
RTP对进入队列的报文进行了限速,超出规定流量的报文将被丢弃,这样在接口拥塞的情况下,也可以保证属于RTP优先队列的报文不会占用超出规定的带宽,保护了其他报文的应得带宽;避免了PQ中高优先级队列的问题。
Queue数 优点 缺点FIFO 1 缺省的队列机制,队列长度配置简单,易于使用;处理简单,物理延迟较小; 所有报文同等对待,报文到来的次序决定了可占用的带宽、延迟和丢包情况; 无法对某类报文进行带宽保证,没有约束力;时间敏感的实时应用(如VoIP)的延迟得不到保证; PQ 4 对不同业务数据提供绝对的优先服务,对实时性的应用(如VoIP)的延迟可以得到保证;对优先业务的报文的带宽占用可以绝对优先; 根据需要配置,处理速度较慢;如果不对高优先级的报文加以带宽限制,会造成低优先级的报文得不到带宽;CQ 16+1 对不同业务的报文按带宽比例分配带宽;预定义的某类报文没有传输时,可自动调配给其他报文可占; 根据需要配置,处理速度较慢; 不适于解决对时延敏感的实时业务;WFQ 自定义 配置简单,报文分类自动完成;可以保护某类数据(流)发送的带宽;可以使延迟的抖动减小;可以为不同优先级的流分配不同的带宽;当流的数目减少时,空余的带宽可自动调配给其他流占用; 处理速度较快(比FIFO慢,但比PQ、CQ要快);不适于解决对时延敏感的实时业务。CBWFQ 0~63 可以按多种方式对数据进行划分,并分别提供不同的服务;可以为进入BQ队列的业务提供严格精确的带宽保证,并且保证各queue之间的比例关系;可以为进入LLQ的业务提供绝对优先的队列调度,确保实时数据的时延,同时对高优先级数据流量限制了带宽上限,克服了PQ的弊病;对于一般的缺省类数据,提供基于WFQ的调度服务; 当配置的类较多时,系统开销会比较大。 RTP - - -
由于路由器、交换机等网络设备的内存资源总是有限,按照传统的处理方法,当队列的长度达到规定的最大值时,后续到来的报文都将被丢弃,对于TCP报文,如果大量的报文被丢弃,会造成TCP超时,从而引发TCP的慢启动和拥塞避免/ 流控机制,使TCP减少报文的发送;当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为“TCP全局同步”,这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,从而减少了线路带宽的利用 。并且,发向队列的报文的流量总是忽大忽小,使线路的上的流量总在极少和饱满之间波动。
为了避免这种情况的发生,队列可以采用WRED/Weighted Random Early Detection加权随机早期检测的报文丢弃策略。 WRED引入IP优先权 DSCP值和MPLS EXP来区别丢弃策略,采用WRED时,用户可以设定队列的threshold/阈值,当队列的长度小于低阈值时,不丢弃报文,当队列的长度在低阈值和高阈值之间时,WRED开始随机丢弃报文,队列的长度越长,丢弃的概率越高;当队列的长度大于高阈值时;丢弃所有的报文。
由于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的“全局同步”现象,即便当某个TCP连接的报文被丢弃,开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。
但是,如果直接采用队列的长度与用户设定的阈值比较并进行丢弃,将会对突发性的数据流造成不公正的待遇,不利于数据流的传输;所以,在与设定的阈值比较并进行丢弃时,采用队列的平均长度,它既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性的数据流造成不公正的待遇。
WRED可以感知QoS的带内信令,包括IP优先级DSCP 和MPLS EXP,可以为不同IP优先级DSCP或MPLS EXP的报文设定不同的队列长度滤波系数、队列阈值、丢弃概率等,从而对不同优先级的报文提供不同的丢弃特性。
WRED和队列机制的关系如下图所示:
3.4 流量监管与×××
流量监管(Traffic Policing)的典型作用是限制进入某一网络的某一连接的流量与突发情况。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文、或重新设置报文的优先级等,通常的用法是使,CAR来限制某类报文的流量。
流量×××(Traffic Shaping)的典型作用是限制流出某一网络的某一连接的流量与突发情况,使这类报文以比较均匀的速度向外发送。流量×××通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。

CAR――Committed Access Rate/约定访问速率。网络管理者可以使用CAR来对流量进行控制。CAR是利用TB/Token Bucket令牌桶来进行流量控制。

图为CAR利用令牌桶原理进行流量控制的过程:首先,根据预先设置的匹配规则来对报文进行分类,如果是没有规定流量特性的报文,就直接继续发送,并不需要经过令牌桶的处理,如果是需要进行流量控制的报文,则会进入令牌桶中进行处理,如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过 报文可以被继续发送下去,如果令牌桶中的令牌不足,则报文被丢弃。
令牌是按照一个用户设定的标准的速率往桶中不断存放的。这样,就可以对某类报文的流量进行控制。
当然令牌桶的容量也是由用户设置的,超出桶的容量的时候,令牌的量不再增加。 最终可以通过设置往令牌桶中存放Token的速率来控制路由器发送某类报文的速率。
GTS――Generic Traffic Shaping/通用流量×××,可以对不规则或不符合预定流量特性的流量进行×××,以利于网络上下游之间的带宽匹配。
与CAR一样,GTS也采用了令牌桶技术来控制流量,它们的主要区别在于,利用CAR进行报文流量控制时,对不符合流量特性的报文进行丢弃,而GTS对于不符合流量特性的报文则是进行缓冲,减少了报文的丢弃,同时满足报文的流量特性。

GTS可以对接口上指定的报文流或所有报文进行×××,当报文到来的时候,首先对报文进行分类,如果报文不需要进行处理,就继续发送;不需要经过令牌桶的处理,如果报文需要进行GTS处理,则与令牌桶中的令牌进行比较,令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去;同时,令牌桶中的令牌量按报文的长度做相应的减少。
当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中,当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报文不能再发送、或是队列中的报文全部发送完毕为止――这样就能减少报文的丢失。
LR――Line Rate/物理接口总速率。在一个物理接口上,可以通过LR限制接口发送所有报文的总速率。
LR的处理过程仍然是采用令牌桶进行流量控制,如果用户在路由器的某个接口上配置了LR,规定了流量特性,则所有经由该接口发送的报文首先要经过LR的令牌桶进行处理,只有当令牌桶中有足够的令牌时才能发送报文,否则就强制进入QOS队列进行拥塞管理,这样,就可以对通过该物理接口的报文流量进行控制。

相较于CAR,LR能够限制在物理接口上,对通过的所有报文生效,而CAR则是在IP层实现的,对于不经过IP层处理的报文不起作用;而较之于GTS,LR不但能够对超过流量限制的报文进行缓存,并且能利用QoS丰富的队列来缓存报文,而GTS则是将报文缓存在GTS队列中。同样,GTS也是是在IP层实现的,所以对不经过IP层处理的报文不起作用。
链路效率机制,用于改善链路的性能,间接提高网络的QoS 。如降低链路发包的时延、调整有效带宽等。目前主要有LFI和IPHC两种链路效率机制。
LFI――Link Fragment & Interleave/链路分片与交叉。对于低速链路,即使为语音等实时业务报文配置了高优先级队列,如RTP或LLQ,也不能够保证其时延与抖动,原因在于接口在发送其他数据报文的瞬间,语音业务报文还是只能等待。而且低速接口发送较大的数据报文要花费相当的时间,如果采用LFI数据报文,非RTP、LLQ报文在发送前被分片,逐一发送。而此时如果有语音报文到达,则被优先发送,从而保证了语音等实时业务的时延与抖动。
当然,LFI主要用于低速链路。

如图,启用LFI后,在大报文出队的时候,可以将其分为定制长度的小片报文, 这就使RTP、LLQ的报文等待的时间大大缩短。
IPHC――IP Header Compression/IP报文头压缩,主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到2~4个字节,如果不使用校验和,可压缩到2字节,从而提高链路的利用率,IPHC主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。
RTP协议用于在IP网络上承载语音、视频等实时多媒体业务,RTP报文包括数据部分和头部分,RTP的数据部分相对小,而RTP的头部分较大,12字节的RTP头,加上20字节的IP头和8字节的UDP头,就是40字节;而RTP典型的负载是20字节到160字节,为了避免不必要的带宽消耗,可以使用IPHC特性对报文头进行压缩。
IPHC可以将IP/UDP/RTP头从40字节压缩到2~5字节,效果是相当可观的,可以有效的减少链路,尤其是低速链路带宽的消耗。
在具体实现上面,BDCOM不仅对IP head可以压缩,其他的一些“头”同样可以压缩,从而提高传输效率;主要包括DLC、CTCP、CRTP等,他们分别针对Data Link、TCP、RTP的头进行压缩的。
BDCOM在提供CTCP功能的时候,除了cisco-format模式以外,还同时提供IPHC-format、Passive等模式;另外还支持CRTP功能,这是专门对低速PPP链路RTP报文进行压缩,它们在原理和使用上面都大同小异,这里就不一一详述了。
除了报头压缩,BDCOM路由器还支持DLC报文压缩。
前面介绍了关于QoS的很多技术要点,但它们都是零散的知识点,在实际的网络环境中它们是怎样协同工作的呢?请看下图:

原始的报文序列在进入路由器、交换机等网络设备的设备的时候:
A首先需要根据ip包的源/目的ip地址、源/目的端口、协议类型、TOS等参数进行分类(CLASS);
B 然后在根据这些不同CLASS的报文进行CAR、GTS、WRED等操作,这些工作主要是通过令牌桶技术来完成的;
C 然后,这些经过预处理过的报文,根据自身的特点,安排进入不同的优先队列中进行排队;
D 网络设备根据各个队列的优先权,进行报文的出队调度,最终实现QoS的DiffServ。
转载于:https://blog.51cto.com/saner/143201
相关文章:

shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
2019独角兽企业重金招聘Python工程师标准>>> shell介绍 shell是一个命令解释器,提供用户和机器之间的交互; 支持特定语法,比如逻辑判断、循环; 每个用户都可以有自己特定的shell; CentOS7默认shell为bash (…

2018年Python开源项目Top100!只在这里!
整理 | Jane出品 | Python大本营2018 年的最后一天,营长为大家新鲜出炉了一份 2018 年 Python 开源项目 Top100 清单!这些项目都是营长每月通过收集 Mybridge 的数据整理而来的,是不是很棒!(我要在留言区看到你们夸我~…

亲君圆梦,创业一起来
你想像中的创业,是不是办公地点找好了吗?需要注册公司一步一步来呢做哪个行业好呢有没有什么赚钱的项目呢没有你想的那么困难只需要一部手机发个链接点一下 玩一年 创业不花一分钱 校园创业 只需动动手指想要带你一起赚钱一起飞吗?我在厦门亲…

半途而废的香山之旅
今天终于下定决心去香山了!大清早,就和同学小燕两个人买好了路上吃的东西。顶着北京早晨凉爽但有点阻的风骑车自行车向香山的方向进发了!这是我第一次去香山,路线也只能是摸索了!我本来是准备从北四环西路一直往西骑,然…

POwershell 更改文件权限
今天需要给某个网络共享的大文件重新配置一个权限。这个文件夹下面有很多乱七八糟的小文件,很多创建人甚至已经离开公司了。如果一个个地目录手动修改所有者权限,再打开继承关系,这样比较麻烦,这个时候自然是用脚本比较方便了。 1…

“清华帮”AI造富
作者 | 马程;编辑 | 罗丽娟来源 | 全天候科技【导语】如今的AI创业者中,有一大批人出自精英汇聚的 “姚班”和清华的各个院系。他们们凭借技术傍身迅速打造出一批AI独角兽,但在发展过程中,他们又不得不面对资本的压力,…
什么时候是创业最佳时机?7个最佳的励志创业时机GET了吗
1、年轻时人们常说“出名要趁早”,创业也是同样的道理,创业越早,成功的几率就越大。年轻是一种巨大的财富,是无知和天真的完美结合,吸取经验可以作为愚蠢决定的借口。有人说,和职业篮球运动员一样ÿ…

连接ORACLE实例
public class OracleConn {public static Connection getConn() {Connection conn null;try {Class.forName("oracle:jdbc.driver.OracleDriver");String url "jdbc:oracle:thin:localhost:1521:数据库SID";String user "数据库用户名";String…

用Inno Setup来解决.NetFramework安装问题
前段时间朋友接了一个项目,具体是开发一个安装在局域网内的软件,这个软件会定时连接局域网内的服务器来更新本地客户端的一些信息,因为在局域网内存在着多种不同的Windows版本,从WindowsXP、Windows2003及Windows2008到Windows7等…
我想,有间花房
你带我走进你的花房,我无法逃脱花的清香,我不知不觉忘记了方向,你说我世上最坚强,我说你世上最善良,你不知不觉和花儿一样也许每一位 爱花的姑娘,都想有一间属于自己 的花 房 ,在悠闲的午后&…

JS重写提示框(confirm)
<script language"javascript"> /** * 功能:显示提示窗口 * 作者:申楠 qq:38371354 email:amushen1yahoo.com.cn http;//amushen.cnblogs.com * 日期:2005-10-26 * 版本:1.1 * 备注&#…

实现通用人工智能还要多久?Hinton与AlphaGo之父这样回答
作者 | Klye Wiggers 译者 | 刘旭坤 责编 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 人工智能(AI)在即将过去的 2018 年进展神速,取得了很多令人瞩目的成就,比如预测用户感兴趣的音乐…

SQL Server 2008备份大全实战(七)
这一篇博文探讨下SQL Server 2008 备份的实际操作,事实上SQL Server 2008并不关心数据是备份到物理磁盘上还是磁带上,在SQL Server 2008数据库备份中,预定义的目标位置叫做设备。这里设备是对硬盘,磁带机等备份存储的通称。通俗些…

一个中心、三大原则,阿里这样做智能对话开发平台
作者 | 阿里巴巴高级算法专家 李永彬(水德)整理 | 一一出品 | AI科技大本营在阿里巴巴的X峰会上,阿里巴巴-智能服务事业部高级算法专家李永彬(水德)分享了小蜜智能开发平台的构建,他围绕平台来源、设计理念…
大学生目前普遍存在的问题,看你中招了没?
大学几多歌 上课时清醒没有发呆的多,发呆没有睡觉的多,睡觉没有玩手机的多。下课时自习没有吃零食多,吃零食没有看连续剧多,看连续剧没有游戏多。吃饭时吃早餐的没有吃午餐/晚餐的多,吃午餐/晚餐的没有点外卖的多。听讲…

javascript用感
最近两天一直与javascript打交道,现在想总结下所有值处 以下类型都是自己概括别名 1.创建型 例子: var objdocument.createElement("div");//例如创建个DIV var div1document.createElement("div"); div1.id"ddv"; div1.style.w…

Vulkan Tutorial 12 Fixed functions
Vertex input VkPipelineVertexInputStateCreateInfo结构体描述了顶点数据的格式,该结构体数据传递到vertex shader中。它以两种方式进行描述: Bindings:根据数据的间隙,确定数据是每个顶点或者是每个instance(instancing) Attribute 描述:描述将要进行…

年后跳槽BAT必看:10种数据结构、算法和编程课助你面试通关
作者 | javinpaul译者 | 大鱼编辑 | 一一出品 | AI 科技大本营进入 BAT 这样的巨头企业工作,无疑是很多程序员的梦想。但事实上,能通过这些公司高难度编程面试的只是一小撮人,大多数人因为理论知识和项目实践的匮乏导致在面试后很快被淘汰&am…

戚薇在冰箱放香水,是贫穷限制了想象力!
前有李诞冰箱里放面膜,今有戚薇冰箱里放香水,《拜托了冰箱》真是为观众们打开了新世界的大门。在昨晚播出的节目中,戚薇充分展现了她作为“美妆博主”的实力,冰箱里摆满的香水不仅让冰箱家族看得目瞪口呆,网友们也是激…

使用apache的activemq集合JMS处理异步消息
为什么80%的码农都做不了架构师?>>> 1:先去apache下载 http://activemq.apache.org/ ,大约有25M,要有点耐心 直接打开就可以使用;当然它也提供了安装为windows service的方法 2:配置activemq 在…
中国大学生创业报告发布
由中国人民大学牵头,北京师范大学、上海交通大学等30余家高校、企业和社会组织联合跟踪调查的《2017年中国大学生创业报告近日发布。这份覆盖全国52所高校的报告表明,大学生创业意愿持续高涨,大学生创业层次也在不断提升,但大学生…

windows server 2012 application control policy
启用Application Control policy 组策略设置,可以实现基于用户或组的应用程序权限控制,有两点需要注意: 1、策略的顺序是从上到下执行的,allow的策略需要放在上面。 2、在客户端上,或者在远程桌面的服务器上需要启用ap…

你已经是个成熟的表格,该学会NLP了
作者 | 唐都钰、孙一博来源 | 微软亚洲研究院AI头条编者按:在我们的生活中,用语音查询天气,用必应搜索信息,这些常见的场景都离不开一种应用广泛的数据存储方式——表格(table)。如果让表格更智能一些&…

[Design] Flyweight Pattern
结构模式 结构模式描述如何将类或者类的对象结合在一起形成更大的结构。 结构模式描述两种不同的东西:类与类的实例。结构模式可以分为:类的结构模式和对象的结构模式两种。 类的结构模式:类的结构模式使用继承来把类、接口等组合在一…

网友们票选的2018 Best Paper,你pick谁?
整理 | 琥珀出品 | AI科技大本营不久前,Reddit 机器学习论坛上一位网友发布了一个帖子:“What is the best ML paper you read in 2018 and why?(你认为 2018 年读过的最好的论文是哪篇?)”吸引了各路网友前来回答。营…
微信小游戏创业,究竟是红海还是死海?
“跳一跳”、“弹球王者”、“海盗来了”、“斗地主”等等微信小游戏,你是不是很眼熟呢?这些都是前段时间被刷了屏的小游戏,以“海盗来了”为例,据透露,其月流水已经突破了 1000 万,单日流水峰值也达到了 2…

OSPF中的frame-relay(3) 点到多点非广播
hostname R1!interface Loopback0 ip address 1.1.1.1 255.255.255.255interface Serial0 ip address 192.168.1.1 255.255.255.0 encapsulation frame-relay ip ospf network point-to-multipoint non-broadcast //将接口类型指定为点对多点非广播 frame-relay map ip 192.1…

一步一步SharePoint 2007之十六:注册并配置一个网站用户
在前面的文章中,我已经介绍了如何创建管理帐户。创建其它帐户的方法是一样的。大家可以把这个注册系统放到自己的网站中,就可以成为网站的一部分了。本文将只讲解如何在管理工具中将用户手动加入到网站用户组中,至于如何将注册完后的用户自动…
Facebook再曝数据丑闻删除应用数据仍会被泄漏
据外媒报道,道德黑客、漏洞赏金猎人Inti De Ceukelaire于昨日披露,名为“NameTests”的第三方测验应用令1.2亿Facebook用户面临数据泄露风险,这进一步时使Facebook的数据丑闻升温。道德黑客Inti De Ceukelaire发现,只要用户注册Na…

榨菜肉丝汤的做法
<!-- /* Font Definitions */ font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} font-face {font-famil…