阶段零:序言

项目预期

设计具有多层结构的网元,并将多个网元构成一个网络,实现信息、文件在多个网元之间的传递。并利用网元搭建混合组网,实现信息在多个网元之间的收发。

阶段性目标

  1. 阶段一:设计
    设计分层方案,即层次划分、功能设计以及端口分配。
  2. 阶段二:交互
    在数据链路层实现帧定位、差错检测、差错控制以及流量控制功能。
    在应用层实现字符编码方案以及图片编码方案。
  3. 阶段三:共享
    二层交换机的实现,即按目的转发、反向地址学习以及未知广播。
    实现交换机成环设计。
  4. 阶段四:路由
    实现网络层的路由转发功能,即路由表的建立以及静态路由/动态路由的实现。
    搭建混合组网(由2台主机、1台交换机以及3台路由器组成)。

项目入门指南

入门流程

  1. 阅读项目指导书,大致了解项目内容
  2. 掌握物理层模拟软件使用方法以及配置文件的使用
  3. 使用自己编写的套接字程序,尝试连接物理层
  4. 准备好VS(如果你选择C&C++)

关于编程的建议

  • C&C++,visual studio 2019(community)<课程组推荐>
  • 整个项目的基础是套接字编程,所以在项目开始之前应搞定套接字编程内容
  • 一定要掌握select机制,这是实现非阻塞的关键<重要>
  • 如果编程实在有困难,可以尝试python,班上也有同学使用,不过还是建议C&C++
  • 如果课程设计没有大改变的话,课程组会提供网络层源码,虽然对各层功能实现没有实质性的代码帮助,但可以使你将重心放在各层功能的设计上,而不是纠结于层与层之间的连接,网络层框架适用每一层,刚开始你可能会放弃这段源码(笔者在这里就吃了很大的亏,用自己写的乱七八糟的框架做完了阶段二,结果阶段三无法进行下去),所以,在搞懂socket编程和select机制的基础上,认真钻研源码是可以加以运用的。强推源码!!!强推源码!!!强推源码!!!

心得体会

刚开始入手这个项目时和正在满世界找教程的各位一样不知所措,socket??网元??OSI??这都哪跟哪啊。然而我面对的现实是查无此项目,最接近的是一位信通学长的教程,不过写了一些就没有继续写下去了,所以,最终还是老老实实的打VS,开启这段漫长的编程之旅。
你们还是很幸运的,可以站在前人的肩膀上,我将尽可能的给出本项目的详细指导,也希望各位能有自己的想法,代码方面我本着共同进步的原则决定还是不贴出来的好,编程不算很困难,耐心的做还是可以独立完成的,加油

最小网元设计【阶段零】相关推荐

  1. 计算机网络项目——最小网元设计(前情提要和项目概述)

    目录 序言 项目总览 一.设计主题 二.阶段目标 其他想说的话 序言 经过此学期的计算机通信网挑战课程,我算是体会到了什么叫做忙碌.想着本学期已经结束,闲暇时间来整理一下本学期计通网做的大项目,或是想 ...

  2. 计算机网络项目——最小网元设计(阶段一)

    目录 阶段目标 模型设计 功能设计 应用层 网络层 数据链路层 物理层 其他想说的话 阶段目标 完成最小网元的层次模型设计 模型设计 仿照实际应用较为更广泛的TCP/IP模型,针对本项目的最小网元,初 ...

  3. 计算机网络项目——最小网元设计(阶段四)

    目录 阶段目标 设计描述 1.实体编址 2.路由表设计 3.路由配置 4.路由器的存储转发 5.端到端的图片传输 测试情况 其他想说的话 阶段目标 本阶段需要对实体进行编址,实现NET层的IP地址到M ...

  4. 计算机网络项目——最小网元设计(阶段三)

    目录 阶段目标 设计描述 1.帧结构 2.按目的转发 3.反向地址学习 4.未知广播 测试情况 其他想说的话 阶段目标 本阶段主要完成链路层交换机的功能实现:单播目的地址判收.支持广播.有端口地址表. ...

  5. 计算机网络项目——最小网元设计(阶段二)

    目录 阶段目标 设计描述 1.帧结构 2.帧定位 3.差错检测 4.差错控制 5.流量控制 6.长帧传输--分片 测试情况 其他想说的话 阶段目标 用链路层例程代码(LnkTester.sln)设计实 ...

  6. 【微服务架构】在微服务架构中最小化设计时间耦合

    理查森:我是克里斯·理查森.欢迎来到我关于在微服务架构中最小化设计时耦合的演讲.在这次演讲中,我将回答三个问题.什么是设计时耦合?这会造成什么问题?我们如何设计松散耦合的服务?这些年来我做了一些事情. ...

  7. 最小栈设计并实现一个minstack类_栈相关

    20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. ...

  8. Verilog HDL高级数字设计 从零学习(一)

    Verilog HDL高级数字设计 从零学习(一) 3.4 时序机设计 3.5 状态转移图 利用D触发器实现FSM的步骤

  9. 界面设计02 - 零基础入门学习Delphi43

    界面设计02 让编程改变世界 Change the world by program MDI应用程序设计技术 与SDI应用程序相对应,MDI应用程序是允许在一个主窗体中创建多个子窗口的应用程序. 例如 ...

最新文章

  1. 利用urllib2实现http post请求源码示例
  2. 在线编程题之“明明的随机数”
  3. Fragment的setUserVisibleHint方法实现延时加载
  4. IO-00. Hello World! (5)
  5. python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...
  6. python numpy array转置_详解Numpy数组转置的三种方法T、transpose、swapaxes
  7. mysql semi-synchronous_MySQL Semisynchronous Replication介绍
  8. java setDataSource 报红
  9. 双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?
  10. 关于java中很多人用get()和set()方法,而不用public的一点总结
  11. linux之移动或重命名文件:mv
  12. 代码理解(2009.11.20)
  13. 分布式系统原理_分布式系统架构设计 第19式 分布式系统八卦思维模型
  14. 阶段3 2.Spring_01.Spring框架简介_01.spring课程四天安排
  15. java 访问Domino LOtus 数据库
  16. 子账号授权服务器,京东子账号装修权限之怎么授权使用详情页模板市场?
  17. ckpt模型转换为tf serving的saved model格式
  18. php 页面字体大小,网页中各种设置字体大小的方法总结
  19. c语言源代码三角函数大全,【C语言及程序设计】项目2-9-3:编制三角函数表
  20. python tokenize_model_AttributeError:“module”对象没有属性“tokenize”

热门文章

  1. IntelliJ IDEA历史版本官网下载地址
  2. 【Linux】共享内存
  3. 探索:制药厂系统网络时钟同步(NTP时间同步服务器)
  4. 通过Mycat分库分表
  5. 【荐读】基于文本数据的消费者洞察
  6. pretraining+fine tuning
  7. TesseractOCR(光学字符识别)引擎概述(一)
  8. 毕业论文文献引用方法
  9. 习题8-7 字符串排序 (20分)
  10. Shiro框架基础及搭建