本学期计算机网络实验有6次实验课,每次实验课2个学时,总共12个学时,实验内容涵盖有 编程设计型 和 配置验证型 两种类型,总共9个小实验。
VLAN与接口模式配置、RIP路由配置及协议分析、NAT组网实验。验证型实验必须在本实验课程提供的实验环境下完成。
协议栈编程实验,该系列实验需要在本课程提供的代码框架上,实现以太网收发 → ARP 解析 → IP 协议实现 → ping 响应 → UDP 实现。此外,我们也特别鼓励有兴趣的同学能在此基础上增加TCP协议实现、RIP路由协议实现。网络编程实验环境的安装和配置详见附录B 网络编程实验环境 。
邮件客户端的设计与实现
协议栈仓库地址:net-lab-2022
- 了解VLAN(虚拟局域网)的作用;
- 掌握跨交换机的VLAN的配置方法;
- 掌握trunk端口的配置方法;
- 了解VLAN数据帧的格式、VLAN标记添加和删除的过程。
本实验模拟某公司网络场景。该公司规模较大,内部放置了两台接入交换机(SW2和SW3)负责员工的网络接入,而且在交换机上划分不同VLAN来隔离广播域。由于员工较多,相同部分的员工通过不同交换机接入。为了保证在不同交换机下相同部门的员工能相互通信,需要配置交换机之间的链路为干道(trunk)模式,以实现相同VLAN跨交换机通信。
- 熟悉网络协议栈的分层结构,掌握协议栈的数据结构定义;
- 了解以太网数据包捕获机制,熟悉数据包的收发过程;
- 熟悉数据链路层数据帧格式,掌握以太网数据帧的发送和接收处理过程。
在给定的协议栈代码框架上,编写以太网数据链路层数据帧的发送和接收函数,使其能够发送和接收数据帧,并且能通过实验评测系统的测试。
- 熟悉ARP数据包格式,掌握ARP映射表的建立与更新过程;
- 掌握ARP数据包的的发送和接收处理过程。
在完成协议栈之eth协议的基础上,编写ARP报文的接收、发送和请求报文函数,使其能够发送和接收ARP数据报文,并且能通过实验评测系统的测试。
- 了解动态路由协议的原理与应用。
- 熟悉RIP协议的特点,理解水平分割、触发更新和毒性逆转的作用。
- 掌握RIP协议的配置方法。
掌握RIP的配置方法,在cisc packet tracer上截取RIP报文,理解触发更新和水平分割对RIP收敛速度和避免环路的作用。
- 熟悉IP数据包格式。
- 掌握IP数据包的的发送和接收处理过程。
在完成协议栈之ARP协议的基础上,编写IP报文的发送、接收、IP分片以及计算校验和函数,使其能够发送和接收IP数据报文,并且能通过实验评测系统的测试。
- 熟悉ICMP数据包格式。
- 掌握ICMP数据包的的发送和接收处理过程。
在完成协议栈之IP协议的基础上,编写ICMP报文的发送、接收函数,使其能够发送和接收ICMP数据报文,并且能通过实验评测系统的测试。
- 熟悉UDP数据包格式。
- 掌握UDP校验和的计算方法。
- 掌握UDP数据包的的发送和接收处理过程。
在完成协议栈之ICMP协议的基础上,编写UDP报文的发送、接收函数,使其能够发送和接收UDP数据报文,并且能通过实验评测系统的测试。
了解网络地址转换的工作原理,掌握网络地址转换的配置方法。
掌握静态NAT、动态NAT、NAPT、NAT Server-NAT的配置方法,在cisc packet tracer上截取ftp报文,理解NAT地址转换技术的原理。
- 熟悉并掌握Socket网络编程;
- 掌握SMTP和POP3协议。
本实验中有两个任务。
第一个任务是编写一个简单的邮件发送客户端,将邮件发送给任意收件人。客户端需要连接到邮件发送服务器,使用SMTP协议进行交互。发送邮件已有许多现成库,但 本次实验中不允许使用第三方库直接发送邮件 ,因为它隐藏了邮件发送客户端与邮件发送服务器的交互细节。
第二个任务是编写一个简单的邮件接收客户端,获取你接收到的邮件。客户端需要连接到邮件接收服务器,使用POP3协议进行交互。同样, 交互细节需自行编程处理,不可直接调用第三方库接收邮件 。