Access和Trunk端口收发数据的区别

端口类型 接收数据 转发数据
Access端口 如果接收的是不带标签的的数据,则打上自己的pvid接受该数据,如果接受的是带标签的数据,会判断该数据的vlan id是否和自身的pvid相同,若相同则接收该数据,若不同则丢弃该数据 转发数据时会将数据的标签剥掉,也就是通过Access端口转发出去的数据都是不带标签的
Trunk端口 如果接受的是不带标签的数据,则会打上自身的pvid,然后判断数据的vlan id是否在允许通过的vlan id列表中,如果允许通过则接收数据,如果不允许通过则丢弃数据,如果是带标签的数据,则判断该数据的vlan id是否在允许通过vlan id列表中,如果允许通过,则接收该数据,如果不允许,则丢弃该数据 转发数据时查看转发数据的vlan id是否在允许通过的vlan id列表中,如果不允许通过,则丢弃该数据,如果允许通过,再判断数据的vlan id是否和端口的pvid相同,如果相同,则剥掉标签转发,如果不同,则直接转发

pvid:即Port Vlan ID,端口的缺省vlan
vlan id:可以看作数据的Tag

通过树形图可以更清晰的看出两种类型端口收发数据的方式

在这我们可以通过几个例子来分析一下数据传输的过程

这里我们把左边交换机的所有接口都配置为access端口(虽说access端口是连接主机的,但这里我们只是为了学习,所以交换机之间我们也配成了access类型),pvid都为10,右边交换机的所有端口我们也都配成了access类型,pvid为20,这里我们就以PC1访问PC2为例:

PC1发送数据到E0/0/2端口,此时数据是不带标签的,所以E0/0/2端口就将数据打上自己的pvid(10)后接收数据,然后通过G0/0/1端口发送数据,G0/0/1会先判断数据的vlan id是否和自己的pvid相同,若相同则发送,若不同则丢弃,因为数据的vlan id为10,自己的pvid也是10,所以G0/0/1端口就将数据剥掉标签发送,然后就是右边端口G0/0/2接收数据,因为此时数据是没有标签的,所以G0/0/2端口打上自己的pvid(20)然后接收数据,再通过右边E0/0/3端口发送数据,E0/0/3端口会先判断数据的vlan id是否和自己的pvid相同,若相同则发送,若不同则丢弃,因为此时数据的vlan id是20,E0/0/3端口的pvid也是20,所以E0/0/3端口剥掉数据的标签发送给PC2,PC2发送响应数据时,也是同样的线路。

我们看看测试结果:


这次我们将同一个交换机上的端口设定在不同的vlan

我们还是将两台交换机上的所有端口都设置为access类型,然后将左边交换机的两个端口分别划分到vlan10和vlan20,右边交换机的两个端口分别划分到vlan25和vlan20,这次我们以PC14访问PC15为例:

PC14发送数据到端口E0/0/2,因为数据不带标签,所以端口E0/0/2将数据打上自己的pvid(10)后接收数据,然后通过G0/0/1端口发送数据,端口G0/0/1会先判断数据的vlan id是否和自己的pvid相同,若相同则发送数据,若不同则丢弃数据,因为数据的vlan id是10,而端口G0/0/1的pvid为15,数据的vlan id与端口的pvid不同,所以端口将数据丢弃,也就代表PC14无法访问PC15

我们测试一下


我们再来看一下trunk端口的数据传输过程:

左边的为vlan10,右边为vlan20,我们把左边交换机的两个端口分别配置为一个access端口,一个trunk端口,两个端口的pvid都是10,右边交换机也是一个access端口,一个trunk端口,pvid都是20,我们以PC16访问PC17为例:

PC16发送数据到端口E0/0/2,因为数据没有标签所以端口E0/0/2将端口打上自己的pvid(10)后接收,然后通过端口G0/0/1发送,当数据带标签时,端口G0/0/1会先判断数据的vlan id是否在允许通过的列表中,若允许通过,在进行下一步判断,若不允许,则丢弃,因为数据的vlan id为10,而我们没有在交换机中添加允许vlan10通过,所以数据无法通过。

测试:


下面我们在交换机14的G0/0/1端口上添加允许vlan10通过,执行命令:

[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 10

现在端口G0/0/1允许vlan id为10的数据通过,因为数据的vlan id为10,所以G0/0/1端口允许数据通过,此时端口G0/0/1再判断数据的vlan id是否和自己的pvid相同,若相同则剥掉标签转发,若不同则直接转发,因为端口G0/0/1的pvid为10,数据vlan id也为10,所以端口G0/0/1会剥掉数据的标签转发,此时G0/0/2接收数据,因为此时数据没有标签所以端口G0/0/2将数据打上自己的pvid(20),再判断数据的vlan id是否在允许通过的列表中,数据的vlan id为20,而我们没有在端口G0/0/2中添加允许vlan20通过,所以数据还是无法通过,执行命令:

[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 20

此时端口G0/0/2允许数据通过,端口G0/0/2接收数据,然后再通过端口E0/0/3转发数据,端口E0/0/3会判断数据的vlan id是否和自己的pvid相同,若相同则剥掉标签转发,若不同则丢弃,因为数据的vlan id为20,端口E0/0/3的pvid为20,两者相同,所以端口E0/0/3剥掉数据的标签转发到PC17

PC17发送响应数据时也是相同的原理,PC17发送数据到端口E0/0/3,因为数据没有标签,端口E0/0/3将数据打上自己的pvid(20)后接收,然后通过端口G0/0/2转发,因为端口G0/0/2我们添加了允许vlan20通过,所以端口G0/0/2允许数据通过,又因为数据的vlan id与端口G0/0/2的pvid相同,所以端口G0/0/2剥掉数据的标签转发,然后是端口G0/0/1接收数据,因为数据没有标签,所以端口G0/0/1将数据打上自己的pvid(10),再判断端口vlan id是否在允许通过的列表中,因为我们在端口G0/0/1中添加了允许vlan10通过,所以端口G0/0/1允许数据通过,所以端口G0/0/1接收数据,再通过端口E0/0/2转发,因为数据的vlan id与自己的pvid相同,所以端口E0/0/2剥掉数据的标签转发到PC16,此时PC16和PC17就完成了访问

我们来测试一下

有帮助的话,还请支持一下哦(嘻嘻)


公众号也会不定时发表一些有趣的文章,可以关注一下哦

详解eNSP中Trunk端口和Access端口收发数据的区别相关推荐

  1. 详解JavaScript中ES5和ES6的类、继承之间区别和联系

    导读: 很多JavaScript的初学者(比如说我)在刚开始学习这门语言的时候,往往会对函数.对象.类.继承这些概念感到迷茫和疑惑,感觉他们彼此之间长得十分相似,这就导致很难分清他们什么时候该怎么用. ...

  2. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  3. JAVA中的visible什么意思_详解Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

    在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为"visible "."invisible"."gone&quo ...

  4. 218.94.78.76:20001/index.php,详解spring中使用Elasticsearch的实例教程

    本篇文章主要介绍了详解spring中使用Elasticsearch的代码实现,具有一定的参考价值,有兴趣的可以了解一下 在使用Elasticsearch之前,先给大家聊一点干货. 1. ES和solr ...

  5. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器

    详解OpenCV中的Lucas Kanade稀疏光流单应追踪器 1. 效果图 2. 源码 参考 这篇博客将详细介绍OpenCV中的Lucas Kanade稀疏光流单应追踪器. 光流是由物体或相机的运动 ...

  6. python操作目录_详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os. ...

  7. python3中unicode怎么写_详解python3中ascii与Unicode使用

    这篇文章主要为大家详解python3中ascii与Unicode使用的相关资料,需要的朋友可以参考下# Auther: Aaron Fan ''' ASCII:不支持中文,1个英文占1个字节 Unic ...

  8. foreach php,详解PHP中foreach的用法和实例

    本篇文章介绍了详解PHP中foreach的用法和实例,详细介绍了foreach的用法,感兴趣的小伙伴们可以参考一下. 在PHP中经常会用到foreach的使用,而要用到foreach,就必须用到数组. ...

  9. python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...

    文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...

最新文章

  1. 基于Springboot实现园区招商管理系统
  2. 理解LSTM/RNN中的Attention机制
  3. 在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理...
  4. Spring-data-redis:特性与实例--转载
  5. CSS cursor 属性
  6. oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session
  7. ajax的请求参数详解以及前后台交互详解
  8. win10 wlan 诊断显示后没有有效的ip配置
  9. 最好用的PDF软件汇总
  10. 最简单的WIN7内核PE系统(U盘,硬盘,移动硬盘版支持原版WIN7安装
  11. android 编写优质代码,GitHub - RayFantasyStudio/iCode-Android: 为开发者而生,提供在线代码存放,展示你优秀代码的平台...
  12. 转:读“DataBase Sharding at Netlog”,看DataBase Scale Out
  13. 《Web安全攻防》学习笔记
  14. android 监听本机网络请求_前端系列课程(2)-网络基础概念(URL)
  15. linux内核IDR机制详解(一)
  16. 计算机公式SUBSTITUTE,全了,SUBSTITUTE函数常用套路集合!
  17. Quartus编译错误:which fans out to accumulate:inst4|acc[12] cannot be assigned more than one value
  18. .NET获取硬盘序列号的几个方法
  19. 成都java软件技术培训机构
  20. php rtmp服务器搭建,rtmp直播服务器的搭建(小白踩坑)

热门文章

  1. SpringCloud 微服务工作笔记:validationQuery: SELECT 1 FROM DUAL
  2. 【Planning】Firm type used in R3 Planning - Manual Firm and regular run
  3. Scratch与物理·天文:模拟中国嫦娥探月工程,探索月球的背面!
  4. 原生js实现canvas画布中绘制、移动、拖拽、删除矩形(如简易截图工具)
  5. python爬取汽车之家图片,Python requests 爬取汽车之家全部品牌logo,urllib下载到本地...
  6. 【ivp6服务器可通过ivp4网络访问教程】
  7. node.js的认识与了解3
  8. 生命不息,折腾不止—小黑升win10
  9. 苹果iOS7 Beta 2版系统下载,ios7beta2固件下载
  10. CF杂题训练(交互题不做,2500以上的看情况吧)