计算机网络---网络层
文章目录
- 1. 网络层的功能
- 1.1 考频分析
- 1.2 全局概括
- 2. IPv4(重点)
- 2.1 IPv4分组
- 2.1.1 格式
- 2.1.2 一些问题
- 2.1.3 总结
- 2.2 IP地址(最初的分类方案)+ 整章串讲
- 2.2.1 最初分类方案
- 2.2.2 IP分组转发举例
- 2.3 子网划分 & 子网掩码
- 2.3.1 解题流程与技巧
- 2.3.2 训练一:H3 -> H6(同一子网内的两台主机)
- 2.3.2 训练二:H1 -> H3(不同子网内的两台主机)
- 2.3.3 训练三:H1 -> H7(采用子网划分技术的网络 -> 传统网络)
- 2.3.4 训练四:H7 -> H1(传统网络 -> 采用子网划分技术的网络)
- 2.3.5 训练五:主机H1发往Internet的某个IP数据报的传输(设目的地址=111.2.3.4)
- 2.4 无分类编制CIDR
- 2.4.1 定长子网划分 & 变长子网划分
- 2.4.2 真题训练 & 总结
- 2.5 路由聚合
- 2.5.1 概念
- 2.5.2 最长匹配原则
- 2.5.3 引入CIDR及路由聚合后的解题流程与技巧
- 2.6 网络地址转换NAT
- 2.6.1 要点总结
- 2.6.2 补充
- 2.6.3 训练一:手机1->手机2微信发文字
- 2.6.4 训练二:手机2->手机1微信发图片
- 2.6.5 训练三:电脑1->服务器请求网页数据
- 2.6.6 训练四:服务器->电脑1返回网页数据
- 2.6.7 扩展
- 2.7 地址解析协议ARP
- 2.7.1 要点总结
- 2.7.2 ARP工作原理
- 2.7.3 训练一:假设H3想给Internet发送IP数据报,分析ARP工作过程
- 2.7.4 训练二:基于训练一,假设有一个IP数据报从Internet->H3,分析ARP工作过程
- 2.7.5 训练三:假设H3想给166.1.150.1发送IP数据报,分析ARP工作过程
- 2.7.6 扩展
- 2.8 动态主机配置协议DHCP
- 2.8.1 要点总结
- 2.8.2 DHCP基本流程
- 2.8.3 训练:模拟主机新加入某个局域网(存在两台DHCP服务器)
- 2.9 ICMP网际控制报文协议
- 2.9.1 要点总结
- 2.9.2 自主模拟训练
- 3. 路由算法与路由协议
- 3.1 路由算法概览
- 3.2 距离-路由算法
- 3.3 链路状态路由算法
- 3.4 路由算法总结
- 3.5 分层次的路由协议
- 3.6 RIP路由协议
- 3.6.1 基本概念
- 3.6.2 RIP的工作过程示例
- (1)从路由器启动到收敛
- (2)动态适应网络拓扑变换
- (3)反映RIP的缺点
- (4)反映RIP的优点
- 3.7 OSPF协议
- 3.7.1 特点
- 3.7.2 基本原理
- 3.7.3 OSPF的分组类型
- 3.8 对比RIP和OSPF
- 4 IPv6地址(重点)
1. 网络层的功能
- 网络层为传输层提供服务,将传输层的数据封装成**“IP数据报”。网络中的路由器根据IP数据报首部中的源IP地址、目的IP地址进行“分组转发”**。因此,网络层实现了 “主机到主机” 的传输
- 数据链路层为网络层提供服务,将网络层的IP数据报(分组)封装成帧,传输给下一个相邻结点
1.1 考频分析
1.2 全局概括
注:
- 接入网络的每台主机至少拥有一个IP地址
- 通常,路由器的每个接口都需要分配一个IP地址(最新技术标准已经取消了这个强制要求)
2. IPv4(重点)
- IP协议(Internet Protocol,网际协议)是互联网的核心
- ARP协议用于查询同一网络中的<主机IP地址,MAC地址>之间的映射关系
- ICMP协议用于网络层实体之间相互通知“异常事件”
- IGMP协议用于实现IP组播
2.1 IPv4分组
2.1.1 格式
注意:
- 与长度有关的口诀 — — 418,首总偏
2.1.2 一些问题
重要概念:一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU),如以太网的MTU=1500B。如果一个IP数据报的总长度超出了下一段链路的MTU,就需要分片
强调:
- “分片”可能在源主机、或任何一个路由器中发生
- 各分片有可能乱序到达目的主机,只有目的主机才会对分片进行“重组”
- 对于片偏移来说,除了最后一个分片外,要求其他每个分片的数据部分的长度都是8B的整数倍
举例:
【2021统考真题】 若路由器向MTU = 800B 的链路转发一个总长度为 1580B 的IP数据报(首部长度为20B)时,进行了分片,且每个分片尽可能大,则第2个分片的总长度字段和MF标志位的值分别是(B)
A . 796,0
B . 796,1
C . 800,0
D . 800,1
解答:结合片偏移的特性,最大IP分片的数据部分长度为776B(776+20=796刚好没超过MTU的限制)。在总长度为1580B的IP数据报中,数据部分占1560B,1560/776=2.01…,需分成3片。故第2个分片的总长度字段为796,MF为1。
2.1.3 总结
2.2 IP地址(最初的分类方案)+ 整章串讲
2.2.1 最初分类方案
IP地址划分的历史:IPv4->子网划分->CIDR->NAT->IPv6。当初设计IP地址时并未考虑到如今网络的火爆性,只堪堪用了4B(共32位)来进行IP地址的标识,随着互联网的用户数激增,IP地址不够用的问题暴露出来了,于是就提出了很多的缓解方案(子网划分等),但终究是治标不治本,IP地址的使用还是趋于紧张,于是就出现了下一代因特网核心协议IPv6,其地址长度为16B(共128位),这是治本方案(2128目前来说怎么也用不完)。但IPv4向IPv6过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6系统能够向后兼容。IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。
2.2.2 IP分组转发举例
IP分组的转发举例说明(大体知道流程即可,下一节还会详细说明):
①初始
②H1 -> H6 & H1 -> H7
(1)H1 -> H6 因为是同一局域网内进行IP数据报的转发,不需要经过路由器的参与,由ARP协议进行地址解析后得到ARP表(IP地址到MAC地址的映射),再结合交换机的自学习能力,直接通过交换机查找交换表将IP数据报封装成帧,从对应MAC地址的端口进行转发出去,这里注意,H6与H5连接在一台集线器上,所以H5也能收到数据帧
(2)H1 -> H7 因为是不同的网络,需要路由器的参与,此时源主机通过ARP表得知并没有对应的IP地址表项,就将其封装成帧转发到某学校的路由器上,此时路由器查询路由表从B0端口进行转发(帧拆分成IP数据报从其首部得知目的地址),此时转发到某公司的路由器上,进入某公司的局域网,再查询ARP表,找到物理地址后进行转发到H7目的主机
③H1向网络200.1.1.x进行广播
类比②中(2)的例子,将数据报发到某公司路由器上时,此时路由器检测到IP数据报首部目的地址为广播地址,于是从C2端口将数据报封装成帧给广播出去,本局域网内所有主机都能收到该数据报
④H1使用<0,Y>的源地址形式(Y是本主机的主机号,这种形式表示本网络上的主机号为Y的主机)向H3发送数据报
由于源地址是设计成了<0,Y> 形式,这种形式是不可路由的特殊地址,所以路由器收到此类数据报会直接丢弃,所以不会经过路由器的转发参与,源主机也会查询IP数据报的源地址,发现是<0,Y>的形式,直接查询ARP表将其转发给H3
⑤H1 -> 本网络广播
目的地址32位全为1是特殊的IP地址,会向本网络所有主机进行广播,即本网络所有主机都能收到此IP数据报
⑥H1新加入网络,需进行IP地址的申请
<网络号全0,主机号全0>是主机刚加入网络还未获得IP地址,此时会进行DHCP协议向DHCP服务器请求IP地址
⑦网络号为127,用于环回自检
环回自检,用于本地软件环回测试
2.3 子网划分 & 子网掩码
2.3.1 解题流程与技巧
接下来的几个小节是基于2.3.1中这个使用了子网划分技术的学校网络为例子,并运用2.3.1的解题流程与技巧展开的
2.3.2 训练一:H3 -> H6(同一子网内的两台主机)
-
- 检查本机IP地址和目的IP地址的网络前缀是否相同(子网掩码“逐位与”),发现网络前缀相同,此时目的主机和本机属于同一个网络
-
- 本机通过ARP协议查询ARP表,找到目的主机的MAC地址,在本主机上将IP数据报封装成帧,并将帧经过交换机等中间结点发送给目的主机,注: ①若交换机中交换表为空,则会先记录H3的<MAC地址,转发端口>至交换机表项中,然后依次转发给其他除H3的所有端口,即H4,H5,H6都能收到数据帧,此时各主机通过将帧去头去尾,得到IP数据报,检查IP数据报首部的目的地址来接受,不检查MAC地址的目的地址是因为MAC数据帧是点到点的,每次封装都会变,而IP数据报是主机到主机的,一般传输过程不会变,检查完后只有H6接收;②若交换表稳定了(所有表项都存在),则直接查询交换表进行转发,发送给集线器的那个端口,由于集线器的存在,H5,H6都能收到数据帧,但依旧只有H6能够接收
-
- 各主机接收到帧,还会进行帧的校验,没有问题且检查MAC目的地址对的上后,就去头去尾上传网络层,然后会进行IP数据报的首部校验,没有问题就去检查IP数据报首部中的目的地址进行核验,只有对的上IP地址才接收,否则丢弃。后续讲解只会讲解不同之处,且以源主机,路由器,目的主机为主要切入点
2.3.2 训练二:H1 -> H3(不同子网内的两台主机)
-
- H1 -> H3发现本机IP地址与目的IP地址网络前缀不相同,通过ARP协议查询ARP表,找到默认网关(这里是路由器接口,但有时默认网关不一定会配置给路由器)的MAC地址,将IP数据报封装成帧,并将帧发给默认网关
-
- 路由器的某个接口收到IP数据报,首部校验后得到目的IP地址,然后查询“转发表”,与子网掩码“逐位与”后得到网络号,依次匹配转发表中的每一项,这里与第二项匹配成功,发现需跨网络传输
-
- 然后路由器会查询路由表,找到去往目的网络的下一跳路由器的IP地址(假设路由表收敛),同时路由器也是主机,也会通过ARP协议查询ARP表(直连路由器才可以互相用ARP协议找MAC地址)找对应IP地址映射的MAC地址,找到后再通过B2接口转发到目的网络的路由器上,最后通过中间结点转发给主机H3
2.3.3 训练三:H1 -> H7(采用子网划分技术的网络 -> 传统网络)
-
- 不是一个网络,先通过B3接口发给某学校路由器
-
- 某学校路由器查询转发表,发现与第三项匹配(照样是用子网掩码“逐位与”,只不过传统网络换了个名词——默认子网掩码),然后查询ARP表通过B0接口发出,某公司路由器从C0接口收到
-
- 某公司路由器收到数据报,虽然是传统网络,其路由表项没有子网掩码这一项,但仍会用默认子网掩码得到网络号,此时与第一项匹配,然后通过ARP表从端口C2转发出去
2.3.4 训练四:H7 -> H1(传统网络 -> 采用子网划分技术的网络)
- 此为逆过程,留给感兴趣的读者自己尝试
2.3.5 训练五:主机H1发往Internet的某个IP数据报的传输(设目的地址=111.2.3.4)
-
- 发现不是同一个网络,从B3发给某学校路由器
-
- 某学校路由器接收到数据报,查询转发表,发现只能匹配默认路由,于是从B1接口发出,被ISP路由器的A2接口接收
-
- ISP路由器接收数据报,查询转发表,与第三项匹配上,于是从A1接口转发给Internet上
2.4 无分类编制CIDR
2.4.1 定长子网划分 & 变长子网划分
- 定长子网划分:在一个CIDR地址块中,把主机号前 k bit抠出来作为定长子网号,这样就能划分出2k个子网(每个子网包含的IP地址块大小相等),这种方式与传统的子网划分技术同理
- 变长子网划分:在一个CIDR地址块中,划分子网时,子网号长度不固定(每个子网包含的IP地址块大小不同),这种方式子网划分更灵活
注意体会这种 “从根到叶构造二叉哈夫曼树” 的技巧:
- 原始CIDR地址块作为根节点(假设可以自由分配的主机号占hbit)
- 每个分支节点必须同时拥有左右孩子,左0,右1(反过来也行)
- 每个叶子节点对应一个子网,根据根节点到达叶子结点的路径来分析子网对应的IP地址块范围
- 整棵树的高度不能超过 h-1(因为即便最小的子网也至少要保留 2bit 主机号)
这样划分出来的子网必然不会重叠,原因就是哈夫曼树的特性所致 — — 任意一个字符的编码,都不会是另一个字符编码的 “前缀”(即开头的子串)
2.4.2 真题训练 & 总结
【2021 统考真题】 现将一个IP网络划分为3个子网,若其中一个子网是 192.168.9.128/26,则下列网络中,不可能是另外两个子网之一的是(B)
A. 192.168.9.0/25
B. 192.168.9.0/26
C. 192.168.9.192/26
D. 192.168.9.192/27
解题关键是每个分支节点必须同时拥有左右孩子
解答步骤:
①我们可以先按照左0右1的规则画出如下完全二叉树
②分析A C选项,如下图
A C选项构成的三个子网分别是0/25、10/26、11/26
③分析B选项,如下图
B选项作为子网(叶子节点),那么不能满足只有三个子网的题设要求,只能用00/26、01/26、10/26、11/26四个子网来描述
④分析D选项,如下图
D选项构成的三个子网分别是10/26、110/27、111/27
2.5 路由聚合
2.5.1 概念
- 对于一个路由转发表,如果几条路由表项的转发接口相同,部分网络前缀也相同,那么可以将这几条路由表项聚合为一条。这种地址的聚合称为路由聚合,也称构成超网
- 路由聚合可以减少路由表的大小
- 路由聚合可能会引入额外的无效地址,如假设某网络仅使用3个连续/24子网,即:192.168.1.0/24、192.168.2.0/24、192.168.3.0/24,聚合后,选择最小聚合范围,即/22掩码,覆盖 192.168.0.0 ~ 192.168.3.255,此时,聚合路由覆盖的192.168.0.0/24 并未实际使用,这一地址段就是 “额外的无效地址”
2.5.2 最长匹配原则
2.5.3 引入CIDR及路由聚合后的解题流程与技巧
2.6 网络地址转换NAT
2.6.1 要点总结
注意:
- 普通路由器转发IP数据报时,不会改变源IP、目的IP地址,NAT路由器涉及网络地址转换,其必然会改变源IP、目的IP地址
- 普通路由器仅包含网络层及以下的功能,NAT路由器还包含了传输层的功能,因为NAT路由器会改变端口号,这是传输层的概念
- 还有另外修改目的IP地址的情况:当多个后端服务器(如 Web 服务器集群)共同提供服务时,负载均衡器会作为 “请求入口”,临时修改目的 IP 以实现 “请求分发”(扩充)
记忆NAT私有IP地址网段:
- 大致还是分A、B、C类,网络号分别对应前面的8、16、24位
- A类: 1个A类网段,网络号为10
- B类:16个B类网段,网络号为172.16 ~ 172.31
- C类:256个C类网段,网络号为192.168.0~192.168.255
2.6.2 补充
- 数据链路层实现了 “节点到节点” 的通信。一般来说每次封装数据MAC帧,都要改变其MAC帧的源、目地址
- 网络层实现了 “主机到主机” 的通信。网络层在IP数据报的首部,指明源IP地址、目的IP地址,一般来说IP地址是不会变的
- 传输层实现了 “端到端”(进程到进程)的通信。传输层在TCP(或UDP)报文段的首部,指明源端口、目的端口
下几节将以下图模型为基础,做增添NAT技术时,IP数据报的转发流程的训练
2.6.3 训练一:手机1->手机2微信发文字
-
- 传输层将数据封装成报文段,在报文段中指明源端口号和目的端口号如上图①所示,接着传递给网络层,封装成IP数据报,在数据报中指明源IP地址和目的IP地址如上图①所示,接着封装成帧
-
- 数据帧经过无线AP传入外网IP为59.175.49.153的NAT路由器,此路由器要进行内外网IP和端口号的转换,只涉及源IP和源端口的转换,因为目的IP是外网IP,暴露出来公开的,也是网络上转发的依据,内网IP只有内部局域网知道
-
- 经过长途跋涉来到了目的网络处,也就是IP目的地址对应的NAT路由器处(66.211.88.55),此时依旧要进行内外网IP和端口号的转换,只涉及目的IP和目的端口的转换,原因还是因为,此时源IP是外网IP
-
- 这个NAT路由器完成目的IP和目的端口的转换后根据转发表进行转发,必要时还会借助ARP协议查询ARP表来找真实物理地址对应的转发端口,转发到手机2上并收到后,微信进程上就出现消息了
2.6.4 训练二:手机2->手机1微信发图片
- 此为训练一的逆过程,感兴趣的读者自己进行训练
2.6.5 训练三:电脑1->服务器请求网页数据
- 如上图所示,不同之处在于,网络与服务器是直连的,并没有借助NAT路由器充当中间节点,所以数据传送到服务器时,其目的IP和目的端口号均没有改变,也就是说,整个请求过程只有源IP和源端口发生了变化
2.6.6 训练四:服务器->电脑1返回网页数据
- 也是一个逆过程,服务器指定源端口号为80,目的端口号为23333,源IP地址为200.1.1.4,目的IP地址为59.175.49.153,将其发送给对应NAT路由器
- 然后NAT路由器收到后,将目的端口号改为2111,目的IP地址改为192.168.3.74,然后发给电脑1,整个返回过程只有目的IP和目的端口发生了变化
2.6.7 扩展
2.7 地址解析协议ARP
ARP:Address Resolution Protocol
2.7.1 要点总结
2.7.2 ARP工作原理
ARP工作在网络层,其工作原理如下:
- 主机A欲向本局域网上的某台主机B发送IP数据报时,先在其ARP高速缓存中查看有无主机B的IP地址。
- 如果有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址
- 如果没有,那么就通过使用目的MAC地址为全1的帧来封装并广播ARP请求分组(广播发送),使同一个局域网里的所有主机都收到此ARP请求,主机B收到该ARP请求后,向主机A发出ARP响应分组(单播发送),分组中包含主机B的IP与MAC地址的映射关系,主机A收到ARP响应分组后就将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。
接下来几个小节是以下图为基础对ARP协议的训练,所有主机的ARP表均为空
2.7.3 训练一:假设H3想给Internet发送IP数据报,分析ARP工作过程
-
- 由于ARP表项是空的,没有查到对应的MAC地址,于是主机H3通过ARP协议进行封装ARP请求分组,此分组包含自己的IP源地址和MAC源物理地址,同时IP目的地址是默认网关的(因为要发送给Internet需经过路由器),但由于不知道路由器的MAC地址,所有MAC目的地址部分只能是全1的广播帧,对应①
-
- 经过广播后,各主机通过检查目的IP地址来判断是否该自己接收,当然只有路由器会接收,此时路由器接收后,会在自己的ARP表中先写入H3的IP地址和MAC地址的映射,然后根据ARP协议生成ARP响应分组,此时源IP和源MAC均为路由器的,目的IP和目的MAC均为H3的,这是普通的单播帧,对应②
-
- 单播给H3后,H3接收数据帧,并完善H3自己的ARP表,对应伞,此时一趟完整的ARP协议就结束了
2.7.4 训练二:基于训练一,假设有一个IP数据报从Internet->H3,分析ARP工作过程
- 此时ARP有路由器IP地址到MAC地址的映射,直接根据ARP协议查询ARP表进行转发数据帧即可
2.7.5 训练三:假设H3想给166.1.150.1发送IP数据报,分析ARP工作过程
- 与训练一类似,只不过这里是想在局域网内发送数据,所以ARP请求分组应该是局域网内的主机进行接收,感兴趣的读者可以自己尝试训练一下,注意这里由于集线器的缘由,H5和H6都能收到H3发来的ARP请求分组,且H3和H5都会收到H6发来的ARP响应分组,只不过H5均会丢弃这个数据报而已
2.7.6 扩展
2.8 动态主机配置协议DHCP
2.8.1 要点总结
强调:DHCP协议属于应用层协议,在传输层使用UDP协议,在网络层使用IP协议
2.8.2 DHCP基本流程
DHCP协议是主机刚接入网络时,请求DHCP服务器给其分配IP地址时使用的,DHCP服务器和DHCP客户端(请求IP地址的主机)的交换过程如下:
-
- 客户->服务器:DHCP发现报文 — — DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得IP地址等信息。数据封装后:源IP地址为全0,目的IP地址为全1,源MAC帧地址为客户MAC地址,目的MAC地址为全1
-
- 服务器->客户:DHCP提供报文 — — DHCP服务器收到“DHCP发现”消息后,广播“DHCP提供”消息,其中包括提供给DHCP客户机的IP地址。数据封装后:源IP地址为DHCP服务器地址,目的IP地址为全1,源MAC帧地址为服务器MAC地址,目的MAC地址为客户MAC地址
-
- 客户->服务器:DHCP请求报文 — — DHCP客户机收到“DHCP提供”消息,如果接受孩IP地址,那么就广播“DHCP请求”消息向DHCP服务器请求提供IP地址等信息。数据封装后:源IP地址为全0,目的IP地址为全1,源MAC帧地址为客户MAC地址,目的MAC地址为全1
-
- 服务器->客户:DHCP确认报文 — — DHCP服务器广播“DHCP确认信息”,将IP地址分配给DHCP客户机。数据封装后:源IP地址为DHCP服务器地址,目的IP地址为全1,源MAC帧地址为服务器MAC地址,目的MAC地址为客户MAC地址
也就说从网络层来看,整个DHCP协议的过程中,IP数据报的目的地址都是全1,即全都是广播数据报;从数据链路层来看,客户发出去的MAC数据帧目的地址全是1,即只有客户全是广播数据帧。当然主机接收数据时,先接受到的是帧的形式,在此过程中,客户发出的帧都会在数据链路层被各主机所接收,之后再会经过网络层,只要到达网络层的数据都会被传送到传输层(广播数据报),到达传输层后,会匹配端口号,此时不是DHCP服务器的主机就会开始抛弃这些数据。为什么要这么设计,简单说下是因为一个网络中可能存在多个DHCP服务器,详细在训练中提及。2.8.3的训练小节是基于下图展开说明的,需重点关注网络层和数据链路层的地址设置
2.8.3 训练:模拟主机新加入某个局域网(存在两台DHCP服务器)
-
- 新主机加入某个局域网,会使用DHCP协议发送DHCP报文给DHCP服务器申请IP地址等资源,首先发送DHCP发现报文,报文在传输层指明DHCP有关的端口后,传送进网络层,设置源IP地址全0(还没得到IP地址,整个过程结束后才会得到),目的IP地址全1(可能有多个DHCP服务器,且不知道DHCP的信息)后,进入数据链路层,设置源MAC地址全1(不知道DHCP服务器在哪),目的MAC地址为自己的,然后经过链路广播出去,如上图①
-
- 局域网内各个主机都会收到此数据帧,均在数据链路层和网络层接受,到了传输层,除DHCP服务器外的主机都会抛弃此数据,这时网络内的所有DHCP服务器都会接收此数据,然后发送DHCP提供报文,在网络层,设置源IP地址为自己的,目的IP地址为全1(客户只有结束DHCP协议才会拥有IP地址),在数据链路层,设置源MAC地址为自己的,目的MAC地址为客户机的(从①中已知),然后经过链路广播出去,如上图②
-
- 由于存在多个DHCP服务器的缘故,这些DHCP提供报文都会陆续到达客户机,但客户机只会挑选其中的一个,通常是最先到达的进行接收,其余抛弃,然后发送**“DHCP请求报文”,在网络层,设置源IP地址为全0,目的IP地址为全1。这里解释为什么目的IP还是全1,因为,会有多个DHCP服务器都发送请求报文**,报文里都提供了自己管辖的IP地址等资源,但目的主机只接受了一个DHCP服务器的IP,所以要广而告之所有的DHCP服务器,表明自己已经有所属了,俗称“官宣”,让其他DHCP服务器回收自己的“礼物”(IP地址),别浪费了。在数据链路层,设置源MAC地址为全0,目的MAC地址为全1(广播,理由如上),然后经过链路广播出去,如上图③
-
- 同样,局域网内各个主机都会收到此数据帧,均在数据链路层和网络层接受,到了传输层也一样,除DHCP服务器外的主机都会抛弃此数据,只有到了应用层,其他“疯狂的追求者们”失望的发现,ta居然选择的不是我,然后抛弃此数据,因为最后的数据中指明了确认的IP地址是多少,于是得到接受的那台DHCP服务器便快乐的发送DHCP确认报文,网络层设置源IP地址为自己的,目的IP地址为全0,数据链路层设置源MAC地址为自己的,目的MAC地址为客户机的,然后经链路传输给客户机。这一系列过程结束后,客户机才真正拥有了自己的IP地址
流程可参照下图箭头:
2.9 ICMP网际控制报文协议
2.9.1 要点总结
2.9.2 自主模拟训练
这部分按照上述各种类型情况自主模拟训练,参考视频:https://www.bilibili.com/video/BV19E411D78Q?t=3.2&p=52
强调:
-
- ICMP出错不反馈ICMP差错
-
- 多个数据片出错只反馈一次ICMP差错
-
- 多播地址不反馈ICMP差错
-
- 源地址为特殊地址不反馈ICMP差错
3. 路由算法与路由协议
3.1 路由算法概览
路由协议定义了路由器之间怎么交换必要信息,这些必要信息作为输入结合路由协议选择的路由算法最终输出路由表
3.2 距离-路由算法
3.3 链路状态路由算法
3.4 路由算法总结
3.5 分层次的路由协议
3.6 RIP路由协议
3.6.1 基本概念
强调: RIP属于应用层协议,它在传输层使用UDP协议传送数据,在网络层使用IP协议
3.6.2 RIP的工作过程示例
(1)从路由器启动到收敛
(2)动态适应网络拓扑变换
以上是 “好消息传的快”
(3)反映RIP的缺点
这就是 “坏消息传播的慢”
【2016 统考真题】
从本小节的结论就可以知道,当出现坏消息时(某个链路断开,导致某个网络不可达),每一轮的路由交换信息更新,只会导致到不可达的网络距离+1
(4)反映RIP的优点
这就是 ”好消息传的快“
3.7 OSPF协议
3.7.1 特点
小结:
3.7.2 基本原理
小结:
3.7.3 OSPF的分组类型
借用一个例子来理解OSPF分组类型:
类比抄作业的例子,问候分组时互相礼貌性进行问候,数据库描述分组是互相告知我会哪些题(仅告诉会的题,不涉及解答),链路状态请求分组是经过比对兼容后,向对方请求自己不会的题,链路状态更新分组是对方发送你不会的题的详细解答,链路状态确认分组是自己确认收到了解答。全网洪泛的解释是,自己也很有爱心,别人会的题给了自己,完善了自己的题库,也会去给其他人题
3.8 对比RIP和OSPF
RIP:
-
- 仅和相邻路由器交换信息
-
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
-
- 按固定的时间间隔交换路由信息,如每隔30秒
-
- RIP是应用层协议,在传输层使用UDP
OSPF:
-
- 向本自治系统中的所有路由器发送信息,这里使用洪泛法
-
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
-
- 只有当链路状态发送变化时,路由器才用洪泛法向所有路由器发送此消息,并且更新过程收敛很快
-
- OSPF是网络层协议
-
- 距离定义更灵活
-
- 能够多路径间的负载平衡
-
- 具有一定安全性
RIP是向相邻路由器发送自己路由器所知的全部信息,发送全部已知;OSPF是向全部路由器发送与自己相邻的路由器信息,发送部分已知
4 IPv6地址(重点)
强调:
-
- ::/128是未指明地址、::1/128是环回地址
-
- FF::/8是多播地址
-
- FE8::/10是本地链路单播地址
-
- 其他的就是全球单播地址
对于IPv6地址来说压缩记法和地址分类是其重点
总结:
至此第四章也就结束了,可以说第四章就是整本计算机网络考研的精华与重点,尤其是 IPv4 与 路由协议和路由算法 部分,当然这里是根据B站公开课上咸鱼学长版的计算机网络来进行学习的,本章总结中还缺少了一部分的知识点:SDN基本概念,IP组播,移动IP,网络层设备,这些知识点大纲上虽然上有,但真题中却并未怎么出现过,我认为简单看书了解一下就行,对于各种协议,很容易弄错各自所属的层次,因为本章是网络层的总结,但却涉及了应用层的协议,这里只强调出现的应用层协议:DHCP是应用层(传输层使用UDP),RIP是应用层(传输层使用UDP)
补充:
-
- 移动IP中,若主机移动到另一个LAN中,且一个分组到达了它原来所在的LAN中,那么分组先被发给本地代理,再由本地代理根据转交地址通过隧道技术发给外部代理,最后由外部代理发给主机,在这过程中,主机既不可以直接接收分组,也不可以直接发送分组
-
- 了解以太网组播MAC地址是怎么构建出来的:48位以太网地址的最低23位来自D类IP地址的最低23位(9~31)
-
- 路由器拥有路由表和转发表,路由表需对网络拓扑变化的计算最优化,转发表需对查找过程最优化,路由表总是用软件来实现,转发表可以软件,也可以硬件,因为要用软件算法的支持来实时更新和维护路由表
-
- 转发是局部的,路由选择是全局的
-
- 分组的实际转发是靠直接查找转发表,而不是直接查找路由表
-
- 路由器主要完成两个功能:①路由计算;②分组转发
参考:《王道计算机考研 计算机网络》
https://www.bilibili.com/video/BV19E411D78Q/?share_source=copy_web