百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

这可能是QOS模型及分类标记最详细讲解

ccwgpt 2024-10-12 02:49 59 浏览 0 评论

NP阶段我们主要针对IP这一层,其实这个和我们将来学习的语音是有联系的。文章较长,如有需要文档可以留言,文档我会私发给各位,编写不易,如对您有用,希望能关注,谢谢啦。

其实我们在NP里面主要研究的就是电路交换和包交换。电路交换给你分多少就是多少你一个人用,包交换是所有人去挤一个带宽,这样会让有限的带宽被一些比较大的流量占住,什么BT啊迅雷啊还有优酷啊等等。

那么总结下:我们的QOS就是为了保证在有限的带宽下一些重要的流量能正常运行。

QOS:

1在有限的带宽里面尽可能的传递更多的数据。

2一旦传递很多数据就会出现延迟。

3一些像语音流量就会出现延迟。

4更严重的就是丢包。

------------------------------------------------------------------------------

先看可用带宽:



解释的很清楚,传出来的是10兆,中间的是256K那么取的是最小值。那么我们现在缺少带宽解决方式有三种:



第一:升级带宽。(废话)

第二:允许一些重要的报文先传,主要就是队列技术像WFQ,CBWFQ。(一般都是QOS第二次课的重要类容)

第三:二层压缩

第四:三层压缩(G711和G729都是)

----------------------------------------------------------------------------------------------------------------

延迟:



延迟在网络中我们分为3大类:

第一:进程延迟(一个数据包从一个接口传进来我首先就要查路由表,然后选择从哪个接口发出去,那么你查表的过程中需要CUP的处理,那么这种延迟就是进程延迟,别和我说12000多厉害,就算是双核四核的一样会有延迟的)

第二:队列延迟(它主要针对出口,这个队列延迟是要用缓存,当然属于接口缓存,这个缓存是和本路由器的内存有关的,假设你的内存是10兆的,那么我最大只能缓存10兆的数据包,说到这里杨老师突然想到星期六陪老婆大人去逛商场等停车位,这就是一个很好的例子,好比一个停车场里面只有X个车位,当我这个X车位全部停满后后面再来的车就进不来,只能在外面等,排在后面的车一定要等到前面的车走了才能进来。)

第三:传播延迟(只要是数据在链路上传递也会有延迟)

-----------------------------------------------------------------------------------------------------------

再回到前面的图,只看带宽来说我们取最小值。那作为个从源到达目标我们取哪个整体值了?



带宽取最小值,延迟取之和。说到这里降低延迟我们也有些方法:



方法其实和解决带宽的方法差不多。

第一:也是升级链路

第二:一些重要的包先传

第三第四第五:都是压缩压缩在压缩。

-----------------------------------------------------------------------------------------------------------------

丢包:(也就是链路出现大量拥塞,然后我就丢弃一些数据包。这就比较严重了)



尾丢弃是路由器默认的一个操作。意思很简单,比方一辆汽车有很多座位,先来的就从一号位置开始坐,等最后一个位置坐满了再来的就tail drops。

由于这个机制是默认的那么我们在做QOS的时候可以针对这个来做优化。其实这个还是蛮重要的,各位想下啊要是先来了个FTP的流量一直把这个带宽占着,然后我这会要传个语音流量那么这个流量肯定是会被drop掉的。我们后面会讲个叫WRED(加权式的随机早期丢弃机制)来搞定,也属于个拥塞避免机制,打个比方吧要是前面的包一直把这个链路塞着那么我不等后面的流量来我就先定义几个筏值把前面的包给随机drop掉几个。Drop掉后后面优先级高的就可以加进来。后面去讲吧。

------------------------------------------------------------------------------------------------------------------

说了这么多我们还是给QOS一个定义吧。



CISCO总结的很好:能够提供更好的服务,但是可能影响一些应用。

但是我认为自己总结的更好:针对不同的流量定义不同的服务。

----------------------------------------------------------------------------------------------------

QOS的一个大体部署。



1, 标识一些流量,其实就是标记。默认的流量是没有做任何区分的,那我们如何区分优先级高的流量了?就在这块了我们给流量打上标记已区分优先级。

2, 分类 有了标记我们马上就要给它分类,主要使用ACL来分类,比如可以基于优先级分类,基于源地址目的地址分类,也可以基于端口号分类。

3, 策略 比如针对你优先级高的我做何种策略。

----------------------------------------------------------------------------------------------------------------

部署QOS的模型。



路由器默认的就是best的这个属于尽力而为,没什么意思我们不去管它。主要是下面的两种,集成式和区分是式。集成式我们主要讲RSVP,但是作为QOS我们主要学区分式的。集成式的灵活性和可操作性都不好。

很简单集成式的从源到目的都要配置一样的QOS策略,区分式的我们可以在每个节点上针对不同的流量配置不同的QOS策略。

我们来一个一个来看。先看尽力而为best。


默认的都是这种类型好处就是没有CUP的开销。因为我不需要去打标啊分类等等。但是会导致拥塞,没有服务保证,没有区分性。

------------------------------------------------------

集成式

主要是RSVP(资源预留协议)

来看一个实际例子:

先看看它的工作思想。假设图上面是个视频流量,那么源发出来的时候我们先会从源开始发个信令,告诉沿途所有设备预留多少带宽。预留完带宽后这会再发真实的数据。

找了张N年前的老图。说的很详细了。

资源预留协议预留方式两种:

第一:独占式预留,适用于多个源同时发送应用程序,针对每个发送方预留资源,且发送方是很清楚的,也就是说发送方知道接收方地址。配置上是以FF标识。

第二:共享式预留,适用于多个源非同时发送应用程序。共享式预留里面再分两类,1,SE为多个明确的源预留资源。2,WF为所有源预留资源。

-----------------------------------------------------------------------------------------------------

其实默认的RSVP配置比较简单.

接口下面启用就行,可以直接回车,直接回车就是这条链路带宽的75%。当然你也可以改。

RSVP配置实例
如图所示:从主机A到主机 B使用UDP端口1040的应用程序通信。

Router 1 的配置
interface Ethernet0  
  ip address 210.210.210.1 255.255.255.224  
  fair-queue 64 256 234  
  ip rsvp bandwidth 7500 7500  
!  
interface Serial0  
  ip address 210.210.210.101 255.255.255.252  
  fair-queue 64 256 36  
  ip rsvp bandwidth 1158 1158  
  
ip rsvp sender 210.210.210.60 210.210.210.30 1 0 0  
210.210.210.30 Et0 1 1  
ip rsvp sender 210.210.210.60 210.210.210.30 UDP 1040 0  
210.210.210.30 Et0 32 32 [A1]  
ip rsvp reservation 210.210.210.60 210.210.210.30 1 0 0  
210.210.210.30 Et0 ff 1 1
 
Router 2 的配置[A2] 
interface Serial0  
  ip address 210.210.210.102 255.255.255.252  
  fair-queue 64 256 36  
  ip rsvp bandwidth 1158 1158  
!  
interface Serial1 
  ip address 210.210.210.105 255.255.255.252  
  fair-queue 64 256 36  
  ip rsvp bandwidth 1158 1158
 
Router 3 的配置
interface Ethernet0  
  ip address 210.210.210.33 255.255.255.224  
  fair-queue 64 256 234  
  ip rsvp bandwidth 7500 7500  
!  
interface Serial1  
  ip address 210.210.210.106 255.255.255.252  
  fair-queue 64 256 36  
  ip rsvp bandwidth 1158 1158  
  
  
ip rsvp sender 210.210.210.30 210.210.210.60 1      0 0  
210.210.210.60 Et0 1 1  
ip rsvp reservation 210.210.210.60 210.210.210.30 1      0 0  
210.210.210.60 Et0 FF LOAD 1 1  [A3] 
ip rsvp reservation 210.210.210.60 210.210.210.30 UDP 1040 0
  210.210.210.60 Et0 FF LOAD 32 32

这个配置各位参考看下。这个实验啰嗦几句其实R3才是最关键的只有reservation才是回应预约。

下面是些show

查看哪些接口启用了RSVP。在这补充下,如果这张图A和B都是有RSVP意识的那么做法就很简单了在中间3台接口上直接启用RSVP就行ip rsvp bandwidth。

这就是在R1上配置的。

R3上的配置

如果做成功了可以通过installed查看安装上的,每个接口预留多少K。

说了这么长时间集成式的其实不好很简单这条链路上只要有一个路由器不支持集成式那么这个QOS就做不出来。还有一个就是信令这个玩意不是很好保证,等各位学了通信原理就明白了。

“这个实验是我自己写的没办法没法演示,没有虚拟机支持啊,真实机要能跑得起来这玩意又贵的要死哦。最后一段截屏还是偷偷在某客户的72上截下来的。只能提供这么多了,大家靠意念想象下吧。

----------------------------------------------------------------------------------------------------------------------

区分式:

这种用的是比较多的。那么区分式服务顾名思义它不是以整段链路来看,是以每个路由器或者交换机来看的。在整段链路以每个路由器/交换机配置这样更加灵活。而且区分式是不需要信令打通整个通道,每个路由器具体去配置就行。配置后面再说。

--------------------------------------------------------------------------------------------------------------------

那么不管集中式或者区分式我们一共有4种方式实施。例如怎么配置RSVP。

1 命令行。

2 还是命令行,不过这种基于模块化。提一下吧CB xx都是MQC,这个也是我们手工去配置但是模块已经定义好了。

3 cisco autoQOS(这玩意基本上没人用了,讽刺啊cisco自己的东西,但说配置还是很简单的因为你在接口上一条命令就自动把所有QOS都配置上去了。)

4 SDM 大名鼎鼎的萨达姆啊,呵呵。Cisco图形化配置,最简单了下一步下一步下一步OK。

先还是看看区分式QOS的工作流程吧。这张图非常重要。

第一块 分类和标记。传过来的流量我人为的给你打上些标记人为分类。(默认有的是做了的比如eigrp默认就做了优先级的)

第二块 流量的整形和监管。别听着很厉害其实里面就是限速。(默认是没有做)

第三块 拥塞避免。解决为丢弃的机制。(默认是没有做)

第四块 队列机制(这个很重要,默认也是做了的)

第一块分类:

其实分类就是用ACL来做。

打标记:

打标记主要是针对三层和二层。

QOS概念太多而且比较杂。先从网络层来看,网络层有两种标记,

还记得ip包不?先是版本和指数据报协议头长度,后面就是标记位1个字节,8位。

8位优先级我们先看前3位,那么3位就有8种等级0-7,每一级都取了个名字,比如0级就是routine普通的,1级就是优先的,2级就是立即的,3级火速的,4级不顾一切火速的,5级决定性的。

我们挑几个说吧,像默认的PC,路由器发出报文流量就是0级。那么voip电话流量默认打上的标记级别就是5级,中间的0至4都是可以人为配置改变的。

6和7要单独说,他们都是属于控制层面的些协议,像ospf,eigrp他们的hello包默认就是6级等等各位想想为什么这些优先级要这么高,7级现在基本上没有用属于保留的。

这地方有我一张ospf数据包截图,可以看到IP包的第三部分就是QOS标记位,11000000,前三位110,就是6级。

-------------------------------------

DSCP(区分服务代码点)。

由于我们的precedence只用了前3位,控制点不是很多很详细,无法区分一些细的流量,那么DSCP就用6位,那么一共是0-63。

针对这6位我们分了很多系列,我们主要讲这4种系列(凡事系列名字都是PHB每一跳行为,理解起来比较简单就是每一跳的行为是不一样的,比如第一跳路由器我可以定义为5级,到后面的时候我可以定义为6级)。

默认系列:0

CS系列:(类的区分器)



CS系列其实很重要的作用就是来兼容precedence。各位是不是发现没有cs0了,呵呵看默认。

AF系列 :(确保转发)



各位看懂没它是把这个6位细分为3块。一共4种AF,分别是AF1,2,3,4,这4种都是看前3位定义出来的,当然dd也是可以变的,那么又可以多出来4种选择,例如AF11,AF12,AF13,AF14只是最后一位0是固定的。

EF系列:(加快转发)

这个就没有什么说法了都是些固定死的值。


那么这么多级别怎么配置了我要是忘记了怎么办,路由器上是有提示的。




Dscp就太多了

0至63可以自己定义,还有些推荐的比较好的,默认,CS系列,AF系列,这个地方有必要说下有书上说的是AF后面用了4种事实上只用了3种,00并不是没有被使用是属于CS位。

--------------------------------------------------------------------------------

以上就是打标记,唉~~~想起第一次接触到这玩意完全就是天书啊。

----------------------------------------------------------------------------------------------------------------------

下面我们来看二层的标记:



我们看看二层数据的格式发现是没用地方打标记的,怎么办只能在trank上打。ISL就算了私有的,我们主要是在dot1q上打。



我们看这个图在以太网数据帧里面我们插了4字节802.1q的数据帧,那么在TCI里面有个叫PRI的3位就可以来打标记。

那么在二层我们叫做cos



我们在以太网里面做了trunk我们叫802.1Q,那么在trunk里面改动了cos,做了优先级,我们又叫802.1P。所以有些文档上面写成802.1Q/P。

-------------------------------------------------------------------------------

好我们接着看Frame Relay



在帧中继里面有个DE位,叫做合法丢弃位,1/0,简单数据来了我打上1或者0,帧中继里面是不存在优先级的,只是单独的看DE位是否有操作,有操作那么我就直接运行某种动作认为指定。

说到这里我们终于把打标记这张图



最后一个概念信任边界。



看看这张图,我们针对这种环境如何打标记,建议是越靠近源越好。那么我们可以分析下PC发出来的包是没有任何能力打标的。



其实就是PHB每一跳行为。

-----------------------------------------------------------------------------------------------------------------

实际打标记的具体技术:



1 PBR基于策略的路由

2 CBmarking CB系列的第一个(基于类的打标记)

先看PBR


它的设计很有意思,我们想想原来作为原要到达目的有两条路,那么我们可以根据路由协议的metric值来选,这种选法属于根据目的来选路,那么PBR是根据源来选路。然后打标记。



第一先基于源的区分,第二打标记,第三强制负载均衡(根本不看路由表而且是默认优于路由表的,比如你s0口没有路由我还是会强制扔出去)。

PBR怎么做,第一它一定是用在数据的入方向,因为要靠近源,这样流量以来我就可以做区分,是不分in和out。第二实现方法就是使用route-map

看个实例吧:



2.2.2.2模拟目的,5.和9属于源,5是一般流量,9是VIP。我们就是要用PBR来区分流量。

分析下我们这会的PBR应该在哪台路由器上面做?

我们在实际环境中是应该在R5上面做的,因为实际环境中5和9应该是两台PC他们和R5之间是有交换机相连的,那么我们这张图使用的是回环接口我们只能在R4上面去做了。

那么在R4上面做应该调用哪个接口了?很明显是s1/1口,因为它最靠近源。

那么各位再去想一个问题抓这个流量是用acl还是prefix-list?如果你们用prefix-list去抓那就错了,因为prefix-list只能抓路由根本不能抓数据包也就是控制层面的事情,那么很明显5ping2是属于数据层面对于数据层面我们只能用acl。

r4(config)#access-list 100 permit ip 5.5.5.0 0.0.0.255 2.2.2.0 0.0.0.255
r4(config)#access-list 109 permit ip 9.9.9.0 0.0.0.255 2.2.2.0 0.0.0.255

抓完后我们去做route-map

r4(config)#route-map PBR
r4(config-route-map)#match ip address 100
r4(config-route-map)#set interface serial 1/0
r4(config)#route-map PBR permit 20
r4(config-route-map)#match ip address 109
r4(config-route-map)#set ip next-hop 14.14.14.1(我这会用了两种不同的写法都行)

最后调用在S1/1,搞定。

r4(config-if)#ip policy route-map PBR(这个地方要说下policy是专门用来调用PBR的,而且各位注意做PBR的时候是没有in和out方向的,所以接口一定要用对咯,源方向的入接口)

----------

做完后我们可在R4上debug下,然后去R5上5ping2和9ping2.

r4#debug ip policy
r4#t扩展ping 也行。(这个地方提示下有时候效果会很奇怪的两边的路走的都是错的,这属于扩展ping的一个debug)

还要再扩展下我们这会再去R5上去ping 2.2.2.2会发现是通的。这和原来讲的route-map不一样哦,我没有写permit 30为空那么为什么还是可以通了?能想到这点的同学我恭喜你NP学的够好,因为你能问出这样的问题,同时我也想骂你NP学的够稀烂因为你完全没有搞懂route-map的含义。还是把route-map总结下。



Route-map是可以用在控制层面和数据层面的,用在控制层面必须要写空不然路由就过不来。而想PBR这种用在数据层面的是不需要写空的,通信的时候就是normal forwarding,没有匹配就自动转发,原来是怎么走现在还是怎么走数据包是不会被deny掉得。

---------------

没完下面接着看它如何打标记。



路由器这会有两个进流量,分别是E0口和E1口,我们这会想针对E,0来的流量优先级打成2,E1口来的流量打成0.图上写的很清楚了roue-map,不用写match,直接set优先级2/0

然后去接口上面调用。



这种就是属于同一个接口来的流量,里面telnet优先级为2,web优先级为1,其他的为0.

那么我们也是用ACL来抓,route-map来改,最后在接口上调用。

个人觉得PBR控制的不多;灵活度不够,局限性多一些主要是它用在进口,再就是它只能做precedence还不能做dscp。

--------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------

接下来我们看第一个CB技术,CB marking(基于类的打标记,属于模块化的QOS命令行)

这个技术相对来说比较容易做,因为都是定义好的框架工程师自己往里面填数据就行了。

第一个class map区分流量

第二个policy map 定义方针(当然policy map 是要调用class map)

第三个service policy 服务(3调用2调用1)


具体配置:

Policy-map调用一个class map,然后set一个优先级。

书上PPT上例子不全我们来看个实际案例:

在R1上吧telnet DSCP流量设置为AF11,www DSCP流量设置为AF41,其他的流量DSCP设置为默认。然后用在R1的in方向也就是E0口 注:CB系列是可以用在in和out方向的。

r1(config)#ip access-list extended telnet
r1(config-ext-nacl)#permit tcp any any eq telnet
r1(config)#ip access-list extended www
r1(config-ext-nacl)#permit tcp any any eq www

默认的就不写了。做完后我使用MCQ的模型去套。

r1(config)#class-map telnet
r1(config-cmap)#match access-group name telnet
r1(config)#class-map www
r1(config-cmap)#match access-group name www

接下来做policy-map:

r1(config)#policy-map cbmarking
r1(config-pmap)#class telnet
r1(config-pmap-c)#set dscp af11(说一下在set的时候我们可以问好下会发现CB系列还是很好的里面不光只有precedence 还可以改二层的cos位,dscp,帧中继,mpls等等)
r1(config-pmap-c)#exit
r1(config-pmap)#class www
r1(config-pmap-c)#set dscp af41
r1(config-pmap-c)#exit
r1(config-pmap)#class class-default(不要忘记还有其他流量哦)
r1(config-pmap-c)#set dscp default

最后接口上启用:

r1(config)#interface fastEthernet 0/0
r1(config-if)#service-policy input cbmarking (这个命令敲上去在cisco设备它会提示你打开cef的,r1(config-if)#ip cef )

----------------------------------

配置命令比较多我们理一下,首先用acl区分流量,然后被class-map调用,然后policy-map

再去调用class-map做相应的修改,最终启用在相应的接口。注:这个模板就是MCQ只是针对不同的policy-map改不同的内容。

最后show一下看看里面所有的定义。这个命令适用于所有CB系列。

r1#show policy-map interface
 FastEthernet0/0
 
  Service-policy input: cbmarking
 
    Class-map: telnet (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: access-group name telnet
      QoS Set
        dscp af11
          Packets marked 0
 
    Class-map: www (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: access-group name www
      QoS Set
        dscp af41
          Packets marked 0
 
    Class-map: class-default (match-any)
      58 packets, 5452 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any
      QoS Set
        dscp default
          Packets marked 58

---------------------------------------------------------------------------------------------------------------------

NBAR(基于网络的应用识别)

其实NBAR就是拿来分类的,也是属于分类技术,属于ACL的扩展。

因为ACL只能抓些固定的端口号。那么我想抓一个数据里面的一张图片这个就没法做,或者我们想抓一个txt文件用acl都没法抓。还有FTP我们如果使用被动模式两边的端口号都不是固定的,那么这些不好抓的使用ACL都没法做。

这就是基于网络的应用识别,针对的就是4-7层来做,那么各位想想我这会都把整个数据包全部拆开了,NBAR对路由器的性能要求还是比较高的。

这张图很清楚,有些TCP和UDP端口号是静态的,这种ACL是可以搞定的,还有些TCP和UDP端口号是动态的也就是状态化的,或者没有TCP和UDP的报文。那么这些我们只能是使用NBAR来搞定了。

---------------------------------------------------------------------------

PDLM


这个概念很有意思类似病毒库,PDLM是个文件如果我们要针对FTP来做直接match就行了默认的PDLM里面就有针对FTP里面的一些操作。

各位也可以从cisco的官方文档上面把针对BT的PDLM下下来。装到本路由器上。装好后我们可以直接match BT就可以针对BT操作了。

给个网站参考下:

http://wenku.baidu.com/view/37be590979563c1ec5da710c.html

-----------------------------------------------------------------------------------------

怎么加载

那么我们来看看实际的例子吧:


还是这张图,我们这会吧这些原来用ACL来抓的我们现在来用NBAR抓。

r1(config)#class-map www
r1(config-cmap)#match protocol ?(里面内容非常多这就是nbar里面的内容)
r1(config-cmap)#match protocol telnet (我们可以直接telnet就行)
r1(config)#interface fastEthernet 0/0(进接口调用)
r1(config-if)#ip nbar protocol-discovery (做nbar必须的一条命令,相当于nbar的一个开关这个的开启也是需要ip cef的支持)

最后在接口上启用。

给个参考网站http://wenku.baidu.com/view/8c3bafef102de2bd96058817.html

做完后

r1#show ip nbar protocol-discovery可以查看所以的nbar信息。


这个是思科的例子。

r1(config)#ip nbar port-map http tcp 80 8080


怎么抓图片还可以抓一些网站。

r1(config-cmap)#match protocol http ?
  host  Server Host Name
  mime  Match MIME Type
  url   Match URL String
  <cr>

如果是url就是网站,mine都是抓图片。

r1(config-cmap)#match protocol http mime *.jpg|*.gif 这属于又抓图片又抓动画。
r1(config-cmap)#match protocol http url http://WWW.baidu.com.cn 抓网址。

由于篇幅有限,下期讲解队列技术,感谢大家支持

相关推荐

用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)

Epic商店很香,但也有不少抱怨,其中一条是启动游戏太慢。那么,如果让Steam启动Epic游戏,会不会速度更快?众所周知,Steam可以启动非Steam游戏,方法是在客户端左下方点击“添加游戏”,然...

Docker看这一篇入门就够了(dockerl)

安装DockerLinux:$curl-fsSLhttps://get.docker.com-oget-docker.sh$sudoshget-docker.sh注意:如果安装了旧版...

AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]

2016年6月15日,我AY对外发布AYUI(WPF4.0开发)的UI框架,开发时候,你可以无任何影响的去开发PC电脑上的软件exe程序。AYUI兼容XP操作系统,在Win7/8/8.1/10上都顺利...

别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!

浏览器套壳方案,C#和C++有更多,你说的没错,从数量和历史积淀来看,C#和C++确实有不少方式来套壳浏览器,让Web内容在桌面应用里跑起来。但咱们得把这套壳二字掰扯清楚,因为这里面学问可大了!不同的...

OneCode 核心概念解析——Page(页面)

在接触到OneCode最先接触到的就是,Page页面,在低代码引擎中,页面(Page)设计的灵活性是平衡“快速开发”与“复杂需求适配”的关键。以下从架构设计、组件系统、配置能力等维度,解析确...

React是最后的前端框架吗,为什么这么说的?

油管上有一位叫Theo的博主说,React是终极前端框架,为什么这么说呢?让我们来看看其逻辑:这个标题看起来像假的,对吧?React之后明明有无数新框架诞生,凭什么说它是最后一个?我说的“最后一个”不...

面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官

面试官放下简历,手指在桌上敲了三下:"你上次解决的技术难题,现在回头看有什么不足?"眼前的候选人瞬间僵住——这是上周真实发生在蚂蚁金服终面的场景。2025年的前端战场早已不是框架熟练...

前端新星崛起!Astro框架能否终结React的霸主地位?

引言:当"背着背包的全能选手"遇上"轻装上阵的短跑冠军"如果你是一名前端开发者,2024年的框架之争绝对让你眼花缭乱——一边是React这位"背着全家桶的全能选...

基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)

什么是BFFBFF全称是BackendsForFrontends(服务于前端的后端),起源于2015年SamNewman一篇博客文章《Pattern:BackendsFor...

谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧

在AI技术飞速发展的当下,如何更高效地与大语言模型(LLM)沟通,以获取更准确、更有价值的输出,成为了一个备受关注的问题。谷歌最新发布的《PromptEngineering》白皮书,为这一问题提供了...

光的艺术:灯具创意设计(灯光艺术作品展示)

本文转自|艺术与设计微信号|artdesign_org_cn“光”是文明的起源,是思维的开端,同样也是人类睁眼的开始。每个人在出生一刻,便接受了光的照耀和洗礼。远古时候,人们将光奉为神明,用火来...

MoE模型已成新风口,AI基础设施竞速升级

机器之心报道编辑:Panda因为基准测试成绩与实际表现相差较大,近期开源的Llama4系列模型正陷入争议的漩涡之中,但有一点却毫无疑问:MoE(混合专家)定然是未来AI大模型的主流范式之一。...

Meta Spatial SDK重大改进:重塑Horizon OS应用开发格局

由文心大模型生成的文章摘要Meta持续深耕SpatialSDK技术生态,提供开自去年9月正式推出以来,Meta持续深耕其SpatialSDK技术生态,通过一系列重大迭代与功能增强,不断革新H...

&quot;上云&quot;到底是个啥?用&quot;租房&quot;给你讲明白IaaS/PaaS/SaaS的区别

半夜三点被机房报警电话惊醒,顶着黑眼圈排查服务器故障——这是十年前互联网公司运维的日常。而现在,程序员小王正敷着面膜刷剧,因为公司的系统全"搬"到了云上。"部署到云上"...

php宝塔搭建部署thinkphp机械设备响应式企业网站php源码

大家好啊,欢迎来到web测评。本期给大家带来一套php开发的机械设备响应式企业网站php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下...

取消回复欢迎 发表评论: