当前位置: 首页 > 编程日记 > 正文

课程第五天内容《基础交换 五》

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

以太网/LAN(local area network )的相关概念:
 
   问题:
       信号传输距离有限;
   解决方案:
        中继器 - 放大电信号,延长信息的传输距离;
        
    中继器带来的问题:
        只有2个端口,连接设备少;
    解决方案:
        集线器 - 多端口的中继器,可以连接多个设备;
    集线器的问题:
        不同终端设备发送的信号,会产生冲突;
    针对信号冲突的缓解方案:
          CSMA/CD ,带有冲突检测的,载波侦听多路访问机制;
          引入新的设备 :  
               网桥(bridge) - 隔离冲突域;
                 问题:    
                     网桥设备端口较少,只能连接2个设备;
                 解决方案:
                      引入新的设备 :
                          交换机 - 多端口的网桥,可以实现
                                   冲突域的隔离;        
-----------------------------------------------------------
           
交换机的工作原理:
    1、首先查看数据包的“目标 MAC 地址”;
    2、将目标 MAC 地址与“MAC地址表”中的条目进行匹配;
        成功,则从对应的端口转发出去;
        失败,则广播(从除入端口以外的其他所有端口发出去);    
        
    1、MAC地址啥样子?
           长度为48bit;
           通过16进制表示;
           结构:
              厂商代码 - 24bit
              自己的编码 - 24bit        
                      (每个生产厂商给自己生产的网卡的编号)
    数据包结构:                   
    源MAC -- 目标MAC
    源IP  -- 目标IP    
                         
    2、MAC地址表啥样子?
          每个条目都是 MAC 地址与 Port的对应关系,
          表示去往该 MAC 地址的数据,从对应的 Port 发送出去;
        MAC表如何形成:
            静态配置;
            动态学习 -  
              1、当交换机在端口上收到数据包以后,首先查看
                源MAC地址,从而形成 源MAC 与 入端口的对应关系
              2、分析数据包的 目标MAC地址,并且查找 MAC地址表
                     -能找到对应的MAC条目,则在对应端口转发;
                     -如果找不到对应的条目,则广播;
    
    3、两者如何匹配?
          1、显示 MAC 地址表  
                SW1# show mac-address-table  
    
    4、MAC表的动态条目存活时间:
                   300秒;
                    
 
交换机的工作原理:
   1、成表(查看源MAC)
   2、查表(查看目标MAC)
 
-------------------------------------------------------    
    LAN存在的问题 :
       一个LAN属于一个广播域,其中的网络设备-交换机,
       实现终端设备互联的同时,能够隔离冲突域,但是不能
       隔离广播域。
    解决方案:
         VLAN  - 虚拟局域网 , virtual  lan ;  
       交换机上通过 VLAN 技术,实现广播域的隔离。
       与LAN相同点:
          1、同一个VLAN中的设备,都是属于同一个网段的;
          2、任何一个 VLAN ,都是属于一个广播域;
    
如何配置 VLAN ?
    -思路
       创建VLAN、分配端口、验证配置、连通测试;
   1、创建 VLAN
      SW1(config)#vlan 14    //创建 VLAN 14 ;
      SW1(config-vlan)#name XMAN  //为 VLAN 修改名字;       
      SW1(config-vlan)#exit
       
      SW1(config)#vlan 23    //创建 VLAN 23 ;  
      SW1(config-vlan)#name CaiWu  //为 VLAN 修改名字;       
      SW1(config-vlan)#exit       
   2、将交换机的端口放入不同的 VLAN ;
 SW1(config)#interface  fas0/1
 SW1(config-if)#no shutdown  
 SW1(config-if)#switchport  mode  access //设置端口模式
 SW1(config-if)#swtichport  access  vlan  14   
                      //将端口放入 vlan 14 ;  
                       
 SW1(config)#interface  fas0/4
 SW1(config-if)#no shutdown  
 SW1(config-if)#switchport  mode  access //设置端口模式
 SW1(config-if)#swtichport  access  vlan  14   
                      //将端口放入 vlan 14 ;  
    
SW1(config)#interface range fas0/2 , fas0/3   
                                        //同时进入多个端口
 SW1(config-if-range)#no shutdown  
 SW1(config-if-range)#switchport  mode  access //设置端口模式
 SW1(config-if-range)#swtichport  access  vlan  23   
                      //将端口放入 vlan 23 ;  
   3、验证命令:
       SW1# show vlan brief  // 查看交换机拥有的VLAN信息;    
    
   4、测试命令:
       @ 为不同VLAN的主机,配置不同网段的IP地址;
       @ 测试 - 相同 VLAN 主机,可以互相访问;
                不同 VLAN 主机,不可以互相访问;
    
如何删除 VLAN ?
    1、首先将 VLAN 的成员端口移除;
       SW1(config)#interface fas0/1  
       SW1(config-if)#no switchport access vlan 14
       SW1(config)#interface fas0/4  
       SW1(config-if)#no switchport access vlan 14        
         即将成员端口 fas0/1  和 fas0/4 从 vlan14 中删除;
         此时的端口,应该是回到了默认的 vlan  1 ;  
        
    2、其次删除 VLAN id ;
       SW1(config)# no vlan 14  
 
    3、验证 :
       SW1# show vlan brief     
    
VLAN端口模式 - access/trunk/dynamic ;    
Trunk:
    该类型链路,可以同时承载多个 VLAN 流量,
    每个 VLAN 流量,都会打上相应的 vlan 标签(vlan号);
    通常使用 Trunk端口 连接的是 交换机;
        Trunk的配置命令:
          SW1(config)#interface fas0/23  
          SW1(config-if)#switchport mode trunk  
        Trunk的验证命令:
          SW1#show interface trunk    
                               //显示交换机上所有的trunk链路
Access:
     该类型链路,同时只能属于 一个 VLAN ;
     通常使用 access端口 连接的是  ”非交换机“ ;
 
注意:
     VLAN 中的成员端口的最终模式 :
                          access  
                          trunk  
     交换机的每个端口默认都是 dynamic(动态)模式;
 
     Trunk链路发送出去的数据是带有 vlan 标签的,
      这种标签,仅有交换机、路由器等网络设备才能认识;
      PC是无法识别的,所以”连接 PC的端口,不可以配置为 Trunk“
       
     Access链路发送出去的数据是不带有任何标签的;
 
 
Trunk 中存在一个特殊的 VLAN --native VLAN , 本地/本征 VLAN  
    该 vlan 中的 流量是没有标签的;默认值为 vlan 1 ;  
    
    故  
    
    当Trunk链路收到一个没有标签的数据包时,转发给本地交换机
    上的 native vlan 中的成员端口,不会将其丢弃的;
    
注意:
    交换机从来不丢包;

转载于:https://my.oschina.net/szwangsen/blog/1552996

相关文章:

C#综合揭秘——Entity Framework 并发处理详解

引言 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制。从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NET Entity Framework,.NET 都为并发控制提供好良好的支持方案。 并发处理方式一般分为乐观必并发与悲观必并发两种&#xff0…

@2021高考生,用 Python 分析专业“钱景”

来源 | 关于数据分析于可视化头图 | 下载于ICphoto2021年的高考在昨日拉开帷幕,十年的寒窗苦读,终于到了最后见分晓的时候了。在这么一场关键的考试当中,除了考试前努力奋斗,考场上认真答题,考后的志愿填报也是极其的重…

Linux下C语言的fgets与fputs

使用的是 CentOS gcc编译下面程序 显示warning: the gets function is dangerous and should not be used.问题出在程序中使用了 gets Linux 下gcc编译器不支持这个函数,解决办法是使用 fgets fgets()函数的基本用法为: fgets(char * s,int size,FILE * …

linux发行版的用户交互

1 cli,即command line interface 纯命令行的交互方式,该命令行界面是由shell提供的。 linux内核本身也自带了一个console,即linux console,它是基于frame buffer的。 cli的界面都是基于ncurses库开发的。 2 GUI,graphi…

C#中在应用程序和DLL使用消息

在C#中采用的是事件驱动方式,但在我们使用的过程中,有时候通过调用系统原有的消息,处理起来会比较简单一些,特别是在处理与DLL文件的交互时,的确是非常的方便。 在C#中使用自定义消息 在C#中使用自定义消息非常简单&…

倪光南院士:openEuler与全球开发者共同推动计算产业发展

今日,以“创造最好的OS,成就更好的我们”为主题的 openEuler Developer Day 2021在北京成功举行。本次大会由openEuler社区发起,产业组织专家、学者、企业领袖和开发者们围绕多样性计算、云原生全栈、全场景协同等技术方向共同探讨和创新。大…

jhello框架-ajax

2019独角兽企业重金招聘Python工程师标准>>> 现在的web开发没有ajax都没法活,所以在jhello中实现了一个简单的ajax交互,使用json作为载体。 在上篇《交互》中讲到一种交互的方式是把数据放入Model中,通过ModelAndView类返回到视图…

发微信模版消息换行用\n

发微信模版消息换行用\n发微信模版消息换行用\n发微信模版消息换行用\n发微信模版消息换行用\n发微信模版消息换行用\n转载于:https://blog.51cto.com/xuqin/1974131

二次元会让人脸识别失效吗?

来源 | PyTorch 开发者社区责编 | 寇雪芹头图 | 下载于ICphoto人脸识别也遇到坑了,识别得了三次元,却对二次元无效。迪士尼的技术团队,正在开发这一算法,以帮助动画制作者进行后期搜索。团队利用 PyTorch,效率得到很大…

基于第四层交换技术的负载均衡

摘 要 本文介绍了第四层交换技术的概念,技术原理以及如何使用第四层交换技术实现远程教育系统中的应用服务器负载均衡。 作者: 凌仲权,现就读于西安电子科技大学,2001级硕士研究生。主要的科研方向为计算机网络技术研究以及远程教…

開始Unity3D的学习之旅

前言:这个系列的文章纯属对自己学习的整理,非高手之作。但确实的记载了我作为一个没接触过3D游戏编程的大学生的心路历程。争取每周整理一次吧。之所以会開始学Unity3D,最基本的原因是由于在快放暑假的时候,我找了一家做iPhone游戏…

linux 定时任务crond

1.定时任务crond 1.1 crond是什么 crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。特殊需求:(秒级别)crond服务就无法搞定了,一般工作中写脚本守护进程执行。 为什么要使用crond定时任务: linux系…

用C#去除代码的SourceSafe管理

经常看一些的程序,有些一个解决方案带有多个项目,由于代码比较多,多人开发,所以好多vs.net下的工程是用source safe进行版本控制的。而用source safe进行版本控制需要局域网路径共享,因此好多项目换一台机器打开会出现…

用jarsigner对android apk进行签名

以前对apk重新打包签名都是用的apktool里面的Auto-sign 工具,后来发现有时候利用该工具对一些apk签名会失败,所以后来就使用 jarsigner这个工具,现记录一下这个工具的使用方法1 首先要生成一个自己的keyD:\>keytool -genkey -alias myKey…

利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上的疏散耦合,而非…

C#操作消息队列

public class QueueManage { /// /// 发送对象到队列中 /// /// 队列名称,因为队列名称在一个应用中应该不改变的,所以大家最好写在配置文件中 /// 要发出去的对象 public static void SendQueue(string QueuePath,MyBase.SmsQueue sq) { Syste…

2021《程序员》数字科技企业研发实力榜TOP50

互联网的盛行带来了众多数字科技企业的崛起,但如何客观地衡量每家企业的技术实力?研发投入、研发人才的数量和人才密度是关键指标。2021年5月,《程序员》根据相关企业披露的财报数据及市场调研数据,整理发布“2021数字科技企业研发实力榜TOP5…

eclipse中java项目转换为web项目

2019独角兽企业重金招聘Python工程师标准>>> 经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目,有过很多次经历,今天也有同事遇到类似问题,就把这个解决方法记下来吧&#x…

MySQL · 引擎介绍 · Sphinx源码剖析(三)

在本节中我会介绍Sphinx在构建索引之前做的一些事情,主要是从mysql拉取数据保存,然后分词排序保存到内存等等一系列的操作。下面是几个相关指令 sql_query \SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, \title, content \FROM doc…

C#给图片添加版权信息

现在越来越多的网站都喜欢将用户上传的图片加上网站的版权信息,不要以为那是用photoshop之类的图片处理软件加上去的,其实我们只要写一小段代码,就可以实现这个功能。 添加版权信息的原理其实挺简单:通过图片获取Graphics类的对象…

Python + 爬虫:可视化大屏帮你选粽子

来源 | 数据分析与统计学之美头图 | 下载于ICphoto端午节快要到了,旅游?回家?拜访亲友?少不了要带上粽子。那么,选择什么牌子的粽子呢?选择什么口味的粽子呢?选择什么价格区间呢?今年…

adviser vs mentor

研究生或博士生提到自己导师的时候是说adviser呢?还是mentor呢? 至少我认识一个Berkeley的博士是说adviser的。 另外,我的导师也是说adviser。 那还是说adviser吧……

T extends Serializable这是什么意思呢?看明白这个,你的问题就自然而然的明白了!...

1.转自:https://blog.csdn.net/liwenqiang758/article/details/8131185 自己动手丰衣足食!!! 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 这种参数类型可以用在类、接口和方法的创建中&a…

C#中switch语句注意

大家肯定对switch语句并不陌生,它能够让程序根据控制表达式的值,从多个动作中作出选择(从逻辑过程看,和多分支语句if-else有些相似)。在C和java中也有这一语句,不过在C#中,这一语句则有了些变化。先看下边一…

对Cost (%CPU) 粗略的理解

今天研究执行计划,看到执行计划里面有Cost (%CPU),我这边研究了一把,不知道对与否,拿出来晒晒在Oracle 10g中,Oracle 把CPU的cost也统计在执行计划中去了, 这和以前的8i,9i(9i其实已经开始了)有很大的不同。…

后疫情时代,RTC期待新的场景大爆发

整理 | 寇雪芹头图 | 下载于ICphoto出品 | AI 科技大本营(ID:rgznai100) 过去的一年中,新冠疫情悄然改变了社会发展和人们的生活,也助推了实时音视频(Real-Time Communication)技术的落地应用,数…

JS-DOM-元素节点

查看元素节点: 1、getElementById():通过 id 取到唯一节点;如果 id 重名,只能取到第一个 getElementByName(): 通过name属性 getElementByTagName(): 通过标签名 getElementByClassName(): 通过class名 获取元素节点时,一定要注意:获取节点的语句,必须在 DOM 渲染完成之后执行。…

现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说,我们敏捷的团队,就喜欢直接的面对面的交流&#xff0…

赠书 | 读懂生成对抗神经网络 GAN,看这文就够了

生成对抗神经网络(Generative Adversarial Nets,GAN)是一种深度学习的框架,它是通过一个相互对抗的过程来完成模型训练的。典型的GAN包含两个部分,一个是生成模型(Generative Model,简称G&#…