一个数据报发到一个有十个vlan的交换机上的整个过程。

时间:2021-02-11 23:23:17
一个数据报发到一个有十个vlan的交换机上的整个过程。

12 个解决方案

#1


数据报自己有一个VLAN-ID,他知道自己该去那里,然后才是识别IP地址,指向具体主机。

#2


楼上说的不完全正确,
帧不一定都带vlan-id的标识,而且现在大部分的pc网卡都不支持发送带vlan-id的帧。
应该说是根据接收的帧和当前接收端口的VLAN属性确定帧发往哪个VLAN,
而当前端口是如何实现VLAN的有多个标准,就是说当前接收端口是如何实现和各厂家有关,
楼主需要查找一些文档来加强理解,比如802.1q。

#3


比如说交换机上是基于端口的VLAN,数据报从某个端口上来,被这个端口被把VLAN-ID去掉,并重新给打上另一个标记传到上行口;回重数据从上行口回来,因为以有标记,就可以找到发送时的端口,在这个端口被加上原来的VLAN-ID并把数据送走

#4


交换机工作原理
http://www.99net.net/study/know/23.htm

#5


http://www.staredu.net/st_college/project/newcisco/cisco5.doc

#6


呵呵~~对对~~大家还真是敬业,是我懒了,没仔细说。兄弟们这种精神让我感动啊,以后我也尽量解释的清楚详细。向兄弟们学习~~~

#7


学习

#8


学习

#9


如果是从trunk过来的mac帧,上面带有vlan id,接收的交换机去掉vlan id标记之后根据mac-端口映射表进行转发。
如果是从pc过来的mac帧,交换机检查映射表发现不需要走trunk的话,直接投递到目的端口即可,如果要走trunk,则还需要作valn id的封装。

#10


不经过trunk的数据fream就不需要家vlan id。swith的每一个vlan采用一个独立的cam表。

#11


二层交换:
首先,Switch肯定知道这个帧是属于哪个VLAN的(如果是从主机端口进来的,很显然,按配置就知道了,如果是从trunk进来的,读取VLAN ID知道),然后它会读取帧头的目的MAC地址,再根据这个地址查MAC表,如果找到而且对应的出端口和这个帧属于同一VLAN的话就执行二层转发;如果找不到,则在同一VLAN的其他端口上广播这个帧。
实际上在二层交换上执行的处理逻辑是很简单的,因为它只能看到链路层信息,对于三层交换,就复杂多了。
三层交换:
对于一条流(有多种定义法,比如源IP-目的IP)的第一个报文,交到路由模块去处理,选路之后将IP和MAC的对应关系交给二层逻辑,这样对于这条流的后续报文,直接可以在二层进行交换,这种交换是基于ASIC的,相对于传统路由器的三层软件路由,性能是提升了不少,所以三层交换机才能占据现代企业网、城域网的核心层和汇聚层。

#12


对于三层交换的情况,我再说清楚点吧:
交换机是如何判别每条流的第一个报文的呢?它发现某个进来的帧的目的MAC地址是自己的,而且在MLS(Multi-Layer Switching)缓存中找不到此帧关联的某个流,于是就知道这是跨网段的流量,该送第三层了。
对于这条流的后续报文,二层也是首先进行MLS查询(比如用源IP和目的IP作关键字进行查询),找到一个匹配的话就用里面的cache信息直接进行帧重写,包括二层信息和三层信息,然后发到出端口,所有操作在二层完成。

#1


数据报自己有一个VLAN-ID,他知道自己该去那里,然后才是识别IP地址,指向具体主机。

#2


楼上说的不完全正确,
帧不一定都带vlan-id的标识,而且现在大部分的pc网卡都不支持发送带vlan-id的帧。
应该说是根据接收的帧和当前接收端口的VLAN属性确定帧发往哪个VLAN,
而当前端口是如何实现VLAN的有多个标准,就是说当前接收端口是如何实现和各厂家有关,
楼主需要查找一些文档来加强理解,比如802.1q。

#3


比如说交换机上是基于端口的VLAN,数据报从某个端口上来,被这个端口被把VLAN-ID去掉,并重新给打上另一个标记传到上行口;回重数据从上行口回来,因为以有标记,就可以找到发送时的端口,在这个端口被加上原来的VLAN-ID并把数据送走

#4


交换机工作原理
http://www.99net.net/study/know/23.htm

#5


http://www.staredu.net/st_college/project/newcisco/cisco5.doc

#6


呵呵~~对对~~大家还真是敬业,是我懒了,没仔细说。兄弟们这种精神让我感动啊,以后我也尽量解释的清楚详细。向兄弟们学习~~~

#7


学习

#8


学习

#9


如果是从trunk过来的mac帧,上面带有vlan id,接收的交换机去掉vlan id标记之后根据mac-端口映射表进行转发。
如果是从pc过来的mac帧,交换机检查映射表发现不需要走trunk的话,直接投递到目的端口即可,如果要走trunk,则还需要作valn id的封装。

#10


不经过trunk的数据fream就不需要家vlan id。swith的每一个vlan采用一个独立的cam表。

#11


二层交换:
首先,Switch肯定知道这个帧是属于哪个VLAN的(如果是从主机端口进来的,很显然,按配置就知道了,如果是从trunk进来的,读取VLAN ID知道),然后它会读取帧头的目的MAC地址,再根据这个地址查MAC表,如果找到而且对应的出端口和这个帧属于同一VLAN的话就执行二层转发;如果找不到,则在同一VLAN的其他端口上广播这个帧。
实际上在二层交换上执行的处理逻辑是很简单的,因为它只能看到链路层信息,对于三层交换,就复杂多了。
三层交换:
对于一条流(有多种定义法,比如源IP-目的IP)的第一个报文,交到路由模块去处理,选路之后将IP和MAC的对应关系交给二层逻辑,这样对于这条流的后续报文,直接可以在二层进行交换,这种交换是基于ASIC的,相对于传统路由器的三层软件路由,性能是提升了不少,所以三层交换机才能占据现代企业网、城域网的核心层和汇聚层。

#12


对于三层交换的情况,我再说清楚点吧:
交换机是如何判别每条流的第一个报文的呢?它发现某个进来的帧的目的MAC地址是自己的,而且在MLS(Multi-Layer Switching)缓存中找不到此帧关联的某个流,于是就知道这是跨网段的流量,该送第三层了。
对于这条流的后续报文,二层也是首先进行MLS查询(比如用源IP和目的IP作关键字进行查询),找到一个匹配的话就用里面的cache信息直接进行帧重写,包括二层信息和三层信息,然后发到出端口,所有操作在二层完成。