02-网络基础知识之计算机设备如何通信

一. 基础概念

随着科技的发展,我们现在的设备主要是都是路由来通信;但是如何发展到路由这一步的呢?一起了解一下吧。

了解交互之前,需要先了解两个概念:
IP地址
MAC地址
ARP协议
ICMP协议

通信时必须包含4个地址:源IP地址、源MAC地址,目标IP地址、目标MAC地址,这样才能找到对应的计算机通信。

1.1 IP地址及MAC地址

  • 何为IP地址呢?

简单的说,IP地址就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,也就说,给Internet上每一台电脑一个编号,作为他的地址。例如,mac的上IP地址如何查看呢? 点击左上角的苹果图标->选择“偏好设置”->选择“网络”->选择“高级”->如下图:
在这里插入图片描述

  • 何为MAC地址

MAC地址,也成为网卡地址,每台电脑都有唯一的不变的MAC地址;通信上的数据需要输送到网卡上,由网卡接收并发送。
每一个网络数据包,都需要包含两个地址:IP地址和MAC地址;如果某个的MAC地址为FFFF.FFFF…这样格式的,表示MAC地址为空,那么就需要通过广播找到对应IP地址的MAC地址,然后将MAC地址数据回传。

1.2 ARP 和 ICMP协议

  • ARP协议

在了解两个计算机通信时,也需要了解一下ARP协议,当计算机1 想给计算机2 通信时,需要IP地址和MAC地址;如果知道了对象的IP地址,但是并不知道对象的MAC地址,那么就需要通过ARP协议来寻找MAC地址了。

  • ICMP协议

如果知道了计算机2 的IP地址 和 MAC地址,那么就可以用ICMP协议发包,跟计算机2 通信。

二、两个计算机的通信发展过程

2.1 交叉线

在计算机刚开始发展的初期,如果想要两台计算机相互通信的话,可以用“交叉线”,将两台计算机连接起来。但是这种方式呢,只能连接两台电脑,如果机器多了,就不行了。

2.2 集线器

首先,可以先看看集线器长什么样子,如下图:
在这里插入图片描述
可以看到集线器上有多个接口可以连接计算器;集线器可以解决初期多个计算机要相互通信的需求。

集线器的工作原理,很简单,就是通过广播的形式将所有的包都广播发送给所有连接到集线器的计算机,计算机再根据MAC地址及IP地址判断是否需要处理

集线器是没有智商的,等于说,任何通信不管是 APR协议还是ICMP协议,只要经过了集线器那么集线器就会转发给所有连接它的计算器。如果某个集线器连接了1000台设备,那么一台设备发送了一个包,那么集线器就会将包转发给其余的999台设备。

而且,集线器还是半双工通信,如果有一方在发送东西,那么其他人都不能发送。

集线器的通信流程如下
在这里插入图片描述

如果集线器0 连接着3个计算机:计算机0、计算1、计算2;那么现在设定,计算机0要给 计算机1 发网络数据包(以后统称为发包),那么:
(1)计算机0将包发给集线器,因为是计算机0发的包,所以包里面肯定包含了“计算机0的源IP地址和源MAC地址”,但是只知道目标的IP地址,并不能知道目标的MAC地址是多少;
(2)这时候,就需要ARP协议来寻找MAC地址,怎么找呢?首先,包会经过集线器,集线器会把包发给所有的除了计算机0的其他计算机
(3)计算机1 和 计算机2 接收到 集线器发过来的包后,查看该包的IP地址跟自己的是否一致,如果不一致,就把包丢掉,不做处理;
(4)如果是一致的话,就把自己的MAC地址与IP地址作为源ID和源MAC地址,将计算机0的IP地址和MAC地址作为目标的IP地址和目标MAC地址装到包里,发给集线器,集线器又会把包转发给其他的计算机;然后重复第三个步骤;
(5)这样计算机0 就能知道计算1MAC地址是多少了,接着就可以通过ICMP协议发包进行真正的数据传输了;
(6)传输的时候,虽然知道了计算机的IP地址和MAC地址;但是也是需要计算机0 把包 发给集线器集线器转发给其他的计算机;计算机接收到包后查看是否需要处理,如果是发给自己的就处理,如果不是,就丢弃。

集线器的缺点就是:

如果连接的计算机比较多的话,因为是半双工通信,有一台计算机在通信的话,其他人都要等着;
或者有一个地方出问题了,那么整个连接集线器的都不可以用了。

2.3 网桥

网桥就是有两个接口的连接两个集线器,网桥的样子如下:
在这里插入图片描述
网桥比集线器智能一点,可以通过自学习得到两个口对应的MAC地址;也就说,可以通过自学习,知道左边的口有哪些MAC地址,右边的口有哪些MAC地址。

网桥的优势:

可以起到隔绝冲突域的作用

利用网桥的通信过程如下:
在这里插入图片描述
假定 计算机6 要与 计算机2 通信;那么过程如下:

(1) 计算6 将自己的IP地址和MAC地址作为源IP和MAC地址,将计算机2IP地址作为目标IP地址,将包发给集线器1;(因为这时候不知道计算机2的MAC地址,所以需要用ARP协议找到MAC地址
(2)集线器1因为没有智商,所以会把包发给 其他连接集线器1 的其他设备;也就是 计算机7 和8 还有 网桥0计算机7和8 收到包后,发现IP地址不是自己,就将包丢弃不处理
(3)网桥0收到包后,会将
计算6
Mac地址记录到自己的MAC表中,即网桥就可以知道左边的口有 计算机6 的MAC地址然后网桥看这个包的目标MAC地址没有,就将包发给集线器0
(4)集线器0 收到包后,又会转发给所有的其他机器计算机1 和计算机3收到包后发现不是自己的IP地址,丢弃不处理;计算机2收到包后,发现IP地址是自己,就把自己的IP地址和MAC地址作为“源IP地址和源MAC地址”将计算机6的IP地址和MAC地址作为“目标IP地址和目标MAC地址”,将包再发给集线器0
(5)集线器0,会转发给其他的设备,计算机1和3 发现不是给自己的,就丢弃了;网桥0收到包后,就将计算机2的MAC地址记录下来;那么此时,网络0就知道,右侧的端口有个计算2的MAC地址;
(6)之后,网桥0由把包发给集线器1集线器1把包转发给其他的设备计算机7和8发现目标IP地址不是自己丢弃不处理,计算机6发现IP和MAC地址都是自己,就接收;
(7)这时候,计算机6 就知道了计算机2的IP地址和MAC地址,就可以给计算机2 发ICMP的包;步骤跟第二步的一致,就不在复述了。

在假设上面的通信完成后,再假定 计算机6 要与 计算机7 通信;那么过程与上面的流程差不多;只不过经过网桥0后,网桥会记录左边的端口有计算机7的MAC地址;那么下次再与计算机7通信的时候,网桥0发现计算机7的MAC地址在左侧端口里,就不会给左侧端口连接的集线器0发包了。

2.4 交换机

虽然网桥可以带来一定的遍历,但是还是比较麻烦,于是就出现了交换机:
在这里插入图片描述

交互机可以理解为集合了集线器和网桥的功能于一身的机器;交互机可以通过链接多个设备,而且是 全双工通信。当一个设备通信时,对其他的设备通信不影响。

交互机每个口都连接一台设备,所以每个端口都可以记住连接设备的IP地址和MAC地址是多少。

利用交换机的通信流程如下:
在这里插入图片描述
假定计算机1 要给计算3 发送消息:

(1)计算1 将自己的IP地址和MAC地址作为源IP和MAC地址,将计算机3的IP地址作为目标IP地址,将包发给交换机1;(因为这时候不知道计算机3的MAC地址,所以需要用ARP协议找到MAC地址);
(2)经过交换机后,交换机会记录下连接计算机1 那个端口的MAC地址是多少;
(3)交换机会广播的方式把包转发给其他的设备;(因为这时候交换机不知道IP地址对应的MAC地址是多少,所以也需要广播的方法找);
(4)计算机0 和2 接收到包后,对比IP地址不是自己的,就把包丢弃了;计算机3 发现IP地址是自己,就把自己的IP地址和MAC地址作为“源IP地址和源MAC地址”,将计算机1的IP地址和MAC地址作为“目标IP地址和目标MAC地址”,将包发给交换机,交换机此时会把计算机3的MAC地址保存下来;
(5)因为此时这个包有计算机1的MAC地址,而且交换机也有保留MAC地址的记录,所以交换机会直接把包发给计算机1。
(6)如果下次再次与计算机3通信时,因为有计算机3的mac地址了,会直接把包发给计算3。

2.5 路由器

从2.4点中,可以知道,用交换机确实在通信中方便了很多,但是如果把全球的计算机都用交换机连接起来的话,那么就会有一些问题,例如:

广播风暴:因为要找IP地址对应的MAC地址要用广播
IP地址不够用
所有的设备都要在通过的网断内,那是不可能的,不同的服务器有不同的域名。

因为,就有了路由器,路由器可以在不同的网段之间转发数据、也可以隔绝广播域。需要注意的是,本地计算机的配置的路由器的地址(也成为网关)要与路由器上的对应这个连接域的口保持一致,否则无法通过路由器转发。因为计算机找不到路由器的地址。

计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段内:

如果在同一网段内:不需要路由器转发,直接发送ARP协议即可
如果不在同一网段内
(1)需要由路由器转发,那么需要先发送ARP协议查找路由器的MAC地址;
(2)找到路由器的MAC地址后,再发送ICMP协议把数据发送给路由器;
(3)路由器来判断目标IP地址决定应该把数据转发给谁;同时,路由器也需要先用ARP协议找到目标IP地址对应的MAC地址;
(4)再根据找到的MAC地址发送ICMP协议把数据发送给具体的设备。

利用交换机的通信流程如下:
在这里插入图片描述
假定 计算机2 要给 计算机5 发送消息:

(1). 在计算机2 要给计算机5 发消息前,会先判断 计算机5自己不在同一个网段
(2).因此,计算机2知道要用路由器来转发数据;所以,需要先找到路由器的MAC地址
(3) 计算机2先用ARP协议 广播的方式,找到路由器对应的MAC地址;
(4)找到路由器对应的MAC地址后,将包以ICMP协议的方式,发送给路由器
(5)路由器收到包后,发现目标IP地址在右边;但是并不知道目标IP地址的MAC地址;
(6)路由器会先发送ARP协议,找到计算机5的MAC地址;然后在用ICMP协议把数据包发给计算机5.

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值