网络层
第四章 网络层
1. 网络层的功能
1.1 功能
- 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 网络层传输单位是数据报。
- 功能一:路由选择与分组转发
- 功能二:异构网络互联
- 功能三:拥塞控制
1.2 IP数据报
- 版本:IPv4 / IPv6
- 固定部分20字节
- 首部长度:单位是4B,最小为5
- 区分服务:指示期望获得哪种类型的服务
- 总长度:首部+数据,单位是1B
- 协议:数据部分的协议
- 首部校验和:首部校验只占分组的首部,而不校验数据部分
- 可选字段:0~40B ,用来支持排错、 测量以及安全等措施
- 填充:,全0,把首部补成4B的 整数倍
- 标识:同一数据报的分片使 用同一标识
- 标志:只有2位有意义 x _ _
中间位DF(Don’t Fragment): DF=1,禁止分片 DF=0,允许分片
最低位MF (More Fragment) : MF=1,后面“还有分片” MF=0,代表最后一片/没分片
- 片偏移:指出较长分组分片后, 某片在原分组中的相对位置。 以8B为单位
- 除了最后一个分片,每个分片长度一定是8B的整数倍
- 注意:总长度单位是1B,片偏移单位是8B,首部长度单位是4B
2. IPV4
2.1 IPV4分组
- A类地址最大可用网络数是2的7次方-2,127回环不能用,全为零不能用
2.2 NAT、子网划分与子网掩码、CIDR
- NAT——安装在路由器上的,让局域网连接到广域网,分配给路由器全球唯一的IP
- 子网掩码:网络号全为1,主机号全为0
- 网络地址:子网掩码于IP地址按位与
- 按位与:1&1=1,其余为0
- 使用子网时的分组转发:
路由表中:
- 目的网络地址
- 目的网络子网掩码
- 下一跳地址
路由转发时的分组算法:
- 提取目的IP地址
- 是否直接交付
- 特定主机路由
- 检测路由表中有无路径
- 默认路由0.0.0.0
- 丢弃,报告,报告转发分组出错
CIDR
- CIDR(无分类编址)
网络前缀/地址块
e.g. 128.14.32.0/20
- 超网:许多子网聚合成的更大的子网
方法:所有网络地址取交集
- 最长地址匹配:使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。 前缀越长,地址块越小,路由越具体。
2.3 ARP、DHCP与ICMP
2.3.1 ARP
- 物理链路层传输帧必须使用MAC地址
- ARP:IP映射成MAC
- ARP协议4种典型情况:
- 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
- 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器的硬件地址
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址
- ARP过程:检查ARP高速缓存,若查不到,同一局域网中,广播ARP请求分组 ,单播ARP响应分组,写入缓存
- 关于目标物理地址:有则填,没有则全填0
2.3.2 DHCP
- 应用层协议
- C/S 架构
- 全程通过广播进行交互
- 基于UDP
- DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址, 允许地址重用,支持移动用户加入网络,支持在用地址续租
2.3.3 ICMP
目的:为了提高IP数据包交付成功的机会
ICMP总是向原始的源方报告差错报文。
ICMP报文种类:ICMP差错报告报文(5种),ICMP询问报文(4种)
详见王道160
3. IPV6
3.1 IPV6 的格式
3.2 IPv6和IPv4
3.3 IPV6 表示形式
- 一般形式 冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
- 压缩形式
- 简化0,多个零可以用一个零表示:
简化前:4BF5:0000:0000:0000:BA5F:039A:000A:2176
简化后:4BF5:0:0:0:BA5F:39A:A:2176
- 零压缩:一连串连续冒号相隔的0可以被一对冒号取代,双冒号表示法在一个地址中仅可出现一次。
FF05:0:0:0:0:0:0:B3 => FF05::B3
3.4 IPv6向IPv4过渡的策略
- IETF设计了三种策略:双栈技术、隧道技术和头部转换
- 双栈协议:在一台设备上同时启用IPv4协议栈和IPv6协议栈
- 隧道技术:隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送
4. 路由协议和算法
4.1 静态路由与动态路由
- 静态路由算法:
- 管理员手动配置
- 简单、路由更新慢
- 适用于简单网络
- 动态路由算法:
- 路由器间交换信息
- 复杂、网络更新快
- 算法复杂,增加网络负担
4.2 域内路由与域间路由
4.3 路由信息协议(RIP)
4.3.1 RIP 特点
- 路由器只掌握物理相连的邻居及链路费用
- RIP协议只适用于小互联网,最大优点是简单
- RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
- RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
- RIP协议好消息传得快,坏消息传得慢
4.3.2 RIP协议和谁交换?多久交换一次?交换什么?
- 仅和相邻路由交换信息
- 每30秒交换一次路由表,然后路由器根据信息系更新路由表。若超过180s没收到邻居路由表的通告,则判定邻居没了,并更新自己的路由表
- 路由器交换的信息是自己的路由表
4.3.3 距离向量路由算法
4.3.4 RIP协议的报文格式
4.4 开放最短路径优先(OSPF)协议
4.4.1 OSPF 特点
每隔30min,要刷新一次数据库中的链路状态。
由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
OSPF不存在坏消息传的慢的问题,它的收敛速度很快。
所有路由器掌握完整的网络拓扑和链路费用信息。
4.4.2 OSPF协议和谁交换?多久交换一次?交换什么?
- 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。
4.4.3 链路状态路由算法
4.4.4 OSPF的区域
为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。
每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过 200 个。
4.4.5 OSPF分组
4.5 边界网关协议(BGP)
4.5.1 BGP特点
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
4.5.2 BGP 协议和谁交换?多久交换一次?交换什么?
- 与其他AS的邻站BGP发言人交换信息。
- 发生变化时更新有变化的部分
- 交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。
4.5.3 BGP协议报文格式
- 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,即通过TCP传送,然后在此连接上交换 BGP 报文以建立 BGP 会话,利用 BGP 会话交换路由信息。
4.5.4 四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。
- UPDATE(更新)报文:通告新路径或撤销原路径。
- KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。
- NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。
4.5.5 三种路由协议比较
5. IP组播
5.1 组播的概念
- 又称多播,化分组后一对多
5.2 IP组播的地址
- 一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
- 对组播数据报不产生ICMP差错报文。
- 并非所有D类地址都可以作为组播地址。
5.3 IGMP 与组播路由选择协议
5.3.1 IGMP (了解即可)
- IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
- ICMP和IGMP都使用IP数据报传递报文。
5.3.2 IGMP工作的两个阶段
- 第一阶段
某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。
本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
- 第二阶段
本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。
只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。
- 组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
5.3.3 组播路由选择协议
- 组播路由选择协议目的是找出以源主机为根节点的组播转发树。
- 构造树可以避免在路由器之间兜圈子。
- 对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。
- 组播路由选择协议常使用的三种算法:
- 基于链路状态的路由选择
- 基于距离向量的路由选择
- 协议无关的组播(稀疏/密集)
6. 移动IP
6.1 移动IP的概念
- 移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
- 移动节点:具有永久IP地址的移动设备。
- 归属代理(本地代理):一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
- 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址
- 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
- 转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址。
6.2 移动IP通信过程
7. 网络层设备
7.2 路由器的组成和功能
- 路由器的任务是连接不同网络并完成路由转发
- 从结构上看,路由器由路由选择和分组转发组成:
- 路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期的和相邻路由器交换路由信息而不断地更新和维护路由表
- 分组转发:若收到RIP/OSPF分组等,则 把分组送往路由选择处理机; 若收到数据分组,则查找转发表并输出
- 输入端口对线路上收到的分组的处理
输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
- 输出端口将交换结构传送来的分组发送到线路
若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
- 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
7.3 路由表与路由转发
- 路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
- 转发表由路由表得来,可以用软/硬件实现。转发表必须包含完成转发功能所需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。
8. 考点加强记忆
- TCP/IP 图
网络地址又称为起始地址
D类和E类没有掩码的概念
在无类寻址中,一个路由表至少有四列,即目的网络、网络的子网掩码、下一跳和花费的代价
[[计网-第五章(传输层)]]