第四章 网络层
文章目录
4.1 网络层的几个重要概念
4.1.1 网络层提供的两种服务
- 争论:
- 网络层应该向传输层提供怎样的服务?面向连接还是无连接?
- 在计算机通信中给,可靠交付应当由谁来负责?是网络还是端系统?
- 两种观点:
- 虚连接:银行就是使用的虚电路服务
- 网络提供数据报服务:网络层设计尽量简单,无连接的,尽最大的努力发送,互联网选择这种
4.1.2
4.2 网际协议IP
与网际协议IPv4配套的三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
4.2.1 虚拟互连网络
- 使用转发器或网桥不成为网络互连
- 在IP网上覆盖TCP,就变成了互联网
- 互联网可以由多种异构的网络互连组成
4.2.2 IP地址
-
IP地址及其表示方法
- 32位二进制代码
- 这个地址与物理地址没有关系,只是一个标识
- IP地址由互联网名字和数组分配机构ICANN进行分配
-
IP地址采用2级结构
-
IP地址=<网络号>,<主机号>
-
如果网络号是n位,主机号就是32-n位
-
两种IP地址的编址方式:
-
分类的IP地址
-
分类:
- A类:8+24,标识号为0
- B类:16+16,标识号为10
- C类:24+8,标识号为110
- D类:1110+多播地址
- E类:1111+保留为今后使用
-
在每类IP中,最大主机数分配时全0和全1 的不能用,如A类的有 2 24 − 2 2^{24}-2 224−2
-
A类中,最大可指派的网络数为 2 7 − 2 2^7-2 27−2,但是,B类为 2 14 − 1 2^{14}-1 214−1,C类为 2 21 − 1 2^{21}-1 221−1
-
特殊使用的IP:
网络号 主机号 源地址使用 目的地址使用 代表的意思 0 0 可以 不可以 在本网络上的本主机 0 X 可以 不可以 在本网络上主机号为X的主机 全1 全1 不可 可以 只在本网络上进行广播 Y 全1 不可以 可以 对网络号为Y的网络上的所有主机进行广播 127 非全0或全1的任何数 可以 可以 用于本地软件的环回测试 -
分类的IP地址的优点和缺点:
- 优点:
- 管理简单
- 使用方便
- 转发分组迅速
- 划分子网,灵活地使用
- 缺点:
- 大地址块,浪费地址资源
- 即使采用划分子网的方法,也无法解决IP地址枯竭的问题
- 优点:
-
-
无分类编址CIDR
- IP地址为网络前缀+主机号
- 网络前缀和网络号的区别在于,位数时不固定的,可以是0到32之间选取任意值
- CIDR记法:斜线记法,IP地址数没变,只是可分配的机会多了,例如:128.14.35.17 /20
- 地址块
- 把网络前缀都相同的所有连续的IP地址组成一个CIDR地址块
- 注意区分块地址和IP地址,区别在于块地址的主机号全为0
- 地址掩码
- 又称为子网掩码
- 位数:32位
- 目的:让计算机从IP地址中迅速计算出网络地址
- 由一连串的1和接着的一串0组成,1的个数就是网络前缀的位数
- 运算:AND,用地址掩码和收到的IP地址做与运算
- 构造超网
- 路由聚合
-
IP地址的特点
- 每个IP地址都由网络前缀和主机号两部分组成
- IP地址是标志一台主机(或路由器)和一条链路的接口
- 转发器或交换机连接起来的若干个局域网仍为一个网络,即网络前缀必须相同(二层交换机不需要分配IP,但是三层交换机就需要分配IP了)
- 在IP地址中,所有分配到网络前缀的网络都是平等的
-
-
4.2.3 IP地址与MAC地址的关系
IP地址 | MAC地址 |
---|---|
虚拟地址,逻辑地址,软件地址 | 固化在网卡上的ROM中 |
网络层及以上各层使用 | 数据链路层使用 |
放在IP数据包的首部 | 放在MAC帧的首部 |
硬件地址,物理地址 |
4.2.4 地址解析协议ARP
解决的问题:我们知道了一个机器的IP地址,怎么知道它的MAC地址呢?
-
作用:通过IP找MAC
-
实现方式:
- ARP高速缓存(每一台机器都有)
- ARP协议(用于解决一开始表为空的情况):
- 广播来找MAC
- 单播来回复
- 回复后填表
-
作用:
- 存放最近获得的IP地址到MAC地址的绑定
- 减少ARP广播的通信量
-
ARP高速缓存表的填法:手工和自己填
-
ARP只能解决同一个局域网上的,不能解决不同的局域网上的。若不在同一个局域网,则由路由器来收广播,然后下面的工作就交给路由器来做
为什么需要使用两种地址?
不同使用不同的MAC地址,MAC地址的转换非常复杂
4.2.5 IP数据报的格式
由首部和数据两个部分组成
4.3 IP层转发分组的过程
4.3.1 基于终点的转发
- 分组在互联网中,是逐跳转发的
- 基于终点的转发:基于分组首部中的目的地址传送和转发
- 支持:转发表
4.3.2 最长前缀匹配
使用CIDR时,查找转发表的时候可能会得到不止一个匹配结果
原则:选择前缀最长的一个作为匹配的前缀
所以,使用CIDR时,一定要注意只能聚合分配完的地址段,不然转发的时候很可能找不到
转发表中的两种特殊的路由:
- 主机路由
- 又叫做特定主机路由
- 是对特定目的主机的IP地址专门指明一个路由
- 网络前缀就是a.b.c.d/32
- 放在转发表的最前面
- 默认路由:
- 不管分组的最终目的的网络在哪里,都由指定的路由器R来处理
- 用特殊前缀0.0.0.0/0
- 放在最后面
转发表的顺序:
- 主机路由
- 正常路由
- 默认路由
4.3.3 使用二叉线索查找转发表
- 二叉线索:一种特殊结构的树,可以快速在转发表中找到匹配的叶节点
- 二叉线索树的构造:
- 最深为32层
4.4 网际控制报文协议ICMP
4.4.1 ICMP报文的种类
- 差错报告报文
- 3:终点不可达
- 11:时间超过
- 12:参数问题
- 5:改变路由
- 询问报文
- 8或0:会送请求或回答
- 13或14:时间戳请求或回答
4.4.2 ICMP应用举例
- PING
- 用来测试两个主机的连通性
- Traceroute(在windows里是tracert)
- 用来测试经过的路由器
4.5 IPV6
4.6 互连网的路由选择协议
4.6.1 有关路由选择协议的几个基本概念
- 理想的路由算法
- 指标:
- 正确完整
- 计算上应该简单
- 算法应该能够适应通信量和网络拓扑的变化,即自适应性
- 稳定性
- 公平性(所有的网络处理都是一致的)
- 最佳的(找到一条最好的路由,使平均时延最小,但是没有“绝对的最佳”)
- 分类:
- 静态路由选择:实现简单,开销小,但是不能及时适应网络状态的变化
- 动态路由选择:能自适应网络状态的变化,但是较为复杂,开销较大
- 指标:
- 分层次的路由选择协议
- 互联网:
- 采用自适应的,分布式路由选择协议
- 用自治系统AS(单一技术下的一致的路由选择)
- 2大类路由选择协议
- 内部网关协议IGP:常用的为RIP,OSPF
- 外部网关协议EGP:常用的BGP-4
- 互联网:
4.6.2 内部网关协议RIP
- 协议RIP的工作原理
- 分布式,基于距离向量的路由选择协议
- 互联网的标准协议,优点是简单
- 距离:路由器到直接连接的网络的距离为1,到非直接连接的网络的距离=所经过的路由器数 + 1
- 一条路径最多只能包含15个路由器
- 距离最大值为16时就不可达了
- 它只选择最短的路由
- 几个特点:
- 仅和相邻的路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
- 按固定时间间隔交换路路由信息(更新路由表的算法是距离向量算法)
- 坏消息传播得慢(由于末梢网络出现了故障,会出现无穷级数的问题,即与故障网络相连的路由器发现出现了故障,但是更新的路由表又来了,就需要经过好多轮交换才能知道出现了故障),好消息传播得快
4.6.3 内部网关协议OSPF
-
即开放最短路径优先,能克服RIP缺点,原理简单,但是实现复杂
-
链路状态:说明本路由器和哪些路由器相邻,以及该链路的度量1。
-
采用洪泛法
-
链路状态数据库
-
缺点:洪泛占用的带宽很大
-
所以现在进一步分层,分成很多的区域,有主干区域和其它自治系统,主干区域标识符为0.0.0.0,作用是用来连通其他下层区域
-
划分区域的优点和缺点:
- 优点:
- 减少了整个网络的通信量
- 减少了需要维护的状态数量
- 缺点:
- 优点:
-
OSPF的5种分组类型:
- 问候(Hello)分组:发现和维持邻站的可达性
- 数据库描述(Database Description)分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 链路状态请求(Link State Request)分组
- 链路状态更新(Link State Update)分组
- 链路状态确认(Link State Acknowledgement)分组
-
OSPF规定每30分钟刷新一次数据库中的链路状态
-
OSPF没有无穷级数问题
-
OSPF使用可靠的洪泛法
4.6.4 外部网关协议
- 在外部网关协议BGP中,现在使用的是第4个版本BGP-4
- 可以将BGP-4写成BGP
- 为什么在各个自治系统间选用RIP或OSPF呢?
- 第一,互联网的规模太大,使得自治系统AS之间的路由选择非常困难
- 第二,自治系统AS之间的路由选择必须考虑有关策略(即各个自治系统使用的标准不一样)
- BGP采用分布式路径向量路由选择协议(这和距离向量和链路状态不一样)
- BGP协议的特点:
- BGP发言人(Speaker):每个自治系统需要至少一个发言人,这个发言人是对等的,相互之间交换信息。speaker之间跑的是BGP
- 在AS之间,BGP发言者之间建立半永久性TCP连接,称为eBGP
- 在AS内部,必须有一个逻辑连接,是全连通的,称为iBGP连接,在路由器之间交换的是路径向量,而在OSPF中交换的是链路状态。所以,自治系统内部如果要跟外部进行交换,需要跑两种协议:OSPF和iBGP
- 区别:
- iBGP和eBGP其实是同样的协议,只是交换的对象不同,一个内部,一个外部;
- 通报的规则也不一样
- 两者联系在于,交换的都是路径向量
- BGP路由信息
- 三种不同的自治系统
- 末梢AS:不会把来自其他AS的分组转发到另一个AS
- 穿越AS:为其他自治系统AS有偿转发分组
- 对等AS:彼此转发接收分组都不收费
- BGP找不到一条最优的路由,只能找到一条能到达的路由
- BGP路由选择:
- 本地偏好值最高的路由首先选择
- 选择自治系统跳数最少的一个(虽然跳数少,但是可能自治系统很大,所以可能并不能找到一条最优的路径)
- 使用热土豆路由选择算法
- BGP四种报文格式:
- OPEN:与BGP连接对等端建立连接
- UPDATE:通告某一路由的信息
- KEEPALIVE:则夯实与对等端的连通信,时间为事先商定的保持时间的1/3
- NOTIFICATION:发送检测到的差错
4.6.5 路由器的构成
- 路由器的结构
- 路由选择部分(控制部分,控制层面)
- 分组转发部分(数据层面)
- 路由表和转发表不一样,路由表是正对多个路由器而言,而转发表是对输入输出端口而言
- 交换结构:
- 通过存储器
- 通过总线,缺点是如果总线忙不行
- 通过纵横交换结构,动态控制连接
4.8 虚拟专用网VPN和网络地址转换NAT
4.8.1 虚拟专用网VPN
-
为什么要有虚拟专用网?
- 因为IP地址紧缺
- 互联网并不安全,一个机构并不是每个机器都需要上网的
- 内部使用的地址可能会与全球地址相重
-
所以,如何区分本地地址和全球地址呢?
RFC指明了一些专用地址,而路由器对目的地是专用地址的就扔掉,不转发
-
有哪些专用的IP地址块呢?
有三个:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
这三个地址块是作为本地地址
-
什么是专用网?
采用专用IP地址互连的网络,专用IP地址叫做可重用地址
-
什么是虚拟专用网?
利用公用互联网作为本机构各专用网之间的通信载体
-
虚拟专用网怎么构建呢?
- 首先,必须要有VPN路由器(作用有两个:1.重新构造分组;2.把数据进行加密)
- 这个路由器必须要有一个公网的IP
- 隧道技术
-
VPN有几种类型?
-
内联网
-
外联网:一些机构和某些外部机构的共同建立的
-
远程接入VPN
-
4.8.2 网络地址转换NAT
-
解决的问题:在专用网上使用的专用地址的主机怎么与互联网上的主机通信呢?
添加一个NAT地址转换路由器
这三个地址块是作为本地地址 -
什么是专用网?
采用专用IP地址互连的网络,专用IP地址叫做可重用地址
-
什么是虚拟专用网?
利用公用互联网作为本机构各专用网之间的通信载体
-
虚拟专用网怎么构建呢?
- 首先,必须要有VPN路由器(作用有两个:1.重新构造分组;2.把数据进行加密)
- 这个路由器必须要有一个公网的IP
- 隧道技术
-
VPN有几种类型?
-
内联网
-
外联网:一些机构和某些外部机构的共同建立的
-
远程接入VPN
-
4.8.2 网络地址转换NAT
-
解决的问题:在专用网上使用的专用地址的主机怎么与互联网上的主机通信呢?
添加一个NAT地址转换路由器
链路的度量:即时延,带宽等等性能指标 ↩︎