13017 计算机网络与信息安全——计算题
一、概述
1. 当用户线路长度在3-5km,ADSL技术标准允许的下行速率最高可以达到8Mbit/s。
【分析】计算机网络结构分为:①网络边缘 ②接入网络 ③网络核心
常见的接入网络:电话拨号接入、ADSL、HFC、局域网、移动接入网络。
ADSL(Asymmehic Digital Subscriber Line,非对称数字用户线路)是利用现有的电话网络的用户线路实现的接入网络。是家庭用户接入网络中常见的接入网络之一。
ASDL可以实现的上行和下行带宽与用户线路的长度有关系,当用户线路长度在3~5km范围内时,典型的上行带宽为 512kbit/s ~ 1Mbit/s,下行带宽为 1Mbit/s ~ 8Mbit/s。(记忆)
2. 主机A到主机B之间有一条链路,长度D=100m,带宽R=$10^8$bit/s,信号传播速率V=250000km/s。如果主机A从t=0时刻向主机B发送长度L=1024bit的分组,求:
(1)主机A和主机B间的链路传输延迟$d_t$;
(2)主机A发送该分组的传播延迟$d_p$;
(3)该分组从主机A到主机B的延迟T(忽略节点处理延迟和排队延迟);
(4)在t=$d_t$时刻,分组的第一位在何处,并说明原因;
(5)主机A与主机B之间链路的时延带宽积。
(1)
(2)
(3)
(4) 分组的第一位已到达主机B,因为
【分析】个人认为问题(1)(2)的叙述有问题,传输延迟是发送方处理的(是指数据从发送端开始进入链路直到完全进入链路所需的时间),是数据上的;传播延迟才是在链路上的,是物理上的。
二、应用层
三、传输层
- 假设甲、乙双方采用GBN协议发送报文段,甲已经发送了编号为0~7的报文段。当计时器超时时,若甲只收到0号和3号报文段的确认,则甲需要重发的报文段有哪些?
4~7号报文段要重新发送。
【分析】GBN协议采用累积确认机制:即接收方只能按序接收数据分组,当发送方收到$ACK_n$时,表明接收方已正确接收序号$\le{n}$的所有分组。
GBN协议发送端的发送窗口数量$W_s\ge1$,接收端的接收窗口数量$W_r=1$(GBN协议的接收端无缓存能力,不能缓存未按序到达的分组)。
GBN发送方必须响应的三种事件:
(1)上层调用;
(2)收到1个$ACK_n$;
(3)计时器超时。
发送方收到3号帧的确认,意味着0、1、2、3号帧已被接收,因此需要重传的帧是 4、5、6、7 号帧。
2. 主机甲、乙通过128kbit/s卫星信道互连,采用滑动窗口协议发送数据,链路单向传播时延为250ms,分组长度为1000B。不考虑确认分组的开销,为使信道利用率不小于80%,分组序号字段的位数至少要达到多少?
至少4位。
【分析】(本题的分组理解为图上的帧)数据链路层,一次发一帧,相当于一次发1000B。发送帧有延迟,确认帧无延迟。
发送一帧的时间=发送延迟+发送时延+接收时延+接受延迟(接受延迟为0),即图中的a+b+c。(一个RTT=一组发送时延+接收时延)
发送一帧的时间= $t_{seg}$ +RTT+ $t_{ack}$ ,本题$t_{seg}$=250ms,$t_{ack}$=0,RTT=1000*8bit/(128*1000)*2=1/$2_4$ms
按照信号利用率公式:
发送延迟=一帧长度的发送延迟=$t_{seg}$=1000*8bit/(128*1000)=1/$2^3$ms
$W_s$相当于发送窗口的个数。
分组序号范围是[1,$2^{n-1}$]
至少有:$7.2 \le W_s \le 8=2^3=2^{4-1}$
即窗口个数至少为8,n(位数)至少为4。
3. 若甲、乙之间已建立一条TCP连接,拥塞控制处于拥塞避免阶段,阈值为8MSS,当甲的拥塞窗口大小为24MSS时发生了超时,则甲的拥塞窗口和阈值将分别调整为多少?
阈值=24/2=12MSS
拥塞窗口=1MSS
【分析】结合 TCP拥塞控制 理解。
TCP拥塞避免阶段发生超时,cwnd降至1MSS,阈值降至原来的一半。
4. 主机甲与主机乙之间已建立一条TCP连接,主机甲向主机乙发送了两个连续的TCP报文段,分别包含300B和500B的有效载荷,第一个报文段的序号为200,主机乙正确接收两个报文段后,发送给主机甲的确认序号是多少?
第一个报文段的确认序列号是200+300=500
第二个报文段的确认序列号是500+500=1000
【分析】确认序列号=原始序列号+TCP段的长度
5. 主机甲与主机乙之间已建立一条TCP连接,主机甲向主机乙发送了3个连续的TCP报文段,分别包含300B、400B和500B的有效载荷,第3个报文段的序号为900。若主机乙仅正确接收到第1和第3个报文段,则主机乙发送给主机甲的确认序号是多少?
500
【分析】题目中给出的某个报文段的序号就是原始序列号。
由于TCP是累积确认,收到了第3段没收到第2段的情况,确认序号仍停留在第一段的末尾第二段的起始,即500。
6. 主机甲与主机乙之间已建立一条TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到1个来自乙的TCP报文段,该报文段的序号为1913、确认序号为2046、有效载荷为100B,则甲立即发送给乙的TCP报文段的序号和确认序号分别是多少?
2046 2013
【分析】考查TCP的数据编号与确认。
有效载荷为100B,即TCP段长度为100B。报文段的序号即该报文段的原始序号,即已发送给甲的,即甲发送之前的,是1913。那么甲即将要发送的报文段的初始序号=乙发来的报文段的确认序号=1913+100=2013。
7. 主机甲和主机乙已建立TCP连接,甲始终以MSS=1KB大小的报文段发送数据,并一直有数据发送;乙每收到一个报文段都会发出一个接收窗口大小为10KB的确认段。若甲在t时刻发生超时时拥塞窗口大小为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口大小是多少?
10KB
【分析】从发生超时的那一刻起,阈值调整为t时刻cwnd大小的一半,即ssthresh=8KB/2=4KB。
RTT=1, cwnd=1MSS
RTT=2, cwnd=2MSS
RTT=3, cwnd=4MSS, 此时到达门限值ssthresh,之后进入拥塞避免阶段
RTT=4, cwnd=5MSS, cwnd会一直线性增长到接收窗口大小
RTT=5, cwnd=6MSS
RTT=6, cwnd=7MSS
RTT=7, cwnd=8MSS
RTT=8, cwnd=9MSS
RTT=9, cwnd=10MSS
RTT=10, cwnd=10MSS, 发送端不能超过接收端10,此后拥塞窗口一直保持cwnd=10KB。
8. 主机甲和主机乙之间已建立一条TCP连接,TCP最大报文段长度为1000B。若主机甲的当前拥塞窗口大小为4000B,它向主机乙连续发送两个最大报文段后,成功收到主机乙发送的对第一个报文段的确认,确认段中通告的接收窗口大小为2000B,则随后主机甲还可以继续向主机乙发送的最大字节数是多少?
1000B
【分析】甲总共发送了2000B给乙,只确认了1000B,还有1000B未确认,说明乙的接收窗口还有1000B未确认占用了总共2000B的空间,剩下最多可接收1000B,1000B<=4000B,因此甲最大可发1000B(最大还能发一个报文段)。
四、网络层
1. 请将建网络183.164.128.0/17划分为等长的8个子网,并分别给出每个子网的子网地址、广播地址、子网掩码、IP地址总数、可分配IP地址数和可分配IP地址范围。
子网地址 | 广播地址 | 子网掩码 | IP总数 | 可分配IP数量 | 可分配IP范围 |
---|---|---|---|---|---|
183.164.128.0/20 | 183.164.143.255 | 255.255.240.0 | 4096 | 4094 | 183.164.128.1 ~ 183.164.143.254 |
183.164.144.0/20 | 183.164.159.255 | 255.255.240.0 | 4096 | 4094 | 183.164.144.1 ~ 183.164.159.254 |
183.164.160.0/20 | 183.164.175.255 | 255.255.240.0 | 4096 | 4094 | 183.164.160.1 ~ 183.164.175.254 |
183.164.176.0/20 | 183.164.191.255 | 255.255.240.0 | 4096 | 4094 | 183.164.176.1 ~ 183.164.191.254 |
183.164.192.0/20 | 183.164.206.255 | 255.255.240.0 | 4096 | 4094 | 183.164.192.1 ~ 183.164.206.254 |
183.164.207.0/20 | 183.164.211.255 | 255.255.240.0 | 4096 | 4094 | 183.164.207.1 ~ 183.164.211.254 |
183.164.212.0/20 | 183.164.226.255 | 255.255.240.0 | 4096 | 4094 | 183.164.212.1 ~ 183.164.226.254 |
183.164.227.0/20 | 183.164.241.255 | 255.255.240.0 | 4096 | 4094 | 183.164.227.1 ~ 183.164.256.254 |
【分析】IP网络地址183.164.128.0/17:前17位是网络部分,用于标识网络;剩余的(32-17)15位是主机部分,用于标识该网络中的单个设备。183.164.128.0/17表示的是一个包含$2^{(32-17)} = 2^{15} = 32768$个地址的网络,其中包含32766个可用的主机地址(因为一个地址用于网络地址,一个用于广播地址)。这个网络的范围从183.164.128.0到183.164.255.255。
网络地址:在任何网络中,网络地址总是该网络的第一个地址。对于183.164.128.0/17这个网络,网络地址就是183.164.128.0。
广播地址:广播地址是该网络的最后一个地址,用于向该网络内的所有主机发送数据包。对于183.164.128.0/17这个网络,广播地址是183.164.255.255。
剩下的32766个可以分配给主机。
183.164.128.0/17分为8个子网,$2^3$=8,所以我们需要3位来划分子网。
分为8个子网后,网络部分有17+3=20位,剩下12位可分给主机。
183.164.128.0也就是183.164.10000000.0(第三个位置用8个二进制表示),子网地址紧跟在前17位后面,即占用18、19、20三位来划分:
(绿色部分4+8=12位用于分配主机,共$2^{12}$个主机地址,第一个分给子网的网络地址,最后一个分给广播地址,剩下中间$2^{12}-2$个分配给主机)
183.164.10000000.0,
183.164.10010000.0,
183.164.10100000.0,
183.164.10110000.0,
183.164.11000000.0,
183.164.11010000.0,
183.164.11100000.0,
183.164.11110000.0。
广播地址:就是前20位网络地址不变,主机地址的12位IP地址都是1:183.164.1XXX1111.255。(表示每个子网的最后一个地址)
子网掩码:就是就是前20位网络地址全为1,主机地址的12位IP地址都是0。所以8个子网的子网掩码是一样的:255.255.11110000.0即255.255.240.0。
IP总数:共(32-20)12位可用于分配,每个子网有$2^{12}=4096$个。
可分配的IP地址:主机地址全为0是该子网的子网地址,全为1是该子网的广播地址,每个子网有4096-2=4094个。
可分配IP地址范围:子网地址末尾+1 ~ 广播地址末尾-1。
2. 某ISP拥有一个网络地址块201.123.16.0/21, 现在该ISP要为4个组织分配IP地址,它们需要的地址数量分别为985、486、246及211,请给出一个合理的分配方案,并说明各组织所分配子网的子网地址、广播地址、子网掩码、IP地址总数、可分配IP地址数和可分配IP地址范围。
组织 | 子网地址 | 广播地址 | 子网掩码 | IP总数 | 可分配IP数量 | IP地址数 | 可分配IP范围 |
---|---|---|---|---|---|---|---|
A | 201.123.16.0/20 | 201.123.19.255 | 255.255.248.0 | 1024 | 1022 | 985 | 201.123.16.1 ~ 201.123.19.254 |
B | 201.123.20.0/20 | 201.123.21.255 | 255.255.248.0 | 512 | 510 | 486 | 201.123.20.1 ~ 201.123.21.254 |
C | 201.123.22.0/20 | 201.123.22.255 | 255.255.248.0 | 256 | 254 | 246 | 201.123.22.1 ~ 201.123.22.254 |
D | 201.123.23.0/20 | 201.123.23.255 | 255.255.248.0 | 256 | 254 | 211 | 201.123.23.1 ~ 201.123.23.254 |
【分析】201.123.16.0第三个位置写成二进制:0001 0000,题意已经给出前21位为网络部分,剩余(32-21)=11(3+8)位。
子网掩码:(21个1)1111 1111.1111 1111.1111 1000.0000 0000 即255.255.248.0
$2^{10}$=1048 < 985+486+246+211=1928 < 2048=$2^{11}$
哈夫曼树:
graph TD A[2048] --> |0| B1[组织A:1024] A --> |1| B2[1024] B2 --> |0| C1[组织B:512] B2 --> |1| C2[512] C2 --> |0| D1[组织C:256] C2 --> |1| D2[组织D:256]
给第一个子网分配1024=$2^{10}$个地址,组织A实际只用985。范围为:
201.123.0001 0000.0000 0000最小(子网地址) ~
201.123.0001 0011.1111 1111最大(广播地址)
给第二个子网分配512=$2^9$个地址,组织B实际只用486。范围为:
201.123.0001 0100.0000 0000最小(子网地址) ~
201.123.0001 0101.1111 1111最大(广播地址)
给第三个子网分配256=$2^8$个地址,组织C实际只用256。范围为:
201.123.0001 0110.0000 0000最小(子网地址 ~
201.123.0001 0110.1111 1111最大(广播地址)
给第四个子网分配256=$2^8$个地址,组织D实际只用256。范围为:
201.123.0001 0111.0000 0000最小(子网地址) ~
201.123.0001 0111.1111 1111最大(广播地址)
3. 现有一个总长度为3800的IP数据报,要通过MTU为1500的链路传输,在IPv4下应如何分片?每片的DF、MF标志的值是什么?片偏移的值是什么?
片 | Length(总长度) | DF | MF | 片偏移 |
---|---|---|---|---|
1 | 1500 | 0 | 1 | 0 |
2 | 1500 | 0 | 1 | 185 |
3 | 840 | 0 | 0 | 370 |
【分析】最大传输单元(MTU)是指网络层在一次传输中能够传输的最大数据包(或帧)的大小,以字节为单位。
DF:禁止分片标识,0表示允许分片,1表示禁止分片。
MF:更多分片标识,0表示该数据报未被分片或是最后一片,1表示该数据报一定是一个分片且不是最后一个。
IP数据报总长度:L=3800
最大传输单元(MTU):M=1500
最大分片可封装的数据长度 d=(1500-20)/8×8$\approx$1480(向下取整)
需要的IP分片数 n=(3800-20)/1500$\approx$3(向上取整)
每个IP的偏移字段:F1=1480/8×(1-1)=0, F2=1480/8×(2-1)=185, F3=1480/8×(3-1)=370
每个IP分片的总长度:L1=1480+20=1500,L2=1480+20,L3=3800-1480*(3-1)=840
每个IP分片的MF字段:MF1=1, MF2=1, MF3=0
由于题意一定分片,所以DF都为0。
4. 某网络拓扑图如下图所示,路由器 R1 通过接口 E1、E2 分别连接局域网1、局域网2,通过接口 L0 连接路由器 R2,并通过路由器 R2 连接域名服务器与互联网。R1 的 L0 接口的 IP 地址是 202.118.2.1; R2 的 L0 接口的 IP 地址是202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0 接口的 地址是 202,118.3.1; 城名服务器的 IP 地址 202.118.3.2。
(1)将IP地址空间202.118.1.0/24分配给局域网1、局域网2,每个局域网需要分配的IP地址数不少于120个。请给出分配结果,并分别写出局域网1、局域网2 的子网地址、广播地址、子网掩码、IP地址总数、可分配IP地址数和可分配IP地址范围。
(2)请给出R1的路由表,使其明确包括到局域网1的路由、到局域网2的路由、到域名服务器的主机路由和到互联网的路由。
(3)请采用路由聚合技术,分别给出R2到局域网1、局域网2的路由。
(1)
子网地址 | 广播地址 | 子网掩码 | IP地址总数 | 可分配IP地址数 | 可分配IP地址范围 |
---|---|---|---|---|---|
202.118.1.0/25 | 202.118.1.127 | 255.255.255.128 | 128 | 126 | 202.118.1.1 ~ 202.118.1.126 |
202.118.1.128/25 | 202.118.1.255 | 255.255.255.128 | 128 | 126 | 202.118.1.129 ~ 202.118.1.254 |
【分析】64=$2^6$<120<$2^7$=128
每个局域网需要7位作为主机地址,1位为子网号,于是网络前缀变为(24+1)25位。
网络地址已用掉24位剩下(32-24)8位正好够用。
子网1的地址范围202.118.1.0000 0000~202.118.0111 1111
子网2的地址范围202.118.1.1000 0000~202.118.1111 1111
可以将子网1分配给局域网1,子网2分配给局域网2;或将子网1分配给局域网2,子网2分配给局域网1。
子网掩码:255.255.255.1000 0000,最后一个位置即$2^7$=128
(2)R1的路由表
若子网1分配给局域网1,子网2分配给局域网2:
目的网络IP地址 | 子网掩码 | 下一条IP地址 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.128 | - | E1 |
202.118.1.128 | 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 |
若子网2分配给局域网1,子网1分配给局域网2:
目的网络IP地址 | 子网掩码 | 下一条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 |
(3)局域网1和局域网2的地址可以聚合为202.118.1.0/24
目的网络IP地址 | 子网掩码 | 下一条IP地址 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.0 | 202.118.2.1 | L0 |
五、数据链路层
1. 对于10 Mbps的基带CSMA/CD网的MAC帧的最小和最大总长度分别为64和1518字节。
【分析】R=10Mbit/s,以太网的CSMA/CD协议中的帧长范围也是固定的。
CSMA/CD协议的公式:
graph LR A[数据链路层使用的信道] --> B1[点对点信道] A --> B2[广播信道] B2 --> C[多路访问控制协议MAC] C --> D1[信道划分MAC协议] C --> D2[随机访问MAC协议] C --> D3[受控接入MAC协议] D1 --> E1[频分多路复用FDM] D1 --> E2[时分多路复用TDM] D1 --> E3[波分多路复用WDM] D1 --> E4[码分多路复用CDM] D2 --> E5[ALOHA协议] D2 --> E6[载波监听多路访问协议CSMA] D2 --> E7[带冲突检测的载波监听多路访问协议CSMA/CD] style E7 stroke:#f9f,stroke-width:2px D3 --> E8[集中式控制] D3 --> E9[分散式控制] E6 --> F1[非坚持CSMA] E6 --> F2[1-坚持CSMA] E6 --> F3[P-坚持CSMA] E5 --> F4[纯ALOHA] E5 --> F5[时隙ALOHA]
非坚持CSMA:若通信站有数据发送,则先侦听信道;若发现信道空闲,则立即发送数据;若发现信道忙,则等待一个随机时间,然后重新开始侦听信道。
1-坚持CSMA:若通信站有数据发送,则先侦听信道;若发现信道空闲,则立即发送数据;若发现信道忙,则继续侦听信道,直至发现信道空闲,然后立即发送数据。
P-坚持CSMA:若通信站有数据发送,则先侦听信道;若发现信道空闲,则以概率P在最近时隙开始时刻发送数据,以概率1-P延迟至下一个时隙发送;若发现信道忙,则等待一个随机时间,然后重新开始侦听信道。
多路复用技术:当传输介质的带宽或容量超过传输单一信号的需求时,可用一个信道同时传输多路信号,从而有效地利用通信线路,节省电缆安装和维护费用。
CSMA/CD协议:通信站使用CSMA协议进行数据发送;在发送期间,如果检测到碰撞,立即终止发送,并发出一个冲突强化信号,使所有通信站都知道冲突的发生;在发出冲突强化信号后,等待一个随机时间,再重复上述过程。
2. 有一个电缆长度为2km的CSMA/CD局域网,数据传输速率为10Mbps,信号传播速度为光速的2/3,数据帧长度是512bit(包括32bit开销),传输成功后的第一个时隙留给接收方,用于捕获信道并发送一个32bit的确认帧。假设没有冲突发生,试求出有效的数据传输速率(不包括开销)(光速值为3×$10^5$km/s)。
【分析】512bit中包含的32bit开销可能是头部信息,不算有效数据,和确认帧不是一回事。确认帧是从接收方发送回来的,所以总时间加上$d_{确认帧}$。
传播时间乘以2是因为信号需要从发送方传播到接收方,然后再从接收方传播回发送方。这个往返过程确保了在发送方和接收方之间有足够的时间来检测和处理可能发生的冲突。