内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记。
感谢LY,他帮我做了一部分笔记。其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的。
课程内容和西电平时讲课的内容大致重合,西电可能会多讲一点内容,但多讲的考试基本不是重点,自己对照任课老师的课件补一下即可。考试要复习的内容看上去很多,但最后考的都很基础,基本不会考特别偏的知识。
王道的计网讲的中规中矩,听课听完可能会有点懵,建议快速过一遍内容后就开始刷题来加深理解。
其他章节的链接如下:
计算机网络笔记(王道考研) 第一章:计算机网络体系结构
计算机网络笔记(王道考研) 第二章:物理层
计算机网络笔记(王道考研) 第三章:数据链路层
计算机网络笔记(王道考研) 第四章:网络层
计算机网络笔记(王道考研) 第五章:传输层
计算机网络笔记(王道考研) 第六章:应用层
其他各科笔记汇总
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务
网络传输单位是数据报
IP数据报过大就会进行分片,分片后的小单位即网络层的传输单元分组
功能一:路由选择和分组转发 最佳路径
功能二:异构网络互联
功能三:拥塞控制
若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞
解决拥塞的方法:
路由协议使用路由算法算出最佳路由填入路由表的每一个表项
链路费用(路径代价)即路由器的跳数
产生原因:
将整个因特网分成许多自治系统AS,AS外部和内部互相看不到使用的协议
网关≈路由器
RIP和OSPF使用的路由算法不同(RIP —— 距离向量路由算法,OSPF —— 链路状态路由算法),适用的网络大小不同(RIP —— 较小网络,OSPF —— 较大网络)
直接交付:路由器和目的网络直接相连
之所以要替换是因为路由表的更新要以最新消息为准
练习1:
练习2:
不需要记忆报文的格式以及相应字段。只需要注意到RIP是应用层协议,封装好的RIP报文塞到UDP数据报中传送,并且一个报文最多可以传送25条路由表项信息
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,”慢收敛“
链路状态协议≈链路状态算法
注意这里链路的度量/代价和之前讲的距离向量不一样,不是跳数
主干区域的标识符规定为0.0.0.0,负责连通其他下层区域
主干区域当中的路由器都是主干路由器,上图中 R 3 , R 4 , R 7 R_3,R_4,R_7 R3,R4,R7既是区域边界路由器也是主干路由器
采用分层次划分区域的方法虽然使得交换信息的种类增多,同时使OSPF协议更加复杂,但这样可以使得每个区域内部交换路由信息的通信量大大减小,因而OSPF协议能够适用于规模较大的自治系统
考纲上OSPF是网络层协议(也有人说是传输层协议,因为相当于是传输层的数据单元放到网络层的数据部分进行封装)
可以看这个视频https://www.bilibili.com/video/BV1YV41127U5作为补充
配置BGP时,每个AS的管理员都要选择至少一个路由器作为AS的BGP发言人。一般来说两个BGP发言人都是通过一个共享的网络连接在一起。BGP发言人往往是BGP边界路由器
BGP发言人既使用BGP协议,也使用AS内部使用的内部网关协议。它既要清楚到达其他AS内的子网应该经过哪几个AS,同时也要清楚外来分组在AS内下一跳应该走哪里
上图即是一个BGP发言人构造出的树形结构的AS连通图
UPDATE最常用
连接指TCP连接
三种路由协议比较:
ARP协议为IP协议服务。IP协议也要为ICMP,IGMP两个协议服务
版本:IPv4 / IPv6?
首部长度:单位是4B(4字节),最小为5
区分服务:指示期望获得哪种类型的服务
比如想要优先发送某数据报,要强调数据报的优先级就在这进行规定。
在实际应用中很少用
总长度:占16bit,单位为1B,表明整个IP数据报的长度
总长度的最大值为 2 16 − 1 = 65535 B 2^{16}-1=65535B 216−1=65535B。但实际上不会达到,因为长度过大就要进行分片以满足数据链路层MTU的要求
标识、标志、片偏移:与IP数据报的分片有关
生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃
首部检验和:只检验首部
使用二进制求和方法检验,具体不要求
数据报每经过一个路由器,路由器都要重新计算首部检验和,因为一些字段(如生存时间、标志、片偏移等)都可能发生变化,需要通过首部检验和检验发生变化之后IP数据报是否出错,如果出错就丢弃
源地址和目的地址:32位
可选字段: 0 ∼ 40 B 0\sim40B 0∼40B,用来支持排错、测量以及安全等措施
填充:全0,把首部补成4B的整数倍
MTU不算头尾
过长但是IP数据报不同意分片则无法往下传递,就会返回ICMP差错报文
只有DF=0,MF才有意义
相对位置指距原数据报数据部分开始位置有多远
例题:
原数据报数据部分的第一个字节称之为0字节,后面依次是1字节、2字节 …
并不是一个IP地址就标识一个主机,一个主机可以有很多个接口(比如分别用于有线上网的有线接口和无线上网的无线接口)。路由器可以连接很多个主机和路由器,这样一个路由器就会有很多个接口,每一个接口都会分配一个唯一的IP地址
分类的IP地址 → \to → 子网的划分 → \to → 构成超网(无分类编址方法)
橘色区域都是路由器的一个接口所连接的一些主机以及链路层设备(如网桥)构成的一个局域网,每个局域网也会用一个主机号全0的IP地址来标识。同属一局域网范围的主机以及设备IP地址网络号相同,主机号不同
绿色区域称之为无编号网络/无名网络,之所以叫网络是因为这个网络当中有IP地址,但是这个网络是由一段连线构成的
这一系列IP地址不能用于标识主机或者路由器的具体接口,无法分配给主机
网络号全0,主机号全0:表示本网范围内的这台主机,如果一台主机在发送分组时不清楚自己的IP地址就填上全0
网络号全0,主机号特定:全0网络号表示本网络
网络号全1,主机号全1:不可以标识某一个主机或者路由器的接口,只能作为目的地址使用,向本网内的所有主机发送广播分组。路由器隔离广播域不转发分组
拥有环回地址的数据报永远离开主机,不会进入到网络当中
把这些地址放到互联网上是无效的,路由器不认。这些地址只适用于在内部网络当中使用,比如一个学校一个单位的内部网络使用这些地址
内部IP地址和外部进行通信需要借助NAT技术
网段个数指可以分配多少个网络号
2 7 − 2 2^7-2 27−2:网络号全0表示本网络,网络号127表示环回地址,均不能使用
2 24 − 2 2^{24}-2 224−2:主机号全1表示广播地址,主机号全0和全1均不能使用
只可以在本地网、专用网当中使用,在外网、因特网当中是无效的
广域网当中的路由器以及其他的主机无法识别这些IP地址,路由器对目的地址是私有IP地址的数据报一律不进行转发
本地IP地址跟因特网上的主机进行通信需要NAT技术
WAN端:广域网端,外网端
LAN端:局域网端,内网端,本地网端
所有使用本地地址的主机在与外界通信时都要经历NAT路由器的地址转换
这些主机如果要把自己的数据发到网上去就要用NAT路由器的外部全球IP地址,要给本地网当中的主机发送数据IP数据报当中的目的地址也填NAT路由器的外部全球IP地址,由NAT路由器再分发给具体的主机
子网号可以1位都没有,但是至少要留2位作为主机号分配给主机
当从外部发送IP分组给本单位某一个子网的某一台主机时,路由器需要从收到的IP分组当中提取出目的IP地址,进而根据目的IP地址判断是应该发给本单位的哪个子网
例题1:
同样的IP地址和不同子网掩码可以相与得出相同的网络地址,但是这几种掩码所达到的效果不同,它们各自子网号和主机号所占的位数不一样,可以划分的子网个数以及每一个子网当中可以使用的最大主机数也不同
例题2:
直接交付:直接给路由器所连的一个子网
间接交付:路由器所连的网络当中并不存在目的地址,需要再转给别的路由器
直接交付用目的地址和各个子网的子网掩码相与,看结果是否和某个子网相对应,是则转发给这个子网
检测路径用目的地址和路由表当中每一行的子网掩码相与,看结果是否和某个目的网络地址相对应,是则按该行规定的下一条地址走
默认路由的IP地址和对应子网掩码均为全0,通常是局域网当中的一个路由器,默认路由会发给另一个路由器再循环以上步骤
CIDR地址块是主机号全0的最小地址,表示本网络
路由表当中有几个路由都走的同一个接口就可以对这几个目的网络地址进行聚合
206.1.0.0/17 和 206.1.128.0/17 聚合后得到206.1.0.0/16
例题:
对于各个单位都分了地址块,学校的地址块由各个系进行路由聚合得到
每个系下面可以继续再分,将网络前缀变长
通过最长前缀匹配就可以将分组直接送达目标系而不让其他系和学校收到
例题:
所有路由表的目的网络当中,没有任何一个目的网络和分组的目的地址相匹配就走默认路由,默认路由接下来会交付给另一个路由器
主机1向主机3发送文件,由于二者处于同一网络,链路层封装时目的MAC地址应填主机3的MAC地址
每一个主机和路由器都会有ARP高速缓存,存同一局域网内部主机和路由器连接该局域网端口的IP地址与MAC地址的映射
如果缓存中并没有主机3的IP地址与MAC地址映射,就需要使用ARP协议,ARP协议通过接收方的IP地址查询其MAC地址。首先广播ARP请求分组,1号主机会发送数据帧,该数据帧的目的MAC地址填全1代表在局域网内进行广播的帧,该帧经过交换机时会从所有端口转发出去,主机2和3、路由器的这个端口都会收到
收到后只有主机3会响应,主机3返回单播ARP响应分组,内部包括主机3的MAC地址
若源主机和目的主机不在一个局域网内部,如主机1要和主机5通信时同样使用ARP协议,只不过MAC地址和之前有差别。链路层封装时主机1用自己的子网掩码和目的IP地址相与发现不在同一网络就会查询默认网关IP6的MAC地址MAC6填入目的MAC地址
主机和路由器端口才有的MAC地址,交换机没有MAC地址
默认网关就是与外界沟通的路由器,是局域网连入因特网的关口
传输到路由器进行数据封装和解封装时源IP地址和目的IP地址不变,但由于到了一个新的网络内,源MAC地址和目的MAC地址会改变
如果考虑NAT,IP地址也可能发生改变
当然这里两个路由器间是点对点式通信,应使用PPP协议,PPP协议中目的MAC地址为全1
数据最后要到达一个局域网内部,局域网内部只看得懂MAC地址
例题:
其中的路由器可能会连着很多个路由器和主机,不一定是点对点通信。这里就默认它都是要使用一次ARP协议
ARP协议因为结合了IP地址和MAC地址,是处于链路层和网络层中间的协议,但是现在主要被划分成网络层协议,它给IP协议提供服务
静态配置 —— 如学校机房内每一台主机都由管理员分配一个固定IP地址
默认网关通常指的是一个路由器的一个接口的IP地址。只有通过默认网关局域网内部的主机才能够跟外界进行通信
即插即用 —— 只要设备进入DHCP服务器所管辖的局域网内,就可以被动态地分配一个IP地址
地址重用 —— 每个DHCP服务器都有一个IP地址池,主机进入局域网中被分配IP地址,等离开后DHCP服务器可以把该IP地址分配给新的主机
在用地址续租 —— 通常DHCP动态分配地址是有时间性的,这段可以使用IP地址的时期叫租用期,过后可以重新向DHCP服务器请求一个IP地址或者续租
所有有地址的服务器都可以发送DHCP提供报文,广播DHCP请求报文就是为了告知其他DHCP服务器可以收回刚刚分配的IP地址
为了更有效地转发IP数据报和提高交付成功的机会
代码字段是为了进一步区分某种类型当中一些不同的情况
检验和字段用来检验整个ICMP报文
PING::测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
源主机和目的主机之间有多个路由器,源主机会向目的主机发送一连串TTL依次被设置为1,2,… 的数据报,链路上的路由器会将TTL减为0的数据报丢弃再返回给源主机ICMP时间超过差错报告报文
单播IP地址就是之前讲的A、B、C类里经常使用的一些IP地址
单播 —— 源地址和目的地址均为单播IP地址
广播 —— 源地址为单播IP地址,目的地址为全1的广播地址。只要一个IP数据报目的地址为全1,它所对应的MAC地址也是全1,这样的数据报会发给局域网内的全部主机,会从交换机的所有端口转发出去
组播 —— 广播不管用户需求,组播则只会给有相同需求的一个组播组内的主机发送相同的数据报。比如看主播直播、腾讯会议时
在同一个物理网络 —— 在同一局域网内
组播路由器既可以运行组播协议也可以运行单播协议
有些D类地址已经被指派了永久组地址
对IP组播进行分类,一种是只能在本局域网内进行的硬件组播,一种是没有进入局域网在因特网范围内的组播。现在大部分主机都是通过连在局域网然后再连入因特网,所以最后通过因特网范围内组播之后还是要进入到局域网内的硬件组播
如果现在发来一个单播数据报,进入局域网后看目标MAC地址决定应该交付给哪个主机。同样在硬件组播也需要根据MAC地址找到可以接收组播数据报的主机
如果现在发来一个广播数据报,进入局域网后看到全1的目标MAC地址就会把数据报发给局域网中的所有主机,不管有没有交换机
之所以要过滤是为了要解决地址中这5位不一样,但最低23位一样的情况。此时会导致不同组播组但是映射得到的MAC地址相同
IGMP协议和组播路由选择协议是因特网范围内组播要使用的协议,它们都使用IP数据报传输报文,都是网络层协议
一个主机的多个进程都可以有对应的组播IP地址
加入组播组的几台主机的组播IP地址是226.15.37.123。135.27.74.52,130.12.14.56这些是主机本身就有的全球唯一的IP地址,要注意区分
每一个路由器通过使用IGMP协议就可以判断接收到组播组时是否要给局域网当中的主机
IGMP协议不知道局域网当中组播组的成员个数,同时也不知道这些成员在哪些网络上面,它只能让路由器知道是否有主机参加或者退出了组播组
Round1:路由器以及同属于组播组的成员都会收到报文
Round2:探询是在发送IGMP询问报文。其他主机只要监听到有一台主机先响应就不需要再发送响应
协议无关 —— 虽然在建立转发树时使用单播数据报和远程路由器联系,但是并不要求使用相同的单播路由选择协议
稀疏/密集 —— 一个组播组的主机间离的远近
下一个首部字段 —— 假如有一个IP数据报除了基本首部外还有若干个扩展首部,每个首部内都有下一个首部字段,指向下一个扩展首部,最后一个扩展首部指向数据部分
多播 —— 一台主机要跟多播组内的所有主机进行通信,把多播地址放入IPv6数据报的目的地址字段。IPv6并没有使用IPv4的广播地址,因为多播地址可以包括广播地址,IPv4当中的广播发给本局域网当中的所有节点,对应于IPv6可以把广播想象成一组多播组当中的所有主机
任播 —— 是IPv6独有一种的地址。假如一台主机IP数据报当中封装的目的地址是任播地址,它会给任播组内的一台主机发送数据报,通常是离它最近的一台
上图中不同的路由器使用不同版本的IP协议,使用IPv4协议的路由器收到IPv6数据报时会将其作为数据报封装到一个IPv4首部的数据报当中进行传输,进入IPv6网络时再去掉首部
QQ依据IP登录,没有在你开通手机号的地区登录就会因为IP地址发生变化而显示异地登录提醒
归属代理和外部代理都可以是一个路由器
转交地址的获得有两种形式,被动获得和主动获得
被动获得:外部代理会在外部网络内广播ICMP报文,内部包含转交地址
主动获得:移动结点主动发送广播报文获得转交地址
注册之后,发给移动结点的数据报到达归属代理都会被封装,并且以隧道的形式发送给外部代理,外部代理再根据永久地址发送给移动结点
转发:把分组从一个输入端口转发到另一个输出端口,在路由器内部
路由选择:在路由之间选择一个合适的路径把数据从源主机发送到目的主机,在路由器外部
对于任何层次的设备,都可以互联它所在的层次以及以下层次不同协议的网段 ×
集线器是直通式设备,来什么就发什么
交换机的每一个端口都是一个冲突域
转发表由路由表得来,要结合主机的一些具体信息确定输出端口
某些MAC地址可以是下一跳以太网的地址
数据平面对应转发过程,控制平面对应路由选择过程
控制平面和数据平面都在一个路由器内进行
数据平面和传统方法一样,控制平面从路由器物理上分离
这里的交换器其实指的是路由器
例题: