计算机网络期末复习
目录
第一章-概述
第二章-物理层
第三章-数据链路层
第四章-网络层
第五章-运输层
第六章-应用层
试卷
郑州轻工业大学--计算机网络(谢希仁-第八版)--期末复习重点题型及试卷
如果有答案错乱或者不对的地方请告知一下,感谢!╰(*°▽°*)╯
第一章-概述
1. 1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
电路交换
-
在通信开始时建立一条固定路径,通信结束后释放。
优点:
-
数据直达,传播时延小。
-
数据按发送顺序传输,无顺序问题。
-
适用于模拟和数字信号。
-
实时性强,随时通信。
缺点:
-
建立物理通路耗时长。
-
通信资源独占,信道利用率低。
-
难以进行差错控制和适配不同终端。
报文交换
-
数据以报文为单位发送,每个报文独立路由到目标。
优点:
-
无需建立物理通路,随时通信。
-
可靠性高,可检验和重发数据。
-
易于实现代码转换和速率匹配。
-
支持多目标服务和优先级传输。
缺点:
-
只适用于数字信号。
-
转发时延大,实时性差。
-
需要较大的缓冲区,可能需存储在磁盘。
分组交换
-
将数据分割成多个小分组,每个分组独立路由到目标。
优点:
-
传输效率高,减少传播时延。
-
存储管理简化。
-
出错和重发数据量减少,提高可靠性。
-
适合优先级策略和突发通信。
缺点:
-
存在传播时延,节点处理要求高。
-
控制信息增加,降低通信效率。
-
可能失序、重复、丢失分组,需排序。
2. Internet 主要采用的是分组交换(Packet Switching)方式。
3. 1-24 论述具有五层协议的网络体系结构的要点,包括各层的主要功能;
物理层(Physical Layer) 物理层负责在物理介质上传输比特流,确保数据的可靠传输。其主要任务包括:
-
确定连接电缆插头的定义及连接方法。
-
透明地传送比特流,即上层协议只看到“0”和“1”的比特流,而不需要关心物理信号的具体传输方式。
数据链路层(Data Link Layer) 数据链路层负责在相邻节点间无差错地传送数据帧。其主要功能包括:
-
将网络层传下来的数据报文封装成帧,并添加必要的控制信息(如校验码、地址等)。
-
进行差错检测和纠正,确保数据的可靠传输。
网络层(Network Layer) 网络层负责主机之间的数据传输,提供路由选择和转发功能。其主要功能包括:
-
将数据封装成数据包,并通过选择合适的路由将数据传递到目标主机。
-
使用IP协议进行数据报的交付和路由选择。
传输层(Transport Layer) 传输层负责端到端的可靠数据传输,支持不同主机上的进程通信。其主要功能包括:
-
将应用层传下来的数据段进行分段或重组。
-
提供流量控制和拥塞控制,确保数据的顺序性和完整性。
-
主要使用TCP(面向连接)和UDP(无连接)协议。
应用层(Application Layer) 应用层是网络体系结构的最高层,直接为用户的应用进程提供服务。其主要功能包括:
-
提供各种网络服务和应用程序接口,如HTTP、FTP、SMTP等。
-
定义应用进程间通信和交互的规则,满足用户的具体需求。
4. 1-12 互联网的两大组成部分(边缘部分与核心部分)的特点是什么?他们的工作方式各有什么特点?
边缘部分:处在互联网边缘的部分就是连接在互联网上的所有主机。边缘部分利用核心部分提供的服务,使众多主机之间能够互相通信并交换信息或共享信息。
核心部分:互联网核心部分由路由器和网络组成。向网络边缘中的主机提供连通性,使边缘部分的任何一个主机都能够向其他主机通信。
5. 1-22 网络协议的三个要素是什么?各有什么含义?
网络协议的三要素:
① 语法:即数据与控制信息的结构或格式
②语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
③ 同步:即事件实现顺序的详细说明
第二章-物理层
1.物理层的接口有哪几方面特性;(机械特性、电气特性、功能特性和过程特性)
2.常用的信道复用技术;
频分复用(FDM) :将信道的频带资源划分为多个子频带,每个子频带传输一个信号。这种技术允许多个信号在相同时间占用不同的频率资源,适用于广播电视和无线电通信等场景。
时分复用(TDM) :将时间划分为多个时隙,每个时隙分配给不同的信号或用户。所有用户在不同的时间占用同一频带宽度,适用于电话网络和数字通信。
波分复用(WDM) :在光纤通信中,利用不同的光波长传输不同的数据流。WDM分为粗波分复用(CWDM)和密集波分复用(DWDM),前者适用于低带宽需求场景,后者适用于高带宽需求场景。
码分复用(CDM或CDMA) :为每个用户分配一个独特的编码序列,使多个信号在同一频带内传输而不互相干扰。这种技术具有很强的抗干扰能力和保密性,广泛应用于移动通信系统。
统计时分复用(STDM) :根据用户需求动态分配时隙,以提高信道利用率。这种技术通过标签或地址信息识别数据,避免空闲时隙造成的资源浪费。
3. 2-16 已知码分多址 CDMA 各站的码片序列,以及收到的码片序列,计算是哪个站发送的数据比特,以及该比特是 0 还是 1;
站点和码片序列相乘后结果相加再除以总个数得1或0.(A*S = (1 -1 3 1 -1 3 1 1)/8 = 1,因此A发送的是1)
4. 数据链路层解决的三个基本问题是什么;(封装成帧、透明传输和差错检测)
第三章-数据链路层
1. 3-07 利用 CRC 检验法,判断传输过程中是否出现比特差错;
要发送的数据为1101011011。采用CRC的生成多项式是P(X)= X^4 + X + 1。试求应添加在数据后面的余数。
若要发送的数据在传输过程中最后一个1变成了0,即变成了1101011010,问接收端能否发现?
若要发送的数据在传输过程中最后两个1都变成了0,即变成了1101011000,问接收端能否发现?
采用CRC检验后,数据链路层的传输是否就变成了可靠传输?
P(X)=> 10011
1)除数:10011 被除数:11010110110000,经过模二除法,得添加在数据后面的余数为1110
2)若最后一个变为0,被除数:11010110101110,除数:10011,得到余数为0011,余数不为0,则接收端可以发现错误。
3)若最后两个成为0,被除数:11010110001110,除数:10011,得到余数为0101,余数不为0,故接收端可以发现错误。
采用CRC检验,若接收端检测到错误,则丢弃该帧,然后就不做任何操作。因此,缺乏重传机制,数据链路层的传输还不是可靠的传输。
2. 3-20 假定1km长的CSMA/CD网络的数据率为1 Gbit/s。设信号在网络上的传播速率为200000 km/s。求能够使用此协议的最短帧长?
基本退避时间争用期为端到端的往返时延,而在争用期能发送的比特数就是最短有效帧长,因此最短有效帧长的计算公式为:
S = 数据率 * 往返时延(争用期)
所以: 最短有效帧长 = 1 Gbit/s * (1km/200000 km/s * 2) = 10000 bit
3. 3-27 有10个站连接到以太网上。试计算以下三种情况每一个站所能得到的带宽:
1)10个站都连接到一个10Mbit/s以太网集线器;
2)10个站都连接到一个100Mbit/s的以太网集线器上;
3)10个站都连接到一个10Mbit/s的以太网交换机上;
1)10个站共享10Mbit/s;
2)10个站共享100Mbit/s;
3)每一个站独占10Mbit/s;
4. 3-24 假定站点A和B在同一个10Mbit/s的以太网段上。这两个站点间的传播时延为225比特时间。现假定A开始发送一帧,并且在A发送结束之前B也发送一帧。如果A发送的是以太网所容许的最短的帧,那么A在检测到和B发生碰撞之前能否把自己的数据发送完毕?换言之,如果A在发送完毕之前并没有检测到碰撞,那么能否肯定A所发送的帧不会和B发送的帧发生碰撞?(提示:在计算时应当考虑到每一个以太网帧在发送到信道上时,在MAC帧前面还要增加若干字节的前同步码和帧界定符)。
上图所示的是MAC帧格式,根据题意“A发送的是以太网所容许的最短的帧”,那么可知这MAC帧的长度为64字节(即512比特),再加上前同步码和帧开始界定符和8字节,帧长总共为 512+8*8 = 576比特。
假设A站点从T = 0开始发送数据,由于CSMA/CD,B发送数据只能有两种情况:
-
T = 0~224比特时间:此时B还没有检测到A发送的数据(T=225时,A的数据第一个比特到达B),会发生碰撞
-
T = >225比特时间:此时B能检测到A发送的数据,不会发生碰撞
根据题意“在A发送完毕之前B也发送一帧”,所以B发送数据只能是第一种情况,此时A最晚能在2*225比特时间能检测到碰撞,2*225<576,所以此时A数据一定还没发送完,因此,A不能在检测到碰撞之前将自己的数据发送完毕,也就相当于,如果在A发送完之前没有检测到碰撞,那么A的数据就一定没有和B发生碰撞。
5. 3-33 在图3-31中,以太网交换机有6个端口 ,分别接到5台主机和一个路由器。
在下面的“动作”一栏中,表示先后发送了4个帧。假定在开始时,以太网交换机的交换表是空的。试把该表中的其他的栏目都填写完。
第四章-网络层
1. 简述集线器、交换机、路由器的功能和区别,以及工作在哪个层;
集线器(Hub):
-
功能:集线器主要用于将多个计算机连接到同一个局域网中,通过广播方式将信号转发给所有连接的设备。它不处理数据内容,仅负责信号的再生、整形和放大,适用于简单的网络环境。
-
工作层次:集线器工作在OSI模型的第一层(物理层),采用广播模式传输数据,所有端口共享带宽,容易产生广播风暴。
-
特点:集线器的所有端口共享一条带宽,只能在半双工模式下工作,且无法分割冲突域和广播域。
交换机(Switch):
-
功能:交换机用于连接局域网内的多台设备,能够根据MAC地址有目的地转发数据帧,从而提高网络效率。它支持独享带宽和全双工通信。
-
工作层次:交换机主要工作在OSI模型的第二层(数据链路层),部分高级交换机也可以工作在网络层。
-
特点:交换机通过MAC地址表实现智能转发,避免了广播风暴,提高了网络性能。每个端口可以独享带宽,适用于需要较高带宽和低延迟的场景。交换机可以隔离冲突域,但是不能隔离广播域。交换机一般工作在全双工方式。
路由器(Router):
-
功能:路由器用于连接不同的网络或网段,根据IP地址进行数据包的路由选择和转发,实现不同网络之间的互联互通。
-
工作层次:路由器工作在OSI模型的第三层(网络层),能够获取更多的协议信息,做出更智能的转发决策。
-
特点:路由器可以分割冲突域和广播域,并提供防火墙功能。它不仅能够转发数据包,还能进行路径规划,确保数据快速到达目的地。
2. 4-20 一个数据报长度为4000字节(固定首部长度)。现经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
首先应该记住,IP数据报的固定首部长度为20字节。
因此,可以算出这个数据报的数据部分长度为4000-20=3980字节,因为当前网络所能传送的最大数据长度为1500字节,因此该网络所能传送的最大数据部分为1480字节,3980 = 1480+1480+1020,所以应当划分为3个短些的数据报片:
第一个数据报片数据字段长度为1480,片偏移字段为0,因为后面还有分片,所以MF = 1
第二个数据报片数据字段长度为1480,片偏移字段为1480/8 = 185(片偏移是以8个字节为偏移单位),因为后面还有分片,所以MF = 1。
第三个数据报片数据字段长度为1020,片偏移字段为2960/8 = 370(片偏移是以8个字节为偏移单位),因为后面没有有分片,所以MF = 0。
3. 4-19 某单位分配到一个地址块129.250/16.该单位有4000台机器,平均分布在16个不同的地点。试给每一个地点分配一个地址块,并算出每个地址块中IP地址的最小值和最大值。
4000台机器,平均分布在16个不同的地点,那么每个地点的机器台数:
4000/16 = 250(台)
那么可以算出,至少需要8位主机号(2^7<250<2^8),那么子网号有32-16-8 = 8(位)
因此,
分配的第一个地址块子网号为0000 0001,因此该地址块的IP地址范围为129.250.1.1~129.250.1.254
分配的第二个地址块的子网号为0000 0010,因此该地址块的IP地址范围为129.250.2.1~129.250.2.254
分配的第三个地址块的子网号为0000 0011,因此该地址块的IP地址范围为129.250.3.1~129.250.3.254
分配的第四个地址块的子网号为0000 0100,因此该地址块的IP地址范围为129.250.4.1~129.250.4.254
以此类推,第X个地址块的子网号为X,IP地址范围为129.250.X.1~129.250.X.254
(注意,主机号为全0或全1的IP地址不能被分配)
4. 4-25 一个自治系统分配到的IP地址块为30.138.118/23,并包含有5个局域网,其连接图如图所示,每个局域网上的主机数分别标注在图4-77上。试给出每一个局域网的地址块(包括前缀)。
如图,
LAN1下有三个路由器,至少需要分配6(2^3-2=6)(2^2-2<3<2^3-2)个地址;
LAN2至少要分配126个地址(2^6-2<91<2^7-2);
LAN3至少要分配254个地址(2^7-2<150<2^8-2);
LAN4至少要分配6个地址(2^2-2<3<2^3-2);
LAN5至少要分配30个地址(2^4-2<15<2^5-2);
因此,如果按照地址从多往少划分,可以是:
LAN1——30.138.119.192/29 (29=32-3)
LAN2——30.138.119/25 (25=32-7)
LAN3——30.138.118/24
LAN4——30.138.119.200/29
LAN5——30.138.119.128/26
上面只是众多划分方法中的一种,还可以有很多划分结果
5. 4-26 一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24.公司的网络布局如图4-78所示。总部共有5个局域网,其中的LAN1-LAN4都连接到路由器R1上,R1再通过LAN5与路由器R2相连。R2和远地的三个部门的局域网LAN6LAN8通过广域网相连。每一个局域网旁边标明的数字是局域网上的主机数。试给每一个局域网分配一个合适的网络前缀。
如果按照主机数由多到少的顺序来分配,可以是(有多种分法,只要地址块不重叠):
LAN1:192.77.33.0/26(子网号:00)
LAN3:192.77.33.64/27(子网号:010)
LAN8:192.77.33.96/27(子网号:011)
LAN6:192.77.33.128/27(子网号:100)
LAN7:192.77.33.160/27(子网号:101)
LAN2:192.77.33.192/28(子网号:1100)
LAN4:192.77.33.208/28(子网号:1101)
LAN5:192.77.33.224/29(子网号:11100) WAN1:192.77.33.232/30
WAN2:192.77.33.236/30
WAN3:192.77.33.240/30
6. 4-33 某单位分配到一个地址块136.23.12.64/26.现在需要进一步划分为4个一样大的子网。试问:
(1)每一个子网的网络前缀有多长?
(2)每一个子网中有多少个地址?
(3)每一个子网的地址块是什么?
(4)每一个子网可分配给主机使用的最小地址和最大地址是什么?
1)划分为4个子网需要两位子网号,因此每一个子网的网络前缀为26+2=28位
2)每一个子网中有32-28 = 4位主机号,因此一共有2^4个地址
3)每一个子网的地址块为:
①136.23.12.64/28;②136.23.12.80/28;③136.23.12.96/28;④136.23.12.112/28;
4)可分配的最小地址 可分配的最大地址
① 136.23.12.65/28 136.23.12.78/28
② 136.23.12.81/28 136.23.12.94/28
③ 136.23.12.97/28 136.23.12.110/28
④ 136.23.12.113/28 136.23.12.126/28
7. 4-44 假设一段地址的首地址为146.102.29.0,末地址为146.102.32.255,求这个地址段的地址数。
(32-29+1)x(255-0+1) = 1024(个)(29、30、31、31四个)
8. 设某路由器建立了如下转发表:
现共收到5个分组,其目的地址分别为:
1)128.96.39.10
2)128.96.40.12
3)128.96.40.151
4)192.4.153.17
5)192.4.153.90
试分别计算下一跳
1)如果网络号是前26位或者前25位,得到的网络号均为 128.96.39.0,因此匹配的下一跳为接口m0
2)如果网络号是前26位,得到的网络号为128.96.40.0,如果网络号是前25位,得到的网络号也是128.96.40.0,因此匹配的下一跳为R2
3)如果网络号是前26位,得到的网络号为128.96.40.128,如果网络号是前25位,得到的网络号也是128.96.40.128,均匹配失败,因此匹配的下一跳为默认路由R4
4)如果网络号是前26位,得到的网络号为192.4.153.0,如果网络号是前25位,得到的网络号也是192.4.153.0,因此匹配的下一跳为 R3
5)如果网络号是前26位,得到的网络号为192.4.153.64,如果网络号是前25位,得到的网络号也是192.4.153.0,均匹配失败,因此匹配的下一跳为默认路由R4
9. 4-49 收到一个分组,其目的地址D = 11.1.2.5。要查找的转发表有这样的三项:
试问在转发这个分组时应当选择哪一个路由?
根据最长前缀匹配原则,虽然三个路由都能匹配上,但是路由3是最长的,因此应该选择路由3.
10. 4-31 已知地址块中的一个地址是140.120.84.24/20.试求这个地址块中的最小地址和最大地址。地址掩码是什么?地址块中共有多少个地址?相当于多少个C类地址?
根据这个IP地址,可以得到该地址块的网络前缀为140.120.80/20,
因此,
最小地址为:140.120.80.0/20,最大地址为:140.120.95.255/20(书上答案似乎错误)
地址掩码是:255.255.240.0(前20位都是1,后面全为0)
地址块中有2^12(4096)个地址
相当于212/28=16个C类地址
11. 4-37 假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”“距离”和“下一跳路由器”):
现在B收到从C发来的路由信息(这两列表示“目的网络”和“距离”)
试求出路由器B更新后的路由表(详细说明每一个步骤)
对于第一条信息:目的网络是N2,距离是5,下一跳是C,说明B经由C到N2的路由发生了变化,因此直接更新路由信息。
对于第二条信息:目的网络是N3,距离是9,下一跳是C,发现原来的路由表没有到N3的路由,因此直接在路由表中加入该路由信息
对于第三条信息:目的网络是N6,距离是5,下一跳是C,发现原来的路由表中有一条经由B到N6的路由,距离为8>5,因此更新该路由信息
对于第四条信息:目的网络是N8,距离是4,下一跳是C,发现原来的路由表中有一条经由E到N8的路由,距离为4=4,因此不更新该路由信息
对于第五条信息:目的网络是N9,距离是6,下一跳是C,发现原来的路由表中有一条经由F到N9的路由,距离为4<6,因此不更新该路由信息
因此,更新之后的路由表为:
N1 7 A
N2 5 C
N3 9 C
N6 5 C
N8 4 E
N9 4 F
12. 4-24 已知路由器R1的转发表如下所示:
试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口。对不能确定的情况应当指明。
下一跳地址即代表路由器。
13. 4-22 有如下的4个/24地址块,试进行最大可能的聚合。
由于四个地址块前两个字节都相同,只需将每个地址块的第三个字节转换为二进制:
212.56.1000 0100.0212.56.1000 0101.0212.56.1000 0110.0212.56.1000 0111.0
14. 4-48 如图4-80所示,网络145.13.0.0/16划分为四个子网N1,N2,N3和N4.这四个子网与路由器R连接的接口分别是m0,m1,m2和m3.路由器R的第五个接口m4连接到互联网。
(1)试给出路由器R的路由表
(2)路由器R收到分组,其目的地址是145.13.160.78.试给出这个分组是怎样被转发的。
(1)
目的网络 下一跳145.13.0.0/18 直接交付,接口m0145.13.64.0/18 直接交付,接口m1145.13.128.0/18 直接交付,接口m2145.13.192.0/18 直接交付,接口m30.0.0.0/0 默认路由器,接口m4
(2)145.13.160.78由m2转发
第五章-运输层
1. 论述 TCP 协议与 UDP 协议的区别;
连接性:
-
TCP:面向连接的协议,数据传输前必须建立连接,通过三次握手过程建立连接。
-
UDP:无连接的协议,数据传输前不需要建立连接,直接发送数据。
可靠性:
-
TCP:提供可靠的数据传输服务,通过确认应答、序列号、重传机制等确保数据正确无误地到达目的地。
-
UDP:不保证数据的可靠传输,数据包可能会丢失、重复或乱序到达。
数据传输:
-
TCP:提供有序的数据传输,确保数据包按发送顺序到达。
-
UDP:不保证数据的有序性,数据包可能乱序到达。
流量控制:
-
TCP:支持流量控制,通过窗口机制来控制发送方的发送速率,防止接收方来不及处理。
-
UDP:不支持流量控制。
拥塞控制:
-
TCP:支持拥塞控制,通过慢启动、拥塞避免、快速重传和快速恢复等机制来控制网络的拥塞。
-
UDP:不支持拥塞控制。
2. 5-05 试举例说明有些应用程序愿意采用不可靠的UDP,而不愿意采用可靠的TCP。
实时数据:比如QQ聊天、视频播放平台哔哩哔哩等。在互联网上传输实时数据的分组时,有可能会出现差错甚至丢失。如果利用TCP协议对这些出错或丢失的分组进行重传,那么时延就会大大增加。因此,实时数据的传输在运输层就应采用用户数据报UDP协议。这就是意味着,对于实时数据的传输,我们宁可丢失少量分组,也不要等待太晚到达的分组。在连续的音频和视频数据流中,很少量的分组丢失对播放效果的影响不大,因而是可以容忍的。
另外,当网络出现拥塞时,TCP的拥塞控制就会让TCP的发送方放慢报文段的发送。可能有的应用程序就不愿意放慢其报文段的发送速度。
其次,可能有的应用程序不需要TCP的可靠传输,在上面这些情况下,就宁可使用UDP来传送。
3. TCP 连接过程分为哪几个阶段;(连接建立、数据传送和连接释放)
(1)连接建立(三次握手)
TCP连接的建立过程是通过三次握手(Three-way Handshake)来完成的,确保双方都能发送和接收数据。
第一次握手:
-
客户端发送一个SYN(同步序列编号)标志的数据包给服务器,并指定客户端的初始序列号(ISN)。
-
服务器接收到这个SYN包后,需要确认客户端的序列号(ACK),并发送自己的SYN包以及服务器的初始序列号。
第二次握手:
-
客户端收到服务器的SYN+ACK包后,发送一个ACK确认包给服务器,确认收到了服务器的SYN包。
第三次握手:
-
服务器收到客户端的ACK确认包后,完成三次握手过程,此时TCP连接已经建立。
(2)数据传送
一旦TCP连接建立,客户端和服务器就可以开始数据传输。在数据传输过程中,TCP使用以下机制来确保数据的可靠传输:
-
序列号:每个TCP段都包含一个序列号,确保数据包的顺序。
-
确认应答:接收方发送ACK确认收到的数据包。
-
重传机制:如果发送方在一定时间内没有收到确认应答,它会重新发送数据包。
-
流量控制:通过窗口大小来控制发送方的发送速率。
-
拥塞控制:通过调整窗口大小来控制网络的拥塞程度。
(3)连接释放(四次挥手)
当数据传输完成后,TCP连接需要被释放。这个过程通常称为四次挥手(Four-way Handshake)。
第一次挥手:
-
客户端发送一个FIN(结束)标志的数据包给服务器,表示客户端已经没有数据要发送了。
第二次挥手:
-
服务器收到FIN包后,发送一个ACK确认包给客户端,确认收到了FIN包。
第三次挥手:
-
服务器发送一个FIN包给客户端,表示服务器也没有数据要发送了。
第四次挥手:
-
客户端收到服务器的FIN包后,发送一个ACK确认包给服务器,确认收到了FIN包。
完成这四次挥手后,TCP连接被释放。
4. 主机A向主机B连续发送了两个TCP报文段,其序号分别是70和100.试问:
(确认号是期望收到对方下一个报文段的第一个数据字节的序号)
(若确认号为N,则表明:到序号N-1为止的所有数据都已正确收到)
(1)第一个报文段携带了多少字节的数据?
(2)主机B收到第一个报文段后发回的确认中的确认号应当是多少?
(3)如果B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?
(4)如果A发送的第一个报文段丢失了 ,但第二个报文段到达了B。B在第二个报文段到达后向A发送确认。试问这个确认号应为多少?
解答:
(1)在TCP中,报文段的序号指的是该报文段的第一个字节的序号。所以,如果第一个报文段的序号是70,而第二个报文段的序号是100,那么第一个报文段携带的数据字节数为第二个报文段序号减去第一个报文段序号,即: 100−70=30 所以,第一个报文段携带了30字节的数据。
(2)TCP的确认号应该是接收方期待接收的下一个字节的序号。由于主机B已经成功接收了序号为70的报文段,下一个期待接收的字节序号应该是70加上第一个报文段的数据量,即:70+30=100 所以,主机B发回的确认中的确认号应当是100。
(3)根据确认号是180,我们可以知道主机B期待接收的下一个字节序号是180。由于第二个报文段的序号是100,那么第二个报文段的数据量为: 180−100=80 所以,第二个报文段中有80字节的数据。
(4) 即使第一个报文段丢失了,主机B还是会根据已经成功接收的最后一个字节的序号来发送确认号。由于第二个报文段的序号是100,而第一个报文段的数据量是30字节,所以主机B期待接收的下一个字节序号是: 70+30=100 因此,即使第一个报文段丢失,主机B在第二个报文段到达后向A发送的确认号仍然应该是100,因为它期待接收的是第一个报文段之后的字节。
5. 简述流量控制与拥塞控制的区别及其特点;
流量控制是端到端的问题,是接收端抑制发送端发送数据的速率,以便接收端来得及接收;
拥塞控制是一个全局性的过程,涉及所有主机、所有路由器,以及与降低网络传输性能有关的所有因素。
流量控制是让发送方发送速率不要太快,接收方来得及接收;
拥塞控制是防止过多的数据注入到网络,使网络中的路由器或链路不过载。
6. TCP 的拥塞控制方法有哪些;
TCP的拥塞控制主要通过四个算法来实现,它们分别是慢开始、拥塞避免、快重传和快恢复。下面简要说明这四个算法:
慢开始(Slow Start)
-
作用:慢开始算法用于TCP连接建立后的初始阶段,此时TCP不知道网络的拥塞情况,因此从一个小的窗口开始逐渐增加发送窗口的大小,以避免一开始就发送大量数据导致网络拥塞。
-
原理:拥塞窗口(cwnd)从1个最大报文段(MSS)开始,每收到一个对新报文段的确认(ACK),拥塞窗口翻倍增长,直到达到慢开始门限(ssthresh)。
拥塞避免(Congestion Avoidance)
-
作用:当拥塞窗口超过慢开始门限后,进入拥塞避免阶段,此时窗口增长速度减缓,以线性方式增长,目的是缓慢增长窗口大小,避免快速增长导致网络拥塞。
-
原理:拥塞窗口在每个往返时间(RTT)内增加1个MSS,而不是指数增长。
快重传(Fast Retransmit)
-
作用:快重传算法用于快速检测和重传丢失的报文段,减少因单个报文段丢失而导致的长时间等待。
-
原理:当发送方连续收到三个重复的ACK时,会立即重传被确认丢失的报文段,而不是等待重传计时器超时。
快恢复(Fast Recovery)
-
作用:快恢复是在检测到丢包后,快速调整拥塞窗口和慢开始门限,以快速恢复传输。
-
原理:当发送方收到三个重复的ACK时,会将慢开始门限减半,并设置拥塞窗口为慢开始门限的值,然后进入拥塞避免状态,而不是慢开始状态,这样可以更快地恢复传输。
8. 5-39了解本题的基础知识
5-39 TCP的拥塞窗口cwnd大小与RTT的关系如下所示:
(1)试画出如图5-25所示的拥塞窗口与RTT的关系曲线。
(2)指明TCP工作在慢开始阶段的时间间隔。
(3)指明TCP工作在拥塞避免的时间间隔。
(4)在RTT = 16和RTT = 22之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?
(5)在RTT = 1、RTT = 18 和RTT = 24时,门限ssthresh分别被设置为多大?
(6)在RTT等于多少时发送出第70个报文段?
(7)假定在RTT = 26 之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口cwnd和门限ssthresh有多大?
第(4)问解答:
-
通过超时检测到丢失:
-
当发送方在预定的超时时间内没有收到某个报文段的确认,它会认为该报文段丢失了。
-
在这种情况下,cwnd通常会被重置为1或一个更小的值(如果使用了慢开始算法的修改版本,如Karn算法),然后重新开始慢开始过程。
-
-
通过三个重复的确认检测到丢失:
-
当发送方收到三个或更多的重复确认,这意味着接收方已经收到了一个或多个报文段,但随后的报文段丢失了。
-
在这种情况下,cwnd不会被重置为1,而是减半(ssthresh),然后进入快速恢复阶段,cwnd会线性增长直到达到ssthresh,然后继续拥塞避免算法。
-
第(6)问解答:
-
RTT 1-5: cwnd从1增长到16,总共发送 1+2+4+8+16=31 个报文段。
-
RTT 6: cwnd为32,发送32个报文段,累计发送 31+32=63个报文段。
-
RTT 7: cwnd保持在33,发送33个报文段,累计发送 63+33=9663+33=96 个报文段。
所以第70个报文段在RTT=7时被发送出。
9. 5-28 主机A向主机B发送TCP报文段,首部中的源端口是m而目的端口是n。当B向A发送回信时,其TCP报文段的首部中的源端口和目的端口分别是什么?
源端口是n,目的端口是m
10. 5-41 用TCP 传送512 字节的数据。设窗口为100 字节。而 TCP 报文段每次也是传送100字节的数据。再设发送方和接收方的起始序号分别选为100和200,试画出类似于图5-28的工作示意图。从连接建立阶段到连接释放都要画上(可不考虑传播时延)。
(图5-28 为用三报文握手建立TCP连接)
要传送的 512 B 的数据必须划分为 6 个报文段传送,前 5 个报文段各 100 B,最后一个报文段传送 12 B。下图是双方交互的示意图。下面进行简单的解释。
-
【----- 进行三报文握手 -----】 报文段 #1:A 发起主动打开,发送 SYN 报文段,除以 SYN-SENT 状态,并选择初始序号 seq = 100。B 处于 LISTEN 状态。 报文段 #2:B 确认 A 的 SYN 报文段,因此 ack = 101(是 A 的初始序号加 1)。B选择初始序号 seq = 200。B 进入到 SYN-RCVD 状态。 报文段 #3:A 发送 ACk 报文段来确认报文段 #2,ack = 201(是 B 的初始序号加 1)。A 没有在这个报文段中放入数据。因为 SYN 报文段 #1 消耗了一个序号,因此报文段 #3 的序号是 seq = 101。这样,A 和 B 都进入了 ESTABLISHED 状态。
-
【----- 三报文握手完成 -----】
-
【----- 开始数据传送 -----】 报文段 #4:A 发送 100 字节的数据。报文段 #3 是确认报文段,没有数据发送,报文段 #3 并不消耗序号,因此报文段 #4 的序号仍然是 seq = 101。A 在发送数据的同时,还确认 B 的报文段 #2,因此 ack = 201。 报文段 #5:B 确认 A 的报文段 #4。由于收到了从序号 101 到 200 共 100 字节的数据,因此在报文段 #5 中,ack = 201(所期望收到的下一个数据字节的序号)。B 发送的 SYN 报文段 #2 消耗了一个序号,因此报文段 #5 的序号是 seq = 201,比报文段 #2 的序号多了一个序号。在这个报文段中,B 给出了接收窗口 rwnd = 100。 从报文段 #6 到报文段 # 13 都不需要更多的解释。到此为止,A 已经发送了 500 字节 的数据。值得注意的是,B 发送的所有确认报文都不消耗序号,其序号都是 seq = 201。 报文段 #14:A 发送最后 12 字节的数据,报文段 #14 的序号是 seq = 601。 报文段 #15:B 发送对报文段 #14 的确认。B 收到从序号 601 到 602 共 12 字节的数据。因此,报文段 #15 的确认号是 ack = 613(所期望收到的下一个数据字节的序号)。 需要注意的是,从报文段 #5 一直到 报文段 #15,B 一共发送了 6 个确认,都不消耗序号,因此 B 发送的报文段 #15 的序号仍然和报文段 #5 的序号一样,即 seq = 201。
-
【-----数据传送完毕-----】
-
【-----进行四报文挥手------】 报文段 #16:A 发送 FIN 报文段。前面所发送的数据报文段 #14 已经用掉了序号 601 到 612,因此报文段 #16 序号是 seq = 613。A 进入 FIN-WAIT-1 状态。报文段 #16 的确认号 ack = 202。 报文段 #17:B发送确认报文段,确认号为 614,进入 CLOSE-WAIT 状态。由于确认报文段不消耗序号,因此报文段 #17 的序号仍然和报文段 #15 的一样,即 seq = 201 报文段 #18:B 没有数据要发送,就发送 FIN 报文段 #18,其序号仍然是 seq = 201。这个 FIN 报文会消耗一个报文。 报文段 #19:A 发送最后的确认报文段。报文段 #16 的序号是 613,已经消耗掉了。因此,现在的序号是 seq = 614。但这个确认报文段并不消耗序号。
-
【-----四报文挥手结束-----】
11. 5-29 在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。
由于TCP确认机制采用了累积确认方法,即一个TCP确认报文段中的确认号标识了接收方将要接收的下一个字节,这表示接收方已经收到该确认号之前的所有字节。现在假设发送方一次发送了多个报文段,而接收方成功接收到这些报文段并发出相应的确认。如果某个报文段的确认丢失,而在它之后的其他报文段的确认到达,这时,只要该报文段的重传计时器没有超时,发送方就该知道该报文段被正确接收而不需要重传。
12. 5-42 在图 5-29中所示的连接释放过程中,在 ESTABLISHED 状态下,服务器进程能否先不发送 ack=u+1的确认?(因为后面要发送的连接释放报文段中仍有 ack=1+1这一信息。)
如果B 不再发送数据了,是可以把两个报文段合并成为一个,即只发送 FIN + ACK报文段。但如果 B 还有数据要发送,而且要发送一段时间,那就不行。因为A迟迟收不到确认,就会以为刚才发送的 FIN报文段丢失了,就超时重传这个FIN报文段,浪费网络资源。
第六章-应用层
1. IP地址、MAC地址、域名之间的区别及转换协议:
转换协议:
-
IP地址:是互联网协议地址,用于在网络层标识网络中的设备。它是一个逻辑地址,可以在全球范围内唯一标识一个网络设备。
-
MAC地址:是媒体访问控制地址,用于在数据链路层标识网络设备。它是一个物理地址,由制造商分配,每个网络接口卡(NIC)都有一个唯一的MAC地址。
-
域名:是互联网上用于识别和定位计算机、服务或网络的字符串。域名通过域名系统(DNS)解析为IP地址,以便在网络中进行通信。
-
ARP(地址解析协议):用于将IP地址转换为MAC地址。当设备需要发送数据到同一局域网内的另一个设备时,它会使用ARP来查找目标设备的MAC地址。
-
RARP(反向地址解析协议):用于将MAC地址转换为IP地址。这在某些情况下有用,例如当设备只知道其MAC地址但需要其IP地址时。
-
DNS(域名系统):用于将域名转换为IP地址。当用户在浏览器中输入一个域名时,DNS服务将该域名解析为对应的IP地址。
2. 每层的典型协议:
-
应用层:HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)。
-
传输层:TCP(传输控制协议)、UDP(用户数据报协议)。
-
网络层:IP(互联网协议)、ICMP(互联网控制消息协议)。
-
数据链路层:Ethernet、PPP(点对点协议)。
-
物理层:通常不涉及具体的协议,而是涉及电气、机械和过程规范。
3. 面向连接服务和无连接服务的区别:
-
面向连接服务:在数据传输之前,需要建立一个连接。这种服务提供可靠的数据传输,确保数据包按顺序到达,并且没有丢失。如果数据包丢失,会进行重传。典型协议是TCP。
-
无连接服务:不建立连接,每个数据包独立发送,不保证数据包的顺序或完整性。如果数据包丢失,不会进行重传。典型协议是UDP。
4. 典型协议基于的协议:
-
TCP:基于IP协议,提供可靠的、面向连接的数据传输服务。
-
UDP:同样基于IP协议,提供不可靠的、无连接的数据传输服务。
-
FTP:使用TCP协议,提供文件传输服务。
-
DNS:通常使用UDP协议,但在某些情况下(如数据包较大)也可以使用TCP协议,用于将域名解析为IP地址。
-
HTTP:使用TCP协议,用于在Web浏览器和服务器之间传输超文本数据。
-
SMTP:使用TCP协议,用于发送电子邮件。
-
ICMP:基于IP协议,用于发送错误消息和操作信息,如ping命令。
试卷
解答
第一大题
-
数据链路层需要解决的三个基本问题(2 分)
-
封装成帧:将网络层的数据划分为帧并附加帧头和帧尾,提供数据的标识和边界。
-
差错检测与纠正:确保数据在传输过程中能检测并纠正可能的传输错误。
-
透明传输
-
-
IP 地址 128.118.224.17 属于哪类地址?默认子网掩码是什么?(2 分)
-
类别:B 类地址(第一个字节 128 在 128~191 范围内)。
-
默认子网掩码:255.255.0.0。
-
-
TCP 运输连接的三个阶段是什么?(2 分)
-
连接建立:通过三次握手建立可靠的连接。
-
数据传输:进行可靠的、按序的数据传输,并提供流量控制和拥塞控制。
-
连接释放:通过四次挥手释放连接资源。
-
-
FTP 的中文全称是什么?其下层使用什么运输层协议?(2 分)
-
中文全称:文件传输协议(File Transfer Protocol)。
-
下层使用的运输层协议:TCP。
-
-
说出四种常用的信道复用技术分别是什么?(2 分)
-
频分复用(FDM, Frequency Division Multiplexing)
-
时分复用(TDM, Time Division Multiplexing)
-
波分复用(WDM, Wavelength Division Multiplexing)
-
码分复用(CDM, Code Division Multiplexing)
-
第二大题
1. 计算机网络五层模型的顺序及主要功能(5 分)
从下到上:
-
物理层:负责比特流的传输,将数据以电信号、光信号或无线信号形式在设备间传输。
-
数据链路层:负责组帧、差错检测、流量控制以及介质访问控制(MAC)。
-
网络层:负责路由选择和逻辑地址(IP 地址)的管理,提供跨网络的通信。
-
传输层:负责端到端的通信,提供可靠(TCP)或非可靠(UDP)的数据传输服务。
-
应用层:为用户提供网络服务接口,如文件传输(FTP)、电子邮件(SMTP)等。
2. 电路交换、报文交换、分组交换的区别(5 分)
-
电路交换:
-
在通信开始时建立一条固定路径,通信结束后释放。
-
优点:实时性好,适合语音通信。
-
缺点:资源利用率低,灵活性差。
-
-
报文交换:
-
数据以报文为单位发送,每个报文独立路由到目标。
-
优点:无需建立固定路径,资源利用率高。
-
缺点:延迟较高,不适合实时通信。
-
-
分组交换:
-
将数据分割成多个小分组,每个分组独立路由到目标。
-
优点:资源利用率高,延迟低于报文交换,适合多种通信需求。
-
缺点:需要处理分组重组,可能存在时延。
-
3. 集线器、交换机、路由器的功能及区别(5 分)
-
集线器:
-
工作在物理层,负责广播信号到所有端口,不具备数据识别能力。
-
缺点:会造成冲突域扩大,效率低。
-
-
交换机:
-
工作在数据链路层,基于 MAC 地址进行帧的转发,能够分隔冲突域。
-
优点:通信效率高,可支持全双工通信。
-
-
路由器:
-
工作在网络层,基于 IP 地址进行分组转发,连接不同网络。
-
优点:可隔离广播域,实现跨网络通信。
-
4. 域名、MAC 地址、IP 地址的区别及解析协议(5 分)
-
域名:易记的地址标识,面向用户。
-
MAC 地址:网卡的物理地址,标识设备,硬件层唯一。
-
IP 地址:逻辑地址,用于标识网络中的主机。
-
解析协议:
-
域名到 IP 地址:DNS。
-
IP 地址到 MAC 地址:ARP。
-
5. TCP 协议与 UDP 协议的功能和区别(5 分)
-
TCP 协议:
-
功能:提供可靠的、面向连接的通信,确保数据按序到达,支持流量控制和拥塞控制。
-
适用场景:文件传输、电子邮件等对可靠性要求高的场景。
-
-
UDP 协议:
-
功能:提供无连接的通信,快速传输数据,不保证可靠性和顺序。
-
适用场景:视频流、在线游戏等对实时性要求高的场景。
-
-
区别:
-
TCP 是面向连接的,可靠性高,开销大;UDP 是无连接的,效率高,但可靠性低。
-
6. 以下协议分别属于五层模型的哪一层?(5 分)
-
CSMA/CD:数据链路层(用于以太网的介质访问控制)。
-
TCP:传输层(提供可靠传输)。
-
SMTP:应用层(用于电子邮件传输)。
-
RIP:网络层(路由信息协议)。
-
DNS:应用层(域名解析服务)。
第四大题
这是一个基于距离向量路由协议(RIP)的题目。路由器 B 当前的路由表如表 4-1 所示,同时它从路由器 C 收到了新的路由信息(表 4-2)。根据 RIP 协议,路由器 B 需要更新其路由表。RIP 的基本规则包括:
-
距离计算:对于收到的每一条路由,更新后的距离为:
接收到的路由距离+1\text{接收到的路由距离} + 1接收到的路由距离+1
-
路由更新:更新的原则为:
-
如果目标网络在路由表中不存在,则添加该路由。
-
如果目标网络在路由表中存在,则选择距离更小的路径,或者当距离相等但下一跳发生变化时更新下一跳。
-
逐条分析:
-
目标网络 N2:
-
当前表中,N2 的距离为 2,下一跳为 C。
-
相同的下一跳,更新。
-
-
目标网络 N3:
-
当前表中没有 N3。
-
收到的 N3 路由距离为 9,经过 C 路由后更新为 9+1=10。
-
添加到路由表:距离为 10,下一跳为 C
-
-
目标网络 N6:
-
当前表中,N6 的距离为 8,下一跳为 F。
-
收到的 N6 路由距离为 4,经过 C 路由后更新为 4+1=5。
-
更新后距离 距离为 5,下一跳为 C
-
-
目标网络 N8:
-
当前表中,N8 的距离为 4,下一跳为 E。
-
收到的 N8 路由距离为 3,经过 C 路由后更新为 3+1=4。
-
更新后距离 4=4,但下一跳未发生变化,因此不更新。
-
-
目标网络 N9:
-
当前表中,N9 的距离为 4,下一跳为 F。
-
收到的 N9 路由距离为 5,经过 C 路由后更新为 5+1=6。
-
更新后距离 6>4,因此不更新。
-
更新后的路由表
目标网络 | 距离 | 下一跳路由器 |
---|---|---|
N1 | 7 | A |
N2 | 6 | C |
N3 | 10 | C |
N6 | 5 | C |
N8 | 4 | E |
N9 | 4 | F |