网络层
网络层的数据平面功能:决定到达路由器的输入链路之一的分组如何转发到该路由器的输出链路之一。
无连接服务
- 不事先为系列分组的传输确定传输路径。
- 每个分组独立确定传输路径。
- 不同分组可能传输路径不同。
- 数据报网络
连接服务
- 首先为系列分组的传输确定从源到目的经过的路径(建立连接)
然后沿该路径(连接)传输系列分组
系列分组传输路径相同
传输结束后拆除连接
数据报方式为网络层提供无连接服务。
虚电路方式为网络层提供连接服务。
虚电路网络
虚电路:一条从源主机到目的主机,类似于电路的路径(逻辑连接)
- 分组交换
每个分组的传输利用链路的全部带宽
源到目的路径经过的网络层设备共同完成虚电路功能
数据报网络
- 网络层无连接。
每个分组携带目的地址。
路由器根据分组的目的地址转发分组。
Internet(数据报网络)
- 计算机之间的数据交换
“弹性”服务,没有严格时间需求 - 链路类型众多
特点、性能各异
统一服务困难 - “智能”端系统(计算机)
可以自适应、性能控制、差错恢复 - 简化网络,复杂“边缘”
ATM(VC网络)
- 电话网络演化而来
- 核心业务是实时对话:
严格要求时间,可靠性需求
需要有保障的服务 - “哑(dumb)”端系统(非智能)
电话
传真机 - 简化“边缘”
复杂网络
计算题要注意的地方
1、单位换算:b(比特)、B(字节), Mbps(10的6次方比特每秒),kbps(10的3次方比特每秒)。1Byte=8bit
2、是否考虑传播延迟
3、时间至少是多少——选择最少跳数
4、起始时间(从发送开始到接收完为止/从发送开始到发送完毕)
5、是否有分组头部大小的开销
6、报文交换时延更长,分组交换时延可能不是整数。
电路交换优缺点
报文交换优缺点
分组交换优缺点
报文交换和分组交换都采取存储转发
传输数据量大,且传输时间远大于呼叫时间,选择电路交换,电路交换传输时延最小,因为没有存储转发时延。
从信道利用率来看,报文交换和分组交换优于电路交换。
IP数据报格式
版本:IPv4/IPv6,占用4个比特。
首部长度:单位是4B,最小为5。
区分服务:指示期望获得哪种服务类型的服务。
总长度:首部+数据,单位是1B。
生存时间(TTL):IP分组的保质期,经过一个路由器-1,变成0则丢弃。
协议:数据部分的协议。TCP用6,UDP用17。
首部检验和:实现对IP分组首部的差错检测,只检验首部。逐跳计算,逐跳校验
源IP地址和目的IP地址:各占32位,分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址。
可选字段0~40B,用来支持排错、测量以及安全措施。
填充:全0,补齐整个首部,把首部补成4B的整数倍。
IP分组格式
标识字段占16位:标识一个IP分组。
- IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识。
标志位字段占3位
片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量。
- 片偏移字段以8字节为单位
IP分片过程
假设原IP分组总长度为L,待转发链路的MTU为M
若L>M,且DF=0,则可以/需要分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一个分片,其它分片均分为MTU允许的最大分片
一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:
需要的总分片数为:
每片的片偏移字段取值为:
每片的总长度字段为:
每片的MF标志位为:
以太网的最大传送单元(MTU)是1500字节。
IP地址划分
IP子网:
IP地址具有相同网络号的设备接口。
不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口
分类的IP地址
特殊IP地址
IP地址
网络号(NetID):高比特位
主机号(HostID):低位比特
私有IP地址
子网掩码中常用十进制和2进制的转换
子网划分
IP地址:
- 网络号(NetID):高比特位
子网号(SubID):原网络主机号部分比特
主机号(HostID):低位比特
子网掩码
-
形如IP地址:
32位
点分十进制 -
取值:
- NetID、SubID位全取1
- HostID位全取0
子网地址+子网掩码可以准确确定子网大小
1、知道IP地址和子网掩码后可以算出:网络地址和广播地址。
2、IP地址与子网掩码进行与运算,得到网络地址。
3、子网掩码取反运算,然后与网络地址进行或运算,得到广播地址。
4、地址范围是:网络地址+1,广播地址-1
将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。
例如:
CIDR
动态主机配置协议-DHCP:
从服务器动态获取
-
IP地址
子网掩码
默认网关地址
DNS服务器名称与IP地址 -
“即插即用”
-
允许地址重用
-
支持在用地址续租
-
支持移动用户加入网络
IPv6
IPv6数据报格式:
固定长度的40字节基本首部
不允许分片
优先级:标识数据报的优先级
流标签:标识同一“流”
下一个首部:标识下一个选项首部或上层协议首部(如TCP首部)
彻底移除校验和,以减少每跳处理时间。
IPv6数据报格式
IPv4和IPv6的区别
- IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
- IPv6将IPv4的校验和字段彻底删除,以减少每跳的处理时间。
- IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
- IPv6支持即播即用(即自动配置),不需要DHCP
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
- ICMPv6;附加报文类型“分组过大”。
- IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
- IPv6取消了协议字段,改成下一个首部字段。
- IPv6 取消了总长度字段,改用有效载荷长度字段。
- IPv6取消了服务类型字段。
IPv6地址表现形式
零压缩:在一串连续的0可以被一对冒号取代。
压缩形式中双冒号表示法在一个地址中仅可出现一次。
IPv6基本地址类型
- 单播:一对一通信,可做源地址+目的地址
- 多播:一对多(包含了广播),可做目的地址。
- 任播:一对多中的一个通信,可做目的地址。
IPv6向IPv4过渡的策略
双栈协议
隧道技术
网络层的控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理。
两种实现方式
- 每台路由器控制:在每台路由器中允许一种路由选择算法,每台路由器中都包含转发和路由选择功能;
- 逻辑集中式控制:逻辑集中式控制器计算并分发转发表以供每台路由器使用;
互联网控制报文协议(ICMP)
ICMP支持主机或路由器
两类ICMP报文
1)差错报告报文(五种)
- 目的不可达
- 源抑制
- 超时/超期
- 参数问题
- 重定向
2)网络探询报文(2组)
- 回声(Echo)请求与应答报文(Reply)
- 时间戳请求与应答报文
ICMP报文
几种不发送ICMP差错报告报文的特殊情况:
几种ICMP报文已不再使用
ICMP报文的格式
ICMP报文封装到IP数据报中传输
ICMP差错报告报文数据封装
ICMP询问报文
1、回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
2、时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
ICMP的应用
- ping:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
- Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过了差错报告报文。
ARP
ARP高速缓存:IP地址与MAC地址的映射。
由于在实际网络的链路上传送传送数据帧时,最终必须使用MAC地址。
ARP协议:完成主机或路由器IP地址到MAC地址的映射。
ARP协议使用过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10~20min更新一次)
ARP协议4种典型情况:
- 主机A发给本地网络上的主机B;用ARP找到主机B的硬件地址;
- 主机A发给另一网络上的主机B;用ARP找到本网络上一个路由器(网关)的硬件地址;
- 路由器发给本网络的主机A;用ARP找到主机A的硬件地址;
- 路由器发给另一网络的主机B;用ARP找到本网络上的一个路由器的硬件地址。
ARP协议自动进行。
TCP/IP协议栈
路由选择协议
路由器是使用网络层地址转发分组的存储转发分组交换机。
路由算法(协议)确定去往目的网络的最佳路径
转发表确定在本路由器如何转发分组
1、静态路由算法(非自适应路由算法):
- 管理员手工配置路由信息
- 路由更新慢,不适合大型网络
- 优先级高
- 适合小的网络
2、动态路由(自适应路由算法):
- 路由器间彼此交换信息
- 路由更新快,适合大型网络
- 定期更新
- 及时响应链路费用或网络拓扑变化
- 算法复杂,增加网络负担
全局信息:
所有路由器掌握完整的网络拓扑和链路费用信息
例如:链路状态(LS)路由算法
分散信息:
路由器只掌握物理相连的邻居以及链路费用。
邻居间信息交换、运算的迭代过程。
例如:距离向量(DV)路由算法
3、 链路状态路由算法
Dijstra算法
所有结点(路由器)掌握网络拓扑和链路费用
计算从一个结点(“源”)到达所有其他结点的最短路径
- 获得该结点的转发表
迭代:k次迭代后,得到到达k个目的结点的最短路径
距离向量算法的坏消息传播的很慢。
毒性逆转:如果一个结点Z到达某目的X的最小路径是通过某个邻居Y则通告给该邻居结点到达该目的的距离为无穷大。
内部网关协议IGP:一个AS内使用的RIP、OSPF
外部网关协议EGP:AS之间使用的BGP
internet采用层次路由
路由信息协议(RIP)、开放最短路径优先(OSPF)、
RIP协议
RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内。
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1,。特别的,从一路由器到直接连接的网络距离为1.RIP允许一条路由最多只能包含15个路由器。因此距离为16表示网络不可达。
RIP协议的报文格式
仅和相邻路由器交换信息
路由器交换的信息是自己的路由表
RIP是应用层协议,使用UDP传送数据
一个RIP报文最多可包括25个路由,如果超过,必须再用一个RIP报文传送。
好消息传的快,坏消息传的慢。
OSPF协议
OSPF优点
- 安全:所有OSPF报文可以被认证。(预防恶意入侵)
- 不存在坏消息传的慢的问题,收敛速度很快
- 允许使用多条相同费用的路径(RIP只能选一条)
- 对于每条链路,可以针对不同的TOS设置多个不同的费用度量。
- 集成单播路由与多播路由:多播OSPF协议(MOSPF)与OSPF利用相同的网络拓扑数据。
- OSPF支持对大规模AS分层
BGP协议
边界网关协议(BGP)是应用协议,借用TCP传送
报文交换基于半永久的TCP连接
BGP协议特点
BGP-4的四种报文
三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
IP数据报的三种传播方式
1、单播:用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
2、广播:发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
3、组播(多播)当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
IP组播地址
IP组播地址让源设备能够将分组发送给一组设备,属于多组播的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)
组播地址范围224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组,只能用作分组的目标地址,源地址总是单播地址。
注意:
1、组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
2、对组播数据报不产生ICMP差错报文。
3、并非所有D类地址都可以作为组播地址。
组播路由选择协议常用算法
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)
路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
三层设备的区别
路由器:可以互联两个不同网络层协议的网段。
网桥:可以互联两个物理层和链路层不同的网段。
集线器:不能互联两个物理层不同的网段。