如需转载,请根据 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可,附上本文作者及链接。
本文作者: Alice
作者昵称: 沉。
本文链接: http://example.com/2020/11/02/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E4%B8%89%EF%BC%89/
四、网络层
网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。
功能一:路由选择与分组转发 最佳路径
功能二:异构网络互连
功能三:拥塞控制
若所有节点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施,环节这种拥塞。
WAY1:开环控制 静
WAY2:闭环控制 动
4.1、数据交换方式
为什么要数据交换?
数据交换方式
- 电路交换
- 报文交换
- 分组交换
- 数据报方式
- 虚电路方式
4.1.1、电路交换
例如:电话网络。
电路交换阶段:
建立连接(呼叫/电路建立)——>通信——>释放连接(拆除电路)
优点:
- 通信时延小
- 有序传输
- 没有冲突
- 实时性强
缺点:
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差
- 无差错控制能力
特点:独占资源
4.1.2、报文交换
报文:源应用发送的信息整体
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 多目标服务
缺点:
- 有存储转发时延
- 报文大小布丁,需要网络节点有较大的缓存空间
4.1.3、分组交换
分组:把大的数据块分割成小的数据块
优点:
- 无需建立连接
- 存储转发,动态分配线路
- 线路可靠性较高
- 线路利用率较高
- 相对于报文交换,存储管理更容易
缺点:
- 有一定的存储转发时延
- 需要传输额外的信息量
- 乱序到目的主机时,要对分组排序重组
报文交换&分组交换
小结:
- 报文交换和分组交换都采用存储转发
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小
- 从心到利用率来看,报文交换和分组交换优于电路交换,其中分组交换时延更小
数据报方式&虚电路方式
数据报方式为落落层提供无连接服务。
虚电路方式为网络层提供连接服务。
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接
每个分组携带源和目的地址
路由器分局分组的目的地之转发分组:基于路由协议/算法构建转发表:检索转发表;每个分组独立选路
虚电路:指的是一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有的节点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息
虚电路将数据报方式和电路交换方式结合,以发挥两者优点
4.2、路由算法
静态路由算法(非自适应路由算法)管理员手工配置路由信息。
简单可靠,在负荷稳定,拓扑变化不大的网路中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网路。路由更新慢,不适用大型网络
动态路由算法(自适应路由算法)路由器间彼此交换信息,按照路由算法优化出路由表项。
路由更新快,适用于大型网络,即是响应链路费用或网络拓扑变化,。算法复杂,增加网络负担
- 全局性:链路状态由路由算法OSPF,所有路由器掌握完整的网络拓扑和链路费用信息。
- 分散性:距离向量路由算法RIP,路由器值掌握物理相连的邻居及链路费用
分层次的路由选择协议:
- 因特网规模很大
- 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网
自制系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都是与一个行政单位来管辖,一个自制系统的所有路由器在本自治系统内都必须联通
路由选择协议:
- 内部网关协议IGP:一个AS内使用的 RIP、OSPF
- 外部网关协议EGP:AS之间使用的
4.2.1、RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点就是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的位移最佳距离记录(即一组距离)
距离:通常为“跳数”,即从源端口到目的端口锁经过的路由器的个数,经过一个路由器跳数+1.特别的,从一路由器到直接练级的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达
RIP协议只适用于小互联网
仅和相邻路由器交换信息
路由器交换的信息是自己的路由表
每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s每收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(激励为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息
静过若干次更新后,所有路由器最终都会知道到达本地自治系统下任何一个网络的最短距离和下一跳路由器的地址,即“收敛”
距离向量算法:
修改相邻路由器发来的RIP报文中的所有表项
对修改后的RIP报文中的每一个项目进行以下步骤:
- R1路由表中若没有Net3,则把该项目填入R1路由表
- R1路由表中若有Net3,则查看下一跳路由器地址:
- 若下一跳是X,则用收到的项目替换源路由表中的项目
- 若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理
若180s还每收到香林路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16.
返回。
RIP协议的报文格式:
RIP协议好消息传的快,坏消息传的慢。
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
4.2.2、OSPF协议
开放最短路优先OSPF协议:“开放”表名OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”,因为使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要的特征就是使用分布式的链路状态协议。
OSPF的特点:
链路状态的路由算法:
- 每个路由器发现他的邻居节点【HELLO问候分组】,并连接邻居节点的网络地址。
- 设置道它的每个邻居的成本度量metric
- 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库汇总的所有链路状态项目的摘要信息。
- 如果DD分组中的摘要自己都有,则邻站不作处理;如果没有的或者是更新的,则发送【LSR链路状态请求分组】
- 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。
- 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
只要一个路由器的链路状态发生变化:
- 泛红发送【LSU链路状态更新分组】进行更新。
- 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。
- 使用Dijkstra根据子级的链路状态数据库构造到其他节点间的最短路径
OSPF的区域:
OSPF分组:
OSPF直接用IP数据报传送
OSPF其他特点:
- 每隔30min,就要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF协议要比距离向量协议RIP要好的多
- OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
4.2.3、BGP协议:
BGP协议交换信息的过程:
BGP协议锁交换的网络可达性的信息就是要达到某个网络所要经过的一系列的AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
BGP发言人交换路径向量
BGP协议报文格式:
BGP协议特点:
- BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀,下一跳路由器,以及到达该目的的网络索要经过的各个自治系统序列。
- 在BGP刚刚运行时,BGP的邻站是交换整个BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络宽带和减少路由器的处理开销都有好处。
BGP-4的四种报文:
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方
- UPDATE(更新)报文:通告新路径或撤销原路径。
- KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
- NOTIFICATION(通知)报文:报告先前报文的差错:也被用于关闭连接
三种协议的总结:
4.3、IP数据报
TCP/IP协议栈:
IP数据报的格式:
4.3.1、IP数据报分片
最大传送单元MTU:
链路层数据帧可封装成数据的上限。
以太网的MTU是1500字节。
标识:统一数据报的分片使用同一标识。
标志:共3位,只有2位有意义
- 中间位DF:DF=1,进制分片;DF=0,允许分片。
- 最低位MF:MF=1,后面“还有分片”;MF=0,代表最后一片/没分片
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。除了最后一个分片,每个分片长度一定是8B的整数倍。
总长度单位是1B
片偏移单位是8B
首部长度单位是4B
4.4、IPV4
IP编址的历史阶段
- 分类的IP地址
- 子网的划分
- 构成超网(五分类编址方法)
IP地址:全是节唯一的32位/4字节标识符,表示路由器主机的接口
IP地址::={<网络号><主机号>}
特殊IP地址:
4.4.1、网络地址转换NAT
路由器对目的地址是私有地址的数据报一律不进行转发。
网络地址换换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
4.4.2、子网划分与子网掩码
分类的IP地址的弱点:
- IP地址空间的利用率有时很低
- 两极IP地址不够灵活
子网划分:
某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
子网掩码:子网掩码与IP地址逐位相与,就得到子网网络地址
子网掩码的练习题:
使用子网时分组的转发:
4.4.3、无分类编址CIDR
无分类域间路由选择CIDR:
消除了传统的A类,B类和C类地址以及划分子网的概念。
融合子网地址与子网掩码,方便子网划分。CIDR把网络前缀都相同的连续的IP地址责成一个“CIDR地址块”。128.14.35.7/20是某CIDR地址块中的一个地址。
4.4.4、构成超网:
将多个子网聚合成一个较大的子网,叫做构成超网,或由路由聚合
方法:将网络前缀缩短
最常前缀匹配:使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
4.4.5、ARP协议:
发送数据的过程:
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。——>ARP协议:完成主机或路由器IP地址到MAC地址的映射(解决下一跳走哪的问题)
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此樱色写入ARP缓存(10-20min更新一次)。
ARP协议四种典型情况:
- 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址
- 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
ARP协议是自动进行的。
4.4.6、DHCP协议
主机如何获得IP地址?
静态配置
动态配置
DHCP协议:动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务器端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
工作流程:
- 主机广播DHCP发现报文
- DHCP服务器广播DHCP提供报文
- 主机广播DHCP请求报文
- DHCP服务器广播DHCP确认报文
4.4.7、ICMP协议
ICMP协议支持主机或路由器:
- 差错(或异常)报告 ——>发送特定ICMP报文
- 网络探询
ICMP差错报告报文(5种):
- 终点不可达:当路由器或主机不能交付数据报时就向原点发送终点不可达报文。无法交付
- 原点一致:当路由器或主机由于阻塞而丢弃数据报时,就向源点发送一致报文,使源点直到应当把数据报的发送速率放慢。拥塞丢数据
- 时间超过报文:当路由器收到生存事件TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当重点在预先规定的世间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片全都丢弃,并向源点发送时间超过报文。TTL=0
- 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确的时候,就丢弃该数据报,并向源点发送参数问题报文。首部字段有问题
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。值得更好的路由。
不应该发送ICMP差错报文的情况:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分辨的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文。
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP询问报文(4种):
- 回送请求和回答报文:主机或路由器向特定目的的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。
- 时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间
- 掩码地址请求和回答报文
- 路由器询问和通告报文
ICMP的应用:
- PING:测试两个主机之间的连通性,使用了ICMP回送请求的回答报文。
- Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过可差错报告报文。
4.5、IPV6
为什么会有IPv6?
32位IPv4地址空间以分配殆尽…
CIDR、NAT治标不治本,IPv6从根本上解决地址耗尽问题。
- 改进首部格式
- 快速处理/转发数据报
- 支持Qos:Qos是指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
IPv6的数据报格式:
IPv6和IPv4:
- IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间
- IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理事件。
- IPv6将IPv4的可选字段移出首部,编程了扩展首部,称为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
- IPv6支持即插即用(即自动配置),不需要DHCP协议
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
- ICMPv6:附加报文类型“分组过大”。
- IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用
- IPv6取消了总长度字段,改用有效载荷长度字段
- IPv6取消了服务类型字段
IPv6地址表示形式:
- 一般形式:冒号十六进制记法
- 压缩形式:去掉前面的0;如果有4个0,只留一个0
- 零压缩:一连串连续的0可以被一对冒号取代,双冒号表示法只能出现一次
- 单播:一对一通信 可做原地址+目的地址
- 多播:一对多通信,可做目的地址
- 任播:一对多种的一个通信
IPv6向IPv4过渡的策略:
- 双栈协议:指在一台设备上同时启动IPv4协议栈和IPv6协议栈
- 隧道技术:通过使用互联网络的基础设置是在网络之间传递数据的方式。使用碎蛋传递的数据(或负载)可以是不同协议的数据帧或包。随带协议将其他协议的数据帧或包重新封装然后通过隧道发送。
4.6、IP组播
IP数据报的三种传输方式:
- 单播:单播用于发送数据报到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点的传输方式
- 广播:广播是指发送数据报到统一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点的传输方式。
- 组播(多播):当网络当中的某些用户需要特定数据时,组播数据发送者近发送一次数据,借助组播路由协议为组播数据报建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一对点对多点的传输方式
IP组播地址
IP组播地址让源设备能够将分组发送给一组设备,属于多播组的设备将被分配一个组播IP地址(一群共同需求主机的相同标识)
组播地址方位为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
- 对主播数据报不产生ICMP差错报文
- 并非所有D类地址都可以作为组播地址
4.6.1、硬件组播
同播地址一样,组播IP地址也需要响应的组播MAC地址在本地网络在中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制为是根据IP组播组地址的最后23位转换得到的。
TCP/IP协议使用的以太网多播地址的范围是:
收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4.6.2、IGMP协议与组播路由选择协议
网际组管理协议IGMP
ICMP和IGMP都使用IP数据报传递报文。
IGMP工作的两个阶段:
组播路由选择协议:
组播路由选择协议目的是找出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈子
对不同的多播组对于不同的多播转发数;同一个多播组,对不同的源点也会有不同的多播转发树。
组播路由选择协议常用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由U型安泽
协议无关的组播(系数/密集)
4.7、移动IP
4.7.1、相关术语
移动IP技术是移动节点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生呢个任何翻遍
移动节点:具有永久IP地址的移动设备。
归属代理(本地代理):一个移动节点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
转交地址(辅地址):移动站点在外部网络使用的临时地址
4.7.2、移动IP通信过程
4.8、网络层设备
路由器:是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
输入端口对线路上收到的分组的处理
输出端口将交换结构传送来的分组发送到线路:
- 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到0,这就使后面再进入队列的分组优异没有存储空间而只能被丢弃。
- 路由器中的输入或输出队列产生移除是造成分组丢失的重要原因。
三层设备的区别:
- 路由器:可以互联两个不同网络层协议的网段
- 网桥:可以互联两个物理层和链路层不同的网段
- 集线器:不能互联两个物理层不同的网段。
路右表和路由转发:
路右表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
转发表由路右表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能锁必须的信息,在转发表的每一行必须包含从要到达目的的网络到输出端口的某些MAC地址信息的映射。
-------------本文结束感谢您的阅读-------------
本文链接: http://example.com/2020/11/02/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E4%B8%89%EF%BC%89/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!