《TCP/IP详解 卷一》第6章 DHCP

目录

6.1 引言

6.2 DHCP

6.2.1 地址池和租用

6.2.2 DHCP和BOOTP消息格式

6.2.3 DHCP和BOOTP选项

6.2.4 DHCP协议操作

6.2.5 DHCPv6

6.2.6 DCHP中继

6.2.7 DHCP认证

6.2.8 重新配置扩展

6.2.9 快速确认

6.2.10 位置信息(LCI和LoST)

6.2.11 移动和切换信息(MoS和ANDSF)

6.2.12 DHCP嗅探

6.3 无状态地址自动配置

6.4 DHCP 和 DNS 交互

6.5 以太网上的PPP

6.6 与系统配置相关的攻击

6.7 总结


6.1 引言

获取IP方式:

        DHCP

        IPv6无状态地址自动配置(SLAAC,Stateless Address Autoconfiguration)

        ISP+PPPoE拨号

VoIP(Voice over Internet Protocol):

        一种通信技术。

        将语音转换数字,并通过IP网络传输的技术。

        用途:各种即时通讯应用程序。如Skype、WhatsApp、Zoom、微信电话等。

SIP(Session Initiation Protocol):

        一种通信协议。

        SIP定义了一套信令,用于终端之间会话控制和协商,包括会话建立、维护和结束会话。

        SIP通常用于VoIP系统中作为信令协议,负责处理呼叫建立、呼叫转移、状态更新等任务。

     

        使用SIP地址标识终端设备。类似于电子邮件地址。

VoIP和SIP总结:

        VoIP技术使用SIP协议进行会话控制和信令交换。

6.2 DHCP

DHCP:分配IPv4地址,源于BOOTP,客户端端口68,服务器端口67。

DHCPv6:分配IPv6地址。

DHCP分配方式:

        自动分配:从地址池中分配,IP地址根据客户端MAC绑定关系来分配。

        动态分配:从地址池中分配,客户端每次分配的IP可能不一样。

        手动分配:不从地址池中分配。

6.2.1 地址池和租用

DHCP服务器将租用信息保存在持久性存储器中。即使重启DHCP服务器,租约完好。

6.2.2 DHCP和BOOTP消息格式

BOOTP是DHCP的前身。

DHCP报文格式:

Op(op code):表示报文类型。

        值为1:客户端请求报文。

        值为2:服务器响应报文。

htype:硬件类型,以太网时值为1。

hlen:硬件地址长度,以太网时值为6。

hops:跳数,DHCP报文经过的中继数量。每经过一个路由器,值加1。若同网段则不经过路由器,值为0。

xid:事务ID。DHC客户端发起请求时设置的随机数,服务器响应报文复制该值,用于匹配请求和响应报文。

secs:DHCP客户端从获取到IP地址或续约开始到现在的时间,单位秒。获得IP地址之前均为0。

flags:只使用bit0,用来标识DHCP服务器应答报文是单播还是广播发送。0:单播,1:广播。

ciaddr:DHCP客户端的IP地址。仅用于DHCP服务器发送的ACK报文,在其他报文为0。因为DHCP服务器确认前,DHCP客户端还没有分配到IP。

yiaddr:DHCP服务器分配给客户端的IP地址。仅用于DHCP服务器发送的Offer和ACK报文,其他报文为0。

siaddr:为DHCP客户端分配IP地址等信息的其他DHCP服务器IP地址。仅在DHCP Offer、DHCP ACK报文中显示,其他报文中显示为0。

Giaddr:DHCP客户端请求报文后经过的第一个DHCP中继IP(跨网段)。如果不经过DHCP中继, 则为0。

Chaddr:DHCP客户端的MAC地址。

Sname:为DHCP客户端分配IP的DHCP服务器名称。在Offer和ACK报文中显示,其他报文为0。

File:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径。仅在DHCP Offer报文中显示,其他报文为空。

Options:可选项字段,长度可变,格式为"代码+长度+数据"。

        详细在下节结束。

6.2.3 DHCP和BOOTP选项

子网掩码:Option Code 1

        用于指定客户端设备所在子网的掩码。

网关:Option Code 3

        给提供客户端网关IP。

域名服务器:Option Code 6

        给客户端提供一个或多个 DNS 服务器的IP。

主机名:Option Code 12

        客户端向DHCP服务器提供其主机名。

域名:Option Code 15

        指定DHCP客户端的DNS域名。

IP地址租用时间 (Lease Time) :Option Code 51

        指定为客户端分配的IP的租用时间,以秒为单位。

DHCP消息类型:Option Code 53

        指定DHCP消息类型,如Discover、Offer、Request、Decline等。

DHCP服务器标识:Option Code 54

        用于给DHCP客户端分配IP的服务器的IP地址。

参数请求列表:Option Code 55

        客户端使用该选项告知DHCP服务器请求的配置参数,如子网掩码、网关、DNS 服务器等。

更新服务器 (Renewal Time Value) - Option Code 58

        指定客户端应尝试更新其租用的IP地址的时间,以秒为单位。

其中DHCP消息类型选项(Option Code 53):

        每个DHCP消息都需要使用,可能值:

                DHCPDISCOVER(1)、DHCPOFFER(2)、DHCPREQUEST(3)、

                DHCPDECLINE(4)、 DHCPACK(5)、DHCPNAK(6)、DHCPRELEASE(7)

                DHCPINFORM(8)、DHCPFORCE- RENEW(9),DHCPLEASEQUERY(10)

                DHCPLEASEUNASSIGNED(11),DHCPLEASEUNKNOWN(12),DHCPLEASEACTIVE(13)

6.2.4 DHCP协议操作

DHCPOFFER报文中Your IP address字段是DHCP服务器提供的IP地址。

DHCPOFFER消息中包含租约时间(T),更新时间(T1),重新绑定时间(T2)。

        租约时间:Lease Time,值为定时器T,即不更新租约情况下IP地址可使用时间上限。

        更新时间:Renewal Time,值为定时器T1,即客户机经过多久尝试向服务器请求更新租约时间。

        重新绑定时间:Rebinding Tim,值为定时器T2,即客户机当前地址租约即将过期,向服务器请求更新地址。

        默认时,T1 =(T/2),T2=(7T/8)

客户端分配到IP地址后,可向该IP发送ARP请求,来检测IP是否冲突,若发现冲突则向服务器发送DHCP DECLINE,拒绝该IP。

DHCP INFORM:用于向DHCP服务器请求特定的配置信息,但并不请求分配IP地址。

FQDN:Fully Qualified Domain Name ,完全限定域名。互联网上唯一标识设备的域名。

        包含完整域名层级结构,从右到左依次表示主机名、子域名、顶级域名和根域名。

        如:www.example.com

windows命令:

        释放当前IP:ipconfig /release

        重新获取IP:ipconfig /renew

        可触发DHCP分配IP的流程,方便抓包学习。

DHCP客户端状态机:

6.2.5 DHCPv6

IPv6四种IP分置方式:

        静态

        SLAAC: 无状态地址自动配置,无法分配DNS

        无状态DHCPv6: 分配地址前缀,网关,DNS

        有状态DHCPv6: 分配IP,网关,DNS

SLAAC:

        Stateless Address Autoconfiguration,无状态地址自动配置。

        特点:简单,无需DHCPv6服务器。

        工作原理:

                IPv6路由器周期向本地链路所有主机发送路由器通告RA消息,其中包含网络前缀和其他网络配置。

                主机根据RA消息中的网络前缀和接口标识符Interface ID(即MAC地址)生成一个唯一的IPv6地址。

                然后进行IPv6地址冲突检测。

                SLAAC本身不提供其他网络参数(如DNS服务器、默认网关等),但是路由器通告RA中通常会包含该配置。此外主机还可用DHCPv6获取额外参数。

        接口标识符:由EUI-64生成,即根据MAC或者随机(windows)生成,MAC 中插入FFFE,最后从左到右的第七位翻转。

无状态DHCPv6:

        此时DHCPv6服务器不用于提供IPv6地址,而是提供其他网络配置信息,如 DNS、域名、NTP服务器等。

        因为常与SLAAC协同使用,SLAAC为客户端分配IPv6地址,而无状态DHCPv6提供其他网络配置参数。

Radvd(Router Advertisement Daemon):。一个周期发送IPv6路由通告RA报文的守护程序,RA报文中包含网络前缀、默认路由,其他配置(如MTU、邻居发现信息)。

ICMPv6报文类型包括:

        回显请求/响应: Echo Request/Reply

                作用:ping

        邻居请求/邻居通告: Neighbor Solicitation/Advertisement

                作用:查询邻居的IPv6地址,类似ARP。

                        确认其可达性

                        地址冲突检测

        路由器请求/路由器通告:Router Solicitation/Advertisement

                作用:请求/发送路由器的配置信息

        重定向: Redirect

                作用:用于通知主机将包路由到更优路径,优化包传输。

        参数问题: Parameter Problem

                作用:用于通知发送方包中某些字段或选项存在问题。

        报文过大:Packet Too Big

                作用:用于通知发送方包过大,无法传输。

      

        超时:Time Exceeded

                作用:TTL为0时,用于通知源主机。

        目的地不可达:Destination Unreachable

                作用:用于通知源主机目的地不可达,包括网络不可达、端口不可达等。

两种DHCPv6消息格式:

        1. 常规:客户端/服务器使用。

        2. 中继代理使用。

DUID:DHCP唯一标识符,用于标识客户端或服务器,全球唯一。通常基于设备硬件地址、时间戳、随机数等生成。

DHCPv6分配流程

DAD:重复地址检测,通过向该地址发送IPv6邻居请求NS实现。

客户机获得IPv6地址方式是DHCP还是SLACC?

        取决于客户机接收的ICMPv6路由器通告RA中配置选项。

        即根据RA消息中M位,O位字段:

                M位:即Managed Address Configuration Flag,表示通过DHCPv6获得IPv6地址。

                O位:即Other Configuration Flag。

                        表示除IPv6地址外的配置可使用DHCPv6获得。

M和O组合方式:

        M=1,O=1:使用DHCPv6分配地址和其他配置信息。

        M=1,O=0:使用DHCPv6分配地址,但其他配置通过其他方式获取。

        M=0,O=1:不使用DHCPv6分配地址,但其他配置信息通过DHCPv6获取。

        M=0,O=0:不使用DHCPv6分配地址和其他配置信息,通过其他方式获取。

DHCPv6 SOLICIT

        作用:用于DHCPv6客户端向服务器请求地址分配或前缀分配。

DHCPv6 ADVERTISE

        作用:用于DHCPv6服务器向客户端分配IPv6地址和网络配置信息。

6.2.6 DCHP中继

DHCP中继代理:

        使用场景:跨网段时分配IP地址。

流程:

        1. DHCP客户端向DHCP中继发送DHCP请求包,而 DHCP中继收到广播包后,再以单播形式发给DHCP服务器。

        2. 服务器端再向DHCP中继返回应答,并由DHCP中继将此包广播给DHCP客户端。

DHCP中继:仅中继IPv4广播或IPv6组播流量。

如何实现DHCP中继功能?

        开启DHCP Option 82选项,即RAIO选项。

        RAIO:Relay Agent Information Option,中继代理信息选项。

6.2.7 DHCP认证

使用较少。

认证选项:用于确定DHCP消息来自授权的发送方。

6.2.8 重新配置扩展

允许服务器主动触发客户端更新租约。

作用:当网络状态改变时,使客户端重新获得地址或丢弃原来地址。

6.2.9 快速确认

允许DHCP服务器通过DHCP ACK响应DHCP DISCOVER消息,跳过标准流程中的DHCP OFFER和REQUEST消息。

目的:用于加快DHCP客户端获取IP地址和配置的过程。

使用场景:

        移动网络中设备频繁切换网络,用于减少IP地址分配延迟。

        大规模网络中,大量设备请求IP。减少DHCP消息数量和交换时间,提高网络性能。

        降低延迟,如VoIP或视频流。

Linux如何开启DHCP快速确认:

        客户端:如dhclient,配置文件/etc/dhcp/dhclient.conf中添加:

                send dhcp-requested-address 1;

                request dhcp6 rapid-commit;

        服务器:如dhcpcd,配置文件/etc/dhcpcd.conf中添加:

                option rapid_commit;

6.2.10 位置信息(LCI和LoST)

LCI(Location Configuration Information):位置配置信息

        一种DHCPv6选项。

        用于在DHCPv6中传递客户端位置信息。如地理坐标、楼层号、建筑物名称、部门名等。

        这样便服务器可根据位置信息为客户端分配适当的 IP 地址和配置参数。

LoST(Location-to-Service Translation):位置到服务转换。

        一种协议。

        用于根据位置信息确定最近的服务节点的地址。

        使用场景:

                紧急呼叫:移动网络中,当用户拨打救急电话是,可根据用户位置信息确定最近的紧急呼叫中心地址,从而将呼叫路由到最近接收方。

                广告投送:LoST帮助广告商根据用户位置向其传递相关广告。

                网络管理:LoST帮助网络管理员根据设备位置动态调整访问控制策略。

6.2.11 移动和切换信息(MoS和ANDSF)

用于移动蜂窝网络中的两个DHCP选项。

MoS (Mobile Operator Service):

        作用:用于指定移动运营商提供的服务信息。

ANDSF (Access Network Discovery and Selection Function):

        即接入网发现和选择功能。

        作用:允许移动设备发现和选择最佳的接入网络。

6.2.12 DHCP嗅探

即DHCP Snooping,一种交换机功能。

作用:检查DHCP消息内容,实现ACL管理DHCP流量,防攻击。

6.3 无状态地址自动配置

IPv4:从链路本地范围169.254.1.1至169.254.254.254使用16位子网,掩码255.255.0.0随机选择IPv4地址,并使用IPv4 ACD检测冲突

IPv6 SLAAC:自动配置的地址可以是链路本地IPv6地址,但主要还是全球单播地址。

IPv6 SLAAC自动配置链路本地地址

        前缀fe80::0+随机数,或前缀fe80::0+接口标识符(MAC地址)

下面重点讲SLAAC如何自动配置全球单播地址。

IPv6 SLAAC配置流程:

        设备发送路由器请求消息RS到本地链路多播地址FF02::。

        路由器收到RS消息后,向本地链路多播地址FF02::回复路由器通告消息RA。

        设备收到RA消息后,获取其中IPv6网络前缀。

        设备将网络前缀和其接口标识符(通常是MAC地址)结合生成IPv6地址。

设备通常还需要DHCPv6获取默认网关,DNS服务器等信息。

所以常见部署:SLAAC + DHCPv6 = 无状态DHCPv6,此时DHCPv6来获得配置信息,不用来获得IP。

配置好IPv6地址后,还需进行DAD(重复地址检测):

        DAD方法:向该地址发送邻居请求NS消息,如果没有收到邻居通告NA消息。则说明IPv6地址没有冲突。

小结:

        全球单播地址的IPv6 SLAAC

                路由器发送ICMPv6 RA,其中提供前缀,首选/有效生命周期,DNS服务器等。

                IPv6地址=前缀+接口标识符(MAC)。

        无状态的DHCPv6

                不提供地址,只用于提供配置信息。

        所以SLAAC和DHCPv6结合即可,完成IP地址+配置信息。

Linux、Windows 可以设置禁止系统给自己分配169.254/16的IP,因为这个IP没用。

IPv6全局地址禁用SLAAC两种方法:

        1. 在本地路由器RA消息的前缀选项中关闭自动标志,即之前说的M/O标志。

        2. 命令禁止全局地址自动配置。如sysctl -w net.ipv6.conf.all.autoconf=0

6.4 DHCP 和 DNS 交互

dnsmasq程序同时实现了DHCP,DNS服务器功能。

6.5 以太网上的PPP

PPP over Ethernet:PPPoE

下图可知,DSL调制解调器起到了网桥作用。

DSL调制解调器作用:数字信号转与模拟信号互相转换。

PPPoE优点:PPP协议提供了比DHCP更细致的配置控制和审计日志,方便计费。

DSL提供点到点数字链路,可与传统模拟电话线同时工作。

PPPoE通信:

        1. 发现阶段 以太网类型为0x8863

                PADI(PPPoE Active Discovery Initiation)初始化

                PADO(PPPoE Active Discovery Offer)提供

                PADR(PPPoE Active Discovery Request)请求

                PADS(PPPoE Active Discovery Session-confirmation)会话确认

                PADT(PPPoE Active Discovery Terminate)会话终止

        2. PPP会话阶段 以太网类型为0x8864

PPPoE具体流程可看我的文章

        PPP & PPPoE & L2TP & PPTP 一文全介绍_冫。。。ptptppp-CSDN博客

6.6 与系统配置相关的攻击

6.7 总结

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

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

相关文章

OpenCV 4基础篇| OpenCV像素的编辑

目录 1. 前言1. 像素的访问1.1 数组索引访问1.2 img.item() 2. 像素的修改2.1 数值索引修改2.2 img.itemset() 1. 前言 像素是构成数字图像的基本单位,像素处理是图像处理的基本操作。 对像素的访问、修改,可以使用 Numpy 方法直接访问数组元素。 1. 像…

备考2024年AMC10:2000-2023年1250道AMC10真题练一练

我整理了2000-2023年的全部AMC10的AB卷真题共1250题,并且独家制作了多种在线练习,利用碎片化时间,一年足以通过自学在2024年AMC10竞赛中取得好成绩。 我们今天继续来随机看五道题目和解析。 2000-2023年AMC10真题练一练:2013年第…

洛谷P8627 [蓝桥杯 2015 省 A] 饮料换购

#先看题目 题目描述 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那…

Python入门学习——基础语法

一、Python解释器 1. Python解释器的作用是&#xff1a; 将Python代码翻译成计算机认识的O和1并提交计算机执行在解释器环境内可以一行行的执行我们输入的代码也可以使用解释器程序&#xff0c;去执行".py"代码文件 2. Python解释器程序在&#xff1a; <Python…

【第七天】C++模板探秘:函数模板、类模板以及类型转换的深入解析

一、模板的概述 c面向对象编程思想&#xff1a;封装、继承、多态 c泛型编程思想&#xff1a;模板 模板的分类&#xff1a;函数模板、类模板 函数模板&#xff08;类模板&#xff09;&#xff1a;将功能相同&#xff0c;类型不同的函数&#xff08;类&#xff09;的类型抽象成虚…

QoS 服务质量

服务质量 QoS (Quality of Service) 服务质量可用若干基本性能指标来描述&#xff0c;包括&#xff1a;可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测和改正时间等。 服务提供者可向其用户保证某一种等级的服务质量。 服务性能的总效果&#xff0c;…

svn客户端下载、安装、使用

下载、使用 打开360软件管家&#xff0c;选怎宝库&#xff0c;搜索svn&#xff0c;点击安装 可以修改安装路径 使用 在桌面右键弹出菜单&#xff0c;点击 输入地址&#xff0c;点击ok 输入用户名、密码 &#xff0c;等待检出完成

手把手教你安装和激活Fl Studio21.2.3.4004破解补丁(附激活教程)

盼望着盼望着&#xff0c;FL Studio21带这它的版本号2.3.4004来了&#xff0c;是最新版Fl Studio21.2.3.4004 关于FL Studio21.2.3.4004破解激活&#xff0c;跟之前版本一样&#xff0c;这篇文章将给大家带来FL Studio 21.2.3.400彻底激活教程&#xff0c;喜欢的朋友欢迎一键3连…

第八篇【传奇开心果系列】python的文本和语音相互转换库技术点案例示例:Google Text-to-Speech虚拟现实(VR)沉浸式体验经典案例

传奇开心果博文系列 系列博文目录python的文本和语音相互转换库技术点案例示例系列 博文目录前言一、雏形示例代码二、扩展思路介绍三、虚拟导游示例代码四、交互式学习示例代码五、虚拟角色对话示例代码六、辅助用户界面示例代码七、实时语音交互示例代码八、多语言支持示例代…

守护进程出现拉起多个子进程问题

引言 在我自己开发的httpApi进程中&#xff0c;使用了守护进程&#xff0c;保证进程在意外退出的时候可以重新自动启动。但是使用pstree的时候发现创建了不止一个进程&#xff0c;其中代码和问题现象如下&#xff1a; 代码 int main(int argc, char *argv[]) {printMainVer()…

计算机网络-网络层,运输层,应用层

网络层/网际层 网络层的主要任务包括&#xff1a; 提供逻辑上的端到端通信&#xff1a;网络层负责确定数据的传输路径&#xff0c;使数据能够从源主机传输到目标主机&#xff0c;即实现端到端的通信。数据包的路由和转发&#xff1a;网络层根据目标主机的地址信息&#xff0c…

MySQL事务(基础入门)(高频考点)

文章目录 前言什么是事务&#xff1f;事务的特性并发情况下会出现哪些问题脏读不可重复读幻读 总结 前言 今天来讲一讲 MySQL 事务的基础入门。 更多关于MySQL的知识可以看此专栏 MySQL专栏&#xff08;持续更新&#xff09; 什么是事务&#xff1f; 当我们在操作数据库的时…

深入探索Linux:ACL权限、特殊位与隐藏属性的奥秘

前言&#xff1a; 在Linux系统中&#xff0c;文件和目录的权限管理是一项至关重要的任务。它决定了哪些用户或用户组可以对文件或目录执行读、写或执行等操作。传统的Linux权限模型基于用户、组和其他的概念&#xff0c;但随着时间的推移&#xff0c;这种模型在某些情况下显得…

​​​​​​​Sora:OpenAI的革命性AI视频模型与其对未来影像创作的影响

随着深度学习技术和计算能力的进步&#xff0c;人工智能不仅在图像识别、自然语言处理等领域取得了卓越成就&#xff0c;同时也在不断突破视频处理和生成的边界。在这一背景下&#xff0c;OpenAI推出了Sora——一种新型的AI视频模型&#xff0c;标志着AI在视频内容创作领域的又…

高并发Server的基石:reactor反应堆模式

业务开发同学只关心业务处理流程。但是我们开发的程序都是运行服务端server上&#xff0c;服务端server接收到IO请求后&#xff0c;是如何处理请求并最终进入业务流程的呢&#xff1f;这里不得不提到reactor反应堆模型。nginx tomcat redis nodejs dubbo等软件的网络处理模型都…

snmp协议开通教程

目录 一、什么是snmp协议&#xff1f; 二、snmp协议可以用来干什么&#xff1f; 三、snmp协议的开通 1、snmpv2协议开通 2、snmpv3协议开通 一、什么是snmp协议&#xff1f; SNMP&#xff08;Simple Network Management Protocol&#xff09;是一种用于网络管理的标准协议&a…

LDR6328 PD诱骗芯片:优化小家电Type-C接口充电体验与安全性的关键技术

随着科技的日新月异&#xff0c;小家电设备日趋智能化&#xff0c;Type-C接口因其便捷性在小家电领域的应用也日益增多。然而&#xff0c;Type-C接口的多样性导致设备在识别和使用不同充电方式时面临挑战。为应对这一问题&#xff0c;PD诱骗芯片应运而生&#xff0c;成为解决充…

ONLYOFFICE8.0——赋能办公

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-xdAoM2pHRmDFP0tF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

day41WEB 攻防-通用漏洞XMLXXE无回显DTD 实体伪协议代码审计

本章知识点&#xff1a; 1 、 XML&XXE- 原理 & 发现 & 利用 & 修复等 2 、 XML&XXE- 黑盒模式下的发现与利用 3 、 XML&XXE- 白盒模式下的审计与利用 4 、 XML&XXE- 无回显 & 伪协议 & 产生层面 配套资源&#xff08;百度网盘&#x…

【MySQL】数据库概述

目录 一、为什么使用数据库&#xff1f; 二、数据库与数据库管理系统 2.1 相关概念 2.2 两者关系 三、 MySQL介绍 四、 RDBMS和非RDBMS 4.1 关系型数据库&#xff08;RDBMS&#xff09; 4.2 非关系型数据库&#xff08;非RDBMS&#xff09; 五、关系型数据库设计规则 …