计算机网络期末复习
一、计算机网络概述
Point 1
计算机网络就是以传输信息为基本目的,用通信线路和通信设备将多个计算机连接起来的计算机系统的集合。由自治的计算机互联起来的结合体。
Point 2
按网络的覆盖范围进行分类
(1)局域网**(Local Area Network,LAN)用于连接有限范围内(如一个实验室、一幢楼或一个 校园)的各种计算机、终端与外部设备。局域网通常由某个单位单独拥有、使用和维护。按照 所使用的传输媒体的不同,局域网又可分为有线局域网和无线局域网**。
(2) 城域网**(Metropolitan Area Network,MAN)**的覆盖范围可跨越几个街区甚至整个城市,其 作用距离为5~50 km。城域网通常作为城市骨干网。
(3) 广域网**(Wide Area Network,WAN)**的覆盖范围通常为几十千米到几千千米,可以覆盖一 个国家、地区,甚至横跨几个洲,因而广域网有时也称为远程网(Long Haul Network)。
(4) 个人区域网**(Personal Area Network,PAN)不同于以上网络,它不是用来连接普通计算 机的,而是在个人工作的地方把个人使用的电子设备(如便携式计算机、打印机、鼠标、键 盘、耳机等)用无线技术(取代传统导线)连接起来的网络,因此也常称为无线个人区域网 (Wireless PAN,WPAN)**,其作用距离通常在10 m以内。
Point 3
网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成。
Point4
请注意以下两个意思相差很大的名词:internet和Internet。
以小写字母i开始的**internet(互连网络)**是一个通用名词,它泛指由多个计算机网络互连 而成的网络。这些网络之间的通信协议(即通信规则)可以是任意的。
以大写字母I开始的**Internet(互联网,或因特网)**则是一个专用名词,它指当前全球最 大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP(Transmission Control Protocol / Internet Protocol)协议簇作为通信规则,其前身是美国的阿帕网 (Advanced Research Projects Agency Network,ARPANet)。TCP/IP是指以TCP和IP为代 表的一系列互联网协议。
Point5
时延(Delay或Latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端 传送到另一端所需要的时间。时延有时也称为延迟或迟延。 需要注意的是,网络中的时延是由以下几个不同的部分组成的。
(1)发送时延 (Transmission Delay)是主机或路由器将整个分组的所有比特发送到通信线路上 所需要的时间,也就是从发送分组的第一个比特算起,到该分组的最后一个比特发送到线路上 所需要的时间。发送时延也叫作传输时延。
发送时延的计算公式: 发送时延=分组长度/发送速率
对于一定的网络,发送时延并非固定不变,而是与发送的分组长度(单位是比 特)成正比,与发送速率成反比。由于在分组交换中计算机总是以信道最高数据率发送数据, 因此公式中的发送速率也可以替换成信道带宽。
(2)传播时延 (Propagation Delay)是电磁波在信道中传播一定距离所花费的时间。
传播时延的计算公式 传播时延=信道长度/电磁波在信道上的传播速率
二、物理层
Point1
物理层中传输数据是比特流
与传输媒体的接口特性。规定传输设备与传输媒体之间的接口特性。
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等。
电气特性:指明在接口电缆的各条线上出现的电压的范围及阻抗匹配等。
功能特性:指明某条线上出现的某一电平的电压表示何种意义。
过程特性:指明对应不同功能的各种可能事件的出现顺序。
Point2
一个数据通信系统可划分为三大部分,即源系统(或发送端、发送方)、传 输系统(或传输网络)和目的系统(或接收端、接收方)。
Point3
根据信号中代表消息的参数的取值方式不同,信号可分为两大类。
模拟信号,或连续信号——消息的参数的取值是连续的。
数字信号,或离散信号——消息的参数的取值是离散的。
在使用时间域(或简称为时域) 的波形表示数字信号时,代表不同离散数值的基本波形就称为码元。在使用二进制编码时,只 有两种不同的码元,一种代表0状态,另一种代表1状态
Point4
信道复用技术分为
**频分复用(Frequency Division Multiplexing,FDM)**就是将传输线路的频带资源划分成多个 子频带,形成多个子信道。
**时分复用(Time Division Multiplexing,TDM)**技术将传输线路的带宽资源按时间轮流分 配给不同的用户,每个用户只在分配的时间里使用线路传输数据。
**波分复用(Wavelength Division Multiplexing,WDM)**就是光的频分复用。
码分复用(Code Division Multiplexing,CDM)是另一种共享信道的方法。实际上,由于该 技术主要用于无线多址接入(本书中我们不严格区分多址与复用),人们更常用的名词是码分多址(Code Division Multiple Access,CDMA)。
三、数据链路层
Point1
数据链路层属于计算机网络的低层。数据链路层使用的信道主要有以下两种类型。
(1)点对点信道。这种信道使用一对一的点对点通信方式。
(2)广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道 上可以连接多个计算机,因此必须使用共享信道协议来协调这些计算机的数据发送。
数据链路层的三个重要问题:封装成帧、差错检测和可靠传输。
Point2
把通信协议的硬件和软件加到链路上,就构成了数据链路。这样的数据链路就不再是简单的物 理链路而是逻辑链路了。现在最常用的方法是使用网络适配器,又称网卡(如拨号上网使用拨号适配器、 通过以太网上网使用局域网适配器)来实现这些协议。
因此,数据链路可以转化为逻辑链路,网络适配器又称网卡。
Point3
只有数据链路层的帧有尾部。
Point4
分组在传输过程中,若到了超时计时器所设置的超时重传时间 发送方仍收不到接收方的任何 确认分组,则重传原来的分组,这就叫作 超时重传又称 超时机制。
当确认分组丢失时,接收方会收到两个同样的数据分组,即重 复分组。若接收方不能识别重复分组,则会导致另一种差错——数据重复。
Point5
发送帧的三种方式
单播( Unicast )帧(一对一),即收到的帧的 地址与本站的 地址相同;
广播(Broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址);
多播( Multicast )帧(一对多),即发送给本局域网上一部分站点的帧。
四、网络层
Point1
网络层的作用是解决异构网络之间的连通性和资源共享问题
网络层的核心是分组转发和路由选择
Point2
互联网是一个数据报网络,然而,许多其他网络体系结构包括 帧中继网络和 ATM 网络、X25网络都是虚电路网络,它们在网络层使用连接,这些网络层连接被称为虚电路(Virtual Circuit VC )。
Point3
**网际协议( IP)**是 体系中两个最主要的协议之一,也是最重要的 互联网标准协议之一。
与 配套使用的主要还有以下三个协议:
地址解析协议( Address Resolution Protocol ARP);
互联网控制报文协议( Internet Control Message Protocol ICMP);
互联网组管理协议 ( Internet Group Management Protocol IGMP)。
Point4
将网络互相连接起来要使用一些中间设备,根据中间设备所在的层 次,可以将中间设备分为以下四种。
物理层使用的中间设备叫作 转发器(Repeater)
数据链路层使用的中间设备叫作 网桥或桥接器( Bridge 3)
网络层使用的中间设备叫作 路由器( Router )
在网络层以上使用的中间设备叫作网关(Gateway),用网关连接两个不兼容的系统 需要在高层进行协议的转换。
Point5
分址编码
Point6
为了更有效地转发 数据报和提高交付成功率,网际层使用了 制报文协议( 互联网控 , Internet Control Message Protocol ICMP)(也翻译为网际控制 报文协议)
ICMP报文有两种,即ICMP差错报告报文和ICMP询问报文。
PING 使用了 回送请求和回送应答报文。
tracert,它用来跟踪一个分组从源点到终点的路径。
Point7
互联网就把路由选择协议划分 为两大类。
内部网关协议**( Interior Gateway Protocol IGP)**目前这类的路由选择协议是 RIP OSPF
外部网关协议(External Gateway Protocol EGP)。目前互联网使用的外部网关协议就是 的版本 。
Point8
**路由信息协议( Routing Information Protocol RIP)**是内部网关协议。 RIP是一种分布式的 基于距离向量 的路由选择协议,是互联网的标准协议。
最大优点就是简单
RIP允许一条路径最多包含 15个路由 器。因此“距离”等于16 即相当于不可达。可见 RIP只适用于小型互联网。
RIP让一个自治系统中的所有路由器都和自己的相邻路由器定期交换路由信息。
RIP 好消息传播得快,而坏消息 传播得慢。网络故障信息的传播往往需要较长的时间(如数分钟)。这是 的主要缺点之一。
Point9
开放最短路径优先(Open Shortest Path First, OSPF)
OSPF 采用的是分布式方法
计算题
Point 1
IP数据报格式分析
首先,我们需要理解IP数据报的各个字段:
- 版本 (Version):4位
- 首部长度 (IHL):4位
- 区分服务 (DSCP):6位
- 总长度 (Total Length):16位
- 标识 (Identification):16位
- 标志 (Flags):3位
- 片偏移 (Fragment Offset):13位
- 生存时间 (TTL):8位
- 协议 (Protocol):8位
- 首部校验和 (Header Checksum):16位
- 源地址 (Source Address):32位
- 目的地址 (Destination Address):32位
- 可选字段 (Options):可变长度
题目分析
新的IP数据报信息为:
46 00 0c 8f 00 23 00 00
20 11 00 00 5e 4b 08 0a
d3 0f 03 06 04 01 00 a1
00 40 be 22 80 06 01 10
00 01 75 70 c2 10 21 04
问题 1:首部是否含有可变部分,若含有可变部分,可变部分包括多少个字节?
通过第一个字节确定版本和首部长度:
- 第一个字节:
46
- 二进制表示:
0100 0110
- 版本:
0100
(即4,IPv4) - 首部长度:
0110
(即6,表示首部长度为 6 * 4 = 24 字节)
- 二进制表示:
从首部长度可以看出,标准的IPv4首部长度为20字节。如果首部长度超过20字节,则表示包含可选字段。这里的首部长度为24字节,因此包含了4字节的可选字段。
答案:
首部含有可变部分,可变部分包括4个字节。
问题 2:生存时间字段的值是多少?该字段的目的是?
生存时间字段在第9个字节,值为:20
,转换为十进制为 32。
答案:
生存时间字段的值是 32。该字段的目的是防止数据包在网络中无限循环,表示数据包还能经过多少个路由器。每经过一个路由器,该值减1,当值为0时,数据包将被丢弃。
问题 3:给出这个分组的源地址和目的地址,用点分十进制表示。
-
源地址在13到16字节:
5e 4b 08 0a
- 点分十进制表示:94.75.8.10
-
目的地址在17到20字节:
d3 0f 03 06
- 点分十进制表示:211.15.3.6
答案:
源地址:94.75.8.10
目的地址:211.15.3.6
问题 4:若使用以太网传输该IP数据报,根据IP数据报首部中的长度字段判断该数据报是否需要被分片?若需要进行分片,需分成多少个数据报片?
- 总长度字段在第3和第4字节:
0c 8f
- 转换为十进制为 3215 字节
以太网的最大传输单元 (MTU) 一般为1500字节,所以需要分片。
要分成多少个数据报片:
- 每个片的最大长度为1500字节,其中包括IP首部,因此每个片的数据部分最大为1480字节。
- 3215 - 24(首部) = 3191 字节数据需要传输
分片数:
- 前两个片各包含1480字节数据
- 最后一片包含3191 - 2960(前两个片数据) = 231 字节数据
需要分成 3 个数据报片。
答案:
该数据报需要被分片,需分成3个数据报片。
问题 5:IP数据报的首部字段中,在分片的过程中会用到哪几个字段?
在分片过程中会用到以下字段:
- 标识字段 (Identification)
- 标志字段 (Flags)
- 片偏移字段 (Fragment Offset)
- 总长度字段 (Total Length)
答案:
在分片的过程中会用到标识字段、标志字段、片偏移字段和总长度字段。
总结
- 首部含有可变部分,可变部分包括4个字节。
- 生存时间字段的值是32,该字段的目的是防止数据包在网络中无限循环。
- 源地址:94.75.8.10,目的地址:211.15.3.6。
- 该数据报需要被分片,需分成3个数据报片。
- 在分片的过程中会用到标识字段、标志字段、片偏移字段和总长度字段。
这些答案结合了对IP数据报的结构和给定数据的分析。
Point 2
IP 地址分析
(1) 该主机所在网络的地址空间大小
IP 地址是 192.168.159.187/20,表示网络前 20 位是网络部分,后 12 位是主机部分。
- 地址空间大小计算公式:2^n,其中 n 是主机部分的位数。
- 在此例中,主机部分有 32 - 20 = 12 位。
答案:
地址空间大小为 2^12 = 4096。
(2) 该主机所在网络的网络地址和广播地址
首先,找到子网掩码:
- 子网掩码 /20:11111111.11111111.11110000.00000000
- 子网掩码(十进制):255.255.240.0
将 IP 地址 192.168.159.187 与子网掩码按位与,得到网络地址:
- 192.168.159.187(十进制):11000000.10101000.10011111.10111011
- 按位与结果:11000000.10101000.10010000.00000000(即 192.168.144.0)
广播地址:
- 将网络地址的主机部分全设为 1:11000000.10101000.10011111.11111111(即 192.168.159.255)
答案:
- 网络地址:192.168.144.0
- 广播地址:192.168.159.255
(3) 该主机所在网络可分配的最小地址和最大地址
可分配的 IP 地址范围是从网络地址的下一个地址到广播地址的前一个地址。
答案:
- 最小地址:192.168.144.1
- 最大地址:192.168.159.254
要判断IP地址192.168.159.187/20的网络部分和主机部分,可以按以下步骤进行:
确定子网掩码
CIDR表示法中的/20表示子网掩码有20位是网络部分,其余的是主机部分。我们可以将这个子网掩码转换为二进制形式:
- /20表示前20位是1,其余12位是0。
- 子网掩码二进制形式:11111111.11111111.11110000.00000000
- 子网掩码十进制形式:255.255.240.0
将IP地址和子网掩码按位与运算以确定网络地址
IP地址:192.168.159.187
- 转换为二进制:11000000.10101000.10011111.10111011
子网掩码:255.255.240.0
- 转换为二进制:11111111.11111111.11110000.00000000
进行按位与运算:
11000000.10101000.10011111.10111011
11111111.11111111.11110000.00000000
-----------------------------------
11000000.10101000.10010000.00000000
- 结果为:11000000.10101000.10010000.00000000
- 转换为十进制:192.168.144.0
确定网络部分和主机部分
网络部分:前20位
- 11000000.10101000.1001
主机部分:后12位
- 000000000000
可用地址范围
网络地址的范围从最低到最高:
- 网络地址:192.168.144.0
- 广播地址:192.168.159.255
可分配的最小和最大IP地址:
- 最小地址:192.168.144.1
- 最大地址:192.168.159.254
计算IP地址数量
网络部分20位,主机部分12位:
- 可分配的主机数:2^12 - 2 = 4094(减去网络地址和广播地址)
总结
通过以上步骤,确定IP地址192.168.159.187/20的网络部分是前20位,主机部分是后12位。这种方法可以确保我们准确地确定网络和主机的范围及地址空间。
Point 3
CRC 检验
接收方收到的信息为 101010110110,生成多项式 P(X) = X^4 + X + 1,转换为二进制表示为 10011。
进行 CRC 校验步骤如下:
- 将接收到的信息 101010110110 右边补上 4 个零,变为 1010101101100000。
- 用生成多项式进行二进制长除:
- 除法步骤:将最高位对齐,进行异或运算,直到无法继续除。
- 最后得到的余数应为 0,如果不为 0,则表示有误。
通过长除得到余数,检查是否为 0。
详细步骤:
1010101101100000 ÷ 10011
手动执行异或运算,直到得到最终余数。
若余数为 0,则表示没有错误,否则表示有错误。
答案:
请在纸上手动计算以确定是否有误。
在 CRC(循环冗余校验)计算中,发送方会在数据末尾附加的校验码,接收方再通过模2除法进行验证。在这里,我们用的是直接收到的数据进行校验。如果想要计算收到的数据是否出错,我们通常先补0,然后进行模2除法。以下是正确的计算过程:
计算原理
CRC(循环冗余校验)是一种用于检测数据传输错误的算法。它通过对数据进行多项式除法得到一个校验码,并在接收端使用同样的多项式进行校验,以判断数据在传输过程中是否发生错误。
基本步骤如下:
- 将生成多项式转换为二进制形式。
- 将数据位和附加的校验位进行模2除法运算。
- 若最后的余数为0,则数据无误;否则,数据存在错误。
详细计算步骤
已知:
- 接收方收到的信息:
10110110010
- 生成多项式:
P(X) = X^4 + X^3 + 1
,其二进制形式为11001
具体步骤:
-
初始化
- 被除数:
10110110010
(为了进行模2除法,需要在原始数据后补4个0,即变为101101100100000
) - 除数:
11001
- 被除数:
-
逐步进行二进制除法(模2除法,即异或运算)
-
第1步
- 前5位:
10110
与11001
异或运算:10110 11001 ----- 01111
- 结果:
01111
,将结果与下一位拼接,得到11110
- 前5位:
-
第2步
- 前5位:
11110
与11001
异或运算:11110 11001 ----- 00111
- 结果:
00111
,将结果与下一位拼接,得到01111
- 前5位:
-
第3步
- 前5位:
01111
与11001
异或运算:01111 11001 ----- 10110
- 结果:
10110
,将结果与下一位拼接,得到01100
- 前5位:
-
第4步
- 前5位:
01100
与11001
异或运算:01100 11001 ----- 10101
- 结果:
10101
,将结果与下一位拼接,得到01101
- 前5位:
-
第5步
- 前5位:
01101
与11001
异或运算:01101 11001 ----- 10100
- 结果:
10100
,将结果与下一位拼接,得到01110
- 前5位:
-
第6步
- 前5位:
01110
与11001
异或运算:01110 11001 ----- 10111
- 结果:
10111
,将结果与下一位拼接,得到01100
- 前5位:
-
第7步
- 前5位:
01100
与11001
异或运算:01100 11001 ----- 10101
- 结果:
10101
,将结果与下一位拼接,得到01101
- 前5位:
-
第8步
- 前5位:
01101
与11001
异或运算:01101 11001 ----- 10100
- 结果:
10100
,将结果与下一位拼接,得到00100
- 前5位:
-
第9步
- 前5位:
00100
与11001
异或运算:00100 11001 ----- 11100
- 结果:
11100
,将结果与下一位拼接,得到11000
- 前5位:
-
第10步
- 前5位:
11000
与11001
异或运算:11000 11001 ----- 00001
- 结果:
00001
,将结果与下一位拼接,得到00010
- 前5位:
-
第11步
- 前5位:
00010
不需要做异或运算(因为前导位是0) - 结果:
00010
,将结果与下一位拼接,得到000100
- 前5位:
-
第12步
- 前5位:
000100
不需要做异或运算(因为前导位是0) - 结果:
000100
,将结果与下一位拼接,得到0001000
- 前5位:
-
第13步
- 前5位:
0001000
不需要做异或运算(因为前导位是0) - 结果:
0001000
,将结果与下一位拼接,得到00010000
- 前5位:
-
检查余数
- 最后得到的余数是
00001
,不等于0。
结论
- 接收方收到的信息
10110110010
在传输过程中产生了差错。
Point 4
编码波形绘制
-
不归零编码:
- 每个1对应一个高电平
- 每个0对应一个低电平
-
曼彻斯特编码:
- 每个1对应低-高转换
- 每个0对应高-低转换
-
差分曼彻斯特编码:
- 每个1在比特边界时不转换
- 每个0在比特边界时转换
- 第一个码元从低电平开始
根据以上规则绘制波形。
Point 5
TCP 拥塞控制
已知:
- MSS = 1KB
- RTT = 3ms
- 拥塞窗口初始值 = 32KB
若接收到3个重复ACK,TCP进入快速恢复阶段。拥塞窗口从32KB减半为16KB,再加1个MSS,成为17KB。
之后,每个RTT加1个MSS,直到回到拥塞避免阶段,按每RTT增长MSS。
计算达到25KB需要的RTT次数:
计算过程:
17KB + n * 1KB = 25KB
n = 8 RTTs
8 RTTs * 3ms/RTT = 24ms
答案:
至少需要24ms。
Point 5
TCP 连接管理
(1) 第一次握手的 SYN 字段和 ACK 字段的取值
- SYN = 1
- ACK = 0
答案:
SYN = 1,ACK = 0
(2) 为什么需要三次握手而不是两次握手?
三次握手确保双方的接收和发送能力都正常,防止因旧连接的重复而引发错误。
答案:
第三次握手确保客户端收到服务器确认,防止旧连接干扰。
(3) 确认报文段字段值
初始序号分别为 521 和 1524:
- SYN 位:1
- ACK 位:1
- seq:1524
- ack:521 + 1 = 522
答案:
- SYN = 1
- ACK = 1
- seq = 1524
- ack = 522
(4) 四次握手过程中 B 是否还能给 A 发送数据?
可以。TCP连接释放前,B依然可以发送数据。
答案:
可以发送数据。
控制
已知:
- MSS = 1KB
- RTT = 3ms
- 拥塞窗口初始值 = 32KB
若接收到3个重复ACK,TCP进入快速恢复阶段。拥塞窗口从32KB减半为16KB,再加1个MSS,成为17KB。
之后,每个RTT加1个MSS,直到回到拥塞避免阶段,按每RTT增长MSS。
计算达到25KB需要的RTT次数:
计算过程:
17KB + n * 1KB = 25KB
n = 8 RTTs
8 RTTs * 3ms/RTT = 24ms
答案:
至少需要24ms。
Point 5
TCP 连接管理
(1) 第一次握手的 SYN 字段和 ACK 字段的取值
- SYN = 1
- ACK = 0
答案:
SYN = 1,ACK = 0
(2) 为什么需要三次握手而不是两次握手?
三次握手确保双方的接收和发送能力都正常,防止因旧连接的重复而引发错误。
答案:
第三次握手确保客户端收到服务器确认,防止旧连接干扰。
(3) 确认报文段字段值
初始序号分别为 521 和 1524:
- SYN 位:1
- ACK 位:1
- seq:1524
- ack:521 + 1 = 522
答案:
- SYN = 1
- ACK = 1
- seq = 1524
- ack = 522
(4) 四次握手过程中 B 是否还能给 A 发送数据?
可以。TCP连接释放前,B依然可以发送数据。
答案:
可以发送数据。