本系列的文章主要是讲解网络基础,CCNA嘛。在这之前,我们讨论了IP地址、MAC地址,也简单介绍了IP协议、ARP协议、ICMP协议,并且通过ping命令后面的技术原理,提到的了路由表、ARP表。

但是我们都只是讨论了两台主机通过网线直连的方式,现实中可是通过网络来连接通信的主机。这网络是个抽象的概念,对应的物理设备可是多种多样,比如交换机、路由器、防火墙、负载均衡器。而网络类型也是丰富多彩,比如我们最最常见的以太网、wifi,还有我们移动通信的2G/3G/4G/5G,当然还有其他的,就不一一举例了。

不过这么多技术,我们得掌握最基础的技术--数据包交换技术,而这涉及到的网络设备就是我们平时所说的交换机,更严格地说,应该是以太网交换机。难道还有其他交换机么?是的,比如用于存储设备网络的FC交换机。

接下来开始说我们的数据包交换技术。

上篇文档中,我们分析了PC-A和PC-B通过网线直连的通信原理,但现实情况是很少出现这两者直连。现实中的设备都是通过网络来连接的。

网络,有LAN和WAN之分,即局域网,广域网。当然我们该系列文章,都是讲的LAN。LAN到底是什么呢?LAN其实就是一台交换机或者一组级联的交换机组成的局域网,如下图所示。

这里的交换机都是指以太网交换机,没有特殊说明,提到的交换机都是指以太网交换机,谁让它使用最广泛呢。当然了,以太网交换机可是有二层和三层之分的,没有特殊说明,都是指二层。

1 LAN连接实现同网段设备的通信

1.1 LAN的拓扑图

PC-A和PC-B连接二层交换机SW-A上,PC-C连接在二层交换机SW-B上,PC-D连接在二层交换机SW-C上。SW-A、SW-B和SW-C级联,PC-A、PC-B、PC-C和PC-D的IP地址都是在同一个网段。

各个设备IP地址和MAC地址如下表所示。

设备 IP地址 MAC地址
PC-A 192.168.10.1 /24 1111.1111.1111
PC-B 192.168.10.2 /24 2222.2222.2222
PC-C 192.168.10.3 /24 3333.3333.3333
PC-D 192.168.10.4 /24 4444.4444.4444

1.2 LAN连接的同网段设备通信原理

在前文中,我们知道一台设备要发数据给另一台设备,会根据目标设备的IP地址,查找本地的路由表,找到网关,如果网关为On-link,则说明目标设备跟自己在同一个网段。

接下来就会根据目标设备的IP地址,去找ARP表中目标设备对应的MAC地址,如果找不到,就ARP广播,等待目标设备回复。最后根据以目标设备的MAC地址为目的MAC,IP地址为目的IP地址封装报文,发送出去。

前文中,源设备和目标设备是通过网线直连的,本文中两者之间是通过二层交换机互联的,不过源设备发送数据的相关机制不会变,网络的问题不可能影响到终端设备的处理机制。

因此我们只需要搞清楚,二层交换机收到源设备的数据,要怎么转发到目标设备,就掌握了LAN连接的同网段设备是如何通信的。

2 交换机工作原理

二层交换机要转发数据到目标设备,有两个条件:

(1)目标设备连接在哪个端口,要不然通过哪个端口把数据发送出去呢?

(2)转发数据的依据,即根据什么来转发数据呢?

2.1 MAC表

在交换机内部维持着一个MAC地址转发表(简称MAC表),记录着MAC地址与端口的映射关系。我们知道MAC代表了一个设备,那么据此可知一个MAC表现代表了一台设备连到此交换机的哪个端口。

那MAC表里面的表现是怎么形成的? 其实任何一个数据进入到交换机后,交换机会记录这数据是从哪个端口进来的,并且解封装数据得到数据的源MAC地址。然后把数据的源MAC地址和来源端口写到MAC表,同时启用一个定时器,,表明这条记录在MAC表里面持续时间,到期后自动清除。所以说交换机中的MAC表,是通过MAC学习的方式形成的。

我们举个例子,PC-A要通过SW-A发送数据到PC-B,由于A只有B的IP地址,没有MAC地址,于是发送ARP广播。

SW-A收到此ARP广播后,会把数据的来源端口--Gi0/1和数据的源MAC--A的MAC地址,写到MAC表,如下所示。

SW-A#show mac address-tableMac Address Table
-------------------------------------------Mac Address       Type        Ports
-----------       --------    -----
1111.1111.1111    DYNAMIC     Gi0/1

2.2 交换机数据转发原理

当数据进入交换机后, 交换机解封装数据,得到目的MAC地址,

(1)如果目的MAC地址是广播地址, 就从除数据来源端口以外的所有端口转发出去, 即广播;

(2)如果目的MAC地址是单播地址,就去查找MAC表:

如果找到对应的表项, 就从表项中的端口把数据转发出去;

如果没有找到, 就从除数据进来的端口以外的所有端口转发出去,即广播;

(3)如果目的MAC地址是组播地址,是根据组播地址表去转发的, 而不是MAC表,本文不做过多讨论。

接上面的例子,PC-A要通过SW-A发送数据到PC-B。

SW-A把A对应的MAC表项写到MAC表以后,根据ARP广播包的目的MAC是广播地址,于是把它从除Gi0/1以外的所有端口转发出去,本例中就是从Gi0/2和Gi0/21转发出去。

连到SW-A上的Gi0/2口的PC-B,会回复此数据。SW-A收到PC-B的回复后,会把数据的来源端口--Gi0/2和数据的源MAC--B的MAC地址,写到MAC表,如下所示。

SW-A#show mac address-tableMac Address Table
-------------------------------------------Mac Address       Type        Ports
-----------       --------    -----
1111.1111.1111    DYNAMIC     Gi0/1
2222.2222.2222    DYNAMIC     Gi0/2

2.3 交换到无限

(1)SW-B如何处理此ARP广播

继续上面的例子,SW-A除了把PC-A的ARP广播从Gi0/2口转发出去外,也会从Gi0/21口转发出去。

当SW-B从Gi0/21口收到此ARP广播,同样的道理SW-B会把数据来源端口--Gi0/21和源MAC--A的MAC地址写到自己的MAC表中,如下图所示。

SW-B#show mac address-tableMac Address Table
-------------------------------------------Mac Address       Type        Ports
-----------       --------    -----
1111.1111.1111    DYNAMIC     Gi0/22

然后SW-B广播此数据,本例中会从Gi0/1和Gi0/22口转发出去。连到Gi0/1口的PC-C收到数据后,解封装ARP广播帧,发现不是询问自己,于是丢弃。

(2)SW-C如何处理此ARP广播

连到Gi0/22口的SW-C收到此广播后,也会把数据来源端口--Gi0/22和源MAC--A的MAC地址写到自己的MAC表中,如下图所示。

SW-C#show mac address-tableMac Address Table
-------------------------------------------Mac Address       Type        Ports
-----------       --------    -----
1111.1111.1111    DYNAMIC     Gi0/21

然后SW-C也会广播此书,本例中会从Gi0/1转发出去。连到Gi0/1口的PC-D收到数据后,解封装ARP广播帧,发现不是询问自己,于是丢弃。

由于SW-C后,没有接其他交换机,至此广播结束,MAC学习也完成。

(3)交换到无限

通过这一次数据的发送(不一定非得是广播啊),SW-A、SW-B和SW-C都学习到了PC-A接到自己的哪个端口,不一定非得PC-A与自己直连,从而在整个LAN内部的交换机的MAC表里面都有PC-A的MAC表项。

同样的如果PC-B、PC-C、PC-D只要有数据发送,经过哪台交换机,哪台交换机就会在MAC表项中,记录B对应的表项。经过多次数据的交互,整个LAN内部所有交换机都有每个终端的MAC表项。

这些设备可以在LAN内部任意通信,无论接到哪台交换机,无论交换机数量多与少,这也就是我们通常所说的交换到无限。

2.4 LAN的不足

从上面的分析中,不难看出只要有个广播请求出现,会导致整个LAN内部所有的交换机都会广播此请求,这无疑浪费了交换机的带宽。

另外,接到交换机上的所有设备都会收到此广播,即使它不是此广播的目标者,这无疑是对非目标设备的一种攻击。

因此在生产环境中,我们很少直接使用LAN,而是在LAN上启用VLAN,具体请看下一篇。当然了,有些小的企业,也会直接使用LAN,比如几十号人的公司,两台48口交换机搞定,不怕广播。

2.5 考察交换机性能的好坏

从上可知,整个LAN内部的每一台交换机都会记录LAN内部所有终端设备的MAC表项,如果终端设备数量很多很多,交换机里面的MAC表项就会剧增,所以说支持最大MAC表项的多少,成为衡量一台交换机性能的很重要的一个指标。

当然了,MAC表项的增多,也会导致查表时的速度快慢,这也是很重要的一个指标。其他的就不多说了,毕竟本文是讲原理,而不是产品选型。

写给非网工的CCNA教程(5)应用最为广泛的网络--局域网LAN相关推荐

  1. 三层vxlan原理_网工知识角|没人会告诉你的网络SDN软定义技术中VXLAN的4个特点

    点上方蓝字关注公众号领取5个G网工学习大礼包免费发放,独家学习资料&电子书&工具&视频留言可领取 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 如何定义VxLA ...

  2. ftp协议是一种用于_______的协议_网工知识角|快速理解FTP和TFTP的区别,实用收藏...

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 FTP和TFTP的区别是什么 CCNA零基础入门必学 FTP(FileTransfer Proto ...

  3. 网络工程师怎么系统性学习?这份网工资料包帮你解决

    只要还有什么东西不知道,就永远应当学习. 这份网工资料包包括网工光速入门视频.网工系统学习大纲.网工软件安装包.网工大厂面试题.华为认证考试题库等12份网工系统学习资料,全方位为你的网络技术学习保驾护 ...

  4. 对路径的访问被拒绝怎么办_学习了解ACL—扩展访问控制列表,就在网工知识角...

    学网络,就在IE-LAB 国内高端网络工程师培养基地 基于ACL过滤telnet和特定的网段信息 什么是访问控制列表(ACL)? 应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包 ...

  5. lumen认证中出现unauthorized._网工知识角|一分钟搞定802.1x认证配置,了解三种授权模式的区别...

    k点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 今天让我们简单看下802.1x的基本配置. 我们先考虑一下配置接口的授权方式: 接口的802.1 ...

  6. ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议

    学网络,就在IE-LAB 国内高端网络工程师培养基地 PPPOE( Point-to-PointProtocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网 ...

  7. 网管交换机与非网管交换机的利弊介绍

    交换机可以分为网管交换机以及非网管交换机,网管型交换机就字面上的意思,可以网络管理的交换机,而非网管交换机,是相对网管型交换机而言的,非网管交换机又称为傻瓜型交换机,不需要任何设置,插上网线即可.那么 ...

  8. esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制

    学网络,就在IE-LAB 国内高端网络工程师培养基地 为防止MAC地址洪泛攻击,防止未经允许的设备访问网络,并增强安全性.通过端口安全机制,录连接到交换机端口的以太网MAC地址,只允许某个或者某些合法 ...

  9. 脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 QOS是网络服务质量技术,是所有考试中都会有的考点,主要在SP的课程中详述,是高中低级的网工都有必 ...

  10. python snmp采集交换机信息_网管交换机与非网管交换机的利弊介绍

    交换机可以分为网管交换机以及非网管交换机,网管型交换机就字面上的意思,可以网络管理的交换机,而非网管交换机,是相对网管型交换机而言的,非网管交换机又称为傻瓜型交换机,不需要任何设置,插上网线即可.那么 ...

最新文章

  1. 重学前端学习笔记(三十六)--Flex 布局
  2. 在 C# 中,如何发现死锁并防止死锁
  3. AssetBundle Workflow
  4. export和export default的区别
  5. cf1557 C. Moamen and XOR
  6. 使用Hadoop自带的例子wordcount实现词频统计
  7. 引领PCB行业变革 捷配开启免费打样新时代
  8. 记账程序及GitHub学习记录3
  9. 前端直接访问登录页面报错_如何实现登录、URL和页面按钮的访问控制
  10. 3月11日Linux课程笔记
  11. c#图片反色,取底色,照片底色效果
  12. Vue.js 基础入门
  13. android使用百度地图SDK 去掉百度Logo的小技巧
  14. 把Date类型的Fri Feb 01 00:00:00 CST 2019转换成yyyy-MM-dd格式
  15. django系统发送邮件到用户邮箱,完成验证
  16. 计算机能玩什么游戏,《梦幻西游网页版》官网——网易官方正版出品
  17. LinuxProbe 0x13 网站服务程序、SELinux安全子系统、个人用户主页功能、虚拟网站主机功能
  18. syntax error: unexpected :=解决方案
  19. 酷狗音乐API数据接口--分析
  20. JS如何手写new(一看就懂)

热门文章

  1. 数据元和元数据的区别
  2. HFSS - 圆极化矩形微带天线设计与仿真
  3. win7安装Python所需资源
  4. Opencl入门Demo
  5. opencv3编程入门-毛星云
  6. 关于DNF的多媒体包NPK文件的那些事儿(5)- IMG文件里的指向型索引项(指向帧)的深度与有向环检测
  7. 华为ensp模拟器 三层交换机
  8. 大型电商网站设计——商品详情页面静态化
  9. 【控制】动力学建模简介 --> 牛顿-欧拉 (Newton-Euler) 法和拉格朗日 (Lagrange) 法
  10. 手机IMSI号码编码规则表