100分钟,我教你配CISCO RIP

路由器的工作不外乎两个,一是路径选择,二是数据转发。进行数据转发相对容易一些,难的是如何判断到达目的网络的最佳路径。所以,路径选择就成了路由器最重要的工作。 
许多路由协议可以完成路径选择的工作,常见的有RIP,OSPF,IGRP和EIGRP协议等等。这些算法中,我们不能简单的说谁好谁坏,因为算法的优劣谰菔褂玫幕肪忱磁卸稀1热鏡IP协议,它有时不能准确地选择最优路径,收敛的时间也略显长了一些,但对于小规模的,没有专业人员维护的网络来说,它是首选的路由协议,我们看中的是它的简单性。 
 
如果你手头正有一个小的网络项目,那么,就让我们来安排一个计划,30分钟读完本文(一读),20分钟再细看一遍本文提及的命令和操作方法(二读),用30分钟配置网络上的所有路由器(小网络,没有几台路由器可以配的),最后20分钟,检查一下网络工作是否正常。好了,一百分钟,你的RIP网络运转起来了。就这么简单,不信,请继续往下看。 
 
一、RIP是什么 
RIP(Routing Information Protocols,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在70年代开发的。当时,RIP是XNS(Xerox Network Service,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,无论实现原理还是配置方法,都非常简单。 
 
度量方法 
RIP的度量是基于跳数(hops count)的,每经过一台路由器,路径的跳数加一。如此一来,跳数越多,路径就越长,RIP算法会优先选择跳数少的路径。RIP支持的最大跳数是15,跳数为16的网络被认为不可达。 
 
路由更新 
RIP中路由的更新是通过定时广播实现的。缺省情况下,路由器每隔30秒向与它相连的网络广播自己的路由表,接到广播的路由器将收到的信息添加至自身的路由表中。每个路由器都如此广播,最终网络上所有的路由器都会得知全部的路由信息。正常情况下,每30秒路由器就可以收到一次路由信息确认,如果经过180秒,即6个更新周期,一个路由项都没有得到确认,路由器就认为它已失效了。如果经过240秒,即8个更新周期,路由项仍没有得到确认,它就被从路由表中删除。上面的30秒,180秒和240秒的延时都是由计时器控制的,它们分别是更新计时器(Update Timer)、无效计时器(Invalid Timer)和刷新计时器(Flush Timer)。 
 
路由循环 
距离向量类的算法容易产生路由循环,RIP是距离向量算法的一种,所以它也不例外。如果网络上有路由循环,信息就会循环传递,永远不能到达目的地。为了避免这个问题,RIP等距离向量算法实现了下面4个机制。 
? 水平分割(split horizon)。水平分割保证路由器记住每一条路由信息的来源,并且不在收到这条信息的端口上再次发送它。这是保证不产生路由循环的最基本措施。 
? 毒性逆转(poison reverse)。当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路。 
? 触发更新(trigger update)。当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期。同样,当一个路由器刚启动RIP时,它广播请求报文。收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期。这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性。 
? 抑制计时(holddown timer)。一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。 
即便采用了上面的4种方法,路由循环的问题也不能完全解决,只是得到了最大程度的减少。一旦路由循环真的出现,路由项的度量值就会出现计数到无穷大(Count to Infinity)的情况。这是因为路由信息被循环传递,每传过一个路由器,度量值就加1,一直加到16,路径就成为不可达的了。RIP选择16作为不可达的度量值是很巧妙的,它既足够的大,保证了多数网络能够正常运行,又足够小,使得计数到无穷大所花费的时间最短。 
 
邻居 
有些网络是NBMA(Non-Broadcast MultiAccess,非广播多路访问)的,即网络上不允许广播传送数据。对于这种网络,RIP就不能依赖广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。 
 
RIP的缺陷 
RIP虽然简单易行,并且久经考验,但是也存在着一些很重要的缺陷,主要有以下几点: 
? 过于简单,以跳数为依据计算度量值,经常得出非最优路由; 
? 度量值以16为限,不适合大的网络; 
? 安全性差,接受来自任何设备的路由更新; 
? 不支持无类IP地址和VLSM(Variable Length Subnet Mask,变长子网掩码); 
? 收敛缓慢,时间经常大于5分钟; 
? 消耗带宽很大。 
 
二、路由器怎么配 
 
路由器本身就是一台有多个网络接口的计算机,同普通计算机一样,它也有中央处理器(CPU)、系统主存(RAM)和只读存储器(ROM)等部件。 
除此之外,一个很重要的部分是它的网络接口(Interface),为了连结不同类型的网络,路由器的网络接口种类繁多,比如应用在局域网中的以太、快速以太、令牌环接口,应用于广域网的V.35、RS232、ISDN BRI PRI接口等等。 
路由器的外存储器主要有两种:NVRAM(Non-Volatile RAM,非易失性RAM)和Flash(闪存)。NVRAM存储路由器的配置文件,Flash用于存放操作系统IOS(Internet Operating System)。 
 
配置模式 
CISCO路由器最基本的配置模式有两种:用户(user)和特权(privileged)。在用户模式下,只能显示路由器的状态,特权模式还可以更改路由器的配置。 
特权模式下可以进入安装(setup)模式、全局配置(global config)模式,局部配置(sub config)模式。  
? 安装模式提供菜单提示,引导用户进行路由器的基本配置。新路由器第一次启动后,自动进入安装模式。 
? 全局配置模式中可以改变路由器的全局参数,如主机名、密码等等。 
? 局部配置改变路由器的局部参数,例如某一个网络接口的配置、某一种路由协议的配置等等。 
 
配置方法 
路由器的配置可以使用多种方法,下面这五种是最常见的: 
? 使用超级终端类的工具通过串行口登录控制台(console port)。 
? 将调制解调器连结至路由器的辅助口(auxiliary port),远程拨号登录控制台。 
? 远程登录(telnet)至路由器的某一IP 地址,通过VTY(virtue terminal line,虚拟终端)方式访问路由器。 
? 编辑配置文件,并通过TFTP上传至路由器。 
? 通过网络管理软件(network management system)远程设置路由器参数。 
 
安装路由器 
假设我们的项目网络中只有三台路由器。网络拓扑如下图: 
 
 
它们放在北京、上海和天津,名字分别叫testBJ、testSH和testTJ。我们采用B类保留IP地址172.16.0.0,共划分了四个子网172.16.1.0、172.16.2.0、172.16.3.0和172.16.4.0,子网掩码均为255.255.255.0。 
 
基本配置 
将包装中附带的串行电缆一端连接到Beijing路由器的console口上,另外一端连接到计算机的com口上。启动超级终端程序(Win95/NT中),作适当配置,连接路由器。给路由器加电,连续键入数个回车,出现如下提示符,显示路由器处于用户模式。 
testBJ> 
由用户模式转入特权模式,使用enable命令。 
testBJ> enable 
testBJ# 
和UNIX主机一样,“#”代表特权(root)用户的系统提示符,它表示你进入了特权模式。与enable作用相反,即从特权模式返回用户模式的命令是disable。 
特权模式下,可以使用config terminal命令进入全局配置模式。全局配置模式下,可以使用一些配置子项的名称进入局部配置模式。返回的方法都是exit命令。其中,从局部配置模式直接返回特权模式的命令是end。如下所示。 
testBJ#config terminal 
Enter configuration commands, one per line. End with CNTL/Z. 
testBJ(config)#router rip 
testBJ(config-router)#exit 
testBJ(config)#exit 
testBJ# 
CISCO IOS的一个非常引人的特色是它的命令行帮助,一个?解决了所有的问题。?可以显示当前模式下的命令列表,可以显示命令全称,还可以显示命令的参数和帮助信息。在任何对命令不确定的地方键入?,系统会给出提示信息。 
CISCO路由器还支持命令简写功能,只要不引起歧义,可以用命令的前几个字符替代整个命令,这样,配置时的打字工作量就小多了。 
 
路由器的全部配置信息都保存在配置文件中,当前正在使用的配置文件是running-config,它存放在系统内存里,我们在特权模式下对配置的修改会立即反映到running-config中。startup-config是存储在NVRAM中的配置文件,只有它是掉电不丢失的,所以如果想使所做的修改到下一次启动时仍然有效,就必须保存当前配置。存盘命令如下: 
testBJ#copy running-config startup-config 
Building configuration... 
[OK] 
testBJ# 
 
更改路由器名、密码 
路由器的名字可以用hostname命令修改。 
Router(config)#hostname testBJ 
testBJ(config)# 
enable password和enable secret命令可以修改特权模式的密码。 
testBJ(config)#enable password cisco 
testBJ(config)#enable secret cisco 
进入line console局部配置模式下,修改console登录密码;进入line vty局部配置模式,修改telnet登录的密码。login命令指出需要登录,修改密码的命令都是password。 
testBJ(config)#line console 0 

[1] [2] [3] 下一页  

文章录入:csh    责任编辑:csh  testBJ(config-line)#login 
testBJ(config-line)#password cisco 
testBJ(config-line)#exit 
testBJ(config)#line vty 0 4 
testBJ(config-line)#login 
testBJ(config-line)#password cisco 
 
测试连通性 
打开其余两台路由器,按上述方法进行配置,然后就可以检查它们之间是否连通了。 
测试线路连通性的方法有三种,ping、traceroute和telnet。ping可以检测目的地是否可达;trace不仅检测连通性,还给出到达目的地所经过的路径;telnet测试应用层软件的连通性,如下所示。 
testBJ#ping 172.16.4.2 
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 172.16.4.2, timeout is 2 seconds: 
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/25/28 ms 
testBJ#traceroute 172.16.4.2 
Type escape sequence to abort. 
Tracing the route to 172.16.4.2 
1 172.16.2.2 16 msec 16 msec * 
testBJ#telnet 172.16.4.2 
Trying 172.16.4.2 ... Open 
User Access Verification 
Password: 
testTJ> 
172.16.4.2是路由器testTJ上的一个端口,我们在testBJ上运行上述三个命令,得知它运行正常。 
 
显示当前状态 
为了使网络管理员能够方便地了解路由器的状态,CISCO路由器提供了丰富的show命令。我们在这里介绍最简单的几个,如下所示。 
show version命令显示路由器的硬软件版本号及配置信息。 
show flash:命令相当于DOS的dir命令,显示flash中包含的文件信息。 
show interface命令显示网络接口的状态。 
配置路由器的过程中,最重要的一个show命令莫过于查看配置文件的内容,可以用show命令查看running-config或startup-config,如下所示。 
show running-config 
show startup-config 
配置文件是一个文本文件,其中包含着你键入的每一条配置命令。可以将配置文件下载到计算机上,用文本编辑器修改之后,再传回路由器。 
 
三、RIP要配什么 
 
IP地址配置 
我们可以使用interface命令进入局部配置模式,然后利用ip address设置接口的IP地址。如下所示。 
testBJ#conf t 
Enter configuration commands, one per line. End with CNTL/Z. 
testBJ(config)#interface e0/1 
testBJ(config-if)#ip address 172.16.1.2 255.255.255.0 
testBJ(config-if)# 
为了便于配置和记忆,你还可以给每个端口添加一些描述信息。如下所示,在端口局部配置模式下使用description命令。 
testBJ(config-if)#description connect to testSH 
testBJ(config-if)#end 
testBJ# 
有些网络是NBMA(Non-Broadcast MultiAccess,非广播多路访问)的,即网络上不允许广播传送数据。对于这种网络,RIP就不能依赖广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。 
有些网络是NBMA(Non-Broadcast MultiAccess,非广播多路访问)的,即网络上不允许广播传送数据。对于这种网络,RIP就不能依赖广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。 
 
RIP配置 
RIP是最容易配置的路由协议。配置它只需要两步操作,首先,指定使用RIP协议,然后,声明所连接的网络号,如下所示。 
testBJ(config)#router rip 
testBJ(config-router)#network 172.16.0.0 
testBJ(config-router)#end 
testBJ# 
router rip命令用于指定使用RIP协议,network命令声明网络号,由于RIP是一个有类路由协议,所以不必声明各个子网号。 
对每一台路由器重复上述操作,一个使用RIP路由的网络就建成了。 
 
测试配置正确性 
配置RIP之后,要检查数据是否可以被正确路由。除了可以使用上面提到的连通性测试工具之外,还有以下几个命令: 
? sh ip route用于检测路由表; 
? sh ip protocols用于检查路由协议状况; 
? debug ip rip用于调试RIP协议信息。 
使用sh ip route命令显示各台路由器的路由表。 
testBJ#sh ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP 
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP 
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,  
* - candidate default, U - per-user static route, o - ODR 
Gateway of last resort is not set 
172.16.0.0/24 is subnetted, 4 subnets 
R 172.16.4.0 [120/1] via 172.16.2.2, 00:00:12, Serial1/0 
C 172.16.1.0 is directly connected, Ethernet0/1 
C 172.16.2.0 is directly connected, Serial1/0 
R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:09, Ethernet0/1 
[120/1] via 172.16.2.2, 00:00:22, Serial1/0 
上面显示的是北京路由器的路由信息。字母C开头的是直接相连的网络,有172.16.1.0和172.16.2.0,分别连接在e0/1和s1/0端口上。字母R开头的是RIP协议学习到的路由,有172.16.3.0和172.16.4.0,其中,到172.16.3.0有两条路径供选择,分别经由testSH和testTJ路由器。对比网络拓扑图,可以看出实际情况与设计的完全一致。 
中括号里的内容是路由项的管理距离和度量值,RIP的缺省管理距离是120,到达3、4子网的度量值是1,即经过1个路由器可达。 
同样的命令在另外两台路由器上运行,结果如下。 
testSH#sh ip route 
Gateway of last resort is not set 
172.16.0.0/24 is subnetted, 4 subnets 
R 172.16.4.0 [120/1] via 172.16.3.2, 00:00:13, Ethernet0/0 
C 172.16.1.0 is directly connected, Ethernet0/1 
R 172.16.2.0 [120/1] via 172.16.1.2, 00:00:11, Ethernet0/1 
[120/1] via 172.16.3.2, 00:00:13, Ethernet0/0 
C 172.16.3.0 is directly connected, Ethernet0/0 
 
testTJ#sh ip route 
Gateway of last resort is not set 
172.16.0.0/24 is subnetted, 4 subnets 
C 172.16.4.0 is directly connected, Ethernet0/0 
R 172.16.1.0 [120/1] via 172.16.3.3, 00:00:07, Ethernet0/1 
[120/1] via 172.16.2.3, 00:00:19, Serial1/0 
C 172.16.2.0 is directly connected, Serial1/0 
C 172.16.3.0 is directly connected, Ethernet0/1 
分析上述命令输出时,一定要随时参照拓扑图,离开网络拓扑,上面的信息就没有任何意义。动态路由的灵活性体现在一条链路出现故障,路由算法会自动切换到迂回链路上。例如我们将testBJ和testTJ之间的串行线缆断开,一段时间后,再检查路由表,如下所示。 
testBJ#sh ip route 
Gateway of last resort is not set 
172.16.0.0/24 is subnetted, 3 subnets 
R 172.16.4.0 [120/2] via 172.16.1.3, 00:00:22, Ethernet0/1 
C 172.16.1.0 is directly connected, Ethernet0/1 
R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:22, Ethernet0/1 
我们发现串行链路所在的子网2断开了,到网络172.16.4.0网络的数据包都将绕经testSH路由器。 
sh ip protocols命令可以显示当前路由协议的状况,如下所示。 
testBJ#sh ip protocols 
Routing Protocol is "rip" 

上一页  [1] [2] [3] 下一页  

文章录入:csh    责任编辑:csh  Sending updates every 30 seconds, next due in 19 seconds 
Invalid after 180 seconds, hold down 180, flushed after 240 
Outgoing update filter list for all interfaces is not set 
Incoming update filter list for all interfaces is not set 
Redistributing: connected, rip 
Default version control: send version 1, receive any version 
Interface Send Recv Key-chain 
Ethernet0/1 1 1 2 
Serial1/0 1 1 2 
Routing for Networks: 
172.16.0.0 
Routing Information Sources: 
Gateway Distance Last Update 
172.16.2.2 120 00:00:05 
172.16.1.3 120 00:00:27 
Distance: (default is 120) 
从命令输出中,可以看出RIP协议的基本配置,还可以得知与当前路由器交换信息的路由器有testTJ(172.16.2.2)和testSH(172.16.1.3)两台路由器,上次接收路由信息分别在5秒和27秒之前。 
要了解路由器之间交换路由信息的详情,可以使用debug ip rip命令。如下所示,输入命令后,隔一段时间,控制台上出现接收或者发送RIP广播的信息。 
testBJ#debug ip rip 
RIP protocol debugging is on 
testBJ# 
RIP: received v1 update from 172.16.2.2 on Serial1/0 
172.16.4.0 in 1 hops 
172.16.3.0 in 1 hops 
RIP: received v1 update from 172.16.1.3 on Ethernet0/1 
172.16.4.0 in 2 hops 
172.16.3.0 in 1 hops 
RIP: sending v1 update to 255.255.255.255 via Ethernet0/1 (172.16.1.2) 
subnet 172.16.4.0, metric 2 
subnet 172.16.2.0, metric 1 
RIP: sending v1 update to 255.255.255.255 via Serial1/0 (172.16.2.3) 
subnet 172.16.1.0, metric 1 
RIP: received v1 update from 172.16.1.3 on Ethernet0/1 
172.16.4.0 in 2 hops 
172.16.3.0 in 1 hops 
RIP: received v1 update from 172.16.2.2 on Serial1/0 
172.16.4.0 in 1 hops 
172.16.3.0 in 1 hops 
testBJ#no debug all 
All possible debugging has been turned off 
testBJ# 
从上述信息中可以得到RIP广播的详情。路由器先是从testTJ收到子网3、4的信息,然后又从testSH收到子网3、4的信息。其中,到子网4走testTJ一跳,走testSH两跳,所以,路由表中反映出来的是经由testTJ到子网4;到子网3的距离都是一跳,所以,路由表中有两条并列的路由。 
一段时间后,当前路由器的更新计时达到30秒,于是,它在两条链路上广播自身的路由表信息。注意,广播路由更新时,RIP采用了水平分割机制,从一个端口上学得的信息就不在这个端口上进行广播,所以当前路由器testBJ只发送子网172.16.1.0的路由信息。 
使用no debug all命令结束调试信息的显示。需要注意的是debug命令非常消耗路由器资源,所以不要在通讯繁忙的路由器上使用,否则,路由器就会象死机一样停止反应。 
 
怎么样,你看一遍这篇文章用了多少时间。下面可以找几台路由器,试着配置一下,不是很困难吧。 
体会网络连通时的乐趣,将这里作为你学习路由器的起点,IGRP、OSPF、HSRP等等,不过,再往后学,100分钟可就不够了…… 

上一页  [1] [2] [3] 

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 100分钟,我教你配CISCO RIP

    路由器的工作不外乎两个,一是路径选择,二是数据转发.进行数据转发相对容易一些,难的是如何判断到达目的网络的最佳路径.所以,路径选择就成了路由器最重要的工作. 许多路由协议可以完成路径选择的工作,常见的有RIP,OSPF,IGRP和EIGRP协议等等.这些算法中,我们不能简单的说谁好谁坏,因为算法的优劣谰菔褂玫幕肪忱磁卸稀1热鏡IP协议,它有时不能准确地选择最优路径,收敛的时间也略显长了一些,但对于小规模的,没有专业人员维护的网络来说,它是首选的路由协议,我们看中的是它的简单性. 如果你手头正有

  • 三分钟时间教你用Python绘制春联

    目录 前言 实现 总结 前言 春联是中国传统文化中最具内涵的元素之一,它以对仗工整.简洁精巧的文字描绘美好形象,抒发美好愿望,是中国特有的文学形式,是华人们过年的重要习俗.每逢春节期间,无论城市还是农村,家家户户都要精选一副大红春联贴于门上,辞旧迎新,以增加节日的喜庆气氛. 据考证,这一习俗起于宋代,盛于明代.有据可查的最早的春联是“三阳始布,四序初开”,始见于莫高窟藏经洞出土的文物中,撰联人为唐人刘丘子,作于开元十一年(公元723年).如今卖春联的景象是这样的: 当今时代的人,大多只是粗通文墨

  • 教您识别Cisco交换机型号

    在网络界,美国思科公司( Cisco System Inc. )可谓无人不知,无人不晓.凭借它的 IOS ( Internet Operating System ), Cisco 公司在多协议路由器市场上处于绝对领先的地位.目前,在 Internet 中,有近 80% 的路由器来自 Cisco .其实,除了路由器这个主打产品之外, Cisco 还有全线的网络设备,包括集线器.交换机.访问服务器.软硬防火墙.网络管理软件等等. Cisco 非常注意对新技术的跟踪,通过一系列的合作与兼并, Cisc

  • Cisco路由器的备份配置方法

    Cisco路由器的备份技术有多种.这里介绍一下路由器自身的备份技术及线路备份技术. 一般来说,路由器是建立局域网与广域网连接的桥梁. 所谓的路由器自身的备份技术是为了解决路由器由于自身硬件(如内存.CPU)或软件IOS的某种故障或局域端口的故障,所连接局域设备的端口或线路的故障所导致的网络瘫痪的问题. 路由器的备份要求至少有一台与正在工作的主路由器功能相同的路由器,在主路由器瘫痪的情况下,以某种方式代替主路由器,为局域网用户提供路由服务. 对于局域网的计算机,在主路由器瘫痪的情况下,如何找到备份

  • Java Servlet及Cookie的使用

    本文介绍了Java Servlet编程所需的软件及环境配置.只要你有一台安装Windows 95/98了的PC机,便可以按照本文的步骤开发Servlet程序了.本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程.通过它可以实现网上常见的个性化网页.网上购物篮.密码验证等. Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,进行相应的处理,并向用户提供反馈.其作用类似于CGI程序,可以实现网页中很多交互式效果,但比CGI程序效率

  • 让你变成ASP木马高手

    1.名称:如何制作图片ASP木马 (可显示图片)  建一个asp文件,内容为<!--#i nclude file="ating.jpg"-->  找一个正常图片ating.jpg,插入一句话木马(比如冰狐的),用ultraedit进行hex编译,插入图片里,为  了运行成功,还要搜索<%和%>,将其变为00,(不要替换自己asp的),再把jpg文件开头加入  <SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>eval(

  • nuxt.js 缓存实践

    nuxt 是基于 vue 的 ssr 解决方案,可以是使用vue语法完成前后端的同构. 然而在与传统纯字符串拼接的 ssr 方案相比,性能就没那么好了, nuxt 需要在服务端生成虚拟 dom ,然后再序列化出HTML字符串,我们常说 nodejs 的高性能指的是异步IO操作频繁的场景而非CPU操作密集的场景,毕竟 nodejs 是运行在单线程下的,在涉及到高并发的场景下,性能就会有所下降,可以考虑采用合理的缓存策略 nuxt 的缓存可以分为 组件级别缓存 , API级别缓存 以及 页面级别缓存

  • QT实现将两个时间相加的算法[hh: mm + hh: mm]的示例代码

    目录 [1]简介 [2]标志位 [3]系统时间+设定的时间[源码附上] [4]系统时间+清洗时间[附上源码] [5]总结 [1]简介 本次写作是在实际项目中需要,进行的时间算法,本人通过QT时间戳的方式,是无法实现两个时间相加的.但是又必须添加这个项目功能,于是自己写了一份时间算法,主要是时分的形式,例如: 12:59 + 9:59这种形式.另外如果各位博主有更好的算法或者函数库提供,请在下方附上 link [2]标志位 首先介绍实现的这两个函数:void setTreatmentEndtime

  • 利用fecha进行JS日期处理

    前言 目前在项目中我们使用了fecha来进行日期处理,并对fecha进行了重新封装,满足项目中的实际需求. fecha介绍 fecha是一个日期格式化和解析的js库,它提供了强大的日期处理功能,功能强大且只有2k大小.安装方式简单,只需要npm install fecha --save即可 Formatting(日期格式化) fecha提供一个format方法.fecha.format接收一个Date对象(或一个时间戳)和一个字符串形式的日期格式,然后返回一个字符串(处理后的日期). 注意: 当

  • Android 悬浮窗权限各机型各系统适配大全(总结)

    这篇博客主要介绍的是 Android 主流各种机型和各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以在适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时. 悬浮窗适配 悬浮窗适配有两种方法:第一种是按照正规的流程,如果系统没有赋予 APP 弹出悬浮窗的权限,就先跳转到权限授权界面,等用户打开该权限之后,再去弹出悬浮窗,比如 QQ 等一些主流应用就是这么做得:第二种就是利用系统的漏洞,绕过权限的申请,简单粗暴,这种方法我不是特别建议,但是现在貌似有些

随机推荐