大家好 , 这篇文章给大家分享的是计算机网络的一些基础知识 , 我们会给大家分享一下网络的发展 , 局域网和广域网 , 交换机与路由器 , 网络协议的初步了解 , 封装和分用是怎么回事
推荐大家跳转到此链接来查看文章
点击即可跳转到上一篇文章~
文章专栏在此~
网络 , 就和平时说的 “上网” , 是同一个意思
那网络从何而来 ?
回到上个世纪末 , 世界的格局是 “美苏争霸” , 气氛非常紧张 .
那为什么核打击没发生起来呢 ?
进行核打击 , 肯定会遭受对方的对等报复 , 同归于尽
那他们就在想 , 能否打击对方并且不被对方报复呢 ?
发射核弹有三个重要部分
但是国内的互联网 , 发展的就比较晚一些 , 2000 年左右才开始发展
震惊 ! 90 后程序员 , 目前没有活过 35 岁的
这就是国内的一个梗
这也印证了为什么总有人说程序员是吃青春饭的 , 因为程序员最老的才是 80 后 , 还没到 45 岁呢
都没到那么大岁数呢
互联网的发展 , 基本就是这样的一个脉络
单机 -> 局域网 -> 广域网 -> 移动互联网
把多个机器连在一起 , 就构成了一个局域网
“协议” 其实就是 “约定” , 通过一些约定 , 来表达一定的含义 , 再具体说 , 就是 “暗号”
比如 : 你跟你室友约定的一些暗号 , 比如 : “莫西莫西” , 你就知道吃饭去啊 , 这就是你们俩制定的协议
网络上传输的数据 , 本质上就是 光信号 / 电信号 , 通过 光信号 / 电信号 就可以传输二进制数据了
光信号通过频率来表示 , 比如 : 高频1 低频0
电信号通过电平来表示 , 比如 : 高电平1 低电平0
不同的 0 1 的排列组合 , 都要表达什么样的信息呢 ?
就需要通过 “协议” 来约定
网络通信其实是一个非常复杂的过程 , 有很多的问题、很多的细节要进行处理
如果只使用一个协议 , 把所有的问题都解决 , 就会造成这个协议复杂无比
所以 , 程序员们就决定 , 将协议拆分 , 把一个协议拆成多个协议
类比平常写代码 , 我们都写到 main 方法中 , 未免过于冗余复杂 , 我们就可以将核心代码拆解到方法中 , 通过多个方法互相配合就完成了任务
拆着拆着 , 就发现 : 有些拆出来的协议 , 其实解决的问题都差不多
因此程序员就把这些协议分成很多层 , 每一层都有很多协议 , 这些协议做的工作差不多
当前看到的网络结构 , 就是协议分层之后的产物
当前有两种分层方式 :
网络协议拆分 , 并分层之后 , 有什么好处呢 ?
(实现上层协议的人 , 不必考虑下层协议的细节)
物理层 : 网络通信的基础设施
数据链路层 : 两个相邻节点之间如何传输
网络层 : 两个点之间的路径规划
传输层 : 两个点之间的通信
应用层 : 数据传输过去之后 , 具体怎么使用
举个栗子 :
我想在淘宝上买个东西 :
物理层就相当于运快递的公路卖家在进行发货的时候 , 只需要考虑发件人和收件人 , 并不管中间是怎么运的 , 卖家发货就相当于传输层 , 只考虑起点和终点
卖家把快递交到物流公司手里了 , 物流公司就需要进行路径规划 , 这就相当于网络层应该做的事情
数据链路层就相当于两个集散点之间的传输 , 比如南京到哈尔滨通过空运 , 哈尔滨到加格达奇通过陆运
快递拿到之后 , 这是我们自己的事情 , 这就属于应用层的事了
其中 , 数据链路层以及网络层是极其易混淆的 , 再给大家举个栗子
我是大兴安岭人 , 在牡丹江上学 , 我如果想去上学 , 我可以规划多条路线
加格达奇 -> 牡丹江
加格达奇 -> 齐齐哈尔 -> 牡丹江
加格达奇 -> 哈尔滨 -> 牡丹江
…
其中 , 规划路线这个任务就是网络层应该做的事情
确定好路线之后 , 我们开始选择交通工具
加格达奇 -> 哈尔滨 飞机
哈尔滨 -> 牡丹江 高铁
两个相邻节点之间到底怎么走 , 是数据链路层要做的事情
交换机 和 路由器 功能都是用来组建局域网
交换机是工作在数据链路层
路由器是工作在网络层
这也是面试中比较常见的问题
封装和分用描述了网络是如何传输数据的
这里的封装和面向对象编程中的封装是不太一样的 , 但是大概的作用是差不多的
上述过程 , 也就体现出了网络通信中 , 各个层次的协议是如何配合工作的