目录
第四章 网络层
1.网络层的概述
网络层的主要任务就是连接各个网络,使得各个网络之间能够进行通信。即可以实现数据包在各网络之间传输。
要实现网络层的主要任务,需要解决以下的主要问题:
-
网络层提供的是怎样的服务(“可靠的”,“不可靠的”)。
可靠和不可靠的判断依据是在网络传输的过程中,如果出现了数据包误码,由于路由器繁忙丢弃或者失序到达的额情况,网络层如果进行处理就是可靠的服务,如果不进行处理就是不可靠的服务。为什么TCP是可靠的呢?其实TCP使用的下层的服务(IP)也是不可靠的,TCP自身保证了可靠的传输,比如确认应答,超时重传的机制等。TCP提供的是面向连接的可靠的字节流服务。
TCP/IP协议的网络层中的IP协议提供的就是不可靠的服务,ATM的网络层提供的是可靠的服务。
-
网络的寻址问题
-
路由选择的问题
依据就是数据包中的目的IP和路由器中的路由表。
2.网络层提供的两种服务
(1)面向连接的虚电路服务
(2) 无连接的数据报服务
互联网的先驱们采用的是无连接的数据报服务,如下图
两者的比较如下:
因特网目前使用的是数据报服务。
3.IPv4地址编址方法
IP地址:为了在全世界范围内互联网上的主机或者路由器编制一个惟一的标识符。
IP地址编制方法共经历了三个历史阶段:
分类的IP地址
:最基本的编址方法。1981年
子网划分
:对最基本的编址方法的改进。1985年
无分类编址CIDR(构成超网)
:比较新的无分类的编址方法。1993年
(1) 分类的IPv4地址
概述
:第一个字段是“网络号”,第二个字段是“主机号”,网络号在互联网范围内必须是唯一的。主机号表示在网络上的主机。一台主机号在其网络中必须是唯一的。所以,整个IP地址在互联网范围内是唯一的。
D类用作多播,E类地址保留为以后用。
⛔️为什么A类网络号的第一位为0,B类网络号的第一位第二位分别为1,0 ,C类…?
这样正是为了区分不同的网络号,这样做的目的是刚好使得IP地址连续。
A类的IP地址最大为127.255.255.255(广播地址),B类最小的IP地址为128.0.0.0(网络号)。B类最小的IP地址+1就是C类最大的IP地址。
为什么B的第二位必须是0呢?这是因为如果是1的话,据没办法和C类的IP地址进行区分了
A类
关于本地软件环回测试:
若主机发送一个目的地址为环回地址的数据报,则本主机中的协议软件就会处理数据报中的数据,而不会吧数据报发送到其他网络。
B类
C类
特殊的ip地址
(2)划分子网的IPv4地址
假如某单位申请了一个B类网络号,之后随着计算机的发展,需要新增两个网络,如果再为这两个网络申请网络号,就会造成如下问题:
子网掩码:利用子网掩码可以知道主机号中的几位被用作了子网号。
核心:用连续的1来表示对应的网络号和子网号
子网划分的细节:
总结:
(3)无分类编址CIDR的IPv4地址(构造超网)
CIDR(classless Inter-Domain Routing,“sider”),IPV4编址的第三个历史阶段。
概述(原因)
表示方法
路由聚合
为什么使用路由聚合?
目的是为了减少路由表中的表项,我们来看下图的例子,R2中只需要保存他们的共同前缀组成的网络号就可以了。
4.IPv4地址的应用规划
如何对分到的网络号进行划分子网?也就是给定一个IPv4地址块,如何划分成更小的地址块?进而把这些地址块分配给互联网中的不同网络,进而分配给网络中的主机或者路由器。有两种方法:
下面这个例子分别用定长的子网掩码和非定长的子网掩码进行划分:
(1) 使用定长的子网掩码
只能划分n个子网,n为从主机号中借用的子网号的位数,因为本例中需要五个网络,所以要借用三位。因为是借助主机号的三位作为子网号,所以子网掩码为255.255.255.224
我们来看一下,这种方式的缺点:首先,使用定长的子网掩码会造成IP地址的浪费。就拿N1和N5网络来说,分配给他们32个IP属实有点浪费。下面我们来看一下非定常的子网掩码。
(2) 使用非定长的子网掩码
N1的IP地址需求总计为9个,所以需要使用4个主机号作为子网号。
地址块
是指网络号位数+子网号位数
地址数量
是指这个地址所能容纳的主机数。
(3)小结
参考:湖科大教书匠,《计算机网络谢希仁》
5.IP数据报的发送与转发过程
IP数据报的发送转发过程包括以下两个部分:
- 主机发送IP数据报
- 路由器转发IP数据报
IP数据包在从源计算机发送到网络上后,根据上述两种不同情况,被传递到目的计算机时也有两种方式:直接交付
和间接交付
。
①直接交付:IP数据包被直接交付时不需要经过路由器。因为在运行TCP/IP协议的以太网中,入网的计算机TCP/IP协议族的ARP协议软件,会帮助查询到本物理网络中其他计算机的MAC地址,使IP数据包可以直接从源计算机传递到目的计算机。即在网络中传输。
②间接交付:当送出IP数据包的源计算机与接收数据包的目的计算机不在同一个物理网络时,就需要借助跨接不同物理网络的路由器实现间接交付。特别是当源计算机与目的计算机被多个物理网络隔开,且它们之间可能有多条信息传输路径时,IP数据包的间接交付不但需要借助多台路由器,还有一个选择最佳路径的问题。
首先,每个主机都有一个默认网关,就是直接与它相连的路由器接口。如果用户想要让本网络中的主机与其他网络中的主机进行通信,就必须为该主机指定本网络中的一个路由器,该路由器也成为了默认网关。
当一个数据报发送的时候,其IP数据报首部会标明目的网络地址和原地址,用目的网络地址与路由器路由表中的地址掩码进行与运算,得到相应的目的网络号,如果相等就按照路由表指定的该网络号的下一跳进行转发。
- 路由器不转发广播数据报 (隔断广播域)
6.静态路由配置
(1)概念
(2)默认路由条目
当网络到Internet的网络的时候,如果我们在逐条配置路由,那么工作量很巨大,我们可以配置默认路由条目来解决(相当于路由聚合)也就是如果找不到目的网络就使用这个默认的路由条目,但是遵循最长前缀匹配的原则。
默认路由条目为0.0.0.0/0 默认为静态
特定主机路由
:为某个主机配置路由信息,当有多条路由信息可选择的时候,遵循最长前缀匹配的原则。因为是人工配置的,所以为静态。
7.静态路由配置产生的错误情况
- 导致路由环路的问题
(1) 配置错误
在进行人工配置路由信息的过程中,产生了网络号填写错误的情况,这可能会导致环路错误
(2)聚合不存在的网络
实例
:
解决办法
:
当有不存在的网络的时候,我们把不存在的网络放在R2的路由表中,并把它的下一跳设置为黑洞接口,这是路由器的一个虚拟接口,会丢弃IP数据报。
(3)网络故障
实例
:192.168.1.0/24出现故障,R1中的路由表会删除该路由器自动生成的这个网络的直连条目,这时候,如果再往这个IP发送数据包,R1会将它转发到默认的0.0.0.0/0,这就导致下一跳又回到了10.0.0.2 导致路由环路。
解决办法
:添加针对该网络的黑洞路由条目。
如果一段时间后,故障解除,那么路由表中会自动生成一个与该路由器直连的网络号,黑洞路由条目将被设置为无效,如果之后再次出现故障,该网络的黑洞路由再次被设置为有效,直连网络被删除。
8.路由选择协议
路由选择协议分为静态路由和动态路由。
(1)路由选择协议概述
(2)因特网所采用的路由选择的主要特点:
(3)有关分层次网关协议:
分层次的目的就是为了可以在一个自治系统内部使用不同的协议,在自治系统外部使用不同的协议。
(4)常见的路由选择协议
9.有关路由器的结构:
路由器由路由选择部分和分组转发部分组成。
- 路由选择部分
- 处理路由报文,根据报文内容进而来更新自己的路由表(转发表是由路由表得到的,一般不严格区分二者,为了简化分析)
- 定期发送路由报文,告诉其他路由器自己的路由信息
- 分组处理部分
- 根据转发表转发报文:如果找不到匹配的条目,丢弃该分组。否则按照匹配的条目进行转发。
- 路由器各个端口应该具有输入缓冲区或者输出缓冲区。
什么是路由报文?
路由器之间用于交换路由信息的一个报文类型。
10.路由信息协议RIP
(1)概述
(2)基本工作原理
好的路由就是距离短的路由,不考虑带宽。
(3)基本工作过程
(4)路由条目更新规则
11.边界网关协议----BGP
1.在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的。
2.自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)
3.BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
12.ICMP协议
(1)概述
- 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。
- 主机或路由器使用ICMP来发送差错报告报文和询问报文。
- ICMP报文被封装在IP数据报中发送。
(2)差错报告报文
有五种。
①终点不可达
如下图的例子,如果R1中没有H2的特定主机路由信息,默认路由,或者N3的路由信息,就会造成终点不可达。
②源点抑制
③时间超过
④参数问题
⑤改变路由(重定向)
(3)ICMP询问报文
(4)ICMP两个应用
①ping (Packet InterNet Group)分组网间探测
- 用来测试主机或者路由器之间的连通性
- 应用层直接使用ICMP协议,没有通过运输层的TCP或者UDP协议
- 使用ICMP回送请求和回答报文
②跟踪路由 traceroute命令
- 用来测试IP数据报从源主机到目的主机在传输过程中经过了哪些路由器
- 实现方式:
如果H1想要知道到达H2所要经过的路由信息,H1会首先发送ICMP报文,该报文封装在IP数据报中,并将TTL的值设置为1。R1收到之后,将此报文的TTL的值减一变为0。并向源主机发送ICMP报文(时间超过报文)。然后H1在发送TTL=2的报文,以此类推。
13.虚拟专用网VPN
(1)什么是VPN?
利用公用的因特网作为本机构个专用网之间的通信载体,这样的专用网又叫做虚拟专用网。
(2)为什么使用VPN?
因为IPv4地址有限,目前处于紧缺的状态。所以一个机构能申请到的IPv4地址也是远远少于这个机构局域网中的主机的数量的。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,也就是说,这些地址只能在本局域网中使用,不能作为共有地址被其他网络访问。下面三个地址是无需申请,可自由分配的专用地址。
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
(3)VPN原理
如下图所示,一个公司的两个部门,一个在北京,另一个在上海。给两个部门分配的IP地址如下图,私有地址只能在机构内部通信,而不能用于于因特网中的主机通信。 所以,部门A和部门B至少各需要一个全球可用的公有IP地址。然后通过给内部的IP数据报进行加密,进而来实现类似于机构内部网络之间进行通信。
14.网络地址转换NAT
(1)概述
Network Address Translation
- 虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
- 1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
- NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
(2)原理
①使用NAT路由器
该转换方法存在一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信。
②使用NAPT路由器
由于绝大多数的网络应用都是使用运输层协议TCP或UDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换NAPT(Network Address and Port Translation)。