导图社区 网络层
全网最全的网络层系统梳理,知识内容包含了网络层概念、网际协议IP、IP层转发分组的过程、网际控制报文协议ICMP等。
编辑于2022-04-22 21:01:25网络层
概念
提供两种服务:虚电路服务和数据报服务
虚电路只是逻辑上的连接,预留一定的网络资源,然后再使用可靠传输的网络协议,实现可靠交付,让网络层保证服务质量
数据报服务认为网络在发送分组时不需要先建立连接,每一个分组独立发送,网络层不保证服务质量
简单的网络层带来的好处:1.路由器可以做的更加简单,价格更加低廉 2.可靠通信由运输层负责 3.网络造价大大降低,运行方式十分灵活 4.促进了互联网的发展
对比:
路由器之间传送的信息有两大类:数据和路由信息
可以吧网络层抽象的划分为数据层面和控制层面
数据层面:路由器根据转发表将数据报转发出去,每个路由器独立工作,采用硬件转发,速度快
控制层面:根据路由选择协议计算路由,创建路由表,路由器之间协同工作,采用软件计算,速度慢
软件定义网络SDN中的数据层面和网络层中一样,控制层面由远程控制器为每个分组计算路由,在路由器中生成转发表
网际协议IP
是TCP/IP协议中最主要的两个协议之一,和IP协议配套使用的还有三个协议
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
将网络互相连接起来需要使用一些中间设备,物理层使用转发器或集线器;数据链路层使用网桥或交换机;网络层使用路由器;网络层以上使用网关
当中间设备是物理层或数据链路层的设备时,一般并不称之为网络互连,这在网络层中看来仍然是一个网络
网络互联是指用路由器将不同网络连接起来,当互联的计算机都使用相同的网际协议IP时,可以把互联以后的网络看成一个虚拟互连网络,又称为虚拟IP网——各种物理网络的差异性被屏蔽
IP地址给每一个连接在互联网上的主机都分配全世界范围内唯一的32位标识符,IP地址由 互联网名字和数字分配机构ICANN 进行分配
早期使用的是分类IP地址,前一部分是网络号,其余的是主机号,网络号0和127是保留地址,不进行指派,0表示“本网络”,127表示本地“环回测试”地址 主机号全0和全1的主机号不指派,主机号全0的IP地址表示为该网络地址,全1的IP地址表示为该网络上的所有主机
子主题
无分类IP地址,全名是无分类域间路由选择CIDR,它把IP地址划分为“网络前缀”和“主机号”,并使用“斜线记法”表示网络前缀所占的位数
CIDR将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”,一个CIDR地址块包含的IP地址的数目取决于网络前缀的位数
计算机使用地址掩码又称子网掩码来快速确定网络地址
有时称CIDR编址为“构造超网”
如果几个连续的、小的CIDR地址块具有相同的下一跳路由器,可以用一个地址块来表示多个地址块,这种方法称为路由聚合
IP地址由网络前缀和主机号两部分组成的优点
IP地址管理机构在分配IP地址时,只分配网络前缀,便于IP地址的管理 路由器根据网络前缀转发分组,减少转发表中的项目数,缩短查找转发表的时间
当一台主机同时连接到两个网络上时,必须具有两个相应的IP地址,由于路由器至少连接两个网络,因此,一个路由器至少有两个不同网络前缀的IP地址
同一个局域网上的主机或路由器的IP地址的网络前缀必须一样,路由器的每个接口对应不同网络前缀的IP地址
网络层使用IP地址,数据链路层使用MAC地址
IP地址和MAC地址之间没有简单的对应关系,必须使用ARP协议进行地址转换
当主机A向主机B发送数据时,先在每台主机的ARP高速缓存中查看有没有主机B的MAC地址,如果有,将此MAC地址写入MAC帧,然后通过局域网发送出去,如果没有,A自动运行ARP协议来找主机B的MAC地址,并将主机B的IP地址到MAC地址的映射写入ARP高速缓存,同时主机B也会将主机A的IP地址到MAC地址写入自己的高速缓存中
ARP对保存在高速缓存中的每一个地址项目都设置了生存时间,一旦超过生存时间的项目就从高速缓存中删掉
当两个主机不再同一个局域网中时,不再进行查找目的主机的MAC地址,而只要找到与此主机相连的路由器的MAC地址,让路由器来转发分组,知道交付目的主机
为什么不用MAC地址进行通信:MAC地址固化在网络适配器中,随主机的移动而移动,不利于形成稳定的路由,而IP地址一旦分配,在互联网中的位置基本不会改变,路由信息可在相当大范围内保持不变
IP数据报格式
首部
固定首部 20字节
版本:占4位,指IP的版本
首部长度:可以表示的最大数值是15个单位,一个单位是4个字节,因此IP数据报的首部最大长度是60字节
区分服务:占8位,一般不使用,除非在使用区分服务时
总长度:首部和数据之和,单位为字节,则数据报总长度是65535个字节,如果数据报总长度超过数据链路层的MTU,就需要进行分片
标识:占16位,用来产生IP数据报的标识,最后相同标识的分片结合成一个分组
标志:占三位,目前只有前两位有意义,最低位是MF,MF=1表示后面还有分片,MF=0表示最后一个分片,中间位是DF,只有当DF=0时,才允许分片
片偏移:占13位,用来表示分片后的分组在原分组中相对于数据字段起点的相对位置,片偏移以8个字节为偏移单位,表示除最后一个分片,其他分片的长度都是8字节的整数倍
生存时间:占8位,又叫TTL,由源主机设置,路由器转发一次分组,将TTL的值减一,当减为0时就丢弃此数据报
协议:占8位,指明此数据报携带的数据使用何种协议,以便交给上层对应协议处理
首部检验和:占16位,只检验数据报的首部,不检验数据部分,采用反码算数运算求和的方法,若结果是0,则保留,否则就丢弃
源地址:占4位
目的地址:占4位
可选字段 长度可变
用来支持排错、测量、安全等措施,长度从1到40个字节不等,最后用全0的填充字段补齐成为4字节的整数倍,增加这部分是为了增加IP数据报的功能,实际上这些功能很少被使用
数据
IP层转发分组的过程
路由器收到分组后,根据其首部中目的地址的网络前缀,查找转发表,将分组发送到对应接口或下一跳路由器转发出去,通常转发表中的每一项指明到某一个网络而不是到某一台主机的路由,减少了转发表所占的空间,缩短了查找所用的时间,
在分组转发到下一跳的过程中,会用到ARP协议进行IP地址和MAC地址的转换
路由器收到分组后,将目的地址的网络前缀和子网掩码进行按位与运算,如果和源主机在一个网络,则直接交付给目的主机,如果不在同一个网络,则交付到路由器
路由器在转发表中查找目的主机时,如果出现多个匹配项目,则选择最长网络前缀的匹配,网络前缀越长,路由越具体
为了提高查找效率,转发表中的项目按网络前缀的长短进行排序,网络前缀越长,在转发表中的位置越靠前,这样只要找到匹配项就立即发送出去
默认路由:0.0.0.0/0 一般位于转发表中的最后一条,当转发表中没有匹配项目时,和默认路由匹配,发送到下一个路由器,当转发表中的信息很少时,默认路由非常有用
当转发表中的数据很大时,为了更加有效的查找,使用二叉树,自上而下依次查找
当使用二叉线索进行查找时,要将其中每一个叶节点对应的网络前缀和子网掩码进行按位与运算,看结果是否与对应的网络前缀相匹配,若匹配则到下一跳,若不匹配,检查是否存在默认路由,若没有,则丢弃该分组
网际控制报文协议ICMP
主机或路由器使用,进行报告差错和异常情况
ICMP报文封装在IP数据报中,作为IP数据报的数据部分
ICMP报文
前4个字节是统一格式,共三个字段:类型、代码、检验和 接着的四个字节内容与ICMP的类型有关,前8个字节构成ICMP报文的首部,最后面是数据字段,长度取决于ICMP的类型
差错报告报文
数据字段都具有同样的格式
分组网间探索ping命令使用了ICMP中回送请求与回送回答报文,是应用层直接使用网络层ICMP的例子
ICMP询问报文
tracert用来跟踪一个分组从源点到终点的路径,利用IP数据报中的TTL字段,ICMP时间超过差错报告报文实现对源点到终点的路径的跟踪
IPv6协议
组成
基本首部
40个字节的固定长度
有效负载
允许有0个或多个扩展首部,后面是数据部分
对首部的主要更改
取消了检验和字段
取消了首部长度字段
取消了服务类型字段
取消了总长度字段,改用有效荷载长度字段
取消了协议字段,改用下一个首部字段
取消了选项字段,而采用扩展首部来实现选项功能
把TTL字段改成跳数限制字段
版本:占4位,指明版本协议
通信量类:占8位,为了区分不同的IPv6数据报的类别或优先级
流标号:占20位,“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路由器都保证指明服务质量,所有属于同一个流的数据报都具有相同的流标号
有效载荷长度
占16位,指明IPv6数据报除基本首部以外的字节数,最大值为64kB
下一个首部:占8位,相当于IPv4中的可选字段,若IPv6数据报没有扩展首部时,指明有效载荷应交付的高层协议,若有扩展首部,指明后面第一个扩展首部类型
跳数限制:占8位,路由器在转发分组时,现将跳数减1,当跳数限制字段减为0时,丢弃数据报
源地址:占128位
目的地址:占128位
目的地址类型
单播
传统的点对点通信
多播
一对多点通信
任播
任播的终点是一组计算机,但数据报只交付其中一个,通常是距离最近的一个
使用冒泡十六进制记法
各组之间用 :隔开 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
可以将一连串的0进行压缩 FF05:0:0:0:0:0:0:B3 可以写成 FF05::B3 为了不引起歧义,只能使用一次0压缩
可以结合点分十进制后缀 0:0:0:0:0:0:128.10.2.1 可以写成 ::128.10.2.1
地址分类
全球单播地址是使用最多的一类
将128位作为一个节点的地址
将n位作为子网前缀,剩下的128-n作为接口标识符,相当于IPv4的主机号
用n位作为全球路由选择前缀,用m为作为子网前缀,剩下的128-n-m作为接口标识符
向IPv6过渡
双协议栈
隧道技术
互联网路由选择协议
静态路由选择策略
人工配置每一条路由,适用于简单的小网络
动态路由选择策略
使用路由选择协议生成每一条路由,可以根据网络的通信量或拓扑变化进行动态地调整
互联网的规模非常大,如果让路由器知道所有路由如何到达,路由表非常大,所以采用分层次的路由选择协议
分层次的路由选择协议
将互联网划分为较小的自治系统AS,在自治系统内部使用内部网关协议,如RIP和OSPF 不同自治系统之间使用外部网关协议如RGP-4
自治系统是在单一技术管理下的许多网络、IP地址以及路由器,内部使用单一的、一致的路由选择策略
RIP
一种分布式的基于向量的路由选择协议
路由器到直连网络的距离定义为1,每经过一个路由器,距离就加1,允许的距离的最大值是15,距离16表示不可达,因此RIP只适用于小的自治系统
每个路由器仅和相邻路由器交换信息,按固定的时间间隔交换路由信息,然后根据交换的信息更新路由表
进行的操作
路由器接受相邻路由器X发来的RIP报文之后,将路由信息中的“下一跳字段”改成X,并将所有距离加1,每条路由可表示为到目的网络N,距离是d,下一跳路由器是X
如果原路由表中没有目的网络的地址,那么将该路由添加到路由表中,如果有,则看下一跳路由器,如果是X,则更新路由表,如果不是X,与原距离比较,如果比原距离小,则更新,如果大,则什么也不做
如果路由器3分钟还没有收到相邻路由器的RIP报文,则把相邻路由器记为不可达路由器,即把距离置为16
报文格式
优点缺点
实现简单,开销较小
限制了网络规模,最大距离是15
随着网络的扩大,开销就增加
坏消息传播的慢
OSPF
开放最短路径优先,使用SFP算法
特点
用洪泛法向本自治系统中所有路由器发送信息
发送的信息是与本路由器相邻的所有路由器的链路状态,而这只是路由器知道的部分信息
链路状态指明本路由器和那些路由器相邻,以及该链路的度量
当链路状态发生变化或每个一段时间,路由器才用洪泛法向所有路由器发送链路状态的信息
每个路由器都维持一个链路状态数据库,即全网的拓扑结构图,每个路由器根据SPF算法构造自己的路由表
OSPF又将自治系统划分为不同的区域
边界网关协议BGP
只是力求寻找一条能够到达目的网络且比较好的路由,并非要寻找一条最佳路由
路由器的结构
IP多播
主要应用于直播等需要实时的需求
当多播组的主机数很大时,采用多播可以明显的减轻网络中各种资源的消耗
使用D类IP地址进行多播
分为两种
在本局域网中进行硬件多播
在互联网的范围进行多播,不过在最后阶段,还要把多播数据报在局域网中采用硬件进行多播
地址范围
以太网地址范围01-00-5E-00-00-00到01-00-5E-7F-FF-FF
D类IP地址可供分配的有28位,这28位的前5位不用来构成以太网多播地址,只有后23位才映射以太网多播地址
使用协议
IGMP网际组管理协议
让多播路由器知道多播组成员信息
多播路由选择协议
洪泛和剪除
隧道技术
基于核心的发现技术
虚拟专用网VPN和网络地址转换NAT
专用地址
专用地址只能用于一个机构的内部通信,路由器对目标地址是专用地址的数据报一律不转发
10.0.0.0/8--10.255.255.255
172.16.0.0/12--17.31.255.255
192.168.0.0/16--192.168.255.255
全球地址
互联网主机通信所必须有的、全球唯一的IP地址,必须向互联网管理机构申请使用
虚拟专用网VPN
采用专用IP地址的互连网络称为专用网,利用公用互联网将各专用网连接成一个更大的专用网,称为虚拟专用网,用于一个机构内部的主机通信
使用隧道技术实现虚拟专用网
远程接入VPN
可通过拨号接入互联网,员工PC的VPN软件可以和公司的主机之间建立VPN隧道
网络地址转换NAT
如果想让专用网内的主机和互联网上的主机进行通信,需要在专用网与互联网连接的路由器上装入NAT软件,它至少有一个有效的全球IP地址
通过NAT路由器的通信必须由专用网内的主机发起,因此专用网内部的主机不能直接充当服务器使用
网络地址与端口号的转换NAPT
NAT并不能节省IP地址,为了更加有效的利用NAT路由器上的全球IP地址,常用的方法是吧运输层的端口号也利用上,这样可以使多个专用网公用NAT路由器上的一个全球的IP地址