计算机网络课程设计(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.6.1 示例1

“TCP的连接管理分析”和“UDP协议分析”两个实验主要帮助我们学习TCP连接管理的过程以及理解UDP的头部各个字段的含义。实验难点在于通过数据包分析确认号、序号的编号过程以及UDP校验和的计算方法。学生在完成本实验后,应对TCP的连接管理、连接建立和释放过程中标志位的变化情况以及UDP不可靠传输原理有较为清晰的认识。

在本次实验中,我基于Wireshark实现了对TCP和UDP的抓包,分析了其Header及各项参数,理解了TCP连接的建立与释放中关键的“三次握手”和“四次握手”,复习并执行了UDP的校验和算法。同时,尝试理解并实现基于UDP的可靠数据传输,认识TCP本身在速度上的缺陷,并基于UDP实现了较为高效的可靠数据传输服务。

本次实验让我印象最深刻的就是查阅协议文档和标准的重要性 。在之前的四次实验中,遇到不懂的地方,一般是去搜索别人的blog,看人家总结的知识点。但是,在本次实验中,关于SYN泛洪的部分,检索到的blog上都写得比较散。这个时候偶然间想起课本上提到的参考RFC ×××× 文档,于是去查了一下这个文档。这一查让我印象十分深刻,因为针对SYN泛洪,RFC专门发布了文档RFC 4987来回顾目前(发布于2007年8月)主流的防范方法,而且从理论与实践角度介绍了使用这些方法的权衡(原文为trade-off,这确实是计算机科学中经常要面对的一个词,往往方法和工具没有最好,只有能否解决当前的问题),而后者我觉得更加难能可贵。本次实验中提及的SYN泛洪的缓解(原文用的是mitigation,看来制订这份文档的人也认为完全预防是不太可能的),我基本上是在阅读文档的基础上进行总结的。作为对文档的致敬,我的叙述中也着重分析了不同方法的利弊。这次查阅文档的经历确实是本次实验中印象最深刻的工作,应该保持主动查询文档这个好习惯。

再说说RFC。RFC之所以被称为标准文档,是因为它既源远流长又与时俱进,互联网精神下的开发与严格的审议也是不可或缺的。RFC的全称是Request for Comments,它最早可以追溯到1969年,随着互联网的诞生与发展不断完善,既有以网络协议为代表的“标准”,也有关于互联网与网络协议的“共识”与“建议”,当然还有一些有趣的段子独立成文。RFC在互联网世界有长久的生命力,除了其久远的历史,开放的精神也是具有决定意义的——也就是说,RFC文档并不是由负责人指定主题,形成顶层设计后,再自顶向下填充内容,相反,它是由互联网最前沿的开发团体或者个人根据研究或者工程经验提出的,经过互联网的公开评议和严格的组织审议,最后发表为RFC文档。RFC文档一旦被公开发表就不会再进行删减或修改,只会在后续的文档中对前序的文档进行补充说明。RFC文档是英文的,比较难懂的地方基本上是术语,其他描述是可以读懂的。推荐查阅网站:https://www.rfc-editor.org/

从上述总结来看,该学生对实验的整体情况掌握较好。通过实验,该学生探索并掌握了在学习过程中解决问题的方法,以及如何利用协议对应的RFC文档来解决实验中遇到的问题,从而加深了对知识点的理解。