目录
1.网络层概述
1.1.分组转发和路由选择
网络层的主要任务是将分组从源主机经过多个网络和多发链路传输到目的主机,包括分组转发和路由选择两个部分
分组转发:路由器接收分组后根据转发表进行转发
路由选择:网络层决定哪一条路径传送分组
1.2.网络层向上提供的两种服务
1.2.1.面向连接的虚电路服务
该服务的核心思想是可靠通信应该由网络自身来保证;即两台计算机进行通信时,先建立网络层上的虚电路VC(逻辑链接),双方在VC上发送分组,通信结束释放VC信号(各分组仅在建立连接时使用完整的目的地址,随后使用VC编号代替)
1.2.2.无连接的数据报服务
该服务的核心思想是可靠通信应该由用户主机来保证;即两台计算机进行通信无需建立网络层连接每个分组可走不同路径(使用完整的地址,存在分组差错)
2.网际协议IP
IP协议作为TCP/IP体系结构网络层的核心协议,导构网的网络层都使用IP协议,形成IP网从而达到互联
2.1.IPv4地址及其编制方法
IPv4地址是给IP网上每一个主机/路由器的每一个接口分配的唯一 的32bit标识符
2.1.1.IPv4地址表示方法
IPv4地址的表示通常采用点分十进制
|----------|----------------------------------|
| 32比特形式 | 00001010111100000000111110101010 |
| 每8位对应十进制 | 10 240 15 170 |
| 点分十进制形式 | 10.240.15.170 |
点分十进制中,首位<127为A类网,127-191为B类网,192-234为C类网;A类网的网络号只占首位,B类网网络号占前两位,C类网的网络号占前三位
2.1.2.IPv4地址编址方法
1.分类编制
将32比特的IPv4地址分为网络号和主机号两部分
网络号:标志主机接口所连接的网络,同一网络的网络号相同
主机号:标志主机接口,同一网络的不同主机接口的主机号不同
分类编址将地址划分为五种类型:
|------|------------|------|-------|
| 地址类型 | 网络号 | 主机号 | 地址数占比 |
| A类地址 | 0+剩余7比特 | 24比特 | 1/2 |
| B类地址 | 10+剩余14比特 | 16比特 | 1/4 |
| C类地址 | 110+剩余21比特 | 8比特 | 1/8 |
| D类地址 | 1110 | 多播地址 | 1/16 |
| E类地址 | 1111 | 保留地址 | 1/16 |
其中ABC三种类型的地址为单播地址,主机号全0的地址为网络地址无法分配,主机号全1的为广播地址
A类地址:
最小的网络号为0,表示本网络,不能指派,最大的网络号为127,作为本地环回测试地址,不能指派
可指派的A类网络数量为 2^ (8-1) -2 = 126
可分配的地址数量为 2^ (24) -2 = 1677214
B类地址:
可指派网络数量为 2^ (16-2)
可分配地址数量为 2^ (16) -2
C类地址:
可指派网络数量为 2^ (24-3)
可分配地址数量为 2^ (8) -2
特殊地址
|--------|---------|-------|--------|
| 网络号 | 主机号 | 作为源地址 | 作为目的地址 |
| 0 | 0 | ✅ | ❌ |
| 0 | host-id | ✅ | ❌ |
| 全1 | 全1 | ❌ | ✅ |
| net-id | 全1 | ❌ | ✅ |
2.划分子网
将原IP地址的主机号中一部分借用作为子网号划分成不同子网
子网掩码:表面主机号部分被借用了几个比特位作为子网号
在32比特子网掩码中,左起多个连续的比特1表示网络号与子网号,之后多个连续的0表示主机号;将所划分的IP地址与子网掩码进行逻辑与得到该子网的网络地址
网络号全1主机号全0的为默认子网掩码,即在未划分子网的情况下使用的子网掩码
划分子网示例:
某网络地址为:218.75.230.0;子网掩码为:255.255.255.128;求子网划分细节
解决方法如下:
由该点分十进制地址的首位192<218<223可知,该网络为C类网络,即末尾一位表示主机号,对应的8比特形式为00000000
子网掩码的32比特形式为:255.255.255.10000000(255全1简写);左起连续的1代表网络号和子网号,因此前24个连续的比特1对应该网络的网络号,后一个1表示从主机号中占用1位作为子网号,后续7个0对应主机号
因此划分子网的数量= 2^1 = 2 ;每个子网可分配的地址数量= 2^ (8-1) -2 = 216
3.无分类编址(无分类域间路由选择CIDR)
CIDR消除了传统ABC类地址以及划分子网的概念,把32比特的IPv4地址从划分子网的三级结构改回了与分类编址相似的两级结构并加入了地址掩码
地址掩码:左起连续多个比特1作为网络前缀 ,后续多个连续比特0对应主机号
CIDR地址采用斜线记法,例:128.14.25.7/20 ,表面该地址左起前20位作为网络前缀
CIDR将网络前缀相同的地址组成CIDR地址块,知道CIDR地址块中任意一个网络地址,即可得知该地址块的全部细节
在路由聚合中,CIDR地址块的共同前缀越长,地址块越小,路由越具体
2.1.3.IPv4地址的应用规划
1.采用定长的子网掩码进行子网划分
该方法所划分的子网属于同一子网掩码且每个子网所分配的IP地址数相同,容易浪费
下面介绍定长子网划分的二叉树解法:
例.某一网络地址为218.75.230.0/24,请将其均分成8个子块
解题思路:题中提到"均分"因此代表该题采用定长子网划分,原网络前缀为24位,正好对应点分十进制中的前三位,因此从最后一位开始考虑,如下图:
2.才用变长的子网掩码进行子网划分
每个子网可采用不同的子网掩码,每个子网所分配的IP地址数目不同,减少浪费
下面介绍变长子网划分的二叉树解法:
例.将地址为218.75.230.0/24的网络划分为5个子网,并找出所有划分细节中地址最小的子网
解题思路:题中要求划分5个子网,由于5并非2的n次方数,因此采用变长子网划分,如下图所示
将该子网划分成五个不同的子网有很多种分法,但本题要求找出所有划分思路中最小的地址,因此最终解法为图示。
可以将该问题看成阀门流水问题,假设起始节点为一个打开的水龙头🚰,下面的节点为不同的阀门,要求选取五个阀门关闭使得没有水流出,且各分支不能重复关闭
请思考下本体中最大地址是什么呢?
答案是281.75.23.11100000
2.2.4.IPv4地址与MAC地址
1.IPv4地址与MAC地址区别
在TCP/IP体系结构中,IP地址为网际层和以上各层 使用的地址,MAC地址为网络接口层中的数据链路的地址
在数据包传送的过程中IP地址与MAC地址的变化有所不同:假设主机H1发送数据经过路由器R转发给主机H2,在这个过程中IP数据报首部的源IP地址H1和目的IP地址H2始终不变 ,而帧首部的源MAC地址和目的MAC地址 则会从一段再到另一段,即从源H1目R再到源R目H2
2.地址解析协议ARP和逆地址解析RARP
在同一网络中,主机可以利用ARP通过已知的IP地址找到其相应的MAC地址;同样也可以通过RARP得到MAC地址对应的IP地址
2.2.5.IP数据报的发送和转发过程
1.主机发送IP数据报
对于同一网络中的主机之间可以直接通信,属于直接交付 ;而对于不同网络之间的主机通过路由器转发交付,属于**间接交付。**那么主机如何知道目的主机是否与自己处于同一网络呢?
假设主机A的IP地址为192.168.0.1/25 ,表明该网络前缀为左起25个比特,剩余7比特为主机号,将主机号全部取0得到主机A所在的网络地址192.168.0.0;假设主机C的IP地址为192.168.0.3/25,将主机C的左起25个比特保留剩余全部取0得到主机C的网络地址,与主机A的网络地址进行对比,从而判断主机C是否与主机A处于同一网络
2.路由器转发IP数据报
路由器若正确接收到IP数据报,则会基于IP数据报首部的目的IP地址在自己的路由表中查找转发
(路由器通过ARP解析目的IP地址从而得到该数据报的目的MAC地址进行转发)
(路由器不会对广播IP数据报进行转发,即路由器隔离广播域)
2.2.6.IPv4数据报的首部格式
IP数据报的首部格式及其内容是实现IP协议各功能的基础,通常以32比特为单位
1.版本字段:4比特长度,表示IP协议版本
2.首部长度、可选字段和填充字段:
首部字段:4比特,取值以4字节为单位,最小为0101(0101*4 = 20字节),最大1111(1111*4=60字节)
可选字段:1-40字节,支持排错、测量以及安全措施等(很少使用)
填充字段:确保首部长度为4字节的整数倍,全0填充
3.区分服务:8比特,用于获得更好的服务
4.总长度:18比特,取值以字节为单位,表示IPv4数据报的长度(首部长度+数据载荷长度)
5.标识、标志、片偏移
标识:16比特,各分片相同
标志:MF表示最低位,MF=1表明本分片后还有其余分片,MF=0表示本分片为最后一个分片;DF表示中间位,DF=1则不允许分片,DF=0表示允许分片;最高位保留为0
片偏移:13比特,以8字节为取值单位,指出分片IP报的数据载荷 偏移原数据报多远(除最后一个分片外,偏移数必须为8字节的整数倍)
例2021-408-36
6.生存时间:8比特,最大为11111111(255),以"跳数"为单位,路由器收到后将其减1,若不得零则继续转发,得0则丢弃该IP报
7.协议:8比特,指明数据载荷是何种协议数据单元PDU
8.首部检验和:16比特,检测数据报在传输中首部是否出现差错(每经过一个路由器检测一次)
计算方法为:
发送方将数据报首部划分为多个16比特序列,进行二进制反码求和,和取反码填入首部检验和字段;接收方将首部16比特序列反码相加,和取反码得到结果为0则正确接收
(二进制反码求和:正常求和,进位多余进位保留加至结果最后)
9.源IP地址和目的IP地址
3.因特网的路由选择协议
3.1.路由选择分类
静态路由选择:人工配置路由,实现简单,成本较低,无法及时适应网络变化,适用于小规模网络
动态路由选择:路由配置由路由选择协议自动获取,实现复杂,成本较高,可以及时适应网络变化,适用于大规模网络
3.2.因特网采用分层次的路由选择协议
因特网作为全球最大的互联网,采用分层次将整个因特网划分成多个小规模的自治系统AS
自治系统之间的路由选择协议简称为域间路由选择 ,自治系统内部的路由选择称为域内路由选择
域间路由选择采用外部网关协议EGP(包括边界网关协议BGP) ,域内路由选择采用内部网关协议IGP(包括路由信息协议RIP和开放最短路径优先OSPF)
3.3.路由信息协议RIP
路由信息协议RIP要求AS内每一个路由器维护从它自己到AS内其他每个网络的距离记录,称为距离向量D-V ,并用跳数 衡量到达目的网络的距离(直连网络跳数为1,非直连网络为所经过的路由器数量 +1,跳数>15则认为不可到达 );RIP认为,距离越短的路由越好,若多条路由距离相等,则采取"等价负载均衡",即将数据均分到每条路由
RIP的特点:1.仅与相邻路由器交换信息
2.交换信息为路由表
3.周期性交换
4.适用于小型网络,即网络中最多存在15个路由器
5.存在路由环路/RIP距离无穷计数问题
3.4.开放最短路径优先OSPF
1.OSPF相关概念
OSPF基于链路状态并采用最短路径算法计算路由,避免产生路由环路,且不受网络规模限制,更新效率高,收敛速度快(每个路由器都知道到达本自治系统内各网络的最短距离和下一跳路由器,称为收敛)
1.链路状态LS:指明本路由器和哪些路由器相邻以及链路代价(距离,费用,时延,带宽等)
2.邻居关系的维护和建立:相邻路由器通过交互问候分组Hello(封装在IP数据报中)
3.链路状态通告LSA:OSPF中每个路由器都会产生相应的LSA,其中包括直连网络的链路状态信息 和邻居路由器的链路状态信息
4.链路状态更新分组LSU:LSU采用洪泛法发送(即向除上游邻居路由器外的所有邻居路由器发送),路由器收到LSU后发送确认分组(重复分组不转发仅确认)
5.链路状态数据库LSDB:用于存储LSA,通过封装LSA的LSU,最终使各路由器的LSDB相同
6.基于LSDB进行最短路径优先计算,即构建自身的路由表
2.OSPF的五种分组类型
1.问候分组Hello:用于发现和维护邻居路由器的可达性
2.数据库描述分组:用于向邻居路由器给出自己的链路状态数据库中的所有链路状态信息摘要
3.链路状态请求分组:用于向邻居路由器请求发送某链路状态的具体信息
4.链路状态更新分组LSU
5.链路状态确认分组:对链路状态更新分组的确认分组
3.5.边界网关协议BGP
边界网关协议BGP属于外部网关协议EGP,用于自治系统AS之间的路由选择协议
该协议无最佳路由,适用于多级结构的因特网
总结
RIP使用UDP进行传输,而BGP通过建立TCP连接进行传输,UDP和TCP再分别封装到IP数据报;而OSPF直接封装在IP数据报中
4.网际控制报文协议ICMP
TCP/IP网际层使用网际控制报文协议ICMP(封装在IP数据报中)
4.1.ICMP的种类
1.ICMP差错报文
ICMP差错报文用于向主机或路由器(源点)报告差错,有以下五种类型:
1.终点不可达:路由器或主机不能交付IP数据报
2.源点抑制:路由器或主机由于拥塞而丢弃IP数据报
3.时间超过:①路由器收到不是自己的IP数据报后将TTL减1转发时,若减1为0则丢弃该数据报
②终点在预定时间内未全部接收,则将已接受部分丢弃并发送差错报文
4.参数问题:IP数据报首部检验字段出现误码
5.改变路由:路由器告诉主机下次IP数据报发送给另外的路由
不发送ICMP差错报文的情况:1.对ICMP差错报告的报文不再发送
2.对第一个分片的IP数据报发送后,其余分片不再发送
3.多播地址和特殊地址不发送
2.ICMP询问报文
1.回送请求和回答:用于测试目的站是否可到达以及了解相关状态
2.时间戳请求和回答:用于时钟同步、测量时间
4.2.ICMP的典型应用
1.分组网间探测PING:测试主机或路由器间的连通性
2.跟踪路由:探测从源主机到目的主机经过哪些路由
5.虚拟专用网络和网络地址转换(待补充)
5.1.虚拟专用网VPN
VPN利用公共的因特网作为本机构各专用网之间的通信载体,专用网内个主机IP地址可以自行分配,称为专用地址
5.2.网络地址转换NAT
网络地址转换可以使大量使用内部专用地址的专用网用户共享少量外部全球地址来访问因特网主机资源(通信只能由由专用网内部发起)
6.IP多播
6.1.IP多播相关概念
多播是一种一对多的通信技术,可以大幅度减少网络资源
在IPv4中,D类网络地址为IP多播地址(1110+28比特)
IP多播地址只能作为目的地址,因此同一多播地址接收多播数据报的主机为一个多播组
6.2.在局域网上进行硬件多播
由于MAC地址存在多播MAC地址类型,因此局域网支持硬件多播;将IPv4多播地址映射成局域网的硬件多播地址(多播MAC地址)即可将IP多播数据报封装在MAC帧中
|----|------|---------|----|
| | IP首部 | IP数据载荷 | |
| 帧头 | IP首部 | MAC数据载荷 | 帧尾 |
IP首部的目的IP地址(IP多播地址)映射到帧头中的目的MAC地址(多播MAC地址)
多播MAC地址(48比特)的前25比特都是相同的(01-00-5E-0),因此只有IP地址的低23位才能映射到MAC地址,且映射关系不唯一
6.3.在因特网上进行IP多播的两种协议
1.网际组管理协议IGMP:让连接在局域网上的多播路由器知道局域网上是否有主机
2.多播路由选择协议:在多播路由器之间为每一个多播组建立多播转发树(连接多播源和组内所有成员的路由器)
IP数据报沿多播转发树洪泛到达多播路由器,随后在本局域网内进行硬件多播
6.3.1.网际组管理协议IGMP
1.IGMP相关概念
IGMP有三种类型:成员报告报文、成员查询报文、离开组报文
IGMP呗封装在IP数据报中,含有IGMP的IP数据报都是IP多播数据报且TTL=1
2.IGMP基本工作原理
1.加入多播组 2.监视多播组成员变化 3.推出多播组
6.3.2.多播路由选择协议
1.基于源树的多播路由选择
1)利用反向路径广播RPB算法建立广播转发树(洪泛)
2)利用剪枝算法剪除广播转发树中下游非成员路由器,得到多播转发树
RPB的特点:在收到广播分组时,检查其是否为最短路径,若是则进行转发;不是则丢弃;若存在多条长度相同的路由,选择邻居路由器中IP地址最小的进行转发
2.组共享树多播路由选择
基于核心的分布式生成树算法:指定核心路由器,连接多播组所有成员路由器的生成树
7.移动IP技术(待补充)
移动IP技术是指:移动主机在各网络之间漫游时仍能保持原IP地址不变
8.IPv6(待补充)
8.1.IPv6数据报的基本构成
|------------|-------|-----|-------|------|
| 基本首部(40字节) | 扩展首部1 | ··· | 扩展首部N | 数据部分 |
IPv6数据报由40字节的基本首部 和长度可变的有效载荷两部分构成
8.2.IPv6地址
IPv6的地址为位128比特;地址空间大小为2^ 128;采用冒号16进制记法(不区分大小写)
冒号16进制记法:将128比特的地址分为16比特的组,每组之间用:分隔,每组中每4比特转换为16进制数;构成冒号十六进制记法,为了进一步简洁,冒号16进制记法存在两种简化方式:
**左侧0省略:**两个冒号之间的十六进制数最前面的一串0可以不写(000F->F)
**连续0压缩:**一串连续的0可以用一对冒号代替(2001:0:0:0:0:0:0:ffd->2001::ffd)
同一个IPv6地址中连续0压缩只能使用一次
9.软件定义网络SDN(待补充)
核心思想:把网络中控制层面和数据层面分离,控制层面利用软件来控制数据层设备