网络初识
目录
一. 网络分类
1. 局域网LAN(Local Area Network):
若干个电脑, 连接到一起, 通过路由器进行组网;
2. 广域网WAN(Wide Area Network):
把很多的局域网进一步相连, 构成更复杂的网络体系;
二. 组建网络的基础设备
专门岗位: 网络管理员
1. 路由器
- 路由器是一种网络设备,用于在不同网络之间传输数据包。它能够识别网络中的不同设备,并根据目标地址将数据包转发到正确的目标网络。
- 路由器工作在网络层(OSI模型中的第三层),能够实现网络之间的连接和通信。
- 它具有查找路由表、选择最佳路径、转发数据包等功能,使得数据能够在不同网络之间进行传输。
2. 交换机
- 交换机是一种局域网设备,用于连接多台计算机并在它们之间传输数据。它能够识别连接到其端口的设备,并根据MAC地址转发数据包到正确的目标设备。
- 交换机工作在数据链路层(OSI模型中的第二层),能够在局域网内部实现设备之间的快速数据交换。
- 它具有学习MAC地址、构建转发表、实现数据的无碰撞转发等功能,使得局域网内的数据传输更加高效可靠。
三. 标识符
IP地址: 区分主机;
端口号: 区分主机商不同的程序或服务;
协议 (protocol)
通信双方, 对于通信规则一定双方认可的约定.
例如: 螺丝和螺帽, USB接口规格, 瓶盖规格, 语言的交流.
进行网络通信的时候, 一定需要网络协议.
- 因为两个通信的主机设备, 不同的硬件, 不同的操作系统需要协议整合.
一. 协议分层
- 当单个的东西很复杂, 就拆分成多个部分, 部分太多的话就进行分类, 分类要解耦合.
1. 分层的好处
-
达到封装的效果
某一层协议, 不必知道其他层协议的细节, 降低学习使用的成本. -
任意层次的协议, 都可以灵活替换, 给整个网络体系, 升级迭代, 带来了很大的便利 ---- 解耦合.
2. OSI七层分层
OSI: 即 Open Sysrem Interconnection, 开放系统互连.
客观世界中不存在的.
3. TCP/IP五层模型(或四层) 模型
OSI的简化, 即真实时间采取的网络分层模型.
目前能接触到的网络, 大部分都是 TCP/IP模型.
(1. 物理层(可不算)
硬件层面, 网线, 网口, 与数据链路层关系紧密.
(2. 数据链路层
关注的是, 通信过程中, 两个相邻节点之间的通信.
(3. 网络层
关注的是通信路径的规划, 数据要经过哪些节点.
(4. 传输层
关注的是通信双方的 “起点” 和 “终点”, 端到端的传输.
(5. 应用层
与具体 程序 直接相关, 传输数据的用途.
将 应用层, 表示层, 会话层 合并.
4. OSI 与 TCP/IP模型
下四层的协议都是系统内核实现好的.
对于JAVA程序员, 重点关注的就是 应用层 + 传输层.
笔试题(选择):
路由器, 是工作在上述协议的哪一层;
交换机, 是工作在上述协议的哪一层;
路由器工作在网络层 (三层转发);
交换机工作在数据链路层 (二层转发);
但是现在不断完善路由器和交换机的功能, 界限也越来越模糊了, 有些 路由器/交换机 能工作在应用层.
二. 协议层与层之间的配合
协议的层与层之间
上层协议调用下层协议,
下层协议给上层提供服务.
封装分用
(1. 封装操作
网络上数据的传输, 本质上是(二进制 bit 流)字符串.
因此, 要传输的发送人, 接收人, 消息时间, 内容 都要组织到一个字符串内. 组织的时候需要一定的格式, 不同的协议, 数据组织的格式是不同的.
我们所发的信息本身是一个结构化数据(包含很多属性),需要先转成字符串.
- 序列化: 结构化数据 ==> 字符串/二进制字符串.
- 反序列化: 字符串/二进制字符串 ==> 结构化数据.
-
创建应用层数据包
当应用层数据包有了之后, 程序就要调用系统的 api 让应用程序去调用.接着把应用层数据交给传输层.
-
传输层拿到应用层数据包
典型的协议有两个: “TCP, UDP”
进一步封装数据包, 构造成传输层数据包. 在传输层.
- UDP 数据包
TCP同上
报头中则放入的是 UDP的相关属性, 比如发件人和收件人的端口号;
后面的则是 UDP 数据包的载荷(payload);
进一步调用网络层的api, 把上述的 IP数据包, 交给网络层协议;
- 网络层拿到数据包
典型的协议: “IP协议”
- IP 数据包
IP报头包含 收件人的IP地址 和 发件人的IP地址;
IP报头后则是IP数据包的载荷;
此时还是在此台机器上进行操作;
之后进一步调用数据链路层的api, 把上述的 IP数据包, 交给数据链路层协议;
这里的 api 往往是网卡的驱动程序提供的.
- 数据链路层拿到数据包
典型协议: “以太网”
“以太” 的原本是 物理学中 被称作 真空中光传播的介质, 此处传输网络数据也需要介质, 则把这个名称拿来用了.
我们电脑通过有线网传输数据的协议, 就是 “以太网” 协议, 网线则被称作 “以太网线”.
- 以太网数据帧
上述的以太网数据帧, 本质上还是二进制数据.
-
物理层
硬件设备
硬件设备把上述的二进制数据转换成 光信号/电信号/电磁波 才会真正的发射.发射后也并非直接从 A 到达 B , 而是先到达与A 相连的交换机/路由器.
数据经过 交换机/路由器 一系列转发后, 最终到达 B
上述层层包装数据, 不同的添加数据报头的过程, 被称为 “封装”
(2. 分用操作
B 方操作
-
物理层
收到一系列光信号, 把这些信号转换成二进制数据, 交给数据链路层 -
数据链路层 (以太网协议)
按照以太网协议, 对数据进行解析(解析报头关键信息, 为后续传输和转发打下基础, 拿到数据载荷数据).
-
网络层 (IP 协议)
IP协议拿到IP数据包, 按照协议格式进一步解析, 解析报头中的关键信息, 取出载荷, 把载荷再交给传输层.
-
传输层 (UDP/TCP)
-
应用层
程序拿到应用数据包
按照程序的协议格式, 进行解析(反序列化), 拿到这里的结构化数据, 显示到界面上.
中间的路由器, 交换机也会进行封装分用, 不过交换机封装分用到数据链路层, 即可知道下一步如何转发了, 路由器, 封装分用到网络层, 即可知道下一步如何转发了
未完待续…