计算机网络第五章--网络层
计算机网络第五章--网络层
- 引言
- 虚电路和数据报网络
- 连接和无连接服务
- 数据报网络提供网络层的无连接服务
- 虚电路网络提供网络层的连接服务
- 传输层:面向连接服务在网络边缘的端系统中实现
- 网络层:面向连接服务在端系统及网络核心的路由器中实现
- 虚电路
- 源主机-目的主机路径的行为类似于电话网络的行为
- 在数据传输之前,需要为每个呼叫建立连接
- 网络功能复杂、端系统设备简单
- 数据报网络
- 特点
- 路由器:不需要维护端到端连接的状态
- 没有网络等级的“连接”的概念
- 使用目的主机的地址进行分组转发
- 网络层服务模型简单,端系统功能复杂(由运输层等高层实现)
- 数据转发
- 数据报转发表:目的地址范围对应输出链路
- 最长前缀匹配
- 特点
- 连接和无连接服务
- 路由器的工作原理
- 两个核心功能
- 运行路由算法/协议(OSPF、RIP、BGP)
- 将分组从路由器的输入链路传送到正确的输出链路
- 输入端口功能
- 第一个线路端接模块:将一条物理链路端接到路由器的物理层;
- 第二个数据链路处理模块:实现路由器的数据链路层功能;
- 第三个查找与转发模块:实现查找与转发功能,以便分组通过路由器交换结构转发到适当的输出端口;
- 交换结构:将分组从输入端口缓冲交换到恰当的输出端口缓存中
- 经内存的交换结构
- 输入端口与输出端口之间的交换由CPU(选路处理器)控制完成;
- 输入端口与输出端口类似I/O设备:
- 当分组到达输入端口时,通过中断向选路处理器发出信号,将分组拷贝到处理器内存中;
- 选路处理器根据分组中的目的地址查表找出适当的输出端口,将该分组拷贝到输出端口的缓存中。
- 经总线的交换结构
- 输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预。
- 经纵横式crossbar(交换矩阵)的交换结构
- 纵横式交换机:由2n条总线组成,n个输入端口与n个输出端口连接。
- 到达输入端口的分组沿水平总线穿行,直至与所希望的输出端口的垂直总线交叉点:
- 若该条垂直总线空闲,则分组被传送到输出端口;
- 否则,该到达的分组被阻塞,必须在输入端口排队。
- 经内存的交换结构
- 两个核心功能
- IP协议(划重点)
- IP数据报
- 20个字节的首部长度
- 分片和重组
- MTU:数据链路帧的数据区的最大字节数
- IP地址
- 简介
- IP 地址: 分配给主机或路由器接口的标识符
- 每个接口有一个IP地址
- IPV4:32个二进制位长(4字节),常用点分十进制表示;
- IPV6:128个二进制位长(16字节)常用冒号分隔表示
- IPv4
- IP地址结构
- 网络号:指明主机所在网络的编号
- 主机号:主机在网络中的编号
- 传统的IP地址分类
- 全0表示本地地址,全1表示在本地网络中向所有机广播。
- A类地址(1. 0. 0. 1-127.255.255.254):利用IP地址的第一个字节作为网络地址,最高位为0,其余的三个字节作为主机地址。
- B类地址(128.0.0.1-191.255.255.254 ):利用IP地址的前两个字节作为网络地址,最高位为10,其余的两个字节作为主机地址
- C类地址(192.0.0.1-223.255.255.254 ):利用IP地址的前三个字节作为网络地址,最高位为110,最后一个字节作为主机地址
- 本地地址localhost(127.0.0.1-127.255.255.254 ):这是预留的一组IP地址,主要是用来识别主机本身的地址
- 私有地址(10.x.x.x, 172.16.x.x-172.31.x.x, 192.168.x.x ):局域网所使用的地址段,在公网上不能被路由
- IP地址结构
- 简介
- 划分子网
- 方法:从主机号借用若干个比特作为子网号,剩下的主机位为主机号
- 子网掩码:子网掩码长为32位比特,其中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于主机号。
- 子网划分:对某个子网来说,主机号全0的地址不能用,它被用做表示该子网的子网号;主机号全1的也不能用,它用于本子网的广播。因此每个子网所能容纳的主机数是2^N-2,N是主机号位数。
- 无分类域间路由CIDR
- 使用斜线记法,又称为CIDR记法来区分网络前缀和主机号,即在IP地址后面加上一个斜线“/”,斜线后面用一个数字指定网络前缀的长度。
- 动态主机配置协议DHCP(应用层协议)
- 主机广播 “DHCP DISCOVER”消息
- DHCP 服务器用 “DHCP OFFER” 消息响应
- 主机请求IP地址: “DHCP REQUEST” 消息
- DHCP 服务器确认 “DHCP ACK/NACK” 消息
- DHCP 终止租用期 “DHCP RELEASE” 消息
- 网络地址转换NAT
- 动机: 对外部网络来讲,本地网络只用一个IP地址
- 在路由器上,通过NAT穿透实现本地地址和外网地址的转换
- 因特网控制报文协议ICMP
- 用于主机路由器之间彼此交流网络层信息
- 差错报告: 不可到达的主机, 网络,端口,协议
- 请求/应答 (用于ping,traceroute)
- 位于IP之上
- 因为ICMP消息是装载在IP分组里的
- Traceroute
- 源端发送一系列的UDP分组给目的端
- 当第n个分组到达第n个路由器时
- 路由器丢弃该分组
- 并给源端发送一个ICMP报文(type11, code 0)
- 这个报文包含了路由器的名称和IP地址
- 当源端收到ICMP报文时,计算传输往返时间RTT
- 对每个TTL作三次
- 用于主机路由器之间彼此交流网络层信息
- IPv6
- 固定长度的40字节首部
- 冒号十六进:69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
- 从 IPv4 到 IPv6过渡
- 双栈:一些路由器具有双重栈 (v6, v4) 能够在两种格式中转换
- 隧道: 在穿过IPv4路由器时,IPv6分组作为 IPv4分组的负载
- IP数据报
- 路由和选路(重点、难点)
- 选路算法
- 路由的基本概念
- 默认路由器:与主机直接相连的路由器,又叫第一跳路由器。
- 路由算法:是确定一个分组从源路由器到目的路由器所经路径的算法
- 路由算法分类
- 全局路由算法:所有路由器拥有完整的网络拓扑信息和链路费用信息。
- 链路状态路由算法LS:必须知道网络中每条链路的费用。
- 分布式路由算法:以迭代的、分布式的方式计算最低费用路径。
- 距离向量路由算法DV:每个节点维护到网络中所有其他节点的费用(距离)的估计向量。
- 全局路由算法:所有路由器拥有完整的网络拓扑信息和链路费用信息。
- 链路状态选路算法(Dijkstra最低费用路径算法)
- 基本思想:以源节点为起点,每次找出一个到源节点的费用最低的节点,直到把所有的目的节点都找到为止。
- 术语定义
- c(x,y):表示从节点x到y的链路费用;
- D(v):表示从源节点到目的节点v的当前路径的费用;
- p(v):表示从源节点到目的节点v的路径上的前驱节点(例如w是v的前驱节点);
- N’:表示已经找到最低费用路径的节点集合。
- 算法描述
- 1. 初始化结点D(v)=c(u,v)
- 2. 找出一个到源节点的费用最低的节点w,并以此更新其它点D(v)值
- D(v)=min[D(v),D(w)+c(w,v)]
- 3. 重复步骤2,直到添加所有网络节点
- 构建最低费用路径树、转发表
- 路由的基本概念
- 距离向量路由算法DV
- 最低费用表示
- Bellman-Ford方程:dx(y) = minv{c(x,v)+ dv(y)}
- dx(y):节点x到节点y的最低费用路径的费用。
- v: 节点x的邻居节点。
- c(x,v)+dv(y):x与某个邻居v之间的直接链路费用c(x,v)加上邻居v到y的最小费用。即x经v到节点y的最小的路径费用。
- minv :从所有经直接相连邻居节点到节点y的费用中选取的最小路径费用。
- 距离向量DV路由算法
- 1. 每个节点初始化自己的距离向量表
- 2. 和相邻节点交换自己的距离向量表,利用BF方程计算最低费用更新
- 3. 重复步骤2,直到距离向量不再更新
- 链路费用改变与链路故障
- 某链路费用减少时情况
- 节点之间链路费用减少的“好消息”在网络中能迅速传播。
- 某链路费用增加时情况
- 产生“选路回环”:为到达x, y通过z选路,z又通过y选路。
- 链路费用增加的“坏消息”传播很慢!
- 迭代次数计算
- 某链路费用减少时情况
- 最低费用表示
- 选路算法
- 层次选路
- 自治系统
- 一个区域内的路由器组成集合“自治系统” (AS,autonomous system )
- 同一个自治系统的路由器运行相同的路由协议——区域内路由协议
- 不同自治系统内的路由器可以运行不同的区域内路由协议
- 域(自治系统)内路由选择
- RIP:路由信息协议
- OSPF:开放最短路径优先
- IGRP:内部网关路由协议(Cisco 所有)
- RIP(Routing Information Protocol)
- 距离向量算法
- RIP 通告:每隔30秒,通过响应报文在邻居间交换距离向量
- RIP链路失败及恢复 :若180秒后没有收到通告,则认为邻居死机或链路中断
- OSPF(Open Shortest Path First)
- 用链路状态算法
- 分发LS 分组
- 每个节点具有拓扑图
- 路由计算使用 Dijkstra算法
- 每个router都广播OSPF通告,OSPF通告里为每个邻居路由器设一个表项(记录每个邻居的链路特征和费用)。
- 通告会散布到 整个 自治系统 (通过洪泛法)
- OSPF信息直接通过IP传输 (不是 TCP 或 UDP)
- 用链路状态算法
- Internet 域间选路:BGP
- 选路方法
- 从相邻AS获取子网可达信息
- 向该AS内部的所有路由器传播这些可达性信息
- 基于该可达信息和AS策略,决定到达子网的“好”路由
- 允许一个子网向Internet的其他部分通告它的存在 “I am here”
- 选路方法
- 自治系统