目录

  • 序言
  • 项目总览
    • 一、设计主题
    • 二、阶段目标
  • 其他想说的话

序言

经过此学期的计算机通信网挑战课程,我算是体会到了什么叫做忙碌。想着本学期已经结束,闲暇时间来整理一下本学期计通网做的大项目,或是想着因为没能找好队友,一个人干完小组项目,来给自己留作个纪念,或是能给后续网工学弟学妹留下一点项目设计参考,提供不同的思维方向。怎么想都还是觉得有一定意义的。

通过这个项目也确实让我重新温习了一遍C语言的各种重要知识技能点,让我在此次过程中看到自己的许多能力不足,自己也看到了自己在焦虑和抗压中积极突破的样子,也算是痛苦中寻求进步和提高。

前情提要:本次项目设计不仅参考了理论,也在网上参考了多方设计方式,最后结合自己的理解设计出了一种个人认为最为简单的设计方式。

项目总览

一、设计主题

利用课程组提供的物理层模拟软件,依托C语言套接字,设计具有多层结构的网元,并将多个网元构成一个网络,实现信息、文件在多个网元之间的传递。

二、阶段目标

(一)阶段一

完成模型层次设计,搭建雏形并测试。

  • 回顾:主要是停留在最基础的层次设计,最初学习的时候其实并不能很好的总览全局,也不能严格意义上说完成对模型的规范测试,更多只是为了把握一个大体方向,为后续设计进行初步方向指导,但仍然要不断调整。

过程记录链接:最小网元设计——阶段一

(二)阶段二

着眼于数据链路层,实现点到点的数据传输;完成数据链路层中包括:帧同步、差错检测和控制、流量控制等点到点功能。

  • 回顾:该阶段是本项目的重头阶段,现在看来也是当初花时间最多的阶段,一是要结合理论知识,将其用代码实现;二是要学会理解课程组的例程代码,然后进行自己的设计编写,这都是十分耗费时间的。但此阶段二是后续两个阶段的重要铺垫,若是此阶段完成好了,后续的两个阶段都比较轻松了。

过程记录链接:最小网元设计——阶段二

(三)阶段三

着重实现介质访问控制子层的交换机功能,包括:单播的目的地址判收、支持广播、有端口地址表、反向地址学习、研究生成树算法和广播风暴等

  • 回顾:此阶段个人觉得其实才是比较有意思的,因为不像阶段二几乎纯粹结合理论进行实现。这一阶段需要加入自己的理解设计,并且需要紧密结合考虑拓扑结构。设计的方式很大程度上决定了此次代码实现是否简便。但不得不吐槽的是,项目中自带的一个测试ALOHA等传输效率的实验,由于其用到课程组提供的不能加速的模拟器,导致结果收敛速度极慢,而且工作量很大,个人觉得意义其实是不大的。

过程记录链接:最小网元设计——阶段三

(四)阶段四

在网络层实现一定的编址和路由技术,包括完成IP地址到MAC地址的映射、有路由表、按照路由实现转发、实现端到端的信息交换等。

  • 回顾:此阶段设计的时候临近期末了,还是完成了路由的基本功能,不过为了寻求代码实现的便捷,还是小小偷懒,在一定程度上设计得并不是那么好看。但总体上路由的原理是完成了的。个人觉得此次难点在于如何运用多个套接字进行层次化,即上下层之间进行通信,最后实现结果的好坏取决于设计的方式。

过程记录链接:最小网元设计——阶段四

其他想说的话

开始接触到本项目的时候,我其实是非常抵触的,因为感觉自己完全没有达到完成这个项目的level,还想着能够抱大佬的大腿。但是经历队友不给力之后,以一己之力完全完成这个项目时,发现这个项目其实也并没有想象中那么难(不过一个人做完一个小组的项目,包括设计、代码实现、报告撰写等从头到尾一个人做,还是挺难顶的,工作量还是在那里的)。并且通过这个项目让我的自学能力提升了一个level,对计算机网络的许多理论知识理解也变得更加深刻,这点由我跟普通班的同学对比发现得出。所以,总的来说,万事开头难,再多大的困难,一点一点克服,一点一点解决,总会有结果的。如果能够给后来的你们提供一点小小帮助的话,my pleasure!(我会尽快更完的,salute!)

计算机网络项目——最小网元设计(前情提要和项目概述)相关推荐

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

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

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

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

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

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

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

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

  5. 0x01 前情提要随着疫情反复,今天我在家办公。我需要登一台服务器上配置,但是那个地址只能通过深信服vpn连接,在家办公一天就带了台kali系统的笔记本回来,没带windows的。 kali上

    0x01 前情提要 随着疫情反复,今天我在家办公.我需要登一台服务器上配置,但是那个地址只能通过深信服vpn连接,在家办公一天就带了台kali系统的笔记本回来,没带windows的. kali上的wi ...

  6. 最小网元设计【阶段零】

    阶段零:序言 项目预期 设计具有多层结构的网元,并将多个网元构成一个网络,实现信息.文件在多个网元之间的传递.并利用网元搭建混合组网,实现信息在多个网元之间的收发. 阶段性目标 阶段一:设计 设计分层 ...

  7. Flask项目(一)前后端分离、项目目录结构、数据库设计、CRF

    Flask项目 认识前后端分离 项目文件目录结构 单一文件中构建所有依赖工具 创建工程目录(对单一文件进行拆分) 日志文件应用 数据库设计 为静态文件添加蓝图 crf防护 认识前后端分离 项目文件目录 ...

  8. 记一次计通项目(网元设计)(更新中)

    我什么都不懂突然要让我写个套接字程序我当然是拒绝的,但是没有办法还是只有靠百度了. 一 首先是要学习套接字基础.一开始是照着书上写,结果书上是linux,编译不过也不知道为什么,以为我头文件漏了.百度 ...

  9. 软凝聚态物理基础开发工具包(前情提要)

    琴生生物机械科技工业研究所(YDST) 成立于2022年,是非同质化代币领域生物机械收藏偏好与定价策略决策联合体(NFT-YDST,云藏山鹰工作室 )独立研究机构. 宗旨是通过运用知识.研究和创新创造 ...

最新文章

  1. ROS学习笔记—-- catkin
  2. android 蓝牙低耗能(LBE)技术介绍
  3. 如何把两个域控同步_同步带噪音大,怎么办?
  4. python比较两个数的和_Python中的is和==比较两个对象的两种方法
  5. layui按钮展开、_layui可折叠的组织架构树形图
  6. Docker的学习笔记(开发的技术分享转发)
  7. 程序员拒绝一个合理需求的15个方法!
  8. Powerset:超越Google的搜索引擎?
  9. 计算机完成双系统无法启动怎么办,电脑双系统引导修复教程
  10. 概率论与数理统计学习笔记(1)——t检验与P值
  11. mysql explain 类似_Oracle有没有类似MySQL中的explain功能
  12. 下载Chrome浏览器crx文件插件最简单方法
  13. hyperlynx si 前仿真
  14. c语言读取png文件大小,求助: C语言- 利用libpng读取png大小,并转换为jpg类型图片...
  15. Scrapy框架快速执行cmd命令:‘scrapy crawl qsbk_spider’
  16. 华为任正非会见马云_什么让华为任正非怒骂“还过个屁年”!连马云、李彦宏都沉思!...
  17. 成纤维细胞生长因子家族介绍:(PEG-FGF/rb-bFGF/aFGF/rhaFGF/baFGF/rhKGF-2)
  18. SOA协议DDS和Some/IP对比
  19. 西安电子科技大学-信号与线性系统大作业-歌曲人声消除
  20. web servlce

热门文章

  1. 图像拼接1 特征提取
  2. 穷举法破解集合小游戏~
  3. C++学习之路 | PTA乙级—— 1091 N-自守数 (15 分)(精简)
  4. mysql 解释 游标赋值_Mysql_游标
  5. matlab控制realsense,RealSense开发学习--1.初识RealSense
  6. 获取某一条_想获取流量?这几种工具是必须要有的,能帮你获客快人一步!
  7. 混凝土地坪机器人_地面整平机器人:精准又高效,轻松摆“平”混凝土
  8. oracle 会话 临时表,Oracle 学习系列之二(会话与事务级临时表)
  9. skywalking(1) 基于opentracing规范的APM系统
  10. 云计算的发展趋势_2020年的云计算发展趋势预测