网络初识基本概念总结

网络发展背景

经历了 单机阶段 -> 局域网阶段 -> 广域网阶段 -> 移动互联网阶段

(简单介绍一下)

其他一些小概念

  • 局域网LAN: 是把一些设备通过交换机 / 路由器连接, 形成的私有网络
  • 广域网WAN: 是把更多的局域网相互连接起来,当规模足够大时形成广域网
  • 交换机和路由器: 是组成网络的重要设备
  • IP地址: 描述一个主机在互联网上的具体位置
  • 端口号: 区分主机上的应用程序

其中最重要的就是协议 !!!

概念 : 通俗来说,协议就是 " 约定 " ,发送方规定了数据的格式,接收方要能理解这个格式, 当两边同时对上号才可以进行正常的通信

分层原因

但是由于环境的复杂, 协议也变得越来越复杂, 所以拆分出很多协议, 对其进行分类, 对不同的类别进行分层

相当于是规定了层级与层级 之间的调用关系

  • 上层协议调用下层协议
  • 下次协议给上层协议提供支持
  • 不能跨层调用

协议分层的好处

  • 分层之后可以做到, 层级与层级之间的耦合度较低
  • 上层协议不必了解下层的细节, 下层也不必了解上层的细节
  • 方便需要替换协议时,对某一层的协议进行替换

真实网络协议具体分层

(用快递的方式来粗略解释每层的作用)

我在淘宝上买了一件衣服

需要填写收件人地址, 收件人电话

同时要填写发件人地址, 发件人电话

比如发货地址是上海, 收货地址是福建

OSI 模型各层的描述
层级 描述
应用层 相当于拆快递,关注传输过来的数据,具体要干啥。
传输层 不考虑中间路径,只关注起点与终点 就像我和淘宝卖家都不关心中间是如何传输的,只需要按时送到即可。
网络层 主要负责两个节点的路线规划 比如从上海到福建有很多路可以走,网络层会规划出一条合适的路径。
数据链路层 主要关注两个相邻节点的传输: - 上海 -> 江西可以使用卡车 - 江西 -> 福建可以使用飞机 在网络中,相邻节点是通过光纤或网线直接连接的设备。
物理层 网络通信的基础设施,比如网线、光纤等硬件设备,确保数据能够通过这些设备传输。

以上图可以来偶尔来看一下,便于记忆,也可以查询一下协议,毕竟协议很多

数据通过网络传输的过程

封装与分用

发送方发送数据, 数据从上到下, 依次交给对应层级的协议进行封装

接收方收到数据, 数据从下到上, 依次交给对应层级的协议进行解析

具体分析一个实例

比如 A 发一条消息给 B 在 QQ 上

  1. 应用层(QQ的应用程序)拿到上述的用户数据, 进行封装操作,封装成应用层的数据包
    本质上是字符串拼接,区分上述字段可能会引入分隔符或长度信息来做界定
    (这里只是举个例子,QQ的真实协议格式应该更加复杂)
    如下图
  1. 传输层拿到了上述的数据

    应用层要调用传输层所提供的 api 来进行处理这个数据

    传输层有很多协议(前面有张图可以看), 最典型的是TCP和UDP协议

    我们以UDP举例

    UDP针对上述数据包进行封装

    采用报头 + 载荷的方式构成(加上UDP报头, 本质上还是字符串拼接)

    在此处, UDP协议给应用层数据包加上了UDP报头,就是为了贴上一层标签, 填写必要的属性.

    其中最关键的就是源端口与目标端口了.

  2. 传输层到网络层

    将上述的UDP数据包交给网络层的协议

    网络层最常见的协议就是IP协议,以此举例

    上述的UDP数据报到达网络层,进行进一步的封装,添加上IP协议的报头

    加上IP协议的报头, 整个UDP数据报, 作为IP的载荷

    其中源IP地址和目的IP地址就代表着这次传输的最初的起点和最终的终点

    IP地址的结构采用点分十进制如192.168.0.1998

    IP是找到主机

    端口号是确定主机上哪个程序/ 进程

  3. 网络层交给数据链路层

    里面最典型的协议叫做以太网

    与前面有差别的是要添加上以太网帧头与以太网帧尾(也是字符串拼接)

    mac地址, 也叫做物理地址

    也是描述主机在网络中的位置

    它的功能和IP 很相似

    IP 用来进行网络层的路径规划

    mac 用来进行描述数据链路层, 两个即将进行传输的相邻节点

    从理论上来说, 每个设备都会有自己唯一的mac 地址(也就是和网卡相绑定)

  4. 数据链路层将上述的以太网数据帧交给物理层

    物理层要将上述0101的二进制数据转化成光信号 / 电信号等方式进行传输

    上述的过程操作系统帮我们都封装好了,接下来来介绍一下接受过程(忽略中间的转发过程)

    接受过程与上述过程正好相反

~~

  1. 物理层, 网卡接收到了高低电平的二进制数据

    会对这个信号进行解析, 还原成0101的二进制序列

  2. 从物理层交给数据链路层

    此时就把上述 0101 的一系列数据当作以太网数据帧

    把帧头帧尾去掉, 取出中间的载荷, 交给网络层处理

    其中以太网数据帧帧头中有一个消息类型, 通过这个类型就知道网络层是 IP 协议

  3. 网络层

    此时由网络层的 IP 协议进行解析数据报. 就是去掉 IP 报头, 然后交给传输层协议

    IP 数据报, 报头中也有一个字段, 表示当前传输层用的是哪个协议

  4. 传输层

    此处由 UDP 来解析处理, 还是去掉报头, 取出载荷,交给应用层处理

借助端口号来区分具体的应用程序

每个接受网络数据的程序都会关联上一个端口号

  1. 应用层

    由qq这个程序, 进行解析应用层数据报的内容

    取出字段, 放入程序的界面中

最终会在QQ 聊天界面出现我发送的消息

数据传输过程

参考以上(简略版)

中间的交换机, 只需要封装到数据链路层(只需要修改源mac 和 目的 mac)

中间的路由器, 则需要封装分用到网络层(也需要改 mac 地址,还需要根据目的 IP 地址进行下一阶段的路径规划)

一点点疑问

我当时想过如果自己发消息给自己会怎么样

走计算机中的环回网卡, 和真实网卡差别较大(属于特殊情况)

相关推荐
Yawesh_best32 分钟前
思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
笔记·语言模型·ai写作
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
follycat1 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
xiaoxiongip6662 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao2 小时前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW2 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
使者大牙2 小时前
【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
笔记·学习·语言模型
ssf-yasuo2 小时前
SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
论文阅读·笔记·prompt
ajsbxi2 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet