网络层
网络层的主要任务是实现网络互连
,进而实现数据包在各网络之间的传输
。
需要解决以下主要问题:
- 网络层向运输层提供怎样的服务
- 网络层寻址问题
- 路由选择问题
两种服务
IPv4地址概述
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32比特的标识符
分类编址的IPv4地址
- 根据地址左起第一个十进制的值,判断网络类别(0-127的为A类,128-191的为B类,192-223的为C类)
- 根据网络类别,就可以找出地址中的网络号部分和主机号部分(A类地址网络号为左起第一个字节,B类地址网络号为左起前两个字节,C类地址网络号为左起前三个字节)
- 三种情况不能指派给主机或路由器接口:A类网络号0和127;主机号全0;主机号全1
划分子网的IPv4地址
- 默认的子网掩码是指在未划分子网的情况下使用的子网掩码
- A类地址:255.0.0.0
- B类地址:255.255.0.0
- C类地址:255.255.255.0
无分类编址的IPv4地址
1993年,IETF发布了无分类域间路由选择CIDR
(Classless Inter-Domain Routing)的RFC文档
- CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念
- CIDR可以更加有效地分配IPv4的地址空间
- CIDR使用“斜线记法”,或称CIDR记法。在IPv4地址后面加“/”,在斜线后面写上网络前缀所占的比特数量
128.14.35.7 / 20 网络前缀占用的比特数量:20 主机编号占用的比特数量:32-20=12
IP数据报的发送和转发过程
主机发送IP数据报
- 若在同一个网络,则属于直接交付
- 若不在同一个网络,则属于间接交付,传输主机所在网络的默认网关(路由器),由默认网关帮忙转发
路由器转发IP数据报
- 检查IP数据报首部是否出错
- 根据IP数据报的目的地址在路由表中查找匹配的条目
静态路由配置及路由环路问题
路由选择协议概述
静态路由选择
- 由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由
- 简单、开销小
- 不能及时适应网络状态(流量、拓扑)的变化
- 一般只在小规模网络中采用
动态路由选择
- 路由器通过路由选择协议自动获取路由信息
- 复杂、开销大
- 适用于大规模网络
因特网所采用的路由选择协议的主要特点
- 自适应:动态路由选择
- 分布式:路由器之间交换路由信息
- 分层次:将整个因特网划分为许多较小的自治系统AS
路由信息协议RIP的基本工作原理
路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一
RIP要求自治系统AS内的每一个路由器都要维护从他自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V”
RIP使用跳数作为度量来衡量到达目的网络的距离
- 路由器到直连网络的距离定义为1
- 路由器到非直连网络的距离定义为所经过的路由器数加1
- 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网
RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由
当到达同一目的的网络有多条“距离相等”的路由时,可以进行等价负载均衡
RIP包含以下三个要点
- 和谁交换信息 仅和相邻路由器交换信息
- 交换什么信息 自己的路由表
- 何时交换信息 周期性交换
开放最短路径优先OSPF的基本工作原理
OSPF(Open Shortest Path First)
“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表
“最短路径优先”是因为使用了Dijkstra提出的最短路径算法
OSPF是基于链路状态的,不像RIP基于距离向量
OSPF采用SPF算法计算路由,保证不会产生路由环路
OSPF不限制网络规模,更新效率高,收敛速度快
使用OSPF的每个路由器都会产生链路状态通告LSA,包含以下内容:
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送
使用OSPF的每个路由器都有一个链路状态数据库LSDB
OSPF有以下五种分组类型:
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组
- 链路状态确认分组
边界网关协议BGP的基本工作原理
BGP-4有以下四种报文:
- OPEN报文
- UPDATE报文
- KEEPALIVE报文
- NOTIFICATION报文
IPv4数据报的首部格式
-
版本:占4比特,表示IP协议版本
-
首部长度:占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示只有20字节的固定部分;最大十进制取值为15,表示包含20字节固定部分和最大40字节可变部分
-
可选字段:长度从1个字节到40个字节不等。支持排错、测量、安全等措施
-
填充字段:确保首部长度为4字节的整数值。使用全0填充
-
区分服务:占8比特,用来获得更好的服务
-
总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位
-
标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋值给标识字段
-
标志:占3比特:DF位:1表示不允许分片,0表示允许分片;MF位:1表示“后面还有分片”;0表示“这是最后一个分片”;保留位:必须为0
-
片偏移:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。以8个字节为单位
-
生存时间TTL:占8比特,最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上耗费的时间,若不为0就转发,否则就丢弃。现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则丢弃
-
协议:占8比特,指明IPv4数据报的数据部分是何种协议数据单元
-
首部检验和:占16比特,用来检验首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。IP数据报每经过一个路由器,路由器都有重新计算首部校验和。由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中,路由器不再计算。
协议名称 ICMP IGMP TCP UDP IPv6 OSPF 协议字段值 1 2 6 17 41 89
网际控制报文协议ICMP
- ICMP(Internet Control Message Protocol)
- 主机或路由器使用ICMP来发送差错报告报文和询问报文
- ICMP报文被封装在IP数据报中发送
发送ICMP共以下五种:
- 终点不可达
- 源点抑制:路由器或主机由于拥塞而丢弃数据报时,向源点发送源点抑制报文,使源点知道吧数据报发送速率放慢
- 时间超过:不是自己的数据报经过路由器,会将其生存时间TTL字段的值减1。结果为0,丢弃并向源点发送时间超过报文
- 参数问题:检验和出现误码
- 改变路由(重定向):更新更好的路由
不应发送ICMP:
- 对ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片
- 对具有多播地址的数据报
- 对具有特殊地址(如127.0.0.0或0.0.0.0)
常用的ICMP询问报文:
- 回送请求和回答:测试目的站是否可达
- 时间戳请求和回答:进行时钟同步和测量时间
Windows | Unix |
---|---|
tracert命令 | traceroute命令 |
应用层直接使用网际层ICMP | 在运输层使用UDP协议 |
使用ICMP回送请求和回答报文以及差错报告报文 | 仅使用ICMP差错报告报文 |
虚拟专用网VPN与网络地址转换NAT
VPN(Virtual Private Network):虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址
内联网VPN:同一机构内不同部门的内部网络所构成的虚拟专用网VPN
外联网VPN:一个机构的VPN需要有某些外部机构参加
远程接入VPN:外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,建立VPN隧道,即可访问资源
NAT(Network Address Translation)能够使用大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
是需要申请的、在因特网上使用的公有地址
内联网VPN:同一机构内不同部门的内部网络所构成的虚拟专用网VPN
外联网VPN:一个机构的VPN需要有某些外部机构参加
远程接入VPN:外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,建立VPN隧道,即可访问资源
NAT(Network Address Translation)能够使用大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
[外链图片转存中…(img-0fOFj8ux-1715252338851)]
如有侵权,联系删除