[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录

一. IP协议头格式

学习任何协议前的两个关键问题

IP 报头与有效载荷分离

分离方法

为什么需要16位总长度

如何交付

二. 网络通信

1.IP地址的划分理念

2. 子网管理

3.网络划分

CIDR(无类别域间路由)

目的IP & 当前路由器的子网掩码 = 该报文要去的目的网络

特殊IP地址

4.IP 地址的数量限制

5.私有IP地址和公网IP地址

三.全球网络

运营商的角色

网络基础设施的来源

网络访问的控制

路由器的功能

⭕ 主要功能

组建局域网

运营商网络架构

数据包的转发流程

路由器的IP地址结构

全球网络

网络拓扑结构


一. IP协议头格式

学习任何协议前的两个关键问题

在学习任何网络协议之前,需要先理解以下两个基本问题:

  1. 如何将报头和有效载荷分离?
  2. 如何交付?
IP 报头与有效载荷分离
  • IP报头选项:IP报头可以包含选项字段,但本文不讨论这些选项。
  • 标准长度:IP报头的标准长度是20字节。
  • 数据组成:数据部分(即有效载荷)由上层TCP提供,它包括TCP报头和来自应用层的有效载荷。
分离方法

(第一层:

  • 4位版本号:对于IPv4来说总是4。IPv4和IPv6之间没有直接兼容性。
  • 4位首部长度:表示IP报头总长度,单位为4字节。取值范围是【5, 15】(对应于20到60字节),其中5是最常见的值,代表20字节。
  • 16位总长度:指整个IP报文的长度,包括报头和有效载荷。
  • 8位服务类型
    • 包括已废弃的3位优先级字段、4位ToS字段以及1位保留位(必须设为0)。
    • ToS字段定义了服务质量参数如最小延迟、最大吞吐量、最高可靠性和最低成本。
    • 这些参数互斥,选择其中之一影响数据传输路径的选择标准。
  • 计算公式:有效载荷长度 = 16位总长度 - (4位首部长度 * 4)
为什么需要16位总长度
  • 确保接收方完整地接收到整个IP报文。
  • 因为IP报文是以独立报文形式存在,并非像TCP那样的连续字节流,因此需要明确标示出报头和有效载荷的具体长度。
如何交付

(第三层:

  • 8位生存时间(TTL)定义了数据报到达目的地前允许经过的最大跳数。通常初始化为64,每经过一个路由器TTL减1,直至归零仍未达目的地则被丢弃。此字段防止路由环路。
  • 8位协议字段:标识了上层协议类型。当发送时,上层会告知IP所使用的协议,然后IP设置相应的编号。接收方根据这个字段将数据传递给正确的上层协议处理。
  • 16位头部校验和:使用循环冗余校验(CRC)来检测头部错误。如果发现损坏,则丢弃该包,TCP随后会触发重传机制。
  • 32位源/目的IP地址:指定数据报的起点和终点。特别是目的IP地址,用于路由器确定下一跳路径。

16位标识,3位标志,13位片偏移(第二层)我们暂且不谈,等到我们把IP协议整体知识框架搭建起来我们在谈~

总结:


二. 网络通信

引入:

  • 路由器的工作只在网络层,没有 tcp 层。只有两台主机有 tcp 层
  • src_ip:src_port(进程)->dst_ip: dst_port(进程)

1.IP地址的划分理念

背景说明:

  • 互联网上的所有IP地址都是经过精心设计和规划的。
  • 强调理解IP地址网段划分及子网划分的重要性,不应仅停留在对子网掩码等技术细节的理解上,而要从更宏观的角度去认识这一过程。

宏观理解:

  • 从全球到国家、地区乃至具体机构或学校,IP地址的分配体现了这种层次化的结构。每个层级都可以看作是一个更大范围内的“子网”。
  • 不同区域使用不同的比特位来表示,使得整个IP地址体系具有清晰的层次性和区域性。
  • 类比学号系统,每个部分代表了不同级别的信息(如年级、班级、个人编号)。

复杂性与挑战:

  • 实际的IP地址划分非常复杂,而且随着互联网的发展,IPv4地址资源已经变得紧张。
  • 尽管面临资源限制,但基本的设计思想是一致的,即通过合理分配来最大化利用现有地址空间。
  • 解决方案并非简单粗暴地进行划分,而是采用了更为精细的方法和技术。

具体网络划分:

  • 网络一旦被划分为不同的网段,每台主机都将归属于特定的一个网段。
  • 寻址时首先确定目标主机所在的网段,再在该网段内定位具体的主机。
  • 因此,一个完整的IP地址由两部分组成:网络号+主机号
    • 网络号:用于标识不同的网段,确保互连的不同网段之间具有唯一性。
    • 主机号:在同一网段内,各主机共享相同的网络号,但各自拥有唯一的主机号以区分彼此。

路由器作用:

  • 路由器作为连接两个或多个子网的关键设备,在数据包转发过程中起到桥接作用。
  • 它同时属于所连接的所有子网,并且在每个子网中都拥有自己的IP地址
  • 通常是==该子网 网络号+.1形式(例如,对于网络192.168.1.0/24,路由器可能配置为192.168.1.1

子网的概念:

  • 子网是由一组网络号相同的主机组成的集合。
  • 新增主机到某一子网时,其网络号需与该子网一致,但主机号必须保证在整个子网范围内唯一
  • 通过这样的方式,可以确保即便是在相互连接的不同网络中,也能够保持每台主机IP地址的独特性,从而避免冲突。

2. 子网管理

问题背景:

手动管理子网内的IP是一个相当麻烦的事情。例如,当子网内有主机离开或新加入时,就需要对子网内的IP地址进行相应的增删改操作。这项管理工作通常由谁来完成呢?

  • 管理设备:在一个子网中,负责管理子网内IP的通常是路由器。

自动管理解决方案:

  • DHCP技术为了解决手动管理IP带来的不便,有一种叫做DHCP(Dynamic Host Configuration Protocol)的技术被开发出来,它能够自动地给子网内的新增主机节点分配IP地址。
  • 路由器与DHCP:大多数现代路由器都内置了DHCP功能,因此路由器也可以被视为一个DHCP服务器。
  • DHCP服务描述:DHCP是一种自动化服务,负责网络中的IP地址申请、分配和回收等管理工作。
  • 上网前获取IP:这也是为什么我们的电脑在上网之前需要先连接到路由器的原因之一——为了通过路由器获得一个可用的IP地址,从而接入互联网。

3.网络划分

(IP地址分类与CIDR

过去,所有IP地址被划分为五类:

  • A类:0.0.0.0到127.255.255.255
  • B类:128.0.0.0到191.255.255.255
  • C类:192.0.0.0到223.255.255.255
  • D类:224.0.0.0到239.255.255.255(多播地址)
  • E类:240.0.0.0到247.255.255.255(保留作实验用途)

传统分类方案的问题

随着Internet的发展,这种固定划分暴露出不足之处:

  • B类地址由于需求大而迅速耗尽。
  • A类和B类地址造成大量IP资源浪费。

例如,一个B类地址理论上允许单个子网内存在超过65,000台主机;而A类则更多。但实际上很少有网络需要如此多的地址空间,导致许多分配出去的地址并未得到充分利用。

CIDR(无类别域间路由)

为解决上述问题,提出了CIDR机制,其特点如下:

  • 引入“子网掩码”概念,以更灵活地定义网络边界。
  • 子网掩码是一个32位数字,通常尾部由一系列 0 组成。
  • 通过将IP地址与子网掩码执行 按位与& 操作来确定网络号。
  • 网络号与主机号的界限不再依赖于IP地址类型(A/B/C)。
目的IP & 当前路由器的子网掩码 = 该报文要去的目的网络
  • 每个路由器需为其连接的每个网络设定相应的子网掩码。
  • 不同路由器至少要链接两个不同网络。
  • 利用目标IP地址与当前路由器子网掩码做与运算可识别报文的目标网络。

下面看划分子网的例子

例如140.252.20.68/24

  • 表示IP地址为140.252.20.68
  • 子网掩码的高24位是1,也就是255.255.255.0
  • 网络号占据24个比特位

可见,IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围

除:子网中全0不被使用它代表网络号,全1也不被使用代表广播地址。

例子 2:

225.225.255.240 前面28位是网络号,后面4位是主机号~计算思路如下

  • 子网掩码规定前面多少位是网络号 ,所以剩下我们能动得是主机号。
  • 子网掩码,可以对 IP 32 位,进行任意划分
  • 结合以前,先五种分类,再子网掩码
特殊IP地址
  • 当IP地址中的主机部分全为0时,表示网络本身。
  • 主机部分全设为1构成广播地址,用于向同一链路上的所有设备发送信息。
  • 127.*系列地址专用于本地回环测试,最常用的是127.0.0.1


4.IP 地址的数量限制

IPv4地址概述:

  • iPv4地址是一个4字节(32位)的正整数。
  • 总共有 (2^{32}) 个可能的IPv4地址,大约是43亿个。

主机与IP地址的关系:

  • TCP/IP协议规定,每个网络上的主机都需要有一个IP地址。
  • 理论上,这意味着最多只有43亿台主机能够接入互联网。

实际可用IP地址数量:

  • 实际上,由于存在一些保留和特殊用途的IP地址,可分配给普通设备使用的IPv4地址数量远低于43亿。
  • 此外,IP地址是基于网卡而非主机来配置的,意味着单个主机可能需要多个IP地址。

⭕ 缓解IP地址短缺的措施:

  • CIDR(无类别域间路由 提高了IP地址的利用率并减少了浪费,但并未增加IP地址总数。
  • 动态分配IP地址:通过仅在设备连接到网络时为其分配IP地址,使得同一MAC地址的设备每次连接都可能获得不同的IP地址。(用的时候给你,不用的时候就回收
  • NAT(网络地址转换 技术允许内部网络中的多台计算机共享一个或几个公共IP地址访问外部网络。(后面会详细解释~

IPv6

  • IPv6使用16字节(128位)表示一个IP地址,极大地扩展了地址空间。
  • IPv6与IPv4不兼容,属于完全不同的协议体系。
  • 尽管IPv6提供了足够的地址空间解决IPv4地址耗尽的问题,但截至当前,IPv6尚未广泛普及。

未来:

  • 08 奥运会用的内网就是 ipv6~
  • 智能驾驶等技术成熟了,科学技术进步,生产力提高,中国网络的体量越来越大,未来有可能就会切为 ipv6
  • 产业升级,智能制造升级,科技发展,前景广阔~

NAT是现在内网到公网上数据转发的主流技术。目前我们用IPv6也能访问公网也是用的类似技术。

现在我们知道IP地址可以被分成内网IP和公网IP,那些是内网IP?那些是公网IP?

那网络既有内网又有公网我们该如何理解呢?

5.私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址

  • 10.*,前8位是网络号,共16,777,216个地址
  • 172.16.到172.31.,前12位是网络号,共1,048,576个地址
  • 192.168.*,前16位是网络号,共65,536个地址

只能用这三类来组建局域网,包含在这个范围中的,都称为私有IP。 其余的则称为全局IP(或公网IP),

所以我们经常说IP地址具有唯一性,通常谈的是全局IP或公网IP。

  • 在大家前 18 年的使用生涯中,都在直接使用的其实都是私有 IP
  • 云服务器就接触到了--公网 IP

验证:

ipconfig 查看

ifconfig 查看

三.全球网络

运营商的角色

  • 当我们想在家中上网时,如果我们已经使用了某个运营商的手机卡,只需要打电话给运营商,联系其安装网络的师傅来安装。
  • 他们通常会带来一个调制解调器(俗称“猫”)和一个路由器,安装人员会将网络账号与密码设置好,接着配置无线网络名称和密码。
  • 这样,家里的设备就可以通过WiFi上网了。
网络基础设施的来源
  • 上网的网线是运营商提供的。这意味着运营商已经在你家附近建设了网络基础设施。
  • 当你通过路由器发起网络请求时,信息会携带你的网络账号和密码,这个请求首先会到达运营商的服务器,由他们认证你是否欠费。
  • 如果没有欠费,运营商就会将请求继续传递到你所请求的服务,比如腾讯、阿里、百度等。
  • 因此,运营商实际上位于用户和互联网服务提供商之间,扮演着基础设施建设者的角色。
网络访问的控制
  • 运营商有权限制你的网络访问,尤其是当你欠费时,他们可以阻止你的数据报文的转发。
  • 除此之外,运营商也可以审核你的上网内容。例如,发现你尝试访问谷歌、推特等被限制的网站时,运营商可以选择不转发你的请求。
  • 这种机制通常被称为“墙”,而“翻墙”实际上是绕过运营商的转发限制。
  • 物理上,用户不可能绕过运营商直接访问互联网服务提供商(如字节跳动),因为没有直接连接的通路。
  • 网络架构上,用户必须经过运营商的网络才能访问外部互联网服务。

路由器的功能

⭕ 主要功能
  1. 转发数据:路由器的核心任务是转发网络数据包。
  2. DHCP动态主机配置协议,自动为局域网中的设备分配IP地址。
  3. NAT:网络地址转换技术,用于将内部局域网IP转换为可在公网使用的IP地址。
组建局域网
  • 路由器可以用来创建局域网,配置无线网络时,我们可以设置网络名称和密码。
  • 在这种网络中,路由器使用内网IP,比如家用路由器通常使用192.168.*
  • 企业级路由器可能使用10.*172.16-172.31范围的内网IP。

  • 上图可以发现拥有两套密码机制

在上网过程中,通常会遇到两种密码:一种是用于连接互联网服务提供商(ISP)的账号密码,另一种是用于访问无线路由器设置或连接到家庭Wi-Fi网络的密码。这两种密码的功能和用途不同。

  1. 上网账号密码:这是你向互联网服务提供商申请宽带服务时获得的一组账号信息。这组信息通常包括一个用户名(可能是你的手机号码或者ISP提供的特定账号名)和对应的密码。当你首次设置宽带连接或需要重新配置网络连接时,就需要使用这套账号密码来验证身份,并建立与ISP之间的连接。这个账号密码是用来认证你作为合法用户的凭证,确保只有付费用户能够接入互联网服务。
  2. 路由器账号密码:实际上这里可以分为两个部分:
    • 路由器管理界面登录密码:允许你访问路由器的Web管理界面,在那里你可以更改各种设置,比如修改Wi-Fi名称、设定安全级别等。
    • Wi-Fi密码:也称为“预共享密钥”(PSK),是指当设备尝试加入你的无线局域网时所需输入的密码。它保护了你的无线网络免受未经授权的访问者侵入。

如果邻居能够蹭网,则意味着他们知道了你的Wi-Fi密码这是因为只要知道正确的Wi-Fi密码,任何人都可以连接到你的无线网络上。

  • 流量费的问题,国家扶持使其费用下降了,大力发展互联网,孵化出了大量互联网公司,收获了发展的红利
  • 结合国家对于滴滴和支付宝等私企的放权和支持,可以看出我们国家发展互联网的决心非常大!

运营商网络架构

每个家庭都有自己的路由器,负责创建家庭局域网,使用192.168.*开头的内网IP。当家庭网络连接到互联网时,需要通过运营商的网络。所以家庭路由器实际上跨越了两个子网:

  1. 家庭局域网子网(192.168.*)。
  2. 运营商的子网。

这意味着当数据从家用路由器发出时,先到达运营商的子网,再经过多级路由器,最终转发到公网。

家庭路由器会配备两个IP地址:

  • LAN口IP:用于家庭内部局域网,通常为192.168.*
  • WAN口IP:用于连接运营商的网络,是由运营商分配的IP地址。

同理,运营商的路由器也具有LAN口IP和WAN口IP:

  • LAN口IP:用于运营商内部网络(可能是私有网络)。
  • WAN口IP:这是一个公网IP,用于连接到互联网。

数据包的转发流程

  • 在不同局域网中,私有IP是可以重复的,因为只需要在局部环境中保证唯一性。
  • 然而,这带来了一个问题:当不同局域网中的设备使用相同的IP地址(例如,192.168.1.201)时,外部服务提供商(如抖音)如何知道数据包应该返回到哪个局域网?
  • 为了解决这个问题,NAT(网络地址转换)技术应运而生。当数据经过路由器时,路由器会将数据包的源IP地址替换为自己的WAN口IP。当请求返回时,路由器则会根据这个WAN口IP知道将数据包转发到哪个局域网的设备上。

路由器的IP地址结构

个人主机上的 IP 是私有 IP

每个路由器都有两个IP地址:

  1. LAN口(子网 IP:用于在局域网内部通信,通常为私有IP(如192.168.1.1)。来实现对上一个的连接
  2. WAN口IP:用于与外部网络(如运营商网络)通信。这个IP可能是一个公网IP路由器自己的标识
  • 路由器内的主机(如手机、电脑等)使用局域网的IP地址,而这些IP地址在不同的局域网中是可以重复的。
  • 然而,当这些主机需要访问外网时,路由器会使用NAT技术将内部的私有IP地址替换为WAN口IP。这种逐级替换的过程使得最终的数据包在公网中能够使用一个唯一的IP地址进行通信。
  • 如果想要让外界能够访问我们自建的服务器(如网页服务器),那么这台自建服务器必须部署在具有公网IP的设备上。例如,云服务提供商(如阿里云、腾讯云)可以提供这样的服务器。

全球网络

我们可以在 IPSHU 上查看全球 IP 的使用情况

由于IP地址的有限性(尤其是IPv4),全球范围内的IP地址已经不足。

网络拓扑结构

公网和子网的划分通常可以通过IP地址和子网行。

比如,如果从美国发出一个请求,目标IP地址是湖北武汉的服务器

  • 路由器首先会判断这个IP不属于本地网络,于是将请求发送给国际路由器
  • 国际路由器再判断目标IP属于中国,就会将数据包转发到中国的路由器。
  • 接下来,中国的路由器会继续判断目标IP,发现属于湖北,
  • 再由湖北的路由器转发给武汉的服务器。

整个互联网的拓扑结构虽然复杂,但这种逐级转发的逻辑是其核心。运营商在地方上建立了本地网络,并将不同子网进行划分,然后通过公网入口路由器与全球互联网连接。

网络模式如下,可以看到,在接入武汉之后,由公网入私网

注意:

  • 私有 ip 存在大量重复,不能进公网
  • 路由器会进行报文的替换,WAN 口 IP 的替换
  • 解决:将源 IP 替换成每一个路由器的WAN 口 IP

私有 IP 不断被替换的过程:NAT 技术

为了解决 IP 不足问题,采取了 互联网=公网+私网 的模式

下一篇文章将继续讲解 NAT 技术怎么回来,路由等知识~

🎢 补: CRUD是一个缩写,代表创建(Create)、读取(Read)、更新(Update)和删除(Delete)这四种基本的数据库操作。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不做邮箱投稿的奴隶,要做单位信息宣传考核计分投稿的主人

在我刚开始承担单位的信息宣传考核任务时,心中充满了激情与期待。作为一名普通员工,我深知信息宣传的重要性,它不仅关乎单位的形象,更是我们对外沟通的桥梁。然而,现实的残酷让我逐渐体会到了压力的沉重。 最初,我选择了通过邮箱进行投稿。这种方式听起来似乎是最优雅的选择,毕…

页面请求快速迁移至接口工具(apifox、postman) 进行针对性调试

文章目录 需求背景实操 需求背景 自动携带参数,仅进行少量更改 在功能模块开发前期,难免会有让后端协助造数据,对通业务流程的场景 不确定造的数据或者后端的改动是否满足自己的需求,改一次有问题又等着改了再看很浪费时间 调用接…

Redis可视化软件安装

Anther Redis Desktop Manager 软件链接: https://pan.baidu.com/s/1YxCxwoy12G_p8IR5KcPgmQ?pwd1111

CSS 设置网页的背景图片

背景 最近正好在写一个个人博客网站“小石潭记”,需要一张有水,有鱼的图片。正好玩原神遇到了类似场景,于是截图保存,添加到网站里面。以下是效果图: css 写个class,加到整个网页的body上 .bodyBg {ba…

C++ 中的友元(Friend)用法详解

什么是友元(Friend)?👭 友元 (C) | Microsoft Learn 在C中,友元(Friend)是一种机制,允许外部函数或类访问某个类的私有(private)或保护(protecte…

IDEA使用Alibaba Cloud Toolkit插件自动化部署jar包

一、下载插件 二、添加服务器主机 三、填写自己服务器配置 四、添加配置 五、配置说明 六、选择maven打包模块 七、maven打包后的jar包位置配一下 八、点击运行发现成功

重学SpringBoot3-Spring WebFlux简介

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux简介 1. 什么是 WebFlux?2. WebFlux 与 Spring MVC 的区别3. WebFlux 的用处3.1 非阻塞 I/O 操作3.2 响应式编程模型3.3 更高…

Thread类的介绍

线程是操作系统中的概念,操作系统中的内核实现了线程这种机制,同时,操作系统也提供了一些关于线程的API让程序员来创建和使用线程。 在JAVA中,Thread类就可以被视为是对操作系统中提供一些关于线程的API的的进一步的封装。 多线…

PHP(一)从入门到放弃

参考文献:https://www.php.net/manual/zh/introduction.php PHP 是什么? PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML…

从新手到高手:Spring AOP的进阶指南

目录 一、AOP简介 1.1 AOP入门案例 1.2 AOP 优点 二、核心概念 2.1 切面(Aspect) 2.2 切点(PointCut) 2.3 通知(Advice) 2.4 织入(Weaving) 三、AOP 原理 3.1 CGLIB 与 JDK动态代理对比 3.2 切面优先级 四、总结 一、AOP简介 AOP(Aspect-Oriented Programming) 面向切面编…

在各大媒体报纸上刊登自己的文章用什么投稿方法发表快?

在职场中,信息宣传是每个单位的重要工作,而每个月的考核投稿任务更是让我深感压力。作为一名普通员工,我常常面临着如何在各大媒体上顺利发表文章的问题。起初,我选择了传统的邮箱投稿方式,然而这条路却让我陷入了无尽的焦虑和挫败之中。 刚开始投稿时,我满怀激情,认真撰写每一…

[论文笔记]HERMES 3 TECHNICAL REPORT

引言 今天带来论文HERMES 3 TECHNICAL REPORT,这篇论文提出了一个强大的工具调用模型,包含了训练方案介绍。同时提出了一个函数调用标准。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 聊天模…

数据库事务

为了保证一致性 1.ACID 事务具有四个基本特性,也就是通常所说的 ACID 特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability&#x…

算法: 模拟题目练习

文章目录 模拟替换所有的问号提莫攻击Z 字形变换外观数列数青蛙 总结 模拟 替换所有的问号 按照题目的要求写代码即可~ public String modifyString(String ss) {int n ss.length();if (n 1) {return "a";}char[] s ss.toCharArray();for (int i 0; i < n; i…

使用Python和Proxy302代理IP高效采集Bing图片

目录 项目背景一、项目准备环境配置 二、爬虫设计与实现爬虫设计思路目标网站分析数据获取流程 代码实现1. 初始化爬虫类&#xff08;BingImageSpider&#xff09;2. 创建存储文件夹3. 获取图像链接4. 下载图片5. 使用Proxy302代理IP6. 主运行函数 运行截图 三、总结 项目背景 …

SpringMVC一个拦截器和文件上传下载的完整程序代码示例以及IDEA2024部署报错 找不到此 Web 模块的 out\artifacts\..问题

一、SpringMVC一个拦截器和文件上传下载的完整程序代码示例 本文章是一个 SpringMVC拦 截器和文件上传下载的完整程序代码示例&#xff0c;使用的开发工具是 IntelliJ IDEA 2024.1.6 (Ultimate Edition)&#xff0c; 开发环境是 OpenJDK-21 java version 21.0.2。Tomcatt版本为…

【C++篇】类与对象的秘密(上)

目录 引言 一、类的定义 1.1类定义的基本格式 1.2 成员命名规范 1.3 class与struct的区别 1.4 访问限定符 1.5 类的作用域 二、实例化 2.1 类的实例化 2.2 对象的大小与内存对齐 三、this 指针 3.1 this指针的基本用法 3.2 为什么需要this指针&#xff1f; 3.3 t…

基于SSM+微信小程序的房屋租赁管理系统(房屋2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的房屋租赁管理系统实现了有管理员、中介和用户。 1、管理员功能有&#xff0c;个人中心&#xff0c;用户管理&#xff0c;中介管理&#xff0c;房屋信息管理&#xff…

Java基础-IO基础

IO是指input/output&#xff0c;即输入和输出。输入和输出是以内存为中心的&#xff1a; input 从外部往内存输入数据&#xff0c;比如硬盘中的数据写入内存等。 output 从内存往外输出数据&#xff0c;比如内存数据写入硬盘等。 File File类表示一个文件或者一个目录。使用F…

【服务器虚拟化是什么?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…