【计算机网络 | 第二篇】计算机组网模型
本文用Cisco Packet Tracer模拟器学习网络互联基础,保证质量的同时,又不让人感到乏味,涵盖直连计算机配置(IP设置、ping验证)、多设备互联方案对比(同轴电缆、集线器、交换机等),以及路由器跨网段通信(网关设置、ARP协议)。通过仿真演示数据转发流程,直观理解网络通信原理。
在初步理解了计算机网络的体系结构后,考虑到光靠文本不能给大家带来足够的感性体验,我们先用网络模拟器来看看,如何保证多台计算能够互联互通。
本篇章需要的模拟器软件为:Cisco Packet Tracer
由于这个软件在官网上需要看课答题才能下载,且注册起来非常麻烦且容易出问题,为了方便,我会将安装破解汉化流程及其文件链接放在评论区。
计算机间的链接方式
一、两台计算机的互联
● 网线直连
○ 需要交叉线(不是直通线,直通线也就是我们平时说的网线)
在根据流程成功进入Cisco Packet Tracer后,我们会发现我们界面是形如这样的

我们会发现,下面的那一列有非常多的选项,在这里我们需要找到PC设备和连接。
我们需要将PC设备拖到我们的白板上,并点击下方的连接选项,我们会发现,在我们计算机网络中,两个设备的链接并不是我们想象的只需要网线就好了,我们发现计算机的组网连线其实是非常复杂的,当然,这点只作了解即可。
此处我们只需要选择自动选择连接类型即可。

可以看到,在此处我们自动连接选到是铜交叉线,理论上来说,我们两台同种设备,是不能直接用我们现在经常看到的网线相连的。那肯定有人会问,那为什么很多电脑网线一插就有网了呢?
那是因为我们网线的另一端插的是路由器或交换机而非另一台主机(这部分的原理涉及到我们硬件中的管脚的概念,感兴趣的兄弟可以去搜搜)。
● 能否通信
那现在我们的两台计算机已经相连了,那我们就可以通信了吗?
答案显然是否定的,在计算机中,我们会引出一个概念——IP地址(这个我们东西我们后面会着重强调并讲解),这个东西可以理解为我们电脑的身份证。
我们单击我们的PC设备,我们会发现,我们进入了“计算机的内部”,在这里我们要配置我们的IP地址,在配置选项中的FastEthernet0,你可以把这个东西理解为我们的网卡。

但在提到其中的IP配置前,我们可以看到上面的MAC地址,这个东西就是我们网卡的地址,这个我们先不细讲,在下一篇中,我们会详细的学习这个东西。
好的,我们现在来看IP配置

我们按照上方图片中注释里的IP来配置,填在在FastEthernet0中的IPv4 Address栏,填上上图的IP,我们的子网掩码会自动配置好,至于为什么这么配,仍会放在我们的IP章节。

像这样,我们就完成了对两台PC设备之间的连接,此时,我们需要ping命令来验证我们的连接。

我们点开我们桌面选项中的命令提示符,对其ping了一下,发现确实是可以收到东西的,即验证连接成功。
● 仿真模式
虽然我们已经验证连接成功了,但我们会发现,这样好像还是有点不舒服,感觉可视化还是不到位,我们Cisco Packet Tracer这个软件就是旨在一切都可以用鼠标与可视化图像完成,那么来吧!
我们可以看到在我们的右下角有两种模式一种是实时,一种是仿真。而仿真模式呢,就像我们IDE中的调试功能一样,能将我们的指令转化为多步操作并一步一步展示给你看。

我们的红框就是我们的ping命令了,我们点击一下,并点击你想发送的起始PC,再点击另一台PC就可以了,而我们的蓝框就是将这个操作给拆分,并一步步执行。而我们的绿框,则是对上述ping命令的删除,也就是会删除右上角的框框中的内容。
当然此时你就算在刚才的命令提示符中ping包,那此处也会进行操作拆分。
当我们点击我们ICMP包后,就能看见更多信息,如OSI模型内部展,以及协议头的内容展示等


● ARP
当我们看到这个信息,思维敏锐的你可能会发现,虽然我们自己的机器现在知道了对方的IP地址,但自己的机器凭什么知道对方的MAC地址呢,这两个东西可是一一映射的啊。
其实刚在此处我先用ping命令也是在隐藏这一点,如果我们一开始就进行可视化抓包,我们就会知道,我们一开始是会先去广播对方,拿到对方的MAC地址后,我们才会发我们的包。现在我们从头开始再一次进行我们的ping命令。
在此之前,我们先将我们的第二台计算机的IP配置改一下,目的是为了丢弃当前对方的信息(只要前面三位是192.168.1最后一位看你心情设置就好了)

我们会发现,当我们放ICMP包后,突然出现了ARP包,虽然这个ARP协议是想放在了MAC地址那章节讲解,但为了考虑连贯性,此处我就直接讲完吧。
● ARP协议——也称地址解析协议
(在这块如果想重置每个设备之间的记忆存储,我们就可以点击在左下角那个时间旁边的旋转中间有个点的图案)
我们点击第一个ICMP包后,我们可以看到下图中我们的链路层是空的,而之前的那种情况,链路层是有MAC地址的,但我们计算机内核一看到我们链路层为空,那它肯定会想:“那这不行啊,我链路层为空,那我到底往哪发啊?”,那这个时候,我们ARP协议包就应运而生了。

那么,我们的ARP包到底是在干啥呢?我们可以看到下图

我们可以看到,我们此处从计算机0发往计算机1的ARP包中就写了,从哪哪哪也就是第一条MAC地址,发往FFFF.FFFF.FFFF的设备(这个全F的地址含义是广播,也就是只要现在跟我连着的设备,我全都发),该目的设备拿了包一看,如果IP地址对上了:“我去,这老乡见老乡,两眼泪汪汪,原来你才是我的命中注定之机”,那么该设备就会向源设备回一个ARP包,其中就会包着该设备的MAC地址。若并非是自己的IP地址,那就不用回了。

当ARP包回来后,我们就会发现我们的ICMP包的链路层就填好了。
ARP其实是具有时效性的,我们互联的设备中ARP是需要经常发送的。
二、多台计算机的互联(旧式)
● 同轴电缆
○ 连接模型,左右扩散

○ 连接特点:
■ 半双工通信、容易冲突
■ 不安全、一旦某段线路出现问题,整个通信网络都会瘫痪
此处的半双工为硬件概念,在此只说明下三种通信方式都是什么意思。
我们在通信过程中,都有发送端和接收端。
单工: 发送端、接收端,设备只具有两者之一的一种能力。
全双工: 发送端、接收端,设备具有两种能力。
半双工: 发送端、接收端,设备具有两种能力,但信道只有一根,即在同一时间只能满足一种能力,最典型案例为对讲机。
三、多台计算机的互联 --- 集线器(Hub)
● 概念
集线器有多个接口,接口的类型是RJ-45。一个接口收到数据后会发给其它的全部接口。集线器工作在物理层,类似于一个多接口的转发器,收到什么就转发什么,一个接口收到会转发给其它的全部接口。

● 连接模型
此处我们选择集线器版本的时候,我们只需要用以名字为命名的通用版本就可以,往后的装置都同理

我们现在按照该模型来配置机器,并开始演示。

看到右边的栏目我们会发现,每次消息发送到集线器时,集线器都会广播一次,这是因为集线器是没有记忆能力的,只是一台纯硬件。等会我们看到交换机就不一样了。
因此,其实集线器是有很多问题在的,如果将更多的设备与集线器连接,那么冲突一定会非常多,因为我们的数据包是在到处发的。但由于是纯硬件,所以集线器的收集能力强的过分(即你发的包我集线器全收了,并发到其他所有连接设备),在某种意义上来讲,这也许是件好事,因为在工作中若遇见需要抓包或调试的情况,那么集线器就是很不错的选择。
当然,集线器之间也是能相互连通的,如下图。

● 连接特点:
■ 半双工通信、容易冲突
■ 不安全、跟同轴电缆一样,没有记录存储能力,但某两个节点出现问题,不影响其他节点
● 缺点:
如果有1000台设备用多集线器连接,那么1台主机发送的数据,虽然最后只有一个主机来处理这个数据包,但会被发送到999台主机,对整个网络链路的占用率会非常高
四、多台计算机的互联 --- 网桥(Bridge)
● 概念
网桥又叫做桥接器,工作在数据链路层,是一个二层设备。网桥能够互连两个采用不同传输介质与 不同传输速率的网络,但是网桥需要互连的网络在数据链路层以上采用相同的协议。网桥可以分隔两个网络之间的通信量,对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪⼀个接网,或者是把它丢弃(即过滤),这点特性也就是我们刚提到的“记忆能力”,但与交换机不同的是,他只有两个接口。

网桥设备在我们软件中交换机栏那里,我们将它拿出来后,我们点击它,我们发现网桥这个东西,它并不用配置什么IP什么的,也就是说它仍然是物理层的硬件,不过是加了张“记忆存储表”的集线器。

● 通信流程

(如果此处网桥左右两边的绿色三角变成橙色了,那么不断切换实时和仿真模式就可以变为绿色三角,相当于是个bug?)
我们开始解析这个模型的互联过程:
我们现在先将从计算机1ping计算机2,我们不断的往前走,直到 计算机2 将ARP包回给 集线器1,我们 集线器1 又将ARP包发给网桥,我们会发现此处ARP包是过不去网桥的,原因就是,我们计算器1 发第一个ARP包的时候 集线器1 已经帮我们广播给网桥了,网桥已经记录了计算机1的信息,且也知道了 计算机1 在网桥的左边,所以 计算机2 回的那个ARP包是不能通过网桥的。

到最后的最后会有个STP包,名为生成树协议,这个先不用管。
五、多台计算机的互联 --- 交换器(Switch)
● 特点
相当于集线器+网桥,接口更多的网桥、全双工通信,比集线器安全。

既然和上述装置非常的相似,那我们就直接开始
● 通信流程

我们从 计算机1 向 计算机2 发一个包,我们的ARP不断发发发,然后到 计算机2 回给交换机0 的时候,我们再做一步,就会发现跟网桥一样,我们的交换机只会把 计算机2 回的ARP回给 计算机1,而不会再次广播到 计算机0/3。
此时如果我们进行 计算机0和3 的通信,那么我们交换机就还要广播,因为仍不知道谁是0或3。
● 思考
全球所有的设备都用交换机连接会是什么情况?
答:理论上是可以的,
但我们的网络带宽将几乎全部被广播流量占据,有效数据无法传输,网络会瞬间瘫痪。
而且交换机的MAC地址表容量有限(通常几万到几十万条)但有数十亿设备的MAC地址需要学习,这远超任何交换机的处理能力。
六、多台计算机的互联 --- 路由器(Router)
● 特点
○ 可以在不同网段之间转发数据
○ 隔绝广播域
● 之前的多台计算机互联,连接的设备必须在同一网段,处在同一广播域,像下图中的计算机0去ping计算机2是ping不通的,那这个时候,我们路由器就来了。

● 通信流程
跟之前一样,我们在这里型号选择通用的PT-Router。

我们路由器其实就是个中转站,他会根据实际选择往哪个地方发。
那么我们怎么让左边的192.168.1的网段能通过路由器到右边的192.168.2的网段呢?
我们先来看看在我们PC设备里有一个全局设置,全局设置中是有一个网关设置的,那么这个网关是什么意思呢,当我们计算机发现我们目标IP不是我们这个网段的,那么他就会把这个目标IP的数据包发给网关,而路由器就充当着这个网关的角色。
我们再点开我们的路由器配置来看,我们会发现好多的接口啊,那这个路由器的左边和右边的线到底又分别对应哪个接口呢,我们设置里就可以设置显示出来这个线条的对应接口,点开我们最上面的选项,再点首选项,再点击红框中的选选项就会出来了
现在,我们开始配置网关,我们对应接口一定要配上属于那边接口的网段,也就是前三位一定要一样,最后一位,要跟那边网段的设备都不一样,我们通常写为1,然后右边也同理,注意我们这里端口状态是默认关闭的,需要打开,否则下面的那个红色三角就没办法变为绿色三角,也就是非通状态。

那我们既然已经设置好了路由器的IP配置,那么是不是就说明我们现在可以跨网段互联了呢?我们不妨可以试一下。

我们发现ICMP包根本就发不出去,这是为什么呢?
因为你忘了一个最重要的步骤,就是让你的计算机要认识网关在哪
还记得我们点击我们的PC设备在全局设置那有个网关设置吗,我们需要在此处也进行IP设置,就是填入路由器接口设置的IP,即刚刚的192.168.1.1。
那么此时我们就可以进行互联了,在这其中,仍有一部分内容需要强调——因为我们的链路层并不知道跨网段的对方的MAC地址,所以我们会先找网关的MAC地址。

找到过后当ARP回到了计算机0且计算机0发了ICMP包到路由器那,我们会发现,路由器会继承原本计算机0的工作,即去广播谁是计算机2,且我们会发现我们的路由器会将ICMP包给丢掉,因为路由器在广播的过程中,路由器的等待队列会将第一个ICMP包丢掉,并等待足够的时间让计算机0重发这个包,然后再去发给计算机2,这部分原因是考虑到,因为如果对面没有想要的IP地址,但ICMP包仍占据了路由器的等待队列,这样肯定会占据不必要的资源,故进行了丢包。
所以流程我们总结为:
1> 同一个网段:ARP广播,查找MAC,通过交换机、集线器传递数据
2> 不在同一个网段:主机向网关发送数据,通过路由器转发数据
结语
那么关于计网组网的讲解就到这里了。
我是YYYing,后面还有更精彩的内容,希望各位能多多关注支持一下主包。
无限进步,我们下次再见。
系列上期内容:【计算机网络 | 第一篇】计算机网络概述
系列下期内容:暂无
更多推荐




所有评论(0)