最小网元设计
阶段零:序言
项目预期
设计具有多层结构的网元,并将多个网元构成一个网络,实现信息、文件在多个网元之间的传递。并利用网元搭建混合组网,实现信息在多个网元之间的收发。
阶段性目标
-
阶段一:设计
设计分层方案,即层次划分、功能设计以及端口分配。 -
阶段二:交互
在数据链路层实现帧定位、差错检测、差错控制以及流量控制功能。
在应用层实现字符编码方案以及图片编码方案。 -
阶段三:共享
二层交换机的实现,即按目的转发、反向地址学习以及未知广播。
实现交换机成环设计。 -
阶段四:路由
实现网络层的路由转发功能,即路由表的建立以及静态路由/动态路由的实现。
搭建混合组网(由2台主机、1台交换机以及3台路由器组成)。
项目入门指南
入门流程
- 阅读项目指导书,大致了解项目内容
- 掌握物理层模拟软件使用方法以及配置文件的使用
- 使用自己编写的套接字程序,尝试连接物理层
- 准备好VS(如果你选择C&C++)
关于编程的建议
- C&C++,visual studio 2019(community)<课程组推荐>
- 整个项目的基础是套接字编程,所以在项目开始之前应搞定套接字编程内容
- 一定要掌握select机制,这是实现非阻塞的关键<重要>
- 如果编程实在有困难,可以尝试python,班上也有同学使用,不过还是建议C&C++
- 如果课程设计没有大改变的话,课程组会提供网络层源码,虽然对各层功能实现没有实质性的代码帮助,但可以使你将重心放在各层功能的设计上,而不是纠结于层与层之间的连接,网络层框架适用每一层,刚开始你可能会放弃这段源码(笔者在这里就吃了很大的亏,用自己写的乱七八糟的框架做完了阶段二,结果阶段三无法进行下去),所以,在搞懂socket编程和select机制的基础上,认真钻研源码是可以加以运用的。强推源码!!!强推源码!!!强推源码!!!
心得体会
刚开始入手这个项目时和正在满世界找教程的各位一样不知所措,socket??网元??OSI??这都哪跟哪啊。然而我面对的现实是查无此项目,最接近的是一位信通学长的教程,不过写了一些就没有继续写下去了,所以,最终还是老老实实的打VS,开启这段漫长的编程之旅。
你们还是很幸运的,可以站在前人的肩膀上,我将尽可能的给出本项目的详细指导,也希望各位能有自己的想法,代码方面我本着共同进步的原则决定还是不贴出来的好,编程不算很困难,耐心的做还是可以独立完成的。