第四章 网络层
4.1 概述
4.1.1 转发和路由选择
- 转发(forwarding):当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路
- 路由选择(routing):当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径
- 连接建立:网络层第三个重要的网络功能
–网络层的连接:一对节点之间的连接,所有属于这个连接的数据包遵循同一条路径
–传输层的连接:进程之间的连接,同一个数据包可能在网络层经不同路径
4.1.2 网络服务模型:定义了分组在发送与接收端系统之间的端到端运输特性
- 提供的服务
–确保交付
–具有时延上界的确保交付
–有序分组交付
–确保最小带宽
–确保最大时延抖动
–安全性服务 - 两个最重要的ATM服务模型
–恒定比特率
–可用比特率
4.2 虚电路和数据报网络
- 网络层能在两台主机之间提供无连接服务或连接服务,连接服务以源和目的主机间的握手开始,无连接服务则没有任何握手预备步骤
- 网络层和运输层在面向连接和无连接服务的差异
–在网络层,这些服务是由网络层向运输层提供的主机到主机的服务。在运输层中,这些服务则是运输层向应用层提供的进程到进程的服务
–网络层不能同时提供两种服务(面向连接的、无连接的)。仅在网络层提供连接服务的计算机网络称为虚电路(Virtual-Circuit,VC)网络;仅在网络层提供无连接五福的计算机网络称为数据报(datagram network)网络
–网络层连接服务除了在端系统中,也在位于网络核心的路由器中实现;运输层面向连接服务是在位于网络边缘
4.2.1 虚电路网络
- 虚电路的组成
–源和目的主机之间的路径
–VC号,沿着该路径的每段链路的一个号码
–沿着该路径的每台路由器的转发表表项 - 虚电路中有3个明显不同的阶段
–虚电路建立
–数据传送
–虚电路拆除
4.2.2 数据报网络
- 每当一个端系统要发送分组,它就为该分组加上目的端系统的地址,然后将分组推进网络中。当分组从源到目的地传输,它通过一系列路由器传递。这些路由器中的每台都使用分组的目的地址来转发该分组
4.3 路由器工作原理
- 组成成分:输入端口,交换结构,输出端口,路由选择处理器
- 关键功能:运行路由算法/协议(RIP,OSPF,BGP),将数据报从入链路传到出链路
4.3.1 输入端口
4.3.2 交换结构
- 经内存交换
–最简单、最早的路由器是传统的计算机,交换是在CPU的直接控制下完成的
–数据包被复制到系统的内存中
–速度受内存带宽限制(2个总线交叉/数据报) - 经总线交换
–输入端口经一根共享总线将分组直接传送到输出端口
–交换带宽受总线速率的限制 - 经互联网络交换
–克服总线带宽限制
–将数据报分段为固定长度的单元,通过结构切换单元。
4.3.3 输出端口
4.3.4 何处出现排队
4.4 网际协议(IP)
4.4.1 数据包格式
- IP数据报分片
–链路层协议能承受的网络层分组长度不同,一个链路层帧能承载的最大数据量叫做最大传送单元(Maximum Transmission Unit,MTU)
–过大的IP数据报会被分成多个较小的数据报(称为fragment,片)
- 说明:
–ID是初始数据报的标识号
–fragflag=1说明后面还有别的数据报,fragflag=0说明这是最后一个数据报
–offset指定该片应放在初始IP数据报的哪个位置
4.4.2 IPv4编址
- 概念
–IP地址:主机的32位标识符,路由器接口
–接口(interface):主机/路由器与物理链路之间的连接
A)路由器通常有多个接口
B)主机通常有一个接口
–IP地址与每个接口关联 - 子网
- 子网掩码(例子):233.1.1.0/24,其中的/24记法有时称为子网掩码,它指示了32比特中的最左侧24比特定义了子网地址
- 因特网的地址分配策略:无类别域间路由选择(Classless Interdomain Routing,CIDR),对于子网寻址,32比特的IP地址被划分为两个部分,并且也具有点分十进制数形式a.b.c.d/x,其中x指示了地址的第一部分中的比特数,32-x比特用于区分该组织的内部设备
- 获取一块地址
–因特网名字和编号分配机构
即ICANN(Internet Corporation for Assigned Names and Numbers)
A)分配地址
B)管理DNS
C)分配域名,解决争议 - 获取主机地址:动态主机配置协议(分配公网IP)
–动态主机配置协议,即DHCP(Dynamic Host Configuration Protocol)
A)允许主机自动获取(被分配)一个IP地址
B)也被称为即插即用协议(plug-and-play protocol)
–它是客户端 - 服务器协议
- 网络地址转换(Network Address Translation,NAT)(分配私网IP)
–所有离开本地的数据报有着相同的源NAT IP地址,不同的端口号
–不同内部主机由NAT转发表来区分
–本地网内的设备无法明确地寻址,外界看不到
–16位端口号字段,即单个LAN端地址同时连接60,000个
- UPnP:是一种允许主机发现并配置邻近NAT的协议
4.4.3 因特网控制报文协议(ICMP)
- 被主机和路由器用来彼此沟通网络层的信息
A)错误报文:无法访问的主机,网络,端口,协议
B)echo请求/回复(由ping使用)
4.4.4 IPv6
- 实现动机:IPv4的32位地址空间将耗尽
- IPv6数据报格式
–首部仅有40字节
–有效载荷长度:16比特,给出IPv6数据报中跟在首部后面的字节数量
–跳限制:转发数据报的每台路由器将对该字段的内容减1。如果跳限制计数到达0,则该数据报将被丢弃
–删除了分片重新组装、首部校验和,选项功能 - 从IPv4到IPv6的迁移
–建隧道(tunneling)
4.5 路由选择算法
- 根据算法是全局式还是分散式区分
–全局式路由选择算法(global routing algorithm):用完整的、全局的网络知识计算出源到目的地之间的最低费用路径。该算法常被称作链路状态算法,它必须知道网络中每条链路的费用
–分散式路由选择算法(decentralized routing algorithm):以迭代式、分布式的方式计算出最低费用路径。例子:距离向量算法(Distance-Vector,DV),每个节点维护到网络中所有其他节点的费用估计的向量 - 根据算法是静态还是动态区分
–静态路由选择算法(static routing algorithm):路由的变化非常缓慢
–动态路由选择算法(dynamic routing algorithm):周期性地运行或直接响应拓扑或链路费用的变化而运行 - 根据算法是负载敏感的还是负载迟钝的
–负载敏感算法(load-sensitive algorithm):链路费用会动态地变化以反映出底层链路的当前拥塞水平
–负载迟钝算法(load-insensitive algorithm):链路的费用不明显的反映当前(最近)的拥塞水平【当前因特网路由选择算法都是负载迟钝的】
4.5.1 链路状态路由选择算法(LS)
- Dijkstra算法(最短路径)
–D(v):到算法的本次迭代,从源结点到目的结点v的最低费用路径的费用
–p(v):从源到v沿着当前最低费用路径的前一结点(v的邻居)
–N’:结点子集;如果从源到v的最低费用路径已确知,v在N’中
4.5.2 距离向量路由选择算法(DV)
- 它是分布式的、迭代的、异步的
- LS和DV的对比
4.5.3 层次路由选择
- 问题:规模(路由器数目很大),管理自治
- 解决方案:自治系统(Autonomous System,AS)
–在相同的AS中的路由器全部运行相同的路由选择算法
–在一个自治系统内运行的路由选择算法叫做自治系统内部路由选择协议(“intra-AS” routing protocol)
–负责向本AS之外的目的地转发分组的路由器叫做网关路由器(gateway router)
–实践中,AS之间转发分组采用热土豆路由选择方法,即将分组转发给具有最小的最低费用的网关
4.6 因特网中的路由选择
4.6.1 因特网中自治系统内部的路由选择:RIP
- AS内部路由选择协议也被称为内部网关协议
- 路由选择协议(Routing Information Protocol,RIP)
–RIP路由器大约每30秒互相交互通告
–如果一台路由器一旦超过180秒没有从邻居听到报文,则该邻居不再被认为是可到达的
4.6.2 因特网中自治系统内部的路由选择:OSPF
- 开放最短路优先(Open Shortest Path First,OSPF)
–简介
–优点
4.6.3 自治系统间的路由选择:BGP(Border Gateway Protocol)
- 为每个AS提供进行以下工作的手段:
–从相邻AS处获得子网可达性信息
–向本AS内部的所有路由器传播这些可达性信息
–基于可达性信息和AS策略,决定到达子网的“好”路由 - 基础
–对于每条TCP连接,位于该连接端点的两台路由器称为BGP对等方(BGP peers)
–沿着该连接发送的所有BGP报文的TCP连接称为BGP会话(BGP session)
–跨越两个AS的BGP会话称为外部BGP(eBGP)会话
–在同一个AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)会话
–CDIR化的前缀(prefix)使得每个AS知道其相邻AS可到达哪个目的地 - 路径属性和BGP路由
–每个AS都有其全局唯一的自治系统号(ASN)【除了桩(stub)AS】
–当一台路由器通过BGP会话通告一个前缀时,它在前缀中包含一些BGP属性。带有属性的前缀称为一条路由(router)
–AS-PATH:包含前缀通告已经通过的AS
–NEXT-HOP:表示下一跳AS的特定内部AS路由器。(可以是从当前AS到下一跳AS的多条链路)
–网关路由器接收一台路由器通告时,它使用输入策略(import policy) - BGP路由选择
- 路由选择策略