网工视角看基础网络,原来这么与众不同

news/2024/5/20 21:08:25

大家好,我是老杨。

前两天去华为生态大会刚回来,颇为感慨。

感慨万物互联的世界越来越大,网络渗透度也越来越极致化。

网络很大,非常大,但在网工眼里,网络复杂又美妙,有着外行人难以理解的魅力

想看我去这次大会到底逛了些啥的,可以看我的第二篇专门写的游记文章,同步更新中。

今天想和你分享一个故事,从一个简单的网络拓扑切入,了解网工眼里,一个小网络的运行过程,到底需要涉及哪些有趣的技术。

今日文章阅读福利:《交换机学习笔记(280页独家)》

如果你想系统学习网络技术,也私信老杨,发送暗号“280”,即可获取此份资源。每周,我也都会选取10名私信的小友,进行1v1的深度解答。

看图,这是一个使用集线器连接的基本LAN网络。实际上,它只有一个冲突域和一个广播域。

你认为Bob的PC将如何与名为Sally的PC通信?

你看啊,它们位于同一个LAN中,通过多端口转发器/集线器相连。

所以说,Bob到底是发送数据报文“Sally, 你在吗”,还是使用Sally的IP地址并发送数据报文“192.168.03, 你在吗”?

很多网工的答案可能是第二个,但其实这两个答案都不对。

为啥?

因为Bob与Sally通信时,实际上将使用后者的MAC地址(称为硬件地1址,刻录在Sally的PC网卡中)。

既然Bob只知道Sally的名字,而且甚至不知道其IP地址,它如怎么知道Sally的MAC地址?

首先,Bob会先进行名称解析(将主机名解析为IP地址),这通常是使用DNS ( Domain NameService,域名服务)完成的。

注意,鉴于这两台主机位于同-一个LAN中, Bob只需发送广播询问Sally的IP地址,而不需要使用DNS。

下面是网络分析器的输出,描述了Bob与Sally通信的起始过程:

Source Desti nati on Protocol Info

192.168.0.2 192.168.0.255 NBNS Name query NB SALLY<0O>

正如前面指出的,鉴于这两台主机位于同一个本地LAN中,Windows (Bob)将通过广播来解析名称Sally (目标地址192.168.0.255 是一个广播地址),而Sally告诉Bob自己的地址为192.168.0.3(上述分析器输出中没有这项信息)。

下面来看看其余的信息:

EthernetII , Src:192 .168.0.2(00:14:22:be:18:3b) ,Dst:Broadcast(ff:ff:-ff:ff:ff:ff)

上述输出表明,Bob知道自己的MAC地址和IP地址,但不知道Sally的IP地址和MAC地址,因此,Bob发送一个数据链路层广播,其目标MAC地址全为f,并发送一个IPLAN广播,其目标地址为192.168.0.255。

现在,Bob必须在LAN上广播以获悉Sally 的MAC地址,这样才能与Sally 通信并发送数据:

Source

Destination Protoco1 Info

192 .168.0.2 Broadcast ARP who has 192 .168.0.3? Te1l 192.168.0.2

下面来看看Sally的响应:

Source Destination Protoco1 Info

192.168.0.3192.168.0.2 ARP 192.168.0.3 is at 00:0b:db:99:d3:5e

192.168.0.3 192.168.0.2 NBNS Name query response NB 192.168.0.3

到这里为止,Bob 获悉了Sally 的IP 地址和MAC地址。

在前面的输出中,这些地址都是作为源地址列出的,因为信息是由Sally发回给Bob的,Bob终于获得了与Sally进行通信的所有东西。

但是啊,有时候必须将大网络划分成系列小网络, 因为随着网络的增大,用户响应将非常缓慢,而LAN数据流将发生严重拥塞。

对于这种问题,解决之道是将大型网络划分成众多小网络,这称为网络分段( network segmentation)。为此,可使用路由器、交换机和网桥等设备。

看下图,图里使用交换机对网络进行了分段,让与交换机连接的每个网段都成为了一个独立的冲突域。但这个网络仍只有一个广播域。

需要牢记的是,图中的集线器,只用于扩展交换机端口连接的冲突域。

其实,导致LAN拥塞的常见原因主要是五个:同一个广播域或冲突域中的主机太多,广播风暴,组播数据流太多,带宽太低,以及使用集线器扩展网络。

看图,你会发现,在这里,其实是用交换机替换了第一张图之中的主集线器,你发现没?

为什么这么做,主要是因为集线器不能将网络分段,而只将网段连接起来。

基本上,使用集线器将多台PC连接起来是一种廉价的解决方案,非常适合用于家庭网络和排除故障,但仅此而已。

当前,路由器用于连接多个网络,并在网络之间路由数据分组。默认情况下,路由器将广播域划分成多个。

广播城( broadcast domain )指的是同一个网段中所有设备组成的集合,这些设备侦听该网段中发送的所有广播。

在这里主要是使用了一台路由器,它组建互联网络并划分广播域。

图示网络很不错,每台主机都位于一个独立的冲突域中,而路由器将网络划分成了两个广播域。

另外,该路由器还提供了到WAN服务的连接。路由器使用串行接口来建立WAN连接,在思科路由器中为V.35物理接口。

对广播域进行分割很重要,因为一台主机或服务器发送网络广播时,网络中的所有设备都必须读取并处理这一广播,除非在网络中使用了路由器。

路由器的接口收到广播后,可这样作出响应:将广播丢弃,而不将其转发给其他网络。

虽然路由器默认对广播域进行分割,但请牢记它也对冲突域进行分割。

在网络中使用路由器的优点有两个

1. 默认情况下,路由器不转发广播

2. 路由器可根据第3层(网络层)信息(如IP地址)对网络进行过滤

在网络中,路由器有如下4项功能

1. 分组交换

2. 分组过滤

3. 网络间通信

4. 路径选择

记住,路由器实际上是交换机一第3层交换机。

与第2层交换机转发或过滤帧不同,路由器(第3层交换机)使用逻辑地址,并提供分组交换功能。

路由器还可使用访问列表进行分组过滤,当路由器连接多个网络并使用逻辑地址(IP或IPv6)时,便组建了互联网络。

最后,路由器使用路由选择表(互联网络地图)来选择路径并将分组转发到远程网络。

相反,交换机不用于组建互联网络(默认情况下,交换机不对广播域进行分割),而用于提高LAN的功能。

交换机的主要用途是让LAN更好地运行一优化其性能, 向LAN用户提供更高的带宽。

交换机不像路由器那样将分组转发到其他网络,而只在交换型网络内的端口之间交换帧。

默认情况下,交换机对冲突域(collision domain)进行分割。

冲突城是一个以太网术语,指的是这样一种网络情形:某台设备在网络上发送分组时,当前网段中的其他所有设备都必须注意到这一点。

如果同时有两台设备试图传输数据,将导致冲突,而这两台设备必须分别重传数据,因此,效率不高。

这种情形通常出现在使用集线器的网络环境中,与某个集线器相连的所有主机都属于同一个冲突域,且属于同一个广播域。

与此相反,交换机的每个端口都是一个独立的冲突域。

交换机创建多个冲突域,但只创建一个广播域,而路由器为每个接口都提供不同的广播域。

术语桥接是在路由器和集线器面世前出现的,因此经常会听到有人将网桥和交换机混为一谈,这是因为网桥和交换机的基本功能相同,都将LAN划分成多个冲突域。

实际上,当前已买不到网桥,而只能买到LAN交换机,但它们使用的是桥接技术,所以思科仍将它们称为多端口网桥。

这是否意味着交换机不过是更智能的多端口网桥?

大致如此,但交换机不同于网桥。

交换机确实提供了网桥的功能,但其管理功能得到了极大改善。

另外,大多数情况下,网桥只有2或4个端口。

虽然你可能遇到端口多达16个的网桥,但相比有些交换机的端口多达数百个的情况,这不值一提。

在网络中使用网桥可减少广播城中的冲突,并增加网络中的冲突城。这样做将给用户提供更高的带宽。

另外,请记住使用集线器可能使以太网更拥堵,请务必仔细规划网络设计。

下图是一个使用了所有这些网络互联设备的网络。请记住,使用路由器时,不仅可使每个LAN接口都属于一个独立的广播域,它还将分割冲突域。

在图1-4中,路由器位于中央,它将所有物理网络连接起来,你注意到这一点了不?

鉴于采用了较旧的技术一网桥和集线器, 我们必须使用这种布局。

上图所示烦人互联网络顶部,有一个网桥将集线器连接到交换机。

网桥对冲突域进行分割,但同时连接到两台集线器的所有主机都属于同一个广播域。

另外,该网桥只创建了两个冲突域,因此连接到同一个集线器的所有设备都属于同一个冲突域。

实际上,这很糟糕,但胜过让所有主机都属于同一个冲突域。

另外,图中底部3台彼此相连的集线器也连接到了路由器,它们组成了一个冲突域和一个广播域,这让这个桥接型网络看起来确实好很多。

虽然网桥/交换机用于将网络分段,但它们不能隔离广播和组播分组。

注意:虽然网桥/交换机屑于将网络分段,但它们不能隔离广播和组播分组。

在与该路由器相连的网络中,最好的是左边的交换型LAN网络。

为啥?

因为交换机的每个端口都属于一个独立的冲突域,但这还不是太好,因为该网络中的所有设备都属于同一个广播域。

这实际上可能很糟糕,你还记得其原因吗?所有设备都必须侦听所有的广播,这就是其中的原因。

广播域太大时,用户可用的带宽就很少,必须处理的广^播就很多,而网络的响应速度将会慢到引起办公室骚乱的程度。

在该网络中仅有交换机时,情况将得到极大改善。下图显示了当今常见的网络。

在这里,以LAN交换机为核心建立了网络,因此路由器连接的只是逻辑网络。

采用这种配置时,便创建了虚拟LAN (VLAN)。

然而,即使组建了交换型网络,仍需使用路由器(第3层交换机)进行VLAN间通信,理解这一点非常重要, 可别忘了。

显然,最佳的网络是这样的:进行了正确配置,能够满足公司的业务需求。

最佳的网络设计是,在网络中正确地结合使用LAN交换机和路由器。

在该图所示的互联网络中,有多少个冲突域和广播域?

冲突域9个,广播域3个,你答对没?

广播域最容易辨别,因为默认情况下,只有路由器对广播域进行分割。

鉴于路由器连接有3条,因此有3个广播域。但你明白为什么冲突域有9个吗?

如果不明白,请听我解释:

只包含集线器的那个网络是一个冲突域,使用了网桥的网络有3个冲突域。

加上交换型网络中的5个冲突域一每个交换机端口对应一个,总共是9个

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部


https://www.xjx100.cn/news/306106.html

相关文章

基于springboot+vue的校园任务订单配送管理系统

随着我国教育制度的改革的发展&#xff0c;各大高校的学生数量也在不断的增加。当前大学生的生活和消费习惯等导致他们更喜欢通过网络来获取自己想要的商品和服务&#xff0c;这也是导致当前校园配送盛行的主要原因。为了能够让更多的学生享受到校园配送的服务&#xff0c;我们…

数据更新了,但视图并没有更新

&#x1f449;vue中数据改变&#xff0c;视图不更新的原因以及解决方法&#xff08;强制更新视图&#xff09;_在使用vue开发中如果数据发生变化而视图没有更新的原因是什么怎么解决_小太阳...的博客-CSDN博客 目录 1.某些方法操作数组 2.对象属性的添加或删除 a.动态添加一…

单词拼写检查textblob模块spellcheck方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 单词拼写检查 textblob模块 spellcheck方法 [太阳]选择题 关于python代码说法错误的一项是&#xff1a; from textblob import Word myWordsuccessfulee print("【显示】myWord …

【K8s】常用的Pod控制器

文章目录 一、认识Pod控制器1、控制器介绍2、控制器种类 二、ReplicaSet&#xff08;RS&#xff09;1、RS的作用与资源清单2、创建RS3、pod扩缩容4、镜像升级5、删除RS 三、Deployment&#xff08;Deploy&#xff09;1、作用与资源清单2、创建deploy3、扩缩容4、镜像更新5、版本…

真魔幻!男子面试到一半公司竟然宣布倒闭,公司给了方案,网友:还没上班就赚好一笔补偿金...

刚看到一则资讯&#xff0c;真魔幻&#xff01; 据媒体报道&#xff0c;上海一男子称自己面试到一半公司宣布倒闭了。 公司规模还不小&#xff0c;是手机大厂OPPO旗下的哲库&#xff08;ZEKU&#xff09;芯片子公司。 他表示过程很戏剧性&#xff0c;自己过了第一轮技术面&…

多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)...

计算机视觉研究院专栏 作者&#xff1a;Edison_G 深度特征学习方案将重点从具有细节的具体特征转移到具有语义信息的抽象特征。它通过构建多尺度深度特征学习网络 (MDFN) 不仅考虑单个对象和局部上下文&#xff0c;还考虑它们之间的关系。 公众号ID&#xff5c;ComputerVisionG…

如何安装Mysql的审计插件

背景 最近项目要验收了&#xff0c;数据库的一个验收标准就是要有数据库审计&#xff0c;所以参照资料安装了Mysql的审计插件。 正文 一、下载插件 下载地址&#xff1a;https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files 可选择对应MySQL5.7数据库的…

Django如何把SQLite数据库转换为Mysql数据库

大部分新手刚学Django开发的时候默认用的都是SQLite数据库&#xff0c;上线部署的时候&#xff0c;大多用的却是Mysql。那么我们应该如何把数据库从SQLite迁移转换成Mysql呢&#xff1f; 之前我们默认使用的是SQLite数据库&#xff0c;我们开发完成之后&#xff0c;里面有许多数…