网络层
任务
把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是:数据报
分组和数据报:无数的分组组成数据报,“父与子”的关系
功能
1、路由选择与分组转发 ——>找最佳路径
2、异构网络互联
3、拥塞控制
处理方法:
3.1 开环控制【静】:提前处理预想的拥塞
3.2 闭环控制【动】:等待有拥塞了再处理
数据交换
电路交换
特点:独占资源
优点:
1、通信时延小
2、有序传输
3、没有冲突
4、实时性强
缺点:
1、建立连接时间长
2、线路独占,使用效率低
3、灵活性差
4、无差错控制能力
报文交换
优点:
1、无需建立连接
2、存储转发,动态分配线路
3、线路可靠性较高
4、线路利用率高
5、多目标服务
缺点:
1、有存储转发时延
2、报文大小不定,需要交换设备有很大的缓存
分组交换
无连接服务:不预先为分组确定好传输路径,每个分组确定自己的传输路径,可能不同
连接服务:首先为分组确定传输路径【建立连接】,系列分组的传输路径相同,传输结束后拆除连接
1、数据报方式 :为网络层提供无连接服务
每个分组携带源和目的地址
路由器根据分组的目的地址转发分组:基于路由协议/算法构建“转换表”,为每个分组独立选路
2、 虚电路方式:为网络层提供连接服务
虚电路将数据报方式和电路交换方式结合
虚电路:一条源主机到目的主机类似电路的路径,路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息
通信过程:
总结:
优点:
1、无需建立连接
2、存储转发,动态分配线路
3、线路可靠性较高
4、线路利用率高
5、相对于报文交换,存储管理更容易
缺点:
1、有存储转发时延
2、需要传输额外的信息量
3、乱序到目的主机时,要对分组排序重组
什么是虚电路网络?什么是数据报网络?
参考:1
网络层可以在两台主机之间提供无连接服务或连接服务。由网络层向运输层提供
虚电路网络:仅提供连接服务
数据报网络:仅提供无连接服务
虚电路网络
一条虚电路由如下组成:源和目的主机之间的路径(一系列链路和路由器)、VC(virtual circuit)号,沿着该路径的每段链路的号码、以及该路径上每台路由器中的转发表。
属于一条虚电路的分组将在它的首部携带一个VC号。一条虚电路在每条链路上可能具有不同VC号,故每台中间路由器必须用一个新的VC号替代每个传输分组的VC 号。该新的VC号从转发表获得。
虚电路网络,每台路由器的转发表包括了VC号的转换【入接口,入VC号,出接口,出VC号】。无论何时跨越一台路由器创建一条虚电路,转发表就增加一个新表项。无论何时删除一条虚电路,沿着该路径每个表中的相应项将被删除(路由器必须为进行中的连接维持连接状态信息)。
一个分组沿着其路由在每条链路上不简单的保持相同的VC号的原因:
(1)逐链路代替VC号减少了在分组首部中VC字段的长度
(2)通过允许沿着该虚电路路径的每条链路有不同的VC号,大大简化了虚电路的建立。若沿着某路径的所有链路要求一个共同的VC号,路由器不得不交换并处理相当大的报文以约定一个共同的VC号用于一次连接。
虚电路中的3个阶段:
(1)虚电路建立。
在建立阶段,发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路。网络层决定发送方和接收方之间的路径,即该虚电路的所有分组要通过的一系列链路和路由器。网络层也为沿着该路径的每条链路决定VC号。最后,网络层在沿着路径的每台路由器的转发表中增加一个表项。
(2)数据传送。
(3)虚电路删除。
当发送方(或接收方)通知网络层它希望终止该虚电路时,就启动该阶段。网络层通常将通知网络另一侧的端系统结束呼叫,并更新路径上每台路由器中的转发表以表明该虚电路已不存在。
运输层连接建立和网络层连接建立区别:
运输层的连接建立仅涉及两个端系统,两个端系统独自决定运输层连接的参数(初始序号和流量控制窗口长度),端系统知道该运输层连接,但网络中路由器对这些完全不知情。
虚电路网络层,沿着两个端系统之间的路径上的路由器都要参与虚电路的建立,且每台路由器都完全知道经过它的所有虚电路。
端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路(即修改路由器表中的连接状态)的报文,被称为信令报文,用来交换这些报文的协议称为信令协议。
数据报网络
数据报网络是网络层无链接的服务。端系统每要发送一个分组,就为该分组加上目的端系统的地址,然后将该分组推进网络。数据报网路中不维护连接状态信息,但有转发状态信息。每个路由器使用一个分组的目的地址来转发该分组。路由器匹配目的地址时,使用最长前缀匹配规则。转发表大概每1~5分钟由路由算法更新一次。
接下来
图五:数据报网络传输示例
在路由器上,有两个重要的东西,一个是路由算法,用来确定通过网络的端到端路径;另一个是转发表,转发表确定了本路由器如何转发分组。需要注意的是对于转发表,目的地址是32位的IP地址,那么就有几十亿各IP地址,一个路由器不可能维护一个几十亿的表,所有转发表是按照地址的范围转发的,如图七。
图六:路由器结构示例
图七:按照地址范围转发过程示例
既然是按照范围寻址,那么就有一个匹配问题,在数据报网络中采用的是最长前缀匹配优先原则,具体方法不多说,直接看例子。
图八:IP最长匹配
总结
1、报文和分组交换都采用存储转发
2、传输数据量比较大,且传输时间远大于呼叫时间,选择电路交换,因为它传输时延最小
3、信道利用率来看,报文和分组交换由于电路交换,且分组交换时延更小
传输单元名词辨析
应用层: 报文
传输层:报文段
网络层:IP数据包、分组
数据链路层:帧
物理层:比特流
路由算法
静态路由算法
又叫“非自适应路由算法”:手动配置路由信息
优点:简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好
缺点:路由更新慢,增加网络负担
动态路由算法
又叫“自适应路由算法”:路由器间彼此交换信息,按照路由算法优化出路由表项
全局性:链路路由算法OSPF:所有路由器掌握完整的网络拓扑和链路复杂
分散性:距离向量路由算法 RIP:路由器只掌握物理相连的邻居及链路费用
优点:路由更新快,使用大型网络,及时响应链路费用或者网络拓扑变化
缺点:算法复杂,增加网络负担
分层路由协议
原因:
1、因特网规模大
2、许多单位的保密性需求
路由选择协议:
1、内部网关协议IGP :一个AS内使用的 RIP ,OSPF
2、外部网关协议EGP:AS之间使用的 BGP
自治系统AS:
RIP协议
是一种分布式的基于距离向量的路由选择协议,最大优点是简单
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的的网络的唯一最佳距离记录【一组距离】
“距离”:又称为“跳数”,即从源端口到目的端口所经过的路由器的个数:一路由器到直连的网络距离是1,RIP允许一条路最多包含15个路由器,16即是不可达
RIP只适用于小互联网
例如:R2的路由表
RIP协议和谁交换?
仅和相邻路由器交换
多久交换一次?
每30秒交换一次路由信息:路由器根据信息更新路由表,若超过180s没收到邻居的通告,则判定消失,并更新自己的路由表
交换什么?
交换的是自己的路由表
最后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”
RIP协议的报文格式
结论:RIP是应用协议,使用UDP传送
RIP协议“慢收敛”
距离向量算法
1、修改相邻路由器发来的RIP报文中所有表项
例如:对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1
2、对修改后的RIP报文中的每一个项目:
1、R1路由表中若没有Net3,则把该项目填入R1的路由表
2、R1路由表若有Net3,则查看下一跳路由器地址:
1、若下一跳是X,则受到的项目替换源路由表中的项目
2、若下一跳不是X,原来距离比X走的距离远则更新,否则不做处理
3、若180s没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,把距离设置为16
4、返回
OSPF协议
开放最短路径优先协议:“最短”是使用迪杰斯特拉提出的最短路径算法SPF
最主要的特征:使用分布式的链路状态协议
和谁交换?
使用“洪泛法”向自治系统内所有的路由器发送信息:每个路由器向相邻的路由器发送信息【广播】
交换什么?
与本路由器相邻的所有路由器的链路状态
多久交换?
当链路状态发生变化时,路由器才向所有路由器洪泛发送信息,最后所有路由器都能建立一个链路状态数据库,即全网拓扑图
OSPF的区域
OSPF分组
OSPF其他特点
链路状态路由算法
BGP协议
和谁交换?
与其他AS的临站BGP发言人交换信息
交换什么?
交换网络可达性的信息,即要到达某个网络所要经过的一系列AS
多久交换?
发生变化时更新有变化的部分
BGP协议交换信息的过程
交换网络可达性的信息,即要到达某个网络所要经过的一系列AS,当BGP发言人互相交换了可达性的信息后,各BGP发言人就根据采取的策略从收到的路由信息中找出到达各AS的较好路由
BGP发言人交换路径向量:
例如:
BGP协议报文格式
BGP协议的特点
BGP-4的四种报文
三种路由协议的比较
TCP/IP协议栈
最大传送单元MTU
链路层数据帧可封装的数据上限:1500B
如果超出,则分片 / 分组
IP数据报格式
版本:IPV4/IPV6?
首部长度:单位是4B,最小为5
区分服务:指示期望获取哪种类型的服务
总长度:首部+数据,单位是1B
标识:同一种数据报的分片使用同一标识
标志:只有两位有意义 x _ _
中间位DF:DF = 1【禁止分片】 DF=0【允许分片】
最低位MF:MF=1【后面还有分片】 MF=0【最后一片/没有分片】
片偏移:分片以后,某片在原分组中的相对位置,以8B位单位
生存时间(TTL):IP分组的保质期,每经过一个路由器-1,变成0则丢弃
协议:数据部分的协议
首部检验和:只检验首部
源IP地址和目的IP地址:各32位
可选字段:用于支持排错、测量以及安全措施
填充:全0,把首部补全4B的整数倍
IP地址
特殊的IP地址
私有IP
分类的IP
网络地址转换NAT
NAT
在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫做“NAT路由器”,它至少有一个有效的外部全球有效IP地址
子网掩码
由来:
1、IP地址空间的利用率低
2、两级IP地址不够灵活
子网划分
内部划分子网后,对外界不可知
实例
子网掩码 和 IP地址 逐微相与 = 子网网络地址
工具:
用子网时的分组转发
路由转发算法:
1、提取目的的IP地址
2、时候直接交付
3、特定主机路由
4、检测路由表中有无路径
5、默认路由0.0.0.0.0
6、丢弃,报告转发分组出错
无分类编址CIDR
无分类域间路由选择CIDR:
区别
1、消除了传统IP分类和子网划分的概念
CIDR记法:IP地址后加上“/“,后面写上网络前缀的位置
2、融合子网地址与子网掩码,方便子网划分
CIDR将网络前缀都相同的连续的IP地址组成一个”CIDR地址块“
实例:
超网
将多个子网聚合合成一个较大的子网,叫做构成超网,或路由聚合
方法:将网络前缀缩短
最长前缀匹配
使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长前缀的路由:前缀越长,地址快越小,路由越具体
实例:
ARP协议
完成主机或路由器IP地址到MAC地址的映射【解决下一跳走哪?】 ARP协议自动运行
ARP协议使用过程
1、检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到请求
2、目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
ARP协议的四种情况
1、主机A发送给本网络上的主机B,用ARP找到主机B的MAC地址
2、主机A发送给另一个网络上的主机B,用ARP找到本网络上的一个路由器(网关)的MAC地址
3、路由器发送给本网络的主机A,用ARP找到主机A的MAC地址
4、路由器发给另外一个网络上的主机B,用ARP找到本网络上的一个路由器的MAC地址
DHCP协议
主机如何获取IP?
1、静态配置
IP、子网掩码、默认网关
2、动态配置
DHCP
动态主机配置协议(DHCP)是应用层协议,使用客户/服务器方式,客户端与服务端通过广播进行交互,基于UDP
DHCP提供即插即用的机制:主机可以从服务器动态获取IP、子网掩码、默认网关、DNS服务器名称,允许地址重用,支持移动用户加入网络,支持在用地址续租
使用流程
1、主机广播DHCP发现报文
2、DHCP服务器广播DHCP提供报文
3、主机广播DHCP请求报文
4、DHCP服务器广播DHCP确认报文
ICMP协议
支持主机或路由器:
1、差错(异常)报告 :发送特定的ICMP报文
2、网络探询
报文类型
ICMP差错报文
1、终点不可达:但路由器或主机不能交付数据报时就向源点发送终点不可达报文
2、源点抑制:当路由器或主机由于拥塞而丢失数据报时,就向源点发送源点抑制报文
3、时间超过:当路由器接收到生存时间TTL = 0数据报时,除丢弃该数据报外,还要向元代了发送时间超过报文
4、参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
5、改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器
ICMP差错报文数据字段
不发送ICMP差错报文的情况
1、对ICMP差错报告报文不再发送ICMP差错报告报文
2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
3、对具有组播地址的数据报都不发送ICMP差错报告报文
4、对具有特殊地址的数据报不发送ICMP差错报告报文
ICMP询问报文
1、回送请求和回答报文 :测试目的站是否可达及相关情况【例如:ping】
2、时间戳请求和回答报文:用来进行时钟同步和测量时间
ICMP的应用
1、ping :测试两个主机之间的连通性,用到了ICMP回送请求和回答报文
2、traceroute :跟踪一个分组从源点到一个重点的路径,使用了ICMP时间超过差错报告报文
IPV6
出现的原因
1、地址不够用
2、改进首部格式
3、支持QoS
数据报格式
版本号:6
“流”:是互联网上从特定源点到特定终点的一系列数据报,所有属于同一个流的数据报都具有相同的流标签
下一个首部:标识下一个扩展首部或上层协议首部
IPV6的特点
1、地址为128位,更大的地址空间
2、 将IPV4的校验和字段移除,以减少每一跳的处理时间
3、将IPV4的可选字段移出首部,变成扩展首部,更加灵活
4、支持即插即用(自动配置),不需要DHCP
5、首部长度必须是8B的整数倍,IPV4是4B的整数倍
6、只在主机处分片,IPV4可以在路由器和主机处分片
7、附加报文类型“分组扩大”
表示形式
IPV6基本地址类型
1、单播:一对一通信,可做源地址和目的地址
2、多播:一对多通信,只做目的地址
3、任播 :一对多中的一个通信,可做目的地址
IPV6向IPV4过渡
1、双栈协议
2、隧道协议
IP数据报
ip数据报的三种格式
1、单播
例如:
2、广播
3、组播(多播)
ip组播地址
ip组播地址让源设备能够将分组发送给一组设备,属于多播组的设备将被分配一个组播ip地址
组播ip地址:
1、组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP
2、对组播数据报不产生ICMP差错报文
3、并非所有的D类地址都可以作为组播地址
硬件组播
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制01-22-5E开头,余下的6个十六进制位是根据IP组播地址的最后23
位转换得到的。
TCP/IP协议使用的以太网多播地址的范围是:
问题:
若是由五位不同,其他都相同的D类ip地址转换成MAC地址时,出现相同的怎办?
方法:
收到的组播数据报的主机,还要再IP层利用软件进行过滤,把不是本机要接收的数据报丢弃
IGMP协议
是让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
ICMP和IGMP都是IP数据报传递报文
IGMP的工作流程
组播路由选择协议
目的是找出以源主机为根节点的组播转发树
对不同的多播组对应于不同的多播转发树;对同一多播组,对不同的源点也会有不同的多播转发树
组播路由选择协议:
常用的三种算法:
1、基于链路状态的路由选择
2、基于距离-向量的路由选择
3、协议无关的组播(稀疏/密集)
移动IP
相关术语
移动ip技术:移动结点(计算机/服务器)为固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变
移动结点:具有永久IP地址的移动设备
归属代理(本地代理):一个移动结点拥有的就称“归属网络”,在归属网络中代表移动节点执行移动管理功能的实体叫做“归属代理”
例如:
网络层设备
路由器
是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
路由选择:
根据所选定的路由选择协议构造出来的路由表,同时经常或定期和相邻路由器交换路由信息而不断得更新和维护路由表
路由表:根据路由选择算法得出,主要用于路由选择,软件实现
分组转发:
交换结构:根据转发表(路由表得来)对分组进行转发
转发表:
端口处理:
输入端口中的查找和转发功能在路由器的交换功能中很重要
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少为0,这之后再进入的分组因没有存储空间而被丢弃
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
三层设备
路由器:可以互联两个不同网络层协议的网段
网桥:可以互联两个物理层和链路层不同的网段
集线器:不能互联两个物理层是不同的网段