内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记。

感谢LY,他帮我做了一部分笔记。其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的。

课程内容和西电平时讲课的内容大致重合,西电可能会多讲一点内容,但多讲的考试基本不是重点,自己对照任课老师的课件补一下即可。考试要复习的内容看上去很多,但最后考的都很基础,基本不会考特别偏的知识。

王道的计网讲的中规中矩,听课听完可能会有点懵,建议快速过一遍内容后就开始刷题来加深理解。

其他章节的链接如下:

计算机网络笔记(王道考研) 第一章:计算机网络体系结构

计算机网络笔记(王道考研) 第二章:物理层

计算机网络笔记(王道考研) 第三章:数据链路层

计算机网络笔记(王道考研) 第四章:网络层

计算机网络笔记(王道考研) 第五章:传输层

计算机网络笔记(王道考研) 第六章:应用层

其他各科笔记汇总

网络层

网络层功能概述

网络层

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务

网络传输单位是数据报

IP数据报过大就会进行分片,分片后的小单位即网络层的传输单元分组

功能一:路由选择和分组转发 最佳路径

功能二:异构网络互联

功能三:拥塞控制

若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞

解决拥塞的方法:

  • 开环控制:静态。在网络开始工作前就考虑所有能够产生拥塞的因素进行预先控制
  • 闭环控制:动态。网络运行起来后自动调整

路由算法及路由协议

路由算法

路由协议使用路由算法算出最佳路由填入路由表的每一个表项

路由算法的分类

链路费用(路径代价)即路由器的跳数

分层次的路由选择协议

产生原因:

  1. 因特网的规模很大。如果让所有的路由器都知道所有的网络如何到达,每个路由器的路由表都会异常庞大,处理起来很耗时
  2. 许多单位不想让外界知道自己的路由选择协议,但还是想连入因特网

将整个因特网分成许多自治系统AS,AS外部和内部互相看不到使用的协议

网关≈路由器

RIP协议与距离路由算法

RIP和OSPF使用的路由算法不同(RIP —— 距离向量路由算法,OSPF —— 链路状态路由算法),适用的网络大小不同(RIP —— 较小网络,OSPF —— 较大网络)

RIP协议

直接交付:路由器和目的网络直接相连

RIP协议和谁交换?多久交换一次?交换什么?

距离向量算法

之所以要替换是因为路由表的更新要以最新消息为准

练习1:

练习2:

RIP协议的报文格式

不需要记忆报文的格式以及相应字段。只需要注意到RIP是应用层协议,封装好的RIP报文塞到UDP数据报中传送,并且一个报文最多可以传送25条路由表项信息

RIP协议好消息传得快,坏消息传得慢

RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,”慢收敛“

OSPF协议及链路状态算法

OSPF协议

链路状态协议≈链路状态算法

注意这里链路的度量/代价和之前讲的距离向量不一样,不是跳数

链路状态路由算法

OSPF区域

主干区域的标识符规定为0.0.0.0,负责连通其他下层区域

主干区域当中的路由器都是主干路由器,上图中R3,R4,R7R_3,R_4,R_7R3​,R4​,R7​既是区域边界路由器也是主干路由器

采用分层次划分区域的方法虽然使得交换信息的种类增多,同时使OSPF协议更加复杂,但这样可以使得每个区域内部交换路由信息的通信量大大减小,因而OSPF协议能够适用于规模较大的自治系统

OSPF分组

考纲上OSPF是网络层协议(也有人说是传输层协议,因为相当于是传输层的数据单元放到网络层的数据部分进行封装)

OSPF其他特点

可以看这个视频https://www.bilibili.com/video/BV1YV41127U5作为补充

BGP协议

BGP协议

配置BGP时,每个AS的管理员都要选择至少一个路由器作为AS的BGP发言人。一般来说两个BGP发言人都是通过一个共享的网络连接在一起。BGP发言人往往是BGP边界路由器

BGP发言人既使用BGP协议,也使用AS内部使用的内部网关协议。它既要清楚到达其他AS内的子网应该经过哪几个AS,同时也要清楚外来分组在AS内下一跳应该走哪里

BGP协议交换信息的过程

上图即是一个BGP发言人构造出的树形结构的AS连通图

BGP协议报文格式

BGP协议特点

BGP-4的四种报文

UPDATE最常用

连接指TCP连接

三种路由协议比较:

IP数据报格式

TCP/IP协议栈

ARP协议为IP协议服务。IP协议也要为ICMP,IGMP两个协议服务

IP数据报格式

  • 版本:IPv4 / IPv6?

  • 首部长度:单位是4B(4字节),最小为5

  • 区分服务:指示期望获得哪种类型的服务

    比如想要优先发送某数据报,要强调数据报的优先级就在这进行规定。

    在实际应用中很少用

  • 总长度:占16bit,单位为1B,表明整个IP数据报的长度

    总长度的最大值为216−1=65535B2^{16}-1=65535B216−1=65535B。但实际上不会达到,因为长度过大就要进行分片以满足数据链路层MTU的要求

  • 标识、标志、片偏移:与IP数据报的分片有关

  • 生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃

  • 协议:数据部分的协议

  • 首部检验和:只检验首部

    使用二进制求和方法检验,具体不要求

    数据报每经过一个路由器,路由器都要重新计算首部检验和,因为一些字段(如生存时间、标志、片偏移等)都可能发生变化,需要通过首部检验和检验发生变化之后IP数据报是否出错,如果出错就丢弃

  • 源地址和目的地址:32位

  • 可选字段:0∼40B0\sim40B0∼40B,用来支持排错、测量以及安全等措施

  • 填充:全0,把首部补成4B的整数倍

IP数据报分片

最大传送单元MTU

MTU不算头尾

过长但是IP数据报不同意分片则无法往下传递,就会返回ICMP差错报文

IP数据报格式补充

只有DF=0,MF才有意义

相对位置指距原数据报数据部分开始位置有多远

例题:

原数据报数据部分的第一个字节称之为0字节,后面依次是1字节、2字节 …

IPv4地址

IP地址

并不是一个IP地址就标识一个主机,一个主机可以有很多个接口(比如分别用于有线上网的有线接口和无线上网的无线接口)。路由器可以连接很多个主机和路由器,这样一个路由器就会有很多个接口,每一个接口都会分配一个唯一的IP地址

IP编址的历史阶段

分类的IP地址 →\to→ 子网的划分 →\to→ 构成超网(无分类编址方法)

互联网中的IP地址

橘色区域都是路由器的一个接口所连接的一些主机以及链路层设备(如网桥)构成的一个局域网,每个局域网也会用一个主机号全0的IP地址来标识。同属一局域网范围的主机以及设备IP地址网络号相同,主机号不同

绿色区域称之为无编号网络/无名网络,之所以叫网络是因为这个网络当中有IP地址,但是这个网络是由一段连线构成的

分类的IP地址

特殊IP地址

这一系列IP地址不能用于标识主机或者路由器的具体接口,无法分配给主机

网络号全0,主机号全0:表示本网范围内的这台主机,如果一台主机在发送分组时不清楚自己的IP地址就填上全0

网络号全0,主机号特定:全0网络号表示本网络

网络号全1,主机号全1:不可以标识某一个主机或者路由器的接口,只能作为目的地址使用,向本网内的所有主机发送广播分组。路由器隔离广播域不转发分组

拥有环回地址的数据报永远离开主机,不会进入到网络当中

私有地址

把这些地址放到互联网上是无效的,路由器不认。这些地址只适用于在内部网络当中使用,比如一个学校一个单位的内部网络使用这些地址

内部IP地址和外部进行通信需要借助NAT技术

网段个数指可以分配多少个网络号

27−22^7-227−2:网络号全0表示本网络,网络号127表示环回地址,均不能使用

224−22^{24}-2224−2:主机号全1表示广播地址,主机号全0和全1均不能使用

网络地址转换NAT

私有IP地址/本地IP地址

只可以在本地网、专用网当中使用,在外网、因特网当中是无效的

广域网当中的路由器以及其他的主机无法识别这些IP地址,路由器对目的地址是私有IP地址的数据报一律不进行转发

本地IP地址跟因特网上的主机进行通信需要NAT技术

地址转换NAT

WAN端:广域网端,外网端

LAN端:局域网端,内网端,本地网端

所有使用本地地址的主机在与外界通信时都要经历NAT路由器的地址转换

这些主机如果要把自己的数据发到网上去就要用NAT路由器的外部全球IP地址,要给本地网当中的主机发送数据IP数据报当中的目的地址也填NAT路由器的外部全球IP地址,由NAT路由器再分发给具体的主机

子网划分和子网掩码

子网划分

子网号可以1位都没有,但是至少要留2位作为主机号分配给主机

当从外部发送IP分组给本单位某一个子网的某一台主机时,路由器需要从收到的IP分组当中提取出目的IP地址,进而根据目的IP地址判断是应该发给本单位的哪个子网

子网掩码

例题1:

同样的IP地址和不同子网掩码可以相与得出相同的网络地址,但是这几种掩码所达到的效果不同,它们各自子网号和主机号所占的位数不一样,可以划分的子网个数以及每一个子网当中可以使用的最大主机数也不同

例题2:

使用子网时分组的转发

直接交付:直接给路由器所连的一个子网

间接交付:路由器所连的网络当中并不存在目的地址,需要再转给别的路由器

直接交付用目的地址和各个子网的子网掩码相与,看结果是否和某个子网相对应,是则转发给这个子网

检测路径用目的地址和路由表当中每一行的子网掩码相与,看结果是否和某个目的网络地址相对应,是则按该行规定的下一条地址走

默认路由的IP地址和对应子网掩码均为全0,通常是局域网当中的一个路由器,默认路由会发给另一个路由器再循环以上步骤

无分类编址CIDR

无分类编址CIDR

CIDR地址块是主机号全0的最小地址,表示本网络

构成超网

路由表当中有几个路由都走的同一个接口就可以对这几个目的网络地址进行聚合

206.1.0.0/17 和 206.1.128.0/17 聚合后得到206.1.0.0/16

例题:

最长前缀匹配

对于各个单位都分了地址块,学校的地址块由各个系进行路由聚合得到

每个系下面可以继续再分,将网络前缀变长

通过最长前缀匹配就可以将分组直接送达目标系而不让其他系和学校收到

例题:

所有路由表的目的网络当中,没有任何一个目的网络和分组的目的地址相匹配就走默认路由,默认路由接下来会交付给另一个路由器

ARP协议

发送数据的过程

主机1向主机3发送文件,由于二者处于同一网络,链路层封装时目的MAC地址应填主机3的MAC地址

每一个主机和路由器都会有ARP高速缓存,存同一局域网内部主机和路由器连接该局域网端口的IP地址与MAC地址的映射

如果缓存中并没有主机3的IP地址与MAC地址映射,就需要使用ARP协议,ARP协议通过接收方的IP地址查询其MAC地址。首先广播ARP请求分组,1号主机会发送数据帧,该数据帧的目的MAC地址填全1代表在局域网内进行广播的帧,该帧经过交换机时会从所有端口转发出去,主机2和3、路由器的这个端口都会收到

收到后只有主机3会响应,主机3返回单播ARP响应分组,内部包括主机3的MAC地址

若源主机和目的主机不在一个局域网内部,如主机1要和主机5通信时同样使用ARP协议,只不过MAC地址和之前有差别。链路层封装时主机1用自己的子网掩码和目的IP地址相与发现不在同一网络就会查询默认网关IP6的MAC地址MAC6填入目的MAC地址

主机和路由器端口才有的MAC地址,交换机没有MAC地址

默认网关就是与外界沟通的路由器,是局域网连入因特网的关口

传输到路由器进行数据封装和解封装时源IP地址和目的IP地址不变,但由于到了一个新的网络内,源MAC地址和目的MAC地址会改变

如果考虑NAT,IP地址也可能发生改变

当然这里两个路由器间是点对点式通信,应使用PPP协议,PPP协议中目的MAC地址为全1

ARP协议

数据最后要到达一个局域网内部,局域网内部只看得懂MAC地址

例题:

其中的路由器可能会连着很多个路由器和主机,不一定是点对点通信。这里就默认它都是要使用一次ARP协议

ARP协议因为结合了IP地址和MAC地址,是处于链路层和网络层中间的协议,但是现在主要被划分成网络层协议,它给IP协议提供服务

DHCP协议

主机如何获得IP地址?

静态配置 —— 如学校机房内每一台主机都由管理员分配一个固定IP地址

默认网关通常指的是一个路由器的一个接口的IP地址。只有通过默认网关局域网内部的主机才能够跟外界进行通信

DHCP服务器

即插即用 —— 只要设备进入DHCP服务器所管辖的局域网内,就可以被动态地分配一个IP地址

地址重用 —— 每个DHCP服务器都有一个IP地址池,主机进入局域网中被分配IP地址,等离开后DHCP服务器可以把该IP地址分配给新的主机

在用地址续租 —— 通常DHCP动态分配地址是有时间性的,这段可以使用IP地址的时期叫租用期,过后可以重新向DHCP服务器请求一个IP地址或者续租

所有有地址的服务器都可以发送DHCP提供报文,广播DHCP请求报文就是为了告知其他DHCP服务器可以收回刚刚分配的IP地址

ICMP协议

为了更有效地转发IP数据报和提高交付成功的机会

网际控制报文协议ICMP

代码字段是为了进一步区分某种类型当中一些不同的情况

检验和字段用来检验整个ICMP报文

ICMP差错报告报文

不应发送ICMP差错报文的情况

ICMP询问报文

ICMP的应用

PING::测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

源主机和目的主机之间有多个路由器,源主机会向目的主机发送一连串TTL依次被设置为1,2,… 的数据报,链路上的路由器会将TTL减为0的数据报丢弃再返回给源主机ICMP时间超过差错报告报文

IP组播

IP数据报的三种传输方式

单播IP地址就是之前讲的A、B、C类里经常使用的一些IP地址

单播 —— 源地址和目的地址均为单播IP地址

广播 —— 源地址为单播IP地址,目的地址为全1的广播地址。只要一个IP数据报目的地址为全1,它所对应的MAC地址也是全1,这样的数据报会发给局域网内的全部主机,会从交换机的所有端口转发出去

组播 —— 广播不管用户需求,组播则只会给有相同需求的一个组播组内的主机发送相同的数据报。比如看主播直播、腾讯会议时

在同一个物理网络 —— 在同一局域网内

组播路由器既可以运行组播协议也可以运行单播协议

IP组播地址

有些D类地址已经被指派了永久组地址

对IP组播进行分类,一种是只能在本局域网内进行的硬件组播,一种是没有进入局域网在因特网范围内的组播。现在大部分主机都是通过连在局域网然后再连入因特网,所以最后通过因特网范围内组播之后还是要进入到局域网内的硬件组播

硬件组播

如果现在发来一个单播数据报,进入局域网后看目标MAC地址决定应该交付给哪个主机。同样在硬件组播也需要根据MAC地址找到可以接收组播数据报的主机

如果现在发来一个广播数据报,进入局域网后看到全1的目标MAC地址就会把数据报发给局域网中的所有主机,不管有没有交换机

之所以要过滤是为了要解决地址中这5位不一样,但最低23位一样的情况。此时会导致不同组播组但是映射得到的MAC地址相同

IGMP协议和组播路由选择协议是因特网范围内组播要使用的协议,它们都使用IP数据报传输报文,都是网络层协议

网际组管理协议IGMP

一个主机的多个进程都可以有对应的组播IP地址

加入组播组的几台主机的组播IP地址是226.15.37.123。135.27.74.52,130.12.14.56这些是主机本身就有的全球唯一的IP地址,要注意区分

每一个路由器通过使用IGMP协议就可以判断接收到组播组时是否要给局域网当中的主机

IGMP协议不知道局域网当中组播组的成员个数,同时也不知道这些成员在哪些网络上面,它只能让路由器知道是否有主机参加或者退出了组播组

IGMP工作的两个阶段

Round1:路由器以及同属于组播组的成员都会收到报文

Round2:探询是在发送IGMP询问报文。其他主机只要监听到有一台主机先响应就不需要再发送响应

组播路由选择协议

协议无关 —— 虽然在建立转发树时使用单播数据报和远程路由器联系,但是并不要求使用相同的单播路由选择协议

稀疏/密集 —— 一个组播组的主机间离的远近

IPv6

IPv6产生原因

IPv6数据报格式

下一个首部字段 —— 假如有一个IP数据报除了基本首部外还有若干个扩展首部,每个首部内都有下一个首部字段,指向下一个扩展首部,最后一个扩展首部指向数据部分

和IPv4的区别

IPv6地址表示形式

IPv6基本地址类型

多播 —— 一台主机要跟多播组内的所有主机进行通信,把多播地址放入IPv6数据报的目的地址字段。IPv6并没有使用IPv4的广播地址,因为多播地址可以包括广播地址,IPv4当中的广播发给本局域网当中的所有节点,对应于IPv6可以把广播想象成一组多播组当中的所有主机

任播 —— 是IPv6独有一种的地址。假如一台主机IP数据报当中封装的目的地址是任播地址,它会给任播组内的一台主机发送数据报,通常是离它最近的一台

IPv6向IPv4过渡的策略

上图中不同的路由器使用不同版本的IP协议,使用IPv4协议的路由器收到IPv6数据报时会将其作为数据报封装到一个IPv4首部的数据报当中进行传输,进入IPv6网络时再去掉首部

移动IP

QQ依据IP登录,没有在你开通手机号的地区登录就会因为IP地址发生变化而显示异地登录提醒

移动IP相关概念

归属代理和外部代理都可以是一个路由器

移动IP通信过程

转交地址的获得有两种形式,被动获得和主动获得

被动获得:外部代理会在外部网络内广播ICMP报文,内部包含转交地址

主动获得:移动结点主动发送广播报文获得转交地址

注册之后,发给移动结点的数据报到达归属代理都会被封装,并且以隧道的形式发送给外部代理,外部代理再根据永久地址发送给移动结点

网络层设备

路由器

转发:把分组从一个输入端口转发到另一个输出端口,在路由器内部

路由选择:在路由之间选择一个合适的路径把数据从源主机发送到目的主机,在路由器外部

输入端口对线路上收到的分组的处理

输出端口对交换结构传送来的分组发送到线路

三层设备区别

对于任何层次的设备,都可以互联它所在的层次以及以下层次不同协议的网段 ×

集线器是直通式设备,来什么就发什么

交换机的每一个端口都是一个冲突域

路由表与路由转发

转发表由路由表得来,要结合主机的一些具体信息确定输出端口

某些MAC地址可以是下一跳以太网的地址

SDN的基本概念

路由器功能:转发&路由选择

数据平面对应转发过程,控制平面对应路由选择过程

数据平面

控制平面(传统方法/每路由器法)

控制平面和数据平面都在一个路由器内进行

控制平面(SDN方法:Software-Defined Networking)

数据平面和传统方法一样,控制平面从路由器物理上分离

这里的交换器其实指的是路由器

控制平面中的路由选择处理器

SDN控制平面

SDN控制器的三个层次

例题:

计算机网络笔记(王道考研) 第四章:网络层相关推荐

  1. 计算机网络知识点总结(第四章 网络层)

    基于计算机网络(第7版)谢希仁编著. 第四章 网络层 网络层提供两种服务: 面向连接的虚电路服务.特点:保证服务质量,可靠 无连接的数据报服务.特点:"尽最大努力交付",不保证质量 ...

  2. 04741计算机网络原理2018年版-第四章 网络层 知识要点

    知识点总结 一.网络层服务 标记: 1. 网络层服务 网络层介于传输层和数据链路层之间,传输层提供端到端的进程间通信服务,数据链路层的功能是实现物理链路直接相连的两个节点之间的数据帧传输服务,网络层关 ...

  3. 【计算机网络】知识点整理 第四章 网络层(王道考研视频学习记录)

    网络层 4.1 4.1.1功能概述 4.1.2 电路交换.报文交换与分组交换 4.1.3 数据报与虚电路 4.2 路由算法与路由协议概述 4.3 4.3.1 IP 数据报格式 4.3.2 IP数据报分 ...

  4. 王道考研计算机网络笔记,王道考研-操作系统整理笔记.pdf

    Chapter One 操作系统概述 操作系统 概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织和调度计算 机的⼯作和资源分配,是最基本的系统软件. 特征:并发.共享(两个最基本 ...

  5. 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层 第四章 网络层 4.3划分子网和构造超网 p134 4.3.1划分子网 4.3.2使用子网时分组的转发 4.3.3无分类编址CIDR(构建超网) ...

  6. (考研湖科大教书匠计算机网络)第四章网络层-第五节:静态路由配置及其可能产生的路由环路问题

    获取pdf:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...

  7. 计算机网络学习笔记——第四章 网络层(上)

    第四章 网络层(上) 一.网络层功能 网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据报. 功能一:路由选择与分组转发 功能二:异构网络互联 功能三: ...

  8. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算1

    内容基于中国大学MOOC的2023考研计算机组成原理课程所做的笔记. 感谢LY,他帮我做了一部分笔记.由于听的时间不一样,第四章前的内容看起来可能稍显啰嗦,后面会记得简略一些. 西电的计算机组织与体系 ...

  9. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算2

    内容基于中国大学MOOC的2023考研计算机组成原理课程所做的笔记. 感谢LY,他帮我做了一部分笔记.由于听的时间不一样,第四章前的内容看起来可能稍显啰嗦,后面会记得简略一些. 西电的计算机组织与体系 ...

  10. 计算机网络 华南理工大学期末重点 第四章 网络层 谢希仁

    计算机网络 华南理工大学期末重点 第四章 网路层 <计算机网络(第七版)>谢希仁 前言 笔者是自动化专业,以下是大二上学期期末时,整理的一些复习笔记,既一些常考点,这是第四章<网络层 ...

最新文章

  1. python怎么实现检验_[python skill]利用python实现假设性检验方法
  2. 算法(16)-leetcode-explore-learn-数据结构-二叉树总结
  3. .net解决Xss攻击
  4. 想要酷炫大气的网页设计?这样做超吸睛
  5. AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238
  6. JAVA语言程序设计(基础篇)第四章——课后习题解
  7. kafka sqs 与_RabbitMQ和Kafka的比较
  8. 3.微服务设计 --- 如何建模服务
  9. 安卓自定义列表dialog
  10. java代码绩点计算器_怎么用java写一个gpa计算器?
  11. 如何用计算机给机顶盒刷机,如何利用sd卡刷机 电视盒子通用刷机方法
  12. Apache Impala 3.4.0 —— Admission Control and Query Queuing(动态资源池)实践
  13. 斗图吗?教你用Python来制作表情包
  14. 【Data truncation: Data too long for column ‘XXX at row 1 报错】
  15. go 条件变量简介 sync.Cond
  16. 结构体 — C 语言中不定长结构体的使用
  17. 超硬核!操作系统学霸笔记,考试复习面试全靠它
  18. ip route 命令的作用详解
  19. CardView的具体使用方法
  20. OpenCvSharp人脸识别系统(视频中的人脸)

热门文章

  1. MQL5教程1 基础数据类型
  2. 魏文王问扁鹊的注释_求《魏文王问扁鹊》的文言文版
  3. 搭建数据指标体系1|概览
  4. 洽洽陈先保,六旬老汉复出,他还能折腾多少?
  5. Laravel报错:ErrorException (E_ERROR) Route [*] not defined.
  6. 推荐一位好友,是他让我破了戒!
  7. Unity动画系统详解4:如何用代码控制动画?
  8. 新企业文化—重获工作场所的活力 学习笔记一 简单的介绍
  9. win10系统如何找回删除文件?教你五种恢复方法
  10. 微信小程序模板发送,openid获取,以及api.weixin.qq.com不在合法域名内解决方法