计算机网络期末复习(知识点)
概念题
在实际复习之前,可以看一下这个视频将网络知识串一下,以便更好地复习:【你管这破玩意叫网络?】
网络规模的分类
- PAN(个人区域网络):用于个人设备间的连接,如手机与蓝牙耳机之间的连接。
- LAN(局域网络):在有限的地理区域内(如办公室、大楼或学校)的计算机网络。
- MAN(都市区域网络):覆盖较大的地理区域,如一个城市。
- WAN(广域网络):覆盖大范围地区,可以是一个国家、多个国家或全球。
网络协议的三要素
分别是语法、语义和同步,以下是详细介绍:
语法(Syntax)
- 定义:语法规定了数据与控制信息的结构或格式,也就是确定了通信时数据应该按照什么样的格式进行组织和编排。例如,在TCP/IP协议族中,IP数据报有着固定的首部格式,首部包含了版本号、首部长度、服务类型、总长度等多个字段,每个字段的长度、顺序以及取值范围等都是由语法来明确规定的;再比如以太网帧格式,有着明确的目的MAC地址、源MAC地址、类型字段以及数据和校验和等各部分的格式要求,这些都是语法层面的体现。
- 作用:它确保了不同设备在进行通信时,能够准确识别对方发送的数据格式,就像人们交流时要遵循一定的语言语法规则(如句子的主谓宾结构等)一样,网络设备之间遵循语法规则才能正确解析收到的信息,避免因格式混乱造成通信错误。
语义(Semantics)
- 定义:语义主要用于解释控制信息每个部分的具体含义,规定了需要发出何种控制信息,以及完成何种动作、做出何种响应等内容。例如,在HTTP协议中,“GET”方法的语义就是请求获取由请求-URI所标识的资源,而“POST”方法的语义则是向指定资源提交要被处理的数据;在TCP协议中,ACK标志位被设置为1时的语义就是表示对收到的数据进行确认,这些都是明确规定了不同信息所代表的意义和对应的操作。
- 作用:明确了网络通信中各种消息、指令的实际意义,使得通信双方能清楚知晓对方意图,从而按照相应的语义去执行相应的操作,保障通信能够有序、准确地进行,实现有效的信息交互。
同步(Timing)
- 定义:同步也被称作时序,它规定了事件的执行顺序以及通信过程中各种操作的时间顺序。比如在TCP协议建立连接时,需要经过三次握手的过程,先是客户端发送SYN报文,服务器收到后回复SYN + ACK报文,客户端再发送ACK报文,这个先后顺序就是一种同步要求;又比如在一些实时通信场景中,数据发送的频率、接收确认的时间间隔等都属于同步需要考虑的范畴,要确保通信双方在时间上协调一致。
- 作用:通过对时间顺序的合理规范,避免通信过程中出现混乱,确保信息能在合适的时间被发送、接收和处理,使整个网络通信能够有条不紊地进行,特别是在复杂的多步交互通信场景中起到关键的协调作用。
OSI七层模型&&TCP/IP模型
OSI七层模型
各层功能总结:
- 物理层: 实现相邻节点之间的比特(0/1)的传输。需要定义电路接口参数(如:形状、尺寸、引脚数等),需要定义传输信号的含义、电气特征。
- 数据链路层: 确保相邻节点之间的链路逻辑上无差错。需要进行差错控制(检错+纠错、检错+丢弃+重传)、流量控制(协调两个节点的速率)。
- 网络层: 把“分组”从源节点转发到目的节点。包含以下功能:
- 路由选择: 构造并维护路由表,决定分组到达目的节点的最佳路径。
- 分组转发: 将“分组”从适合的端口转发出去。
- 拥塞控制: 发现网络拥塞,并采取措施缓解拥塞。
- 其他功能: 差错控制、流量控制、连接建立与释放、可靠传输管理。
- 传输层: 实现端到端通信(即实现进程到进程的通信,“端”指“端口”)。包含以下功能:
- 复用和分用: 发送端几个高层实体复用一条底层的连接,在接收端在进行分用。
- 其他功能: 差错控制、流量控制、连接建立与释放、可靠传输管理。
- 会话层:管理进程间会话。
- 表示层:解决不同主机上信息表示不一致的问题。
- 应用层:实现特定网络应用。
两台计算机通信时,使用到的协议
思路: 根据分层结构,高层数据要向下封装直到最底层,这个过程经过应用层、传输层、网络层、数据链路层。
例如:
- 当客户端在浏览器输入一个网址,应用层会使用到HTTP、DNS协议,传输层会使用到TCP、UDP,网络层会使用到IP、ARP协议。
- 当客户机使用
ping 网址
时,应用层使用DNS,传输层使用UDP协议,网络层使用IP、ARP、ICMP协议。
因为不管以哪个协议传输数据,都必须要直到目的主机的IP地址:如果现已知道目的主机的域名(通过网址访问),要使用DNS查询到对应的IP地址,传输层使用UDP。在数据链路层需要使用IP地址查询到目的主机的MAC地址,需要使用到ARP协议。
物理层
相关概念
- 奈奎斯特定理: 无噪声情况下信道的极限波特率。
- 香农定理: 有噪声情况下信道的极限比特率。
- 噪声: 对信道产生干扰影响信道的数据传输效率。(并不一定是声波,只要是影响信道的数据传输效率的因素都可以称为噪声。例如在传输电磁波时,强磁场环境的就会影响数据传输效率,因此磁场也可以别称为噪声)
物理设备
- 中继器: 中继器只有两个端口。通过一个端口接收信号,将失真信号整形再生,并转发至另一端口(信号再生会产生一些时延)。仅支持半双工通信(两端连接的结点不可同时发送数据,会导致“冲突")。中继器两个端口对应两个“网段
- 集线器: 不能隔离冲突域。
- 以太网交换机: 可以隔离冲突域。(因为交换机会通过MAC地址,识别目的MAC地址的主机在那个冲突域中,如果不在其他的冲突域中,交换机不会进行转发,这样就隔离了冲突域)
- 交换机要转发广播帧,路由器不会转发广播帧。(因此,路由器可以隔离广播域)
数据链路层
组帧
HDLC
协议和PPP
协议就是使用了零比特填充法。
差错控制CRC
这里主要介绍 循环冗余校验码CRC(Cyclic Redundancy Check
)。
首先要得到校验码,因为校验码有两个部分组成:信息位 + 校验位,其中信息位是已知的,所以要先求得校验位。
- 校验位的获取: 将信息位尾部添加R个0(R为生成多项式的最高幂数),将该数作为被除数与约定好的除数进行模2除,得到的余数就是校验位。
- 模2除: 余数第一位为1时,商一;余数第一位为0时,商零。然后后三位进行异或运算。
流量控制和可靠传输
S-W停止等待协议、GBN后退N帧协议、SR选择重传协议是用来实现可靠传输和流量控制的具体协议,三个协议有相同的地方:
在实现这两个特性时,要解决以下问题:
- 如果数据帧丢失,收/发双方会发生什么?
- 如果接收方检测出数据帧有“差错”并将其丢弃,会发生什么?
- 如果接收方接收到重复数据帧,收/发双方会怎么做?
回答:
- 数据帧丢失时,接收方不会发送确认号,发送方在一定时间内收不到确认号,就会超时重传,重新发送丢失的数据帧。还有一些细节:
- 接收方收不到接收窗口内的数据帧,接收窗口不会向后移动
- 发送方在收不到确认号时,发送窗口也不会向后移动
- 发送方在发送一个数据帧后,一定时间内,收不到确认号就会超时重传。
- 当接收方发送给发送方的确认号丢失时,也是通过超时重传解决的。
- 接收方检测出数据帧有“差错”并将其丢弃时,相当于没有收到该数据帧,不会发送确认帧,等待发送方的超时重传。
- 在接收方接收到重复数据帧这一情况,首先需要理解接收方是如何知道收到的数据帧是重复的,这个主要是靠当前数据帧的帧序号在不在接收窗口中,如果不在就是重复数据帧。当接收方接收到重复数据帧,接收方会发送最后一个接收帧的帧序号。(出现这种情况主要是因为,确认帧丢失导致的)
由上面几个问题可以知道,确认号和帧序号的重要性。对于帧序号要有这个关系: W T + W R < = 2 N W_T + W_R <= 2^N WT+WR<=2N,具体原因如下:
- 首先需要了解的一个问题是 为什么需要为数据帧编号?答: 接收方无法判别“重复帧”
- 如果帧序号没有上述这一关系,会出现以下情况:
同时还需要注意,发送窗口和接收窗口大小问题,要保证发送窗口大于等于接收窗口。 通常采用发送窗口等于接收窗口,因为:
- 发送窗口大于接收窗口时,由于接收窗口的大小小于 发送窗口的数据帧,因此接收方不能全部接收发送方发送来所有的数据帧,会导致数据帧的浪费。
- 接收窗口大于发送窗口时,由于发送方一次发送的数据帧不能完全充满接收窗口,导致接收窗口大于发送窗口的部分,可能会出现长空缺的情,浪费窗口大小。
其中对于这三个协议,有不同的特点:
- S-W协议: 不会存在“数据帧失序”问题,因为接收方/发送方两者一次只“交易”一个数据帧,一个数据帧并不存在顺序问题。
- GNB协议: 接收方可以累计确认,在连续接收到多个数据帧时,可以仅返回最后一个帧的ACK。若发送方超时未收到ACK_i,则会 超时重传 i号帧 ,及其之后的所有帧。
- SR协议: 若接收方检测出帧出错,则丢弃帧,并返回NAK_i,主动请求重传。接收方不能“累计确认”,必须“一帧一确认”。
信道划分/介质访问控制
介质访问控制(Medium Access Control,MAC):多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”。
为了控制各个节点对传输介质的访问,减少冲突,甚至避免冲突,有以下几种策略:
其中主要介绍码分复用CDM。
码分复用CDM
在2G、3G移动网络时代,节点和节点之间的通信通常使用CDMA
(Code Division Multiple Access)技术,而该技术的底层原理就是码分复用(Code Division Multiple,CDM).
- m维向量的分量通常取1或者-1,是为了方便接收方在接收数据后进行规格化内积。
- 各节点的“m维向量”必须相互正交,是为了接收方能够分离各发送方的数据。
随机访问介质访问控制
- 坚持: 如果信道不空闲,节点会坚持监听信道。
- 非坚持: 如果信道不空闲,节点不会坚持监听信道,而是随机推迟一段时间后再尝试监听。
- 数字前缀: 当检测到信道空闲时,立即发送数据帧的概率。
CDMA/CD
争用期(Contention Period)
定义
争用期也常被称为冲突窗口(Collision Window),它是指在以太网采用的载波监听多路访问/冲突检测(CSMA/CD)机制下,一个站点从开始发送数据帧起到检测出是否与其他站点发送的数据产生冲突为止的最长时间间隔。
时间计算及依据
在以太网中,争用期的时长通常被设定为两倍的端到端传播时延(Propagation Delay)。这是因为考虑最极端的情况,即当某个站点刚开始发送数据帧时,在网络的最远端可能刚好有另一个站点也同时开始发送数据,信号要经过一段传播时延才能到达对端,那么从发送开始到最远的冲突信号传播回来被检测到,最长就是两倍的端到端传播时延。
例如,对于常见的10Mbps以太网,其争用期一般规定为51.2微秒,这个时间对应的帧长度(最小帧长)是64字节。如果在争用期内没有检测到冲突,那就可以认为此次数据发送基本不会遇到冲突了,后续可继续完成数据帧的发送;而如果在争用期内检测到了冲突,发送站点就需要立即停止发送,并按照一定的退避算法来等待一段时间后重新尝试发送数据,以解决多个站点同时竞争信道使用权而产生冲突的问题。
作用
争用期是以太网CSMA/CD机制中非常关键的一个概念和时间设定,它有助于协调多个站点对共享的传输介质(如双绞线等)的访问,通过限定这个检测冲突的最大时间范围,让整个网络中的站点能够较为合理、有序地竞争信道,在冲突发生时及时做出反应,避免持续的无效数据传输,进而保障网络通信的有效性和稳定性,使网络能够正常运转,实现多个设备之间的数据交互。
以太网交换机的自学习能力
- 交换机的交换表起始时为空
- 假设连接在同一台交换机的终端节点互相知道彼此的MAC地址(后续说明“节点之间如何知道彼此的MAC地址”),这样在构建数据帧时,才能填写目的主机的MAC地址
- 如果交换机不知道当前数据帧的MAC地址归属于哪个主机,就将该数据帧通过其他端口转发进行转发,相当于当成一个广播帧去转发。最后只有目的主机接收该数据帧,其他主机会将该数据帧丢弃。
- 当交换机接收到的数据帧中,接收方和发送方MAC地址所对应的端口号是一样的,就不需要进行转发。
当一个终端主机在交换机端口的位置发生变化,如果再使用原始交换表中的信息进行转发,目的主机就不能再接收到数据。其实,交换表会设置每个表项的有效期,过期自动作废。当发生位置变动的主机主动发送数据帧时,交换机就能记录其最新端口位置。
网络层
- 一台主机在将一个网络包进行转发时,会先判断源IP地址和目的IP地址是否在同一个局域网中(网络号是否相等):如果相等,就使用
ARP协议
,获取目的主机的MAC地址,封装成帧进行转发。如果不相等(通信的两台主机,不再同一个局域网中,需要跨网络转发),也使用ARP协议获取默认网关的MAC地址,封装成帧转发给默认网关,再由默认网关根据目的IP地址查询转发表,要将这个网络包从哪个转发接口转发,发送给下一个路由器,再由其进行转发。 - 当一台主机在刚接入一个局域网时,是没有IP地址的,需要该主机发送一个IP报文:源地址为全0,目的地址为全1,用来广播,当
DHCP服务器
接收到该报文时,就会为该主机分配一个IP地址。
若路由器R因为拥塞丢弃IP分组,则此时R可向发出该IP分组的源主机发送的ICMP报文的类型是()。
A.路由重定向
B.目标不可到达
C.源抑制
D.超时
A. 路由重定向:这种ICMP报文类型通常用于通知主机存在一条更好的路由到目的网络或主机。当路由器发现有更优的路由时,它会向源主机发送路由重定向报文。这与网络拥塞的情况不符,因此A选项不正确。
B. 目标不可到达:这种ICMP报文类型用于通知源主机目的网络或主机不可达。这通常发生在路由器无法根据路由表找到到达目的地的路径时。然而,在本题中,路由器是因为拥塞而丢弃IP分组,并非因为目的地不可达,所以B选项也不正确。
C. 源抑制:源抑制(Source Quench)是一种ICMP报文类型,用于告诉源主机减少发送数据的速率,因为网络中存在拥塞。当路由器或目的主机因为拥塞而必须丢弃数据报时,它会向源主机发送源抑制报文。这与题目描述的情况相符,因此C选项是正确的。
D. 超时:这种ICMP报文类型用于通知源主机一个IP数据包的生存时间(TTL)已经减少到零,并且该数据包已被丢弃。这通常发生在数据包在传输过程中经过太多跳数时。然而,在本题中,路由器是因为拥塞而丢弃IP分组,并非因为TTL超时,所以D选项也不正确。
分片和组装
一个UDP用户数据报的数据字段为8192字节,要使用以太网来传递。问应当划分为几个数据报片?说明每一个数据报片的数据字段长度和片偏移字段的值。
- 首先在传输层的UDP数据字段被封装为UDP数据报(添加UDP报头),再向下交付给网络层:
UDP协议的报头长度为8B,并且UDP数据报长度小于65535B,则添加报头后,UDP数据报的报文长度为 8192 + 8 = 8200 B 8192 + 8 = 8200B 8192+8=8200B,再向下交付给网络层。 - 在网络层,会检测UDP数据报在添加IP报头后是否会超过1500B(以太网能够传输的最大数据帧MTU = 1500B)。因为IP报头长度为20B,也就会检测UDP数据报是否大于1480B,如果大于则需要进行分片;如果小于则直接向下交付。
- 这里UDP数据报的长度为8200B,大于1480B需要进行分片:
8200B / 1480 = 5片……800B,所以应当划分为6个IP数据报,前五个IP数据报的数据部分为1480B,最后一个数据报的数据部分为800B。
- 注意:
- 每个分片都是一个可以被单独转发的IP数据报,都包含首部。
- IP数据报的“分片”可能在源主机、或任何一个路由器中发生。
- 只有目的主机才会对分片进行“重组。
- 各分片有可能乱序到达目的主机。
- 由于首部的“片偏移”字段是以×8B为单位,因此,除了最后一个分片外,其他每个分片的数据部分必须是8B的整数倍。
子网划分
是将主机号的位数进行利用划分。
-
子网划分: 因为早期申请的一个B类IP地址,可能使用不完,可以子网划分技术,将取主机号的前几个比特位作为子网号,将一个B类地址拆分为几个不同的网络(这几个网络使用路由器连接)。采用子网划分技术的主机,需要在主机中配置子网掩码。
-
子网掩码: 为1的总位数,包括网络号和子网号。与网络号的位数相比,可以判断当前网络中是否采用了子网划分的技术。
-
使用子网划分技术的主机在进行转发网络包的过程如下:
- 将源IP和目的IP地址分别与网络掩码相遇,获取网络号和子网号,判断两者的网络号和子网号是否相等:如果相等,则说明两台主机在同一个子网下,需要使用ARP协议获取目的主机的MAC地址,将IP数据封装成帧进行转发(这一过程不涉及路由器的转发)。
- 如果不相等,则说明两台主机不在同一个子网,需要使用ARP协议获取默认网关的MAC地址,转发给默认网关,到达路由器后,将目的主机的IP地址和路由表项中的子网掩码进行与运算,判断其网络号是否与该表项的网络号相等,如果相等,就从该表项中的转发接口转发,同样需要封装成帧;
-
对于一个没有进行子网划分的网络,其子网掩码和网络号位数一致(B类网络的子网掩码前16位为1)。
-
当路由器中的所有转发表中的网络号都与目的主机IP地址不匹配时,会通过默认路由转发接口进行转发,因为默认路由的子网掩码为全0,其网络号也为全0,所以一定能够匹配。
无分类编址CIDR/子网划分
网络号进行改良。
- 在变长子网划分中,只有叶子节点才能分配IP地址。一个叶子节点对应一个子网。相当于从根节点构建一个哈夫曼树,二叉树。
- 在定长子网划分中,相当于从根节点划分为多叉树。
路由聚合
这里再来说一下ARP协议的作用:用于查询 同一个网络内 IP地址与MAC地址对应关系。
NAT
NAT(Network Address Translation),使用NAT技术,需要使用到端口号(端口号是传输层的概念)。主要思想是:同一个局域网内的主机共享使用一个IP地址,同一个局域网内主机的进程,使用端口号进行区分。
- 外网网关的IP+端口号的组合 与 内网主机 IP地址 + 端口号的组合一一对应。
- 使用NAT技术的两台主机在进行通信时,传输层封装数据段中的目的端口号,是在NAT路由表中的端口号,而不是实际目的主机中的端口号。源主机使用的端口号是实际的端口号(封装时),不过会在路由器进行替换。
- 网络层封装数据报时,目的主机的IP地址,也是外网的IP地址。源主机使用的IP地址是内网IP地址,在路由器会进行替换。
- 路由器应该有传输层,这样才能修改一个报文的端口号。也有网络层,这样才能修改IP地址。
ARP协议
- 构造一个ARP分组,分组中要有当前主机的IP地址,还要有当前主机的MAC地址(在网络层中,当前主机的MAC地址已经知道了,需要在ARP分组中封装,这里与数据链路层进行封装MAC地址是两个过程);目的主机的IP地址。
- 当目的主机收到广播帧后,就会以单播帧的形式进行回复。
DHCP
路由协议算法
路由器与路由器之间相互配合生成路由表和转发表。
- 自治系统与自治系统之间相互连接的路由器叫作边界网关。
- 自治系统内部使用
RIP协议
和OSFP协议
生成路由表,自治系统之间(边界网关之间)使用BGP协议
。
这里没有复习知识点(时间不够用了≡(▔﹏▔)≡),直接做题了:
- A: 动态路由只知道曾经走过的路(没有问的道路不知道),只维护了 部分拓扑结构信息。静态路由相当于有当前地区的地图,也就有整个网络的拓朴结构信息。这个选项是错误的,两者的特点说反了。
- B: 正确。
- D: 两种路由方式都需要维护路由表。
- B: 可以改变,但需要管理员手动配置。
答案:B。
对于内部网关,如果转发的数据在其他自治系统中,就需要使用边界网关BGP协议进行传送,而内部网关是不知道如何具体转发到目的主机的,它只知道将数据转发给边界网关,再由边界网关进行转发。
题解:
传输层
端口号
-
端口号是用来表示本主机的一个特定进程的。每台主机的端口号是相互独立的。TCP、UDP两种协议的端口号是相互独立的。
-
因为传输层实现 端到端 (进程到进程)的通信。因此在TCP/UDP报文段的首部,需要指明源端口、目的端口。
-
熟知端口号:
HTTPS:443、SSH:22.
UDP协议提供复用/分用服务,如何理解?
复用(Multiplexing)
-
概念
复用是指在发送端,UDP协议处理多个进程的用户数据报,UDP将这些来自不同应用进程的数据报封装好,然后添加UDP首部信息,最终把它们交给网络层进行传输。就好像多个不同的水流(代表不同应用进程的数据)通过同一个管道(UDP协议)汇聚起来,送往同一个方向(网络层)。 -
实现机制
每个应用进程在使用UDP发送数据时,会被分配一个不同的端口号(UDP端口号范围是0 - 65535)。UDP协议依据这些端口号来区分是哪个应用进程的数据,将它们各自封装成UDP数据报,然后一起传递给下一层(网络层)。 -
作用及意义
复用的好处在于能够让多个应用程序在同一台主机上共享网络传输服务,无需为每个应用单独构建复杂的传输机制,提高了网络资源的利用效率,使得多个应用可以同时向网络中发送数据,方便了网络应用的开发和运行。
分用(Demultiplexing)
-
概念
分用与复用是相反的过程,发生在接收端。当网络层将接收到的UDP数据报传递给UDP协议时,UDP需要依据数据报中的目的端口号,将其准确地分发给对应的应用进程。也就是把从网络层这个“大管道”接收到的混合在一起的数据报,按照端口号这个标识,分别引导到各自对应的“小支流”(不同的应用进程)中去。 -
实现机制
UDP数据报首部中包含有目的端口号字段,接收端的UDP协议会读取这个目的端口号,然后查找本地主机上与之对应的应用进程。例如,主机收到一个UDP数据报,其目的端口号是12345,UDP协议就会知道这个数据报应该交给之前在该端口上等待接收数据的视频播放应用;如果目的端口号是56789,就会将其分发给对应的文件传输应用。 -
作用及意义
分用保证了网络中传来的数据能准确无误地到达各个相应的应用进程,使得多个应用可以在接收端有条不紊地获取属于自己的信息,从而实现了网络通信中多应用同时接收数据的有序性,保障了整个网络应用通信体系的正常运转。
总的来说,UDP协议的复用/分用服务就如同一个高效的“交通枢纽”,在发送端把多个应用进程的数据整合起来送往网络层,在接收端又能精准地把数据分发给对应的应用进程,使得基于UDP的网络通信能够高效、有序地开展。
相关文章:
计算机网络期末复习(知识点)
概念题 在实际复习之前,可以看一下这个视频将网络知识串一下,以便更好地复习:【你管这破玩意叫网络?】 网络规模的分类 PAN(个人区域网络):用于个人设备间的连接,如手机与蓝牙耳机…...
LeetCode:3298. 统计重新排列后包含另一个字符串的子字符串数目 II(滑动窗口 Java)
目录 3298. 统计重新排列后包含另一个字符串的子字符串数目 II 题目描述: 实现代码与解析: 滑动窗口 原理思路: 3298. 统计重新排列后包含另一个字符串的子字符串数目 II 题目描述: 给你两个字符串 word1 和 word2 。 如果…...
【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述
前言 🌟🌟本期讲解关于spring aop的切面表达式和自身实现原理介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 &am…...
es 3期 第23节-运用Pipeline实现二转聚合统计
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性ÿ…...
T-SQL语言的编程范式
T-SQL编程范式探析 引言 随着信息技术的迅猛发展,数据库在各个行业的应用日益广泛。在众多数据库管理系统中,SQL Server以其高性能和易用性受到广泛欢迎。T-SQL(Transact-SQL)是SQL Server的扩展版本,是一种用于查询…...
【ArcGIS微课1000例】0137:色彩映射表转为RGB全彩模式
本文讲述ArcGIS中,将tif格式的影像数据从色彩映射表转为RGB全彩模式。 参考阅读:【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式 文章目录 一、色彩映射表预览二、色彩映射表转为RGB全彩模式一、色彩映射表预览 加载配套数据包中的0137.rar中的…...
论文笔记(六十一)Implicit Behavioral Cloning
Implicit Behavioral Cloning 文章概括摘要1 引言2 背景:隐式模型的训练与推理3 隐式模型与显式模型的有趣属性4 policy学习成果5 理论见解:隐式模型的通用逼近性6 相关工作7 结论 文章概括 引用: inproceedings{florence2022implicit,titl…...
网络安全核心目标CIA
网络安全的核心目标是为关键资产提供机密性(Confidentiality)、可用性(Availablity)、完整性(Integrity)。作为安全基础架构中的主要的安全目标和宗旨,机密性、可用性、完整性频频出现,被简称为CIA,也被成为你AIC,只是顺序不同而已…...
hive迁移后修复分区慢,怎么办?
我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。 使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…...
一块钱的RISC-V 32位芯片
之前跟一个朋友聊天,说以后的芯片一定是越来越趋向于定制化,比如我们需要一个ADC芯片,这颗ADC芯片需要有串口功能,那就只开发一颗这样的芯片就好了,其他的功能都可以裁剪掉。 ➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵…...
Linux常用指令
目录 1 概述2 指令2.1 简单指令2.2 解压缩2.2.1 tar.bz2和tar.gz2.2.2 单独bz22.2.3 zip2.2.4 7z 2.3 网卡操作 1 概述 本章主要是记录一些日常用到的Linux指令,方便自己忘记的时候查找,也为有需要的人提供参考。 2 指令 2.1 简单指令 指令解释cat /…...
车载音频开发(二):对音频数据作音量调节
通过前一个章节打下的基础车载音频开发(一):从看懂wav开始https://blog.csdn.net/Hellomino_/article/details/140873133?fromshareblogdetail&sharetypeblogdetail&sharerId140873133&sharereferPC&sharesourceHellomino_&…...
误差与误差限
目录 误差误差限小结 误差 设 x x x为准确值 , x ∗ ,x^* ,x∗为 x x x的一个近似值,称 e ∗ x ∗ − x e^*x^*-x e∗x∗−x为近似值的绝对误差,简称误差. 这样定义的误差 e ∗ e^{*} e∗可正可负,当绝对误差为正时近似值偏大,…...
halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
目录 一、find_shape_model_3d_recompute_score例程代码二、set_object_model_3d_attrib_mod函数三、prepare_object_model_3d 函数四、create_cube_shape_model_3d函数五、获得CamPose六、project_cube_image函数七、find_shape_model_3d函数八、project_shape_model_3d函数 一…...
如何从串 ‘ 中国 +86‘ 中,获取到‘中国’:strip()、split()及正则表达式的使用
业务中有这样一个场景,国家列表中的数据格式是这样: 中国 86 ,其中的 "中国" 前面有3个空格,需要从中提取出 "中国",有哪些方法呢? 方法 1:使用 strip() 和 split() str…...
Java Web开发进阶——Spring Security基础与应用
Spring Security是Spring框架的核心模块之一,用于保护Web应用程序和微服务的安全。它提供强大的认证和授权功能,并与Spring生态系统无缝集成。本节将详细介绍Spring Security的基础知识及其在实际项目中的应用。 1. Spring Security概述与功能 1.1 什么…...
1. Doris分布式环境搭建
一. 环境准备 本次测试集群采用3台机器hadoop1、hadoop2、hadoop3, Frontend和Backend部署在同一台机器上,Frontend部署3台组成高可用,Backend部署3个节点,组成3副本存储。 主机IP操作系统FrontendBackendhadoop1192.168.47.128Centos7Foll…...
消息中间件类型介绍
消息中间件是一种在分布式系统中用于实现消息传递的软件架构模式。它能够在不同的系统或应用之间异步地传输数据,实现系统的解耦、提高系统的可扩展性和可靠性。以下是几种常见的消息中间件类型及其介绍: 1.RabbitMQ 特点: • 基于AMQP&#…...
Win10微调大语言模型ChatGLM2-6B
在《Win10本地部署大语言模型ChatGLM2-6B-CSDN博客》基础上进行,官方文档在这里,参考了这篇文章 首先确保ChatGLM2-6B下的有ptuning AdvertiseGen下载地址1,地址2,文件中数据留几行 模型文件下载地址 (注意࿱…...
C# GID+绘制不透明和半透明的线条
绘制线条时,必须将 Pen 对象传递给 DrawLine 类的 Graphics 方法。 Pen 构造函数的参数之一是 Color 对象。 若要绘制不透明的线条,请将颜色的 alpha 分量设置为 255。 若要绘制半透明的线条,请将 alpha 分量设置为从 1 到 254 的任何值。 在…...
解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库
一、开篇:邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域,数据管理如同建筑的基石,而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说,面对琳琅满目的数据库选项,如何抉择常常令人头疼。今…...
iOS - 数组的真实类型
1. NSArray 类簇 // 1. __NSArray0 (空数组) NSArray *empty [];// 2. __NSArrayI (不可变数组) NSArray *immutable [1, 2, 3];// 3. __NSArrayM (可变数组) NSMutableArray *mutable [NSMutableArray array];// 4. __NSSingleObjectArrayI (单元素数组) NSArray *single …...
Unity热更新 之 Addressables(2) 本地/远端打包 流程测试
基础篇:Unity热更新 之 Addressables(1) 资源基础加载-CSDN博客 基础方法来源于唐老狮,我也是初学热更这一块,所有不保证步骤完全正确,如有不足还请斧正 目录 0.前提 1.本地打包 1.1.资源放入包 1.2.简化路径名称给出标签(如有需要的话) …...
Python标准库之SQLite3
包含了连接数据库、处理数据、控制数据、自定义输出格式及处理异常的各种方法。 官方文档:sqlite3 --- SQLite 数据库的 DB-API 2.0 接口 — Python 3.13.1 文档 官方文档SQLite对应版本:3.13.1 SQLite主页:SQLite Home Page SQL语法教程&a…...
php 使用simplexml_load_string转换xml数据格式失败
本文介绍如何使用php函数解析xml数据为数组。 <?php$a <xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><Ms…...
Linux第二课:LinuxC高级 学习记录day01
0、大纲 0.1、Linux 软件安装,用户管理,进程管理,shell 命令,硬链接和软连接,解压和压缩,功能性语句,结构性语句,分文件,make工具,shell脚本 0.2、C高级 …...
Notepad++上NppFTP插件的安装和使用教程
一、NppFTP插件下载 图示是已经安装好了插件。 在搜索框里面搜NppFTP,一般情况下,自带的下载地址容易下载失败。这里准备了一个下载连接:Release v0.29.10 ashkulz/NppFTP GitHub 这里我下载的是x86版本 下载好后在nodepad的插件里面选择打…...
怎样提高服务器中的数据传输速度?
服务器中的数据传输速度会影响着用户的体验感,当企业中的数据传输速度出现卡顿或者是过慢时,用户不能及时浏览到所需的内容,给用户造成不好的体验感,那么企业该怎样才能提高服务器中的数据传输速度呢? 服务器之间如何传…...
Java聊天小程序
拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…...
Spring事件发布与监听
Spring事件机制详解:事件发布与监听 在Spring框架中,事件机制基于发布-订阅模式,允许组件之间进行解耦。发布者发布事件,监听者订阅并响应这些事件。Spring事件机制的核心在于ApplicationEvent和ApplicationListener,…...
【PPTist】公式编辑、插入音视频、添加动画
一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…...
Dart语言的面向对象编程
Dart语言的面向对象编程 Dart是一种由谷歌开发的编程语言,主要用于构建Web、移动应用及服务器端应用。作为一门现代编程语言,Dart自带丰富的特性,尤其是在面向对象编程(Object-Oriented Programming, OOP)方面&#x…...
selenium+pyqt5自动化工具总结
说明:本工具是,操作外部google浏览器、selenium是无法操作qt界面中嵌套的浏览器的, 工具在后面 1. 代码结构 pycharm打开的文件下,再写一个子文件,文件导入的时候把子文件名带上 这样就可以在 外层使用命令 pyinst…...
Java 基于微信小程序的高校科研团队管理系统设计与实现(附源码,部署,文档
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
如何规模化实现完全自动驾驶?Mobileye提出解题“新”思路
在CES 2025上,Mobileye展示了端到端自动驾驶系统Mobileye Drive™,通过高度集成的传感器、算法和计算平台,可以实现自动驾驶功能的全覆盖。 Mobileye创始人兼首席执行官Amnon Shashua教授 期间,Mobileye创始人兼首席执行官Amnon …...
Vue2与Vue3在项目开发中的选择:深入探讨
文章目录 前言一、Vue2的优势与挑战二、Vue3的进步与特性三、如何做出选择?结语 前言 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。Vue2和Vue3是其两个主要版本,它们各自拥有一系列特点和优势。随着Vue3的发布,开发者们面临着在新…...
Git 操作与技巧
一、开发日常常用 Git 操作与技巧 1.1 基础操作 1.1.1 查看 Git 状态 git status:查看当前工作区的状态,了解哪些文件已经修改、哪些文件已经暂存。git status这个命令是最常用的命令之一,可以帮助你理解当前的开发状态,哪些文…...
vs2022开发.net窗体应用开发环境安装配置以及程序发布详细教程
文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.2 新建.net窗体应用2.2.1 选择Window窗体应用2.2.2 .net窗体对比framework窗体 三、发布.net应用 一、安装visual studio 1.1推荐win10…...
Mysql--基础篇--视图,存储过程,触发器
1、视图 MySQL视图(View)是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表&#…...
代码随想录 哈希 test 8
18. 四数之和 - 力扣(LeetCode) 与三数之和类似,重点在剪枝和去重的区别,由于target可正可负,因此需要分两种情况讨论,如果target为正,则若当前选择的元素之和大于target,需要跳出这…...
Postman接口测试基本操作
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Postman-获取验证码 需求:使用Postman访问验证码接口,并查看响应结果。 地址:http://kdtx-test.itheima.net/api/captchaIm…...
Three.js 渲染技术:打造逼真3D体验的幕后功臣
文章目录 前言一、着色器(Shaders)二、后处理(Post-processing)三、抗锯齿(Anti-aliasing)四、实时渲染与离线渲染五、光照模型与材质优化六、环境映射(Environment Mapping)七、纹理…...
uml活动图和用例图之间有一致性要求吗
UML(统一建模语言)中的活动图和用例图是两种不同的图表,它们用于描述软件系统的不同方面。尽管它们有不同的用途,但它们之间存在一定的一致性要求,以保证模型的有效性和准确性。 以下是活动图和用例图之间一致性要求的…...
嵌入式入门Day38
C Day1 第一个C程序C中的输入输出输出操作coutcin练习 命名空间使用方法自定义命名空间冲突问题 C对字符串的扩充C风格字符串的使用定义以及初始化C风格字符串与C风格字符串的转换C风格的字符串的关系运算常用的成员变量输入方法 布尔类型C对堆区空间使用的扩充作业 第一个C程序…...
什么叫区块链?怎么保证区块链的安全性?
区块链(Blockchain)是一种分布式数据库或账本技术,它通过去中心化的方式记录交易或其他数据,并确保这些记录是安全、透明和不可篡改的。区块链最初是作为比特币(Bitcoin)加密货币的基础技术而被公众所知&am…...
探秘block原理
01 概述 在iOS开发中,block大家用的都很熟悉了,是iOS开发中闭包的一种实现方式,可以对一段代码逻辑进行封装,使其可以像数据一样被传递、存储、调用,并且可以保存相关的上下文状态。 很多block原理性的文章都比较老&am…...
Unity2D初级背包设计后篇 拓展举例与不足分析
Unity2D初级背包设计中篇 MVC分层撰写(万字详解)-CSDN博客、 如果你已经搞懂了中篇,那么对这个背包的拓展将极为简单,我就在这里举个例子吧 目录 1.添加物品描述信息 2.拓展思路与不足分析 1.没有删除只有丢弃功能,所以可以添加垃圾桶 2.格…...
云计算基础,虚拟化原理
文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟(Emulation)方式半虚拟化…...
Android13工具修改wifi mac地址以后没有更新的问题
Android13系统在通过烧写工具更新修改wifi mac地址以后,在系统设置里面查看wifi mac地址还是之前的,没有更新。 原因:android13 系统中packages\modules\Wifi\service\ServiceWifiResources\res\values\config.xml新增了"config_wifiSav…...
Jmeter_后置处理beanshell
背景:调用Eolinker接口,统计接口测试用例的完成情况,并写入excel文件; 1、调用登录接口,JSON提取器提取接口返回的accessToken,再封装到HTTP信息头管理器中; 2、请求工作空间列表接口࿰…...