联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Web作业Web作业

日期:2018-06-14 09:13



实验目标

深入理解 DNS(Domain Name System)协议的有关知识,结合历次实验课的编程实践,

完成一个基于 Linux 命令行终端的 DNS 客户端和服务器,实现中文域名解析。

实验要求一:基本功能

1. 实现中文域名的解析,例如:主页.北邮.教育.中国(与 www.bupt.edu.cn 对应);

数据库记录示例:

主页.北邮.教育.中国,86400,IN,A,192.168.1.25

北邮.教育.中国,86400,IN ,MX,邮件服务器.北邮.教育.中国

邮件服务器.北邮.教育.中国,86400,IN ,A,192.168.1.37

2. 至少支持 4 个顶级域,至少实现三级域名的解析。程序需要实现的实体有:client、

至少 6 个 DNS server。

4 个顶级域名:中国、组织、商业、美国

二-三级域名:自定义(例如:教育.中国,北邮.教育.中国)

DNS server 的部署架构可参考下图的示例:

3. 支持的 Resource Record 类型:A、MX、CNAME;对于 MX 类型的查询,要求在

Additional Section 中携带对应 IP 地址;

4. 支持的解析方法:迭代解析;

5. 支持 cache,打印查询的 trace 记录(查询路径、服务器响应时间);

6. 传输层协议:

client 与 local DNS server 之间:TCP;

DNS server 之间:UDP;

7. 应用层协议:DNS

要求通信过程中使用的所有 DNS 报文必须能够用 wireshark 正确解析;

8. server 的数据维护方式可采用文件;

2

9. 书写完整的设计文档,参考 Sample-Project-Report.pdf;

10. 程序中应包含详细的代码注释,使用良好的编程风格;

11. 程序运行稳定,支持错误处理,如:命令无效、参数缺失、同名处理、空白字符;

12. 每两人一组,分工完成,将设计文档和源代码文件经打包、压缩后按以下规则命名:

dns_2010211501_10211234&10215678_李宁&张安.tar.gz

实验要求二:扩展功能

1. 支持 PTR 类型的 Resource Record;

2. 支持递归解析;

3. 支持一个 DNS 消息中携带多个 Query Question;

实验环境

1. C 语言以及相关函数库;

2. gcc 编译器、gdb 调试工具、Wireshark 抓包分析工具;

3. Linux 操作系统、Linux 下的 nslookup 命令及其 help。

实验方法

1. 利用 Wireshark 抓包工具,分析 DNS 协议的工作原理;

2. 分析需求,提出解决方案,划分功能模块;

3. 实现基于 UDP 和 TCP 的 socket 程序框架,实现中文域名解析服务器;


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp