从零开始的激光通讯(第1章 协议栈)——1、整体结构

从零开始的激光通讯(第1章 协议栈)——1、整体结构

github

https://github.com/HaHaHaHaHaGe/mynetstack

简介

在这里插入图片描述
由于本人比较穷,按理应该先开始硬件设计,但是没办法,就开始了软件设计部分。
简单说下:
由于信号在现实世界中传输有太多太多的不确定因素,有干扰、有丢包,所以需要有一套机制保证数据的传输的完整性。
从上面的框图可以看出 左侧是原始比特流,右侧是已经提取好的数据,
由于再写这篇文章的时候,协议栈还没有做完,框图可能会有略微的修改,具体以github中的文件为准
总之这个协议栈的功能就是给定一大串原始数据,他会从这些数据中提取正确的数据并作出相应的反馈,以达到不丢失不浪费的目的,更好的为上层应用提供服务

三部分

在这里插入图片描述
在整个结构里最重要的三部分(红、绿、黄)

红色部分是前端部分,将原始数据流转化为正确的数据包。

绿色部分对存储数据的数据包进行存储并检查是否丢包(依靠数据包编号U64类型),丢包的话会向黄色区域发出重传请求

黄色部分主要是用于数据包的重传,接收来自绿色区域的重传请求并添加到队列中,定时发送,接收请求数据包并发送请求的相关数据,根据应答数据包清除缓存相关数据

应用

本想是用于激光通讯中的,后来就像要不做的模块化些,这样以后其他的项目也可以搬用,比如环形数组部分就可以拿来在STM32的DMA接收环节起到作用,起到不流失不蒸发的金克拉作用

猜你喜欢

转载自blog.csdn.net/weixin_41738734/article/details/84845288