qos优先级phbexp浅解-ddzhu的专栏-csdn博客

qos优先级phbexp浅解-ddzhu的专栏-csdn博客
qos优先级phbexp浅解-ddzhu的专栏-csdn博客

QOS 优先级PHB,EXP,浅解- ddzhu的专栏- CSDN

博客

QOS 优先级PHB,EXP,浅解收藏

这两天在看QOS内容,其中涉及到PHB到EXP的映射,以及EXP到PHB的映射,有点不懂PHB是指哪一段,于是上网查找,结果找到:PHB是指IP包内原TOS字段(现DSCP字段),到PHB的映射关系,具体见下,而EXP当然是指MPLS包内的优先级,COS指的就是8100VLAN中的PRI字段;但是我组的人又说,我们只处理二层的内容,宏定义上的PHB指的是三层的,而我们这里单盘配置中的PHB指的就是宏定义上的COS,如果业务是基于端口的,无COS的话,则具体指的就是芯片中的队列优先级~~于是我有点晕了。

将PHB,EXP,COS的相关内容(我认为有用的)贴上。最早,用IPv4中的TOS字段来实现QoS,TOS字段一共8bit,最高bit固定为0,最低3bit代表优先级,中间的四个bit分别是DTRC,分别表示延迟、吞吐量、可靠兴和花费,路由器在实施QoS时只检查优先级字段,其余bit均不做检查。

随后,RFC2474对IPv4的TOS字段进行了重新定义即

DSCP:最高2bit保留,最高2bit表示CSCP(是一类DSCP)。DSCP一共64个代码空间,其中XXXXX0是标准操作,其余代码点未开放使用。

PHB(Per-hop Behavior),是路由器作用于数据流的行为。四种标准的PHB如下:

类选择码CS,对应DSCP为XXX000

加速转发EF

确保转发AF,分为AF1、AF2、AF3和AF4

尽力而为BE

DSCP和PHB的映射关系(由运营商自己指定?)

BE DSCP=000000

EF DSCP=101110

AF1 DSCP=001XXX

AF2 DSCP=010XXX

AF3 DSCP=011XXX

AF4 DSCP=111XXX

IPv4优先级和DSCP以及PHB的对应关系

IP优先级DSCP PHB

0 000000 BE

1 001000 AF1

2 010000 AF2

3 011000 AF3

4 100000 AF4

5 101000 EF

6 110000 EF

7 111000 EF

QoS使用的字段:

MPLS中的EXP字段、VLAN中的COS(PRI)字段和IP中的DSCP字段或优先级字段

1. 分类和标记

Qos分类是一种标识流量并将流量归类为不同类别的Qos 处理过程或机制。

常见的流量标识符:

1、入接口

2、ISL或者802.1p帧中的Cos值

3、源IP地址或目的IP地址

4、IP包头中的IP优先级或DSCP值

5、MPLS头中的MPLS EXP值

6、应用类型

常见的二层标记

Cos(位于ISL或802.1p帧)、EXP(位于MPLS头,介于二层与三层之间)、DE(位于帧中继头)以及CLP(位于ATM信元头)

常见的三层标记

IP优先级或DSCP(位于IP头)

1.1二层Qos:80

2.1Q/P以太帧中的Cos

以太网802.1Q/P帧

前导码SFD DA SA 802.1Q/P 类型数据FCS

802.1Q/P字段格式

TPID 0X8100 16比特

PRI 3比特

CFI 1比特

VLAN ID 12比特

长度为4字节的802.1Q帧头字段插在源MAC地址之后,其中有一个用于中继功能的VLAN ID字段,还有一个被称为Cos(802.1p)的3比特用户优先级字段(PRI),Cos 用于Qos机制,可以提供8种可选值。如下表

Cos(比特) Cos(十进制) IETF RFC791 应用

000 0 Routine(常规) 尽力而为数据

001 1 Priority(优先) 中等优先级数据

010 2 Immediate(紧要) 高优先级数据011 3 Flash(快速) 呼叫信令

100 4 Flash-Override(最快速) 视频会议101 5 Critical(关键) 语音荷载

110 6 Internet(网络互连) 保留

111 7 Network(网络) 保留

1.2二层Qos:DE和CLP

帧中继帧

标志

帧中继头

信息

FCS

标志

帧中继头

DLCI

C/R

EA

DLCI

FECN

BECN

DE

帧中继头部中的FECN(前向显示拥塞指示),BECN(后向显示拥塞指示)和DE(可丢弃)字段就被用于拥塞的指示和丢弃优先指示。

帧中继中的1比特DE字段和ATM信元中的1比特CLP都用来向中间交换机表明该数据单元不是候选被丢弃单元(DE 或者CLP为0),或者是候选被丢弃单元(DE或者CLP为1)。

1.3二层Qos:MPLS EXP字段

MPLS包就是增加了一个或多个长度为4字节的MPLS头的IP包,增加了MPLS头后的IP包在传送之前需要被封装在二层PDU中,因而常常将MPLS头称为SHIM (”垫片”)或2.又2分之一层头。

MPLS头中的EXP字段用于Qos,其3比特长度也是为了与IP头中的3比特IP优先级字段以及802.1Q头中的3比特PRI字段相兼容。

DA

SA

类型x8847

Label

Exp

TTL

IP包

48比特

48比特

16比特

20比特

3比特

1比特

8比特

默认情况下,当IP包进入MPLS网络时,边缘路由器会将IP包头ToS(Type of Service,服务类型)字节中最高3位复制到MPLS头中的EXP字段中,其中,IP包头ToS字节中的最高3位称为IP优先级比特。

除了自动复制IP优先级的数值之外,MPLS边缘路由器的网络管理员还可以再边缘路由器上手工将EXP设定为期望值。

•2. DiffServ模型以及DSCP和PHB

在DiffServ模型的体系架构中,建议尽可能地在最靠近源端

的位置进行流量分类和流量标记。过去一般都使用IP优先级比特来标记IP包,但目前认为标记IP包的标准方法就是标记IP头中的DSCP比特。

在DiffServ框架中,需要设置IP包头中的DSCP值以选择PHB(每跳行为)。

PHB就是外部可察觉的网络节点对一组具有相同DSCP值的IP包的转发行为。具有相同DSCP值的一组数据包将从DiffServ节点处得到相同的PHB,称为BA(行为聚合)。2.1 IP优先级和DSCP

最初的IP Qos基于RFC791,将IP包头中的Tos 字节的最高3位称为IP优先级比特,3个IP优先级比特可以提供8种配置选择,类似二层的Cos。

新的IP Qos机制重新将ToS字节定义为差分服务,从而提供了更灵活、更强大的Qos能力。DiffServ字段中的最高6位称为DSCP,余下的2位用于流控制,称为ECN (显示拥塞指示)比特。DSCP与IP优先级后向兼容。

目前DSCP值的定义中包括以下4类PHB:

1、类别选择PHB。此时DSCP的最后3位为000,类别选择PHB提供了与基于Tos的IP优先级的后向兼容能力。

非兼容DSCP —- 兼容DSCP 网络设备,双方配置成仅处理和理解IP优先级比特。

兼容DSCP —不兼容DSCP 网络设备,仅设置DiffServ

字段的高3位,等同于IP优先级字段,其余比特均被置0。

2、默认PHB。此时Diffserv/DSCP字段的最高3位为000。默认PHB用于尽力而为(BE)服务。

3、AF PHB。此时DSCP字段最高3位为001、010、011、100(分别被称为AF1、AF2、AF3、AF4)。AF确保转发

4、EF PHB。此时DSCP字段的最高3位为101(整个DSCP 字段为101110,即十进制46)。EF PHB用于提供低时延服务。EF快速转发

ECN

ECN

类型选择PHB

-

-

-

默认PHB 0

-

-

AF

PHB

1

- 0

0 1 0 - - 0

0 1 1 - - 0

1

-

-

EF PHB

1

1

1

1

EF PHB提供的是低时延服务,应该具有最低的抖动和丢包

率,因而必须限制EF的专用带宽,以免其他服务得不到可用带宽。在实际使用EF PHB的过程中要记住以下3点:

1、关注最小化时延

2、能够提供带宽保证。

3、在网络出现拥塞时,EF会监管带宽。

AF PHB为4中类别提供了4种队列(AFxy):AF1y、AF2y、AF3y、AF4y。每种队列都有一个预定义的保留带宽,当某个特定队列上的流量超出了为该队列预留的带宽时,队列就会产生拥塞并引发丢包。

DSCP(十进制)=8x+2y

丢弃概率

类别1

AF11 DSCP 10 (001010)

AF12 DSCP 12 (001100)

AF13 DSCP 14 (001110)

类别2

AF21 DSCP 18 (010010)

AF22 DSCP 20 (010100)

AF23 DSCP 22 (010110)

类别3

AF31 DSCP 26 (011010)

AF32 DSCP 28 (011100)

AF33 DSCP 30 (011110)

类别4

AF41 DSCP 34 (100010)

AF42 DSCP 36 (100100)

AF43 DSCP 38 (100110)

3.Qos服务类别

1、标识流量类型及其需求

2、基于所标识的需求信息进行流量分类

为一种或几种类型的流量创建的服务类别就是一个BA。通常定义为以为下4种

A、关键任务性

B、事务型

C、尽力而为型

D、清道夫型

3、为每种服务类别定义相应的策略不同标记到不同流量类型的映射Cisco AutoQos

类别

二层Cos或IP优先级

DSCP值

十进制

DSCP值

二进制

代码名

尽力而为

000000

BE

清道夫

8

001000

CS1(类别选择1)

批量数据

1

10

001010

AF11

12

001100

AF12

14

001110

AF13

网络管理

2

16

010000

CS2(类别选择2) 电话信令

26

011010

AF31

本地关键

任务

3

28

011100

AF32

30

011110

AF33

流媒体流量

4

32

100000

CS4(类别选择4)

交互式

视频

流量

4

34

100010

AF41

36

100100

AF42

38

100110

AF43

交互式语音荷载流量5

46

101110

EF

4.信任边界

影响信任边界的因素:

1、被信任设备必须在网络管理员的管理和控制之下,至少要能确信其流量标记与网络的Qos策略一致。

2、不同设备在检查和设置/重置不同Qos标记方面的能力和特征集是不一样。

信任边界通常位置:

1、端系统

2、接入层交换机

3、分布层交换

5.NBAR

NBAR(Network Based Application Recognition,基于网络的应用识别)是Cisco IOS提供的一个功能特性,可以完成以下3项工作:

1、协议发现

2、流量统计汇总

3、流量分类

NBAR协议发现:要想发现通过某接口的网络流量,可以在该接口上应用NBAR协议发现机制。而且NBAR还可以报告包括输入/输出数据包总数和字节数以及输入/输出比特率等在内的流量统计信息。

NBAR PDLM:通过Cisco Sytems提供的PDLM文件加载到网络设备上,可以扩展NBAR所能支持的协议列表,并增强NBAR现有协议识别能力,加载PDLM不需要重载路由器设备。

NBAR应用支持:NBAR可以发现并分类使用静态端口的应用类型以及使用动态分配端口的应用类型。NBAR可以通过深度包检测进行流量分类,例如,NBAR可以基于URL,MIME 类型和RTP净荷类型进行流量分类。如果要使用NBAR功能,必须首先在该设备的接口上开启CEF。

NBAR使用限制

1、不支持FastEtherChannel逻辑接口

2、最多同时处理24个URL,主机或MIME类型

3、只能分析数据包的前400字节

4、仅支持CEF,不支持其他交换模式

5、不支持组播包,分段包以及安全HTTP

6、不能分析和识别发往运行了NBAR的路由器的流量或从运行了NBAR的路由器发出的流量。

发表于@ 2010年10月29日11:08:00 | 评论( 0 ) | 编辑| 举报| 收藏

Tomcat配置连接池常见错误及解决 - 天涯浪子 - CSDNBlog

Tomcat配置连接池常见错误及解决- 天涯浪子- CSDNBlog Tomcat配置连接池常见错误及解决收藏 1 、Cannot create JDBC driver of class '' for connect URL '' 问题:找不到jdbc 驱动,但是提示信息里的class 值为null ,所以,可以断定Tomcat 没有找到Server.xml 里的Resource 配置信息。可能的原因包括: (1 )没有配置Resource ; (2 )Resource 配置信息放置的位置错误。 (3 )一个不容易发现的错误,driverClassName 和url 拼写错误。 解决办法:确认Resource 配置正确,并且必须放在DefaultContext 或者Context 配置节内。 2 、Cannot create JDBC driver of class 'xxx' for connect URL '' 解决办法:配置的数据库驱动类名xxx 是错误的,检查并修改即可;如果确认正确,那就是找不到驱动库,拷贝一个jar 到Tomcat/common/lib 中即可。 3 、Cannot create JDBC driver of class '' for connect URL 'xxx'

解决办法:配置的url 字符串语法是错误的,检查后修改即可。 4 、Cannot create PoolableConnectionFactory, cause: Io 异常: Connection refused 问题:无法创建连接池工厂对象,原因是连接被拒绝。 解决办法:检查url 字符串,可能服务器地址、端口、数据库名或者数据库实例名等信息错误。修改。 5 、No suitable driver 没有匹配的驱动 分析:驱动程序配置错误,请确认Tomcat 的common/lib 子目录中是否有数据库驱动jar 。 6 、Cannot create resource instance 无法创建数据源实例 问题:找不到commons-dbcp-1.1.jar (版本可能不同) 解决办法:复制commons-dbcp-1.1.jar 库文件到 Tomcat/Common/lib 子目录中。 7 、root cause : https://www.360docs.net/doc/a417975879.html,ng.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList 问题:找不到commons-collections.jar 。

c实现treeview动态显示树形结构aries524的专栏csdn博客

C#实现TreeView动态显示树形结构- aries524的专栏- CSDN博客 C#实现TreeView动态显示树形结构收藏 https://www.360docs.net/doc/a417975879.html,/aries524/archive/2008/10/03/3013411. aspx 今日因需要,制作了一个GridView显示树形结构的例子,查阅了不少资料,实现的过程很艰辛啊。 不具体代码拿出来,大家分享一下。 数据表的创建: CREATE TABLE [crm_treemenu] ( [i_Id] [int] NOT NULL , [c_mkdm] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [v_mkmc] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [v_cdlj] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [v_img] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [i_xh] [int] NULL ,

[i_childNum] [int] NULL , [IsBasic] [char] (1) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_crm_treemenu_IsBasic] DEFAULT (1), [IsMaintainable] [char] (1) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_crm_treemenu_IsMaintainable] DEFAULT (0), [C_BS] [char] (1) COLLATE Chinese_PRC_CI_AS NULL , CONSTRAINT [PK_CRM_TREEMENU] PRIMARY KEY CLUSTERED ( [i_Id] ) ON [PRIMARY] ) ON [PRIMARY] GO 存储过程 SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ALTER procedure ShowPrivilege as

驱动SYS开发总结 - stretch的专栏 - CSDNBlog

驱动SYS开发总结 1.驱动简介 1.1.驱动是什么 计算机的外部设备需要和计算机进行数据交换,生产外部设备的厂家如何使计算机和自己的设备交换数据呢,就是通过驱动程序,从设备中读入到计算机中,早期的Win3.1,Win9x设备驱动是vxd,Win NT是kdm, Win2k 统一发展成wdm模式。 1.2.sys文件 sys文件是驱动程序的可执行代码,其扩展名为.sys,驱动程序安装后保存在windows/system32/drivers目录中。 对于PnP设备,在设备插入后,sys文件会被windows装载到内存中,系统线程调用sys中的函数来和设备进行通信。 1.3.inf文件 inf文件是安装设备驱动程序时必须使用的文件,其扩展名为 .inf,驱动程序安装后保存在windows/inf目录中。 系统使用一个扩展名为INF的文本文件来控制与安装驱动程序相关的大部分活动。INF文件应该由驱动程序开发人员随驱动程序一起提供。通过INF文件可以告诉操作系统哪一个文件需要复制到用户硬盘上,应该增加或修改哪一个注册表项,如此等等。 inf中提供产品设备的产品id,以及对应的sys文件名,驱动class名, class guid, https://www.360docs.net/doc/a417975879.html,b-client driver HOST 与DEVICE, ENDPOINT与PIPE 我们进行的USB驱动开发大多数是usb-client driver,系统厂商大多数都已经把USB类驱动做好,我们则是在类驱动之上开发针对自己设备的驱动,习惯上称做usb-client driver,其在整个软件构架中地位如下:UHCD--USBD--USB CLIENT DRIVER--DLL OR APP usb-client driver仍然遵守WDM模型,是WDM驱动。因为要支持PnP,所以要很小心的处理自己的资源以及IRP, 随时准备处理拔出或者插入设备的情况; 电源处理不当也会使系统无法唤醒。 需要了解的知识:wdm,usbdi,our usedevice, wdm: 目标: a, 能提供接口函数, b, 能实现pnp,电源消息处理,wmi,i/o等处理, usbdi: urb,irp,等时,中断,控制,批传输的概念

csdn博客

1./** 2. * 获取手机信息 3. */ 4.public void getPhoneInfo() 5. { 6. TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEP HONY_SERVICE); 7. String mtyb = android.os.Build.BRAND;// 手机品牌 8. String mtype = android.os.Build.MODEL; // 手机型号 9. String imei = tm.getDeviceId(); 10. String imsi = tm.getSubscriberId(); 11. String numer = tm.getLine1Number(); // 手机号码 12. String serviceName = tm.getSimOperatorName(); // 运营商 13. tvPhoneInfo.setText("品牌: " + mtyb + "\n" + "型 号: " + mtype + "\n" + "版 本: Android " + android.os.Build.VERSION.RELEASE + "\n" + "IMEI: " + imei 14. + "\n" + "IMSI: " + imsi + "\n" + "手机号 码: " + numer + "\n" + "运营商: " + serviceName + "\n"); 15. } [java]view plaincopy 1./** 2. * 获取手机内存大小 3. * 4. * @return 5. */ 6.private String getTotalMemory() 7. { 8. String str1 = "/proc/meminfo";// 系统内存信息文件 9. String str2; 10. String[] arrayOfString; 11.long initial_memory = 0; 12.try

数据挖掘决策树java

import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Iterator; //选自csdn博客 //决策树的树结点类 class TreeNode { String element; //该值为数据的属性名称 String value; //上一个分裂属性在此结点的值 LinkedHashSet childs; //结点的子结点,以有顺序的链式哈希集存储 public TreeNode() { this.element = null; this.value = null; this.childs = null; } public TreeNode(String value) { this.element = null; this.value = value; this.childs = null; } public String getElement() { return this.element; } public void setElement(String e) { this.element = e; } public String getValue() { return this.value; } public void setValue(String v) { this.value = v; } public LinkedHashSet getChilds() { return this.childs; }

老破车的Endnote教程(下)--杂项篇-刀目村的专栏-CSDNBlog(精)

老破车的Endnote教程(下)--杂项篇 - 刀目村的专栏 - CSDNBlog 说明:本教程在写作过程中,参考了大量丁香园热心战友的帖子,并从中受益良多。在此向他们致以真诚的谢意本篇是和heyu666战友合作完成的,请把帖子往下翻,从5楼开始是heyu666兄所翻译的endnote官方网站常见问题解答,对于我们使用endnote很有帮助,谢谢heyu666兄的辛勤劳动本教程分三部分,另两部分为(上)基础篇和(中)应用篇在这个部分里,我们将对我们丁香园里面endnote相关讨论作一个不全面的总结,并对一些问题提出解决方案。需要说明的是,由于这些帖子基本都是老帖子,所以请各位战友不要回复,那样会把老帖子都顶上来,影响浏览和交流,谢谢合作一、丁香园endnote相关资源总结1 学习教程类一份非常不错的endnote学习教程(比我上传的那个强多了) /bbs/post/view?bid=10&id=827075&tpg=1&ppg=1&sty=1&age=0#827075把pubmed的结果导入到endnote的flash教程 /bbs/post/view?bid=45&id=886174&tpg=1&ppg=1&sty=1&age=0#886174/bbs/po st/view?bid=45&id=886177&tpg=1&ppg=1&sty=1&age=0#886177把ovid的结果导入到endnote的flash教程 /bbs/post/view?bid=10&id=894805&tpg=1&ppg=1&sty=1&age=0#894805使用endnote的经验,这2篇帖子是dxy里对endnote阐述比较全面的了,不妨看看,尤其是第2篇 /bbs/actions/archive/post/12693_1.html/bbs/post/view?bid=45&id=963348 &tpg=1&ppg=1&sty=1&age=0#963348在word里使用脚注和尾注管理参考文献的方法(这个有点跑题,不过也是个不错的方法,大家可以学习一下) /bbs/post/view?bid=45&id=300739&tpg=1&ppg=1&sty=1&age=0#300739whom战友对endnote的介绍/bbs/post/view?bid=10&id=1265139&tpg=1&ppg=1&sty=12 使用技巧类如何使用endnote管理pdf全文,有2种方法,插入对象及使用连接 /bbs/actions/archive/post/224298_1.html/bbs/post/view?bid=10&id=87489 2&tpg=1&ppg=1&sty=1&age=0#874892注:还是推荐插入对象方法,尽管没有节省硬盘空间,但是就算原来的pdf文件被删除了,也能正常管理。只是备份的时候别忘了备份data文件夹,具体见这个帖子 /bbs/post/view?bid=10&id=1093688&sty=1&tpg=2&age=0以及这个贴子的讨论/bbs/post/view?bid=10&id=1430108&tpg=1&ppg=1&sty=1官方网站的style下载地址,也就是输出参考文献的格式 /bbs/post/view?bid=45&id=446042&tpg=1&ppg=1&sty=1&age=0#446042官方网站的filter下载地址,也就是导入数据的格式 /bbs/post/view?bid=10&id=731869&tpg=1&ppg=1&sty=3&age=0#7318693 问题求解类endnote编辑参考文献格式的问题 /bbs/post/view?bid=10&id=719739&tpg=1&ppg=1&sty=1&age=0#719739endnote 中如何通过年份和文献类型查找文献的问题 /bbs/post/view?bid=10&id=1245950&sty=1&tpg=1&age=0在endnote里通过pmid查找pubmed的问题

C语言中最常用标准库函数 - candyliuxj - CSDN博客

C语言中最常用标准库函数- candyliuxj - CSDN博客 C语言中最常用标准库函数收藏 标准头文件包括: <asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdlib.h> <stdio.h> <string.h> <time.h> 一、标准定义(<stddef.h>) 文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);

l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的 字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 <errno.h>里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno 置为EDOM,如出现值域错误就会将errno置为ERANGE。 三、输入输出函数(<stdio.h>) 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream);

c#实现启用禁用本地网络的三种方式-dsd999的专栏-csdn博客

C#实现启用、禁用本地网络的三种方式-dsd999的专栏 CSDN 博客 C# 实现启用、禁用本地网络的三种方式收藏 1)使用Hnetcfg.dll 使用Add Reference, 把Hnetcfg.dll 导入到工程中,会生成3 个引用,主要使用NETCONLib 。 在工程中要using NETCONLib; // 本段代码不可用?2010-11-18 面是实现的代码: NetSharingManagerClass netSharingMgr = new NetSharingManagerClass(); INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection; foreach (INetConnection connection in connections) INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection); if (connProps.MediaType == tagNETCON_MEDIATYPE.NCM_LAN)

connection.Disconnect(); // 禁用网络 connection.Connect(); //启用网络 2)使用Shell32.dll shell32.dll 是Windows 壳Shell 相关应用程序接口动态链接库文件,用于打开网页和文件。 使用Add Reference, 把Shell32.dll 导入到工程中。 在工程中要using Shell32; 面是实现的代码: const string discVerb = " 停用(&B)"; const string connVerb = " 启用(&A)"; Shell sh = new Shell32.Shell(); Folder folder; Folder fd; folder = https://www.360docs.net/doc/a417975879.html,Space(3); foreach (FolderItem myItem in folder.Items()) if (https://www.360docs.net/doc/a417975879.html, == " 网络连接")

QT调用mplayer(转) - scutLiu的专栏 - CSDN博客

QT调用mplayer(转) - scutLiu的专栏- CSDN博客 scutLiu的专栏 To Be A Better Man! 条新通知登录注册欢迎退出我的博客配置写文章 文章管理博客首页全站当前博客空间博客好友 相册留言用户操作 [留言] [发消息] [加为好友] 狼的图腾ID:scutLiu 共2693次访问,排名2万外,好友10人,关注者10人。狼的图腾的文章 原创17 篇 翻译0 篇 转载36 篇 评论4 篇 订阅我的博客 [编辑]scutLiu的公告 学无止境!

[编辑]文章分类 C/C++/C# Linux内核/应用开发 Open Source QT 设计模式 数据库编程 随笔 他山之石 行业应用 存档 2010年08月(3) 2010年07月(3) 2010年06月(13) 2010年05月(11) 2010年04月(7) 2010年03月(7) 2010年02月(3) 2010年01月(6) 公告:[意见反馈][官方博客] QT调用mplayer(转) 收藏转自 https://www.360docs.net/doc/a417975879.html,/aoxuehan424/blog/item/348888c45b18

6bc138db49d7.html 暂时知道播放歌曲。 安装mplayer,之后目录下会有个mplayer-core.exe 提取出来。放到源码下面。 代码: QProcess *mplayerProcess = new QProcess(this); QString exefile = "mplayer-core.exe"; QStringList arg; // arg << "-slave"; // arg << "-quiet"; // arg << "-idle"; 如果想不播放歌曲的时候就退出mplayer,那么这个参数不要加 arg << "D:/temp/PhonoTest/PhonoTest/1.mp3"; mplayerProcess->start(exefile,arg); 这个文件有12.9M。完全提取??暂时不明确。 参数怎么加?暂时不明确、 通过定义一个QProcess对象调用已编译好的Mplayer。 QProcess *process = new QProcess(); process->setProcessChannelMode(QProcess::Merged Channels);

ortp分析之一 例子分析 - ren911的专栏 - CSDN博客

ortp分析之一例子分析- ren911的专栏- CSDN博客 一. rtpsend.c主要内容 这个例子主要是表示了PCMU格式的音频文件或者直接从声卡得到的音频流如何发送 int main(int argc, char *argv[]) { RtpSession *session; unsigned char buffer[160]; int i; FILE *infile; char *ssrc; uint32_t user_ts=0; int clockslide=0; int jitter=0; if (argc<4){ printf("%s", help); return -1; } for(i=4;i if (strcmp(argv[i],"--with-clockslide")==0){ i++;

if (i>=argc) { printf("%s", help); return -1; } clockslide=atoi(argv[i]); ortp_message("Using clockslide of %i milisecond every 50 packets.",clockslide); }else if (strcmp(argv[i],"--with-jitter")==0){ ortp_message("Jitter will be added to outgoing stream."); i++; if (i>=argc) { printf("%s", help); return -1; } jitter=atoi(argv[i]); } } //初始化oRTP库,应该在使用oRTP API前使用 ortp_init(); //设置计划,scheduler可以管理多个session,在接收端可以通过select来接收多个session。常见的就是音频视频

ubuntu学习笔记(二)之 GRUB的配置文件menu.lst的写法 - jiangxinyu的专栏 - CSDN博客

ubuntu学习笔记(二)之GRUB的配置文件menu.lst的写法- jiangxinyu的专栏- CSDN博客 ubuntu学习笔记(二)之GRUB的配置文件menu.lst 的写法 收藏ubuntu学习笔记(二)之GRUB的配置文件menu.lst 的写法 2007-03-23 15:06menu.lst 位于/boot/grub/menu.lst,而/boot/grub/grub.conf相当于是menu.lst在windows下 的快捷方式(重装系统有时破坏GRUB后,menu.lst丢失而无法启动GRUB菜单时就需要在/boot下建立menu.lst后再和grub.conf建立链接来修复,建立链接是:ln -s menu.lst grub.conf (注意两文件的前后关系)),我们来学习如何编写GRUB的配置文件menu.lst.首先来看一下/boot/grub/menu.lst中的内容: default=0 timeout=5 #splashimage=(hd0,6)/boot/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.11-1.1369_FC4)

root (hd0,6) kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ initrd /boot/initrd-2.6.11-1.1369_FC4.img title Windows XP rootnoverify (hd0,0) chainloader +1 其中: a,default=0 表示默认启动的第0号的操作系统,在GRUB中,title定义了启动的操作系统,从第1个开始,GRUB中是0,而第2个是1,依次类推... b,timeout=5 表示的是出现GRUB界面后,无操作情况下进入default设定的操作系统的时间,如果上下移动选择,则该选项无效 c,splashimage=(hd0,6)/boot/grub/splah.xpm.gz 表示的是允许出现的GRUB背景的path,显然(hd0,6)指定了分区(不知能否这么解释,呵呵),而后边的则是正常的path(在例子中,用#把它注释,为一可选项) d,hiddenmenu 表示隐藏GRUB的启动菜单,直接进入由default庙宇的操作系统中去,为一可选项.linux类 其格式一般为:

OO面向对象分析过程案例实战

面向对象分析过程案例实战 /archive/2010/08/15/5813667.aspx 这是我在csdn博客的第2篇技术文章,本来按原计划是要介绍开源ajax框架buffalo的第2部分,即js<>java的序列化,这里面涉及不少设计模式的运用和JA V A SE知识,代码精简,比较精彩。但是由于个人时间有限,在抉择之后,打算先写一篇关于面向对象分析的文章,也算是对自己过去1年多在这方面学习的总结。我选了比较简单且大家也比较熟悉的案例来分析,案例虽然简单,但是基本的分析方法和推导过程还是一致的,我主要想讲的是原始需求是怎么通过层层分析和推导而形成最后可执行代码的,限于自己的个人能力,如果有谬论和错误之处,还望同行多指教和帮助,共同进步。 原始需求描述如下:某公司鉴于业务和员工的快速发展,为了提升整体工作效率,公司准备开发一套员工报账系统,取代原来的人工处理方式,更加方便的服务于员工日常的账务操作。财务部门能够通过账务系统定期向各部门负责人反映账务统计情况,并设置和维护相关额度准则。系统应该具有基于先进技术的操作界面。 这段描述里包含的业务目标大致有二: 1.为员工提供账务的自动化办理,提高办事效率,方便员工。 2.方便财务部门管理好账务信息。 这些业务目标一般在项目的招标书里都有相关的描述,也可以由开发方整理得出。之所以这里要把业务目标列出来,是因为我所采取的方法里,业务目标是进行需求分析的第一步,接下来的推导过程和业务模型的建立都是根据业务目标开始的。 整理出了业务目标后,接下来先不要一头扎进具体的业务流程和业务细节之中去,应该先把涉众找出来,整理出一份涉众分析报告,涉众就是和这个项目相关的人。也不要就去考虑技术实现细节,要用什么先进的技术,界面如何美观,性能如何优越等等,虽然这些确实重要,但是相比起来,忠实的实现涉众的期望,满足涉众的需求才是最为重要,也是一个项目成败的关键。在实际的项目中,我们可以通过需求调研找出相关的涉众,这里我就直接列出本案例的涉众分析报告: 员工:公司的正式录用雇员;期望:通过网上办理账务业务申请,计算机控制流程。 部门经理:部门负责人,负责审核员工提交的申请;期望:方便审核操作,通过计算机代替原来的手工审核方式。 公司主任:公司负责人,负责2次审核员工提交的申请;期望:方便审核操作,通过计算机代替原来的手工审核方式,界面友好易用。 财务主任:公司财务部门负责人,负责发放报账款项;期望:通过计算机转账的方式替代原来的人为付款方式。 以上的涉众分析报告是很简单的了,在实际稍微复杂些的项目中要下功夫好好整理清楚一份完整的文档才是,因为接下来的业务用例获取工作也是在此基础上展开的。 这里先罗嗦下业务用例和平时开发中的我们开发人员从项目经理或者需求人员手中拿到的需求文档中的用例什么区别。按我个人理解来说后者是系统用例,两者的关键区别在于抽象层次和用例粒度的不同,系统用例是以人与计算机的每次交互为单位的,而业务用例则是在较高的层次上用于确立业务需求范围和描述系统功能性需求的。也就是说我们在描述业务用例的时候,可以不用去考虑具体和计算机相关的实现步骤和细节,从而降低我们人脑需要考虑的复杂度,专注于确立业务需求范围,抽象就是面向对象的优势所在,不用像过程化思维那样通盘考虑,因为人脑能接受的信息量是有限的。系统用例一般是从业务用例中推导出来的,本文之后会有关于这方面的推导过程。 不知道有没跑题,罗嗦了一段,现在回来,分析下本案例中的业务用例获取工作。说到用例,就必须结合边界和业务主角,否则用例的粒度就会出现问题,因为用例是以参与者(业

qos优先级phbexp浅解-ddzhu的专栏-csdn博客

QOS 优先级PHB,EXP,浅解- ddzhu的专栏- CSDN 博客 QOS 优先级PHB,EXP,浅解收藏 这两天在看QOS内容,其中涉及到PHB到EXP的映射,以及EXP到PHB的映射,有点不懂PHB是指哪一段,于是上网查找,结果找到:PHB是指IP包内原TOS字段(现DSCP字段),到PHB的映射关系,具体见下,而EXP当然是指MPLS包内的优先级,COS指的就是8100VLAN中的PRI字段;但是我组的人又说,我们只处理二层的内容,宏定义上的PHB指的是三层的,而我们这里单盘配置中的PHB指的就是宏定义上的COS,如果业务是基于端口的,无COS的话,则具体指的就是芯片中的队列优先级~~于是我有点晕了。 将PHB,EXP,COS的相关内容(我认为有用的)贴上。最早,用IPv4中的TOS字段来实现QoS,TOS字段一共8bit,最高bit固定为0,最低3bit代表优先级,中间的四个bit分别是DTRC,分别表示延迟、吞吐量、可靠兴和花费,路由器在实施QoS时只检查优先级字段,其余bit均不做检查。 随后,RFC2474对IPv4的TOS字段进行了重新定义即

DSCP:最高2bit保留,最高2bit表示CSCP(是一类DSCP)。DSCP一共64个代码空间,其中XXXXX0是标准操作,其余代码点未开放使用。 PHB(Per-hop Behavior),是路由器作用于数据流的行为。四种标准的PHB如下: 类选择码CS,对应DSCP为XXX000 加速转发EF 确保转发AF,分为AF1、AF2、AF3和AF4 尽力而为BE DSCP和PHB的映射关系(由运营商自己指定?) BE DSCP=000000 EF DSCP=101110 AF1 DSCP=001XXX AF2 DSCP=010XXX AF3 DSCP=011XXX AF4 DSCP=111XXX IPv4优先级和DSCP以及PHB的对应关系 IP优先级DSCP PHB 0 000000 BE

c#实现启用禁用本地网络的三种方式 - dsd999的专栏 - csdn博客

C#实现启用、禁用本地网络的三种方式- dsd999的专栏- CSDN博客 C#实现启用、禁用本地网络的三种方式收藏 1)使用Hnetcfg.dll 使用Add Reference,把Hnetcfg.dll导入到工程中,会生成3个引用,主要使用NETCONLib。 在工程中要using NETCONLib; //本段代码不可 用?2010-11-18 下面是实现的代码: NetSharingManagerClass netSharingMgr = new NetSharingManagerClass(); INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection; foreach (INetConnection connection in connections) { INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection); if (connProps.MediaType == tagNETCON_MEDIATYPE.NCM_LAN) {

connection.Disconnect(); //禁用网络 connection.Connect(); //启用网络 } } 2)使用Shell32.dll shell32.dll是Windows壳Shell相关应用程序接口动态链接库文件,用于打开网页和文件。 使用Add Reference,把Shell32.dll导入到工程中。 在工程中要using Shell32; 下面是实现的代码: const string discVerb = "停用(&B)"; const string connVerb = "启用(&A)"; Shell sh = new Shell32.Shell(); Folder folder; Folder fd; folder = https://www.360docs.net/doc/a417975879.html,Space(3); foreach (FolderItem myItem in folder.Items()) { if (https://www.360docs.net/doc/a417975879.html, == "网络连接")

基于角色的权限访问控制数据库设计 - cychai的专栏 - CSDN博客

基于角色的权限访问控制数据库设计- cychai的专栏- CSDN博客 对于权限、角色、组、用户之间的关系,四者之间均是多对多的关系: 设计的原则:数据是数据,关系是关系。 1. 要求: 用户、客户、员工,这三者是一种继承的关系。分配角色,赋予不同的权限。 下面的设计并没有引入“组”的概念,只是涉及用户、权限、角色三者。 2. 数据库设计中实体表: 1) 用户表user 2) 角色role 3) 权限permission

3. 关系表: 1) 用户角色表 userRole 2) 角色权限表 rolePermission 下面是使用PowerDesigner设计的PDM图: 主外键关系命名: Fk_parent_<主键>_child_<外键> 表关系建立原则: Table A 字段:aid(主键) Table B 字段:bid(主键) 1. 一对一 Table A Table B 分别设置各自的主键 2. 一对多(A对B:1-n)

Table B中设置外键aid 3. 多对多 必须设置一张单独的关系表 Table C 中设置外键aid bid 下面是使用PowerDesigner设计后生成的SQL Server 2005脚本文件: /*=========================================== ===================*/ /* DBMS name: Microsoft SQL Server 2005 */ /* Author: ChaiChunyan /* Created on: 2008-11-11 20:28:05 */ /*=========================================== ===================*/ if exists (select 1

局域网截包程序设计

实验目的 目前的局域网基本上都采用以广播为技术基础的以太网,任何两个节点之间的通信数据包,不仅为这两个节点的网卡所接收,也同时为处在同一以太网上的任何一个节点的网卡所截取。因此,黑客只要接入以太网上的任一节点进行侦听,就可以捕获发生在这个以太网上的所有数据包,对其进行解包分析,从而窃取关键信息,这就是以太网所固有的安全隐患。网上主要的免费黑客攻击工具如SA TAN、ISS、NETCAT等均将以太网侦听作为基本的手段。本实验实现一个局域网截包程序,目的在于使学生能更好地理解网络的工作机制(包括封包机制、协议分析等),该实验是对《计算机网络》课程一个有益的补充。 实验内容 在一个局域网环境中,用C 语言实现下面的基本功能: (1)确定截包的方法:包括RAW 模式SOCKET、PACKET32以及直接作为驱动程序挂在NDIS上 (2)要求截获以下包的类型并分析:以太网帧格式、IP包、ICMP包、TCP报文段、UDP 报文等相关字段进行描述。 实验步骤和注意事项 实验按下述步骤进行: (1)熟悉RAW模式的SOCKET编程 (2)熟悉PACKET32的工作机制 (3)熟悉WINDOWS 2000环境下NDIS驱动程序的编写方法 (4)编写基于上述某一机制的局域网截包的实现程序; (5)在模拟实现环境下调试并运行自己编写的协议实现程序; (6)如出现异常情况,在实验报告中记录并分析可能的原因 #define RCV ALL_ON 1 #define MAX_ADDR_LEN 16 //点分十进制地址的最大长度 #define MAX_PROTO_TEXT_LEN 16 //子协议名称(如"TCP")最大长度 #define WINSOCK_VERSION MAKEWORD(2, 2) #pragma comment(lib, "Ws2_32.lib") #include #include #include #include typedef struct iphdr //定义IP首部 { unsigned char h_lenver; //4位首部长度+4位IP版本号 unsigned char tos; //8位服务类型TOS unsigned short total_len; //16位总长度(字节) unsigned short ident; //16位标识 unsigned short frag_and_flags; //3位标志位 unsigned char ttl; //8位生存时间TTL unsigned char proto; //8位协议(TCP, UDP 或其他) unsigned short checksum; //16位IP首部校验和 unsigned int sourceIP; //32位源IP地址 unsigned int destIP; //32位目的IP地址 }IPHeader;

卷积神经网络CNN介绍:结构框架,源码理解 - CSDN博客

yangyzz01 首页专栏专家热文whiteinblue的专栏 [原]卷积神经网络CNN介绍:结构框架,源码理解 2014-5-8阅读2239评论0 1. 卷积神经网络结构 卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层由多个二维平面组成,每个平面为各层处理后的特征图(feature map)。 常见结构: 输入层为训练数据,即原始数据,网络中的每一个特征提取层(C-层)都紧跟着一个二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。具体C层和S层的个数不确定,依据具体案例而定;最后一个S,即完成了对原始数据的特征提取后,把S层的特征数据进行向量化(vector),然后连接到相应分类器。 一个具有7(输入层+c1+s2+c3+s4+c5+v)层网络结构的字母识别的CNN网络 2 卷积层Convolution作用: 卷积操作:用一个滤波器(就是一个小特征矩阵,也称卷积核)在图像矩阵上游走,在对应位置元素相乘,再把相乘的结果相加,最后相加的结果形成新的图像矩阵,游走完成后即完成了对原始图像的卷积变换(映射变换),形成此滤波器下的特征提取。 C层是一个特征提取层,为什么用卷积运算;卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音;例如用增强边缘的卷积去处理图像,处理后的图像边缘特征增强。 3 S层作用:

S-层可看作是模糊滤波器,起到二次特征提取的作用。S层又叫做subsample层,子采样层或者pooling(池化)层 在通过卷积获得了特征 (features)之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如 softmax分类器,但这样做面临计算量的挑战。例如:对于一个 96X96像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 ? 8 + 1) * (96 ? 8 + 1) = 7921 维的卷积特征,由于有 400个特征,所以每个样例 (example)都会得到一个 892 *400 = 3,168,400维的卷积特征向量。学习一 个拥有超过 3百万特征输入的分类器十分不便,并且容易出现过拟合 (over-fitting)。 为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一 种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。 4 网络的前馈计算: 4.1C层卷积计算: 用一个可训练的滤波器k ij去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是S 层的结果特征map了),然后加一个偏置b x,得到卷积层C x。 假设层为s层特征图像X i l-1(pooling层),l层为卷积C层,卷积结果为X j l 参数kij为两层间卷积核(滤波器,kernals),由于s层有m个特征,c层有n个特征,所以一共有m*n个卷积核。bj为卷基层每个结果特征对应的一个偏置项bias,f为非线性变换函 数sigmoid函数;Mj为选择s层特征输入的个数,即选择多少个s层的图像特征作为输入;由于选择s层的特征个数方法不同,主要分为三种卷积选择方式 1、全部选择: s层的全部特征都作为输入, Mj=m。如上图所示。 2、自动稀疏选择: 在卷积计算前加入稀疏稀疏aij,通过稀疏规则限制(论文后面),使算法自动选取部分s层特

相关主题
相关文档
最新文档