802.1p 802.1q是啥协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了802.1p 802.1q是啥协议相关的知识,希望对你有一定的参考价值。

为什么我的网卡,开启他们任意一个都没法上网,他们能提升网络速度吗,我用的集线器和同学上的校园网.请高手解释一下

一、802.1Q协议

802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现,下面我们首先讲述一下有关VLAN的基本观念。

Virtual LANs目前发展很快,世界上主要的大网络厂商在他们的交换机设备中都实现了VLAN协议,顾名思义,VLAN就是虚拟局域网,比如对于QuidwayS2403交换机来说,可以将它的24个10M以太网口划分为几个组,比如协议组,ATM组,测试组等,这样,组内的各个用户就象在同一个局域网内(可能协议组的用户位于很多的交换机上,而非一个交换机)一样,同时,不是本组的用户也无法访问本组的成员。

实际上,VLAN成员的定义可以分为4种:

1, 根据端口划分VLAN

这种划分VLAN的方法是根据以太网交换机的端口来划分,比如S2403的1~4端口为VLAN A,5~17为VLAN B,18~24为VLAN C,当然,这些属于同一VLAN的端口可以不连续,如何配置,由管理员决定,如果有多个交换机的话,例如,可以指定交换机 1 的1~6端口和交换机 2 的1~4端口为同一VLAN,即同一VLAN可以跨越数个以太网交换机,根据端口划分是目前定义VLAN的最常用的方法,IEEE 802.1Q协议规定的就是如何根据交换机的端口来划分VLAN。这种划分的方法的优点是定义VLAN成员时非常简单,只要将所有的端口都指定义一下就可以了。它的缺点是如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。

2、 根据MAC地址划分VLAN

这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置他属于哪个组。这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN,这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停的配置。

3, 根据网络层划分VLAN

这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法可能是根据网络地址,比如IP地址,但它不是路由,不要与网络层的路由混淆。它虽然查看每个数据包的IP地址,但由于不是路由,所以,没有RIP,OSPF等路由协议,而是根据生成树算法进行桥交换,

这种方法的优点是用户的物理位置改变了,不需要重新配置他所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的桢标签来识别VLAN,这样可以减少网络的通信量。

这种方法的缺点是效率,因为检查每一个数据包的网络层地址是很费时的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网桢头,但要让芯片能检查IP桢头,需要更高的技术,同时也更费时。当然,这也跟各个厂商的实现方法有关。

4, IP组播作为VLAN

IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展,当然这种方法不适合局域网,主要是效率不高,对于局域网的组播,有二层组播协议GMRP。

通过上面可以看出,各种不同的VLAN定义方法有各自的优缺点,所以,很多厂商的交换机都实现了不只一种方法,这样,网络管理者可以根据自己的实际需要进行选择,另外,许多厂商在实现VLAN的时候,考虑到VLAN配置的复杂性,还提供了一定程度的自动配置和方便的网络管理工具。

以前,各个厂商都声称他们的交换机实现了VLAN,但各个厂商实现的方法都不相同,所以彼此是无法互连,这样,用户一旦买了某个厂商的交换机,就没法买其他厂商的了。而现在,VLAN的标准是IEEE 提出的802.1Q协议,只有支持相同的开放标准才能保证网络的互连互通,以及保护网络设备投资。

下面讲述一下VLAN的优点:

1, 减少移动和改变的代价,即所说的动态管理网络,也就是当一个用户从一个位置移动到另一个位置是,他的网络属性不需要重新配置,而是动态的完成,这种动态管理网络给网络管理者和使用者都带来了极大的好处,一个用户,无论他到哪里,他都能不做任何修改地接入网络,这种前景是非常美好的。 当然,并不是所有的VLAN定义方法都能做到这一点。

2, 虚拟工作组,VLAN的最具雄心的目标就是建立虚拟工作组模型,例如,在校园网中,同一个系的就好象在同一个LAN上一样,很容易的互相访问,交流信息,同时,所有的广播包也都限制在该虚拟LAN上,而不影响其他VLAN的人,一个人如果从一个办公地点换到另外一个地点,而他仍然在该系,那么,他的配置无须改变,同时,如果一个人虽然办公地点没有变,但他换了一个系,那么,只需网络管理者那配置一下就行了。这个功能的目标就是建立一个动态的组织环境,当然,这只是一个远大的目标,要实现它,还需要一些其他包括管理等方面的支持。

3, 限制广播包,按照802.1D透明网桥的算法,如果一个数据包找不到路由,那么交换机就会将该数据包向所有的其他端口发送,这就是桥的广播方式的转发,这样的结果,毫无疑问极大的浪费了带宽,如果配置了VLAN,那么,当一个数据包没有路由时,交换机只会将此数据包发送到所有属于该VLAN的其他端口,而不是所有的交换机的端口,这样,就将数据包限制到了一个VLAN内。在一定程度上可以节省带宽。

4, 安全性,由于配置了VLAN后,一个VLAN的数据包不会发送到另一个VLAN,这样,其他VLAN的用户的网络上是收不到任何该VLAN的数据包,从而就确保了该VLAN的信息不会被其他VLAN的人窃听,从而实现了信息的保密。

理论上,VLAN可以扩展到WAN上,但是,这是不明智的做法,因为VLAN允许广播包发送出去,而且它没有很好的路由算法,经常是以广播的形式转发数据包,这样,毫无疑问,极大地浪费了WAN的宝贵的带宽,所以说,将基于端口的,MAC地址和网络地址的VLAN扩展到WAN,是不合理的,而基于多播的VLAN概念则可以灵活有效的扩展到WAN。一般的以太网交换机实现的都是基于端口的VLAN,个别的会实现基于MAC地址和网络层地址的VLAN,而路由器中可以通过IGMP多播协议实现所谓的组播形式的VLAN 。

802.1Q协议定义了基于端口的VLAN模型,这是使用得最多的一种方式。下面我们重点讲述一下交换机芯片是如何实现VLAN的,如果想了解更细节的内容,可以参考802.1Q协议,由于协议文本讲的非常抽象,所以,我们以TI公司的交换芯片为例来讲述,更便于理解。例子中的TNETX4090提供了8个100M以太网口和1个1G以太网口。

如图1所示,每一个支持802.1Q协议的主机,在发送数据包时,都在原来的以太网桢头中的源地址后增加了一个4字节的802.1Q桢头,之后接原来以太网的长度或类型域,关于以太网桢头的封装格式,参见以太网方面的培训教材。

这4个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID--Tag Protocol Identifier,它的值是8100),和两个字节的标签控制信息(TCI--Tag Control Information),TPID是IEEE定义的新的类型,表明这是一个加了802.1Q标签的本文,

VLAN Identified( VLAN ID ): 这是一个12位的域,指明VLAN的ID,一共4096个,每个支持802.1Q协议的主机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN,目前TNETX 3270只支持32个VLAN。

Canonical Format Indicator( cfi ):这一位主要用于总线型的以太网与FDDI、令牌环网交换数据时的桢格式,TNETX 3270忽略此位。

Priority:这3 位指明桢的优先级。一共有8种优先级,主要用于当交换机阻塞时,优先发送哪个数据包。TNETX 3270和TNETX 4090只支持一种优先级,所以这一位也没有用,

不难看出,802.1Q标签头的4 个字节是新增加的,目前我们使用的计算机并不支持802.1Q,即我们计算机发送出去的数据包的以太网桢头还不包含这4个字节,同时也无法识别这4个字节,将来会有软件和硬件支持802.1Q协议的。 对于交换机来说,如果它所连接的以太网段的所有主机都能识别和发送这种带802.1Q标签头的数据包,那么我们把这种端口称为Tag Aware 端口;相反,如果该交换机端口说连接的以太网段有只要有一台主机不支持这种以太网桢头,那么交换机的这个端口我们称为Access端口,从目前的情况可以看出,所有的交换机的端口都属于后一种。

那么,在现在的情况下,交换机是如何支持VLAN的呢?是这样的,比如交换机的1~4端口属于同一个VLAN,那么当 1 端口进来一个数据包是,交换机看到该数据包没有802.1Q标签头,那么,它会根据1号端口所属的VLAN组,自动给该数据包添加一个该VLAN的标签头,然后再将数据包交给数据库查询模块,数据库查询模块会根据数据包的目的地址和所属的VLAN进行路由,之后交给转发模块,转发模块看到这是一个包含标签头的数据包,而实际上发送的端口所连的以太网段的计算机不能识别这种数据包,所以,它会再将数据包进来是交换机给添加的标签头再去掉。如果计算机支持这种标签头,那么就不需要交换机添加或删除标签头了,至于到底是添加还是删除要看交换机所连的以太网段的主机是否识别这种数据包,即该交换机的端口是哪种类型的端口。当然,对于两个交换机互连的端口一般都是Tag Aware端口,这样,交换机和交换机之间交换数据包时是无须去掉标签头的。

处理流程包括3个步骤:

1、接收过程:该过程负责接收数据包,数据包可以是带标签头的,也可以不带标签头,如果不带,交换机会知道根据该端口所属的VLAN添加上相应的标签头。

2、查找/路由过程:该过程根据数据包的目的MAC地址、VLAN 标识已经数据库中注册的信息决定把数据包发送到哪个端口。

3、发送过程:将数据包发送到以太网段上,如果该网段的主机不能识别802.1Q标签头,那么就将该标签头去掉,如果是与其他交换机互连的端口,一般不去掉。

具体的接收、查询和发送过程可以参考TNETX 3270的相关资料,下面是一个无标签头的数据包的接收到发送的过程。

其中具体的路由过程参考TNETX 3270资料。

假如Chris 发送一个数据包给Jackie,那么,处理的过程如下:

1、Chris 发送一个数据包给Jackie。

2、数据包到达交换机1的端口9,这是一个无标签头的包,所以交换机1 给该数据包添加一个VLAN ID。

3、根据目的MAC地址和VLAN ID,查询数据库,知道该数据包需要发送到24(或25、26号端口,这3 个端口被捆绑到一起,对上层来说,这3 个端口就好象一个端口,实际上交换机会根据3 个端口的流量来决定是从哪个端口往外发送)。如果不知道,则该数据包还会被发送到端口6,当然,在发送到端口6 的以太网段时,会先将标签头去掉,Altaf收到后会丢弃这个数据包,因为目的地址不是它。由于端口24是Tag Aware端口,所以,发送到24 好端口的数据包的标签头不去掉。

4、TNETX 4090交换机收到这个数据包后,根据VLANID和目的MAC 地址在它的数据库中查找路由,最后,它知道该数据包应该发送到端口4(5或6),标签头仍然不去掉。

5、交换机2收到后,根据VLAN ID和目的MAC地址,在它的数据库中查找路由,知道该数据包需要发送到端口2。于是将该数据包发送出去。注意,发送出去的数据包需要去掉标签头。

以上我们讨论了VLAN收发数据包的过程,它的具体实现已经由以太网交换机的交换芯片实现了,有兴趣者可参考交换芯片的技术资料。

二、802.1P协议

802.1p协议定义了优先级的概念,对于那些实时性要求很高的数据包,主机在发送时就在前面提到MAC桢头增加的3位优先级中指明该数据包优先级高,这样,当以太网交换机数据流量比较多时,它就会考虑优先转发这些优先级高的数据包。

目前部分以太网交换机所采用的交换芯片只支持2种优先级,也有一些能支持4个优先级。

802.1p协议还定义了GARP--Generic Attribute Registration Protocol。这里的Attribute是指组播MAC地址、端口过滤模式和VLAN等属性,GARP协议实际上可以定义很多交换机应该具有的特性,目前,它定义了GMRP--GARP Multicast Registration Protocol和GVRP--GARP VLAN Registration Protocol两个协议,以后会根据网络发展的需要定义其他的特性。GARP定义了以太网交换机之间交换这些特性信息的方法,如何发送数据包,接收的数据包如何处理等等。

GMRP协议是一个动态二层组播注册协议,它的很多方面跟IGMP(三层组播协议)类似,对于IP地址来说,D类IP地址是组播地址,实际上,对于每一个IP组播地址,都有一个组播MAC地址跟它对应,802.1p协议就是根据组播MAC地址来在以太网交换机上注册和取消组播成员身份的,而IGMP是根据组播IP来管理的。当然,如果以太网交换机没有实现GMRP协议,那么就只能通过静态配置来实现组播了。

关于为什么需要二层组播协议?我们在详细讨论一下。与协议IGMP一样,如果我们在自己的局域网内成立一个组播组,可能我们的局域网包含了很多交换机,如果这些交换机没有实现二层组播协议的话,那么,某个组员给其他组员发送数据包时,交换机就会将该数据包向所有的端口广播,因为交换机不知道哪个端口有人加入了该组播组,唯一的解决办法就是管理员配置交换机,这样,才能将这种广播转发数据包的发送方式限制住,而组播本身是动态的,所以,通过这种靠管理员的配置来实现组播的方式是不现实的。因此,就需要有一个二层组播协议来动态管理组员。这就是为什么需要二层组播协议的原因,目前,许多高档的交换机都把实现802.1p和802.1Q协议作为一个主要的性能指标。

GVRP是VLAN协议,由于它与GMRP都是基于GARP之上的,所以它们之间的关系很紧密,它们都要对交换机的数据库进行操作,这个协议的具体定义在802.1Q中。
参考技术A IEEE最近批准802.1p作为802.1d连网标准修正的一部分,使局域网交换在向同时支持声音、图像和数据方面又迈进了一步.802.1p规范使第2层交换具有以优先级区分信息流的能力,完成动态多波过滤。这对于提高局域网的性能非常有价值,但优先功能可望有更直接的影响.优先化规范工作在开放系统互连模型的介质访问控制(MAC)成帧层。为了符合802.1p规范,第2层交换机必须能将进入局域网的分组分成不同的信息流类别。802.1p可以定义八级不同的类别。虽然网络管理员决定实际的交换,但IEEE提供了广泛的推荐。第七级具有最高的优先权,它可以进入网络关键性交通,如路由信息协议和开放的最短路径优先表更新。第五与第六级可以用于延迟敏感的应用,如交互视频图像和声音;4至1级为数据级是从可控负荷的应用(如流动多媒体和关键商务信息传递——传送SAP数据),至可丢失数据的信息流;0级是最佳的缺省值,当未设置其他值时即被自动调用。在运算中,802.1p被用于分组中的优先域以标示有优先处理请求的交换机。不同于802定义的协议如FDDI和令牌环网,以太网不带有定义的优先字段。802.1p能够调用包含在由IEEE的802.1q工作小组正在开发的标签包头部分的优先字段,这个小组的工作着重于虚拟局域网的识别。802.1q规范确定了包含32位标签包头,所有32位均插入在分组的包头的正常目的地址与源地址之后。其中,有3个优先位用于标示802.1p交换;1位用于识别可选的令牌环网的外部;12位虚拟局域网的ID用于虚拟局域网的成员资格,其他16位用于修改"Ether Typ
e"帧。802.1q的优先位可由桌面系统、服务器、路由器和第3层交换机来设置。在桌面系统和服务器中符合802.1p的网卡通过监视端口和ID插座确定信息传输的优先次序,进而设置这些位.路由器和第3层交换机通过检查分组的有效负载信息,如端口数量及服务器地址,来区分信息传输的优先次序。它们通过利用这些信息,结合网络管理定义"政策",从而可以分类任何未加标签的分组。
第2层交换机是"看"不到MAC层以上的层的。802.1p规范却可以使其具有认识包的优先次序的能力。为了更好地作用于选择信息传输的优先次序,新的路由器与交换机对于每一个输出端口将具有使用多缓冲器排列方式的能力。
在一常规的单一缓冲器交换机中,当信息传输出现拥挤时,所有分组将会等待直到可继续前进。相反,具有多排列方式硬件的交换机可以在内部对具有较高优先级的分组进行快速处理,实际上有一些分组将在几毫秒中越过低级分组而通过交换机。通过在每个端口有两种、三种、四种甚至更多的排列方式的系统中推荐如何分配八种信息传输的级别,802.1p规范提前使用了多排列方式的硬件。设置优先位和实现依据等级转发,对于多媒体聚合和激活策略的连网是重要的一步。目录激活的网络的下一步,是为基于网络管理定义政策的自动网络配置。对于有些单位,有价值的一步是将分组的优先级推广到广域网。
这可通过与ATM的服务质量能力有关的一些交互作用,或在IP分组网络中——TOS子区域表现出来。TOS子区域是由Internet Engineering Task Force在1981年为Ipv4网络定义的,现今运行的是由IETF Differentiated Services 工作组重新设计的。但是,目前这些技术仍处在提议的初期阶段。比较现实的一点是局域网中图像、声音及数据的合一,采用802.1p加强了这种势头。

关闭它,个人认为可能会提高局域网访问速度本回答被提问者采纳
参考技术B 一、802.1Q协议
802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现,下面我们首先讲述一下有关VLAN的基本观念。
二、802.1P协议

802.1p协议定义了优先级的概念,对于那些实时性要求很高的数据包,主机在发送时就在前面提到MAC桢头增加的3位优先级中指明该数据包优先级高,这样,当以太网交换机数据流量比较多时,它就会考虑优先转发这些优先级高的数据包。

详情请见http://www.net130.com/2004/6-24/235130-3.html
参考技术C 一个是VLAN中继封装协议,一个是VLAN协议 参考技术D 简单的说,就是路由协议

P*P和&P三者的区别

假设我们定义一个指针p。
那么会经常使用到三个符号:
1,p;
2,*p;
3,&p;
初学者经常会感到很迷茫,到底这三个符号表示什么?
我们知道,p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。而*p表示此指针指向的内存地址中存放的内容,一般是一个和指针类型一致的变量或者常量。
而我们知道,&是取地址运算符,&p就是取指针p的地址。等会,怎么又来了个地址,它到底和p有什么区别?
区别在于,指针p同时也是个变量,既然是变量,编译器肯定要为其分配内存地址,就像程序中定义了一个int型的变量i,编译器要为其分配一块内存空间一 样。而&p就表示编译器为变量p分配的内存地址,而因为p是一个指针变量,这种特殊的身份注定了它要指向另外一个内存地址,程序员按照程序的需要 让它指向一个内存地址,这个它指向的内存地址就用p表示。而且,p指向的地址中的内容就用*p表示。

以上是关于802.1p 802.1q是啥协议的主要内容,如果未能解决你的问题,请参考以下文章

互联网协议 — 802.1q VLAN 虚拟局域网协议

互联网协议 — 802.1q VLAN 虚拟局域网协议

在802.1q中,vlan配置的最大可能值为

QinQ

QinQ

QinQ