计算机网络导论

网络结构的演变

网状结构

最开始的网络,主机之间都是两两相连

在这里插入图片描述

好处

这样连接,好处是安全性比较高(A与B之间的连线断了,可以绕一下C);
另外通信不需要互相等待(没有中间交换设备,所以没有竞争的中立资源,所以不需要排队),网络延迟小

需要说明的一点是,网线其实是电路线,通过高低电压的01信号传输信息

此时聪明的小伙伴会提出问题:现在不是有光纤吗,你怎么说网线是电缆线呢?

这样说其实没错,过去没有光纤的时候网线确实是电缆线,通过高低电压传输0101的数据;现在我们通过光纤,只有传输过程是光信号,到我们真正上网使用会将光信号转化为电信号(光猫,也叫调制解调器),所以本质上我们使用的还是电信号

坏处

但是随着机器数量的增多,这样的连接线数量也越来越多
在这里插入图片描述

假设我们现在有10万台计算机,按照这种方式连接,每台计算机需要连接99999条线,共4,999,950,000条线,公式是n*(n-1)/2

需要的电缆数量太多,而且电路会越来越复杂

星形结构1

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a470908d53fd4fa99dda7e6162f4d147.png

好处

电缆数量 = 计算机数量;
电路简单;

坏处

同时发会互相干扰,因为电压会互相叠加(势能)

星型结构2

在这里插入图片描述
所以我们中间加一个交换设备,先发给交换设备,然后交换设备再轮流转发

但是即便是这样,也可能会出现干扰,比如A和B同时给对方发信息,这里一般有两种模式处理:

可以同时发而不需要等待对方的,就是全双工模式;
不能同时双向发,只能一侧发完另一侧发,这样叫半双工;

坏处

另外, 不管全双工还是半双工,都需要在交换设备处排队等待(涉及到了资源的竞争)

现实网络交换结构

每家每户都有各自的网络设备(手机,电脑等),他们通过路由器连接,并轮流转发;
路由器连接到交换机,轮流转发请求,基本上每隔几栋楼会产生一个交换机(一般是在弱电井中,12,24,36根网线的都有);
交换机再连接到核心交换(核心交换的性能更为强劲),核心交换再连接到更高一级的设备……一般是6~8级的连接设备
在这里插入图片描述
家用的交换设备是路由器,小区楼之间用小型交换机作为交换设备

向上交换能力依次提升,小区交换机,街道交换机,乡镇交换机,区县交换机……最大的交换机是国家的大区(华北,东北,西北,华中,华东,华南……等),这些交换机之间两两连接

大区之间的数据会互相备份,保证出现问题能够恢复

国与国之间通过海底光缆等互相通信

计算机通信的原理

MAC地址

上面我们说了,最后我们用星型结构将计算机连接起来

我们连接起来是为了什么?自然是为了通信

那么现在问题来了,A要怎样才能发到B那边?

在一个小范围的虚拟内网中,我们一般使用MAC地址进行计算机的区分

MAC地址是每一个带有网卡的设备出厂时给予的一个,全球唯一的,不可改变的物理地址

中间的交换设备当中一般会存储一个MAC地址表,用于转发数据

这样,A只需要在发送数据时,携带B的MAC地址,即可发送数据给B
在这里插入图片描述

IP地址

但是MAC只能用于小范围的设备定位,假设跨省甚至跨国的两台计算机通信,依然使用MAC地址,需要遍历上千万的设备才能查询到,显然是不合理的

此时就用到了IP地址

IP = 网络部分(行政划分)+主机部分

IP主要作用是为了寻址

ip地址最多定位到某个交换设备的ip,但是不知道是这个交换设备哪台计算机,所以需要更进一步的,全球唯一的标识(目标设备id,即MAC地址)

IP和MAC共同合作才能实现端到端的通信

在这里插入图片描述

以112.113.87.50为例,112.113.87是可能代表网络部分,指定了你是哪个省,哪个市,哪个县的,最后一位表示你的上级交换机的ip地址

DNS服务器

百度的域名是www.baidu.com,我们访问百度只需要输入域名即可,不需要知道它的ip,这就是域名解析

将域名与ip映射起来,需要ip时将域名转化为ip,需要域名时将ip转化为域名

DNS服务器的地址写在了电话卡当中,以下这个是某些移动电话卡的DNS服务器地址
百度

三大运营商各自有各自的DNS服务器集群

当我们访问www.baidu.com时,会先请求DNS服务器(百度会先将自己的域名写入DNS服务器当中),将域名转化为ip,返回给我们;然后我们再带着数据访问百度服务器的ip(可能不止一个ip);最后百度服务器将数据返回给我们

在这里插入图片描述

相关推荐

  1. 计算机网络

    2024-06-07 02:36:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 02:36:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 02:36:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 02:36:01       87 阅读
  4. Python语言-面向对象

    2024-06-07 02:36:01       96 阅读

热门阅读

  1. 判断素数/质数

    2024-06-07 02:36:01       29 阅读
  2. Loguru,一个 Python 日志神器

    2024-06-07 02:36:01       31 阅读
  3. MySQL学习——从命令行调用MySQL 程序

    2024-06-07 02:36:01       26 阅读
  4. 【视频转码】ZLMediaKit漏洞报告的问题

    2024-06-07 02:36:01       30 阅读
  5. 2024-05-30 vscode python不能调试

    2024-06-07 02:36:01       33 阅读
  6. 【WPF编程宝典】第9讲:几何图形

    2024-06-07 02:36:01       30 阅读
  7. 设计模式之状态模式

    2024-06-07 02:36:01       30 阅读
  8. 展锐8541E配置USB ACM

    2024-06-07 02:36:01       32 阅读
  9. mongodb 编码格式 Detected BSON

    2024-06-07 02:36:01       28 阅读
  10. element-plus datePicker 如何输出时间戳

    2024-06-07 02:36:01       31 阅读