第四章 网络层
4.1 网络层提供的两种服务
虚电路服务、数据报服务。P115
虚电路服务得建立连接,可靠通信由网络保证,分组按照发送顺序到达主机
数据报服务可靠通信由用户主机保证,每个分组由路由进行转发
4.2 网际协议IP
与IP协议配套三个协议
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
网络互连中间设备
- 物理层中间设备叫转发器(集线器)
- 数据链路层中间设备 网桥或桥接器(交换机)
- 网络层中间设备 路由器
- 网络层以上中间设备 网关
IP地址给每个主机/路由器每一个接口分配全世界唯一32位标识符
五类IP地址:IP地址=网络号+主机号
特殊IP地址
IP地址特点
- IP地址由网络号主机号组成,网络号IP管理机构分配,主机号获得网络号单位分配,路由器仅根据网络号转发分组,即路由只根据目的站的IP地址的网络号进行路由选择
- 实际IP地址是标志一台主机和一条链路的接口,一台主机要连接到两个网络上就必须要有两个IP地址
- 一个网络是指具有相同网络号的主机集合,所以转发器(集线器)和网桥(交换机)的连接起来的若干个局域网仍算一个网络,具有不同网络号的局域网必须使用路由器互连
- 路由器总是有多个IP地址,因为它要有多个接口去连接多个网络
重点:IP地址和硬件地址 P122
设备收到MAC帧后根据MAC帧的目的地址决定是否收下,在收下之前无法得到被封装的IP数据报
硬件地址用于物理层和数据链路层,IP地址用于网络层,MAC帧首部封装最新发出主机/路由器硬件地址和要到达的下一个目的主机/路由器硬件地址,MAC的源地址和目的地址一直随传输在变,而IP数据报封装的始终不变的信息发出主机IP地址和目的主机IP地址
怎么知道应该在MAC帧首部填入什么硬件地址
- 采用地址解析协议ARP,ARP协议划归网络层
- 网络层使用IP地址但在链路上实际传输数据最终使用硬件地址
- 解决办法:每台主机设有ARP高速缓存,里面存有本局域网上各主机和路由器的IP地址到硬件地址映射表
- ARP对高速缓存中每一个映射地址项目都设置生存时间,超过生存时间的项目直接删除,因为防止某个主机更换硬件地址(即网络适配器)后,其他主机找不到它
- 如何得到IP地址相应硬件地址:通过广播ARP请求分组,对应主机收到后回复ARP响应分组
- ARP是解决同一个局域网上主机或路由器的IP地址和硬件地址映射问题
- 你要转发到另外网络上的主机,直接发送往路由器,不需要知道远程主机的硬件地址
为什么不直接用硬件地址,用抽象的IP地址呢?
- 因为由各种各样网络存在,它们使用不同硬件地址,要使这些异构网络能互相通信得采用很复杂的硬件地址转换工作,主机完成这项工作很困难
IP数据报格式
在路由表中对每一个路由最主要两个信息:(目的网络地址,下一跳地址),根据目的网络地址找到下一跳地址,只有到达最后一个路由器,才试图向目的主机进行直接交付
特定主机路由:对特定目的主机指明一个路由
默认路由:除了目的网络不是本网络的路由,还有被指定的某些路由,只要目的网络是其他网络,一律选择默认路由
待转发数据报如何找到下一跳地址
- 路由器收到待转发数据报
- 从路由表中得出下一跳路由器IP地址
- 下一跳路由器IP地址不填入IP数据报,而是交于数据链路层的网络接口软件,网络接口软件用ARP协议将IP地址转换为硬件地址
- 硬件地址封装于MAC帧
分组转发算法 P134
- 从数据报提取目的IP地址D,得出目的网络地址N
- N是直接与路由器相连的网络,直接交付,否则属于间接交付,执行(3)
- 路由表有目的地址为D的特定主机路由,把数据报传送给相应路由器,否则执行(4)
- 路由表有到达N的路由,把数据传送给路由表所指明的下一跳路由器,否则执行(5)
- 若路由器有一个默认路由,把数据报传送给路由表指明的默认路由,否则执行(6)
- 报告转发分组出错
路由表没有指明到某个网络的完整路径,只指明到某个网络应当先到某个路由器,即下一跳路由器
如果主机要传送的信息在本地局域网内,不需要经过路由器
4.3划分子网和构成超网
划分子网:三级IP地址 ::={<网络号>,<子网号>,<主机号>}
子网掩码:子网掩码与主机IP地址逐位相与=网络地址=网络号+子网号
使用子网后:路由表必须要有子网掩码、目的网络地址、下一跳地址
划分子网增加灵活性,减少网络主机数
无分类编址CIDR IP地址 ::={<网络前缀>,<主机号>}
128.14.25.4/20,说明网络前缀为20
构成超网,最长前缀匹配
4.4 网际控制报文协议ICMP
目的:为了更有效转发IP数据报和提高交付成功机会,允许主机或者路由器报告差错情况的报告。ICMP是IP层协议,ICMP报文封装在IP数据报中
ICMP报文分为ICMP差错报告报文和ICMP询问报文
ICMP询问报文有两种:
- 回送请求和回答
- 时间戳请求和回答
- 应用:分组网间探测PING
4.5互联网的路由选择协议
自治系统AS(autonomous system),一个大ISP一般就是一个AS,一个AS内部使用路由选择协议是一致的
路由选择协议
- 内部网关协议IGP:一个自治系统内部使用的路由选择协议,RIP,OSPF协议
- 外部网关协议EGP:源主机和目的主机处于不同自治系统,两个AS内部路由选择协议可能不一样,当数据报传到系统边界时,需要一种协议传到另一个AS,使用较多的是BGP-4
RIP(路由信息协议)协议,分布式路由协议,优点简单,但很少被使用,一般在规模较小的网络中使用,只考虑距离。距离向量协议
- 特点:仅和相邻路由交换信息,路由交换的是当前路由器知道的所有信息,即路由表,按照固定时间间隔交换信息
- 距离向量算法:
- 路由收到相邻路由器X发来的RIP报文,包括目的网络N、距离d、下一跳路由器Y,意思是X从Y路径到目的网络N的距离为d,修改,把下一跳地址Y改为X,d=d+1
- 若路由表没有目的网络N,直接添加该项目,若有目的网络N,且下一跳地址为X直接替换项目,若有目的网络N,但下一跳不是X,则比较两个项目距离d,若X路径小,则替换项目
- 若三分钟没收到相邻路由器更新路由表,标记相邻路由器不可达,距离设置为16
- 特性:好消息传播快,坏消息传播慢P158
OSPF(开放最短路径优先)协议
三个特点
- 向本自治系统所有路由器发送信息,使用的方法是洪泛法
- 发送的信息是与本路由器相邻的所有路由器链路状态,链路状态=与哪些路由器相邻+度量(费用、距离、时延、带宽)
- 只有链路的状态发生变化时才使用洪泛法发送信息
各路由器之间频繁交换链路状态信息,最后所有路由器都能构建链路状态数据库P159,为了适应规模大的自治系统,OSPF划分区域
五种分组
相邻路由器每隔十秒钟要交换问候分组,确认邻站是可达的
OSPF基本操作
只要一个路由器的链路状态发生改变使用可靠的洪泛法向全网更新链路状态
一个路由器的链路状态只涉及到相邻路由器的连通状态与互联网的规模无关,所以当网络规划很大时OSPF协议比RIP协议好
外部网关协议BGP:路径向量协议
之所以要用BGP(边界网关协议):互联网规模太大,自治系统之间路由选择用RIP和OSPF协议实现不现实
配置BGP时,每个自治系统至少选择一个BGP发言人,发言人往往是BGP边界路由器,BGP发言人之间交换信息必须建立TCP连接交换网络可达性信息,即要到某个网络要经过一系列自治系统,发言人根据收到的路由信息找出各自治系统中较好的路由。BGP发言人交换路径向量
BGP-4的四种报文:OPEN、UPDATE、KEEPLIVE、NOTIFICATION
路由器构成
- 路由选择部分/控制部分:核心构件-路由选择处理机,路由选择处理机任务根据路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息来维护路由表
- 分组转发部分
- 一组输入端口:得对收到分组进行物理层、链路层、网络层处理
- 一组输出端口:得对收到分组进行网络层、链路层、网络层处理
- 交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组发往一个合适的输出端口,转发表从路由表中得出,包含完成转发功能所必须的信息,比如说转发表每一行得包括到达目的网络的输出端口和某些MAC地址的映射
4.6 IPV6
IPV6相比IPV4区别
- 地址空间:IPV6地址128位,IPV4地址32位
- 灵活的首部格式:定义可选的扩展首部放在有效载荷中
- 改进的选项
- 支持即插即用(即自动配置),因此IPv6不需要使用DHCP
- …
IPv6使用冒号16进制法
双协议栈:一部分主机/路由器装有IPv4和IPv6协议栈,既能与IPV4系统通信,也能与IPV6系统通信,双协议栈的主机同时具有IPv4地址和IPv6地址
双协议栈主机怎么知道目的主机采用哪一种地址?
使用域名系统DNS进行查询,DNS返回IPv4地址,双协议栈主机源地址使用IPv4地址,DNS返回IPv6地址,双协议栈主机源地址使用IPv6地址
IPv6数据报进入IPv4网络,首部直接转换为IPv4首部,但再次转换为IPv6数据报时,首部某些字段无法恢复,解决办法-隧道技术,进入IPv4网络时将IPv6数据报直接包装成IPv4数据报,此时得改变首部协议字段的值为31来告知双协议栈主机它采用了隧道技术
IP多播即在互联网上进行多播,多播标识符就是D类地址,多播地址只能用于目的地址,不产生IGMP差错报文,多播分为在互联网范围进行多播(路由器收到分组时复制成多个副本),还有局域网上进行硬件多播。
硬件多播,以太网地址与IP地址的关系,两个IP多播组转为硬件多播地址可能是一样的,所以收到多播数据报的主机还要在IP层进行过滤
实现IP多播需要IGMP协议,也需要多播路由选择协议
网际组管理协议IGMP,它是让连接在本地局域网的多播路由器知道本局域网上是否有主机参加或者退出了某个多播组
4.8虚拟专用网VPN和网络地址转换NAT
计算机使用在仅在本机构中有用的IP地址,也就是特点格式的专用地址,使用这种地址的互连网络称本地互联网,利用公用互联网作为机构专用网之间的通信载体可称为虚拟专用网VPN,专用网之间在互联网传输内容时要加密
网络地址转换NAT:专用网内部分配到本地IP地址现在又想和互联网上主机通信,需要通过NAT路由器(安装了NAT软件)具有的全球IP地址与外部互联网通信
NAT地址转换表
通过NAT路由器的通信得由专用网的主机发起,这样它能在转换表中维持映射关系,维持一直接入互联网的状态,此时路由器的全球IP地址被占用,所以当NAT路由器有n个全球IP地址,专用网同时可有n台主机接入互联网。所以专用网内的主机不能充当服务器使用,因为互联网上的客户发起申请资源请求时,NAT互联网不知道将目的IP地址转为哪个本地IP地址,转换表里的IP地址映射关系是会变的,根本保证不了IP地址被转化成对应的服务器IP地址,使用端口号的NAT
4.9 多协议标记交换MPLS
让分组携带叫做标记的小整数,分组到达交换机,读取标记,用标记检索转发表,根据标记在链路层进行转发