大家对于计算机网络的认知可能是——细、碎、杂,所以做起题来常常感觉力不从心。计网在408中只会考到一道大题,所以我们通过历年真题可以发现,其实它很有套路,是围绕物理层、数据链路层、网络层、传输层、应用层这几个层次当中的设备与协议展开命题的。因此,我总结了一张包含各个层次典型设备的图,我们从图入手,分析如何运用各种协议传送数据,一层层剖析命题思路~
一、思路总结
(一)计算机网络层次结构
1.基本内容
首先要明白,计算机网络是分为很多层次的,在OSI模型中分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。在传输过程中,设备属于哪个层次,就将数据解析到哪一层次,并如实修改相应的地址(目的MAC地址、源MAC地址等),要记住传输层是从下至上第一个端到端的协议。
2.PDU与SDU
PDU是协议数据单元,是工作中相同协议层的实体之间交换数据的基本单元。
SDU是服务数据单元,下层协议为上层协议提供服务,上层协议数据单元PDU将会成为下层的服务数据单元SDU。
各层传输的信息内容与PDU如下:
各层之间PDU与SDU的关系如下:
3.各层协议之间的联系
从下至上各层协议之间是有联系的,比如TCP基于IP、BGP基于TCP,也就是说在TCP协议外面要再“套”一层IP首部,各层协议之间的关系如下图:
各个协议的中文名与简要解释如下:
4.几个重要协议
其中最为重要、最常考大题分析的有四个协议,它们的传输单位如下:
(1)MAC协议
关于MAC地址,长度为6B,每个设备出厂即拥有全球唯一的MAC地址,采用十六进制格式,例如“0F-11-21-24-56-A6”。
以太网帧还会在MAC帧最前面加7字节的前导码和1字节的帧起始定界符,其中前导码可以使目的主机接收器时钟与源主机发送器时钟同步,帧起始定界符用以指示帧的开始。
(2)IP协议
关于IP地址,长度为4B,采用点分10进制表示格式,例如“192.168.0.1”。
可进行子网划分,使用子网掩码或者CIDR表示,例如“192.168.128.0/25”,或者,子网掩码为“255.255.255.128”的网络地址“192.168.128.0”。
路由聚合是倒着的子网划分。
一个例子:
同一链路相连的在一个子网。
分类的IP地址:
特殊的IP地址:
全0在网络号上代表本网(可作源,不可作目的)、在主机号上代表空(不可作目的),
全1在网络号上代表本网、在主机号上代表广播(可作目的,不可作源),
特定值在网络号上代表特定网络、在主机号上代表特定主机,
网络号127是环回地址(可做目的,也可作源)。
私有IP地址:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
(3)TCP协议
注意序号、确认号代表应用层数据字节序号。
(4)UDP协议
(5)重点内容(要记忆)
(二)例子:如何联系互联网中的另一台主机
先看一张包含计算机网络涉及到的主要设备的一张图,几乎所有计网大题都是从此图衍生出来的:
解读:由层次结构从下至上的重要设备是——集线器(不划分冲突域、广播域)、交换机(划分冲突域、不划分广播域)、路由器(划分冲突域、划分广播域),这三个设备是解题的重要抓手,因为同属一个广播域就是属于一个网段,所以集线器、交换机各端口连接的设备都属于同一网段,各端口没有自己的IP地址,而路由器各个端口有各自的IP地址,而且各端口连接的设备属于不同网段。
现在有一个问题:如何与互联网中另一台主机取得联系?(比如本图中的H3主机要向Web服务器S发出请求)
我对此步骤进行了总结,下面的内容包含各种协议的使用规则,相当于借这个例子对各种协议的要点做了个大杂烩,一起来看看吧 ~
具体步骤:
1.DHCP得到私有IP地址
H3刚刚加入这个网段,还没有自己的“名字”——私有IP地址,所以它得先向DHCP服务器要个IP地址。
步骤如下:
- DHCP发现报文(discover)(主机广播询问:“有没有DHCP服务器呀?”):源IP地址为0.0.0.0,目的IP地址为255.255.255.255。当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。
- DHCP提供报文(offer)(DHCP服务器回答:“有!”):源IP地址为DHCP服务器地址,目的IP地址为255.255.255.255。DHCP服务器从尚未分配的IP地址池中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息,因为此时客户端还没有IP,所以返回信息也是以广播的方式返回的。
- DHCP请求报文(request)(主机询问DHCP服务器:“那我用你给我的IP地址啦?”):源IP地址为0.0.0.0,目的IP地址为255.255.255.255。DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。
- DHCP确认报文(ack)(DHCP服务器回答:“用吧!”):源IP地址为DHCP服务器地址,目的IP地址为255.255.255.255。当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,确认租约,并指定租约时长。告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。
2.DNS将域名映射为IP地址
现在用户在H3上访问了一个域名,但只有域名而没有对方的IP地址,就好像只知道要找“王先生”但不知道他具体叫什么名字,这让H3很苦恼,要想找到对应域名的IP地址,就要求助于DNS服务器了。
有两种查询方式:递归查询(一层一层问)与迭代查询(一个一个问)
3.ARP将IP地址转换为MAC地址
虽然知道了“王先生”(域名)的真实名字是“王二麻子”(IP地址),但是这天下叫这名字的多了去了,如何知道“王先生家的门牌号”(MAC地址)呢?这个要问ARP。
过程如下图:
重要表1:ARP表
建立过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。
4.NAT转换私有IP为公有IP
知道了“门牌号”(MAC地址),H3给请求宝宝设置好源、目的地址,一层层穿好“衣服”(封装),目送请求宝宝出发了!但是走到了NAT路由器,却不让数据通过?原因是要“出国”(从专用到因特网)必须得有“护照”(公有IP地址),仅有“身份证”(私有IP地址)是不行的,NAT路由器人帅心善,直接将私有IP地址转换为公有IP!
默认网关可以理解为离当前主机最近的路由器的端口地址,提供NAT服务。
直接根据NAT表进行转换:
5.RIP、OSPF、BGP路由转发
到了国外,人生地不熟,怎么找呢?这时就要用到RIP和OSPF提供的“州内地图”(内部网关)和BGP提供的“州际地图”(外部网关)。
- OSPF工作原理:向自治系统内所有路由器广播完整的网络拓扑和链路费用信息;
- RIP工作原理:自治系统内每个路由器只和相邻路由器传播其本身的链路费用信息,特点是:邻居交换路由,十六则不可达,好消息传的快,坏消息传的慢;
- BGP工作原理:与其他自治系统的BGP发言人交换链路可达信息。
三种协议的联系与区别如下:
重要表2:路由表(路由器)
建立过程:可通过RIP、OSPF等建立
要点:
(1)转发时遵循“最长前缀匹配原则”,即对于能匹配多个表项的情况,选择匹配前缀最长的;
(2)默认路由的目的IP地址为0.0.0.0/0,只有当前面的所有目的网络都不能和分组的目的IP地址匹配时才使用;
(3)可对相同前缀的子网进行路由表项聚合;
重要表3:转发表(交换机)
交换机有自学习功能
6.TCP、UDP与对方建立连接
终于到了王先生的家,和他取得了联系,下面就要和他进行连接,方便后续更多数据的传送,这里要用到可靠传输TCP或者不可靠传输UDP。
关于TCP的三次握手和四次握手,总结如下:
三次握手:
四次挥手:
关于客户端和服务器各个时间段的名称可以这样记忆:
(客户端)纷(F)纷(F)提(T)
(服务器)出(C)了(L)
发送窗口=min{自身拥塞窗口,接收方接收窗口}
7.应用层协议,启动!
不同应用层协议的工作过程不同,详见我的另一篇文章:【408精华知识】速看!应用层协议考点大总结!!,其中DNS协议在前面已有说明。
二、真题解答
计网大题主要分为以下几类:
1.2009
解题思路
拿到题,先看三大设备——集线器、交换机、路由器,本题仅有路由器。
(1)看第一问,要对网段202.118.1.0/24进行划分,由于网络号占了24位,主机号还剩8位,最多可表示254(256-全1代表广播-全0代表本机)个主机,故平分给两个子网,拿出主机号第一位纳入网络号,那么子网1和子网2的IP地址如下:
子网1 | 子网2 |
---|---|
202.118.1.128/25 | 202.118.1.0/25 |
子网1和2的IP地址可以互换,其中子网1可以分配的IP地址有126(128-全1-全0)个,子网2可以分配的IP地址有126(128-全1-全0)个,大于120个,分配达到要求。
(2)路由表要求包含目的IP、子网掩码、下一跳、接口,根据(1),R1路由表如下:
目的IP地址 | 子网掩码 | 下一跳 | 接口 |
---|---|---|---|
202.118.1.128 | 255.255.255.128 | 直接到达 | E1 |
202.118.1.0 | 255.255.255.128 | 直接到达 | E2 |
202.118.3.2 | 255.255.255.255 | 202.118.2.2 | L0 |
0.0.0.0 | 0.0.0.0 | 202.118.2.2 | L0 |
其中互联网是千万个网络的聚合,因此不能在路由表上展现出来,采用默认路由IP地址为0/0。
(3)路由聚合是倒着的子网划分,寻找两个子网网络号重合的部分。
目的IP地址 | 子网掩码 | 下一跳 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.0 | 202.118.2.1 | L0 |
2.2010
解题思路
(1)主机甲和主机乙之间单向传播延迟时间:10μs。
两台主机均检测到冲突时,最短所需时间和最长所需时间对应下面两种极端情况。
①主机甲和主机乙同时各发送一个数据帧,信号在信道中发生冲突后,冲突信号继续向两个方向传播。因此,甲乙两台主机均检测到冲突时,最短需经过10μs。
②主机甲(或主机乙)先发送一个数据帧,当该数据帧即将到达主机乙(或主机甲)时,主机乙(或主机甲)也开始发送一个数据帧。这时,主机乙(或主机甲)将立即检测到冲突;而主机甲(或主机乙)要检测到冲突,冲突信号还需要从主机乙(或主机甲)传播到主机甲(或主机乙),因此,甲乙两台主机均检测到冲突时,最长需经过20μs。
(2)信道利用率计算公式如下:
故有效传输速率=
3.2011
解题思路
(1)Web服务器的IP地址是Web请求IP数据报的目的IP地址,由于IP数据报前加了MAC首部,其长度为6+6+2=14B,故需将数据帧前14B除去后才是IP首部,而目的IP地址在IP首部中处于第17B-20B,即40 aa 62 20,转换为点分十进制后是64.170.98.32,这就是服务器的IP地址。
由于主机与路由器R直接相连,故R是它的下一跳也是默认网关,其MAC地址就是数据帧MAC首部中的目的MAC地址,即00-21-27-21-51-ee。
(2)采用ARP协议确定目的MAC地址,封装ARP请求时,还不知道目的MAC地址,所以设置为FF-FF-FF-FF-FF-FF。
(3)HTTP/1.1协议以持续的非流水线方式工作时,服务器响应后仍然在一段时间内保持这个连接,客户机收到前一个请求的响应后才能发出下一个请求。第一个RTT用于请求Web页面,客户机收到第一个请求的响应后(之后还有五个请求),每访问一次对象就用一个RTT,每个RTT传输一个对象,共需要传输6个对象(1个html页面和5个JPEG小图像),所以共需要6个RTT。
(4)私有地址和Internet上的主机通信时,必须由NAT路由器进行网络地址转换,把IP数据报的源IP地址(本题为私有地址10.2.128.100)转换为NAT路由器的一个全球IP地址(本题为101.12.123.15)。IP数据报每经过一个路由器,生存时间TTL值就减1,并重新计算首部校验和。若IP分组的长度超过输出链路的MTU,则总长度字段、标志字段、片偏移字段也要发生变化。
4.2012
解题思路
5.2013
解题思路
(1)路由表结构如下:
目的网络 | 下一跳 | 接口 |
---|---|---|
194.17.20.128/25 | 直接到达 | E0 |
153.14.5.0/24 | R1 | S0 |
194.17.20.0/23 | R3 | S1 |
由于要求路由表项尽可能少,进行路由聚合,写入表中。
(2)通过E0接口转发。
(3)BGP协议,TCP协议
6.2014
解题思路
(1)路由表结构如下:
目的网络 | 下一跳 | 接口 |
---|---|---|
192.1.1.0/24 | 直接到达 | E0 |
192.1.5.0/24 | R3 | L1 |
192.1.6.0/23 | R2 | L0 |
由于要求路由表项尽可能少,将192.1.6.0/24和192.1.7.0/24进行路由聚合,得到192.1.6.0/23,写入表中。
(2)根据路由表,应从L0接口转发该分组,由于经过两跳到达目的IP地址,所以TTL-2=62。
(3)需要增加一条默认路由(假设新增接口L2):
目的网络 | 下一跳 | 接口 |
---|---|---|
0.0.0.0 | 直接到达 | L2 |
7.2015
解题思路
(1)IP地址的前24位为网络号,8位可表示主机号,除去静态分配的IP地址以及全0、全1不可用,故主机2到主机N动态分配IP的最大范围为111.123.15.5/24~111.123.15.255/24。
由于还未分配到IP地址,且不知道DHCP在哪,只能本网广播,故源IP地址为0.0.0.0,目的IP地址为255.255.255.255。
(2)首先要通过ARP将IP转化为MAC,而ARP为空,故将目的MAC地址设置为ff-ff-ff-ff-ff-ff,广播寻找默认网关的MAC地址。
下一跳是网关,目的地址为00-a1-a1-a1-a1-a1
(3)可以访问到WWW服务器,因为它们同属一个网段,但是不能访问Internet,因为DHCP服务器作为默认网关不能与Internet相连。
8.2016(?)
解题思路
(1)第二次握手的SYN、ACK均为1,第一次握手发送1个段,故确认号ack=101。
(2)接收缓存为20KB,根据快重传原则,在发送第8个确认段时,H3已发送了8个MSS大小的数据,故接收窗口变为(20KB-8KB=12KB)。
H3的拥塞窗口变化为9B。
发送窗口变为9B。(发送窗口=min(拥塞窗口,接收窗口))
(3)当H3的发送窗口等于0时,下一个待发送段的序号是20K+101=20×1024+101=20581。
H3从发送第1个段到发送窗口等于0时刻为止,平均数据传输速率是20KB÷(5×200ms)=20KB/s=20.48kbps。
(4)从t时刻起,S释放该连接的最短时间是:1.5×200ms=300ms。
10.2018
解题思路
(1)由于是将192.168.1.0/24均分给两个子网,所以两个子网的IP地址空间分别为192.168.1.0/25、192.168.1.128/25,故销售部子网的广播地址为192.168.1.127,技术部子网的子网地址为192.168.1.128/25。由于技术部已分配192.168.1.129-192.168.1.208,所以可分配的还剩192.168.1.209-192.168.1.253,共45台主机。
(2)一般来说,MTU指的是链路层MTU,也就是IP数据报的最大长度,故如果总长度为1500B,除去头部20B,数据占1480B,而技术部的数据链路层MTU为800B,也就是说除去头部20B后数据最多780B,但是由于片偏移量必须是8B的整数倍,所以对1480B的数据进行分片,可以分为两片,第一片数据长度776B,第二片数据长度为704B。故一个最大IP分片封装数据的字节数是776B,至少分为两个分片,第一个分片的偏移量为0,第二个分片的偏移量是97。
11.2019
解题思路
(1)由于H1和H2处于同一网段,H2和H4处于同一网段,所以可知设备一可以隔离广播域(网段),设备二和设备三不可以隔离广播域,故设备一为路由器,设备二和设备三为以太网交换机。
(2)设备一的接口需要配置IP地址,IF2的IP地址为192.168.1.1,IF3的IP地址为192.168.1.65.
(3)为保证拥有私有IP地址的四个主机能够访问互联网,R需要提供NAT服务。
(4)该数据报是对本网所有主机进行广播的数据报,所以H4可以收到该数据报。
12.2020
解题思路
先找到集线器、交换机、路由器的位置,确定整个网络的骨架。
(1)需要进行NAT配置,将私有ip地址转化为公有ip地址。
(2)这里主要涉及的知识点是经过NAT路由器后源、目的IP地址的转变。
初始时源IP地址为192.168.1.2,目的IP地址为203.10.2.2。
经过R3转发后源IP地址为203.10.2.6,目的IP地址为203.10.2.2。
经过R2转发后源IP地址为203.10.2.6,目的IP地址为192.168.1.2。
13.2021(非常经典)
解题思路(这个题的过程要仔细看,是一个完整的访问非本网主机的过程)
先找到集线器、交换机、路由器的位置,确定整个网络的骨架。t0时刻,H1的ARP表和S的交换表为空。
H1利用浏览器通过域名请求访问Web服务器。由于要先解析域名,查询该域名对应的IP地址,所以要先向本地域名服务器发送DNS查询报文。
ARP表为空,因此需要先发送ARP请求分组,查询本地域名服务器对应的MAC地址,这个帧的目的MAC地址是FF-FF-FF-FF-FF-FF。
S接收到这个帧,在交换表中记录MAC地址为00-11-22-33-44-cC,位于端口4,然后广播该帧。当本地域名服务器收到ARP请求后,向H1发送ARP响应分组。
S接收到这个帧,在交换表中记录MAC地址为00-11-22-33-44-bb,位于端口1,然后将该帧从端口4发送出去。得到了域名对应的IP地址,发现不在本局域网中,需要通过路由表转发。
H1的ARP表中没有路由器对应的MAC地址,因此需要先发送ARP请求分组,查询路由器对应的MAC地址,这个帧的目的MAC地址是FF-FF-FF-FF-FF-FF。
S接收到这个帧,广播该帧。当路由器收到ARP请求后,向H1发送ARP响应分组。S接收到这个帧,在交换表中记录MAC地址为00-11-22-33-44-aa,位于端口2,然后将该帧从端口4发送出去。现在,H1就能发送HTTP请求了。
在整个过程中,并没有涉及H2,H2没有主动发送数据,因此S不会记录H2的MAC地址和端口。
(1)根据上面我们总结的“如何联系互联网中的另一台主机”,可知过程是先通过DHCP得到私有IP地址,这里已有IP地址所以不需要用到这个协议,然后再通过DNS将域名转化为IP,通过ARP将IP化为MAC,故还用到的应用层协议是DNS协议。
通过UDP、IP、CSMA/CD协议逐层封装的。
(2)
00-11-22-33-44-cc,4
00-11-22-33-44-bb,1
00-11-22-33-44-aa,2
(3)2个,封装ARP查询报文的以太网帧,MAC地址未确定,所以是FF-FF-FF-FF-FF-FF。
14.2022
解题思路
(1)由于H2、H3同属一个冲突域,而H1和H2同属于一个广播域但是不属于一个冲突域,所以设备1是交换机,设备2是集线器。
(2)根据最小帧长计算公式,最远距离s=210m。
(3)M是DHCP发现报文。
由于是广播的,所以能接收到。
由于此时还不知道DHCP服务器的MAC地址,所以设置为FF-FF-FF-FF-FF-FF。
(3)根据802.11局域网/无线局域网的帧头格式,属于From AP型,可知地址1、地址2、地址3分别为:00-11-11-11-11-E1、00-11-11-11-11-C1、00-11-11-11-11-D1。
写在后面
这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!
参考资料
[1]王道408教材(2025版)
[2]王道课程资料