7.网络原理之TCP_IP(上)

文章目录

  • 1.网络基础
    • 1.1认识IP地址
    • 1.2子网掩码
    • 1.3认识MAC地址
    • 1.4一跳一跳的网络数据传输
    • 1.5总结IP地址和MAC地址
    • 1.6网络设备及相关技术
      • 1.6.1集线器:转发所有端口
      • 1.6.2交换机:MAC地址转换表+转发对应端口
      • 1.6.3主机:网络分层从上到下封装
      • 1.6.4主机&路由器:ARP缓存表+ARP寻址
      • 1.6.5路由器:路由+NAPT
    • 1.7冲突域
    • 1.8广播域
  • 2.网络数据传输流程
    • 2.1局域网传输流程:集线器
    • 2.2局域网传输流程:交换机
    • 2.3局域网传输流程:交换机+路由器
    • 2.4广域网数据传输流程
    • 2.5作业
  • 3.应用层重点协议
    • 3.1DNS
    • 3.2NAT
      • 3.2.1技术背景
      • 3.2.2NAT IP转换过程
    • 3.3NATP
      • 3.3.1NAT技术的缺陷
    • 3.4HTTP/HTTPS

大家好,我是晓星航。今天为大家带来的是 网络原理之TCP_IP 相关的讲解!😀

1.网络基础

1.1认识IP地址

概念

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

作用

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

格式

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如: 01100100.00000100.00000101.00000110。

通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如: 100.4.5.6。

IP协议有两个版本,IPv4和IPv6。我们整个的课程,凡是提到IP协议,没有特殊说明的,默认都是 指IPv4。

IPv4数量=2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。对于全世界 计算机来说,这个数量是不够的,所以后来推出了IPv6(长度128位,是IPv4的4倍)。但因为目 前IPv4还广泛的使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及。

组成

IP地址分为两个部分,网络号和主机号

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。

那么,如何划分网络号和主机号呢?

分类

过去曾经提出一种划分网络号和主机号的方案,把所有IP 地址分为五类,如下图所示(该图出自 [TCPIP])。

各类地址的表示范围是:

备注:主机最大连接数减去2,是扣除主机号为全0和全1的特殊IP地址。

特殊的IP地址

  • 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
  • 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有 主机发送数据包;
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  • 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输), 对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通 信。

在上述的分类中,存在IP地址浪费的问题:

(1)单位一般会申请B类网络(C类连接主机数量有限),但实际网络架设时,连接的主机数量又常远 小于65534(B类连接主机数),造成IP地址浪费;同理,A类网络的IP地址也会造成大量的浪费。

(2)当一个单位申请了一个网络号。他想将该网络能表示的IP地址再分给它下属的几个小单位时,如果 在申请新的网络就会造成浪费。

为了解决以上问题,引入子网掩码来进行子网划分:

1.2子网掩码

格式

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

作用

(1)划分A,B,C三类 IP 地址子网:

如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。

假设使用子网掩码 255.255.128.0(即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络号,也就是将原来16位主机号,划分为1位子网号+15位主机号。

此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号/ 网段)

(2)网络通信时,子网掩码结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分 子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。

对于网络通信来说,发送数据报时,目的主机与发送端主机是否在同一个网段,流程是不一样的。

对于网络通信来说,发送数据报时,目的主机与发送端主机是否在同一个网段,流程是不一样的。

计算方式

将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得 到的结果就是网络号。

将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号。

示例:

1.3认识MAC地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地 址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址。
  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改。虚拟机中的MAC地址不是真实的MAC地址,可能会冲 突;也有些网卡支持用户配置MAC地址。

特殊的MAC地址

广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。广播数据报的MAC地址为: FF:FF:FF:FF:FF:FF

1.4一跳一跳的网络数据传输

对于以上经过的网络设备:

主机:配有IP地址,但是不进行路由控制的设备;

路由器:即配有IP地址,又能进行路由控制;

节点:主机和路由器的统称;

集线器和二层交换机不会对数据报封装和分用,不算在下一跳设备。

对于网络数据传输,不是想象中那样,数据直接从源主机到达目的主机,而是类似在地图中,从A到B的 过程:

唐僧去西天取经,行程为长安、五指山、黑风山、女儿国……大雷音寺。

IP地址描述的是路途总体的起点和终点:

  • 源IP就是整个行程的起点:长安;
  • 目的IP对应为整个行程的终点:大雷音寺

而行进也必须一个地点一个地点的前进,由MAC地址来描述路途上每一个区间的起点和终点:

  • 从长安到五指山,为一跳的区间,源MAC为长安,目的MAC为五指山;
  • 从五指山到黑风山,为下一跳的区间,源MAC为五指山,目的MAC为黑风山。

1.5总结IP地址和MAC地址

  • IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址。
  • MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备 使用的网络物理地址。

1.6网络设备及相关技术

1.6.1集线器:转发所有端口

集线器是工作在物理层的网络设备,发送到集线器的任何数据,都只是简单的将数据复制并转发到其他所有端口。(端口指集线器后边的物理端口)

1.6.2交换机:MAC地址转换表+转发对应端口

交换机工作在数据链路层,交换机内部会记录并维护一张MAC地址转换表

  1. MAC地址转换表主要记录MAC地址与端口之间的映射。(端口指交换机后边的物理端口)
  2. 主机连接到交换机,及主机发送数据的时候,交换机可以学习并记录该主机MAC地址与端口信息。
  3. 交换机接收到数据报以后,在MAC地址转换表中,通过目的MAC查找到对应的端口,则目的主机 为该端口相连接的主机。只需要将数据报转发到对应端口上即可。

  1. 以上是使用MAC地址转换表,通过目的MAC能找到对应端口的情况;如果找不到,交换机设置数 据报目的MAC为广播地址FF:FF:FF:FF:FF:FF,发送到其他所有端口,目的主机返回响应后,交换机 再记录该主机MAC与端口的映射信息。

1.6.3主机:网络分层从上到下封装

发送数据报时,发送端主机都需要先根据网络分层从上到下封装:

由“一跳一跳的网络数据传输”可知,以上:

  • 源IP与目的IP标识整个路途的起点和终点;
  • 源MAC与目的MAC标识了每一跳的起点和终点;

此时,需要根据发送端主机(源主机)与接收端主机(目的主机)是否在同一网段,来设置下一跳设 备:

  • 源主机和目的主机在同一个网段时,下一跳设备就是目的主机;
  • 发送端主机和接收端主机在不同网段时,发送端主机是无法知道目的主机在哪,此时会设置下一跳 设备为网关设备;

所谓网关,我们这里可以简单理解为,不同网段的网络互连时,需要使用网关设备。

通常的网关设备是路由器,可以划分公网和局域网(内网),同时还可以把局域网划分为多 个子网(不同网段)

Windows中,可以在网络设置中,更改适配器设置查看网关IP:

以上两种情况,下一跳设备IP地址都可以获取到,但该设备的MAC地址(即目的MAC)可能不知道,就 需要使用以下ARP寻址:

1.6.4主机&路由器:ARP缓存表+ARP寻址

首先,ARP是一个介于数据链路层和网络层之间的协议;ARP协议建立了IP地址与MAC地址的映射关系。

在数据链路层,寻找下一跳设备MAC地址的过程,称为ARP寻址:

(1)主机和路由器中都保存了一张ARP缓存表:通过IP地址可以找到对应的MAC地址。

(2)根据下一跳设备的IP地址,在ARP缓存表中能找到对应的MAC地址,则可以设置目的MAC并发送 数据报。

(3)如果找不到,则发送ARP广播数据报:目的MAC为广播地址,询问下一跳设备的MAC地址。

这个过程类似于QQ群喊话:张三(下一跳设备IP地址),我要给你发快递(发送数据报),请告诉我 你的收货地址(MAC地址)。

参见以下流程:

1.6.5路由器:路由+NAPT

路由器主要有两个作用:

(1)网关

路由器作为网关,可以划分公网和局域网,某些路由器还可以将局域网划分为多个子网(不同网段)

公网端口即WAN口,为单独的网卡,具有公网IP地址和公网MAC地址。

划分的多个子网,是由局域网端口即LAN口划分,每个端口都有单独的网卡,具有该网段IP地址和 MAC地址。

了解:家庭用的路由器不能划分局域网子网,企业级专业路由器才能划分。

路由器作为网关:

  1. 划分局域网多个子网时,可以直接通过ARP寻址找到局域网任意主机。(这里的局域网就是路由器 下的多个子网组成的局域网)。
  2. 划分公网和局域网时,局域网内主机发送数据报到公网主机时,需要基于NAPT协议,将局域网主 机的IP地址和端口号,转换为路由器公网IP和端口号(指路由器中运行的程序的端口)。

局域网IP+端口需要转换为公网IP+端口,原因是接收端返回的响应数据报,目的IP和目的端 口无法使用局域网IP和端口。

(2)路由

所谓路由,即在复杂的网络结构中,找出一条通往终点的路线;

网络通信(网络数据传输),路由器中的路由功能,就类似于规划路线,往哪个方向行进能更快到达目的地。

以下为北京教堂部分地图,可以看到,从新街口到中国美术馆附近,路线2比路线1更近;路由就是规划类似行进路线:

1.7冲突域

主机之间通过网络设备(集线器、交换机)的物理端口、网线相连时,两个主机在同一时刻同时发送数 据报,如果存在冲突,则该网络范围为一个冲突域(Collision Domain)。

冲突域是基于第一层物理层,又称为碰撞域。

所谓的冲突,类似两个人(主机)在一个房间(网络范围)同时说话,导致房间内其他人无法听清 讲话的内容,即产生了冲突。

冲突域中的网络通信,要解决冲突,就得按时间顺序来发送多个数据报:同一时刻,网络设备只能 接收并转发一个数据报,多余的会丢弃,让发送端主机重新发送。

  • 集线器接收到数据报后,是将数据报简单的复制、转发到其他所有端口,如果有两个数据报要同时 转发,就会出现冲突。整个集线器,即集线器的所有端口为一个冲突域

  • 交换机接收到数据报后,是将数据报转发到对应的一个端口:两个数据报同时转发到不同端口不存 在冲突,但同时转发到一个端口就出现冲突。即交换机可以分割冲突域,分割后,一个端口为一个冲突域

1.8广播域

广播是指某个网络中的主机同时向网络中其它所有主机发送数据(IP、MAC地址设置为广播地址),这 个数据所能传播到的范围即为广播域(Broadcast Domain)。

广播域基于第二层数据链路层。

  • 集线器接收到广播数据报,仍是简单的复制、转发到其他所有端口,所以集线器的所有端口为一个 广播域

  • 交换机接收到广播数据报,会转发到其他所有端口;而路由器可以隔离广播域

路由器某个LAN口网卡接收到广播数据报,如果发现是同网段,则丢弃,即广播数据不会扩 散到路由器以外。

2.网络数据传输流程

2.1局域网传输流程:集线器

使用集线器网络互联的情况下,发送端主机发送数据包时,需要先从上到下封装数据报。但封装时,目 的MAC可能并不知道,需要先进行ARP寻址:

(1)发送端在本机ARP缓存表中,根据目的IP查找对应的MAC地址

(2)如果找到,则可以在数据链路层以太网帧头中,设置目的MAC并发送数据包

(3)如果没有找到,需要先发送ARP广播请求,让接收端,即目的主机告诉自己,目的MAC是多少

(4)发送端更新本机ARP缓存表:保存目的IP与目的MAC的映射

(5)有了目的MAC,就可以按照第(2)个步骤发送数据了。

以下为本机ARP缓存表能找到目的MAC的流程:

涉及的知识:封装,集线器转发, ARP寻址

如果本机ARP缓存表中找不到目的MAC,则需要先发送广播请求:

涉及的知识:ARP寻址,ARP广播

2.2局域网传输流程:交换机

涉及的知识:交换机MAC地址转换表

2.3局域网传输流程:交换机+路由器

涉及的知识:子网掩码,网关

2.4广域网数据传输流程

涉及的知识:DNS,NAPT,路由

2.5作业

请说明浏览器中输入www.baidu.com后,发生的事情,越详细越好。

这是一个经典的面试题,没有固定答案。

参考: 将以上广域网数据传输流程说明,并在后续Web课程学习后,补充说明Web服务器内部的工作流程。

3.应用层重点协议

我们主要学习TCP/IP四层模型中的重点网络协议

3.1DNS

DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。

TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。

域名是一个字符串,如 www.baidu.comhr.nowcoder.com

域名系统为一个树形结构的系统,包含多个根节点。其中:

  1. 根节点即为根域名服务器,最早 IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。
  2. 子节点主要由各级DNS服务器,或DNS缓存构成。
    1. DNS域名服务器,即提供域名转换为 IP地址的服务器。
    2. 浏览器、主机系统、路由器中都保存有DNS缓存。
    3. Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中, Mac/Linux系统的DNS缓存在 /etc/hosts 文件中。

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址:

  • 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主机。
  • 域名解析使用DNS协议来传输数据。DNS协议是应用层协议,基于传输层UDP或TCP协议来实现。

当前要求网站的域名不能重复。(保证唯一性)全世界这么多网站,如何保证唯一呢???
有 一级域名的 DNS 服务器,还有 二级域名,三级域名…

3.2NAT

3.2.1技术背景

之前我们讨论了,IPv4协议中,IP地址数量不充足的问题

NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能;

  • NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术 方法:
  • 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全 局IP;
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的;

3.2.2NAT IP转换过程

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部,有一张自动生成的,用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

3.3NATP

那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中, 目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系

这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项; 在断开连接后,就会删除这个表项

3.3.1NAT技术的缺陷

由于NAT依赖这个转换表,所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接;
  • 转换表的生成和销毁都需要额外开销;
  • 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开;

3.4HTTP/HTTPS

HTTP及HTTPS是应用层重点协议,我们会在Web开发中学习。

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145593.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

django 实现:闭包表—树状结构

闭包表—树状结构数据的数据库表设计 闭包表模型 闭包表(Closure Table)是一种通过空间换时间的模型,它是用一个专门的关系表(其实这也是我们推荐的归一化方式)来记录树上节点之间的层级关系以及距离。 场景 我们 …

网页采集工具-免费的网页采集工具

在当今数字化时代,网页采集已经成为了众多领域的必备工具。无论是市场研究、竞争情报、学术研究还是内容创作,网页采集工具都扮演着不可或缺的角色。对于许多用户来说,寻找一个高效、免费且易于使用的网页采集工具太不容易了。 147SEO工具的强…

Spring Mvc的相关知识

一、初识MVC 1.Spring Mvc 是控制层的Spring框架,替换Servlet,除了它以外,还有 struct1和 struct2 区别: 1.struct1被struct2 取代 2.struct2:采用 prototype多例模式,内存消耗快,经常会出现内存…

C++ 类构造函数 析构函数

类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。 下面的实例有助于更好地…

MySQL架构 InnoDB存储引擎

1. 什么是Mysql? 我们在开发的时候,我们都需要对业务数据进行存储,这个时候,你们就会用到MySQL、Oracal等数据库。 MySQL它是一个关系型数据库,这种关系型数据库就有Oracal、 MySQL,以及最近很火的PgSQL等。…

JSP学习笔记【三】——JQuery

前言 在写项目的时候需要动态对某组件的属性进行调整,我看网上的教程都是使用document.getElementById等,但我在eclipse编写.jsp文件的时候,却提示document cannot be resolved。由于我对jsp没有系统的了解以及无人可咨询,网上也…

Linux开发工具之文本编译器vim

●IDE例子 Linux编辑器-vim使用 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行&#xff…

金融生产存储亚健康治理:升级亚健康 3.0 ,应对万盘规模的挑战

随着集群规模的不断扩大,硬盘数量指数级上升,信创 CPU 和操作系统、硬盘多年老化、物理搬迁等多种复杂因素叠加,为企业的存储亚健康管理增加了新的挑战。 在亚健康 2.0 的基础上,星辰天合在 XSKY SDS V6.2 实现了亚健康 3.0&#…

渗透测试之打点

请遵守中华人民共和国网络安全法 打点的目的是获取一个服务器的控制权限 1. 企业架构收集 (1)官网 (2)网站或下属的子网站,依次往下 天眼查 企查查 2. ICP 备案查询 ICP/IP地址/域名信息备案管理系统 使用网站…

ElasticSearch 10000条查询数量限制

一、前言 我们将库存快照数据导入ES后发现要分页查询10000条以后的记录会报错,这是因为ES通过index.max_result_window这个参数控制能够获取数据总数fromsize最大值,默认限制是10000条,因为ES考虑到数据要从其它节点上报到协调节点如果搜索请…

APACHE NIFI学习之—UpdateAttribute

UpdateAttribute 描述: 通过设置属性表达式来更新属性,也可以基于属性正则匹配来删除属性 标签: attributes, modification, update, delete, Attribute Expression Language, state, 属性, 修改, 更新, 删除, 表达式 参数: 如下列表中,必填参数则…

Leetcode 剑指 Offer II 046. 二叉树的右视图

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个二叉树的 根节点 root,请找出该二叉树的 最底…

react create-react-app v5 从零搭建项目

前言: 好久没用 create-react-app做项目了,这次为了个h5项目,就几个页面,决定自己搭建一个(ps:mmp 好久没用,搭建的时候遇到一堆问题)。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…

【C++】C++11------线程库

目录 线程库接口线程接口使用lock_guard与unique_lockmutex(互斥锁)lock_guardunique_lock 原子性操作库条件变量(condition_variable) 线程库接口 在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口&#x…

使用Python进行App用户细分

App用户细分是根据用户与App的互动方式对用户进行分组的任务。它有助于找到保留用户,找到营销活动的用户群,并解决许多其他需要基于相似特征搜索用户的业务问题。这篇文章中,将带你完成使用Python进行机器学习的App用户细分任务。 App用户细…

图片分割处理(以玉米颗粒的图片分割为例)

问题: 为完成玉米颗粒分类任务,现需要处理训练图片,将以下图片中的玉米颗粒进行分割: 目标: 操作步骤(完整代码附在最后,该部分为解释说明) 一、提取通道并进行二值化 # 提取蓝…

解决Nacos配置刷新问题: 如何启用配置刷新功能以及与`@RefreshScope`注解的关联问题

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

三、2023.9.29.C++面向对象.3

文章目录 33、简述一下什么是面向对象?34、简述一下面向对象的三大特征?35、简述一下 C 的重载和重写,以及它们的区别?36、说说 C 的重载和重写是如何实现的?37、说说构造函数有几种,分别什么作用?38、只定…

SpringBoot+MinIO8.0开箱即用的启动器

一、代码拉取及安装 1.码云地址 https://gitee.com/qiangesoft/rdp-starter/tree/master/rdp-starter-minio 2.本地安装 二、代码接入 存储路径规则可配置桶访问权限可配置可配置初始生成多个桶 1.引入依赖 <dependency><groupId>com.qiangesoft.rdp</gro…

会议AISTATS(Artificial Intelligence and Statistics) Latex模板参考文献引用问题

前言 在看AISTATS2024模板的时候&#xff0c;发现模板里面根本没有教怎么引用&#xff0c;要被气死了。 如下&#xff0c;引用(Cheesman, 1985)的时候&#xff0c;模板是自己手打上去的&#xff1f;而且模板提供的那三个引用&#xff0c;根本也没有Cheesman这个人&#xff0c…