课程名称:计算机网络协议开发实验
英文名:Computer Network Protocol Development Laboratory
课程编号(或对应理论课课程编号):22905
课程总学时:32
实验总学时: 32
实验周学时: 2
开设实验项目数:14
课程总学分:2
课程主持人:陈健
本大纲主撰人: 陈健
一、实验教学目标与基本要求:
教学目标:
通过实验进一步巩固和加深学生对计算机网络基本概念、核心协议的理解与掌握。
培养学生对计算机网络的独立分析与设计、验证能力。
通过对应用层、传输控制层、网络层、数据链路层等协议的开发与调试,使学生掌握一个完整网络协议栈的开发方法。
基本要求:
掌握数据包嗅探工具的使用。
掌握协议逆向分析方法。
掌握C语言套接字编程、并发/线程编程方法。
掌握TCP/IP协议栈核心功能的实现方法。
具备独立撰写协议文档、设计协议和开发协议的能力。
二、实验课程内容与学时分配:
序号
|
实验项目名称
|
内 容 提 要
|
学 时
|
本专业
|
非本
专业
|
一
|
必修实验:
|
|
|
|
1
|
WireShark数据包嗅探实验
|
熟悉Wireshark和数据包嗅探。
|
2
|
|
2
|
逆向工程套接字编程实验
|
通过逆向分析一个协议,使用套接字编程技术重新实现该协议的客户端。
|
2
|
|
3
|
即时通信软件编程实验
|
实现一个简单的IM系统。
|
2
|
|
4
|
滑动窗口协议实验
|
实现数据链路层的3种常见滑动窗口协议:1比特滑动窗口协议、回退N帧协议和选择性重传协议。
|
2
|
|
5
|
IPv4收发/转发实验
|
实现网络层IPv4协议分组的接收、发送和转发。
|
2
|
|
6
|
IPv6收发/转发实验
|
实现网络层IPv6协议分组的接收、发送和转发。
|
2
|
|
7
|
移动IP协议实验
|
分角色实现网络层移动IP协议的三个技术:代理发现、注册和包传递。
|
2
|
|
8
|
RIP协议实验
|
实现距离矢量路由协议RIP的分组接收、发送以及路由表的维护。
|
2
|
|
9
|
简单TCP协议实验
|
实现客户端角色的、停等模式的TCP协议,能够建立和拆除连接,接收和发送TCP段,并向应用层提供套接字接口。
|
2
|
|
10
|
STCP协议-信号实现
|
实现SimpleNet协议栈传输层协议STCP的信号部分。即实现连接的建立和关闭,以及解决信号报文丢失或损坏等问题。
|
2
|
|
11
|
STCP协议-GBN和校验和实现
|
实现SimpleNet协议栈传输层协议STCP的数据传输部分。
实现STCP协议中的GBN、报文恢复和校验和。
|
2
|
|
12
|
简单重叠网络SON的实现
|
实现简单重叠网络层SON,并使用一个简单的网络驱动程序来测试SON。
|
2
|
|
13
|
简单网络协议SIP的实现
|
设计和实现简单网络协议SIP,实现路由算法和包转发。
使用测试程序测试完整的协议栈。
|
4
|
|
14
|
SimpleNet协议栈综合实验
|
进一步完善协议栈,使得我们在实验三中实现的IM应用程序可以运行在你构建的协议栈之上。
|
4
|
|
二
|
选修实验:
|
|
类 型
|
学
时
|
综
合
|
设创
计新
|
其它
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
三、教学方式与考核要求:
教学方式:
本实验课程采用教师授课+CMS课程管理平台的网上讨论答疑+实验的教学方式。教师在每学期第一周的授课中介绍实验方法、实验内容、作业提交方式和注意事项,其后每周的上课时间主要是答疑、验收学生实验和针对学生实验中的问题集中讲解。学生在课后完成实验,实验系统为C/S架构和Linux平台,学生可通过网络远程编写、测试实验代码。学生的实验代码和实验报告通过课程管理平台提交。学生实验成绩的考核采用实验测试结果+实验代码+实验报告构成。
考核要求:
学生的实验代码和实验报告必须按照每个实验的截至时间按时提交。学生的每个实验都需经过教师或助教的课堂验收。学生的最终实验成绩由实验测试结果+实验代码+实验报告构成。
四、实验教材、参考书:
(一)实验教材:《计算机网络协议开发实验讲义》
(二)参考书:
计算机网络原理实验教程
徐明伟 崔勇 徐恪 机械工业出版社 2008年
Computer
Networking A Top-Down Approach Sixth Edition James F. Kurose Keith W. Ross
PEARSON 2013
UNIX
Network Programming Volume 1: The Sockets Networking API Third Edition W.
Richard Stevens, Bill Fenner, Andrew M. Rudoff
Routing
TCP/IP Volume 1, Second Edition Jeff Doyle, Jennifer Carroll 2006
TCP/IP
Illustrated Volume 1 Second Edition The Protocols Kevin R.Fall, W. Richard
Stevens 2012
Advanced
Programming in the UNIX Environment Second Edition W.Richard Stevens, Stephen
A. Rago
http://zh.wikipedia.org
http://www.hypothetic.org/docs/msn/ietf_draft.txt
http://www.cs.dartmouth.edu/~campbell/cs60/
https://computing.llnl.gov/tutorials/pthreads/
(三)课程网站:http://cscms.nju.edu.cn