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

华为数通HCIA-网络参考模型(TCP/IP)

网络通信模式

作用:指导网络设备的通信;

OSI七层模型:

7.应用层:由应用层协议(http、FTP、Telnet.)为应用程序产生对应的数据;

6.表示层:将应用层产生的数据转换成网络设备看得懂的语言

5.会话层:为应用数据产生一个独立的会话,放置不同数据之间的相互干扰

4.传输层:为应用数据封装一层传输层头部,用于为数据提高传输服务;

TCP--可靠、传输效率慢;

UCP--不可靠、传输效率高;

文字、文件--采用TCP封装

语音、视频--采用UDP封装

3.网络层:为数据封装网络层头部:

封装sip以及dip;

sip:发送端的ip地址;

dip:目的端的ip地址;

2.数据链路层:为数据封装数据链路层头部

一般会封装smac、dmac;

smac:发送端的mac地址;

dmac接收端的mac地址;

1.物理层:将已经打包好的数据转换成适合在物理链路上进行传递的信号进行发送;

TCP/IP常见协议

应用层

HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面。

FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。

DNS(Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之间的转换。

传输层

TCP (Transmission Control Protocol,传输控制协议) :为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。

UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证。

网络层

IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。

IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

数据链路层

PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议,多用于广域网。

Ethernet( 以太网协议 ):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术。

PPPoE(Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
应用层的PDU被称为Data(数据)。

 TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。

常见应用层协议 - FTP

FTP(File Transfer Protocol)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构。

 常见应用层协议 - Telnet

Telnet是数据网络中提供远程登录服务的标准协议。 Telnet为用户提供了在本地计算机上完成远程设备工作的能力。

 用户通过Telnet客户端程序连接到Telnet服务器。用户在Telnet客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台上输入一样。

常见应用层协议 - HTTP

HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

 传输层

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。
传输层的PDU被称为Segment(段)。

网络层头部(ip头)

封装协议:ip协议

关键内容:

版本:v4、v6、默认为v4

TOS:服务类别,用于对流量进行分类,实现QOS;

分片字段:分片id、flags、偏移量;

分片:当网络设备需要发送的数据大小,超出了接口MTU(最大发送单元,默认为1500B)时,需要将数据分成若干个小的数据发送出去,接收端收到后进行重组;

分片id:用于标记一个数据是否为分片数据,如果是的话,分片id不为0;

flags:其中更多段位用于标识分片是否为最后一个分片,如果不是则为1,如果是则为0,当接收端收到flags位为0的分片时,即可开始进行重组;

偏移量:用于标识分片的重组顺序,以防分片在传输过程中,出现顺序互换,导致数据包错乱的情况,

eg:

4500B数据,分片1 1500B

2 1500B

3 1500B

偏移量: 0 1499 分片1

1500 2999 分片2

3000 4499 分片2

TTL (生存时间)

范围: 0~255,初始值为255;

作用: 1、标识数据包经过了多少台三层设备(路由器、三层交换机、防火墙);

2、防止数据包无限转发,

原理: 当一个数据包被发出时,TTL为255,每经过一台三层设备转发,就会减1

当数据包中的TTL被减为0时,失去被发送的资格;

协议号

作用: 用于标识上层协议类型,

可以实现设备在处理网络层头部时,得知上层协议类型,提前调用对应的协议出来处理数据:

TCP--6

UDP--17

sip:发送端的ip地址

dip:接受端的IP地址

TCP/IP

传输层协议

TCP(传输控制协议)

作用:为数据封装TCP头部,提供可靠的传输服务;

封装内容:

端口号;

定义:大小16bit,范围为0~65535,其中0~1023属于知名端口号,1024~65535属于自定义端口号;

作用:源端口号随机从自定义端口号中生成,没有特殊含义;

目的端口号用于标识上层协议;(http-80、FTP-20、21、telnet-23)

序列号、确认号;

控制位:常见SYN、ACK、FIN位,代表TCP的报文类型,比如SYN报文的SYN位=1;

window(窗口值):代表同一时间内,最多可以发送以及接收多大的数据,最多16bit;

可靠性机制

1、面向连接

当需要传输基于TCP的流量时,需要先建立TCP连接通道,通过三次握手的方式建立;

(1)主动端发送SYN报文给被动端,其中会携带随机生成的序列号(a),用于请求建立TCP连接

(2)被动端收到后,会产生一份SYN以及ACK同时置位的TCP报文,其中ack号为a+1,用于确认跟主动端建立连接,另外还会产生一个随机的序列号(b),用于请求被动端到主动端的TCP连接;

(3)主动端收到被动端的报文后,产生一份ACK报文,其中ack=b+1,用于对被动端向主动端的连接请求进行确认;

(4)被动端收到后,双向连接建立完成;

2、确认机制/重传机制

所有基于TCP的流量都会携带一个序列号,当设备发出一份基于TCP的流量后,必须收到对端的ACK报文进行确认,才会继续发送下一份,否则会进行重传;

3、流控机制/窗口滑动机制

作用:确保被发送出去的基于TCP的流量,不会因为双方的窗口值有差异,而出现丢包现象;

原理:被发送的TCP流量,会携带发送端的窗口值,如果接收端的窗口值,小于发送端的窗口值,则会在进行确认时,通过ack号以及window值告知发送端,发送端会根据接收端的窗口值,调整自己的发送窗口;

4、关闭连接

当需要停止传输TCP流量时,需要把第一步建立的TCP连接进行关闭,通过四次挥手的方式进行关闭;

(1)主动端发送FIN以及ACK位同时置位的TCP报文,其中序列号以及ack号均为随机产生的,假设序列号为a,ack号为b

(2)被动端收到后,先产生一份ACK报文,其中ack号为a+1,发送出去,用于确认关闭主动端到被动端的连接;

(3)被动端再产生一份FIN报文,其中序列号为b,发送出去,用于请求关闭被动端到主动端的连接;

(4)主动端收到后,产生ACK报文,其中ack号为b+1,发送出去,用于确认关闭被动端到主动端的连接;

至此,双向连接关闭成功;

特点:可靠性高、效率低下;

应用:适用于对丢包率要求较高的流量,如文本类流量;

UDP(用户数据包协议)

作用:为数据封装UDP头部,提供效率高的传输服务;

封装内容:主要就是端口号;

可靠性机制:无

特点:效率高、可靠性差;

应用:适用于语音、视频等一些对时延比较敏感、连续要求较高的流量;

TCPUDP 端口号

 客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;
源端口号一般为系统中未使用的,且大于1023;
目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80。

TCP的建立 - 三次握手

任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接

TCP连接建立的详细过程如下:
        由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;
        接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
        PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立。

TCP的序列号与确认序列号

TCP 使用序列号和确认序列号字段实现数据的可靠和有序传输。 

假设PC1要给PC2发送一段数据,传输过程如下:
1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“a+1”,第二个字节的序号为“a+2”,依次类推。
2. PC1会把每一段数据的第一个字节的编号作为序列号(Sequence  number),然后将TCP报文发送出去。
3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号(a+1+12)
4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12” ,说明“a+1”到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。
为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。
 

TCP的窗口滑动机制

TCP通过滑动窗口机制来控制数据的传输速率

 1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。
2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。
4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。
5. 发送方根据接收方当前的Window大小发送相应数量的数据。

TCP的关闭 - 四次挥手

当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。

TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。如图所示:
1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
网络层的PDU被称为Packet(包)。

 IPv4( Internet Protocol Version 4),简称IP,是目前应用最广泛的网络层协议。

网络层协议工作过程

 

当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
IP数据包的封装与转发:
网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。


数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。
以太网(Ethernet)是最常见的数据链路层协议。

 以太网与MAC地址

 

MAC地址(物理地址)

 MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F

作用:唯一标识一张网卡(全球唯一)

特点:设备天生就有,并且无法后期更改;

格式:十六进制;

大小:48bit

分类:根据通信类型进行分类:

单播mac:用于唯一标识一张网卡,实现1对1通信,二进制角度的第8bit固定为0;

组播mac:用来标识一组设备,实现一对多通信,二进制角度的第8bit固定为1;

广播mac:用于实现1对所有通信,mac地址为F(十六进制角度),在二进制角度全为1

地址解析协议 (ARP)

ARP (Address Resolution Protocol)地址解析协议:
根据已知的IP地址解析获得其对应的MAC地址。

作用:
ARP是根据IP地址获取数据链路层地址的一个TCP/IP协议,从而完成数据封装。
ARP是IPv4中必不可少的一种协议,它的主要功能是:
将IP地址解析为MAC地址;
维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
实现网段内重复IP地址的检测。

报文:

ARP层——数据链路层

ARP层:源ip、目标ip(target ip)、源mac、目标mac;

ARP缓存表

用于记录ip地址与mac地址的对应关系;

查看 终端——>arp -a

路由器、交换机——>display arp

arp工作过程

1、广播请求阶段;

当一台设备需要封装dmac时,先查看自身的arp缓存表中是否存在对应的mac地址,如果存在则直接完成封装,如果没有则发送ARP请求报文进行请求;

ARP请求

ARP层

sip:自己

tip:请求的对象的ip地址

smac:自己

tmac:空

数据链路层

smac:自己

dmac:全F(广播发送)

2、单播回应阶段:

当一台设备收到ARP请求后,拆除数据链路层头部,看到ARP层,判断目标ip是否为自己,如果不是,则直接丢弃,如果是,则执行以下操作:

(1)将ARP层中sip以及smac的对应关系学习进自身的ARP缓存表,供日后使用;

(2)将对端请求的mac地址填进ARP请求的目标mac中,然后产生ARP回应报文单播发送出去;

其中ARP层的sip、tip、smac、tmac为ARP请求的源目互换,数据链路层的smac以及dmac直接复制ARP层的,进行单播发送;

3、请求端收到ARP回应后,将ARP层的sip以及smac的对应关系学习进ARP缓存表中,完成数据封装;

免费ARP(特殊的ARP请求)

特点:ARP层的sip以及tip一致,均为自身的ip地址;

作用:检测ip地址的冲突性;

发送时机:当一台网络设备刚获取到一个新的ip地址时就会发送;

原理:当发出一个免费ARP后,如果收到回应,则说明ip地址存在冲突,则不能使用该ip;

物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。
物理层的PDU被称为比特流(Bitstream)。
 

 常见传输介质

双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
STP-屏蔽双绞线
UTP-非屏蔽双绞线
光纤传输,按照功能部件可分为:
光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。
光模块:将电信号与光信号互转的器件,产生光信号。
串口电缆在WAN(Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI接口等。
无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输。

中间网络数据传输

封装好的完整数据,将会在网络中被传递。
一般情况下:
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
注:“交换”和“路由”的详细细节和原则,将会在后面的课程中详细介绍。

 接收方数据解封装

5 应用层:相当于OSI模型中的5~7层的功能; data

4 传输层 段

3 网络层 包

2 数据链路层 帧

1 物理层 bit流

数据发送:将应用层产生的数据,基于TCP/IP五层模型,由上往下进行逐层的封装,然后发送出去的过程

数据接收:网络设备收到数据后,进行基于TCP/IP五层模型,由下往上逐层解除封装,直至看到应用层数据为止的过程

数据转发:数据从发送端发出,到接收端之间,经过的网络设备负责将数据进行转发

其中路由器工作在网络层,根据网络层头部进行转发;

交换机工作在数据链路层,根据数据链路层头部进行转发;

 

相关文章:

华为数通HCIA-网络参考模型(TCP/IP)

网络通信模式 作用:指导网络设备的通信; OSI七层模型: 7.应用层:由应用层协议(http、FTP、Telnet.)为应用程序产生对应的数据; 6.表示层:将应用层产生的数据转换成网络设备看得懂…...

java快速生成数据库表文档(HTML、DOC、MD)

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐,这里推荐一个开源项目:screw gi…...

Dojo学习和常用知识

目录 一、Dojo 的基本概念二、Dojo 的组件和模板三、Dojo 的应用场景四、Dojo 的未来发展五、学习 Dojo 的大纲和建议:六、Dojo 代码示例: Dojo 是一个流行的 JavaScript 库,用于开发 Web 应用程序。它提供了许多功能,如 DOM 操作…...

媒体查询详解

引言 媒体查询是 CSS3 的一个新的技术,它使我们可以针对不同的设备(或者说,不同的屏幕尺寸和分辨率)来应用不同的样式。 媒体查询包含一个媒体类型和至少一个使用宽度、高度、颜色等条件限制的表达式。CSS 用于桌面电脑的屏幕可…...

华为数通HCIP-IGMP(网络组管理协议)

IGMP(网络组管理协议) 作用:维护、管理最后一跳路由器以及组播接收者之间的关系; 应用:最后一跳路由器以及组播接收者之间; 原理:当组播接收者需要接收某个组别的流量时,会向最后…...

价格管控有哪些有效的方法

品牌在面对线上店铺的低价、窜货时,需要及时进行干预治理,否则低价效应会蔓延,会有越来越多的店铺跟价,导致渠道更加混乱,但是管控价格也非一时之事,需要品牌按流程治理。 力维网络有多年价格管控经验&…...

【Docker】Docker相关基础命令

目录 一、Docker服务相关命令 1、启动docker服务 2、停止docker服务 3、重启docker服务 4、查看docker服务状态 5、开机自启动docker服务 二、Images镜像相关命令 1、查看镜像 2、拉取镜像 3、搜索镜像 4、删除镜像 三、Container容器相关命令 1、创建容器 2、查…...

掌握Python的X篇_16_list的切片、len和in操作

接上篇掌握Python的X篇_15_list容器的基本使用,本篇进行进一步的介绍。 文章目录 1. list的索引下标可以是负数2. 切片(slice)2.1 切片基础知识2.2 如何“取到尽头”2.3 按照步长取元素2.4 逆序取值 3. len函数获取lis的元素个数4. in操作符…...

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin

给定长度值length&#xff0c;把列表切分成每段长度为length的N段列表&#xff0c;Kotlin import kotlin.random.Randomfun main(args: Array<String>) {var source mutableListOf<String>()val end Random.nextInt(30) 1for (i in 0 until end) {source.add(i.…...

leetcode每日一题Day2——344. 反转字符串

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f433;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; …...

ISP记1

噪声分类 空间区域 分布模型分类&#xff1a;Gaussian噪声、瑞利噪声、泊松噪声、乘性噪声、脉冲噪声、均匀分布噪声 频域谱波形分类&#xff1a;均匀分布噪声、白噪声&#xff08;噪声的功率谱为参数&#xff0c;且与图像线性无关&#xff09;1/f噪声、a f 2 f^{2} f2噪声&a…...

无线蓝牙耳机有什么值得耳机买的?几款值得买的口碑品牌盘点

蓝牙耳机是一种无线耳机&#xff0c;其通过蓝牙技术与其他设备进行连接&#xff0c;例如手机、电脑、平板电脑等。蓝牙耳机使得用户可以在不受线缆限制的情况下享受音频体验&#xff0c;而且还可以方便地进行通话&#xff0c;目前市场上有许多不同种类和品牌的蓝牙耳机&#xf…...

异步检索在 Elasticsearch 中的理论与实践

异步检索在 Elasticsearch 中的理论与实践 https://www.elastic.co/guide/en/elasticsearch/reference/8.1/async-search.html#submit-async-search 引言 Elasticsearch 是一种强大的分布式搜索和分析引擎&#xff0c;它能够快速地存储、搜索和分析大量数据。在处理大规模数据时…...

了解Unity编辑器之组件篇Physics 2D(十二)

一、Area Effector 2D区域施加力&#xff09;&#xff1a;用于控制区域施加力的行为 Use Collider Mask&#xff08;使用碰撞器遮罩&#xff09;&#xff1a;启用后&#xff0c;区域施加力仅会作用于特定的碰撞器。可以使用Collider Mask属性选择要作用的碰撞器。 Collider Ma…...

[Pytorch]手写数字识别——真·手写!

Github网址&#xff1a;https://github.com/diaoquesang/pytorchTutorials/tree/main 本教程创建于2023/7/31&#xff0c;几乎所有代码都有对应的注释&#xff0c;帮助初学者理解dataset、dataloader、transform的封装&#xff0c;初步体验调参的过程&#xff0c;初步掌握openc…...

android studio 找不到符号类 Canvas 或者 错误: 程序包java.awt不存在

android studio开发提示 解决办法是&#xff1a; import android.graphics.Canvas; import android.graphics.Color; 而不是 //import java.awt.Canvas; //import java.awt.Color;...

AWS——02篇(AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储)

AWS——02篇&#xff08;AWS之服务存储EFS在Amazon EC2上的挂载——针对EC2进行托管文件存储&#xff09; 1. 前言2. 关于Amazon EFS2.1 Amazon EFS全称2.2 什么是Amazon EFS2.3 优点和功能2.4 参考官网 3. 创建文件系统3.1 创建 EC2 实例3.2 创建文件系统 4. 在Linux实例上挂载…...

FFmpeg 打包mediacodec 编码帧 MPEGTS

在Android平台上合成视频一般使用MediaCodec进行硬编码&#xff0c;使用MediaMuxer进行封装&#xff0c;但是因为MediaMuxer支持格式有限&#xff0c;一般会采用ffmpeg封装&#xff0c;比如监控一般使用mpeg2ts格式而非MP4,这是因为两者对帧时pts等信息封装差异导致应用场景不同…...

软件测试如何推进项目进度?

在软件研发中&#xff0c;有一种思想叫TDD&#xff0c;即测试驱动开发&#xff0c;TDD是敏捷方法中的一项核心实践&#xff0c;其原理是在开发功能代码之前&#xff0c;先编写单元测试用例代码&#xff0c;对要编写的函数或类明确测试方法后&#xff0c;再进行设计与编码。 本…...

首次尝试鸿蒙开发!

今天是我第一次尝试鸿蒙开发&#xff0c;是因为身边的学长有搞这个的&#xff0c;而我也觉得我也该拓宽一下技术栈&#xff01; 首先配置环境&#xff0c;唉~真的是非常心累&#xff0c;下载一个DevEco Studio 3.0.0.993&#xff0c;然后配置环境变量这些操作不用多说&#xff…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...