RTP 控制协议 (RTCP) 反馈用于拥塞控制

摘要

有效的 RTP 拥塞控制算法,需要比标准 RTP 控制协议(RTCP)发送方报告(SR)和接收方报告(RR)数据包提供的关于数据包丢失、定时和显式拥塞通知 (ECN) 标记的更细粒度的反馈。

本文档描述了 RTCP 反馈消息,旨在使用 RTP 对交互式实时流量启用拥塞控制。反馈消息设计用于基于发送方的拥塞控制算法,其中 RTP 流的接收方向发送方发送回 RTCP 反馈数据包,其中包含发送方执行拥塞控制所需的信息。

1.简介

对于交互式实时流量,例如视频会议流,典型的协议选择是在用户数据报协议 (UDP) 上运行的实时传输协议 (RTP) [RFC3550]。 RTP 不提供任何服务质量 (QoS)、可靠性或及时交付的保证,并期望底层传输协议能够这样做。仅 UDP 肯定无法满足这一期望。然而,RTP 控制协议 (RTCP) [RFC3550] 提供了一种机制,RTP 流的接收方可以通过该机制定期向该 RTP 流的发送方发送传输和媒体质量度量。发送方可以使用该信息来执行拥塞控制。

由于缺乏用于此目的的标准化消息,拥塞控制算法的设计者开发了专有的 RTCP 消息,这些消息仅传送各自设计所需的参数。直接的结果是,不同的拥塞控制设计不能互操作。为了实现算法演进以及跨设计的互操作性(例如,不同的速率自适应算法),非常需要具有通用的拥塞控制反馈格式。

为了帮助实现单播 RTP 拥塞控制的互操作性,本备忘录指定了一种通用的 RTCP 反馈数据包格式,可供网络辅助动态自适应 (NADA) [RFC8698]、多媒体自时钟速率自适应 (SCReAM) [RFC8298]、谷歌拥塞控制 [Google-GCC] 和共享瓶颈检测 [RFC8382],并且, 希望未来的 RTP 拥塞控制算法也能做到这一点。

2. 术语

关键词“必须”、“不得”、“必需”、“应”、“不应”、“应该”、“不应该”、“推荐”、“不推荐”、“可以”和“可选”当且仅当它们以全部大写形式出现时,本文档中的“应按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释,如此处所示。

此外,[RFC3550]、[RFC4585] 和 [RFC5506] 中定义的术语也适用。

3. 用于拥塞控制的 RTCP 反馈

基于对 NADA [RFC8698]、SCReAM [RFC8298]、Google 拥塞控制 [Google-GCC] 和共享瓶颈检测 [RFC8382] 的分析,已确定以下每 RTP 数据包拥塞控制反馈信息是必要的:

RTP 序列号:RTP 流的接收方需要将收到的 RTP 数据包的序列号反馈给发送方,以便发送方可以确定哪些数据包已收到、哪些数据包丢失。许多拥塞控制算法将数据包丢失用作拥塞的指示。

数据包到达时间:RTP 流的接收方需要将每个 RTP 数据包的到达时间反馈给发送方。某些拥塞控制算法将数据包延迟和/或延迟变化(抖动)用作拥塞信号。

数据包显式拥塞通知(ECN)标记:如果使用ECN[RFC3168][RFC6679],则需要在接收到的RTP数据包中反馈2位ECN标记,指示对于每个RTP数据包是否被标记为not-ECT, ECT(0)、ECT(1) 或 ECN 拥塞经历 (ECN-CE)。 (“ECT”代表“支持ECN的传输”。)如果RTP流量使用的路径支持ECN,则发送方可以使用ECN-CE标记信息作为拥塞控制信号。

每个 RTP 流均由其同步源 (SSRC) 标识符。因此,RTCP 反馈格式需要按 SSRC 对其报告进行分组,为每个收到的 SSRC 发送一个报告块。

实际上,我们注意到主机操作系统 (OS) 进程中断可能会在不适当的时间发生。因此,需要记录发送方的 RTP 数据包发送时间以及接收方相应的 RTP 数据包到达时间刻意的照顾。这是因为主机操作系统的持续时间相对于单向延迟估计中所需的精度,中断可能很重要。具体地,需要在发送方发送RTP分组之前的最后机会记录发送时间,并且需要在最早的可用机会记录到达接收方的时间。

3.1. RTCP拥塞控制反馈报告

拥塞控制反馈可以作为定期调度的 RTCP 报告的一部分或在 RTP/AVPF 早期反馈数据包中发送。如果作为早期反馈发送,并且使用 RTP/AVPF 配置文件 [RFC4585] 或 RTP/SAVPF 配置文件 [RFC5124],则拥塞控制反馈可以在非复合 RTCP 数据包 [RFC5506] 中发送。

无论如何传输,拥塞控制反馈都会作为传输层反馈消息(RTCP 数据包类型 205)发送。该RTCP数据包的格式如图1所示:

图 1:RTCP 拥塞控制反馈数据包格式

前 8 个八位位组包括标准 RTCP 标头,其中 PT=205 和 FMT=11 指示这是拥塞控制反馈数据包,并且 SSRC 设置为 RTCP 数据包发送方的 SSRC。

[RFC4585] 的第 6.1 节要求 RTCP 标头后跟 正在报告的 RTP 流的 SSRC。因此,RTCP 标头后面跟着一个用于已从其接收到 RTP 数据包的每个 SSRC 的报告块,后面跟着一个报告时间戳。

每个报告块都以它正在报告的接收到的 RTP 流的 SSRC 开始。接下来,报告块包含每个 RTP 数据包的 16 位数据包度量块,该数据包的序列号在 begin_seq 到 begin_seq+num_reports 范围内(含)(使用算术模 65536 计算,以考虑可能的序列号环绕)。如果报告块中包含的 16 位数据包度量块的数量不是 2 的倍数,则必须在最后一个数据包度量块之后添加 16 位零填充,以使数据包度量块的末尾与下一个数据包度量块对齐。 32 位边界。 num_reports 的值可以为 0,表示该 SSRC 不包含任何数据包度量块。每个 报告块不得包含超过 16384 个数据包度量块(即,它不得在单个报告中报告超过四分之一的序列号空间)。

每个16位数据包度量块的内容包括R、ECN和ATO字段,如下所示:

已接收(R,1 位):一个布尔值,指示数据包是否已接收 已收到。 0 表示尚未接收到数据包,并且该 16 位数据包度量块中的后续 15 位(ECN 和 ATO)也设置为 0 并且必须被忽略。 1 表示已收到数据包,需要解析块中的后续位。

ECN(2 位):数据包的回显 ECN 标记。如果未收到或未使用 ECN,这些位将设置为 00。

到达时间偏移(ATO,13 位):RTP 数据包到达接收器的时间,作为该 RTCP 拥塞控制反馈报告的报告时间戳 (RTS) 字段所表示的时间之前的偏移。 ATO 字段以 1/1024 秒为单位(选择该单位是为了给出与 RTS 字段的精确偏移),因此,例如,ATO 值 512 表示 相应的 RTP 数据包在 RTS 字段表示的时刻之前恰好半秒到达。如果测量值大于 8189/1024 秒(该值将编码为 0x1FFD),则必须报告值 0x1FFE 以指示超出范围的测量。如果测量不可用或者 RTP 数据包的到达时间晚于 RTS 字段表示的时间,则必须为数据包报告 ATO 值 0x1FFF。

RTCP 拥塞控制反馈报告数据包以报告时间戳字段(RTS,32 位)结束。这表示该数据包报告的时刻,也是计算到达时间偏移值的时刻。 RTS 字段的值源自用于生成 RTCP 发送方报告 (SR) 数据包中的 NTP 时间戳字段的同一时钟。它被格式化为 NTP 格式时间戳的中间 32 位,如 [RFC3550] 第 4 节中所述。

RTCP 拥塞控制反馈数据包应包含每个活动 SSRC 的报告块。给定 SSRC 的连续报告中报告的序列号范围通常是连续的,但可以发送重叠的报告(并且需要在以下情况下发送)

其中 RTP 数据包重新排序发生在连续报告之间的边界上)。如果一个 RTP 数据包在一份报告中被报告为已接收,则该数据包也必须在随后发送的涵盖其序列号范围的任何重叠报告中报告为已接收。

如果发送覆盖重叠序列号范围的反馈报告,则后面的反馈报告中的信息可以针对包括在两个反馈报告中的RTP分组更新在之前的报告中发送的任何数据。

如果相对于 RTP 数据包的数量而言,RTCP 拥塞控制反馈数据包的发送频率较低,则它们可能会很大。如果 RTCP 拥塞控制反馈数据包太大而无法容纳在路径 MTU 内,则其发送方应将其拆分为多个反馈数据包。 RTCP 报告间隔的选择应使得反馈数据包发送得足够频繁,以至于它们足够小以适合路径 MTU。([RTCP-Multimedia-Feedback]讨论了如何选择报告间隔;RTP拥塞控制算法规范也可以提供指导。)

如果接收到特定 RTP 数据包的重复副本,则必须报告第一个到达副本的到达时间。如果复制数据包的任何副本都带有 ECN-CE 标记,则必须报告该数据包的 ECN-CE 标记;否则,报告第一个到达的副本的 ECN 标记。

如果在报告间隔内没有从 SSRC 接收到数据包,则可以发送报告块,其中 begin_seq 设置为先前从该 SSRC 接收到的最高序列号,并且 num_reports 设置为 0(或者可以简单地省略报告)。对应的发件人报告/接收器报告 (SR/RR) 数据包将具有非增加的扩展最高序列号接收字段,该字段将通知发送方尚未收到数据包,但可以简化处理以在拥塞控制反馈报告中也提供该信息。

指示某些 RTP 数据包丢失的报告块不应被解释为重传丢失数据包的请求。如果已协商重传有效负载格式,则此类报告的接收方可能会选择重传此类数据包,但不要求这样做。

4. 反馈频率和开销

在报告的速度和准确性以及报告的开销之间需要权衡。 [RTCP-多媒体反馈]讨论了这种权衡,提出了理想的 RTCP 反馈率,并提供了有关如何配置(例如,RTCP 带宽分数)以适当使用本备忘录中描述的报告块的指导。 RTP 拥塞控制算法规范也可以提供指导。

人们普遍认为,反馈越频繁,拥塞控制算法效果越好。然而,RTCP带宽和传输规则对RTCP反馈消息可以从RTP接收器发送到RTP发送器的频率设置了一些上限。

在许多情况下,在报告开销变得过多之前,每帧发送一次反馈是上限,尽管这取决于媒体速率,并且高速率媒体流可能需要更频繁的反馈[RTCP-多媒体反馈]。分析[反馈要求]还表明,一些候选拥塞控制算法可以使用 50-200 ms 的反馈间隔范围,以不太频繁的反馈进行操作。应用程序需要根据拥塞控制算法的选择、预期的媒体比特率和可接受的反馈开销,在会话建立时协商适当的拥塞控制反馈间隔。

5. 反馈包丢失的响应

与所有 RTCP 数据包一样,RTCP 拥塞控制反馈数据包可能会丢失。所有 RTP 拥塞控制算法必须指定它们如何响应反馈数据包的丢失。

RTCP 数据包不包含序列号,因此必须根据自上次反馈数据包以来的时间来推断反馈数据包的丢失。如果仅丢失一个拥塞控制反馈数据包,则适当的响应是假设拥塞水平与先前的报告大致保持相同。然而,如果多个连续的拥塞控制反馈数据包丢失,则媒体发送方应该快速降低其发送速率,因为这可能表明路径故障。 RTP断路器规范[RFC8083] 提供进一步的指导。

6.SDP信令

定义了一个新的“ack”反馈参数“ccfb”,与“a=rtcp-fb:”会话描述协议(SDP)扩展一起使用,以指示使用第 3 节中定义的 RTP 拥塞控制反馈数据包格式。该SDP参数扩展的ABNF定义[RFC5234]是:

rtcp-fb-ack-param = <参见 [RFC4585] 的第 4.2 节>

rtcp-fb-ack-param =/ccfb-parccfb-par = SP“ccfb”与“ccfb”反馈一起使用的有效负载类型必须是通配符类型(“*”)。这意味着拥塞控制反馈是针对会话中使用的所有有效负载类型发送的,包括任何前向纠错(FEC)和重传有效负载类型。生成的 SDP 属性的示例如下:

a=rtcp-fb:* ack ccfb

这些SDP反馈参数的提供/应答规则是 RTP/AVPF 配置文件 [RFC4585] 的第 4.2 节中指定。

SDP 提议可能表明支持本备忘录中指定的拥塞控制反馈机制以及提供基本相同语义的一个或多个替代拥塞控制反馈机制。在这种情况下,应答方应该包括其答案中仅提供一种拥塞控制反馈机制。如果收到包含同一组拥塞控制反馈机制的后续提议,则生成的答案应尽可能选择与原始答案中相同的拥塞控制反馈机制。

当SDP BUNDLE扩展[RFC8843]用于复用时,“a=rtcp-fb:”属性具有多路复用类别IDENTICAL-PER-PT[RFC8859]。

7. 与 RFC 6679 的关系

[RFC6679]中描述了显式拥塞通知(ECN)与 RTP 的使用,它指定了如何与 RTP 协商 ECN 的使用,并定义了 RTCP ECN 反馈数据包来携带 ECN 反馈报告。它使用 SDP“a=ecn-capable-rtp:”属性来协商 ECN 的使用,并使用“a=rtcp-fb:”属性和“nack”参数“ecn”来协商 RTCP ECN 的使用数据包。

当 ECN 与本备忘录中定义的 RTP 拥塞控制反馈数据包一起使用时,RTCP ECN 反馈数据包没有用处,因为它提供了重复的信息。当拥塞控制反馈与 RTP 和 ECN 一起使用时,生成的 SDP 提议必须包含用于协商 ECN 支持的“a=ecn-capable-rtp:”属性,以及与“ack”参数“ccfb”表示可以使用RTP拥塞控制反馈包。 “a=rtcp-fb:”属性还可以包括“nack”参数“ecn”以指示还支持 RTCP ECN 反馈数据包。如果SDP 为 RTP 拥塞控制反馈数据包和 RTCP ECN 反馈数据包提供信号支持,应答方应该在其 SDP 应答中信号支持一种格式,但不能同时支持两种格式,以避免发送重复的反馈。

当将 ECN 与 RTP 结合使用时,请遵循 [RFC6679] 第 7.2 节中的指南

必须遵循在 RTP 会话中启动 ECN 的使用。还必须遵循 [RFC6679] 第 7.3 节中关于在 RTP 会话中持续使用 ECN 的指南,但反馈是使用本备忘录中描述的 RTCP 拥塞控制反馈数据包而不是使用 RTP ECN 反馈数据包发送的。同样,[RFC6679]第 7.4 节中的指导相关 必须遵循检测故障的方法,但必要的信息是从 RTCP 拥塞控制反馈数据包而不是从 RTP ECN 反馈数据包中检索的。

8. 设计原理

RTCP SR/RR 数据包的主要功能是报告 RTP 数据包接收的统计数据。这些数据包中发送的接收报告块包含有关观察到的抖动、部分数据包丢失和累积数据包丢失的信息。该信息的目的是可用于支持拥塞控制算法,但经验表明它不足以实现该目的。

高效的拥塞控制算法需要比 SR/RR 数据包提供的有关每个数据包接收质量的更细粒度的信息才能有效做出反应。本备忘录中定义的反馈格式提供了如此细粒度的反馈。

其他几个 RTCP 扩展也提供比 SR/RR 数据包更详细的反馈:

TMMBR:RTP/AVPF 配置文件 [RFC5104] 的编解码器控制消息包括临时最大媒体流比特率请求 (TMMBR) 消息。这用于从 RTP 数据包接收方向发送方传达临时最大比特率限制。尽管 TMMBR 并非旨在取代拥塞控制,但它已被用作进行基于接收器的拥塞控制的一种方法,其中会话带宽足够高,可以发送频繁的 TMMBR 消息,特别是与非复合 RTCP 数据包一起使用时 [RFC5506] 。这种方法要求 RTP 数据包的接收方监视其接收情况,确定拥塞程度,并推荐适合路径上当前可用带宽的最大比特率;它还假设 RTP 发送方可以/将会尊重该比特率。这与本备忘录中建议的基于发送者的拥塞控制方法相反,因此 TMMBR 不能用于传达基于发送者的拥塞控制所需的信息。然而,TMMBR 可以被视为一种补充机制,可以告知发送方接收方当前对可接受的最大比特率的看法。

传达接收器对最大可用比特率的估计的机制提供了类似的反馈。

RTCP 扩展报告 (XR):定义了许多 RTCP XR 块来报告数据包丢失、到达时间 [RFC3611]、延迟 [RFC6843] 和 ECN 标记 [RFC6679] 的详细信息。可以将多个此类 XR 块组合成一个复合 RTCP 数据包,以报告有效的基于发送方的拥塞控制所需的详细丢失、到达时间和 ECN 标记信息。

然而,由于需要堆叠多个报告,结果在带宽和复杂性方面都有很高的开销。

传输范围的拥塞控制:本备忘录中定义的格式提供了每个 SSRC 的单独反馈。另一种方法是向每个 RTP 数据包添加标头扩展,其中包含单个传输范围的数据包序列号,然后让接收方发送 RTCP 报告,提供有关这些附加序列号的反馈 [RTP-Ext-for-CC]。由于报头扩展,这种方法将每个 RTP 数据包的大小增加了 8 个八位位组,但减少了 RTCP 反馈数据包的大小,并且如果它保持适用于所有数据包的单一速率限制,则可以简化发送方的速率计算。发送的 RTP 数据包,无论其类型如何 SSRC。同样,使用整个运输范围的反馈使其更加 很难根据在每个 SSRC 上观察到的接收和/或丢失模式来调整发送速率或响应丢失的数据包(例如,执行差分速率控制和 基于每个流丢失的数据包的知识来修复音频和视频流)。运输范围的反馈也不太适合更广泛的 RTP 框架,这使得 广泛使用每个 SSRC 序列号和反馈。

考虑到这些问题,我们认为设计一种新的 RTCP 反馈机制来为基于发送者的拥塞控制算法传递信息是适当的。新的拥塞控制反馈 第 3 节中描述的 RTCP 数据包提供了这样的机制。

9. IANA 考虑因素

IANA 在“RTPFB 有效负载类型的 FMT 值”表 [RFC4585] 中注册了一条新的 RTP/AVPF 传输层反馈消息,如第 3.1 节中所定义:

名称:CCFB

全名:RTP拥塞控制反馈

值:11

参考:RFC 8888

IANA 还注册了一项新的 SDP“rtcp-fb”属性“ack” SDP“ack”和“nack”属性值中的参数“ccfb”

注册表:

值名称:ccfb

长名称:拥塞控制反馈

可用于:ack

多路复用器:每个 PT 相同

参考:RFC 8888

10. 安全考虑

RTP 规范 [RFC3550]、适用的 RTP 配置文件(例如,[RFC3551]、[RFC3711] 或 [RFC4585])的安全考虑, 以及正在使用的 RTP 拥塞控制算法(例如,[RFC8698], [RFC8298]、[Google-GCC] 或 [RFC8382])适用。

故意生成不准确的 RTCP 拥塞控制反馈报告的接收方可能会欺骗发送方以高于路径可支持的速率进行发送,从而导致路径拥塞。这种情况将对该接收器的体验质量,可能会导致共享路径的其他流量拒绝服务以及媒体发送器的资源使用量过度增加。由于 RTP 是一种不可靠的传输,发送方可以故意丢弃数据包,在 RTP 序列号空间中留下间隙,而不会造成严重损害,以检查接收方是否正确报告丢失。 (这需要小心完成,并对所发送的媒体数据有一定的了解,以限制对用户体验的影响。)

可以修改 RTCP 拥塞控制反馈数据包的路径攻击者可以更改报告以欺骗发送方以过高或过低的速率发送,从而导致拒绝服务。安全 RTCP 配置文件 [RFC3711] 可用于验证 RTCP 数据包以防止此类攻击。

可以欺骗 RTCP 拥塞控制反馈数据包的偏离路径攻击者同样可以欺骗发送方以不正确的速率发送,从而导致拒绝服务。这种攻击很困难,因为攻击者还需要猜测 SSRC 和序列号到目的地传输地址。与路径攻击一样,安全 RTCP 配置文件 [RFC3711] 可用于验证 RTCP数据包以防止此类攻击。

关于转载

转载此文请注明出处,“引用于新睿云.弘电脑”,否则请回避。

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

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

相关文章

Android Binder机制解析

一 binder介绍&#xff1a; binder机制是一种基于Client-Server架构的IPC&#xff08;Inter-Process Communication&#xff0c;进程间通信&#xff09;机制&#xff0c;它允许不同进程之间进行高效的通信和数据交换。Binder机制在Android系统中扮演着至关重要的角色&#xff…

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发&#xff0c;协议可理解为“规则”&#xff0c;是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议&#xff0c;FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

LeetCode每日一题——移除元素

移除元素OJ链接&#xff1a;27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 题目给定要求只能使用O(1)的额外空间并且原地修改输入数组&#xff0c;然后返回移除后的数组行长度。那 么我们就可以确我没有办法建立临时的数组存放我…

项目分享--NO.1

搭建高可用的web集群.部署网站 包含数据库,ceph/nfs,haproxy,keepalived,ansible部署 1,配置ansible管理环境 创建工作目录,编写ansible配置文件,和主机清单文件,yum配置文件 将yum文件到控制机上,然后用模块上传到被管理机器上 #vim 01-upload-repo.yml --- - name: confi…

数字电子技术实验(四)

单选题 1.组合逻辑电路中产生竞争冒险的原因是&#xff1f; A. 电路没有最简化 。 B. 时延 。 C. 电路有多个输出。 D. 逻辑门的类型不同。 答案&#xff1a;B 评语&#xff1a;10分 单选题 2.下列表达式不存在竞争冒险的有&#xff1f; 答案&#xff1a;A 评语&#x…

图像去噪--(1)

系列文章目录 文章目录 系列文章目录前言一、图像噪声1.1 噪声定义1.2 基本特征 二、按照噪声概率分布分类1.高斯噪声2.泊松噪声 三、去噪算法3.1 线性滤波3.1.1 高斯滤波3.1.2 均值滤波 3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波 四、深度学习总结 前言 一、图像噪声 1.1 …

词令微信小程序怎么添加到我的小程序?

微信小程序怎么添加到我的小程序&#xff1f; 1、找到并打开要添加的小程序&#xff1b; 2、打开小程序后&#xff0c;点击右上角的「…」 3、点击后底部弹窗更多选项&#xff0c;请找到并点击「添加到我的小程序」&#xff1b; 4、添加成功后&#xff0c;就可以在首页下拉我的…

观察者模式的理解和引用

1.前言 在之前的H5小游戏中&#xff0c;对于长连接发送的不同类型数据包的处理&#xff0c;是通过switch语句进行处理的&#xff0c;于是在自己的代码中出现了大量的case分支&#xff0c;不方便进行维护和后期的版本迭代。于是在老师的指导下&#xff0c;开始寻求使用观察者模…

人形机器人进展:IEEE Robotics出版双臂通用协同机械手操作架构

文章目录 1. Main2. My ThoughtsReference彩蛋a. OpenAI 投资: 人形机器人公司 Figure AIb. 人工智能软件工程师 Devin 上线 1. Main 图1 人居环境下的人形双臂机器人系统 通用人形机器人 作为近年来机器人与AI交叉领域的研究热点和技术竞争高地&#xff0c;因其具备在 非结构化…

NCV1117ST50T3G线性稳压器芯片中文资料规格书PDF数据手册引脚图图片价格参数

产品概述&#xff1a; NCP1117系列为低压差&#xff08;LDO&#xff09;正向线性电压稳压器&#xff0c;能够提供超过1.0A的输出电流&#xff0c;800mA时温度范围内最大压差为1.2V。这一系列包括八个固定输出电压&#xff1a;1.5V、1.8V、2.0V、2.5V、2.85V、3.3V、5.0V 和 12…

xray问题排查,curl: (35) Encountered end of file(已解决)

经过了好几次排查&#xff0c;都没找到问题&#xff0c;先说问题的排查过程&#xff0c;多次确认了user信息&#xff0c;包括用户id和alterid&#xff0c;都没问题&#xff0c;头大的一逼 问题排查过程 确保本地的xray服务是正常的 [rootk8s-master01 xray]# systemctl stat…

基于springboot实现房源出租信息系统项目【项目源码+论文说明】

基于springboot实现房源出租信息系统演示 摘要 近些年来在一线城市的房子需求量在逐步递增&#xff0c;其中租房子和出租房子的需求业务不断增加。那么租房对于我们一线二线城市来说是一个非常大&#xff0c;而且具有经济提升能力的业务场景。那么信息技术在此行业的加持早已是…

太强了!斯坦福继Flash Attention V1和V2又推出Flash Decoding

斯坦福大学此前提出的FlashAttention算法&#xff0c;能够在BERT-large训练中节省15%&#xff0c;将GPT训练速度提高2/3。此后又提出FlashAttention V2&#xff0c;拥有了更好的并行性和工作分区&#xff0c;让计算提速200%&#xff0c;上下文长度扩展更任性&#xff01; Flas…

[WUSTCTF2020]朴实无华

查看robots.txt 找到/fAke_flagggg.php 显然这是个假的flag&#xff0c;但是我们在header处发现了fl4g.php 近来发现中文全部变成了乱码 插件转成utf8后正常显示 <?php header(Content-type:text/html;charsetutf-8); error_reporting(0); highlight_file(__file__);//leve…

【深度学习模型移植】用torch普通算子组合替代torch.einsum方法

首先不得不佩服大模型的强大之处&#xff0c;在算法移植过程中遇到einsum算子在ONNX中不支持&#xff0c;因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法&#xff0c;但是该方法会…

微服务:Bot代码执行

每次要多传一个bot_id 判网关的时候判127.0.0.1所以最好改localhost 创建SpringCloud的子项目 BotRunningSystem 在BotRunningSystem项目中添加依赖&#xff1a; joor-java-8 可动态编译Java代码 2. 修改前端&#xff0c;传入对Bot的选择操作 package com.kob.botrunningsy…

STM32定时器预分频系数和自动重装载系数

现以一个图开始&#xff1a; 预分频器和计数器最大值都为65535&#xff08;从0开始&#xff09; 预分配器&#xff1a;比如输入的是72MHZ的频率&#xff0c;&#xff08;预分频系数为0&#xff09;不分频的话就是一秒数72000000次&#xff0c;如果预分频系数为&#xff08;72…

基于springboot实现小区物业管理系统项目【项目源码+论文说明】

基于springboot实现小区物业管理系统演示 摘要 随着城镇人口居住的集中化加剧 &#xff0c;传统人工小区管理模式逐渐跟不上时代的潮流。这就要求我们提供一个专门的管理系统。来提高物管的工作效率、为住户提供更好的服务。 物业管理系统运用现代化的计算机管理手段,使物业的…

FPGA和ASIC

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第16篇,在本篇文章给大家介绍FPGA和ASIC。 一个四核i7的CPU的晶体管中有20亿的晶体管&#xff0c;需要链接起20亿的晶体管可不是一件容易的事情&#xff0c;所以设计一个CPU需要用年来算&#x…

MySQL:SQL优化

1. 插入优化 使用insert语句单条单条数据插入效率偏低&#xff0c;建议使用insert批量插入数据&#xff0c;批量控制在500-1000条数据较为合适&#xff0c;当面对数以百万的数据时&#xff0c;可以使用load指令&#xff0c;提升插入数据效率 相关指令 #客户端连接服务端加上参…