本书提供了《计算机网络》第六版中所有章节的详细习题解答,涵盖从基础知识到高级主题的广泛内容,是学生和教师理解复杂概念的重要辅助资料。
计算机网络复习题答案:
第2章 复习问题解答
1. 假设设计一个简单的传输协议(STP):
- 发送端:接受来自发送进程的数据块,不超过1196字节,并添加4字节的头部信息。将目标主机地址和生成的数据段交给网络层。
- 接收端:从接收到的数据段中提取目的端口号,然后把数据传递给相应的应用进程。
2. 在STP的设计中:
- 每个分组需要包含源端口号与目的端口号字段。发送时由传输层添加,并在接收方用于正确地将数据交付给对应的应用程序。
3. 为什么核心网络不需要支持运输层功能?
运输层的功能主要是在终端系统中实现的,而不是在网络的核心部分。
4. 使用家庭成员和信使模拟IP通信:
家庭成员需要向信使提供一封信件、目的地地址以及收件人的名字。信使在封面上写上收件人姓名,并将信放入带有目的地地址的信封内交给邮局。到达接收端时,由另一名信使取出信件并根据上面的名字将其送交正确的家庭成员。
5. 为什么邮件服务不需要打开包裹?
邮件服务只需检查外部地址信息即可正确投递包裹。
6. 某个应用使用UDP的原因可能是什么?
网络电话和视频会议等实时通信应用程序通常选择UDP,因为它们希望避免TCP的拥塞控制机制,并且许多防火墙默认会阻止UDP流量。此外,一些不需要可靠传输的应用程序也可以直接在用户数据报协议(UDP)上运行。
7. 对于两个客户端A与B向同一服务器发送请求的情况:
每个持久性连接都会创建一个单独的“连接套接字”,每个都有独特的标识符来区分不同的通信会话。尽管它们可能共享相同的端口号,但不同源IP地址意味着这些套接字是独立工作的。
8. TCP与UDP的区别之一在于数据交付时是否包含源IP地址信息:
UDP传输层在向应用进程传递数据报内容时不提供额外的元信息(如发送者的网络位置),而TCP则通过“连接”来隐式地管理这一细节,因此不需要明确指出来源地址。
9. 序列号的作用是什么?
用于帮助接收端识别收到的数据是否为新的还是重复传输的内容。序列号对于检测和恢复丢失的报文至关重要。
10. 在无损数据传输协议rdt3.0中为什么需要设置定时器?即使已知往返时间,仍然有必要吗?
定时器用来判断一个包或其确认消息是否在预期时间内被正确接收。即便知道了RTT(Round Trip Time),也仅能确定某次通信失败的原因是丢包还是延迟较大;但为了确保能够及时重传丢失的数据报文,定时器依然是必需的。
11. 在Go-Back-N协议中发生数据包丢失时会发生什么?
当某个段在网络传输过程中丢失后,接收端会继续接收到后续的未受损段,并将这些缓存起来等待确认消息。一旦超时重传了缺失的数据包并收到了正确的ACK,则所有被缓冲的分组可以按照正确顺序传递给应用程序。
12. 为什么在TCP中发送窗口大小是固定的?
发送端根据当前拥塞状况动态调整其可传输的最大字节数,但具体到每一次数据段的发送时,实际使用的发送窗口大小可能是变化的。若因网络条件而限制了最大值,则超过此阈值的数据将不会被立即发出。
13. 在快重传机制下如果接收到重复ACK会怎样?
收到三次或更多次针对相同序列号位置的连续确认(即“三重冗余”)时,发送方可以推断出紧随其后的数据包可能已经丢失,并立刻重新传输该段。
14. 在TCP中滑动窗口机制如何运作?
发送端维护一个允许未被确认的数据量的最大值作为当前的发送窗口大小。当接收到ACK后,相应的已发部分就可以从这个窗格内移除掉;同时根据新的接收方通告更新后续可传输空间。
15. 为什么需要在运输层实现拥塞控制?
这是为了防止网络中的过载情况导致性能下降甚至崩溃。TCP通过动态调整发送速率来适应当前的网络状况,从而避免了过多的数据涌入造成的问题。
第3章复习题答案将后续提供。