导图社区 3.网络层(分组)
网络层只提供简单灵活的、无连接的、尽最大努力交付的数据服务,所传诵的分组可能出错、丢失、重复、失序或超时,这使得网络中的路由器比较简单。一起来了解计算机网络网络层吧。
编辑于2023-03-20 10:56:04 上海网络层(分组)
网络层的功能
小知识
网络层传输单位是数据报,分组是在数据报中的一组数据
网络层只提供简单灵活的、无连接的、尽最大努力交付的数据服务,所传诵的分组可能出错、丢失、重复、失序或超时,这使得网络中的路由器比较简单
异构网络互联
路由器互联的多个局域网结构要求每个局域网下三层协议可以不同,但网络层以上的协议必须相同
网络互连是指将两个以上的计算机网络用一些中间设备(又称终中继系统)相互连接起来构成更大的网络系统
物理层中继系统:转发器、集线器
数据链路层中继系统:网桥、交换机
网络层中继系统:路由器
网络层以上的中继系统:网关
路由与转发
路由选择:根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态的改变所选择的路由
分组转发:路由器根据转发表将用户的IP数据报从合适的端口转发
路由表是根据路由算法得出的,转发表是根据路由表得出的
拥塞控制
判断网络是否进入拥塞状态的方法是
观察网络的吞吐量和网络负载的关系
流量控制和拥塞控制的区别
流量控制往往是指发送端和接收端之间的点对点通信量的控制,拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,设计网络中所有的主机、路由器及导致网络传输能力下降的所有因素
拥塞控制的方法
开环控制
事先考虑发生拥塞的因素,在做决定时不考虑当前网络状态,是静态预防方法,一旦整个系统启动,中途不再修改
闭环控制
事先不考虑发生拥塞因素,采用检测网络系统监视,出现拥塞时及时检测并把拥塞信息传到合适的地方是基于反馈环路概念是动态方法
SDN概念
软件定义网络SDN,采用集中式的控制层面和分布式的数据层面
路由算法
下面会讲到
IPV4
IPV4分组
IPV4分组的格式
由首部和数据部分组成【(首部20B固定+可选)+数据部分】 数据部分是ICMP忘记控制报文协议
版本:4bit
首部长度:4bit,单位是4B,即一共可表达2的4次方*4B大小的首部
总长度:16bit,单位是1B
标识:16bit,表示同一个数据报,同一个数据报中的分组标识相同
标志:3bit,只使用后面2比特,MF=1表示后面还有分分片,为0表示后面还有,DF=0表示可以分片,DF=1表示不可分片 注意最后一个分片MF=DF=0
片偏移:13bit,单位8B,表示每片数据部分的位置,除了最后一片其余每片数据大小为8B的整数倍
用来数据报分片
生存周期(TTL):8bit,表示数据报在网络中可通过最大路由器次数,转发分组前TTL先减1,TTL为0时必须丢弃分组
协议: 8bit,表示携带的数据使用的协议,TCP的数值为6,UDP的数值为17
首部校验和:16bit,只检验首部,不检验数据部分
源地址:32bit
目的地址:32bit
IP数据报分片
数据链路层有最大传输限制,MTU(最大传输单元),当数据报太大时就要分片 IPV4可在路由器和主机处分片,只能在目的主机处重组
课后习题56做一题就会了
IPV4地址与NAT
IPV4地址
分类
A类
0XXXXXXX X....X 网络号占1B,主机号占3B
B类
10XXXXXX XXXXXXXX X..X网络号占2B,主机号占2B
C类
110XXXXX XXXXXXXX X..X网络号占3B,主机号占1B
D类
1110XXXX XXXXXXXX X..X 多播地址
E类
1111XXXX 保留今后使用
由网络号和主机号组成,网络号表示主机或路由器所连接到的网络,主机号表示该主机或路由器
特殊地址
主机号全0表示网络本身
主机号全1表示本网络的广播地址,又称直接广播地址
127.X.X.X保留为环回自检,表示任意逐渐本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上
32位全0表示本网络主机
32位全1表示整个TCP/IP网络的广播地址
拓展
网络号 主机号 作IP源址 作IP目的地址
全0 全0 √ ×
全1 全1 × √
127 任何数非全0、1 √ √
特定值 全0 × ×
全0 特定值 √ ×
特定值 全1 × √
特点
IP管理机构在分配IP地址时只分配网络号,主机号由得到该的网络单位分配
路由器只根据目的网络的网络号进行转发分组,减小了了路由表的存储空间
一台主机连接两个不同网络时分配两个IP地址,每个IP网络号与所在网络的网络号相同且两个网络号要不同,一个路由器至少两个网络号(每个端口要有)
用转发器或者网桥连接LAN后仍是一个网络,该LAN中所有主机的IP地址网络号要相同,但主机号必须不同
网络地址转换NAT
概念
通过将专用地址转换为公用地址,从而对外隐藏内部管理的IP地址,整个专用网络使只用一个全球IP地址即可与因特网连通。它节约了IP地址消耗,隐藏了内部网络结构
特点
因特网中所有路由器对目的地址是私有地址的数据报一律不进行转发
使用NAT时需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球IP地址
NAT表中存放着{本地IP,端口号}到{全球IP,端口号}的映射
私有IP地址网段
A类
1个A类网段即 10.0.0.0~10.255.255.255
B类
16个B类网段即 172.16.0.0~172.31.255.255
C类
256个C类网段即 192.168.0.0~192.168.255.255
普通路由器转发IP数据报时,不改变源IP地址和目的IP地址。而NAT路由器在转发IP数据报时,一定要更换其IP地址(源IP地址或目的IP地址)。普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看转换传输层的端口号
子网划分与子网掩码,CIDR
子网划分
子网划分属于一个单位的事情
从主机号中借用若干比特作为子网号 IP地址{网络号,子网号,主机号}
路由器接还是以网络号,到达本路由器时,路由器根据网络号和子网号找到目的子网,最后把数据报直接交付目的主机
从一个IP地址首部不能判断是否进行了子网划分
子网掩码
为了表达原网络划分子网借用主机号的位数,使用子网掩码
用连续的1和紧跟的连续的0编码,1的个数为网络号位数+子网号位数
IP地址和其对应的子网掩码逐位与即可得出相应的子网的网络地址
误分类编址CIDR
目的
为了消除传统A、B、C类网络划分,更有效的分配IPV4的地址
使用了网络前缀代替子网络,用斜线/记法 如/20表示子网掩码连续20个1
虽然CIDR不使用子网但仍使用掩码一词。再分配到一个CIDR地址块的组织仍可以在本组织内根据需要划出一些子网,但全0和全1的主机号的地址一般不使用
路由聚合/构成超网
将网络前缀都相同的连续IP地址组成CIDR地址块,一个CIDR地址块可以表示很多的地址
最长前缀匹配
在查找路由表时可能匹配到不止一个结果,此时应该选择具有最长网络前缀的路由,前缀越长其地址块就越小,路由越具体
网络层转发分组的过程
主机路由:
若待定主机的网络地址是 a.b.c.d,则对应的目的网络是a.b.c.d/32。/32表示子网掩码没有意义,这个特殊前缀可以出现在转发表,用来测试网络
默认路由
0.0.0.0/0 目的地址全0,掩码全0,若路由表中找不到匹配的就从默认路由发出
得到下一跳路由器IP地址后,并不是直接把地址填入待发送的数据报,二是将该地址转换成MAC地址(通过ARP),将MAC地址放到MAC帧首部中,然后根据这个MAC地址找到下一跳路由器。在不同网络中传送时,MAC帧中的源地址和目的地址要发生变化,但网桥转发帧时,不改变帧的源地址。
ARP、DHCP、ICMP
IP地址与硬件地址
IP是网络层使用的地址,硬件地址是数据链路层使用的地址即MAC地址,网络层之上使用IP地址,把数据报封装成MAC地址后数据链路层看不到数据报中的IP地址
IP网络中无法通过广播MAC地址来完成跨网络的寻址,因此网络层只是用IP地址完成寻址
在IP层抽象的互联网上只能看到IP数据报
虽然在IP数据报首部中有源IP地址,但路由器只根据目的IP地址进行转发
在链路层只能看见MAC帧。IP数据报被封装在MAC帧中,通过路由器转发时=IP分组时IP分组在每个网络中都被路由器解封装和重新封装,其MAC地址中的源地址和目的地址会不断改变。这也决定了无法使用MAC地址跨网络通信
路由器互联多个网络,不仅有多个IP地址,也有多个硬件地址
地址解析协议ARP
用来完成主机或路由器IP地址到MAC地址的映射
每台主机都有一个ARP高速缓存,用来存放本地局域网上个主机和路由器的IP地址到MAC地址的映射表
ARP使用过程
检查ARP高速缓存表,有就对应其IP地址找到MAC地址,把就发往此MAC地址,没有则使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,同一局域网所有主机都能收到分组,目的主机收到后返回一个单播的响应分组,源主机收到后将此映射写入ARP缓存
ARP协议四种典型情况
主机A发给本网络上的主机B
用ARP找到主机B的硬件地址
主机A发给另一网络上的主机B
用ARP找到本网络上一个路由器(网关)的硬件地址
路由器发给本网络的主机A
用ARP找到主机A的硬件地址
路由器发给另一网络的主机B
用ARP找到本网络上的一个路由器的硬件地址
ARP协议“看到了”IP地址,所以工作在网络层,NAT路由器“看到了”端口,所以工作在传输层
动态主机配置协议DHCP
常用于给主机动态分配IP地址。DHCP是应用层协议,基于UDP的
过程
主机广播DHCP发现报文
DHCP服务器广播DHCP提供报文,其中包括分配给主机的IP地址
主机收到提供报文后发送DHCP请求报文,还用广播方式是因为这样其他DHCP服务器可以知道主机已使用,可以收回发送的地址,因为主机收到不止一个DHCP发来的地址
DHCP广播DHCP确认报文
DHCP给主机分配的IP地址属于临时的,主机只能在一段有限的时间内用。采用UDP的原因是刚开始都不知道互相地址,TCP是需要建立连接的,
网际控制报文协议ICMP
为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议,它作为IP数据报的数据部分
类型
ICMP差错报告报文
目的
用于目标主机或到目标主机路径上的路由器
什么时候发送
终点不可达
当路由器或主机不能交付时向原点发送不可达报文
源点抑制
用于拥塞而丢弃报文时向源点发送抑制报文,让源点发慢点
时间超过
当路由器收到TTL为零的数据报时,或终点不能按时收到全部数据报分片时把已收到的全丢弃,向源主机发送时间超过报文
参数问题
路由器或目标主机收到的数据报首部中有的字段不正确时向源主机发送此报文
改变路由(重)
路由器把改变路由发送给主机,让主机知道下次发送另外一个主机(路径更佳)
什么时候不发送
对ICMP差错报告报文不再发送ICMP差错报告报文(意思是差错报文又出错了)
对第一个分片的数据报片的所有后续数据报片不发送ICMP差错报告报文
对具有组播地址的数据报不发送ICMP差错报告报文
对具有特殊地址,如127.0.0.0或0.0.0.0的数据报不发送ICMP差错报告报文
ICMP询问报文
类型
回送请求和回答报文
时间戳请求和回答报文
最常用
地址掩码请求和回答报文
路由器询问和通告报文
常见应用
分组网间探测PING(测试两台主机连通性)使用ICMP回送请求和回答报文 工作在应用层
Traceroute(跟踪经过的路由) 使用时间超过报文 工作在网络层
IPV6
IPV6特点
用来解决地址耗尽措施
采用五类别编制CIDR
采用NAT网络地址转换
采用更大地址新版本IPV6 (从根本解决地址不够的问题)
首部变为固定40B,目的地址为16B,是IPV4 4B的平方
支持即插即用,不需要DHCP协议
IPV6只能在主机处分片,IPV4可以在主机处和路由器处分片
取消了协议字段改成了下一个首部字段,取消了总长度改成了有效载荷长度字段
取消了服务类型字段
地址为【首部+有效载荷(扩展首部/数据)】
增大了安全性,身份验证和保密功能是PV6关键特征,但没有校验检验和字段了
IPV6地址
单播
一对一 可作为源地址,也可作为目的地址
多播
一对多 只作为目的地址
组播 一对多中只给一个设备发送给数据,一般是距离最近的 只作为目的地址
表示
使用冒号分隔,每组有四位十六进制的数
A012:0012:0000:0000:0000:0000:0014:00AB
可省略前面的零,但每组最少一个数A012:012:0:0:0:0:14:AB
用双冒号::代表多位零,每个地址最多一个双冒号A012:12::14:AB
IPV6向IPV4过渡
双协议栈
一台设备上同时拥有IPV6和IPV4协议栈。若设备是路由器,路由器的每个端口都要配置IPV4和IPV6地址,并很可能分别连接了IPV4和IPV6网络。若设备是主机,那么主机同时拥有IPV6和IPV4地址,并具备同时处理这两个协议地址的功能
隧道技术
把IPV6数据报封装到IPV4数据报的数据部分,使得IPV6数据报可以在IPV4网络中的隧道传输
路由协议
域内路由和域间路由
内部网关协议IGP
在一个自治系统内部使用的路由协议,它与互联网中其它自治系统选用什么路由协议无关,如RIP 、OSPF
外部网关协议EGP
进行自治系统与自治系统之间的交互,每个自治系统都有一个或多个路由器,除了运行本系统内的路由选择协议还要运行自治系统间的路由选择协议 如BGP
路由信息协议RIP
采用的是UDP传送数据(端口是520),是应用层协议,选择的不一定是时间最少但一定是跳数最少
所有结点定期的向相邻节点传送自己的路由选择表,路由选择表中包含每条路径的目的地址和路径的代价
距离也称跳数,规定从一个路由器到直接连接网络的距离(跳数)为1
路径最多博阿寒15个路由器,距离为16时表示网络不可达,只适用小型互联网规定跳数是为了方式数据不断循环在环路上
RIP默认在任意两个适用RIP的路由器之间每30s广播一次RIP更新路由信息
距离向量算法
对于每个相邻路由器发来的RIP报文<目的网络,距离d,吓一跳路由地址X>
对地址为X的相邻路由器发来的RIP报文,先修改此报文中所有项目:把吓一跳字段中的地址都改为X,并把所有距离字段都加1
子主题
缺点:好消息喜欢的快,坏消息传的慢、在网络出现故障时会出现慢收敛最大距离为15、路由器之间交换的是完整的路由表,网络规模大而且开销大
优点:实现简单、开销小、收敛你过程较快
开放最短路径协议OSPF
原理/特征:分布式的链路状态协议
特点
根据不同服务类型设置成不同的代价,很灵活
多路径间的负载平衡
如果有到同一个目的网络的多条相容代价的路径,可以把通信量分配给这条路经
支持可变长的子网划分和无分类编址CIDR
不存在坏消息传的慢,收敛快
适用于规模大的互联网
与RIP的区别
洪泛法
向本自治系统中所有路由器发送信息
发送的信息是与之直接相连的路由器的链路状态,这只是此路由器的部分信息。“链路状态”指的是与哪些路由器相连,代价是多少
只有当链路发生变化时路由器才用洪泛法向所有路由器发送此信息。RIP是定期发送
OSPF是网络层协议,它不使用UDP和TCP,而是直接用IP数据报传送。RIP是应用层协议,它在传输层使用UDP。
OSPF工作原理
由于路由器之间频繁交换链路信息,最终每个路由器都能最终建立一个链路状态数据库,也即全网的拓扑结构图。然后每个路由器根据这个拓扑图使用Dijkstra计算从自己到各目的网络的最优路径,以此构造自己的路由表。链路发生变化时重新计算。
注意!虽然Dijkstra计算出完整的最优路径,但路由表中只存储吓一跳的目的地址
为了使OSPF适用规模大的网络,OSPF将自治系统再划分一个个区域,此时洪泛法交换路由信息只在本区域,一个区域的路由器只知道本区域的完整的网络拓扑不知道其他区域的。因此区域也有层次之分,上层区域为主干区域,负责连通其他下层区域还连接其他自治区域
五种分组类型
问候分组
用来发现和维持临站的可达性,通常美10s交换一次hello分组
数据库描述分组
链路状态请求分组
链路状态更新分组
链路状态确认分组
边界网关协议BGP
用于不同自治系统之间交换路由信息的协议,是一种外部网关协议
特点
BGP只能力求找到能够到达目的网络比较好的路由,并非最佳路由
采用的使路径向量路由选择协议
BGP是应用层协议,它基于TCP
BGP支持CIDR,所以BGP的路由表包括<目的网络前缀,下一跳路由器,到目的网络经过的AS序列>
BGP刚运行时交换整个BGP路由表,以后秩序在发生变化时更新变化的部分
工作原理
每个自治系统必须至少有个“BGP发言人”,BGP发言人与另一个自治区域的发言人通信时需要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。交换的信息是到达目的网络(用网络前缀表达)所经过的一系列的自治系统而不是下一个地址
每个BGP发言人除了运行BGP外还要运行该自治系统的内部网关协议(RIP或OSPF)
BGP-4的四种报文
打开报文
用来与另一个BGP发言人建立连接
更新报文
用来发送某一路由信息以及列出要撤销的多条路由
保活报文
通知报文
发送检测到的差错
三种路由协议比较
协议 RIP OSPF BGP
类型 内部 内部 外部
路由算法 距离-向量 链路状态 路径-向量
传递协议 UDP IP TCP
路径选择 跳数最少 代价最低 较好,非最佳
交换结点 本结点相邻路由器 网络中所有路由器 本结点相邻路由器
交换内容 自己的路由表, 与本路由器相邻所有 首次:整个路由表 自己知道的全部内容 路由器的链路状态 非首次:变化部分
IP组播
为了能支持像视频点播和视频会议这样的多媒体应用 一定基于UDP,因为需要低延迟和实时性
IP组播地址属于多播组的设备被分配一个组播IP地址(一群共同需求主机的相同标识)
地址范围
D类地址
224.0.0.0~239.255.255.255
一个D类IP地址标志一个组播组
特点
只用作目的地
组播数据报时“尽最大努力交付”提供的是不可靠交付
对组播数据报不产生ICMP差错报文
源地址为单播地址
并非所有D类地址都可作为组播地址
D类IP地址与组播地址的映射关系
看书上的例题
组播地址为6B前2B为01-00-5E-紧跟1个bit0,后面23位是IP组播地址的后23位
移动IP
概念
支持移动性的因特网体系结构与协议共称为移动IP
基于IPV4的移动IP定义三种功能实体
移动结点
具有永久IP地址的移动节点
本地代理
一个移动结点的永久“居所”称为归属网络,它根据移动用户的转交地址,采用隧道技术转交移动节点的数据包
外部代理
在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
移动IP通信过程
当移动结点链接到外地网络链路上时,转交地址就用来标识移动结点现在所处的位置。移动结点的本地地址与当前转交地址的联合称为移动绑定或绑定
移动结点在本地网络时仍然使用TCP/IP方式进行通信
移动结点漫游到另一个网络时,仍然使用固定的IP地址进行通信。为了能够收到对端发来的分组,移动结点需要向本地代理注册当前的位置地址,这个地址就是转交地址(可以是外部代理的地址或动态配置的一个地址)
本地代理接收来自转交地址的注册后,会构建一条通向转交地址的隧道,将皆获得发给移动节点的IP分组通过隧道传送到转交地址处
在转交地址处接触隧道封装,恢复原始的IP分组,最后送到移动结点
移动结点在外网通过外网的路由器或外部代理向通信对端发送IP数据包
移动结点来到另一个外网时,只需向本地代理更新注册的转交地址就可以继续通信
移动结点回到本地网络时,移动节点向本地代理注销转交地址,这时移动结点恢复TCP/IP方式通信
移动IP为移动主机设置了两个IP地址,主地址和辅地址(转交地址)。在本地网使用主地址,到另一网络时获得临时辅地址这时主地址仍然不变
网络层设备
如果一个存储转发设备实现了某个层次的功能,那么他就可以互联两个在该层次上使用不同协议的网段。如网桥实现了物理层和数据链路层,那么网桥就可以互联两个在该层次上使用不同协议的网段;但中继器实现了物理层后,却不能互联两个物理层不同的网段,因为中继器不是存储转发设备,它属于直通式设备
路由器体系结构
路由选择部分(控制部分)
路由选择处理及+路由选择协议+路由表
分组转发部分
分组处理+转发表+交换结构
路由器和网桥的重要区别
网桥与高层协议无关,而路由器是面向协议的,它依据网络地址进行操作,并进行路径选择、分段、帧格式转换、对数据包的生存时间和流量进行控制等
路由表与转发表
路由表是由选择算法得出的,主要用于路由选择。路由表有四个项目:目的网络IP地址+子网掩码+下一跳IP地址+接口
转发表是从路由表中得出的,转发表中含有:目的IP地址+下一跳(下一跳的接收地址,实际上是MAC地址);分组的实际转发靠直接查找转发表,不直接查路由表
路由表总是用软件实现,转发表可以用软件或特殊的硬件实现