计算机网络第四章阅读笔记
概述(网络层的三个重要功能)
转发(forwarding)
当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路
网际协议(IP),网络层编址,IPv4数据报格式,网络地址转换(NAT),数据报分段,因特网控制报文协议(ICMP),IPv6
路由选择(routing)
当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。
两种流行算法(链路状态和距离矢量算法),等级制路由选择方法(因特网自治系统内部:RIP,OSPF,IS-IS;因特网自治系统之间:BGP),广播和多播的路由选择
连接建立(connection setup)
允许发送方和接收方建立所需的状态信息通过某种方式进行交流
ATM、帧中继、MPLS
虚电路和数据报网络
虚电路(Virtual-Circuit, VC)
仅在网络层提供连接服务的计算机网络
虚电路组成
- 源和目的主机之间的路径(一系列链路和路由器)
- VC号,沿着该路径的每段链路的一个号码
- 沿着该路径的每台路由器中的转发表表项
数据报网络(datagram network)
仅在网络层提供无连接服务的计算机网络
每台路由器有一个将目的地址映射到链路接口的转发表。根据最长前缀匹配规则进行转发
前缀匹配 | 链路接口 |
---|---|
11001000 00010111 00010 | 0 |
11001000 00010111 00011000 | 1 |
11001000 00010111 00011 | 2 |
其他 | 3 |
路由器
输入端口
线路端接 | 数据链路处理 | 查找,转发,排队 |
---|---|---|
. | (协议,拆封) | 根据转发表的副本查找输出端口(转发表由路由选择处理器计算和更新) |
对于双向链路,其输入和输出端口在同一线路卡上成对出现
交换结构
- 经内存交换
- 经总线交换
- 经纵横式网络交换
输出端口
排队 | 数据链路处理 | 线路端接 |
---|---|---|
(缓存管理) | (协议,拆封) | . |
输出端口排队
分组调度程序(packet scheduler)
用于在排队的分组中选择一个来发送
例如:先来先服务调度(FCFS),加权公平排队(WFQ)
主动队列管理(Active Queue Management, AQM)
丢包:路由器缓存空间耗尽,无内存可用于存储到达的分组,造成分组被丢弃
主动队列管理:在缓存填满前便丢弃(或在首部加标记)一个分组,以便向发送方提供一个拥塞信号,例如:随机早期检测(Random Early Detection, RED)
输入端口排队
线路前部(Head-Of-the-Line, HOL)阻塞:在一个输入队列中排队的分组必须等待通过交换结构发送(即时输出端口是空闲的),因为它被位于线路前部的另一个分组所阻塞
网际协议
名词
- IP数据报分片(ID,偏移,标志flag)
- 子网(subnet)
- 子网掩码(network mask)
- 无类别域间路由选择(CIDR, Classless Interdomain Routing):因特网地址分配策略
IP地址分类
https://blog.csdn.net/liufangbaishi2014/article/details/51954437
IPv6变化
- 扩大的地址容量:IPv6将IP地址长度从32位增加到128位,IPv6用8组16位来表示,4位数字用冒号分隔,比如2001:0db8:0000:0000:0000:ff00:0042:8329
- 简化的首部:IPv6舍弃了许多原有的字段,使数据报能够更快更灵活的处理
- 流标签和优先级
路由选择算法
链路状态(Link State, LS)路由选择算法
p283-26
Step | N’ | D(t),p(t) | D(u),p(u) | D(v),p(v) | D(w),p(w) | D(y),p(y) | D(z),p(z) |
---|---|---|---|---|---|---|---|
0 | x | ∞ | ∞ | 3,x | 6,x | 6,x | 8,x |
1 | xv | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
2 | xvu | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
3 | xvuw | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
4 | xvuwy | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
5 | xvuwyt | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
6 | xvuwytz | 7,v | 6,v | 3,x | 6,x | 6,x | 8,x |
距离向量(Distance-Vector, DV)路由选择算法
p284-29
u | v | x | y | z | |
---|---|---|---|---|---|
v | ∞ | ∞ | ∞ | ∞ | ∞ |
x | ∞ | ∞ | ∞ | ∞ | ∞ |
z | ∞ | 6 | 2 | ∞ | 0 |
u | v | x | y | z | |
---|---|---|---|---|---|
v | 1 | 0 | 3 | ∞ | 6 |
x | ∞ | 3 | 0 | 3 | 2 |
z | 7 | 5 | 2 | 5 | 0 |
u | v | x | y | z | |
---|---|---|---|---|---|
v | 1 | 0 | 3 | 3 | 5 |
x | 4 | 3 | 0 | 3 | 2 |
z | 6 | 5 | 2 | 5 | 0 |
u | v | x | y | z | |
---|---|---|---|---|---|
v | 1 | 0 | 3 | 3 | 5 |
x | 4 | 3 | 0 | 3 | 2 |
z | 6 | 5 | 2 | 5 | 0 |
AS(Autonomous System)内部路由选择协议(内部网关协议)
路由选择信息协议(Routing Information Protocol, RIP)
- RIP是一种距离向量协议
- 跳:从源路由器到目的子网(包括目的子网!)的最短路径所经过的子网数量
- RIP响应报文/RIP通告
- 使用UDP报文段进行传输
开放最短路优先(Open Shortest Path First, OSPF)
核心:使用洪泛链路状态信息的链路状态协议,Dijkstra最低费用路径算法
优点:
- 安全:能够鉴别OSPF路由器之间的交换
- 允许使用多条路径
- 对单播和多播路由选择的综合支持
- 支持单个路由选择域内的层次结构
AS(Autonomous System)间的路由选择:BGP(Border Gateway Protocol, 边界网关协议)
基础
关键词:
- BGP对等方:位于TCP连接端点的两台路由器
- 外部BGP会话:跨越两个AS的BGP会话
- 内部BGP会话:在同一个AS中的两台路由器之间的BGP会话
- 通过179端口的半永久TCP连接来交换路由选择信息
- 使用CDIR化的前缀(prefix)表示子网或者子网的集合
路由属性和BGP路由
- 自治系统号(Autonomous System Number, ASN):全局唯一标识一个自治系统
- 路由:带有BGP属性的前缀
- AS-PATH属性:包含前缀的通告已经通过的AS,用于检测和防止循环通告
- NEXT-HOP属性:是一开始某AS-PATH的路由器接口,用于正确配置转发表&TODO;
BGP路由选择
根据一定的规则从多条路由中选择出一条,P266
路由选择策略
防止客户网络承担提供商网络之间的流量
防止主干提供商出现免费搭车的现象
广播路由选择算法
N次单播
无控制洪泛
缺陷:广播风暴
受控洪泛
序号控制洪泛(sequence-number-controlled flooding)
每个节点维护一个序号列表,在接收广播分组时先检查分组是否在列表中,如果在就丢弃该分组。
反向路径转发(Reverse Path Forwarding, RPF)
仅当分组到达的链路正好位于自己返回源的最短单播路径上
生成树广播
最小生成树:所有生成树中费用最小的生成树
节点不必知道整棵树,只需要知道哪些邻居是它在生成树中的邻居
基于中心的方法:节点向中心节点单播加入树报文
多播
问题
- 如何标识多播分组的接收方
- 如何为接收方的分组编址
因特网组管理协议(IGMP)
- 承载在IP数据报中,协议号为2
- membership_query, membership_report, leave_group
多播路由选择算法
使用一棵组共享树的多播路由选择
使用基于中心的方法构造多播路由选择树,与对应多播组相关的路由器才经过单播发送加入报文
使用一棵基于源的树的多播路由选择
使用RPF算法+剪枝
因特网中的多播路由选择
距离向量多播路由选择协议(Distance Vector Multicast Routing Protocol, DVMRP):反向路径转发+剪枝
协议无关的多播(Protocol Independent Multicast, PIM)路由选择协议:
稠密模式:洪泛与剪枝反向路径转发技术,类似DVMRP
稀疏模式:聚集点建立多播分发树
源特定多播(Source-Specific Multicast, SSM):发送给多播接收方的分组必须来自一个指定的源地址,限制了来源从而减少网络要求,提高了安全性