4.1 网络层概述
4.2 网络层提供的两种服务
4.2.1 面向连接的虚电路服务
4.2.2 无连接的数据报服务
4.2.3 对比
4.3 IPv4地址
4.3.1 IPv4地址概述
4.3.2 分类编址的IPv4地址
A类地址
B类地址
C类地址
练习
4.3.3 划分子网的IPv4地址
由来
假设有一家公司需要组建一个网络,申请IPv4地址,但是由于C类地址的可分IP数量太少,所以申请了B类地址145.13.0.0,并给每台主机分配了一个IP,但是有很多的剩余IP未分配,如下图所示。
随着公司的发展,又新增了一些主机,且这些主机需要划分成三个子网络,假设子网1任然使用原来申请到的B类地址,那么子网2和子网3需要额外申请网络地址,但是有一下弊端:
- 需要等待时间和花费更多的费用。
- 会增加其他路由器中路由表记录的数量。
- 会浪费原有网络中剩余的大量IP地址。
所以,如果可以从主机号中借用部分作为子网号,那么就不用申请新的网络地址。
可是计算机如何知道划分地址中主机号有多少比特被用作子网号了呢?这就用到了子网掩码。
子网掩码
如下图是32位比特的分类IPv4地址,由网络号和主机号构成,现在从主机号中借用一部分来作为子网号,使其变成了32比特的划分子网的IPv4地址。
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号。
- 子网掩码使用连续的比特1对应网络号和子网号。
- 子网掩码使用联系的比特0来对应主机号。
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可以到得到IPv4地址所在子网的网络地址。
默认子网掩码
4.3.4 无分类编址的IPv4地址
由来
CIDR记法
路由聚合(构造超网)
习题
4.3.5 IPv4地址的应用规划
FLSM
VLSM
4.4 IP数据报的发送和转发过程
- 如下图的一个网络,主机ABC和交换机S1构成一个子网络,网络地址为192.168.0.0,主机DEF和S2为另外一个子网络,网络地址为192.168.0.128,两个子网络依靠路由器R相连。为每个主机和路由器接口分配IP和子网掩码。
- 如果主机A向C发送数据,由于处于同一个网络中,数据报通过交换机发送给主机C,所以属于直接交付;主机A给主机D发送数据,由于属于两个网络,所以是间接交付,需要依靠路由器R进行转发。
- 在发送数据报之前先判断目的主机是否与源主机在同一网络中,可以使用子网掩码和目的地址相与得到目的网络,然后比较目的网络和源主机所在的网络地址。例如主机C给主机F发送IP数据报 ,主机C首先将自己的IP地址与子网掩码相与,得到C的网络地址,然后主机C将F的IP地址与自己的子网掩码相与,得到目的网络地址,与自己的网络地址不同,说明不在一个子网中。
- 如果目的主机与源主机不在同一个网络中,那么就需要通过路由器转发数据报。由于网络之间可能存在多个路由器,所以用户为让本网络中的主机可以和其他网络中的主机通信,就需要指定本网络中的一个路由器接口,由该路由器进行转发,称为默认网关,如下图,指定了与路由器接口0直连的主机的默认网关为路由器接口0的IP地址。
- 接着,路由器收到来自某个主机的IP数据报后:
- 假设主机A给主机D发送一个数据报,则IP数据报首部中的源地址为:192.168.0.1,目的地址为192.168.0.129。路由器R的路由表如下图所示,包含目的网络、地址掩码、下一跳三个信息,其中由于目的网络192.168.0.0与接口0直连,所以如果目的网络为192.168.0.0,则下一跳只要跳到接口0就进入了192.168.0.0这个子网。接来下,路由器就对该IP数据报进行查表转发,将目的地址与路由表中的地址掩码相与得到目的网络,与目的网络相比较,找到相同的目的网络,执行对应的下一跳完成转发。
4.5 静态路由配置及路由环路问题
4.5.1 静态路由举例:
默认路由:如果有大量的目的网络对应的下一跳相同,则可以设置默认路由,只要目的网络为其他网络(即不在路由表中设置过的),就一律选择默认路由,默认路由条目中的目的网络地址为0.0.0.0/0,网络前缀最短,路由最模糊。
特定主机路由: 对特定的目的主机指明一个路由,这种路由就叫做特定主机路由,采用特定主机路由可以使得网络管理人员更方便地控制和测试网络,同时也可以在需要考虑某种安全问题时采用这种特定的主机路由。在对网络的连接或路由表进行排错时,指明到某一台主机的特殊路由就十分有用。其目的网络地址的CIDR形式的末尾为“/32”,网络前缀最长,路由最具体。
4.5.2 路由环路问题
情况1 静态路由配置错误
如下图,R2路由表的目的网络为192.168.1.0/24的下一跳应该为路由器R1的接口1对应的IP地址10.0.0.1,但是错误地配置成了10.0.1.2,于是路由器将数据报转发给了路由器R3,路由器R3查找路由表,又将数据报转发给了R2,R2再次查找数据报,又将数据报转发给了R3,出现了环路问题。为防止IP数据报在路由器环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。
情况2 聚合了不存在的网络
如下图所示,R2的路由表中的192.168.0.0/22聚合了192.168.1.0/24和192.168.2.0/24这两个子网络,聚合方法就是寻找两个网络的共同前缀,然后将剩余部分清0,得到对应的聚合网络:192.168.0.0/22。
如下图,R2要转发IP数据报到网络192.168.2.0/24,则查看路由表找到目的网络192.168.0.0/22,下一跳转发到10.0.0.1,数据报转发到路由器R1,路由器R1查表,发现目的网络192.168.2.0/24的下一跳为接口2,于是直接交付到目的网络,完成转发。
但是聚合路由192.168.0.0/22实际包含了四个网络,但是部分网络不存在当前网络拓扑中,具体情况如下:
当路由器R2要转发IP数据报到192.168.3.0/24这个不存在的网络中,首先查看R2的路由表,找到对应的聚合网络192.168.0.0/22,于是转发到10.0.0.1进入路由器R1,R1查看路由表找不到该目的网络,于是使用默认路由,转发到10.0.0.2,数据报又回到了路由器R2,形成路由环路,如下图。
对此,可以在路由表中添加黑洞路由,如下图所示,下一跳null0是路由器内部的虚拟接口,IP数据报进入后就丢弃了。
情况3 网络故障
如下图,如果与192.168.1.0/24相连的线路出现故障,则在R1的路由表中删去相关的路由记录,当R2要给192.168.1.0/24发送数据报时,先转发给R1,R1通过默认路由又转发给了R2,形成路由环路。针对这种情况,对192.168.1.0/24设置一个黑洞路由就可以解决问题。
4.6 路由选择协议
4.6.1 路由选择协议概述
4.6.2 路由信息协议RIP的基本工作原理
概念
工作过程
路由器条目的更新规则
首先路由器C向路由器D发送自己的路由表,路由器D接收路由表后进行改造,即将下一跳都变为C,并且距离都+1,表示可以通过下一跳到C,然后再从C到达各个目的网络。然后根据改造后的路由表,更新D的路由表,具体如下:
RIP存在“坏消息传播得慢”的问题
如下图所示,线路发生故障,R1修改自己的路由表,将其与N1的距离改为16,表示不可达,并等待将路由进行转发。此时R2路由表中记录与N1的距离还是2,如果R2先转发路由信息,则R1会被误导,认为可以通过R2到达N1,距离为3,然后传播路由信息,此时R2接受路由信息并被误导,以为最新的消息为到达N1的距离为4,然后形成数分钟的路由环路后直到距离变为16,才知道N1不可达。
4.6.3 开放最短路径优先OSPF的基本工作原理
概念
问候分组
LSA链路状态通告和LSDB
OSPF的分组类型
工作过程
区域
4.6.4 边界网关协议BGP的基本工作原理
概念
工作过程
四种报文
习题
4.7 IPv4数据报的首部格式
内容
标识、标志、片偏移用于IP数据报分片,当IPv4的数据报过长时,就需要进行分片。
习题
4.8 网际控制报文协议ICMP
4.8.1 ICMP差错报文
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由(重定向)
4.8.2 ICMP询问报文
分类
应用
分组网间探测PING:
跟踪路由traceroute:
4.9 虚拟专用网VPN与网络转换地址NAT
4.9.1 虚拟专用网VPN
私有地址只能用于一个机构的内部通信,不能用于和因特网上的主机通信,所以部门A和部门B之间如果分配了私有地址, 则不能通过因特网相连,需要通过可以与因特网相连的IP才能完成通信,如下图所示。