四、网络层
4.1 网络层服务
网络层完成的功能:
网络层核心功能:
- 路由和转发功能
- 连接建立功能
网络层提供的一些服务模型:
4.2 虚电路和数据报网络
4.2.1 虚电路网络
之所以是虚电路,因为使用分组交换而不是电路交换进行数据报传输
虚电路尽管不是一个实际的电路交换,但是仍然借用了一些电路交换的术语
VC的具体实现:
虚电路信令协议:
现在的Internet使用数据报服务,没有使用虚电路
4.2.2 数据报网络
IP地址是一个32位的地址,如果都缓存在路由器的数据报转发表里面,是不可能的
可以建立一个 "ip地址范围"->"输出链路" 的转发表
但是,往往地址范围的划分不够完美
最长前缀优先匹配:
- 在检索转发表时,优先选择与分组目的地址匹配前缀最长的入口(entry)
数据报网络和虚电路网络的对比:
4.3 IPv4协议
Internet网络层功能
主机和路由器的网络层实现的功能:
4.3.1 IP数据报
IP数据报的格式:
- 版本号字段占用4位:IP协议的版本号,如果是IPv4则是4,IPv6则是6
- 首部长度字段4位:IP分组首部长度
-- 注意,每进一位代表4个字节,因为4位长度最多表示数字15,需要把4位组成的数字乘以4来表示首部长度。eg: 1000 -> 8*4=32个字节 - 服务类型(TOS)占8位,致使期望获得哪种类型的服务。一般情况下不适用,取0
- 总长度占16位,IP分组的总字节数(首部+数据),于是最大IP分组长度65535B,最小的IP分组首部20B,IP分组可以封装的最大数据655355-20=65515B
- 生存时间8位:IP分组在网络中可以通过的路由器数量(跳步数),经过一次分组,路由器使TTL-1,为0时丢弃分组
- 协议8位:指示IP分组封装的是哪个协议的数据报,实现复用/分解,6为TCP,17为UDP
- 首部校验和16位:实现对IP分组首部的差错检测
- 源IP地址和目的IP地址:各占16位,分别标志发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址
- 选项字段占长度可变,范围在1~40B:携带安全、源选路径、时间戳和路由记录等内容
4.3.2 IP数据报分片
最大传输单元MTU
由于不同链路的MTU不同,当路由器MTU1 > MTU2时产生传输问题。
在某些时候,可以将大IP分组分片。注意,分片在目的主机进行组装
在首部的标识中,标识一个IP分组
注意片偏移量以8位单位
IP分片的过程:
4.3.3 IP编址
IP子网
4.3.4 有类IP地址
有类编址方法,一种二分编址方法:
一些有特殊意义的特殊IP地址:
私有IP地址
4.3.5 IP子网和子网划分
使用主机ID部分进行子网划分
引入子网掩码,来进行子网划分
一个C类子网划分的例子:
子网掩码的应用:
4.4 CIDR与路由聚集
CIDR无类地址:
可以提高IPv4地址空间分配效率,可以把多个子网聚合为一个较大的子网,构造超网。又称为路由聚集
如下图,将右边的ip地址聚合为一个大的子网
解决黑洞现象:
下面的子网的某一段地址位于上面子网的地址范围内,如果没有机制能够将信息发送到组织1,则会造成黑洞现象,数据无法到达。
所以需要下面的子网和网络共同记录这个组织的地址范围,在路由匹配时,依照最长前缀匹配优先原则,选择更加具体的路由。
4.5 DHCP协议
动态主机配置协议
如何获得IP地址?
通过硬编码:
DHCP 动态主机配置协议 Dynamic Host Configuration Protocol
DHCP协议:
工作过程:
4.6 NAT
网络地址转换技术
NAT产生的动机:
如何实现?
一个NAT内部网络使用端口号标识内部的主机,端口号用16bit表示,可以同时支持60000多并行连接
NAT存在的问题:
解决方法:
4.7 ICMP协议
互联网控制报文协议
iCMP报文的格式:
4.8 IPv6简介
IPv6数据报的格式:
其他改变:
IPv6地址表示形式:
IPv4和IPv6如何共存?
4.9 路由算法
将网络抽象成图,链路就是边的费用
4.9.1 链路状态路由算法
实际上就是Dijkstra算法
4.9.2 距离向量路由算法
实际上就是Bellman-Ford算法
4.9.3 层次路由
一种路由策略
自治系统间路由如何选择的问题,有多个网关可以到达的情况:
4.10 Internet路由
4.10.1 RIP协议
A转发到C后,通告路由器D,路由器D更新到z网的路由表
失效问题:
RIP路由表是由应用程序实现的:
Comments | 0 条评论