![在这里插入图片描述](https://img-blog.csdnimg.cn/0e261d49a3164a3daa4c6a908216224f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16)
PDU ------ 协议数据单元
每进入一层,数据在各个层如何叫 单位 OSI里面: L level ![在这里插入图片描述](https://img-blog.csdnimg.cn/633512a717ab4b699d6e182a28dc1156.png) TCP/IP里面: ![在这里插入图片描述](https://img-blog.csdnimg.cn/044ef45c8baf49e3b1024fb835374472.png)
封装和解封装
封装:数据在每一层把自己最重要的数据添加到数据包,添加过程就叫封装 解封装:拆开看自己需要的信息 应用层 要封装,取决于不同的服务 传输层:端口号封装到数据中 干这件事情的是这层的协议 网络层:IP地址封装到数据中 IP协议 数据链路层 :MAC地址封装到数据中 ----- 以太网 物理层:不用封装
以太网是早期局域网的解决方案,主要依赖mac地址进行寻址 交换机是通过Mac地址寻址的 以太网主要工作在一二层,主要工作在二层,二层除了以太网协议还有其他协议
以太网的 帧结构:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c47a8a12ac04e55a78da09bd8c07b73.png) Type:上一层使用的协议的类型 DA: 目地址 SA:源地址 Preamble:前导符 把单独的一个帧找出来靠这个前导符 帧结构不止这一种 ,上面的的帧结构类型叫做![在这里插入图片描述](https://img-blog.csdnimg.cn/076c729441f141cf833c087961059acc.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/c53f3140383942c9a468e47a5ee518a6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_19,color_FFFFFF,t_70,g_se,x_16) 如何区分一个协议是应用层还是非应用层协议: 应用层协议的特征 有些协议 会说明用什么端口号进行通信
http:超文本传输协议 基于TCP 80端口通讯
Tftp:简单文本传输协议
传输层 —TCP 和UDP协议
区别: ![在这里插入图片描述](https://img-blog.csdnimg.cn/9d10166ec5264463a3d983813031bfb1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_16,color_FFFFFF,t_70,g_se,x_16) 传输速度一定要快,但是可不可靠不一定重要,即时性
TCP和UDP使用场景:
![在这里插入图片描述](https://img-blog.csdnimg.cn/61edc48ab36e4f84b93a8e26e5af8e84.png) UDP:直播类,打视频电话
什么是面向连接?
扔球游戏很重要 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5bee72b765c3413eb96a3c6cf8fd87ff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16) 会话是有方向的,双向的 什么是面向连接: ![在这里插入图片描述](https://img-blog.csdnimg.cn/8f3d518447a64bcca2874912b0390689.png)
TCP和UDP的头部
![在这里插入图片描述](https://img-blog.csdnimg.cn/0fd9284106024604a46ad3936c9ea372.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_19,color_FFFFFF,t_70,g_se,x_16) 源端口: 分段:数据包太长了,就分段,有需要, 序号:分段每一段的序号 使分段到达的顺序一致 确认序号:请你仍6 我已经收到,可以发下一句
![在这里插入图片描述](https://img-blog.csdnimg.cn/7425b40a4b4e4caba8f17d7e2634b574.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16) 这是头部长度 头部长度:因为是可变长度,所以必须写,最短是0 选项:可以不写 保留可以不用管,跟我们没关系 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fd44a27a703a4ec08b58b9df6488b964.png) 0不生效 1 生效 URG紧急标记位:数据包中有紧急需要处理的数据放在数据域最前面 2、ACK确认标记位:我已经收到球了 如果为1 确认序号就激活 PSH: 先到后道的数据端 需要在缓冲区排序,再推送到进程,但一般情况不需要这样做 RST: 强制终止, 1、SYN:我想要和你建立连接 请求标记位:我准备好了可以开始扔球了吗?我准备好了 请求并建立会话的过程 FIN: 我已经扔完了,结束游戏,断开会话 信息是通过标记位来传递的
校验核:确认数据的完整性 TCP校验强度比较抢的校验核 ,伪头部校验 头部+数据 三层(网络层某一些字段 12字节的内容)也会校验 ![在这里插入图片描述](https://img-blog.csdnimg.cn/059cddb868bd4de7a84ca35897336de6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_19,color_FFFFFF,t_70,g_se,x_16) 校验核:确认数据的完整性 TCP校验强度比较抢的校验核 ,伪头部校验 头部+数据 三层(网络层某一些字段 12字节的内容)也会校验 ![在这里插入图片描述](https://img-blog.csdnimg.cn/80f3d82c52054fc0bc2ae6b32c3f4728.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/c1e78a3a16bc4c42b635685dc9be6764.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_19,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/731344bed617437eac389cefcd7618f1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_15,color_FFFFFF,t_70,g_se,x_16) UDP头部有多长:8字节 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fe180536128f469ea1928831846a1a8d.png)
TCP
TCP建立过程-----三次握手
TCP是双向会话 B建立指向A的 会话:我准备好了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/135e49ffedcd42eba2831b19204482dc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/95e26c85ace34e878f894db4ba7623d9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_16,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/1988bf28a5884f29b5578072039712e2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/0473c3b1670b4e5bb13f4cf349957e28.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_16,color_FFFFFF,t_70,g_se,x_16) 以上是建立过程:通过三个数据包进行连接,所以三次握手
seg序号 ACK:确认包
TCP断开的过程------四次挥手
需要通过四个数据包结束会话 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f86a218869574c2c863444b532d698bb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_14,color_FFFFFF,t_70,g_se,x_16) 我扔完了,结束游戏:FIN 行,结束游戏并且统一结束 :ACK
B的球扔完了,请求结束:FIN A同意结束:ACK
为什么挥手一个包不能干多件事:
握手不牵扯数据传输的问题, 挥手不确定B数据是否传输完成,所以不能一次把ACK FIN一起传输给A
![在这里插入图片描述](https://img-blog.csdnimg.cn/5f37618ef49540be9bfb2ef69c9a17fc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_11,color_FFFFFF,t_70,g_se,x_16) 三次握手容易抓包抓到,四次挥手抓包很难抓到 类比:情侣分手 情侣分手:请求分手 - 考虑 - 吧同意分手 - 那我们分手吧(四次挥手断开) 请求分手 - 正好我也是这么想的 - 那我们分手吧(三次挥手断开) 请求分手 - 不回消息(一次挥手断开) ![在这里插入图片描述](https://img-blog.csdnimg.cn/13cd44d79e8a4e38b36a5e02f50cfb46.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/3c3cbf5ea8d14f0ba23aeac64b684ef5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/bae9490018c54b9f8a9e0c82d5149007.png) reset标记位:强制终止,不需要四次挥手 RST: 讲完TCP连接过程建立过程将
上网行为监管过程:
企业监管设备:功能继承成在交换机路由器 http基于TCP连接
1、通过建立三次握手,建立好连接 2、请求者发送Get包:有一字段HOST:访问的网站信息,网址 3、企业监管设备白名单黑名单中对比 4、企业监管设备冒充服务器给你回消息 RST 值1 强制终止
TCP确保可靠性的机制:
1、确认机制 2、重传 3、排序 4、流控 排序是怎么排的: 数据包分段 第一段500字节 200 100 第一个数据包的需要要有初始值,不一定是0 三次握手用了两个数据包 第一段 握手包里面没有数据,只是序列号 如果从序列号12开始: ![在这里插入图片描述](https://img-blog.csdnimg.cn/df121ea939c34cc5bdfb47c148e9c88d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16)
流控:-----滑动窗口机制
tcp发一个包都要确认,效率低,为了提高效率,增加窗口值,一次性允许发多个数据包,只需要确认一次
如何实现流控的? A:我发3个包 B:确认窗口值ACK,确认值也写3 如果可以处理三个,A那么会增加发送包的数量 当发10个实际收到7个,确认窗口值7 确认序列号是8 要的是下一个包,A知道10个大了,就会一次最大传7个包,那么8910 三个包就重传了,传输序列号就从8开始
B在不同场景处理数据的能力不同,动态变化的
TCP需要确认所以慢 根据TCP UDP 包头可以看出,TCP占用的资源多
IP
网络层: ![在这里插入图片描述](https://img-blog.csdnimg.cn/0e261d49a3164a3daa4c6a908216224f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/52e484776def49aa815005a76dc3b998.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_12,color_FFFFFF,t_70,g_se,x_16) Ip地址 头部长度最短为:20字节
Ip分片:tcp分段一个道理 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e5634168da034517809fb052a11591f5.png) Ttl:生存时间 time to live ping里面路由有
TTL ----每经过一个路由转发,TTL值就-1,路由就不再进行转发 ![在这里插入图片描述](https://img-blog.csdnimg.cn/cb69b9f2f8fb4f50af094e08faafacb0.png)
为什么要有这ttl个值?
包有初始值的TTL值 具体哪一个跟操作系统有关 ![在这里插入图片描述](https://img-blog.csdnimg.cn/23d82b0f13b841098200918cbbdc1131.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_12,color_FFFFFF,t_70,g_se,x_16)
经验判断方法:
64以下,大概的数据包的初始值就是64 64-128之间 初始值128 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8184241b9a6943a8b6d11bbf5ef5cb53.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/1daa272863d74b23aa65c606986a133e.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e3502762d51e49db8774393a37560a65.png)
有协议不需要网络层传输层
TCP的分段和ip的分片
为什么要变短, ![在这里插入图片描述](https://img-blog.csdnimg.cn/0d26f66b71884b418112858919596d86.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_13,color_FFFFFF,t_70,g_se,x_16) DATA的内容不能超过1500字节 这是默认值可以修改 ![在这里插入图片描述](https://img-blog.csdnimg.cn/71bb5f55f9654e1baab5cfb87367b73a.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2fd0d372c13341b98171885b6a8d980b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_15,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/a74414a011c1442eb74640e9326858a4.png) 网络层最短20字节 传输层最短20字节 最大段长度1460字节
这个需要协商,以小的为准 在三次握手前两次进行协商
![在这里插入图片描述](https://img-blog.csdnimg.cn/d421db530e3c4b349f9c4779c7accbbb.png) 同一数据包分出来的片有相同的身份标识 , ![在这里插入图片描述](https://img-blog.csdnimg.cn/75e0c5cde36a45a197a989551f5ab034.png)
DNS
访问服务器有是那种: 1、用ip地址访问2、通过域名、3、通过APP或应用访问软 域名这么好记,为什么域名存在了ip还会存在 域名对人友好 Ip利于设备识别
DNS — 域名解析协议 — UDP/TCP 53 ---- C/S架构 DNS 客户机找最近的dns服务器域名解析,
域名等级,从右向左登记依次减小
![在这里插入图片描述](https://img-blog.csdnimg.cn/5227836616474a38ade8524dc0bf835e.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/65955b74dda14f3ba144ebd8f0461e1a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16) DNS查询方式 递归查询 迭代查询
电脑要获取ip地址的流程: 1、客户端向本地服务器递归查询UDP 2、本地域名服务器先去问根,再逐级问下来 TCP
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c182849604b4925bff4cbf82b5166fc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_16,color_FFFFFF,t_70,g_se,x_16)
Dhcp
基于哪个协议的哪个端口 UDP 服务器 67/68客户端 C/S架构 说明关系不对等 ![在这里插入图片描述](https://img-blog.csdnimg.cn/301e8c6c532441f4bc0cafeda17e68e0.png) DHCP对性能没有任何要求 路由器也可以成为DHCP
常见协议端口号
一、电脑首次获取ip
![在这里插入图片描述](https://img-blog.csdnimg.cn/4753ab95609d48e6acd66dca8279422b.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/0341baaa82a549f4aa39d3b2f893e005.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_16,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/6e2a899899854d66b5f644c347616e9d.png) offer包携带一个可用的ip地址,并暂时为你保留ip 广播域里面靠mac地址 offer已经具备单播包的特点,但是单播包和广播包都有 可能
广播域里不止一个DHCP服务器,发offer可以让客户端选来自多台DH CP的offer
广播包:包给谁了不确定 交易码 区分包是不是给自己的 Request包中的ip request一定是广播包:使命1、请求得到Ip 2、还要广播告诉其他给自己发offer的DHCP没有选择他们,标明自己选择的DHCP
ACK:确认包 单播包 表明request已经获得ip
客户端如何选择offer? 选择第一个到达的offer
二、再次获取ip 电脑突然断电关机,电脑就不需要ip ,ip就还给DHCP了 直接发送request包,希望能接着用之前的Ip NACK 无法获取当时的ip,只有重新广播获取ip
![在这里插入图片描述](https://img-blog.csdnimg.cn/5bd6c083f59f42acb4e6316e14870f4d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_15,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d31640865186468780a2fda4b95bb235.png)
DHCP里有一个租期的概念
DHCP客户端给服务器发送请求 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e0a7c7f201504c409b13cb5befc4be6f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_15,color_FFFFFF,t_70,g_se,x_16)
DHCP配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/859c8e20da0d414194a18a75cc7fff92.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/b12a7003f50e4d2c922c420a2c574d8f.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/ca52242263d74c48afa220de8bf9933e.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/9920441b6f1f4426bafefd84087035c8.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/91e87438e68049718f61351c432bbd94.png) 配置网关信息和dns信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/60ca23889bf44f75801ea68c9476a0c8.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/e43cec62a78b444684435f9ecd8949bd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_12,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/1d4ee64de7794570bedbe64c3a22482a.png) 在接口启用全局配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/8b81f0b41f994a118b259578ca8d4c97.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_12,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/615d5131ef4745388b731fb4192b5e5c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_12,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/817d27cc2b1b43068ab1c04dc8d9f8f9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/a774b303bbcb4227b714283965c29e94.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/5adc39ff3bf347d8b63aa905b6188b1a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_15,color_FFFFFF,t_70,g_se,x_16) 单播包 值0 广播包1
![在这里插入图片描述](https://img-blog.csdnimg.cn/0bd7ec330a1042aca701accd08ef3d31.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_17,color_FFFFFF,t_70,g_se,x_16) 免费arp 避免冲突
设置为静态ip:DHCP包客户端主动释放ip地址
![在这里插入图片描述](https://img-blog.csdnimg.cn/be22e8e0170c4b098c6e924e9fbcca3a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_19,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/26dca1f0a65946a989f7f6f5abef3ff2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/667c5faf083e4c3ebde15d47efd15d1c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZOS6L6-6L6-6L6-5LiN5rqc,size_18,color_FFFFFF,t_70,g_se,x_16)
|