计算机网络第4章网络层第四章网络层2020年4月7日2目录网络层概述虚电路和数据报网络路由器的工作原理网际协议:因特网中的转发和编址选路算法因特网中的选路第四章网络层2020年4月7日34.1网络层概述网络层的目标实现主机到主机的通信网络层在计算机网络中的地位为运输层提供支持运输层实现进程到进程的通信运输层功能的实现依赖于网络层提供的服务为实现从源主机到目标主机成功的移动数据分组,整个路径上的每一台分组交换机上均需实现网络层网络层属于通信子网(或网络核心)的功能从现在开始,讨论从网络边缘进入到了网络核心第四章网络层2020年4月7日44.1网络层概述网络层的主要功能在全局范畴为主机之间的通信进行选路,选路的结果反映为分组交换机上的转发表分组交换机上的网络层根据转发表以及分组头部信息,将分组向适当链路进行转发对于面向连接的网络层服务,提供连接建立的功能ATM、X.25和帧中继第四章网络层2020年4月7日51230111到达分组的首部值选路算法本地转发表首部值输出链路01000101011110013221第四章网络层2020年4月7日64.1网络层概述分组交换机的分类根据链路层首部信息进行转发的——链路层节点交换机根据网络层首部信息进行转发的——路由器第四章网络层2020年4月7日74.1网络层概述网络层可能提供的服务确保交付具有时延上界的确保交付有序分组交付确保最小带宽确保最大时延抖动安全性服务……第四章网络层2020年4月7日84.1网络层概述几种实际使用的网络层服务模型网络体系结构服务模型带宽保证无丢失保证排序定时拥塞指示因特网尽力而为无无无不维持无ATMCBR保证恒定速率是有序维持无拥塞ATMABR保证最小速率无有序不维持提供指示第四章网络层2020年4月7日94.2虚电路和数据报网络网络层提供的服务面向连接的服务——虚电路,需事先握手无连接的服务——数据报,无需握手网络层与运输层相应服务的区别网络层是向运输层提供主机到主机的服务,而运输层是向应用层提供进程到进程的服务网络层仅提供上述两种服务中的一种,不同时提供两种,而运输层则同时提供两种运输层的服务在网络边缘的端系统中实现,而网络层的服务则在整个网络中实现,含路由器第四章网络层2020年4月7日104.2虚电路和数据报网络虚电路目标使收发双方之间的路径表现得如同电话线路一般工作机制数据开始流动之前,呼叫建立;流动结束后要断开每一个分组携带虚电路的标识(而不是目的主机的地址)路径上的每一个路由器必须为进行中的连接维持连接状态信息运输层的连接仅涉及到两个端系统(endsystem)链路,路由器资源(带宽、缓冲区)可以分配给虚电路目的:为了达到类似线路交换的性能第四章网络层2020年4月7日114.2虚电路和数据报网络虚电路的组成从源到目的主机的路径VC号,沿着该路径的每段链路的一个号码沿着该路径的每台路由器中的转发表第四章网络层2020年4月7日124.2虚电路和数据报网络入接口入VC#出接口出VC#11222226311837217197387…………路由器R1的转发表:路由器维持连接状态信息!122232123VC号接口号R1R4R2R3为什么一条虚电路上的每条链路虚电路号不同!1:减少VC字段长度2:如果沿着虚电路的所有链路用共同的VC号,路由器不得不发送大量交换报文以确认一个全局VC号第四章网络层2020年4月7日134.2虚电路和数据报网络信令协议用于建立、维护以及断开虚电路用于ATM,帧中继,X.25网络现在的因特网已经不再使用该协议1.启动呼叫2.入呼叫3.接受呼叫4.呼叫连接5.数据流开始6.接收数据应用层传输层网络层数据链路层物理层应用层传输层网络层数据链路层物理层第四章网络层2020年4月7日144.2虚电路和数据报网络数据报网络在网络层没有连接建立过程路由器:在端到端的连接中不维护连接状态信息在网络层不存在“连接”的概念传输报文时使用目的主机地址信息同一对主机间的报文可能会走不同的路径1.发送数据2.接收数据应用层传输层网络层数据链路层物理层应用层传输层网络层数据链路层物理层第四章网络层2020年4月7日154.2虚电路和数据报网络目的地址范围链路接口11001000000101110001000000000000到01100100000010111000101111111111111001000000101110001100000000000到11100100000010111000110001111111111001000000101110001100100000000到211001000000101110001111111111111其他3可能有超过40亿个地址!如何减小转发表?:采用地址前缀比配法第四章网络层4.2虚电路和数据报网络最长前缀匹配通过比较地址前缀进行转发,可以大大减小转发表的大小前缀匹配接口110010000001011100010011001000000101110001100011100100000010111000112其他3DA:11001000000101110001100010101010例DA:11001000000101110001011010100001从哪个接口转发?从哪个接口转发?最长前缀匹配原则:向与最长前缀匹配的链路接口转发第四章网络层2020/4/717数据报还是虚电路:为什么?因特网:总的思想是把网络层设计的尽可能简单,把复杂的功能(如按序可靠交付,拥塞控制等放到端系统)数据交换在计算机之间进行“弹性”服务,没有严格的实时性要求“聪明”的端系统(计算机)可进行自适应,执行控制,出错恢复网络内部比较简单,“边缘上”比较复杂许多种链路类型具有不同的特性统一服务标准十分困难ATM电话网络演化而来人们的交流:严格要求实时性,和可靠需要服务承诺“傻瓜式”的端系统电话机复杂性在网络内部第四章网络层2020年4月7日184.3路由器的工作原理路由器的结构路由选择路由选择处理机路由选择协议路由表3输入端口3交换结构输入端口输出端口分组转发转发表分组处理输出端口……11133122223——网络层2——数据链路层1——物理层第四章网络层2020年4月7日194.3路由器的工作原理输入端口分散式交换:按照给出的目的地址,使用输入端口的内存中存储的路由选择表,查找输出端口目标:以“线路速度”完成输入端口的处理排队:如果数据报到达的速度超过了输入端口将数据报转交给交换结构的速度,则后到的分组会暂时阻塞线路端接数据链路处理(协议、拆封)网络层处理排队、查表、转发■■■交换结构物理层:位流级的接收数据链路层:e.g.,以太网第四章网络层2020年4月7日204.3路由器的工作原理输入端口排队如果输入端口的处理速率超过了交换结构的速率,输入端口就可能产生排队线头阻塞:在输入队列中排队的分组必须等待通过交换结构发送,因为它被位于线头的另一个分组阻塞了。即使该分组要转发的输出端口是空闲的(图中绿色的分组)。输入缓冲区溢出可导致排队时延和丢包!第四章网络层2020年4月7日214.3路由器的工作原理交换结构第四章网络层2020年4月7日224.3路由器的工作原理经内存交换(第一代路由器CiscoCatalyst8500)在输入端口和输出端口之间的交换是在CPU(路由处理器)的直接控制下完成的分组被拷贝到系统内存中,然后再CPU的控制下输送到输出端口转发速度受限于内存的带宽(内存带宽/2)输入端口输出端口内存系统总线第四章网络层2020年4月7日234.3路由器的工作原理经总线交换输入端口经一根共享总线将分组直接传送到输出端口总线交换的问题:交换速度受限于总线的带宽现在,总线带宽超过1Gbps对于运行在接入网或企业网的路由器,通过总线交换的转发速度是足够的。(区域网和主干网则不行)Cisco5600:通过一个32Gbps的背板总线来交换分组第四章网络层2020年4月7日244.3路由器的工作原理经互联网络克服总线带宽限制由2n条总线组成,将n个输入端口和n个输出端口连接设计先进:将长度变化的IP分组分片成固定尺寸的信元,通过交换结构对信元进行转发Cisco12000:通过互联网络交换速度可达60Gb/s第四章网络层2020年4月7日254.3路由器的工作原理输出端口缓存管理:当交换结构将分组交付给输出端口的速率超过输出链路速率时调度原则:在数据报队列中选择数据报进行传输线路端接数据链路处理:(协议、封装)排队(缓存管理)■■■■■交换结构第四章网络层2020年4月7日264.3路由器的工作原理输出端口排队当通过交换结构到达的分组速率超过了输出链路的速率时,需要对分组进行缓存输出端口缓冲区溢出会导致分组的排队和丢失!第四章网络层2020年4月7日274.3路由器的工作原理需要多少缓存来吸收流量负载的波动?RFC3439规定(相对少量的TCP流):平均缓存量为平均往返时延(如250ms)和链路容量的乘积:例如:C=10Gps,链路需要2.5Gb的缓存最近的理论:当大量的TCP(N)流经过一条链路时需要的缓存为:RTTC.N第四章网络层2020年4月7日284.3路由器的工作原理输出端口的分组调度程序:调度方法先来先服务FCFS加权公平排队WFQ该程序在提供服务质量保证方面起着关键作用第四章网络层2020年4月7日294.3路由器的工作原理主动队列管理AQM:在缓存填满前便丢弃(或在首部加上标记)一个分组,以便向发送方提供一个拥塞信号。随机早期检查算法RED为输出队列长度维护一个加权平均值若平均队列长度小于最小阈值minth,则分组到达时,该分组被接纳进入队列若队列满或平均队列长度大于最大阈值maxth,则分组到达时,该分组标记或丢弃若分组到达时平均队列长度在[minth,maxth]之间,则该分组以某种概率值被标记或丢弃,此概率值一般是与平均队列长度、minth和maxth有关的函数值。第四章网络层2020年4月7日304.4网际协议:因特网中的转发和编址主机、路由器的网络层组件转发表选路协议•路径选择•RIP,OSPF,BGPIP协议•编址规则•数据报格式•分组处理规则ICMP协议•错误报告•路由器信令运输层:TCP,UDP链路层物理层网络层第四章网络层2020/4/731IP数据报格式版本数据报长度(字节)32比特数据(可变长度,典型情况下是一个TCP或UDP报文段)16bit标识首部校验和生存时间32bit源IP地址IP协议版本号(4bit)头部长度(4bit)(4字节为单位)报文的寿命(在每个路由器,该值减1)用于分片和重组整个数据报的长度(首部+数据),以字节为单位。用来递交有效负荷的上层协议首部长度服务类型服务类型(8bit)标志分段偏移上层协议32bit目的IP地址选项(如果有的话)例如时间戳,记录路由信息,定义要访问的路由器等。IP报文可以有多长的负载?20字节TCP首部20字节IP首部=40字节+应用层数据注意在每个路由器都要重新计算。为什么?第四章网络层2020年4月7日3231固定部分可变部分048161924版本标志生存时间上层协议标识服务类型数据报长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报首部IP数据报的格式第四章网络层IP数据报的格式(续)一个IP数据报由首部和数据两部分组成。首部的前一部分长度是20字节,后一部分为可变长度。(1)IP数据报首部固定部分中的各字段版本:4bit,指IP协议的版本。通信双方使用的版本必须保持一致,目前使用的是IPV4。首部长度:4bit。以4字节为一个单位。服务类型:8bit,用来获取更好的服务。前3bit