Java Web 实战 14 - 计算机网络之初识计算机网络

大家好 , 这篇文章给大家分享的是计算机网络的一些基础知识 , 我们会给大家分享一下网络的发展 , 局域网和广域网 , 交换机与路由器 , 网络协议的初步了解 , 封装和分用是怎么回事
推荐大家跳转到此链接来查看文章
点击即可跳转到上一篇文章~
文章专栏在此~
在这里插入图片描述

一 . 网络发展史

网络 , 就和平时说的 “上网” , 是同一个意思
那网络从何而来 ?

回到上个世纪末 , 世界的格局是 “美苏争霸” , 气氛非常紧张 .
那为什么核打击没发生起来呢 ?
进行核打击 , 肯定会遭受对方的对等报复 , 同归于尽

那他们就在想 , 能否打击对方并且不被对方报复呢 ?

发射核弹有三个重要部分
image.png
但是国内的互联网 , 发展的就比较晚一些 , 2000 年左右才开始发展

震惊 ! 90 后程序员 , 目前没有活过 35 岁的
这就是国内的一个梗
这也印证了为什么总有人说程序员是吃青春饭的 , 因为程序员最老的才是 80 后 , 还没到 45 岁呢
都没到那么大岁数呢

互联网的发展 , 基本就是这样的一个脉络
单机 -> 局域网 -> 广域网 -> 移动互联网

二 . 局域网 VS 广域网

把多个机器连在一起 , 就构成了一个局域网

2.1 交换机与路由器

image.png

2.2 集线器

image.png

三 . 网络通信基础

3.1 协议

“协议” 其实就是 “约定” , 通过一些约定 , 来表达一定的含义 , 再具体说 , 就是 “暗号”

比如 : 你跟你室友约定的一些暗号 , 比如 : “莫西莫西” , 你就知道吃饭去啊 , 这就是你们俩制定的协议

网络上传输的数据 , 本质上就是 光信号 / 电信号 , 通过 光信号 / 电信号 就可以传输二进制数据了
光信号通过频率来表示 , 比如 : 高频1 低频0
电信号通过电平来表示 , 比如 : 高电平1 低电平0
不同的 0 1 的排列组合 , 都要表达什么样的信息呢 ?
就需要通过 “协议” 来约定

网络通信其实是一个非常复杂的过程 , 有很多的问题、很多的细节要进行处理
如果只使用一个协议 , 把所有的问题都解决 , 就会造成这个协议复杂无比
所以 , 程序员们就决定 , 将协议拆分 , 把一个协议拆成多个协议

类比平常写代码 , 我们都写到 main 方法中 , 未免过于冗余复杂 , 我们就可以将核心代码拆解到方法中 , 通过多个方法互相配合就完成了任务

拆着拆着 , 就发现 : 有些拆出来的协议 , 其实解决的问题都差不多
因此程序员就把这些协议分成很多层 , 每一层都有很多协议 , 这些协议做的工作差不多
当前看到的网络结构 , 就是协议分层之后的产物

当前有两种分层方式 :

  1. OSI 七层网络模型 : 只是理论上存在 , 实际上没有这么实现的
  2. TCP / IP 五层网络模型 : 有的资料上也叫四层

网络协议拆分 , 并分层之后 , 有什么好处呢 ?

  1. 下层协议给上层协议提供服务 , 上层调用下层协议 (类似与封装)

(实现上层协议的人 , 不必考虑下层协议的细节)

  1. 解耦合 : 可以把同一层的协议替换成其他协议 , 对于其他层次的协议来说 , 基本是无感知的(透明的)

3.1.1 OSI 七层模型

image.png
image.png
越往下越靠近硬件 , 越往上越靠近软件

3.1.2 TCP / IP 五层模型

image.png
物理层 : 网络通信的基础设施
数据链路层 : 两个相邻节点之间如何传输
网络层 : 两个点之间的路径规划
传输层 : 两个点之间的通信
应用层 : 数据传输过去之后 , 具体怎么使用
举个栗子 :

我想在淘宝上买个东西 :
物理层就相当于运快递的公路

卖家在进行发货的时候 , 只需要考虑发件人和收件人 , 并不管中间是怎么运的 , 卖家发货就相当于传输层 , 只考虑起点和终点

卖家把快递交到物流公司手里了 , 物流公司就需要进行路径规划 , 这就相当于网络层应该做的事情

数据链路层就相当于两个集散点之间的传输 , 比如南京到哈尔滨通过空运 , 哈尔滨到加格达奇通过陆运

快递拿到之后 , 这是我们自己的事情 , 这就属于应用层的事了

其中 , 数据链路层以及网络层是极其易混淆的 , 再给大家举个栗子
我是大兴安岭人 , 在牡丹江上学 , 我如果想去上学 , 我可以规划多条路线
加格达奇 -> 牡丹江
加格达奇 -> 齐齐哈尔 -> 牡丹江
加格达奇 -> 哈尔滨 -> 牡丹江

其中 , 规划路线这个任务就是网络层应该做的事情
确定好路线之后 , 我们开始选择交通工具
加格达奇 -> 哈尔滨 飞机
哈尔滨 -> 牡丹江 高铁
两个相邻节点之间到底怎么走 , 是数据链路层要做的事情

上面那张图 , 我们还需要关注一个位置
image.png

3.2 交换机和路由器的区别

交换机 和 路由器 功能都是用来组建局域网
交换机是工作在数据链路层
路由器是工作在网络层
这也是面试中比较常见的问题

3.3 封装和分用

封装和分用描述了网络是如何传输数据的
这里的封装和面向对象编程中的封装是不太一样的 , 但是大概的作用是差不多的
无标题.png
上述过程 , 也就体现出了网络通信中 , 各个层次的协议是如何配合工作的
image.png

文章到这里 , 就分享完毕
如果对你有帮助的话 , 请一键三连~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_53117341/article/details/129623609