本篇文章字数大约1W+,因为包含大量的概念,可能比较难理解,我尽量使用图和例子结合的方式,让大家容易理解.主要内容是关于计算机网络中的网络层的最详细知识,从网络层概念出发,讨论网路层的功能和具体实现,以及相关的协议.
往期相关文章
:
学计算机网络之前了解这些,学习效率不提升过来打我
计算机网络物理层第一章物理层详解
吐血码万字长文搞懂了数据链路层
如何使数据通过网络核心(路由器)从源主机到目的主机呢?
答:数据交换
现在我们常用的数据交换方式是:通过交换设备的互联来实现数据的传递和交流
能够避免大量的使用链路直接相连的复杂性,也避免了只有一台交换设备对交换设备端口和吞吐量的要求
电路交换阶段:
建立连接(呼叫/电路建立)----->通信----->释放连接(拆除电路)
特点
在通信过程中独占资源,意思就是只要连接建立在通信过程中,并且没有释放连接,那么其他人是没有办法抢占资源的.
电路交换的优点
电路交换的缺点
报文
:源应用发送的信息整体,比如说源主机应用发送的是一个PFD文件,那么这个PDF文件就是信息的整体,也就是报文
在报文交换过程中,可以选择多种路径(那个路径空闲,就有可能选择它),然后在发送给目的主机.
优点:
缺点:
分组交换和报文交换都使用了存储转发的思想,但是分组交换转发的是分组
**分组:**把大的数据块分割成小的数据块(也就是把之前的报文,分割成小块)
这里要注意的是:分组交换中,传输的分组是并行传输的,即分组可以同时在链路上传输,而报文交换是整个报文进行传输的.
优点
缺点:
一个例题来看看报文交换方式和分组交换方式
对于报文交换:
10000 b i t 1000 b i t / s = 10 s 又 题 中 要 求 最 少 的 时 间 , 因 此 只 经 过 2 个 交 换 设 备 而 且 题 中 没 有 传 播 时 延 , 因 此 不 考 虑 传 播 时 延 10 s × 3 = 30 s \frac{10000bit}{1000bit/s}=10s\\ 又题中要求最少的时间,因此只经过2个交换设备\\ 而且题中没有传播时延,因此不考虑传播时延 \\10s×3 =3 0s 1000bit/s10000bit=10s又题中要求最少的时间,因此只经过2个交换设备而且题中没有传播时延,因此不考虑传播时延10s×3=30s
对于分组交换:
10 b i t 1000 b i t / s = 0.01 s 因 为 在 分 组 交 换 中 , 分 组 是 并 行 传 输 的 . 因 此 10000 b i t 1000 b i t / s = 10 s 0.01 s × 2 = 0.02 s 10 s + 0.02 s = 10.02 s \\\frac{10bit}{1000bit/s}=0.01s\\ 因为在分组交换中,分组是并行传输的.因此\\ \frac{10000bit}{1000bit/s}=10s 0.01s×2=0.02s\\ 10s+0.02s=10.02s 1000bit/s10bit=0.01s因为在分组交换中,分组是并行传输的.因此1000bit/s10000bit=10s0.01s×2=0.02s10s+0.02s=10.02s
计算题中要注意的点:
数据报方式为网路层提供无连接服务
虚电路方式为网路层提供连接服务
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接.
这里穿插集中传输单元名词解析
应用层 | 报文 |
---|---|
传输层 | 报文段 |
网络层 | IP数据报,分组 |
数据链路层 | 帧 |
物流层 | 比特流 |
数据报方式
虚电路方式
数据报和虚电路总结
在网络层协议中ARP协议处于最下层,他要为IP协议服务,而IP协议又要为ICMP .IGMP协议服务
链路层数据帧可封装数据的上限
以太网的MTU是1500字节
如果所传送的数据报长度超过某链路的MTU值?
分片
结合之前的IP数据报格式
意思就是实际的长度值,等于原长度的值×单位
根据片偏移可得:
除了最后一个分片,每个分片长度一定是8B的整数倍
IP数据报分片例题
IP地址
ip地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符
就是把很大的IP地址空间分成几类
IP地址不仅可以标识一台主机,也可以标识主机所连接的网络.IP地址是标识的是应用的端口
特殊的IP地址
私有的IP地址
分类的IP地址规则
网络地址转换:在专用网(如私有地址的网络校园网)连接到因特网的路由器上安装NAT软件,安装NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址
分类IP地址的缺点
从而诞生了子网的划分
对最基本的编址方法的改进
注意:
子网掩码是如何分配和识别外界IP地址的
做一个子网掩码来识别IP地址获取真实在内网中IP地址(也就是划分子网后的)的例题
已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址
分 析 : 要 求 网 络 地 址 , 我 们 要 将 I P 地 址 和 子 网 掩 码 逐 位 相 与 又 : 255 在 二 进 制 中 是 全 1 的 , 所 以 他 和 141 相 与 的 结 果 还 是 141 又 : 0 在 二 进 制 中 是 全 0 的 , 所 以 他 和 24 相 与 的 结 果 是 全 0 的 就 是 0 所 以 我 们 真 实 要 求 的 就 是 72 和 192 相 与 的 结 果 01001000 11000000 结 果 为 01000000 = 64 因 此 最 终 的 网 络 地 址 是 : 141.14.64.0 分析:要求网络地址,我们要将IP地址和子网掩码逐位相与\\ 又:255在二进制中是全1的,所以他和141相与的结果还是141\\ 又:0在二进制中是全0的,所以他和24相与的结果是全0的就是0\\ 所以我们真实要求的就是72和192相与的结果\\ \frac{01001000}{11000000}结果为01000000=64\\ 因此最终的网络地址是:141.14.64.0 分析:要求网络地址,我们要将IP地址和子网掩码逐位相与又:255在二进制中是全1的,所以他和141相与的结果还是141又:0在二进制中是全0的,所以他和24相与的结果是全0的就是0所以我们真实要求的就是72和192相与的结果1100000001001000结果为01000000=64因此最终的网络地址是:141.14.64.0
要记住常用的二进制和十进制之间的对应
要注意:不同的子网掩码对于同一IP地址可能获取相同的网络地址,但是也有有区别的,区别就是不同的子网掩码,就会主机位和最大使用的主机数是不同的.
子网掩码练习
子网对分组的转发过程
比较新的无分类的编址方法
练习球最小地址和最大地址
192.199.170.82/27的最大网络地址和最小网络地址
2 5 = 32 表 明 了 这 个 网 络 地 址 最 多 的 主 机 数 为 32 个 主 机 因 为 27 位 来 表 示 网 络 前 缀 那 么 192.199.170 这 三 个 字 节 24 位 是 可 以 不 动 的 那 么 先 写 出 82 的 二 进 制 和 十 进 制 转 换 : 01010010 , 要 给 网 络 前 缀 在 包 含 前 面 三 位 , 那 么 剩 下 的 10010 作 为 主 机 号 最 小 地 址 为 主 机 号 全 为 0 , 最 大 地 址 为 主 机 号 全 为 1 那 么 010 后 面 00000 , 就 是 64 , 那 么 最 小 地 址 为 192.199.170.64 那 么 010 后 面 11111 , 就 是 95 , 那 么 最 小 地 址 为 192.199.170.95 2^5=32表明了这个网络地址最多的主机数为32个主机\\ 因为27位来表示网络前缀\\ 那么192.199.170这三个字节24位是可以不动的\\ 那么先写出82的二进制和十进制转换:01010010,要给网络前缀在包含前面三位,那么剩下的10010作为主机号\\ 最小地址为主机号全为0,最大地址为主机号全为1\\ 那么010 后面00000,就是64,那么最小地址为192.199.170.64\\ 那么010 后面11111,就是95,那么最小地址为192.199.170.95 25=32表明了这个网络地址最多的主机数为32个主机因为27位来表示网络前缀那么192.199.170这三个字节24位是可以不动的那么先写出82的二进制和十进制转换:01010010,要给网络前缀在包含前面三位,那么剩下的10010作为主机号最小地址为主机号全为0,最大地址为主机号全为1那么010后面00000,就是64,那么最小地址为192.199.170.64那么010后面11111,就是95,那么最小地址为192.199.170.95
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合
构成超网和划分子网可以说是一个相逆的过程.它是把多个较小的子网组合成一个较大的网络
方法:将网络前缀缩短
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由.前缀越长,地址块越小,路由越具体
在计算机中发送数据的过程
当数据在同一局域网中进行传输时:(同网段)
当数据报分组分片传输到数据链路层,我们需要给数据加头MAC1(自身的物理地址),MAC3(目的机的物理地址)
如果在主机1中没有找到MAC3的物理地址(会在主机1的ARP高速缓存中进行查找),那么它会发送广播来请求主机3的物理地址MAC3,然后主机3再响应给主机1它的物理地址
然后在数据链路层中加尾部FCS后封装成帧.交由下一层传输.
当数据在不是同一局域网中进行传输时:(不同网段)
需要注意的点:
总结ARP协议
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
ARP协议:完成主机或路由器IP地址到MAC地址的映射.[解决吓一跳走哪的问题]
APR协议习题
主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议?
首 先 , A R P 协 议 解 决 的 问 题 就 是 下 一 跳 去 哪 的 问 题 , 因 此 有 几 次 转 跳 就 使 用 几 次 A R P 协 议 因 此 答 案 是 6 , 可 以 画 草 图 可 以 更 加 的 明 晰 . 首先,ARP协议解决的问题就是下一跳去哪的问题,因此有几次转跳就使用几次ARP协议\\ 因此答案是6,可以画草图可以更加的明晰. 首先,ARP协议解决的问题就是下一跳去哪的问题,因此有几次转跳就使用几次ARP协议因此答案是6,可以画草图可以更加的明晰.
动态主机配置协议DHCP协议是应用层协议,使用客户/服务器方式,客户端和服务器端通过广播方式进行交互,基于UDP
和动态主机配置相反的是静态的分配IP地址,比如在机房上课时,管理员给我们每台机器静态的分配IP地址.
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址子网掩码.默认网关.DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租
DHCP协议的工作流程
从TCP/IP协议栈的结构我们可以看出ICMP协议是网络层和传输层之间的协议,起到了桥梁的作用,其作用是为了更有效地转发IP数据报和提高交付成功的机会…
ICMP协议支持:
ICMP协议的报文可分为两种
终点不可达
:当路由器或主机不能交付数据报时就向源点发送终点不可达报文.源点抑制
:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送数据速率放慢时间超过
:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要发送源点发送时间超过报文.当终点在预先规定的时间内收不到一个数据报的全部数据报片时,就把已经收到的数据报片都丢弃并向源点发送时间超过报文.(讲了两种情况)参数问题
:当路由器或目的主机收到的数据报的**首部中有的字段的值不正确,**就丢弃该数据报,并向源点发送参数问题报文.改变路由(重定向)
:路由器把改变路由报文发送给主机让主机知道下次应该把数据报发送给另外的路由器(可通过更好的路由).ICMP差错报告报文的数据格式
但是并不是任何出错的情况都应该发送一个差错报文的
不应该发送差错报文的情况
测试目的站是否可达以及了解其相关状态
用来测试时钟同步和测量时间
两种:
简单解释一下Traceroute的工作过程:
我们知道每个IP数据报都有TTL的值(代表了该数据报可以传送几个路由器),没经过一个路由器,那么TTL的值就会减1,直到TTL等于0时,这时数据报不能继续传送给下一个路由器,Traceroute就是当TTL等于0时,路由器会向源主机发送一个ICMP事假超过差错报告报文,里面就记录了该数据报从源点(源主机开始传输数据的路径)
为什么要有IPv6,
因为IPv4的编码方式已经让把编码的IP地址消耗殆尽了,再加上需求的增加.我们之前学了了CIDR和NAT技术延缓了IPv4消耗殆尽.
但是这种方式治标不治本,因此有了IPv6,就可以从根本上解决IP地址即将不够用的窘况.
QoS
:指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术.注意:其中加粗的是比较重要的知识,其余的作为了解.
一般形式:冒号十六进制记法
:BF2:AA12:0216:FEBC:BA5F:039A:2170
压缩形式:4BF2:0000:0000:0000:BA5F:039A:000A:2176
-------->4BF5:0:0:0:BA5F:39A:A:2176
选择分层次的路由选择协议的原因:
具体的实现:
RIP是一种分布式的基于距离向量
的路由选择协议,是因特网的协议标准,最大优点是简单.
RIP协议要求网络中每一个路由器都维护从它自己到其它每一个目的网络的唯一最佳距离记录(即一组距离).
就是在路由表中记录了自己到其它网络的路径(下一跳的地址)和距离
16表示网络不可达
.-------->因此RIP协议只适合规模比较小的网络那么这张路由表是怎么得出来的呢?
通过交换
RIP协议和谁交换?多久交换一次?交换什么?
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息.
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即"收敛"
现在知道了RIP协议是要交换路由表,并更新自己的路由表,那么路由表具体是怎么更新的?
要理解这个问题,我们要借助距离向量算法.
RIP报文:包含着路由表全部信息的报文信息
也就是说每个相邻的路由器之间交换的是RIP报文
距离向量算法的过程
距离向量法练习1
距离向量法练习2
B 的 向 量 ( 5 , 0 , 8 , 12 , 6 , 2 ) 指 的 是 B 到 A , B , C , D , E , F 的 距 离 分 别 为 A : 5 , B : 0 , C : 8 , D : 12 , E : 6 , F : 2. 其 他 向 量 同 理 C 到 B , D 和 E 的 延 迟 分 别 是 6 , 3 , 5 表 示 的 是 : C 到 B , D , E 之 间 分 别 有 6 跳 , 3 跳 , 5 跳 因 此 可 得 : C 到 B : ( 11 ( 选 中 ) , 6 ( 选 中 ) , 14 ( 0 ) , 18 , 12 , 8 ( 选 中 ) ) 相 当 于 给 C 到 B 每 个 向 量 都 加 上 6 C 到 D : ( 19 , 15 , 9 ( 0 ) , 3 ( 选 中 ) , 12 , 13 ) C 到 E : ( 12 , 11 , 8 ( 0 ) , 14 , 5 ( 选 中 ) , 9 ) 又 因 为 C 到 C 的 距 离 为 0 , 那 么 三 组 向 量 中 的 第 三 个 值 可 以 改 为 0 然 后 在 三 组 向 量 中 选 择 较 小 的 距 离 , 就 可 得 出 C 到 所 有 结 点 的 最 短 路 径 最 终 可 得 结 果 ( 11 , 6 , 0 , 3 , 5 , 8 ) B的向量(5,0,8,12,6,2)指的是B到A,B,C,D,E,F的距离\\分别为A:5,B:0,C:8,D:12,E:6,F:2. \\ 其他向量同理 \\C到B,D和E的延迟分别是6,3,5表示的是:\\ C到B,D,E之间分别有6跳,3跳,5跳\\ 因此可得: C到B:(11(选中),6(选中),14(0),18,12,8(选中))相当于给C到B每个向量都加上6 \\C到D:(19,15,9(0),3(选中),12,13) \\C到E:(12,11,8(0),14,5(选中),9) \\又因为C到C的距离为0,那么三组向量中的第三个值可以改为0\\ 然后在三组向量中选择较小的距离,就可得出C到所有结点的最短路径\\ 最终可得结果(11,6,0,3,5,8) B的向量(5,0,8,12,6,2)指的是B到A,B,C,D,E,F的距离分别为A:5,B:0,C:8,D:12,E:6,F:2.其他向量同理C到B,D和E的延迟分别是6,3,5表示的是:C到B,D,E之间分别有6跳,3跳,5跳因此可得:C到B:(11(选中),6(选中),14(0),18,12,8(选中))相当于给C到B每个向量都加上6C到D:(19,15,9(0),3(选中),12,13)C到E:(12,11,8(0),14,5(选中),9)又因为C到C的距离为0,那么三组向量中的第三个值可以改为0然后在三组向量中选择较小的距离,就可得出C到所有结点的最短路径最终可得结果(11,6,0,3,5,8)
这一道题中延迟就是指C到B,D,E之间不是相邻的,要和第一题有所区别
RIP协议的报文格式
开方最短路径有限OSPF协议:"开放"标明OSPF协议不是受某一家厂商控制,而是公共发表的"最短路径优先"是因为使用了Dijksrtra提出的最短路径算法SPF
OSPF最主要的特征是使用分布式的链路状态协议
洪泛法
)广播
最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图
步骤:
只要一个路由器的链路状态发生变化
5.泛洪发送[LSU链路状态更新分组]进行更新
6.更新完毕后,其他站返回一个[LSAck链路状态确认分组]进行去人
7.使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径
BGP所要交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS.当BGP发言人互相交换了网络可达性的信息后,额BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由.
交换的信息就是:交换路径的一个向量,就是交换一组路径的信息.
BGP发言人交换路径向量:
自 治 系 统 A S 2 的 B G P 发 言 人 通 知 主 干 网 A S 1 的 B G P 发 言 人 : " 要 到 达 网 络 N 1. N 2 N 3 和 N 4 可 经 过 A S 2 " 自治系统AS_2的BGP发言人通知主干网AS_1的BGP发言人:\\"要到达网络N1.N2N3和N4可经过AS_2" 自治系统AS2的BGP发言人通知主干网AS1的BGP发言人:"要到达网络N1.N2N3和N4可经过AS2"
BGP发言人交换路径向量:
主 干 网 还 可 以 发 出 通 知 : " 要 到 达 网 络 N 5 , N 6 , N 7 可 沿 路 径 ( A S 1 , A S 3 ) " 主干网还可以发出通知:\\ "要到达网络N5,N6,N7可沿路径(AS_1,AS_3)" 主干网还可以发出通知:"要到达网络N5,N6,N7可沿路径(AS1,AS3)"
CIDR
,因此BGP的路由表也就应当包括目的网络前缀.下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列发生变化时更新有变化的部分
,这样做对节省网络带宽和减少路由器的处理开销都有好处.RIP
是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP``报文来交换路由信息.`OSPF
是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IPBGP
是一个外部网关协议,在不同的自知系统之间交换路由信息,由于网络环境复杂需要保证可靠传输,所以采用TCP
点对点
传输方式点对多点
传输方式(有选择的发送)那么在组播发送方式中发送数据包的过程中,我们怎么知道哪些主机时在同一组播组呢?
这就要了解IP组播地址
我们之前在发送数据给另一台主机时,目的地址填写的就是我们要发送的目的主机的IP地址,这个IP地址是在全球范围内都是唯一的IP地址,那么我们要实现的是发送给同一个组播组的所有的主机,那么就不能使用的是IP地址,不然仅仅会发送给这一台主机,而不是一个组播组的所有主机.
IP组播地址让源设备能够将分组发送给一组设备.属于多播组的设备将被分配有一个组播组IP地址(一群共同需求的主机的相同标识)
组播地址范围是224.0,0,0~239.255.255.255(D类地址),一个D类地址表示一个组播组,只能用作分组的目的地址
.源地址总是为单播地址
硬件组播解决的问题是在一个局域网内,对于一个IP数据报,应该把该数据报传送给哪些主机?
在单播中我们传输一个IP数据报,我们的数据报进入到局域网中,我们要根据MAC地址要确定该把数据报发送给谁
同样在组播中:
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧.组播MAC地址以十六进制值01-00-5E开头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的.
TCP/IP协议使用的以太网多播地址的范围是:**01-00-5E-00-00到01-00-5E-7F-FF-FF.
这两个协议就是我们讲的组播的分类中在因特网范围内组播(也就是局域网范围外组播)所使用的协议
IGMP协议和组播路由器相互合作
IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
IGMP在协议栈中的位置
ICMP和IGMP都使用IP数据报传递报文
组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员
目的:找出以源主机为根节点的组播转发树
构造树可以表面在路由器之间兜圈子
对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树.
移动IP要区分于我们之前通过DHCP协议获取的动态IP,动态IP当离开局域网的范围后就不能享受在局域网中的服务,而移动IP是可以的.
你出差时,只要登录到总公司的网络,就可以享受到在总公司的特权
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变
也就是说即使物理位置发生了改变,但是IP地址是不发生改变的,就可以实现跨越多个网段的功能
网络层的设备是路由器:路由器是一种具有对个输入端口和多个输出端口的专用计算机,其任务是转发分组.
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
层 | 代表物理设备 | 特点 | 能否隔离冲突域 | 能够隔离广播域 |
---|---|---|---|---|
网络层 | 路由器 | 可以互联两个不同网络层协议的网段 | √ | √ |
数据链路层 | 网桥 | 可以互联两个物理层和链路层不同的网段 | √ | × |
物理层 | 集线器 | 不能互联两个物理层不同的网段 | × | × |
路由表根据路由选择算法得出,主要用途是路由选择,总用软件来实现
由路由表就可以得到转发表
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现.转发表必须包含完成转发功能所必需的信息.在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射.
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
层 | 代表物理设备 | 特点 | 能否隔离冲突域 | 能够隔离广播域 |
---|---|---|---|---|
网络层 | 路由器 | 可以互联两个不同网络层协议的网段 | √ | √ |
数据链路层 | 网桥 | 可以互联两个物理层和链路层不同的网段 | √ | × |
物理层 | 集线器 | 不能互联两个物理层不同的网段 | × | × |
路由表根据路由选择算法得出,主要用途是路由选择,总用软件来实现
由路由表就可以得到转发表
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现.转发表必须包含完成转发功能所必需的信息.在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射.
我是一个
普通二本
的学生,可能写的有不周到之处,希望各位大佬指点.让我们一起努力,不过平庸的生活.
如果您感觉`我写的不错麻烦点个赞.如果有什么
问题
,可以留言我们一起探讨
如果有什么建议
,也可以留言给我,我会虚心的接受,
最后谢谢您
,看完了我的文章