计算机网络-笔记-第三章-数据链路层
目录
三、第三章——数据链路层
1、数据链路层概述(帧)
(1)封装成帧、差错检测、可靠传输(简单介绍)
(2)CSMA/CD
2、封装成帧
(1)透明传输(字节填充、比特填充)
(2)数据帧(长度) & MTU
(3)习题
3、差错检测
(1)奇偶校验
(2)循环冗余校验(CRC)
(3)循环冗余校验(CRC)——发送信息
(3)循环冗余校验(CRC)——检验信息
(4)总结
3、可靠传输
(1)可靠传输的基本概念
(2)可靠传输的实现机制—停止-等待协议(ARQ)
(3)可靠传输的实现机制—回退N帧协议
(4)可靠传输的实现机制—选择重传协议
4、点对点协议PPP(point to point protocol)
(1)帧格式
(2)透明传输
(3)PPP——字节填充
(4)PPP——比特填充
(5)PPP——差错检验
(6)PPP——工作状态
5、媒体接入控制MAC
(1)媒体接入控制 — 静态划分信道
(2)频分复用 (并行)
(3)时分复用(类似 并发)
(4)波分复用(类似-频分-光波-波长-频率)
(4)码分复用
5、动态接入控制(CSMA/CD)有线局域网
(1)多址接入、载波监听、碰撞检测
(2)争用期(碰撞窗口)
(3)碰撞后什么时候重传(退避算法)
(4)以太网
(5)强化碰撞(让其他主机也知道发送了碰撞!)
(6)信道利用率
(7)帧的发送流程 & 接受流程
(8)特性
(9)练习题
6、动态接入控制(CSMA/CA)无线局域网
(1)802.11无限局域网
(2)无线局域网-传播方式
(3)退避算法
(4)随机接入——信道预约 & 虚拟载波监听
(5)习题
7、MAC地址、IP地址、ARP协议
(1)MAC地址格式
(2)IP地址
(3)ID地址和MAC地址——变化情况
(4)ARP协议 (只能在一个网络中使用)
(5)ARP高速缓存
(6)总结
8、集线器、交换机
(1)以太网——双绞线、集线器
(1)以太网——交换机
(1)交换机、集线器的区别
9、以太网交换机自学习和转发帧的流程
(1)练习题
(2)总结
10、以太网交换机的生成树协议STP
11、虚拟局域网VLAN
(1)概述——广播风暴
(2)分割广播域——路由器
(3)分割广播域——虚拟局域网(VLAN)
(4)虚拟局域网——实现机制
(5)Access端口、Trunk端口、Hybrid端口
(6)总结
三、第三章——数据链路层
1、数据链路层概述(帧)
(1)封装成帧、差错检测、可靠传输(简单介绍)
(2)CSMA/CD
防止总线多个主机(多点接入)同时发送数据(防止数据碰撞):
载波监听、碰撞检测(CSMA/CD)
1. CSMA/CD协议的要点
多点接入(Multipoint Access/MA): 总线型网络, 多个计算机站连接在一条总线上。
载波监听(Carrier Sense/CS): 即"边发送, 边监听", 不管在想要发送数据之前, 还是在发送数据之中, 每个站都必须不停的检测信道。发送前检测, 信道空闲才可以发送数据; 发送中检测, 若检测出其他信道在发送, 就中断本站的发送。
碰撞检测(Collision Detection/CD): 载波监听的物理实现, 边发送数据边检测信道上电压的变化情况。两个站同时在总线上发送数据时, 总线上的电压变化幅度将增大, 当两个数据碰撞时, 数据失真, 信号电压变化幅度超过门限值。此失真信号(电压变化幅度异常的信息)经一段时间后传至双方各站, 两站被检测到数据失真, 双方立即停止发送。
2、封装成帧
(1)透明传输(字节填充、比特填充)
字节填充——当内容是flag时,插入转义字符(1个字节)
比特填充——面向物理层的!!!(在连续的5个1后面插入0)
(2)数据帧(长度) & MTU
数据帧应该越长越好,但是不能无线长!!!(毕竟要差错控制)——MTU(最大传送单元)
(3)习题
3、差错检测
(1)奇偶校验
看见名字,就能明白,
奇校验——规定采用“当1的总和为奇数时,为1,否则为0”
当改变的次数为偶次时,无法检测出错误~
(2)循环冗余校验(CRC)
只能检错!!!不能纠错!!!
(3)循环冗余校验(CRC)——发送信息
(3)循环冗余校验(CRC)——检验信息
(4)总结
硬件——方便实现(计算机组成原理也有学习~)
在网络通信中,CRC检错之后,如果是TCP不仅要丢弃,还需要重传
(如果是UDP那些,就直接丢弃就好啦~)
- 当 CRC 错误发生时,无论是 TCP 还是 UDP,数据包都应该被丢弃。
- 对于 TCP,接收端会通过 TCP 协议栈内部的确认和重传机制来实现数据的可靠传输。
- 对于 UDP,由于其无连接性质,不会进行任何错误处理或重传操作,接收端直接丢弃错误的数据包。
3、可靠传输
(1)可靠传输的基本概念
网际层(网络层 IP)向上层提高的是【无连接,不可靠】的传输服务!!!
数据包可能会丢失、重复、乱序或被损坏
(2)可靠传输的实现机制—停止-等待协议(ARQ)
基本的自动重传请求(Automatic Repeat Request, ARQ)协议。
从原始方法的一步步优化:
1、加上重传机制—2、给数据包加上编号—3、给ACK加上编号
注意:
1、在点对点的数据链路层中,不容易出现ACK丢包或迟到(所以不需要给ACK编号~)
2、超时时间的设置问题
信道利用率太低了!!!
(3)可靠传输的实现机制—回退N帧协议
停止-等待协议的 升级版(plus)【类似——流水线传输~】
当通信线路质量不好时,信道利用率并没有【停止-等待协议】高多少~
(4)可靠传输的实现机制—选择重传协议
回退N帧的升级版(扩大了接收窗口~)
这个n是比特的数量!!!
比如:你采用2位bit进行分组排序,那么就有 0,1,2,3
窗口最大数量 = 2 ^ (n-1) = 2 ^ 1 = 2 (超出窗口大小,就会出现问题!!!)
这道题——3号帧——没有给出相关信息(不管他…)
4、点对点协议PPP(point to point protocol)
(1)帧格式
(2)透明传输
(3)PPP——字节填充
插入——转义字符
(4)PPP——比特填充
插入——比特0
(5)PPP——差错检验
(6)PPP——工作状态
5、媒体接入控制MAC
(1)媒体接入控制 — 静态划分信道
频分复用(Frequency Division Multiplexing,简称FDM)
频分、码分、时分、波分
频分复用(融合多个频段)
频分复用是一种将【可用频率范围】划分为多个子信道,
使【多个传输信号】能够【同时传输而不互相干扰】的技术。
(2)频分复用 (并行)
多个用户可以在同一时间使用共享的传输介质(如电缆或光纤)进行通信,提高了信道利用率和传输效率。
频分复用广泛应用于各种通信系统中,包括有线和无线通信系统。
例如:
在有线电视系统中,不同的电视频道使用不同的频率范围进行传输;
在移动通信系统中,不同的移动电话用户可以同时使用不同的频率进行通信。
(3)时分复用(类似 并发)
时分复用(Time Division Multiplexing,简称TDM)
在时分复用中,每个信号在不同的时隙中交替传输。
每个信号占据的时间片段非常短暂,但由于传输速率非常高,对人类感知来说是连续的。接收端根据时隙的划分和顺序重构出原始信号或数据。
时分复用可以用于有线和无线通信系统。
- 在电话网络中,电话系统使用TDM将多个电话信号进行复用,将每个电话用户的语音信号划分为小的时隙,并按照顺序传输。
- 在数字传输系统中,TDM可用于同时传输多个数据流。
时分复用的优点包括高容量、低延迟和带宽灵活性。它允许多个信号共享同一传输介质,提高了资源利用率。
由于时分复用是静态分配方式,所以对于每个时隙的传输要求,可以根据实际需求进行调整和配置。
(4)波分复用(类似-频分-光波-波长-频率)
类似频分复用唉
当传输的是频率时,就有频分复用
当传输光波时,就会分离波长
波分复用(Wavelength Division Multiplexing,简称WDM)
波分复用广泛应用于光纤通信系统中,特别是长距离和高容量的通信。它使得一根光纤可以同时传输多个独立的信号,大大提高了光纤传输的带宽利用率。通过合理的配置和管理,可以实现数十甚至数百个波长的复用,极大地增加了光纤传输系统的容量。
通过在光纤通信中同时传输多个光信号,每个光信号使用不同的波长(频率),实现多个信号在同一光纤上共享传输资源。
注意:光会衰减,需要对光波进行放大!!!
(4)码分复用
码分复用(Code Division Multiplexing,简称CDM)
它与频分复用和波分复用不同,它是基于编码的方式实现信号的多路复用。
在码分复用中,每个信号都使用唯一的编码序列进行调制。这些编码序列是通过特定的扩频技术生成的。扩频技术将信号的带宽扩大,使得它们在频域上重叠。这样,在传输中,所有信号都在同一频带上同时传输,彼此之间相互叠加。
在接收端,使用相应的解扩码器对收到的信号进行解码。解扩码器通过匹配原始的编码序列,将特定的信号从混叠的信号中提取出来。解码后的信号可以被恢复成原始的数据流。
- 抗干扰能力强:由于信号在传输中相互叠加,即使存在干扰信号,也可以通过解码器准确地恢复原始信号。
- 隐私性好:每个信号都有独特的编码序列,只有知道该序列的接收方才能正确解码,因此通信内容比较难以被窃听。
- 带宽利用率高:多个信号在同一频带上传输,充分利用了信道资源。
码分复用广泛应用于无线通信中,尤其是CDMA(Code Division Multiple Access)系统中。
5、动态接入控制(CSMA/CD)有线局域网
(1)多址接入、载波监听、碰撞检测
多个主机连接到一根总线上
载波监听多址接入/碰撞检测(CSMA/CD)协议:共享式以太网需要解决的一个非常重要的问题就是如何协调总线上各主机的工作,避免冲突
多址接入MA: 多个站连接在一条总线上,竞争使用总线
载波监听CS: 每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧,也即先听后说
碰撞检测CD: 每一个发送帧的站边发送边检测碰撞,也即边听边说
(2)争用期(碰撞窗口)
这章——建议看下方方老师的14章视频
计算机网络-方老师-3.3 使用广播信道的数据链路层-2_哔哩哔哩_bilibili
如果我接受的帧小于64B(512bit),那么就是有问题滴!!!【】
(3)碰撞后什么时候重传(退避算法)
碰撞后,等待随机时间后,再次发送!如果连续16次都发不出来,那么就…
(4)以太网
目前,仍然发送一个帧是64B
(5)强化碰撞(让其他主机也知道发送了碰撞!)
(6)信道利用率
(7)帧的发送流程 & 接受流程
(8)特性
先听后发,边听边发,冲突停止,延迟重发
(9)练习题
6、动态接入控制(CSMA/CA)无线局域网
很难实现——碰撞检测!!!!(所以:尽量-避免碰撞!!!)
(1)802.11无限局域网
如何避免碰撞?(在发生前,要等待一定的时间!!)
(2)无线局域网-传播方式
(3)退避算法
(4)随机接入——信道预约 & 虚拟载波监听
信道预约——先发个信息(告诉他占用时长),并让其他设备不要占用!!!
在让信号范围外的设备也停止通信!!!(虚拟载波监听)
(5)习题
7、MAC地址、IP地址、ARP协议
路由器和交换机——拥有多个网络接口,就有多个MAC地址
MAC地址是网络接口的唯一表示,而不是网络上各个设备的唯一标识!!!
(1)MAC地址格式
MAC 地址不会变化,就可以根据 MAC 地址识别用户,获取设备网络行为和位置,用于跟踪用户位置、分析用户行为。
为了完善安全机制、保护用户隐私,各个设备厂商开发了 MAC 地址随机功能,防止用户信息泄露。随机 MAC 地址,就是一个随机生成的伪 MAC 地址,一个假 MAC 地址,使用随机 MAC 地址进行网络通信,而不是真实 MAC 地址。
随机 MAC 地址不影响网络通信,但使用 MAC 地址相关的认证时,就会产生认证异常。
(2)IP地址
(3)ID地址和MAC地址——变化情况
IP地址不会变!!!(MAC地址会逐个改变!!!)
(4)ARP协议 (只能在一个网络中使用)
1、【源主机】要发生信息给【目的主机】
2、知道目的主机的IP地址,但不知道其MAC地址
3、发送广播信息,让目的主机把他的MAC地址发给我
4、收到他的MAC地址后,记录到ARP高速缓存表中
5、通过查表,就可以正常发送信息啦~
(5)ARP高速缓存
不能跨网络执行!!
(6)总结
8、集线器、交换机
无源电缆、机械连接点——超级不可靠(淘汰)
(1)以太网——双绞线、集线器
集线器——属于【物理层】,更多是对物理层进行拓展
网络用【双绞线】进行连接,RJ-45插头——【水晶头】
集线器的缺点:
集线器会扩大冲突域,即所有连接到集线器的设备都在同一个冲突域中。当多个设备同时发送数据时,可能会发生冲突,导致数据包丢失或损坏。而交换机通过使用专用的连接端口,将冲突域分隔成多个较小的冲突域,有效地减少了冲突的可能性。
由于集线器是共享媒介的设备,当多个设备同时传输数据时,带宽将被所有设备共享。这意味着每个设备只能获得一部分带宽,导致整体传输效率降低。而交换机具有独立的端口,每个端口都有自己的带宽,可以同时进行多个点对点的数据传输,从而提高带宽利用率和整体性能。
(1)以太网——交换机
当ARP的表配置好了,采用【交换机】就可以点对点发送!!!为什么集线器就做不到?
answer——工作原理不同:
交换机是基于MAC地址的二层设备【数据链路层】,它能够通过学习目的MAC地址和端口的映射关系,将数据直接发送到目标设备,从而实现点对点的传输。
而集线器是物理层设备,它只是简单地将所有收到的数据复制到所有连接的端口上,无法根据目的地址进行有针对性的转发。
(1)交换机、集线器的区别
交换机的性能远超与集线器,并且价格也不贵(集线器逐渐被淘汰了~)
特点 | 交换机 | 集线器 |
工作层级 | 数据链路层(二层) | 物理层(一层) |
转发方式 | 目的MAC地址进行学习和转发 | 广播所有收到的数据包 |
数据传输 | 点对点传输 | 广播和共享带宽 |
冲突域 | 划分多个较小冲突域,减少冲突 | 扩大冲突域,增加冲突机会 |
带宽利用率 | 高,每个端口有独立带宽 | 低,共享带宽 |
数据包处理 | 硬件处理,速度快 | 大部分是软件处理,速度相对较慢 |
可扩展性 | 支持多个端口,可通过堆叠或链路聚合扩展 | 通常只有几个端口,不易扩展 |
网络安全性 | 提供VLAN、ACL等安全机制 | 安全性较低,无法提供高级安全功能 |
成本 | 相对较高 | 相对较低 |
9、以太网交换机自学习和转发帧的流程
交换机——流程:
1、收到信息
2、记录MAC地址 和 接口
3、按照信息,进行转发(如果目的地址不在表里,就进行广播)
4、如果该信息的目的地址和源地址是同一个接口,就不做任何处理(丢弃帧)
(1)练习题
重点!!!!
(2)总结
记录表的数据是会过期的!!!
10、以太网交换机的生成树协议STP
广播风波、重复的广播帧、交换表信息漂移
生成树算法STA(自行了解)
他会自动阻塞一些端口,避免造成环路,这样就避免了网络环路!
11、虚拟局域网VLAN
(1)概述——广播风暴
广播风暴——浪费大量计算机资源!!!
并且——风暴非常频繁!!!
(2)分割广播域——路由器
可以采用路由器对局域网进行隔离【但是成本高!!!】
(3)分割广播域——虚拟局域网(VLAN)
(4)虚拟局域网——实现机制
(5)Access端口、Trunk端口、Hybrid端口
Access——打标签、去标签、转发
Trunk
等于时【去标签,在转发,打标签】
不等于【直接转发】
当互连的Trunk端口的PVID不相等时,可能会转发错误!!!
Hybrid端口(自由实现端口通信的开启和关闭)
(6)总结
Access(一个虚拟局域网)、Trunk(多个虚拟局域网)、Hybrid(多个虚拟局域网)
苦心人,天不负,破釜沉舟,百二秦关终属楚!
有志者,事竟成,卧薪尝胆,三千越甲可吞吴!
加油啊!!!你还想3年前的失败再一次上演么???
时间:2023年8月27日12:44:53
相关文章:

计算机网络-笔记-第三章-数据链路层
目录 三、第三章——数据链路层 1、数据链路层概述(帧) (1)封装成帧、差错检测、可靠传输(简单介绍) (2)CSMA/CD 2、封装成帧 (1)透明传输(…...

【1】openGL glew示例代码分析绘制一个三角形
openGL文档 > docs.gl ,可以直接查询函数的定义和使用 #include <iostream> #include <string> #include <GL/glew.h> #include <GLFW/glfw3.h>int main(void) {GLFWwindow* window;/* Initialize the library */if (!glfwInit())retu…...

android:新建工程文件介绍
一、前言当我们新建一个app时会呈现出固定的工程文件,这篇文章介绍新建工程里的文件。 二、介绍 Structure:就是你选择哪个页面就会显示那个页面的结构,就比如说我选择的是MainActivity他就会显示这个页面所使用的方法。 1-2:是android自动生…...

强化历程6-网络系列(2023.8.30)
文章目录 强化历程6-网络系列(2023.8.30)1 说一下OSI七层协议,为什么要分层?2 什么是TCP/IP协议,与OSI七层协议两者对比?3 什么是TCP协议,TCP协议和UDP协议区别?4 说一下TCP的三次握手和四次挥手5 两次握手…...

下载MedShapeNet
在 [1] 可下载 MedShapeNet 数据集,在其 Download 页,可选直接 GUI 下,或者先下一个索引文件,.txt 的,每行一条文件的下载链接,然后用 wget 逐条下。这里放下 wget 下载的 shell 脚本: 下载链索…...

根据身高重建队列【贪心算法】
根据身高重建队列 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返…...

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 高校汉服租赁网站的 设计与实现
一.项目介绍 高校汉服租赁网站分为普通用户以及管理员两类 普通用户: 注册、登录系统、查看汉服首页发帖公告信息、 交流论坛(发帖、查看帖子、评论)、 公告咨询(查看公告以及评论)、 汉服信息(查…...

SQL-DQL
-----分组查询----- 1.语法: SELECT 字段列表 FROM 表名 [WHERE 条件 ] GROUP BY 分组字段名 [HAVING 分组后过滤条件]; 2.where与having区别 》执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组&…...

手写深拷贝方法
function deepClone(data){if(!isObject(data)){// 非对象,直接拷贝return data}let result {}if(data instance of Array){result []}for(let key in data){if(data.hasOwnProperty(key)){result[key] deepClone(data[key])}}return result }// 是否对象 functi…...

格子游戏——并查集
Alice和Bob玩了一个古老的游戏:首先画一个 nn 的点阵(下图 n3 )。 接着,他们两个轮流在相邻的点之间画上红边和蓝边: 直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是…...

2023最新Python重点知识万字汇总
这是一份来自于 SegmentFault 上的开发者 二十一 总结的 Python 重点。由于总结了太多的东西,所以篇幅有点长,这也是作者"缝缝补补"总结了好久的东西。 **Py2 VS Py3** * print成为了函数,python2是关键字* 不再有unicode对象…...

【STM32】学习笔记(TIM定时器)-江科大
TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且…...

Parallel Context Windows for Large Language Models
本文是LLM系列文章,针对《Parallel Context Windows for Large Language Models》的翻译。 大语言模型并行上下文窗口 摘要1 引言2 并行上下文窗口3 上下文学习的PCW4 PCW用于QA5 相关工作6 结论和未来工作不足 摘要 当应用于处理长文本时,大型语言模型…...

怎么消除人声保留背景音乐?试试这几种简单方法
消除人声保留背景音乐可以用于许多不同的目的。例如,可以在视频制作中使用,以确保观众能够听到清晰的对话,而不会被其他噪音干扰。此外,它也可以用于音乐制作中,以便更好地混合和控制音频元素。教大家几种简单的提取方…...

积分游戏小程序模板源码
积分游戏小程序模板源码是一款可以帮助用户快速开发小程序的工具,此模板源码包含五个静态页面,分别是首页、任务列表、大转盘、猜拳等五个页面,非常适合进行积分游戏等相关开发。 此模板源码的前端部分非常简单易用,用户可以根据…...

IDEA启动两个Tomcat服务的方式 使用nginx进行反向代理 JMeter测试分布式情况下synchronized锁失效
目录 引出IDEA启动Tomcat两个端口的方式1.编辑配置2.添加新的端口-Dserver.port80833.service里面管理4.启动后进行测试 使用nginx进行反向代理反向代理多个端口运行日志查看启动关闭重启 分布式情况下synchronized失效synchronized锁代码启动tomcat两个端口nginx反向代理JMete…...

Shell 脚本入门
目录 一、Shell是什么 1.1 我们为什么要学习Shell和使用Shell? 1.2 Shell的分类有哪些? 二、Shell脚本入门知识 2.1 Shell文件命名规范 2.2 Shell解析器 2.3 用Shell 编写hello World 三、Shell的四种变量类型 3.1 系统预定义变量 3.2 自定义变…...

管理类联考——逻辑——形式逻辑——汇总篇——知识点突破——性质模态
性质&模态 角度一 角度二 矛盾关系 【对象】(1)所有、有的不;(2)所有不、有的;(3)某个、某个不。 【典例】①所有偶像都是靠颜值的。 ②有的偶像不是靠颜值的。 试分析: (1)如果①为真,试判断②的真假。 (2)如果①为假,试判断②的真假。 (3)①和②是否可…...

无涯教程-Android - ToggleButton函数
ToggleButton将已选中/未选中状态显示为按钮。它基本上是一个带有指示灯的开/关按钮。 Toggle Button ToggleButton属性 以下是与ToggleButton控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。 Sr.No.Attribute…...

unity VS无法进行断点调试
有时候我们的VS无法进行断点调试,报错如下: 原因是:开启了多个项目,vs无法找到调式项目 解决:点击菜单栏--调试----附加unity调试程序 会弹出一个框,然后选择你要调试的项目 即可...

Pandas由入门到精通-组合与合并数据
采集的数据存储后通常会分为多个文件或数据库,如何将这些文件按需拼接,或按键进行连接十分重要。这节将介绍数据索引的复杂操作如分层索引,stack,unstack,seet_index,reset_index等帮助重构数据,数据的拼接如merge,join,concat,combine_first等帮助连接数据,以及数据透视表…...

Unexpected mutation of “xxxx“ prop
原因 是因为子级修改了父级的数据,所以eslint执行的时候报了这个错 修复方式 1 如果是弹窗等组件,可以根据功能进行修改,比如我这块用的 element ui 的 dialog,便可以改成这样 使用 model-value 代替 修复方式 2 新建子组件…...

七、基础篇总结
...

前端面试基础面试题——2
1.什么是json? json可以存在哪几种数据类型?在什么时候用? 2.什么是作用域? 3.http和https分别是什么?区别是什么? 4.介绍一下js的节流与防抖? 5.什么是cookie?cookie的优缺点。 6.js的三种排序方法࿰…...

docker 搭建rknn转换环境
文章目录 下载rknn搭建docker 环境进入镜像并挂载运行代码 下载rknn https://github.com/rockchip-linux/rknn-toolkit2 搭建docker 环境 进入到docker 的文件目录下 docker build -t run:v3 . -f Dockerfile_ubuntu_18_04_for_cp36 进入镜像并挂载 docker run -it -v /ho…...

机器学习:争取被遗忘的权利
随着越来越多的人意识到他们通过他们经常访问的无数应用程序和网站共享了多少个人信息,数据保护和隐私一直在不断讨论。看到您与朋友谈论的产品或您在 Google 上搜索的音乐会迅速作为广告出现在您的社交媒体提要中,这不再那么令人惊讶。这让很多人感到担…...

MATLAB实现AHP层次分析法——以情人节选取礼物为例
问题背景: 情人节来临之际,广大直男(女)同胞在给异性朋友选购礼物时会遇到难题——什么才是礼物好坏最重要的标准?基于层次分析法AHP进行计算,得出最高权重的指标,给出各位朋友选购礼物的一种思…...

flutter使用Chanel与原生通信
在Flutter中,Platform Channel允许Flutter与原生平台(如Android和iOS)之间进行双向通信,以便在Flutter应用程序和原生代码之间传递消息和调用功能。 以下是使用Platform Channel与原生通信的一般步骤: 1. 在Flutter端…...

Kubernetes技术--k8s核心技术Helm
1.引入 我们先回顾一下之前部署一个应用的过程,如部署nginx,实现效果如下所示: -1.编写deployment的yaml文件,然后运行。 -2.使用service中的NodePort对外暴漏端口 -3.为了弥补Nodeport的缺陷,使用ingress实现转发 这样一个应用就部署完了,这一种情况相对于如果你需要部…...

C/C++学习——单例模式(懒汉模式与饿汉模式)
C/C学习——单例模式 一、什么是单例模式?二、单例模式应用三、单例模式的特点注意:静态成员变量的使用示例代码: 四、单例模式C代码示例(饿汉模式)五、单例模式C示例代码(懒汉模式) 一、什么是…...