计算机网络期末考试复习

计算机网络期末考试复习
mengnankkzhou名词解释
1.ARP**
ARP(地址解析协议)用于根据 IP 地址获取对应的 MAC 地址,是主机通信前必须完成的地址解析步骤;RARP(逆地址解析协议)则相反,用于根据已知的 MAC 地址获取 IP 地址,常用于无盘工作站启动时向网络请求 IP。ARP 常见于局域网通信,RARP 已被 DHCP 等协议取代。
其中的单播和广播
2.CDN*
内容分发网络,用于将内容缓存至离用户更近的节点,提高访问速度、降低延迟。
3.CSMA
载波监听多路访问,用于以太网的介质访问控制方式,通过“监听-发送”机制减少冲突。
4.CRC*
循环冗余校验,链路层常用的差错检测机制,能发现传输过程中的数据错误。
5.CSP
内容安全策略,用于防止 XSS 等网页攻击,浏览器通过该策略限制网页资源加载来源。
6.MAC*
媒体访问控制地址,是网卡的物理地址,也指链路层控制子层,用于网络访问管理。
7.MAN
城域网,覆盖城市范围的计算机网络,规模介于局域网(LAN)和广域网(WAN)之间。
8.MTU*
最大传输单元,指网络层一次能够传输的最大数据报长度,影响分片与传输效率。
9.NAT*
网络地址转换,用于将私有 IP 映射为公网 IP,实现内网设备访问外网。
10.NTP
网络时间协议,用于在互联网上同步主机时间1。
11.RTT
RTT 是从发送方发出数据到接收方应答回来所经历的时间总和,衡量网络延迟。
12.RIP
RIP 是一种基于跳数的内部网关协议,用于在自治系统内部传播路由信息。
简答题
1.http请求和响应报文
分为起始行、头部字段和消息主体三部分
请求:
1 | 请求行(Request Line) |
常见请求头:Host、User-Agent、Accept、Content-Type、Authorization
响应:
1 | 状态行(Status Line) |
常见响应头:Content-Type、Content-Length、Set-Cookie、Cache-Control
2.网络体系结构
OSI七层模型
每一层负责的职能都不同,如下:
- 应用层,负责给应用程序提供统一的接口;
- 表示层,负责把数据转换成兼容另一个系统能识别的格式;
- 会话层,负责建立、管理和终止表示层实体之间的通信会话;
- 传输层,负责端到端的数据传输;
- 网络层,负责数据的路由、转发、分片;
- 数据链路层,负责数据的封帧和差错检测,以及 MAC 寻址;
- 物理层,负责在物理网络中传输数据帧;
tcp/ip四层模型
- 应用层 支持 HTTP、SMTP 等最终用户进程
- 传输层 处理主机到主机的通信(TCP、UDP)
- 网络层 寻址和路由数据包(IP 协议)
- 链路层 通过网络的物理电线、电缆或无线信道移动比特
五层模型
3.tcp/udp区别
TCP 面向连接、可靠传输,有三次握手和四次挥手机制,适用于对数据完整性要求高的场景;而 UDP 是无连接、尽最大努力交付、效率高但不保证可靠性,适合实时性要求高的应用如视频通话、DNS 查询等。
特性 | TCP | UDP |
---|---|---|
是否连接 | 是(三次握手) | 否 |
是否可靠 | 是(确认、重传) | 否(尽力而为) |
顺序保证 | 有 | 无 |
开销与速度 | 大、慢 | 小、快 |
典型应用场景 | HTTP、FTP、SMTP 等 | DNS、视频会议、VoIP 等 |
- 假定某UDP接收方对接收到的UDP报文段计算因特网检验和,并发现它与承载在检验和字段中的值
相匹配。该接收方能够绝对确信没有出现过比特差错吗?试解释之。
不能,udp的错误检测机制不可能检测到所有的错误,不是百分比可靠的
- 我们曾经说过,应用程序可能选择UDP作为运输协议,因为UDP提供了(比TCP)更好的应用层
控制,以决定在报文段中发送什么数据和发送时机。
a.应用程序为什么对在报文段中发送什么数据有更多的控制?
b-应用程序为什么对何时发送报文段有更多的控制?
因为udp是无连接的,没有建立连接维持连接结束连接的过程,可以自由自在的决定何时发送如何发送数据
udp无连接,没有流量控制和拥塞控制机制。可以在任何时间发送
4.网络层的控制平面和数据平面
我们注意到网络层功能可被大体分成数据平面功能和控制平面功能。数据平面的主要功能是什么?控制平面的主要功能呢?
在网络层,控制平面负责“决策”——即如何选路(如路由协议 OSPF、BGP),而数据平面负责“转发”——即将数据包按照路由表实际转发出去。
控制平面构建和维护路由表,转发表,处理协议交互。
数据平面使用路由表完成转发,决定如何转发数据包。匹配数据包头部,转发或者丢弃修改数据。
网络层核心解决的问题是寻址与选路,相关知识包括 IP 地址划分、子网掩码、路由协议(静态/动态)、转发表、最长前缀匹配、NAT、ICMP 等,是理解网络通信的关键基础。
5.RDT
在我们的rdt协议中,为什么需要引入序号?
在我们的rdt协议中,为什么需要引入定时器?
在 RDT(可靠数据传输)协议中,引入计时器是为了应对数据丢失或 ACK 丢失的情况,保证发送方能在超时后重传数据;对帧编号是为了解决数据重复、乱序等问题,使接收方能够识别每个数据帧的唯一性与顺序。这两个机制共同确保了在不可靠信道上传输的可靠性
6.url解析的过程
浏览器输入 URL
如 http://www.example.com/index.html
DNS 解析
浏览器先查询本地缓存,没有则通过递归/迭代方式向 DNS 服务器请求,将域名(www.example.com)转换为对应的 IP 地址。
CDN 节点选择(如果启用 CDN)
- DNS 返回的不是源站 IP,而是离用户最近的 CDN 边缘节点 IP。
- 用户请求会被引导到该 CDN 节点,减少跨域和长距离传输。
建立 TCP 连接
浏览器与 CDN 节点(或源站服务器)之间建立 TCP 连接(三次握手),若是 HTTPS,还会进行 TLS 握手。
发送 HTTP 请求
浏览器发送请求报文,请求具体资源(如 index.html)。
服务器/CDN 节点响应
- CDN 节点若缓存命中,直接返回缓存内容。
- 缓存未命中时,CDN 节点向源站服务器请求资源,然后缓存后返回给用户。
浏览器接收响应,渲染页面
浏览器解析 HTML,加载 CSS、JS、图片等资源,完成页面展示。
7.ARP请求为什么是广播,应答为什么是单播
ARP 请求采用广播的原因
未知目标 MAC 地址:ARP 请求的目的是通过 IP 地址 查询对应的 MAC 地址,但初始时并不知道目标设备的 MAC,因此必须广播到 局域网(LAN)内的所有设备,确保目标设备能收到请求。
广播域限制:ARP 仅在同一子网内生效,广播方式能覆盖该网络内的所有主机。
ARP 应答采用单播的原因
已知请求方的 MAC 地址:在 ARP 请求报文中,发送方已经填写了自己的 MAC 和 IP,因此目标设备可以直接 单播回复,无需再次广播。
减少网络流量:如果 ARP 应答也广播,会导致不必要的网络拥塞,而单播仅发送给请求方,更高效。
目标明确:ARP 应答的 目标 MAC 和 IP 直接取自 ARP 请求的 发送方字段,因此能精准送达。
计算
ip地址划分
主要是子网掩码的计算,还有是不是在一个网段里
其中广播地址全是1,网络地址全是0.然后/25代表网络号有多少,剩下的是主机号。主要是2^n的数量
crc循环冗余校验
例题:
补的位数是除数位数-1
1 | 原始数据: 1101 |
然后原始数据+crc校验码=最终数据
D(x) = 1010101010
G(x) = 10011
求最终:
余数为0100
然后相加即可
二进制回退算法,等多少时间,发生了几次碰撞
最大是10 在[0…2^n- 1]中任意选一个数,这就是等待时间。是CSMA/CD的关键组成
在CSMA/CD中,在第5次碰撞后,节点选择K =4的概率有多大?结果K=4在10Mbps以太网上对
应于多少秒的时延?
2^5-1=31,然后0-31有32个数,概率为1/32
然后等待时间=K×slot time
以太网标准中:
- 10 Mbps 的以太网 ⇒ slot time = 512 bit times
- 每 bit 时间 = 1 / 10,000,000 =
0.1 μs
- 所以:
TCP计算
考虑仅有一条单一的TCP (Reno)连接使用一条10Mbps链路,且该链路没有缓存任何数据。假设
这条链路是发送主机和接收主机之间的唯一拥塞链路。假定某TCP发送方向接收方有一个大文件要
发送,而接收方的接收缓存比拥塞窗口要大得多。我们也做下列假设:每个TCP报文段长度为1500
字节;该连接的双向传播时延是150ms;并且该TCP连接总是处于拥塞避免阶段,即忽略了慢
启动。
a.这条TCP连接能够取得的最大窗口长度(以报文段计)是多少?
b. 这条TCP连接的平均窗口长度(以报文段计)和平均吞吐量(以bps计)是多少?
c. 这条TCP连接在从丢包恢复后,再次到达其最大窗口要经历多长时间?
最大窗口大小(报文段) = 带宽 × RTT / MSS
报文段大小 MSS=12,000 bit
所以最大窗口长度为125
平均窗口大小为:平均窗口长度=w/2+w/4=3/4*w,带入报文窗口为125,等于93.75个报文段
平均吞吐量(bps):平均窗口大小 × MSS / RTT = 7,500,000 bps=7.5 Mbps
每 RTT 将窗口增加 1 个报文段,丢包发生时窗口减半:从 W
降到 W/2
,要从 W/2
增长到 W
,需增加 W/2
个报文段。RTT*w/2=9.375
考虑从主机 A 向主机 B 传输一个大小为 LLL 字节的大文件,假设:
- 每个 TCP 报文段的最大报文段大小 MSS = 536 字节
- TCP 序号字段占 4 字节(即 32 位)
- 每个报文段附加运输层、网络层和链路层首部共计 66 字节
- 使用一条速率为 155 Mbps 的链路
- 忽略拥塞控制与流量控制,即主机 A 可连续不断地发送数据
TCP 最大允许传输字节数=2^32=4GB
传输该文件的最短时间:
报文段数量=4GB/536=8,013,297
每个报文段大小(含头部)=536+66=602
总发送比特数:8,013,297×602×8=38,562,998,592 bit
t=总发送比特数/155 *10^6=248.76 秒
假设主机A通过一条TCP连接向主机B发送两个紧接着的TCP报文段°第一个报文段的序号为90,
第二个报文段序号为110
a.第一个报文段中有多少数据? 20
b.假设第一个报文段丢失而第二个报文段到达主机B。那么在主机B发往主机A的确认报文中,
确认号应该是多少? 90
假设某应用每20ms生成一个40字节的数据块,每块封装在一个TCP报文段中,TCP报文段再封装
在一个IP数据报中。每个数据报的开销有多大?应用数据所占百分比是多少?
协议层 | 头部大小 |
---|---|
TCP | 20 字节 |
IP | 20 字节 |
总大小为40+20+20=80
占50%
考虑向具有700字节MTU的一条链路发送一个2400字节的数据报。假定初始数据报标有标识号
422。将会生成多少个分片?在生成相关分片的数据报中各个字段的值是多少?
IP头部占20字节,所以最多是680字节
总数据为2400-20=2380
2380/680=3.5,所以需要四个分片
反码:
UDP和TCP使用反码来计算它们的检验和。假设你有下面3个8比特字节:01010011, 01100110,
01110100.这些8比特字节和的反码是多少?(注意到尽管UDP和TCP使用16比特的字来计算检验
和,但对于这个问题,你应该考虑8比特和。)写岀所有工作过程。UDP为什么要用该和的反码,即
为什么不直接使用该和呢?使用该反码方案,接收方如何检测出差错? 1比特的差错将可能检测不出
来吗? 2比特的差错呢?
逐个相加,但需注意 溢出的进位(carry)要加回
可以先全转为十进制得到301,然后转为2进制,发现为9位超了。然后再回绕,把高位的1加到低位里面
就是45+1=46然后转为2进制取反
得到11010001
或者是直接二进制运算,但是注意也是要回退的,11的时候返回0,进位1
网络时延
考虑两台主机 A 和 B 由一条速率为 R bps 的链路相连,两主机间距离为 m 米,链路的传播速率为 s 米/秒。主机 A 向 B 发送一个长度为 L 比特 的分组。
传播时延=m/s
传输时延=L/R
忽略排队时延,端到端的延时表达式=m/s+L/R
若主机 A 在时刻 0 开始传输分组,在 L/R 时,最后一个比特在哪?最后一个比特刚刚离开 A,还在链路起点,尚未传播。
若传播时延>传输时延的时候,t=L/R的时候,第一个比特在哪?
第一个比特尚未到达 B,正在链路上传播中,位置为:s*L/R
反过来呢,第一个bit已经到达了B
那么再加上排队时延和缓存呢?
总时延=处理时延+排队时延+m/s+L/R
缓存大小主要影响的是:
- 排队时延(
d_queue
)是否为 0 或变大 - 当链路缓冲区已满,新的分组将被丢弃(产生丢包)→ 导致TCP重传、拥塞控制触发
你点击了一个超链接
- 本地没有 DNS 缓存,必须依次查询 n 个 DNS 服务器
- HTML 页面只包含一个对象,对象传输时间忽略
- 用 RTT1,RTT2,…,RTTnRTT_1, RTT_2, …, RTT_nRTT1,RTT2,…,RTTn 表示 DNS 查询链每一跳的往返时延
- RTT0RTT_0RTT0 表示浏览器与目标服务器(Web服务器)之间的 RTT
总时延=DNS+2*RTT
然后dns是需要递归的就是RTT1+RTT2。。。到RTTN,然后tcp是一个RTT0,http是第二个RTT0
考虑图3・58。假设TCP Reno是一个经历如上
所示行为的协议,回答下列问题。在各种情
况中,简要地论证你的回答。
指出TCP慢启动运行时的时间间隔。
指出TCP拥塞避免运行时的时间间隔。
在第16个传输轮回之后,报文段的丢失是
根据3个冗余ACK还是根据超时检测岀
来的? ~
在第22个传输轮回之后,报文段的丢失是
根据3个冗余ACK还是根据超时检测出
来的?
在第1个传输轮回里,ssthresh的初始值设置为多少?
在第18个传输轮回里,ssthresh的值设置为多少?
在第24个传输轮回里,ssthresh的值设置为多少?
h. 在哪个传输轮回内发送第70个报文段?
i. 假定在第26个传输轮回后,通过收到3个冗余ACK检测出有分组丢失,拥塞的窗口长度和
ssthresh的值应当是多少?
j. 假定使用TCP Tahoe (而不是TCP Reno),并假定在第16个传输轮回收到3个冗余ACK。在第19
个传输轮回,ssthresh和拥塞窗口长度是什么?
k.再次假设使用TCP Tahoe,在第22个传输轮回有一个超时事件。从第17个传输轮回到第22个传
输轮回(包括这两个传输轮回),一共发送了多少分组?
- 考虑互联3个子网(子网1、子网2和子网3)的一台路由器。假定这3个子网的所有接口要求具有
前缀223.1.17/24。还假定子网1要求支持多达60个接口,子网2要求支持多达90个接口,子网3
要求支持多达12个接口。提供3个满足这些限制的网络地址(形式为a. b.c.d/x)o - 考虑一个具有前缀12& 119. 40. 128/26的子网。给出能被分配给该网络的一个IP地址(形式为
xxx. XXX. xxx. xxx)的例子o假定一个ISP拥有形式为12& 119. 40. 64/26的地址块。假定它要从该地
址块生成4个子网,每块具有相同数量的IP地址。这4个子网(形式为a. b. c. d/x)的前缀是什么? - 考虑在图4-25中建立的网络。假定ISP现在为路由器分配地址24.34.112.235,家庭网络的网络地
址是 192. 16& 1/24。
a.在家庭网络中为所有接口分配地址。
P17.
b.假定每台主机具有两个进行中的TCP连接,所有都是针对主机128.119. 40. 86的80端口的。在
NAT转换表中提供6个对应表项。
•如图6・33所示,考虑通过两台路由器互联的3个局域网。
a. 对所有的接口分配IP地址。对子网1使用形式为192. 168. 1. xxx的地址,对子网2使用形式为
xxx的地址,对子网3使用形式为192. 16& 3. xxx的地址。
b. 为所有的适配器分配MAC地址。
c. 考虑从主机E向主机B发送一个1P数据报。假设所有的ARP表都是最新的。就像在6.4.1节中
对单路由器例子所做的那样,列举出所有步骤。
d. 重复(c),现在假设在发送主机中的ARP表为空(并且其他表都是最新的)。
综合题目
CSMA/CD(课件6 P33)
网卡接受来自网络层的数据报,并生成帧。
如果网卡检测到信道空闲,则开始帧的传输,如果信道繁忙,就等到空闲的时候再继续传输
如果网卡传输了整个帧,但是没有检测另一个帧。网卡将先完成帧的传输
如果网卡在传输过程中,遇到了另一个传输,将会中止并发送干扰信号
终止后,网卡将进入二进制回退:
在经历m次碰撞后,网卡在0…2^m-1中任意选择K,网卡将会等待k*512位使劲按
更长的实践回避,避免更多冲突
Ttorp=LAN中两个节点直接的最大传播延迟
ttans=最大传输尺寸帧的时间
效率就是那个公式
bob cdn
bob从网页的url中获取视频的url,解析视频url到本地的dns,返回的是一个cdn地址。
本地dns继续递归解析cdn url像cdn的权威服务器请求,获取离bob最近的cdn节点的ip地址
浏览器向最近的cdn节点发送http请求。
重点题目
- 描述应用程序开发者为什么可能选择在UDP上运行应用程序而不是在TCP上运行的原因
由于 UDP 是无连接的传输协议,不需要建立连接、无需三次握手,也不进行确认应答和重传机制,因此适合对时效性要求高、可以容忍少量数据丢失的应用场景,如视频会议、在线游戏、实时语音通信等。此外,UDP 的协议开销更小,资源消耗更低,适合需要快速传输小数据包的轻量级应用。
- 当某应用程序运行在UDP上时,该应用程序可能得到可靠数据传输吗?如果能,如何实现?
可以通过在应用层自行设计机制来实现可靠传输。具体做法包括:为每个数据包添加序号以便接收方能检测是否有丢包、重复包或乱序数据,并利用应答机制(ACK)让接收方告知发送方哪些数据已成功收到;如果发送方在一定时间内未收到 ACK,则可以重传数据包。此外,还可以设置超时重传、滑动窗口、流量控制等机制来进一步增强可靠性
- 假定在主机C端口 80上运行的一个Web服务器。假定这个Web服务器使用持续连接,并且正在接 收来自两台不同主机A和B的请求。被发送的所有请求都通过位于主机C的相同套接字吗?如果它 们通过不同的套接字传递,这两个套接字都具有端口 80吗?讨论和解释之:
会将来自主机 A 和主机 B 的请求都通过同一个套接字处理。虽然所有请求最初都是通过 端口 80 到达服务器的,但操作系统会为每一个客户端连接创建一个 新的套接字(socket) 来进行实际通信。
通过一条TCP连接向主机B发送两个紧接着的TCP报文段°第一个报文段的序号为90,
第二个报文段序号为110第一个报文段中有多少数据?
b.假设第一个报文段丢失而第二个报文段到达主机B。那么在主机B发往主机A的确认报文中,
确认号应该是多少?
数据=110-90=20
还是90,然后触发重传机制
- 假设两条TCP连接存在于一个带宽为R bps的瓶颈链路上。它们都要发送一个很大的文件(以相同
方向经过瓶颈链路),并且两者是同时开始发送文件。那么TCP将为每条连接分配什么样的传输
速率?
当两条 TCP 连接同时通过带宽为 R bps 的瓶颈链路发送大文件时,由于 TCP 拥塞控制机制的作用,系统会根据链路的拥塞情况动态调整发送速率,使每条连接最终获得约 R/2 bps 的传输速率,从而公平地共享瓶颈带宽。这种公平性是 TCP 拥塞控制的自然结果,尤其是在网络条件一致、没有其他影响因素时更为明显。
作业题目字典
第一章:
“主机”和“端系统”之间有什么不同?列举几种不同类型的端系统。Web服务器是一种端系统吗?
7.以太LAN的传输速率是多少?
.描述今天最为流行的无线因特网接入技术。对它们进行比较和对照。
假定在发送主机和接收主机间只有一台分组交换机。发送主机和交换机间以及交换机和接收主机间
的传输速率分别是&和忌。假设该交换机使用存储转发分组交换方式,发送一个长度为厶的分组
的端到端总时延是什么?(忽略排队时延、传播时延和处理时延。)假定用户共享一条2Mbps链路。同时假定当每个用户传输时连续以1Mbps传输,但每个用户仅传输
20%的时间。
a.当使用电路交换时,能够支持多少用户?
b. 作为该题的后继问题,假定使用分组交换。 为什么如果两个或更少的用户同时传输的话,在链
路前面基本上没有排队时延?为什么如果3个用户同时传输的话,将有排队时延?
c. 求出某指定用户正在传输的概率。
d. 假定现在有3个用户。求出在任何给定的时间,所有3个用户在同时传输的概率。求出队列增长
j 的时间比率。—个长度为1000字节的分组经距离为2500km的链路传播,传播速率为2.5xl08m/s并且传输速率
为2Mbps,它需要用多长时间?更为一般地,一个长度为厶的分组经距离为/的链路传播,传播速率为并且传输速率为Rbps,它需要用多长时间?该时延与传输速率相关吗?因特网协议栈中的5个层次有哪些?在这些层次中,每层的主要任务是什么?
路由器处理因特网协议栈中的哪些层次?链路层交换机处理的是哪些层次?主机处理的是哪些层次?
式(1・1)给出了经传输速率为R的7V段链路发送长度厶的一个分组的端到端时延。对于经过/V段链
路一个接一个地发送P个这样的分组,一般化地表示出这个公式。这个习题开始探讨传播时延和传输时延,这是数据网络中的两个重要概念。考虑两台主机A和B由
一条速率为Abps的链路相连。假定这两台主机相隔肌米,沿该链路的传播速率为.sm/so主机A向
主机B发送长度L比特的分组。
a. 用m和s来表示传播时延”pmp。
b. 用厶和/?来确定该分组的传输时间血亦。
c. 忽略处理和排队时延,得出端到端时延的表达式。
d. 假定主机A在时刻20开始传输该分组。在时刻/二血唤,该分组的最后一个比特在什么地方?
e. 假定心卿大于<n8o在时刻2血g 该分组的第一个比特在何处?
f. 假定如中小于血昨。在时刻2九阳,该分组的第一个比特在何处?
g. 假定5=2.5 xlO8, L = 120比特,56kbps。,求出使心哪等于血込的距离叫假定用户共享一条3Mbps的链路。又设每个用户传输时要求150kbps,但是每个用户仅有10%的时间
传输。(参见1.3节中关于“分组交换与电路交换的对比”的讨论。)
当使用电路交换时,能够支持多少用户?
对于本习题的后续小题,假定使用分组交换。求出某给定用户正在传输的概率。
假定有120个用户。求出在任何给定时刻,实际有n个用户在同时传输的概率。(提示:使用二项
式分布。)
求出有21个或更多用户同时传输的概率考虑在1.3节“分组交换与电路交换的对比”的讨论中,给出了一个具有一条1Mbps链路的例子。
用户在忙时以100kbps速率产生数据,但忙时仅以p=0. 1的概率产生数据。假定用lGbp$链路替代
1Mbps的链路。
a. 当采用电路交换技术时,能被同时支持的最大用户数量/V是多少?
b. 现在考虑分组交换和有M个用户的情况。给出多于/V用户发送数据的概率公式(用p、M、/V
表不)Oa.假定有N个分组同时到达一条当前没有分组传输或排队的链路。每个分组长为厶,链路传输速率
为R。对N个分组而言.其平均排队时延是多少?
b.现在假定每隔LN/R秒有N个分组同时到达链路。一个分组的平均排队时延是多少?对两进程之间的通信会话而言,哪个进程是客户,哪个进程是服务器?
运行在一台主机上的一个进程,使用什么信息来标识运行在另一台主机上的进程?
假定你想尽快地处理从远程客户到服务器的事务,你将使用UDP还是TCP?为什么?
前面讲过TCP能用SSL来强化,以提供进程到进程的安全性服务,包括加密。SSL运行在运输层还
是应用层?如果某应用程序研制者想要用SSL来强化UDP,该研制者应当做些什么工作?握手协议的作用是什么?
考虑一个电子商务网站需要保留每一个客户的购买记录。描述如何使用cookie来完成该功能?
CDN通常采用两种不同的服务器放置方法之一。列举并简单描述它们。
除了如时延、丢包和带宽性能等网络相关的考虑外,设计一种CDN服务器选择策略时还有其他重
要因素。它们是什么?7节中所描述的UDP服务器仅需要一个套接字,而TCP服务器需要两个套接字。为什么?如果
TCP服务器支持几个并行连接,每条连接来自不同的客户主机,那么TCP服务器将需要多少个套
接字?对于2. 7节所描述的运行在TCP之上的客户-服务器应用程序,服务器程序为什么必须先于客户程序
运行?对于运行在UDP之上的客户-服务器应用程序,客户程序为什么可以先于服务器程序运行?考虑一个要获取给定URL的Web文档的HTTP客户。该HTTP服务器的IP地址开始时并不知道。在
这种情况下,除了 HTTP外,还需要什么运输层和应用层协议?假定你在浏览器中点击一条超链接获得Web页面。相关联的URL的IP地址没有缓存在本地主机上,
因此必须使用DNS lookup以获得该IP地址。如果主机从DNS得到IP地址之前已经访问了 n个DNS
服务器;相继产生的RTT依次为RTT|、…、RTT“
。 进一步假定与链路相关的Web页面只包含一个
对象,即由少量的HTML文本组成。令RTT。表示本地主机和包含对象的服务器之间的RTT值。假定
该对象传输时间为零,则从该客户点击该超链接到它接收到该对象需要多长时间?参照习题P7,假定在同一服务器上某HTML文件引用了 8个非常小的对象。忽略发送时间,在下列
情况下需要多长时间:
a.没有并行TCP连接的非持续HTTP。b.配置有5个并行连接的非持续HTTP。
c.持续 HTTPO在一台主机上安装编译TCPClient和UDPClient Python程序,在另一台主机上安装编译TCPServer和
UDPServer 程序。
乩假设你在运行TCPServer之前运行TCPClient,将发生什么现象?为什么?
b. 假设你在运行UDPServer之前运行UDPClient,将发生什么现象?为什么?
c. 如果你对客户端和服务器端使用了不同的端口,将发生什么现象?你能够配置浏览器以打开对某Web站点的多个并行连接吗?有大量的并行TCP连接的优点和缺点
是什么我们已经看到因特网TCP套接字将数据处理为字节流,而UDP套接字识别报文边界。面
与显式识别和维护应用程序定义的报文边界的API相比,试给出一个优点和一个缺点。描述应用程序开发者为什么可能选择在UDP上运行应用程序而不是在TCP上运行的原因
在今天的因特网中,为什么语音和图像流量常常是经过TCP而不是经UDP发送° (提示:我们寻找
的答案与TCP的拥塞控制机制没有关系。)当某应用程序运行在UDP上时,该应用程序可能得到可靠数据传输吗?如果能,如何实现?
假定在主机C端口 80上运行的一个Web服务器。假定这个Web服务器使用持续连接,并且正在接
收来自两台不同主机A和B的请求。被发送的所有请求都通过位于主机C的相同套接字吗?如果它
们通过不同的套接字传递,这两个套接字都具有端口 80吗?讨论和解释之:.在我们的rdt协议中,为什么需要引入序号?
.在我们的rdt协议中,为什么需要引入定时器?
假设主机A通过一条TCP连接向主机B发送两个紧接着的TCP报文段°第一个报文段的序号为90,
第二个报文段序号为110第一个报文段中有多少数据?
b.假设第一个报文段丢失而第二个报文段到达主机B。那么在主机B发往主机A的确认报文中,
确认号应该是多少?假设两条TCP连接存在于一个带宽为R bps的瓶颈链路上。它们都要发送一个很大的文件(以相同
方向经过瓶颈链路),并且两者是同时开始发送文件。那么TCP将为每条连接分配什么样的传输
速率?UDP和TCP使用反码来计算它们的检验和。假设你有下面3个8比特字节:01010011, 01100110,
01110100.这些8比特字节和的反码是多少?(注意到尽管UDP和TCP使用16比特的字来计算检验
和,但对于这个问题,你应该考虑8比特和。)写岀所有工作过程。UDP为什么要用该和的反码,即
为什么不直接使用该和呢?使用该反码方案,接收方如何检测出差错? 1比特的差错将可能检测不出
来吗? 2比特的差错呢?假定某UDP接收方对接收到的UDP报文段计算因特网检验和,并发现它与承载在检验和字段中的值
相匹配。该接收方能够绝对确信没有出现过比特差错吗?试解释之。我们曾经说过,应用程序可能选择UDP作为运输协议,因为UDP提供了(比TCP)更好的应用层
控制,以决定在报文段中发送什么数据和发送时机。
a.应用程序为什么对在报文段中发送什么数据有更多的控制?
b-应用程序为什么对何时发送报文段有更多的控制?考虑从主机A向主机B传输L字节的大文件,假设MSS为536字节。
a. 为了使得TCP序号不至于用完,厶的最大值是多少?前面讲过TCP的序号字段为4字节。
b. 对于你在(a)中得到的厶,求出传输此文件要用多长时间?假定运输层、网络层和数据链路层
首部总共为66字节,并加在每个报文段上,然后经155Mbps链路发送得到的分组。忽略流量控
制和拥塞控制,使主机A能够一个接一个和连续不断地发送这些报文段。主机A和B直接经一条100Mbps链路连接。在这两台主机之间有一条TCP连接。主机A经这条连
接向主机B发送一个大文件。主机A能够向它的TCP套接字以高达120Mbps的速率发送应用数据,
而主机B能够以最大50Mbps的速率从它的TCP接收缓存中读岀数据。描述TCP流量控制的影响。在3. 5. 4节中,我们看到TCP直到收到3个冗余ACK才执行快速重传。你对TCP设计者没有选择
在收到对报文段的第一个冗余ACK后就快速重传有何看法?考虑图3・58。假设TCP Reno是一个经历如上
所示行为的协议,回答下列问题。在各种情
况中,简要地论证你的回答。
指出TCP慢启动运行时的时间间隔。
指出TCP拥塞避免运行时的时间间隔。
在第16个传输轮回之后,报文段的丢失是
根据3个冗余ACK还是根据超时检测岀
来的? ~
在第22个传输轮回之后,报文段的丢失是
根据3个冗余ACK还是根据超时检测出
来的?
在第1个传输轮回里,ssthresh的初始值设置为多少?
在第18个传输轮回里,ssthresh的值设置为多少?
在第24个传输轮回里,ssthresh的值设置为多少?
h. 在哪个传输轮回内发送第70个报文段?
i. 假定在第26个传输轮回后,通过收到3个冗余ACK检测出有分组丢失,拥塞的窗口长度和
ssthresh的值应当是多少?
j. 假定使用TCP Tahoe (而不是TCP Reno),并假定在第16个传输轮回收到3个冗余ACK。在第19
个传输轮回,ssthresh和拥塞窗口长度是什么?k.再次假设使用TCP Tahoe,在第22个传输轮回有一个超时事件。从第17个传输轮回到第22个传
输轮回(包括这两个传输轮回),一共发送了多少分组?
- 考虑仅有一条单一的TCP (Reno)连接使用一条10Mbps链路,且该链路没有缓存任何数据。假设
这条链路是发送主机和接收主机之间的唯一拥塞链路。假定某TCP发送方向接收方有一个大文件要
发送,而接收方的接收缓存比拥塞窗口要大得多。我们也做下列假设:每个TCP报文段长度为1500
字节;该连接的双向传播时延是150ms;并且该TCP连接总是处于拥塞避免阶段,即忽略了慢
启动。
&这条TCP连接能够取得的最大窗口长度(以报文段计)是多少?
b. 这条TCP连接的平均窗口长度(以报文段计)和平均吞吐量(以bps计)是多少?
c. 这条TCP连接在从丢包恢复后,再次到达其最大窗口要经历多长时间? - 我们注意到网络层功能可被大体分成数据平面功能和控制平面功能。数据平面的主要功能是什么?
控制平面的主要功能呢? - 我们对网络层执行的转发功能和路由选择功能进行区别路由选择和转发的主要区别是什么
- 路由器中转发表的主要作用是什么?
- 在4.2节中,我们看到路由器通常由输入端口、输出端口、交换结构和路由选择处理器组成。其中
哪些是用硬件实现的,哪些是用软件实现的?为什么?转到网络层的数据平面和控制平面的概念,
哪些是用硬件实现的,哪些是用软件实现的?为什么? - 假设一个到达分组匹配了路由器转发表中的两个或更多表项。采用传统的基于目的地转发,路由器
用什么原则来确定这条规则可以用于确定输出端口,使得到达的分组能交换到输出端口? - 描述在输入端口会出现分组丢失的原因。描述在输入端口如何消除分组丢失(不使用无限大缓存区)
- 描述在输出端口会出现分组丢失的原因。通过提高交换结构速率,能够防止这种丢失吗?
- 假定主机A向主机B发送封装在一个IP数据报中的TCP报文段。当主机B接收到该数据报时,主
机B中的网络层怎样知道它应当将该报文段(即数据报的有效载荷)交给TCP而不是UDP或某个
其他东西呢? - 什么时候一个大数据报分割成多个较小的数据报?较小的数据报在什么地方装配成一个较大的数据报?
- 假设在一个源主机和一个目的主机之间有3台路由器。不考虑分片,一个从源主机发送给目的主机
的IP数据报将通过多少个接口?为了将数据报从源移动到目的地需要检索多少个转发表?4 - 假设某应用每20ms生成一个40字节的数据块,每块封装在一个TCP报文段中,TCP报文段再封装
在一个IP数据报中。每个数据报的开销有多大?应用数据所占百分比是多少? - 假定你购买了一个无线路由器并将其与电缆调制解调器相连。同时假定ISP动态地为你连接的设备
(即你的无线路由器)分配一个IP地址。还假定你家有5台PC,均使用802. 11以无线方式与该无
线路由器相连。怎样为这5台PC分配IP地址?该无线路由器使用NAT吗?为什么? - “路由聚合” 一词意味着什么?路由器执行路由聚合为什么是有用的
- 什么是专用网络地址?具有专用网络地址的数据报会出现在大型公共因特网中吗?解释理由。
- 通用转发与基于目的地转发有何不同?
- 路由器或交换机的“匹配加动作”意味着什么?在基于目的地转发的分组交换机场合中,要匹配什
么并采取什么动作?在SDN的场合中,举出3个能够被匹配的字段和3个能被采取的动作。 - 假设两个分组在完全相同的时刻到达一台路由器的两个不同输入端口。同时假设在该路由器中没有
其他分组。
假设这两个分组朝着两个不同的输出端口转发。当交换结构使用一条共享总线时,这两个分组可
能在相同时刻通过该交换结构转发吗? ‘
假设这两个分组朝着两个不同的输岀端口转发。当交换结构使用经内存交换时,这两个分组可能
在相同时刻通过该交换结构转发吗? “ . 假设这两个分组朝着相同的输出端口转发。当交换结构使用纵横式时,这两个分组可能在相同时
刻通过该交换结构转发吗? - 考虑使用32比特主机地址的某数据报网络°假定一台路由器具有4条链路.编号为0~3,分组能被
转发到如下的各链路接口:
目的地址范围
11100000 00000000 00000000 00000000
到
11100000 00111111 11111111 11111111
链路接口
0
11100000 01000000 00000000 00000000
到 1
11100000 01000000 11111111 11111111
111(X)000 01000(X)1 0(X)00000 00000000
到 2
11100001 01111111 11111111 11111111
其他 3
网络层:数据平 239
a. 提供一个具有5个表项的转发表,使用最长前缀匹配,转发分组到正确的链路接口。
b. 描述你的转发表是如何为具有下列目的地址的数据报决定适当的链路接口的。
11001000 10010001 01010001 01010101
11100001 01000000 11000011 00111100
11100001 10000000 00010001 01110111 - 考虑互联3个子网(子网1、子网2和子网3)的一台路由器。假定这3个子网的所有接口要求具有
前缀223.1.17/24。还假定子网1要求支持多达60个接口,子网2要求支持多达90个接口,子网3
要求支持多达12个接口。提供3个满足这些限制的网络地址(形式为a. b.c.d/x)o - 考虑一个具有前缀12& 119. 40. 128/26的子网。给出能被分配给该网络的一个IP地址(形式为
xxx. XXX. xxx. xxx)的例子o假定一个ISP拥有形式为12& 119. 40. 64/26的地址块。假定它要从该地
址块生成4个子网,每块具有相同数量的IP地址。这4个子网(形式为a. b. c. d/x)的前缀是什么? - 考虑向具有700字节MTU的一条链路发送一个2400字节的数据报。假定初始数据报标有标识号
422。将会生成多少个分片?在生成相关分片的数据报中各个字段的值是多少? 考虑在图4-25中建立的网络。假定ISP现在为路由器分配地址24.34.112.235,家庭网络的网络地
址是 192. 16& 1/24。
a.在家庭网络中为所有接口分配地址。
P17.
b.假定每台主机具有两个进行中的TCP连接,所有都是针对主机128.119. 40. 86的80端口的。在
NAT转换表中提供6个对应表项。比较和对照链路状态和距离矢量这两种路由选择算法
- 为什么在因特网中用到了不同的AS间与AS内部协议?
- 在OSPF自治系统中区域表示什么?为什么引入区域的概念?
- 假定你要在SDN控制平面中实现一个新型路由选择协议。你将在哪个层次中实现该协议?解释
理由。 - .什么类型的报文流跨越SDN控制器的北向和南向API?谁是从控制器跨越南向接口发送的这些报文
的接收者?谁是跨越北向接口从控制器发送的这些报文的接收者? - 描述两种从受控设备到控制器发送的0penFlow报文(由你所选)类型的目的。描述两种从控制器
到受控设备发送的OpenFlow报文(由你所选)类型的目的。 - 在发送主机执行Traceroute程序,收到哪两种类型的ICMP报文?
- 第五章习题7 考虑下图所示的网络段。兀只有两个相连邻居⑷与y。⑷有一条通向目的地仏(没有显示)的最低开
销路径,其值为5, y有一条通向目的地”的最低开销路径,其值为6。从如与y到u (以及⑷与y之
间)的完整路径未显示出来。网络中所有链路开销皆为正整数值。
5
/
a-给出x对目的地⑷、y和u的距离向量。
280 第5袁
b. 给出对于c&, w)或c(%, y)的链路开销的变化,使得执行了距离向量算法后,%将通知其邻居
有一条通向“的新最低开销路径。
c. 给出对c(%, w)或c(g y)的链路开销的变化,使得执行了距离向量算法后,力将不通知其邻居
有一条通向x的新最低开销路径。 - 如果在因特网中的所有链路都提供可靠的交付服务,TCP可靠传输服务将是多余的吗?为什么?
在CSMA/CD中,在第5次碰撞后,节点选择K =4的概率有多大?结果K=4在10Mbps以太网上对
应于多少秒的时延?MAC地址空间有多大? IPv4的地址空间呢? IPv6的地址空间呢?
ARP査询为什么要在广播帧中发送呢? ARP响应为什么要在一个具有特定目的MAC地址的帧中发
送呢?考虑5比特生成多项式,6 = 10011,并且假设。的值为lOlOlOlOlOo /?的值是什么
考虑上一个习题,这时假设D具有值:
a. 1001010101c
b. 0101101010o •一一
c. 1010100000•如图6・33所示,考虑通过两台路由器互联的3个局域网。
a. 对所有的接口分配IP地址。对子网1使用形式为192. 168. 1. xxx的地址,对子网2使用形式为xxx的地址,对子网3使用形式为192. 16& 3. xxx的地址。
b. 为所有的适配器分配MAC地址。
c. 考虑从主机E向主机B发送一个1P数据报。假设所有的ARP表都是最新的。就像在6.4.1节中
对单路由器例子所做的那样,列举出所有步骤。
d. 重复(c),现在假设在发送主机中的ARP表为空(并且其他表都是最新的)。在某网络中标识为A到F的6个节点以星形与一台交换机连接,考虑在该网络环境中某个正在
学习的交换机的运行情况。假定:(i) B向E发送一个帧;(ii) E向B回答一个帧;(iii) A
向B发送一个帧;(iv) B向A回答一个帧“该交换机表初始为空。显示在这些事件的前后该
交换机表的状态。对于每个事件,指出在其上面转发传输的帧的链路,并简要地评价你的
答案。