Linux网络编程:网络基础

文章目录:

一:协议  

二:网络应用设计模式_BS模式和CS模式

三:网络分层模型(OSI七层 TCP/IP四层)

四:通信过程

五:协议格式 

1.数据包封装

2.以太网帧格式和ARP数据报格式 

3.IP段格式 

4.UDP数据报格式

5.TCP数据报格式

六:TCP协议

1.TCP通信时序(面向连接的可靠数据通信)

三次握手(发起请求 接受请求)

四次挥手(关闭连接请求)

2.滑动窗口(TCP流量控制)

3.TCP状态转换

4.半关闭

5.2MSL

5.1 程序设计中的问题

5.2 端口复用

6.TCP异常断开

6.1 心跳检测机制

6.2 设置TCP属性

七:网络名称术语

1.路由(route) 

2.以太网交换机工作原理

3.hub工作原理

4.半双工/全双工

5.DNS服务器

6.局域网(LAN) 广域网(WAN)

7.端口

8.MTU


学习Linux的网络编程原则上基于:Linux的系统编程 和 Linux基础的Shell编程(第十章);除此之外还包含了计算机网络的知识

Linux基础shell编程——>Linux 系统编程——>Linux 网络编程

一:协议  

互联网协议(Internet Protocol Suite)

什么是协议:从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则典型协议 传输层      常见协议有TCP/UDP协议应用层      常见的协议有HTTP协议,FTP协议网络层      常见协议有IP协议、ICMP协议、IGMP协议网络接口层  常见协议有ARP协议、RARP协议
TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议FTP文件传输协议(File Transfer Protocol)IP协议是因特网互联协议(Internet Protocol)ICMP协议是Internet控制报文协议(Internet Control Message Protocol)它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息IGMP协议是 Internet 组管理协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间ARP协议是正向地址解析协议(Address Resolution Protocol),通过已知的IP,寻找对应主机的MAC地址RARP是反向地址转换协议,通过MAC地址确定IP地址

二:网络应用设计模式_BS模式和CS模式

           C/S:Client/Server                            B/S:Browser/Server优点:	缓存大量数据、协议选择灵活、速度快			安全性、跨平台、开发工作量较小缺点:	安全性差、开发工作量大、跨平台难			    不能缓存大量数据、必须严格遵守http协议

三:网络分层模型(OSI七层 TCP/IP四层)

物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)这一层的数据叫做比特数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问这一层通常还提供错误检测和纠正,以确保数据的可靠传输如:串口通信中使用到的115200、8、N、1网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层传输层:定义了一些传输数据的协议和端口号(WWW端口80等)如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC)而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务

OSI七层模型结构(我的记忆方法_巫术网传会报应):  物、数、网、传、会、表、应TCP/IP 4层模型结构:网(链路层/网络接口层)、网、传、应应用层:http、ftp、nfs、ssh、telnet。。。传输层:TCP、UDP网络层:IP、ICMP、IGMP链路层:以太网帧协议、ARP

四:通信过程

网络传输数据封装流程 

数据没有封装之前,是不能在网络中传递。数据-》应用层-》传输层-》网络层-》链路层  --- 网络环境只有应用层协议在用户态可见,往下的都处在内核中(什么是内核?)

五:协议格式 

1.数据包封装

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)

2.以太网帧格式和ARP数据报格式 

以太网帧协议:根据mac地址,完成数据包传输以太网帧中的目的地址和源地址是指MAC地址ARP协议(数据报格式):根据 Ip 地址获取 mac 地址

3.IP段格式 

版本: IPv4、IPv6  -- 4位TTL: time to live 。 设置数据包在路由节点中的跳转上限。每经过一个路由节点,该值-1, 减为0的路由,有义务将该数据包丢弃源IP: 32位。--- 4字节		192.168.1.108 --- 点分十进制 IP地址(string)  --- 二进制 目的IP:32位。--- 4字节

4.UDP数据报格式

16位源端口号                                        16位目的端口号序号确认序号数据偏移  保留     URG/ACK/PSH/RST/SYN/FIN       窗口检验和                              紧急指针选项和填充(从这开始往上是首部)数据
IP地址:可以在网络环境中,唯一标识一台主机端口号:可以网络的一台主机上,唯一标识一个进程多数应用程序使用5000以下的端口(80端口:http协议)ip地址+端口号:可以在网络环境中,唯一标识一个进程

5.TCP数据报格式

16位:源端口号                             16位:目的端口号32序号32确认序号4位首部长度   保留6位 URG/ACK/PSH/RST/SYN/FIN  16位窗口大小16位检验和                             16位紧急指针选项(从这开始往上是报头)数据

六:TCP协议

1.TCP通信时序(面向连接的可靠数据通信)

三次握手(发起请求 接受请求)

主动发起连接请求端,发送 SYN 标志位,请求建立连接。 携带数据包(序号)包号、数据字节数(0)、滑动窗口大小被动接受连接请求端,发送 ACK 标志位,同时携带 SYN 请求标志位。携带序号、确认序号、数据字节数(0)、滑动窗口大小主动发起连接请求端,发送 ACK 标志位,应答服务器连接请求。携带确认序号

四次挥手(关闭连接请求)

主动关闭连接请求端, 发送 FIN 标志位被动关闭连接请求端, 应答 ACK 标志位		 ----- 半关闭完成(单向 写入读取)被动关闭连接请求端, 发送 FIN 标志位主动关闭连接请求端, 应答 ACK 标志位		 ----- 连接全部关闭

2.滑动窗口(TCP流量控制)

介绍UDP时我们描述了这样的问题:如果发送端发送的速度较快,接收端接收到数据后处理的速度较慢,而接收缓冲区的大小是固定的,就会丢失数据TCP协议通过“滑动窗口(Sliding Window)”机制解决这一问题

采用滑动窗口增大传输速率
滑动窗口:发送给连接对端,本端的缓冲区大小(实时),保证数据不会丢失批量发送,服务器ACK回执最后一个数据包,且可以看到,滑动窗口的大小win是动态变化的mss:最大报文长度

3.TCP状态转换

打开方式:                 被动打开(左 虚线)             主动打开(右 实线)上边(三次握手)           被动接收连接请求端              主动发起连接请求端下边(四次握手)           被动关闭连接请求端              主动关闭连接请求端

TCP状态时序图:结合三次握手、四次挥手 理解记忆主动1. 主动发起连接请求端:	CLOSE -- 发送SYN -- SEND_SYN -- 接收 ACK、SYN -- SEND_SYN -- 发送 ACK -- ESTABLISHED(数据通信态)2. 主动关闭连接请求端: ESTABLISHED(数据通信态) -- 发送 FIN -- FIN_WAIT_1 -- 接收ACK -- FIN_WAIT_2(半关闭)-- 接收对端发送 FIN -- FIN_WAIT_2(半关闭)-- 回发ACK -- TIME_WAIT(只有主动关闭连接方,会经历该状态)-- 等 2MSL时长 -- CLOSE 被动1. 被动接收连接请求端: CLOSE -- LISTEN -- 接收 SYN -- LISTEN -- 发送 ACK、SYN -- SYN_RCVD -- 接收ACK -- ESTABLISHED(数据通信态)2. 被动关闭连接请求端: ESTABLISHED(数据通信态) -- 接收 FIN -- ESTABLISHED(数据通信态) -- 发送ACK -- CLOSE_WAIT (说明对端【主动关闭连接端】处于半关闭状态) -- 发送FIN -- LAST_ACK -- 接收ACK -- CLOSE重点记忆: ESTABLISHED、FIN_WAIT_2 <--> CLOSE_WAIT、TIME_WAIT(2MSL)netstat -apn | grep  端口号

4.半关闭

通信双方中,只有一端关闭通信。  --- FIN_WAIT_2close(cfd);shutdown(int fd, int how);	how: 	SHUT_RD	关读端SHUT_WR	关写端SHUT_RDWR 关读写shutdown在关闭多个文件描述符应用的文件时,采用全关闭方法。close,只关闭一个

5.2MSL

5.1 程序设计中的问题

	一定出现在【主动关闭连接请求端】。 --- 对应 TIME_WAIT 状态。保证,最后一个 ACK 能成功被对端接收。(等待期间,对端没收到我发的ACK,对端会再次发送FIN请求。)

5.2 端口复用

在server的TCP连接没有完全断开之前不允许重新监听是不合理的:虽然是占用同一个端口,但IP地址不同

// 设置端口复用	int opt = 1;		//表示允许创建端口号相同但IP地址不同的多个socket描述符:在server代码的socket()和bind()调用之间插入如下代码setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt));

6.TCP异常断开

6.1 心跳检测机制

定义:心跳检测机制是指在TCP长连接中,客户端和服务器之间定期发送一种特殊的数据包,通知对方自己还在线,以确保TCP连接的有效性应用于:长连接保活或需要保活的场景,比如监控系统、IM系统、即时报价系统、推送服务等

6.2 设置TCP属性

设置TCP属性的方法如下:1.在电脑桌面上右键点击网络,选择属性进入2.页面跳转以后进入到网络和共享中心,点击以太网进入3.在出现的以太网属性页面中点击属性按钮进入4.此时在打开的对话框中可以看到TCP/IPV4没有被勾选,勾选该选项以后点击确定按钮即可开启启用TCP/IP

七:网络名称术语

1.路由(route) 

路由(名词)数据包从源地址到目的地址所经过的路径,由一系列路由节点组成
路由(动词)某个路由节点为数据包选择投递方向的选路过程路由器的工作原理是根据路由表转发数据,主要过程如下:1.主机要发送数据到目的主机,因为是跨网通信,所以必须通过网关(通过ARP广播找到E0端口的MAC地址)路由器收到数据包后,解封装数据包,发现里面的目标IP为4.1,查找路由表ARP广播——>E0端口(MAC地址)路由器——>数据包(目标IP为4.1)——>查找路由表2.路由器A查找路由表后,转发数据到S0接口路由器A——>查找路由表——>发数据到S0接口3.路由器A通过ARP广播找到B路由器S0口的MAC地址后,将数据转发过去路由器A——>ARP广播——>B路由器(S0口的MAC地址)——>发数据4.数据包到达B路由器后,查看目标IP地址并查找路由表,B路由器查找路由表发现4.0网段在E0接口,转发数据到E0接口接收数据——>B路由器——>查看目标IP地址并查找路由表(现4.0网段在E0接口)——>转发数据到E0接口5.数据通过ARP广播找到主机4.1的MAC地址,然后将数据包转发过去,这样主机4.1就成功接收到数据包了ARP广播(发数据)——>主机4.1的MAC地址——>接收到数据包路由表(Routing Table)路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径路由条目路由表中的一行,每个条目主要由目的网络地址、子网掩码、下一跳地址、发送接口四部分组成如果要发送的数据包的目的网络地址匹配路由表中的某一行,就按规定的接口发送到下一跳地址缺省路由条目路由表中的最后一行,主要由下一跳地址和发送接口两部分组成当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址路由节点一个具有路由能力的主机或路由器它维护一张路由表,通过查询路由表来决定向哪个接口发送数据包

2.以太网交换机工作原理

以太网交换机的工作原理:广播帧时:向所有端口转发单播帧时:检查目的地址并对应MAC地址表如果存在目的地址则转发;如果不存在则泛洪(广播)交换机分割冲突域:每个端口独立成一个大量数据发送时:先存储等待发送的数据到寄存器中,再发送相同目的地址的帧:若交换机有相同目的地址的帧,则将该主机的MAC自动添加到MAC地址表中

3.hub工作原理

定义:Hub是计算机网络中的一个术语,指的是网络中的中央连接点它汇集了其他设备(如计算机、打印机、服务器等)的通信信号,并将其分发给这些设备作用Hub通常是一个硬件设备,其作用是将多个设备连接到一个网络上,从而使它们能够相互通信在计算机网络中,Hub是一个重要的组成部分。它可以通过交换机、路由器等设备将多个网络连接在一起,从而形成一个更大的网络Hub可以将数据传输到网络中的每个设备上,从而使这些设备能够相互通信和共享资源工作原理:当一个数据包从某个端口进入HUB时,HUB会将该数据包复制到其他所有端口上,使得所有连接的设备都可以接收到该数据包。这种广播行为称为“泛洪”

4.半双工/全双工

Full-duplex(全双工)全双工是在通道中同时双向数据传输的能力Half-duplex(半双工)在通道中同时只能沿着一个方向传输数据

5.DNS服务器

定义:DNS服务器是域名系统的缩写,即Domain Name System,它是进行域名和与之相对应的IP地址转换的服务器作用:DNS服务器可以将域名转换为相应的IP地址,它主要的功能就是查询主机名(域名)对应的IP地址分类:DNS服务器可以分为3种主域名服务器(Master DNS)、辅助域名服务器(Slave DNS)、高速缓存服务器(Cache-only server)

6.局域网(LAN) 广域网(WAN)

局域网(LAN)local area network举例:一种覆盖一座或几座大楼、一个校园或者一个厂区等地理区域的小范围的计算机网特点1.覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内2.使用专门铺设的传输介质进行联网,数据传输速率高(10Mb/s~10Gb/s)3.通信延迟时间短,可靠性较高广域网(WAN)wide area network举例:一种用来实现不同地区的局域网或城域网的互连,可提供不同地区、城市和国家之间的计算机通信的远程计算机网特点1.适应大容量与突发性通信的要求2.适应综合业务服务的要求3.开放的设备接口与规范化的协议4.完善的通信服务与网络管理5.覆盖的范围比局域网(LAN)和城域网(MAN)都广广域网的通信子网主要使用分组交换技术广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的如互联网是世界范围内最大的广域网

7.端口

逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535
比如用于浏览网页服务的80端口,用于FTP服务的21端口等等1.端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的2.客户端只需保证该端口号在本机上是唯一的就可以了。客户端口号因存在时间很短暂又称临时端口号3.大多数TCP/IP实现给临时端口号分配1024—5000之间的端口号。大于5000的端口号是为其他服务器预留的我们应该在自定义端口时,避免使用well-known的端口。如:80、21等等

8.MTU

MTU:通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)以下是一些协议的MTU:FDDI协议:4352字节以太网(Ethernet)协议:1500字节PPPoE(ADSL)协议:1492字节X.25协议(Dial Up/Modem):576字节Point-to-Point:4470字节

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

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

相关文章

【Linux】Centos安装 mariadb 并授权远程登陆

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

【云原生】Docker基本原理及镜像管理

目录 一、Docker概述 1.1 IT架构的演进&#xff1a; 1.2 Docker初始 1.3 容器的特点 1.4 Docker容器与虚拟机的区别 1.5 容器在内核中支持2种重要技术 1.6 Docker核心概念 1&#xff09;镜像 2&#xff09;容器 3&#xff09;仓库 二、安装Docker 2.1 Yum安装Docker…

三.net core 自动化发布到docker (创建一个dotnet工程发布)

创建Jenkins-create a job 输入名称&#xff08;建议不要带“”这类的字符&#xff09;&#xff0c;选择自由风格的类型&#xff08;红框标注的&#xff09;&#xff0c;点击确定 用于测试,下面选项基本没有选择-配置代码地址 选择执行shell #!/bin/bash # 获取短版本号 GITHA…

NLPR、SenseTime 和 NTU 加速自动视频纵向编辑

视频人像编辑技术已经在电视、视频和电影制作中得到了应用&#xff0c;并有望在不断发展的网真场景中发挥关键作用。最先进的方法已经可以逼真地将同源音频合成为视频。现在&#xff0c;来自北京模式识别国家实验室&#xff08;NLPR&#xff09;、商汤科技研究和南洋理工大学的…

OpenAI Function calling

开篇 原文出处 最近 OpenAI 在 6 月 13 号发布了新 feature&#xff0c;主要针对模型进行了优化&#xff0c;提供了 function calling 的功能&#xff0c;该 feature 对于很多集成 OpenAI 的应用来说绝对是一个“神器”。 Prompt 的演进 如果初看 OpenAI 官网对function ca…

CloudQuery实战 | 谁说没有一款一体化数据库操作管控云平台了?

文章目录 CloudQuery询盾的地址CloudQuery主页统一入口数据库归纳SQL编辑器权限管控审计中心数据保护数据变更 CloudQuery文档中心了解CloudQuery快速入门安装步骤社区版v2.1.0操作手册1数据查询更新日志 CloudQuery社区和活动 CloudQuery线上实战线上实战主页面展示及数据操作…

宝塔部署Java+Vue前后端分离项目经验总结

前言 之前部署服务器都是在Linux环境下自己一点一点安装软件&#xff0c;听说用宝塔傻瓜式部署更快&#xff0c;这次浅浅尝试了一把。 确实简单&#xff01; 1、 买服务器 咋买服务器略&#xff0c;记得服务器装系统就装 Cent OS 7系列即可&#xff0c;我装的7.6。 2、创建…

Linux面试笔试题(1)

1、以长格式列目录时&#xff0c;若文件test的权限描述为&#xff1a;drwxrw-r–&#xff0c;则文件test的类型及文件主的权限是__A____。 A.目录文件、读写执行 B.目录文件、读写 C.普通文件、读写 D.普通文件、读 在这个问题中&#xff0c;我们需要解析文件权限的描述&…

[RDMA] 高性能异步的消息传递和RPC :Accelio

1. Introduce Accelio是一个高性能异步的可靠消息传递和RPC库&#xff0c;能优化硬件加速。 RDMA和TCP / IP传输被实现&#xff0c;并且其他的传输也能被实现&#xff0c;如共享存储器可以利用这个高效和方便的API的优点。Accelio 是 Mellanox 公司的RDMA中间件&#xff0c;用…

Visual Studio 2022 你必须知道的实用调试技巧

目录 1、什么是bug&#xff1f; 2.调试是什么&#xff1f;有多重要&#xff1f; 2.1我们是如何写代码的&#xff1f; 2.2又是如何排查出现的问题的呢&#xff1f; ​编辑 2.3 调试是什么&#xff1f; 2.4调试的基本步骤 2.5Debug和Release的介绍 3.Windows环境调试介绍…

基于Java+SpringBoot的房源出租信息管理系统【源码+论文+演示视频+包运行成功】

博主介绍&#xff1a;✌csdn特邀作者、博客专家、java领域优质创作者、博客之星&#xff0c;擅长Java、微信小程序、Python、Android等技术&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推…

【腾讯云Cloud Studio实战训练营】用Vue+Vite快速构建完成交互式3D小故事

&#x1f440;前置了解&#xff1a;(官网 https://cloudstudio.net/) 什么是Cloud Studio&#xff1f; Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#…

FPGA_学习_16_IP核_ROM(延迟一拍输出)

在寻找APD最合适的偏压的过程中&#xff0c;一般会用到厂商提供一条曲线&#xff0c;横坐标是温度的变化&#xff0c;纵坐标表示击穿偏压的变化&#xff0c;但每个产品真正的击穿偏压是有差异的。 为了能够快速的找到当前温度下真实的击穿偏压&#xff0c;我们可以这样做&#…

5.5.webrtc的线程管理

今天呢&#xff0c;我们来介绍一下线程的管理与绑定&#xff0c;首先我们来看一下web rtc中的线程管理类&#xff0c;也就是thread manager。对于这个类来说呢&#xff0c;其实实现非常简单&#xff0c;对吧&#xff1f; 包括了几个重要的成员&#xff0c;第一个成员呢就是ins…

小研究 - Android 字节码动态分析分布式框架(三)

安卓平台是个多进程同时运行的系统&#xff0c;它还缺少合适的动态分析接口。因此&#xff0c;在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架&#xff0c;无法为实现更加灵活、通用的动态分析工具的开发提供支持。此…

五款拿来就能用的炫酷表白代码

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 五款炫酷表白代码 1、无限弹窗表白2、做我女朋友好吗&#xff0c;不同意就关机3、…

无涯教程-PHP - XML GET

XML Get已用于从xml文件获取节点值。以下示例显示了如何从xml获取数据。 Note.xml 是xml文件&#xff0c;可以通过php文件访问。 <SUBJECT><COURSE>Android</COURSE><COUNTRY>India</COUNTRY><COMPANY>LearnFk</COMPANY><PRICE…

c#设计模式-结构型模式 之 桥接模式

前言 桥接模式是一种设计模式&#xff0c;它将抽象与实现分离&#xff0c;使它们可以独立变化。这种模式涉及到一个接口作为桥梁&#xff0c;使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离&#xff0c;…

excel 核心快捷键用法

1、wps怎样只复制公示计算出来的数据 1.1、按下快捷键“CtrlC”&#xff0c;复制该单元格。 1.2、按下快捷键“ShiftCtrlV”&#xff0c;即“粘贴为数值”&#xff0c;即可只复制数字而不复制该单元格的公式 1.3、wps怎样只复制公示计算出来的数据_百度知道https://zhidao.baid…

数据结构之并查集

并查集 1. 并查集原理2. 并查集实现3. 并查集应用3.1 省份数量3.2 等式方程的可满足性 4. 并查集的优缺点及时间复杂度 1. 并查集原理 并查表原理是一种树型的数据结构&#xff0c;用于处理一些不相交集合的合并及查询问题。并查集的思想是用一个数组表示了整片森林&#xff0…