网络层
网络层的主要任务是把分组(被切割的数据报)从源端传送到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报
网路层功能
- 路由选择与分组转发
- 异构网络互联
- 拥塞控制
数据交换方式
电路交换
- 建立连接(呼叫/电路建立)
- 通信
- 释放连接(拆除电路)
优点 | 缺点 |
---|
通信时延小 | 建立连接时间长 | 有序传输 | 线路独占,使用效率低(通过多路复用解决) | 没有冲突 | 灵活性差 | 实时性强 | 无差错控制能力 |
报文交换
报文:源应用发送的信息整体 报文发送至交换设备,进行存储转发,直到有链路空闲再根据当时的网络情况,选择链路进行转发
优点 | 缺点 |
---|
无需建立连接 | 有存储转发时延 | 存储转发,动态分配线路 | 线路可靠性较高 | 报文大小不定,需要网络结点有较大的缓存空间 | 线路利用率较高 | 多目标服务 | ### 分组交换 分组:把大的数据块分割成小的数据块,大小可以相同,可以不同,默认大小相同 发送数据时以单个分组作为传输数据单元 每隔一定时间发送一次分组,同时,之前发送的分组也将在交换设备中继续传输
优点 | 缺点 |
---|
无需建立连接 | 有存储转发时延 | 存储转发,动态分配线路 | 线路可靠性较高 | 需要传输额外的信息量(因为报文被分割) | 线路利用率较高 | 相对于报文交换,存储管理更容易 | 乱序到达目的主机时,要对分组排序重组 |
分组交换的两种方式
- 数据报方式:为网络层提供无连接服务(不事先为分组确定传输路径,每个分组独立确定传输路径,不同分组传输路径不同)
- 虚电路方式:为网络层提供连接服务(先为分组确定传输路径【建立连接】,再沿该路径传输系列分组,系列分组传输路径相同,传输结束后拆除该连接)
两种方式的对比
| 数据报 | 虚电路 |
---|
连接的建立 | 不要 | 必须有 | 目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 | 路由选择 | 每个分组独立地进行路由选择和转发 | 属于同一条虚电路的分组按照同一路由转发 | 分组顺序 | 不保证分组的有序到达 | 保证分组的有序到达 | 可靠性 | 不保证可靠通信,可靠性由用户主机保证 | 可靠性由网络保证 | 对网络故障的适应性 | 出故障的结点丢失分组,其他分组路径选择发生变化,可正常传输 | 所有经过故障结点的虚电路均不能正常工作 | 差错处理和流量控制 | 由用户主机进行流量控制,不保证数据包的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
IP数据包
IP地址
IP地址就是一个唯一标识,是一段网络编码(二进制),由32位组成 IP地址范围:X.X.X.X X的范围:0~255
子网掩码
局域通信规则:在同一个局域网中,所有IP必须在同一网段才能互相通信
IP地址构成:网络为 + 主机位(网络位相同的IP地址,为同一网段)
子网掩码:用来确定IP地址的网络位
子网掩码如何确认网络位:与子网掩码的 1 对应的数字为网络位,与0对应的数字位主机位。求网络网段时,将IP地址与子网掩码作与运算,得出的值为划分的网段
如: 10.1.1.1 255.0.0.0 则:10.1.1.1属于10.网段 名字叫.1.1.1
10.1.1.1 255.255.0.0 则:10.1.1.1属于10.1.网段 名字叫.1.1
10.1.72.24 255.255.192.0 则:10.1.72.24属于141.14.64.网段 名字叫.24
注意:1个IP地址,必须配到一个子网掩码
IP地址分类
国际标准组织ISO定义地址分为五大类
- A类:1-126 默认子网掩码255.0.0.0
- B类:128-191 默认子网掩码255.255.0.0
- C类:192-223 默认子网掩码255.255.255.0
- D类:224-239 组播地址
- E类:240-254 科研使用
- 127网段表示主机
特殊的IP地址
网络号 | 主机号 | 作为IP地址分组的源地址 | 作为IP分组的目标地址 | 用途 |
---|
全0 | 全0 | 可以 | 不可以 | 表示主机,路由表中表示默认路由 | 全0 | 特定值 | 不可以 | 可以 | 本网段内的某个特定主机 | 全1 | 全1 | 不可以 | 可以 | 本网段广播地址(路由器不转发) | 特定值 | 全0 | 不可以 | 不可以 | 网络地址,表示一个网段 | 特定值 | 全1 | 不可以 | 可以 | 直接广播地址,对特定网段上的所有主机广播 | 127 | 任何数(非全0/1) | 可以 | 可以 | 主机环回地址 | 169.254 | 任何数 | 可以 | 可以 | 全球统一无效地址,用于临时内网通信 |
私有IP地址
地址类别 | 地址范围 | 网段个数 |
---|
A类 | 10.0.0.0/8 ~ 10.255.255.255/8 | 1 | B类 | 172.16.0.0/16 ~ 172.31.255.255/16 | 16 | C类 | 192.168.0.0/24 ~ 192.168.255.255/24 | 256 |
路由器对目标地址是私有IP地址的数据包一律不转发
NAT网络地址转换
在专用网连接到因特网的路由器上安装NAT软件,安装了NAT的路由器也叫NAT路由器,他至少有一个有效的外部全球IP地址
所有内网通过NAT路由器的外网地址与外网通信;外网与内网通信时,先将数据发送到NAT路由器的外网地址上 NAT路由器中由一张NAT转换表:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-24e0lb8l-1627881190844)(C:\Users\75950\AppData\Roaming\Typora\typora-user-images\image-20210801150108290.png)] 内外网通信时,根据转换表转换源IP地址:端口号与目标IP地址:端口号: {内 → 外} → 转换源IP地址:端口号 {外 → 内} → 转换目标IP地址:端口号
三种NAT方式
- 静态NAT:1对1映射(可用PAT技术升级为静态PAT——端口映射技术)
- 动态NAT:多对一映射,无法同时上网 #被淘汰
- PAT(端口地址转换,Port Address Translations)
PAT也称为端口复用技术
网关
网关:一个网络出口,Gateway = GW,一般网关在路由器上 路由器:可连接内外网的设备
PC向外发送包: 1. 判断目标IP地址与自己是否在同一网段 2. 如在同一网段,则直接发出去,不找网关 3. 如不在同一网段,则将包发给网关
IPV6
数据包格式
V6和V4的区别
- V6将地址从32位(4B)扩大到128位(16B),有更大的地址空间
- V6将V4的”首部校验和“字段移除,减少了每跳的处理时间
- V6将”可选项“字段移出,变成了”扩展首部“,成为了灵活的首部格式
- V6即插即用,自动配置,不需要DHCP协议
- V6首部长度必须是8B的整数倍,V4是4B的整数倍
- V6只能在主机分片,V4可以有主机和路由器分片
表现形式
冒号十六进制表示法:每四位十六进制为一组,共八组,每组间用冒号隔开 如:240e:0379:9cc7:4400:b910:9287:592d:6f5b
压缩形式:当将每一组前面的 0 删除,若一组四位全为 0 ,则只写一个 0 如:240e:0379:0000:0000:b910:0087:592d:6f5b → 240e:379:0:0:b910:87:592d:6f5b
一连串的 0 可以被一对冒号取代(在一个地址中只可出现一次) 如:FF05:0:0:0:0:0:0:B3 → FF05::B3
移动IP
移动IP技术是移动结点以固定的网络IP地址,实现跨不同网段的漫游功能
相关术语:
- 移动结点:拥有永久IP地址的移动设备
- 归属代理(本地代理):移动结点的“居所”称为归属网络,归属网络中代表移动节点执行移动管理功能的实体称为归属代理
- 外部代理(外地代理):在外部网络中帮助移动结点执行移动管理的实体称为外部代理
- 永久地址(归属地址/主地址):移动结点在归属网络中的原始地址
- 转交地址(辅地址):移动站点在外部网络使用的临时地址
通信过程
-
主机进入外部网络时获得一个转交地址(离开时注销) -
外地代理向本地代理向外地代理登记转交地址 -
外地网络向主机发送数据时,本地代理截获数据报 -
本地代理在封装数据包,新的数据包的目的地址时转交地址,发送给外地代理(隧道技术) -
外地代理拆封数据包,并转发给主机
重要协议
ARP协议
ARP协议即地址解析协议,是一个内网协议,无法通过路由器 作用:将已知的IP地址解析为MAC地址 原理: 1. 发送ARP广播请求。如,ARP报文内容:我的IP地址是10.1.1.1,MAC地址是AA,谁是10.1.1.3,你的MAC地址是? 2. 收到广播的所有主机将广播中的IP地址与MAC地址存入ARP缓存表 3. 目标主机(10.1.1.3)对源主机(10.1.1.1)回复单播应答 4. 源主机接收目标IP地址的单播应答,并将目标IP地址与MAC地址存入ARP缓存表 5. [若要跨网段发送信息则会向网关发送ARP报文]
DHCP协议
作用:自动分配IP地址 相关概念:地址池/作用域(IP、子网掩码、网关、DNS、租期),DHCP协议端口为 UDP 67/67 原理: 1. 客户机发送DHCP Discovery广播包,请求IP地址(包中包含了客户机的MAC地址) 2. 服务器响应DHCP Offer广播包,响应提供的IP地址(但无子网掩码、网关等参数) 3. 客户机发送DHCP Request广播包,客户机选择IP地址(可认为确认使用哪个IP) 4. 服务器发送DHCP ACK广播包,确定租约,并提供IP、掩码、网关、DNS、租期等参数 续约: 当租用时间经过租期50%后,客户机会再次发DHCP Request包,进行续约,若服务器无响应,则继续使用,并在87.5%时再次发送Request包,进行续约,若仍无响应,释放IP地址,重新发送DHCP Discovery包获取IP地址。当无任何服务器响应时,自动给自己分配一个169.254.x.x/16,该地址属于全球统一无效地址,用于临时内网通信
ICMP协议
作用:网络探测与回馈机制 1. 网络探测 2. 路由跟踪 3. 错误反馈
ICMP报文格式:
ICMP报文类型:
- 差错报文(5种)
- 目标主机不可达
- 源点抑制:发送速率太快,导致路由或主机因为拥塞而丢弃数据(已不使用)
- TTL超时
- 参数问题:数据包首部字段有问题被丢弃时,向源点发送
- 改变路由(重定向)
注意:
- ICMP差错报告报文出错时,不会再发送ICMP差错报告的差错报告报文(不会套娃)
- 对第一个分片的数据包片的所有后续数据包片都不发送ICMP差错报告报文
- 不发送组播数据包的差错报文
- 不发送特殊地址(如127.0.0.1或0.0.0.0)数据包的差错报文
- 询问报文 (4种)
- ping请求
- 时间戳请求和回答报文
- 掩码地址请求和回答报文(已不使用)
- 路由器询问和通告报文(已不使用)
IGMP网际组管理协议
IGMP协议:让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
IGMP的两个阶段:
-
- 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声称自己要成为改组的成员
- 本地组播路由器接收到IGMP报文后,利用组播路由选择协议,把这组的成员关系发送给因特网上的其他组播路由器
-
- 本地组播路由器周期性探询本地局域网上的主机,检查这些主机是否还是组播组的成员
- 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果几次探询后没有任何一个主机响应,则认为网络上没有此组播组的主机,不在把这组的关系成员发送给其他组播路由器
路由
路由:路由器为IP包选择路径的过程‘ 最佳路由:“最佳”只能是相对于与某一种特定要求下得出的较为合理的选择
路由算法
- 静态路由算法(非自适应):管理员手动配置路由信息
- 简单可靠,在负荷稳定、拓扑变化不大的网络中使用
- 路由更新慢,不适用于大型网络
- 动态路由算法(自适应):路由器彼此间交换信息,按照路由算法优化出路由表
- 路由更新快,适用于大型网络,及时响应网络拓扑变化
- 算法复杂,增加网络负担
动态路由算法分类
- 全局性:链路状态路由算法(OSPF)
- 分散性:距离向量路由算法(RIP)
RIP协议
RIP是距离-矢量路由协议
基本概念:
具体实现:
- 路由器学习直连路由
- 没过一个更新周期30s,路由器向邻居发送整个路由表信息(使用UDP 520端口)
- 收到邻居路由表信息后,修改所有表项
对地址为 x 的邻居路由器发来的路由表,将”下一跳“字段中的地址改为 x ,并把所有的”距离“字段+1 - 若修改后的路由表中出现了未知网络地址,则将其加入自己的路由表
- 若出现已知网络地址,则查看该地址的下一跳地址
5.1. 若下一跳就是 x ,则用修改后的路由信息替换路由器中的信息 5.2. 若下一跳不是 x ,原来距离更大时更新,否则丢弃
注意:
RIP规定最大跳数为15跳,16跳为不可达
超过180s没有收到邻居的信息,则判定邻居故障,并更新自己的路由表,将距离设置为16
路由表:
OSPF协议
开发最短路径优先OSPF协议,开放指OSPF协议不受某一家厂商控制,是公开发表的;最短路径优先是因为该协议使用了最短路径算法SPF
流程:
- 使用洪泛法下个自治系统内的所有路由器发送信息(广播)
- 发送的信息是本路由器相邻的所有路由器的链路状态
- 只有当链路状态发送变化时,路由器才洪泛发送信息
- 最后,所有路由器都能建立一个链路状态数据库,即全网拓扑
算法:
- 路由器学习直连路由
- 构造【DD数据库描述分组】,向邻居给出自己链路状态数据库中所有链路状态项目的摘要信息
- 如果DD分组中的摘要自己有,则不做处理;如果没有或者信息是更新过的,则发送【LSR链路状态请求分组】,请求自己没有的和更新过的信息
- 收到LSR后,发送【LSU链路状态更新分组】进行更新
- 更新完毕后,邻居返回【LSACK链路状态确认分组】进行确认
只要有一个路由器的链路状态发生变化: - 洪泛发生【LSU链路状态更新分组】进行更新
- 更新完毕后,邻居返回【LSACK链路状态确认分组】进行确认
- 使用最短路径算法根据自己的链路状态数据库构造到其他结点的最短路径
路由选择协议
自治系统(AS):在单一的技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内部的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由 一个AS内的所有网络都属于一个行政单位,一个AS内的所有路由器在本自治系统内都必须连通
路由选择协议:
- 内部网关协议(IGP):同一个AS内使用 → RIP、OSPF
- 外部网关协议(EGP):AS之间使用 → BGP
路由器
路由器是一种有多个输入输出端口的专用计算机,任务是转发分组
路由表
路由器中存有路由表,路由表中存储着:
- 目标地址
- 目标网络子网掩码
- 下一跳地址
路由表示意图:
路由器转发算法(转发顺序)
- 提取目标IP地址
- 判断是否直连
- 查看特定路由表
- 检测路由表中有无路径
- 默认路由 0.0.0.0
- 丢弃,报告转发分组出错
路由器工作原理
- 一个帧到达路由器,路由器检测目标MAC地址是否是自己。如果不是则丢弃;如果是则解封装,并将IP包送到路由器内部
- 路由器检查IP包头的目标IP,匹配路由表。如果匹配失败,则丢弃,并向源IP回馈错误信息;如果匹配成功,则将IP包路由到出接口
- 封装帧,将出口的MAC地址作为源MAC地址封装好。然后检查ARP缓存表,检查是否有下一跳的MAC地址,如果有,则提取目标MAC地址封装到帧中;如果没有,则发送ARP广播请求下一跳的MAC,获取到MAC后存入缓存表,并封装帧,最后将帧发送出去
XnjrGx7-1627881190851)]
路由器转发算法(转发顺序)
- 提取目标IP地址
- 判断是否直连
- 查看特定路由表
- 检测路由表中有无路径
- 默认路由 0.0.0.0
- 丢弃,报告转发分组出错
路由器工作原理
- 一个帧到达路由器,路由器检测目标MAC地址是否是自己。如果不是则丢弃;如果是则解封装,并将IP包送到路由器内部
- 路由器检查IP包头的目标IP,匹配路由表。如果匹配失败,则丢弃,并向源IP回馈错误信息;如果匹配成功,则将IP包路由到出接口
- 封装帧,将出口的MAC地址作为源MAC地址封装好。然后检查ARP缓存表,检查是否有下一跳的MAC地址,如果有,则提取目标MAC地址封装到帧中;如果没有,则发送ARP广播请求下一跳的MAC,获取到MAC后存入缓存表,并封装帧,最后将帧发送出去
|