注:本博客是基于谢希仁的《计算机网络》第七版编写,主要是为了自己考研,准备专业课
考点归纳:
网络层
功能:网络互连、路由选择、拥塞控制,负责为分组交换网上的不同主机提供通信服务
1.网络层提供的两种服务
-
网络层提供服务的特点:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,不保证可靠通信
尽最大努力交付指:不保证无差错交付、分组不丢失、按序到达、分组不重复
-
虚电路和数据报服务之间的区别和联系:
2.网际协议IP(协议数据单元:IP数据报)
与IP配套使用的三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
2.1.虚拟互连网络:
虚拟互联网络:逻辑互连的网络,可以由多种异构网络互连组成,在网络层上看起来像一个统一的网络
中间设备:用来将网络互相连接
-
物理层的中间设备:转发器(repeater)。仅是把一个网络扩大,并未进行网络互联
-
数据链路层的中间设备:网桥(bridge)。 作用同上
-
网络层的中间设备:路由器(router)。一台专用计算机,用来在互联网中进行路由选择,存储转发分组
-
网络层以上的中间设备:网关(gateway) 。用网关连接两个不兼容的系统需要在高层进行协议转换
2.2.分类的IP地址
IP地址的编址方法:
-
分类的IP地址:最基本的编址方法
-
子网的划分:对最基本编址方法的改进
-
构成超网:比较新的无分类编址方法
分类的IP地址:
将IP地址划分为若干个固定类,每一类地址都由网络号(net-id)和主机号(host-id)构成,每一个IP地址在整个互联网范围内是唯一的
A、B、C类地址都是单播地址;D类地址用于多播
IP地址的记法:点分十进制记法
常用的三类IP地址:
-
A类:
-
最大可指派网络数:126(2^7-2) 8位除去1个固定位剩7位,减2因为要除去全0和全1位
-
第一个可指派的网络号:1
-
最后一个可指派的网络号:126
-
每个网络中最大主机数:16777214(2^24-2(全0+全1))
-
-
B类:
- 最大可指派网络数:16383(2^14-1) 16位除去2个固定位,减1因为有两个固定位为10,所以不存在全0或全1,但规定128.0.0.0不使用,故减去
- 第一个可指派的网络号:128.1
- 最后一个可指派的网络号:191.255
- 每个网络中最大主机数:65534(2^16-2)
-
C类:
-
最大可指派网络数:2097151(2^21-1) 24位除去3个固定位,减1同B类,192.0.0.0规定不使用
-
第一个可指派的网络号:192.0.1
-
最后一个可指派的网络号:223.255.255
-
每个网络中最大主机数:254(2^8-2)
-
IP地址的指派范围: (三类IP地址的全0、全1主机号均不用,故均-2)
网络上的IP地址:
-
同一局域网上的各IP地址的网络号都是相同的
-
用转发器/网桥互连的网段仍是一个局域网,因只有一个网络号
-
所有分配到网络号的网络都是平等的
2.3.IP地址与硬件地址
-
两者区别(考点):从层次看,硬件地址或物理地址是数据链路层和物理层使用的地址,由48bit组成;IP地址是网络层和以上各层使用的地址,是一种逻辑地址,由32bit组成
⚠️在数据链路层看不见IP数据报的IP地址(因IP数据报是MAC帧的数据部分)
-
为什么使用IP地址和硬件地址?
因全世界存在着各式各样的网络,它们使用不同的硬件地址,若只使用硬件地址,则需要进行复杂的硬件地址转换工作;而使用IP地址后,使得通信双方像连接在同一个网络上简单方便
2.4.地址解析协议ARP
解决问题:主机或路由器怎么知道应当在MAC帧的首部填入什么样的硬件地址?
ARP: IP地址 —> 硬件地址
RARP: 硬件地址 —> IP地址
-
IP地址与MAC地址:源IP地址和目的IP地址始终不变;而源MAC地址和目的MAC地址在每条链路上都要变化
-
作用:解决同一局域网上的主机或路由器的IP地址与硬件地址的映射问题
-
工作方式:每个主机里都设有一个ARP高速缓存,里面有所在局域网上各主机和路由器的IP地址到硬件地址的映射表,且这个映射表经常动态更新
-
工作流程(考点):当主机A向局域网上某个主机B发送IP数据报时,先在ARP高速缓存中查看有无主机B的IP地址,若有,就可查出对应的硬件地址,反之,执行ARP请求分组:
-
ARP请求分组(广播):在局域网广播一个ARP请求分组,包含发送方硬件地址,发送方IP地址,目的方硬件地址(未知时填0),目的方IP地址
-
在本局域网上的所有主机上运行的ARP进程都将收到此ARP请求分组(本地广播ARP请求,路由器不转发ARP请求)
-
ARP响应分组(单播):某主机收到ARP请求分组后,发现本机IP与查询IP一致,就回复ARP响应分组(发送自己IP地址与硬件地址,还包含发送方硬件地址,发送方IP地址),同时将请求分组中IP与硬件地址对应关系保存,方便下次使用
-
收到回复的ARP响应分组后,将对应IP和硬件地址存入ARP高速缓存中,方便下次使用
-
-
生存时间:ARP高速缓存中每条映射都只存在一段时间,超过时间后就被删除
-
特点:
-
ARP协议只解决同一局域网上IP地址和硬件地址映射问题,不在同一局域网则无法解决
-
ARP工作过程对用户来说是透明的
-
四种使用ARP的典型情况:(了解)
-
发送方是主机,要把IP数据报发送到本网络上的一个主机,这时ARP找到目的主机的硬件地址
-
发送方是主机,要把IP数据报发送到另一个网络上的一个主机,这时ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成
-
发送方是路由器,要把IP数据报发送到本网络上的一个主机,这时ARP找到目的主机的硬件地址
-
发送方是路由器,要把IP数据报发送到另一个网络上的主机,这时ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成
几种不需要使用ARP的典型情况:(考点)
- 在源主机的ARP高速缓存中已经含有目的IP地址项目
- 源主机发送广播分组
- 源主机和目的主机使用点对点通信链路
2.5.IP数据报格式
首部各字段含义:
-
版本:占4位,说明该IP数据报使用的IP协议的版本,通信双方必须使用同一个IP协议版本
-
首部长度:占4位,长度20~60字节,因为IPv4中首部存在可变部分,所以需要指出首部的长度以划分首部与数据部分;以4字节为单位,不是4的整倍数时要填充至整倍数
-
区分服务:占8位,只在区分服务时才起作用,一般不用
-
总长度:占16位,说明该IP数据报的总长度(首部+数据)。IP数据报封装为MAC帧时受限于MAC帧的MTU(46-1500字节),所以IP数据报还存在“分片”操作—将IP数据报分为多片,封装进多个MAC帧。IP数据报最大长度2^16-1=65535字节
-
标识:占16位,IP数据报若存在分片,则接收方需要将各分片组合出原IP数据报,相同标识号的IP数据报就说明它们其实是同一个源IP数据报。
-
标志:占3位,目前只有前两位有意义,最低位为MF(More Fragment),若MF=1则说明该数据报后面“还有分片”。中间一位为DF(Don’t Fragment),若DF=1则不能分片,只有DF=0才可以分片
-
片偏移offset:占13位,用于说明该IP数据报(已分片)在源IP数据报中的相对位置(相对于数据字段的起点,该片从何处开始),单位是8字节,每个分片一定是8字节的整倍数
-
生存时间TTL:限制IP数据报在计算机网络中生存的时间,最大跳数为255
-
协议:说明该IP数据报的上层协议类型
-
首部校验和:验证首部是否存在传输错误,只检验首部,不包括数据部分(减小开销)
-
源地址
-
目的地址
-
可变部分:长度为1~40字节,IP地址中的可变部分可用于支持很多操作,但很多情况都用不上,而且会增加路由器处理分组的开销,所以IPv6中的数据报首部做成了固定长度
首部校验和示例参考: 二进制反码求和
2.6.IP层转发分组的流程:
每个路由器路由表表项数:每有一个网络就要有一个路由表项,接口所在网络为直连网络,直接交付
默认路由:可以减少路由表所占用的空间和搜索路由表所用的时间,将不在路由表中的网络都连向默认路由
路由表:只有目标网络和对应的下一跳地址,并不储存到某个网络的完整路径
分组转发算法:
- 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N
- 若N就是与此路由器直接相连的某个网络地址,则进行直接交付,否则就要执行(3)进行间接交付
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(4)
- 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(5)
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(6)
- 报告转发分组出错
3.划分子网和构造超网
3.1.划分子网
两级IP地址的问题:(了解)
-
IP地址空间利用率有时很低
-
给每个物理网络分配一个网络号会使路由表变得很大,因而使网络性能变坏
-
两级IP地址不够灵活
基本思路:借用主机号若干位作为子网号;划分子网后的IP地址 ::= {<网络号>,<子网号>,<主机号>}
⚠️划分子网是对于一个网络内部而言的,对外部网络仍表现为一个网络
子网掩码:
作用:用来找出IP地址中的子网部分,长度为32位,原IP中网络号和子网部分置为1,主机号部分置为0,如下图所示
默认子网掩码:在不进行子网划分时,也要给出子网掩码,就用默认子网掩码
子网数:2^k-2,k表示子网号的位数,减去全0和全1,就是可用子网数(虽然现在全0和全1地址也可以使用,但不推荐)
子网划分方法:
-
固定长度划分:所划分的所有子网的子网掩码都是相同的,取所用最大的主机数进行划分
-
变长划分:根据需求灵活划分
3.2.使用子网时的分组转发:
子网划分后的路由表:包含目的网络地址、子网掩码、下一跳地址
子网划分后的路由转发分组算法:
- 从收到的数据包首部提取出目的IP地址
- 将此地址与路由表中的子网掩码部分作与操作
- 比较结果是否与相应的目的网络地址相同
- 如果相同,则选择相应的下一跳,否则继续进行下一行的比较
3.3.无分类编址CIDR(构造超网):
概述:无分类域间路由选择,一种新型地址分类方法,消除了传统的A,B,C类地址和划分子网的概念,重新将IP地址划分为两个部分,即:“网络前缀”和“主机号”
⚠️指网络前缀不再有位数的限制,即没有A,B,C类之分
CIDR的主要特点:
- 消除了传统A、B、C类地址及划分子网的概念,重新将IP地址划分为两个部分即,”网络前缀”和”主机号”
- 把网络前缀相同的连续IP地址组成一个CIDR地址块,只要知道任一个地址,就可以知道这个地址块的起始地址和最大地址以及地址数
格式:使用网络前缀代替网络号和子网号,使IP地址变回两级格式
斜线表示法:/24表示子网掩码前24位为1,即网络前缀的位数
CIDR地址块:把网络前缀都相同的连续IP地址组成CIDR地址块
路由聚合:一个CIDR地址块能表示很多地址,这种地址的聚合称为路由聚合,也称为构成超网
CIDR地址块的分配:
- 该ISP由64个C类地址,若不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的路由表中,就需要由64个项目,采用地址聚合后,只需用路由聚合后的一个项目206.0.64.0/18就能找到该ISP
- 该大学需要800的主机地址,因2^10-2>800,所以主机位应取10位,前22位作为网络前缀,由于子网全0默认不可用,故从206.0.68.0/22开始
最长前缀匹配:
-
用收到的目的地址与路由表中的每条掩码依次相与,取最长前缀匹配项的地址作为下一跳
-
因为前缀越长,其地址块就越小,因而路由就越具体
4.网际控制报文协议ICMP
作用:ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
报文格式:
4.1.ICMP报文种类
报文类型:差错报告报文,询问报文
ICMP差错报告报文封装过程:
⚠️此处加上数据部分的前8个字节是为了得到运输层的端口号
常用的ICMP询问报文:
-
回送请求和回答:
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问,这种询问报文用来测试目的站是否可达以及了解其状态
-
时间戳请求和回答:
ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间,用于时钟同步和时间测量
4.2.ICMP的应用:
-
分组网间探测PING(Packet InterNet Groper):用于探测两台主机间是否连通
-
路由探测(traceroute): 用来跟踪一个分组从源点到终点的路径,路由器通过路由探测,可以知道其周围全部路由的信息
5.互联网的路由选择协议
回答问题:路由器中的路由表是如何得出的?
-
路由选择协议基本概念
-
静态路由选择和动态路由选择
- 静态路由:人工配置每一条路由,不能及时适应网络状态的变化,适用于简单的小型网络
- 动态路由:自适应进行路由选择,能较好地适应网络状态的变化,适用于较复杂的大型网络
-
分层次的路由选择协议:
将整个互联网划分为多个较小的AS,进行分层次的路由选择 -
自治系统AS(Autonomous system):
一个有权自主地决定在本系统中应采用何种路由协议的小型单位,在AS内部使用内部网关协议,AS之间使用外部网关协议
-
-
路由选择协议分类:
-
内部网关协议IGP:在一个自治系统内部使用。如RIP、OSPF协议
-
外部网关协议EGP:在不同自治系统之间使用。如BGP协议
⚠️AS之间的路由选择也叫域间路由选择,而AS内部的路由选择也叫域内路由选择
-
5.2.内部网关协议—RIP(路由信息协议)
-
概述:一种分布式,基于距离的路由选择协议
-
距离:直连网络距离为1,每过一个非直连网络距离加1,距离也称为跳数,每经过一个路由器跳数就加1,距离实际上指最短距离
RIP允许一个路径最多包含15个路由器,也就是距离最大值为16,故RIP适合小型互联网使用;RIP不能在两个网络之间同时使用多条路由(只选择“距离”最短的路径)
-
工作流程:每个路由器每隔一段时间向外广播,每个路由器收到广播后更新自己的路由表
-
RIP协议的特点:(考点)
-
仅和相邻路由器交换信息,不相邻的路由器不交换信息
-
交换的信息是当前本路由器现在的路由表
-
按固定时间间隔交换信息
-
-
距离向量算法:
-
路由器收到地址为X的相邻路由器的一个RIP报文,修改报文中所有项目,把下一跳地址改为X,把距离字段值都+1
-
对修改后的RIP报文中的每个项目重复以下步骤
-
若项目中目的地址不在路由表中,则加入路由表;
-
若下一跳给出的路由器地址与RIP报文传来地址相同,则用收到的项目替换原路由表中的项目(即更新,即使距离可能增大)
-
若收到项目中的距离小于路由表中的距离,进行更新
-
若超过3分钟未收到相邻路由信息,则将其标记为不可达,即把距离置为16
-
返回
-
-
-
RIP协议报文格式:
⚠️********************-
RIP协议使用运输层的用户数据报UDP进行传送
-
RIP报文最大长度:4+20*25=504字节
-
RIP存在的问题:当网络出现故障时,要经过较长时间才能将此信息传送到所有路由器
-
RIP协议特点:好消息传播快,坏消息传播的慢
-
5.3 内部网关协议—OSPF(开放最短路径协议):
-
主要特征:使用分布式的链路状态协议,而不像RIP使用距离向量协议
-
OSPF的要点:
-
向本自治系统中所有路由器发送信息。使用洪泛法
-
发送信息:与本路由器相邻的所有路由器的链路状态,即说明与哪些路由器相邻,以及该链路的“代价”
⚠️RIP协议是发送“到所有网络的距离和下一跳路由器”
-
只有当链路状态发生变化时,才使用洪泛法发生信息;不是定期更新
-
-
链路状态数据库:全网的拓扑结构图,能较快的更新,收敛较快
-
OSPF的区域:
为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干各更小的范围,叫做区域;必须要有一个主干区域,其它区域一般都和主干区域直接相连;
优点:使用泛洪法交换链路信息时,仅在一个区域内而不是整个自治系统中,这减小了整个网络上的通信量
-
OSPF报文:
OSPF报文的5种分组类型:(了解)
-
类型1:问候分组;
-
类型2:数据库描述分组;
-
类型3:链路状态请求分组;
-
类型4:链路状态更新分组,用泛洪法对全网更新链路状态;
-
类型5:链路状态确认分组
5.4.外部网关协议EGP—BGP协议
BGP协议的作用:寻找一条能够到达目的网络且比较好的路由,不一定是最佳路由,采用路径向量路由选择协议
6.IPv6
- 主要变化:(相比于IPv4)
- 采用更大的地址空间 128位
- 拓展的地址层次结构 子网划分更大
- 首部长度固定 40B
但允许在数据部分增加扩展首部 - 支持即插即用,自动配置
- 实现 IPv4 到 IPv6 过渡:双协议栈技术、隧道技术
7.虚拟专用网VPN和网络地址转换NAT
-
虚拟专用网VPN(Virtual Private Network):
- 作用:用于机构内部的通信,而不是用于和网络外非本机构的主机通信,但没有真正使用通信专线,VPN只是在效果上和真正的专用网一样
- 远程接入VPN:可以满足外部流动员工访问公司网络的需求
- 实现技术:隧道技术、加密技术
-
网络地址转换NAT(Network Address Translation ):
要在路由器上安装NAT软件,装有NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全球IP地址,使得所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网连接
作用:实现专用网中的主机A与互联网上的主机B进行通信
网络转换的工作过程/工作原理:
-
离开专用网时:专用网中的主机A将IP数据报(目的地址为B的IP地址)发送给NAT路由器,NAT路由器将此IP数据报中的源IP地址替换为本机全球唯一的IP地址,再将此新的IP数据报发送给主机B
-
进入专用网时:主机B接收到此新的IP数据报后,进行回复,将回复消息发送给NAT路由器(即目的地址为其全球唯一IP地址),NAT路由器接收到回复消息后,通过NAT地址转换表,把IP数据报中的旧的目的地址,转换为主机A的IP地址,最后将消息发送给主机A
⚠️通过NAT路由器的通信必须由专用网内的主机发起,因外部主机并不知道内部主机的IP地址,无法发起通信
-
1、虚拟专用网VPN工作原理
①主机A建立分组,将其IP地址作为源地址,将主机B的IP地址作为目的地址,将分组发送到VPN设备1,通常是网关
②分组到达VPN设备1,VPN设备1在分组中增加新头部;在此分组中,将分组的源IP地址写为自己的IP地址V1,目的地址写为对等VPN设备2的IP地址V2,然后发送
③分组通过Internet到达VPN设备2,VPN设备2能够识别新增的头部,对其进行拆除,从而得到第1步由主机A生成的原分组,再根据分组的IP地址信息,进行正常的转发
2、路由转发的基本过程
从数据包中提取出目的IP地址,将此地址与路由表中的子网掩码部分作与操作,比较结果是否与相应的目的地址相同,
如果相同,则选择相应的下一跳,否则继续进行下一行的比较