Network
网络层
网络层两种服务的比较
虚电路服务 (面向连接)
参照电信网络,网络层间的通信需要 建立连接->通信->释放资源
- 建立连接
该连接是在已有网络的基础上建立的逻辑的虚拟连接
- 通信
除了建立连接时的数据报需要有目标地址字段外其余均只需要虚电路编号字段.
由网络层来保证可靠传输
- 建立连接
数据报服务 (无连接)
当前计算机网络所采用的服务
每个数据报均需要有目的地址字段且在转发时自行选择转发路由由主机来保证可靠传输,网络层仅提供灵活的,无连接的,尽最大努力的交付
虚拟互联网
网络互连的方式
- 物理层 转发器,集线器
- 数据链路层 网桥
上述两层仅起到了拓展局域网的作用,并未实际上互连两个网络,因为互连网络的网络号是相同的
- 网络层 路由器
- 其它层 网关
虚拟互联网 -IP网
不存在一个单一网络能满足各种需求,因此全球存在数百万的异构网络,但是使用IP协议进行通信的各网络,在网络层上可忽略异构性,看作一个统一的网络。
IP地址
分配给主机某接口的在全球互联网范围内唯一的32位的地址
若某主机有多个接口,则该主机会拥有多IP地址,该主机称为多归属主机
IP地址的编址方式
编址原则: 1.唯一性 2.连续性 3.实意性 4.可拓展性
- 分类的IP地址
将各IP地址划分为若干个固定类,每个类均分为两个字段
- 网络号
标识网络的在全球互联网范围内唯一的号
- 主机号
标识网络中主机的在指定网络中唯一的号
分类的IP地址不仅能指明一台主机,还能指明该主机所在的网络地址
类别
每一类地址的网络号中均含有类别位
点分十进制法
由于在计算机中表示为32位的二进制数,不好辨别,因此每8位为一组,并转换为10进制表示IP地址
优势
分等级的IP地址可以使IP地址管理机构在给主机分配地址时 只分配第一级的网络号,且转发报文时也仅使用网络号作目的地址,可以简化路由器的转发表,而主机号由分配网络号的单位自行指定
子网的划分
构成超网
IP地址与物理地址
- 物理地址
48位的全球唯一的接口的链路层协议地址
为传输数据的每段链路标识出发送方和接收方
- IP地址
32位全球唯一的接口的网络层协议地址
为传输数据的整个通路标识出原始发送方和最终接受方
通信示意图
issues
- 主机H1向路由器R1发送MAC帧时怎么知道HA3接口的物理地址的???
ARP地址解析协议
概要
通过某接口的IP地址”解析“出其物理地址
- 每台主机均配有ARP高速缓存器,用来存放IP地址与物理地址的映射关系
过程
简单总线网络
ARP请求 A-B
发送方先检查缓存器有无对应IP地址的物理地址,无则发送ARP请求帧 帧格式 MA-IPA-M(广播)-IPB
ARP应答 B->A
接收方收到请求帧后检查IPB与自己的IP地址相同则填补自己的物理地址并发送应答帧
更新表
A收到应答帧后更新缓存器中映射关系,并发送MAC帧
路由器连接的网络
ARP请求 H1->H2
发送方先检查缓存器有无对应IP地址的物理地址,无则发送ARP请求帧 帧格式 MA-IPA-M(广播)-IPB
ARP应答 R1->A (欺骗)
路由器收到请求帧后,将自己的物理地址填入发回应答帧
更新表
A收到应答帧后更新缓存器中映射关系,并发送MAC帧,此时H1将HA3当做H2的物理地址,被欺骗
优化
每台主机启动时都会发送请求自己物理地址的ARP请求帧
- 用来更新其他主机高速缓存器的映射关系
- 用来检查链路中是否存在同名的IP地址
在其他主机发送请求帧与应答帧时,总线上的其他网络也可更新自己高速缓存器中的映射关系
IP数据报
IP数据报格式
首部
数据部分
固定首部 20bit
32bit
- 4bit 版本 IPV4 or IPV6
- 4bit 首部长度 以4字节为单位代表IP数据报首部的总长度 若不足4的倍数将由填充字段填充
- 区分服务 8bit
- 16bit 总长度 IP数据报的总长度 以1字节为单位 总长度受链路层数据MTU的限制可能需要进行分片
32bit
- 16bit 标识
- 3bit 标志 最低位MF 为1代表不是最后一个分片 中间位DF 为1代表该片不再允许分片
- 补充 分片:IP数据报数据部分超过链路层MTU限制 需要将数据报分片发送 将数据部分划分后添加首部(与原首部有不同)后发送
- 16bit 片偏移 以8字节为单位 代表该片的数据部分在原始IP数据报中距离首部的长度
因此IP数据报的数据部分必须为8的倍数,各分片数据部分也为8的倍数 若存在递归分片
片偏移仍然代表相对于原始IP数据报的偏移
32bit
- 8bit 生存时间TTL 防止数据报无限制的转发而无法交付(存在环)
以跳数为单位 路由器每转发一次该数据报TTL减一 减至0丢弃该数据报 - 8bit 协议 决定该数据报交付于上层哪一协议
- 16bit 首部校验和 校验传送的数据报首部是否正确 只有首部
发送方:数据报首部每16bit为单元取反相加(16bit校验位取0) 结果取反作校验位
接受方:数据报首部每16bit为单元取反相加 结果为0则正确保留 否则丢弃
32bit
源地址
32bit
目的地址
可选字段 0-40bit 但是必须为4的倍数
填充
路由转发算法
- 特定主机路由
- 默认主机路由
- 由IP数据报首部提取目的地址D,得目的网络地址N
- 若该路由器与目的主机直接相连,则直接交付,否则间接交付至3
- 查找该目的网络地址在路由表中有无特定主机路由 有则转 无则至4
- 查找该目的网络地址在路由表中有无下一条路由地址,无则至5
- 若有默认主机路由,则转发至默认主机路由接口 无则6
- 转发过程出错
划分子网
问题
- 两级IP地址不灵活,无法马上在以网络单位开辟一个新网络
- IP地址空间利用率低
解决方案
划分子网
对外仍表现为一个网络,仅仅为网络内部划分,分组转发时,先由其他路由器按照目的网络号转发到与目的网络直接相连的路由器,再由该路由器按照目的网络的子网号找到目的子网,交付IP数据报
三级IP地址
网络号子网号
主机号
子网掩码
作用
用来标识网络号的位数和主机号的位数
32bit 对应bit为网络号bit则为1否则为0
将子网掩码与对应IP地址作&运算即可得到子网的IP地址
默认子网掩码
即使不划分子网也可使用子网掩码,这样便无需查找类别位来判断属于哪一类网络
A类地址 255.0.0.0
B类地址 255.255.0.0
C类地址 255.255.255.0
划分过程
- 确定子网的位数 总和考虑子网数与容纳主机数(考虑广播地址与网络地址)
- 确定每个子网的子网掩码
- 确定子网的网络地址 –主机号全为0
- 确定子网的广播地址 –主机号全为1
- 确定子网的可用IP范围
优化
块大小等于256-子网掩码
通过确定块大小 可以确定每个子网掩码的网络地址
每个子网的广播地址等于下一子网的网路地址-1
需考虑进位情况
划分子网的路由转发算法
转发表中添加了一个子网掩码字段
- 由IP数据报首部提取目的地址D
- 将D与每一行的子网掩码&运算得到的目的网络地址N,若N与本行的目的网络地址匹配,若成功则转发至指明的下一条路由器,否则
- 转发失败
特定主机路由对应的子网掩码为255.255.255.255,网路地址为特定主机IP
默认主机路由对应子网掩码为0.0.0.0,网络号为0
构成超网
CIDR无分类编址
IP地址 ::= {<网络位>,<主机位>}
CIDR记法也成斜线记法 /+网络前缀所占的位数
*记法,网络前缀后加星号代表星号之前的为网络位
CIDR地址块
CIDR无分类编址将网络前缀相同的连续的IP地址组成一个地址块
路由表使用CIDR地址块的地址来查找路由网络
地址掩码
CIDR使用32位的地址掩码,斜线记法中/后面的数字为1的个数
最长前缀匹配
应当从匹配结果中选择具有最长网络前缀的路由,因为该路由地址块小,目的地址具体
ICMP协议
网际控制报文协议 Internet Control Message Protocol
为更有效的转发IP数据报和提高交付的机会
ICMP报文
ICMP报文封装在IP数据报中,作为其中的数据部分
ICMP差错报告报文
类型
- 终点不可达 3
- 时间超过 11
- 参数问题 12
- 改变路由 5
不发送的情况
- 对ICMP差错报告报文不发送ICMP差错报告报文
- 对多播地址的数据报不发送ICMP差错报告报文
- 对具有特殊地址的数据报不发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片不发送ICMP差错报告报文
ICMP询问报文
回送请求和应答 8/0 0/0
了解目的站是否可达以及目的站状态
时间戳请求和应答 13/14
用于时钟同步和时间测量
路由选择协议
内部网关协议 RIP
分布式的基于距离向量的路由选择协议
每个路由表需要额外维护一个距离向量(到达目的网路经过的路由器数+1)
特点
- 仅和相邻路由器交换信息
- 相邻路由交换整个路由表的信息
- 按固定时间间隔与相邻路由交换整个路由表的信息
收敛
整个自治系统的所有结点都得到了该系统中所有正确的路由选择信息的过程
距离向量算法
A收到B的RIP报文, 将此RIP报文中的所有下一条地址置为B,所有距离+1
逐个使用RIP报文中的目的网络地址与A中路由表的目的网络地址进行匹配
匹配成功
- 判断下一跳地址是否与B相同,相同则更新
- 下一条地址与B不相同,但是RIP报文中对应条目下的下一跳地址与目的网络距离更短,更新
- 否则,什么也不做
若3min还未收到相邻路由器的RIP报文,则将此路由器视为不可达的路由器且将与其距离设置为16
End




