网络层(一)
网络层概述
每台主机和路由器中都有一个网络层部分,路由器负责检查所有经过它的IP报文头部区域
两大重要功能:
- 转发(forwarding):将分组从路由器的输入链路移动到合适的输出链路
- 路由(routing):决定分组所采用的路由或路径(计算路径的算法——路由选择算法)
每台路由器有一个转发表,检查抵达分组的头部,使用这些头部值在其转发表里索引,来转发分组
第三种重要功能:建立连接(eg:ATM、frame relay、X.25、MPLS),两个终端主机,同时路由器也参与
网络服务模型
定义了分组在发送与接收端系统之间端到端运输特性:
- 确保交付
- 具有时延上界的确保交付
- 有序分组交付
- 确保最小带宽
- 安全性
【尽力而为服务】
虚拟电路和数据报网络
分组交换的两种网络
- 数据报网络:eg:Internet,提供网络层无连接服务
- 虚拟电路网络:eg:ATM、frame delay、X.25、MPLS,提供网络层连接服务
和运输层不同的地方:
对比 | 运输层 | 网络层 |
---|---|---|
服务 | process-to-process | host-to-host |
没有选择 | 连接和无连接可同时 | 连接或无连接 |
应用于 | 终端系统 | 网络核心和终端系统 |
虚拟电路网络
组成:
- 源主机和目的主机之间的路径
- VC编号,每个路径连接有一个编号
- 路由器中沿路径转发表中的条目
每个虚拟电路的分组都携带VC编号,而不是IP地址,VC编号在每条链路上会改变(由转发表决定)
虚电路中三个明显不同的阶段:虚电路建立、数据传送、虚电路拆除
虚拟电路的建立
- 信令报文(signaling message):终端系统发送到网络中来初始化或结束VC的报文、路由器间传输来建立VC的报文
- 信令协议:用来交换报文
和传输层建立连接不同点在于网络层VC的建立连接不仅包含两个终端,还包含了路由器
数据报网络
- 没有呼叫建立连接
- 路由器不保持端对端的连接状态
- 路由器中分组的转发使用目的主机地址(相同源-目的对的分组可能会走不同的路径)
因为IP地址很多,所以转发表里列出的是一系列范围地址而不是单个的
具体范围实例
路由器使用分组目的地址的前缀与该表中的表项进行匹配,存在多个匹配时,采用最长前缀匹配
从上图中提取前缀如下
当目的地址=11001000 00010111 00010110 10100001 使用0接口
当目的地址=11001000 00010111 00011000 10101010 使用1接口(由最长匹配知不匹配接口2)
Datagram:边缘复杂、核心简单
IP:网络协议
IP数据报格式(IPv4)
关键字段:
- 版本号:4比特
- 首部长度:不包含可变选项时,通常由20字节的首部,4比特
- 服务类型:8比特
- 数据包长度:首部+数据(很少超过1500字节),16比特
- 标识、标志、片偏移:与IP分片、重组有关
- 寿命(TTL,time-to-live):确保数据不会永远在网络中循环,每经一台路由器处理,TTL-1,减为0时丢弃该数据报
- 上层协议:指明IP数据报的数据部分应交给哪个特定的运输层协议(eg:6→TCP,17→UDP)
- 首部检验和:首部每两个字节当作一个数,反码求和;在每个路由器处都要重新计算(TTL字段值变化),检测到错误路由器通常会丢弃分组
【运输层不是已经差错检测了吗,为啥还要网络层差错检测?①IP层只是对IP首部计算检验和,而TCP/UDP是对整个报文段进行检测;②TCP/UDP和IP不一定属于同一个协议栈】
- 源和目的IP地址:32位
- 选项:时间戳、记录采用的路由、确认访问的路由器列表
IP分片
并不是所有链路层协议都能承载相同长度的网络层分组,链路层能承载的最大数据量为最大传送单元(maximum transmission unit,MTU)
问题:在不同链路层协议中MTU不同,可能会碰到大于MTU的IP分组,这时候需要用到分片,分开后在目的地重组
【重点】