网络层
概述
网络层的主要任务是实现网络的互连,进而实现数据包各网络之间的传输。
实现网络层任务,需要解决以下问题:
- 网络层向运输层提供怎样服务(可靠传输还是不可靠传输)
- 网络层的寻址问题
- 路由选择问题
因特网概述

网络层提供的服务

- 面向连接的虚电路服务
- 无连接的数据报服务
- 对比
由于TGP/IP体系结构的因特网的网际层提供的是简单灵活。无连接的、尽最大努力交付的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。
IPv4地址
概述
IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。

IPv4编址经历的历史阶段

IPv4表示
32比特的IPv4地址不方便阅读、记录以 及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。

分类编址的IPv4地址

A类地址

B类地址

C类地址

练习
判断是哪类地址
注意判断全0和全1是根据主机号判断。

IPv4的识别

如何分配IP地址
注意在65534那里连接路由器接口也需要一个IP地址,所以是65535,B类网络少了一个,所以使用A类网络,其他路由器接口也算一个IP地址。

划分子网的IPv4地址
概述

举例一

举例二

划分子网后的IP地址

举例三

举例四
B类网络的子网划分,注意只需寻找一个即可。

默认子网掩码

无分类编址的IPv4地址
概述

CIDR的划分

划分举例一
聚合C类网除的是一个C类网的数量。
地址掩码就是网络为全取1,主机位全取0。

划分举例二

路由聚合
概述
为了不浪费路由器,找出共同的最长公共前缀,使用CIDR划分。

举例一
可以知道192.168.4.3为广播地址,所以所有可分配地址都可以收到,而可分配地址只有2个。

举例二

IPv4的应用规划

定长子网掩码的划分举例
分析需要的子网数量

分析需要多少个子网,从而划分

划分子网细节

进行分配

可以这样容易造成IP地址的浪费,每个子网只能分32个IP地址给他,他使用不了就会造成浪费。所以可以升级为变长的子网掩码。
变长的子网掩码划分举例

使用变长划分
在该地址块中给左图所示的网络N1~N5分配子块,分配原则是“每个子块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点”。建议先给大的子块分配。

练习

IP数据报的发送和转发
概述

过程
不同网络的发送有直接交付和间接交付

C发送给F,C先和自己子网掩码相与,F在于C的子网掩码相与,然而不相等,所以C和F不在一个网络中。

主机C如何知道路由器R的存在呢?可以将路由器接口的IP地址作为默认网关,发送给路由器

路由器收到IP数据报后如何转发?

IP数据报首部中的地址

查表转发,与地址掩码进行相与之后与目的网络进行匹配

匹配到相同

转发

本网络中发送
注意路由器不转发广播地址。

发送到另一个网络

练习
练习一

练习二

练习三

静态路由配置及其可能产生的路由环路问题
概念
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。
- 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
- 一般只在小规模网络中采用。
使用静态路由配置可能出现以下导致产生路由环路的错误
- 配置错误
- 聚合了不存在的网络
- 网络故障

举例
静态路由配置

默认路由举例

配置默认路由是0.0.0.0

删除以前的路由

特定主机举例


静态路由配置错误导致路由环路




也就是错误配置IP地址,导致一致循环回路转发。

聚合了不存在的网络而导致路由环路





可以发现聚合了一些不存在的路由,转发时导致路由环路。

解决
可以设置黑洞路由

此时转发直接丢弃

网络故障导致路由环路

此时发送不了192.168.1.0/24地址,所以转发到默认路由,此时就造成了路由环路

解决
此时路由器会自动的检测到网络断开时,设置为黑洞路由

就不会产生路由环路

检测到恢复后,又会自动失效黑洞配置

路由器都是可以自动检测到是否可以转发来设置是否是黑洞网络。
路由器选择协议
概述

因特网所采用的路由选择协议的特点

因特网采用分层的路由选择协议

常见的路由选择协议

路由器的基本结构

RIP协议
概述

基本工作原理
选择最短的路径

基本工作过程

RIP的路由条目的更新规则
C的路由表更新在D中,需要将距离加一,进行更新。
- 如果下一跳相同,那么直接更新
- 如果是新的网络,添加
- 到达相同目的,取最小的距离更新

练习
练习一


练习二
距离为16是定义为网络不可达

RIP存在“坏消息传播的慢”的问题



存在的问题,也就是如果出现路由环路,那么会一致加距离,达到16才会设置为不可达,但是此时长达数分钟

练习
此时R3会通告R2,表示不可达

R2更新之后,但是R1也会更新路由条目,所以最后是3

总结

OSPF协议
概述

工作原理
计算代价

OSPF交互问候分组

链路状态通告LSA,采用洪泛法发送

链路状态数据库LSDB存储LSA

基于LSDB进行最短路径的优先SPF计算

OSPF的五种分类类型
- 类型1,问候(Hello)分组:用来发现和维护邻居路由器的可达性。
- 类型2,数据库描述(Database Description)分组:向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 类型3,链路状态请求(Link State Request)分组:向邻居路由器请求发送某些链路状态项目的详细信息。
- 类型4,链路状态更新(Link State Update)分组:路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态。
- 类型5,链路状态确认(Link State Acknowledgment)分组:这是对链路状态更新分组的确认分组。
基本工作过程

OSPF在多点接入网络中路由器邻居关系的建立

区域

总结

EGP
概述
外部网关协议。

工作原理

由于受政治和国家影响,并非寻找一条最佳路由

BGP发言人

适用范围

BGP-4有以下四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化。
- UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由。
- KEEPALIVE(保活)报文:用来周期性地证实邻站的连通性。
- NOTIFICATION(通知)报文:用来发送检测到的差错。
练习
练习一
BGP封装在TCP报文中。

练习二

总结

IPv4数据报的首部格式

版本
- 占4比特,表示IP协议的版本。
- 通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。
首部长度
- 占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。
- 最小十进制取值为5,表示lP数据报首部只有20字节固定部分;
- 最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分。
可选字段
- 长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施。
- 可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
填充字段
- 确保首部长度为4字节的整数倍。使用全0进行填充。
区分服务
- 占8比特,用来获得更好的服务。
- 该字段在旧标准中叫作服务类型,但实际上一直没有被使用过。
- 1998年,因特网工程任务组IETF把这个字段改名为区分服务。利用该字段的不同数值可提供不同等级的服务质量。
- 只有在使用区分服务时,该字段才起作用。一般情况下都不使用该字段。
总长度
- 占16比特,表示lP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位。
数据包分片的部分


标识,标志,片偏移用来进行IP数据报分片。
数据包分片操作

再将片二进行分片

生存时间TTL
- 占8比特,最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。
- 现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。
TTL作用
可以防止IP数据包兜圈。

协议

首部检验和

- 占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。
- IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。
- 由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部校验和,从而更快转发IP数据报。
源IP地址和目的IP地址

- 各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。
练习
练习一

注意:片偏移量不能为小数。所以此情况不符合。应该取能被8整除的最大整数。

练习二

IP数据报,包括目的的IP地址就有20字节,然而球的是目的地址,所以只有16字节在目的地址前,再加上封装成帧的前面有14字节的格式,所以从第31字节开始的后面四字节就是目的IP地址。

从图中可知,主机的默认网关就是路由器R,主机会将Web请求发送给默认网关,由默认网关将Web请求转发到因特网。

第二问

总结

网络控制报文ICMP
概述

ICMP差错报文
ICMP分为以下5种类型。
终点不可达

源点抑制

时间超时

参数问题

改变路由(重定向)

以下情况不应该发送ICMP差错报文

练习

ICMP询问报文

Ping

traceroute

原理
就是利用TTL,不断的发起ICMP询问报文。







总结

虚拟专用网VPN与网络地址转换NAT
概述

利用公用的因特网通信

提供了专用的私有地址

发送过程
当A发送给B时,源地址就是R1的IP,而目的地址就是R2的IP。

VPN

NAT
- 虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
- 1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
- NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。

内网访问外网可以通过NAT的配置的外网地址进行访问

而外网主机不能访问内网,因为NAT表中找不到对应的私有IP记录

总结

