网络 | 06. 网络层与IP数据报的路由与交付
250715 网络层与IPv4
-
网络层
-
主要任务是实现网络互联,进而实现数据包在各网络之间的传输
-
如这样的异构型网络,如果其仅需要在网络内部通信,其只需要实现物理层和数据链路层即可;但如果需要将其互连起来,形成一个更大的互联网,就需要使用网络层互连设备 路由器,就必须实现网络层
-
网络层需要解决的主要问题
-
网络层向运输层提供怎样的服务(可靠传输还是不可靠传输)
- 常见传输错误:传输过程中误码、路由器繁忙而被丢弃、按序发送的数据包不能按序到达接收方
- 如果网络层对上述传输错误采取措施,则提供可靠服务;否则为不可靠服务
- 不同网络采取的协议可能不同,例如因特网使用的TCP/IP协议体系的网际层,提供的是无连接的、不可靠的数据报服务;而ATM、帧中继和X.25的网络层提供的都是面向连接的、可靠的虚电路服务
-
网络层寻址问题
-
路由选择问题
- 在确定收发方后,仍旧可能有多个路径发送该数据包,如何确定?
- 依据数据包中的目的地址和路由器中的路由表
- 路由表可以由用户或网络管理员进行人工配置,但这种方法只适用于规模较小、且网络拓扑不改变的小型互联网
- 也可以选择合适的路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路由记录,这种方法适用于网络规模较大,且拓扑经常改变的大型互联网
-
-
-
TCP/IP协议栈
-
网络层提供的两种服务
-
面向连接的虚电路服务
- 基本思想:可靠通信应由网络自身来保证
- 当两台计算机进行通信时,应首先建立网络层的连接,即建立“虚电路”,以保证通信双方所需的一切网络资源;随后通信双方沿着已建立的虚电路发送分组
- 需要注意的是,虚电路表示,这是一条逻辑上的连接,分组都沿着这条逻辑连接,按照存储转发方式传送;而并不是真正建立了一条物理连接
- 而采用电路交换的电话通信,则是先建立一条真正的连接
- 分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需携带一条虚电路编号即可
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)
- 通信结束之后,需要释放之前所建立的虚电路
- 很多广域分组交换网都使用面向连接的虚电路服务,例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等
-
无连接的数据报服务(TCP/IP体系结构的因特网网际层所提供的服务)
- 因特网先驱最早使用的方式,其基本思路是:可靠通信应当由用户主机来保证
- 当两台计算机进行通信时,它们的网络层不需要先建立连接,每个分组可走不同的路径,因而每个分组的首部必须携带目的主机的完整地址
- 这种通信方式所传送的分组可能误码、丢失、重复和失序
- 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网交换机相比较)
- 因特网采用了这种设计思想,也就是将复杂的网络处理功能至于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网的核心
- 好处是网络造价降低、运行方式灵活、能够适应多种应用;因特网能发展至今,也充分证明了这种思想的正确性
-
-
-
IPv4地址
-
概述
-
表示方法:点分十进制表示
-
分类编制阶段
-
5类地址(第一个历史阶段)
-
A类
-
最高位固定为0,若后7位全部取0时,就为A类地址的最小网络号,其十进制为0,该网络号被保留,不能指派
-
因此,A类网络第一个可指派的网络号为最高位固定为0,低7位为0000001,十进制为1;将24位主机号全部取0,就可以得到该网络地址:
1.0.0.0
-
当低7位全部取1时,就得到最大网络号127,该网络号被作为本地环回测试地址,不能指派
- 当将127开头的IPv4地址的主机号部分,最低位取1、其他位取0,就可得到最小的本地软件环回测试地址,即
127.0.0.1
- 当将127开头的IPv4地址的主机号部分,最低位取0、其他位取1,就可以得到最大的本地环回测试地址
127.255.255.254
- 当将127开头的IPv4地址的主机号部分,最低位取1、其他位取0,就可得到最小的本地软件环回测试地址,即
-
最后一个可指派的网络号为
01111111
(126),网络地址为126.0.0.0
-
可指派的A类网络数量:网络号126
-
每个网络中,可分配的IP地址数量为:$2^{24}-2=16777214$,减去2是因为要取出主机号全0的网络地址和主机号全1的广播地址
-
-
B类网络
- 16位网络号最高位固定为10
- 低14位全部取0时,得到最小网络号,即
128.0
,也是第一个可指派的网络号,主机号全取0后,可以得到其网络地址128.0.0.0
- 当网络号低14为全部取1时,就是最大网络号(可指派的最后一个),为
191.255
,其网络地址为191.255.0.0
- B类网络可指派的网络数量为$2^{14}=16384$
- 每个网络中可分配的IP地址数量为$2^{16}-2=65534$
- 有些教材中指出,128.0时保留网络号,B类第一个可指派网络号为128.1,但根据2002年9月发布的RFC3300文档,128.0网络号已经可以分配了
-
C类
- 24位网络号,以110开头
- 最小网络号是低21位全为0的情况,其网络号为
192.0.0.0
- 最大网络号也是最后一个可指派的网络号为
223.255.255
- 可指派的C类网络数量为$2^{21}=2097152$
- 每个网络中可分配的IP地址数量为$2^8-2=254$
-
练习
-
子网划分的IPv4地址(第二个历史阶段)
-
问题引入:如某单位有一个大型的局域网需要连接到因特网
-
如果申请一个C类网络地址,其可分配的IP地址数量只有254个,会不够使用
-
但如果该单位申请了一个B类网络地址,其可分配的IP地址数量达到了65534个,给每台计算机和路由器接口都分配后,还会有剩余;而这些剩余的IP地址,只能由该单位的同一个网络使用,
-
随着该单位计算机网络的发展,需要将原来的网络划分成三个独立的网络(子网1、2、3),新的子网需要重新申请B类IP地址
-
这个时候会造成浪费
- 需要花时间和费用来申请
- 增加其他路由器中路由表的数量
- 浪费原网络中剩余的大量IP地址
-
这个时候,如果可以从IP地址的主机号部分,借用一些位,作为子网号来区分不同的子网,就可以避免浪费
-
例如,可以借用16位主机号中的8位作为子网号,就可以将剩余IP地址划分开,分给不同的网络
-
-
我们和计算机怎么知道分类地址中,有多少比特被用作子网了呢? => 子网掩码
-
-
无分类编址的IPv4地址
-
-
IPv4地址的应用规划
-
### 250731 IP数据报的交付与路由问题
-
IP数据报的转发与发送过程
-
2个过程:主机发送IP数据报,路由器转发IP数据报
-
直接交付与间接交付
-
在同一个子网中的数据,可以直接交付
-
在不同网络中的数据,需要通过路由器间接交付
-
源主机如何知道目的主机是否与自己在同一个网络中?
- 在数据报文发送时,源主机一定知道自己的IP地址和子网掩码,以及目的主机的IP地址
- 将源主机和目的主机的IP地址与自己的子网掩码做逻辑与运算,可以得到两个网络地址,如果相同,则说明两个主机在相同的网络中,否则不同
-
当网络不通时,需要通过路由器进行转发,这时源主机怎么知道是否有路由器连接目的主机?以及怎么找到是哪个路由器呢?
-
间接交付过程
-
当数据需要间接交付时,源主机会将数据交付给自己的默认网关
-
路由器收到数据报之后首先会检查IP数据报的首部是否出错
- 出错时丢弃该数据报并报告源主机
- 若没有出错,则进行转发
-
路由器根据IP数据报的目的地址,在路由表中查找匹配的条目(路由表中存储目的网络地址和地址掩码)
-
路由器对广播域的隔离:当源主机发送广播数据报时,当其被路由器接收时,不会进行转发,否则会出现广播风暴
-
练习
-
-
-
静态路由及其潜在的环路问题
-
用户或网络管理员使用路由器相关命令给路由器人工配置路由表,该方法简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中使用
-
静态路由配置
-
默认路由
-
特定主机路由
-
聚合路由
-
最长匹配原则
-
配置错误可能导致的问题
-
正确配置
-
直接配置错误导致的环路
-
聚合不存在网络导致的环路
-
网络故障导致的路由环路
-
-
-
动态路由选择与路由选择协议
-
路由器通过选择协议自动获取路由信息的方式叫做动态路由选择,其比较复杂、开销大,但能够较好地适应网络状态的变化,适用于大规模网络
-
因特网是全球最大的互联网络,其主要有3大特点:自适应、分布式、分层次
-
因特网采用的分层次路由选择协议(两类,内部网关或外部网关)
-
路由器基本结构(路由选择部分,分组转发部分)
-
路由选择部分的核心是路由转发处理机
-
分组转发部分由3部分组成,分别是输入端口、交换结构和输出端口
- 交换结构中包含输入缓冲区(暂存新进入路由器但还来不及处理的分组)和输出缓冲区(暂存已经处理完毕但还来不及发送的分组)
- 实际上,路由器上的一个端口应该同时包含输入和输出的功能
-
信号从输入端口进入路由器,物理层将其转换为比特流,链路层提取出帧,去除帧头和帧尾后交付给网络层
-
如果网络层收到的分组是普通待转发的分组,则根据分组首部中的目的地址进行查表转发(找不到时丢弃该分组);
再经由输出端口转发,网络层更新数据分组首部的某些字段值(如生存时间减1),链路层封装为帧,物理层将比特流转化为电信号进行发送
-
如果网络层收到的分组是路由器之间交换路由信息的路由报文,则将该分组送交路由选择交换处理机,路由选择处理机根据分组的内容来更新自己的路由表(实际上是两个表,只是为了简化平时不区分)
- 路由表一般仅包含从目的网络到下一跳的映射;需要对网络拓扑变化的计算最优化
- 转发表是根据路由表得出的,转发表的结构应当使查找过程最优化
-
此外,路由选择处理机,除了处理路由报文外,也会周期性地向其他路由器发送自己知道的路由选择信息
-
-
具体的路由选择协议算法
-
路由信息协议RIP
-
-
开放最短路径优先OSPF
-
-
边界网关协议BGP
- 输出
-
-
-