| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 在UDP应用层面测试实现丢包的检测 -> 正文阅读 |
|
[网络协议]在UDP应用层面测试实现丢包的检测 |
我们已经已经做好在FPGA上的UDP的用户接口,也在PC上做好了UDP的收发函数,这里可以加上一些逻辑和代码实现UDP是否丢包以及是否错报的实验。 首先来看开UDP接收的用户层面的接口: 这里给出了udp长度,包头包尾分别用 sof和eof指示,还有我方以及对方的IP和端口。所有这些信号都在valid=1是有效。 这很简洁的接口,写起测试模块很容易 ------------- 为了实行包内数据数据校验我们就是设置每一包内的所有字节递加,为了判断出包是否丢失我们让每包第一个字节的数字也依次递加。实现的 c代码如下: 全部完整PC运行的测试代码如下:
---- 在FPGA端我们写两个模块,分别是检测是否丢包的chk_udp_lost以及包内数据是否正确的chk_udp_frame,代码实现如下:
这里注意chk_udp_lost模块由于第一数据需要初始化,这时候也会产生导致lost_coun加1,所以说是实际丢包数应该是lost_count-1,我们没有必要改代码,统计结果的时候注意下就好。 ---------- 在板子上运行,实际看结果: ?我们看到丢包和包内数据出错是存在的,虽然很低。并且我发现在电脑同时运行其他大型编译程序的时候(CPU使用率上升,更多进程分享存储带宽),时候丢包和包内错误会明显上升。 关于错误是在哪里产生,无非两点 FPGA端和PC端。 1,FPGA端导致错误,最大可能是FPGA与PHY接口部分的有一段数据穿越异步时钟,那部分产生的错误。哪里用了一个FIFO,设置流水级数是三级的时候出粗很多,设置为9级(最高)的时候才能得到上述截图的结果,因此我们可以怀疑这部接口虽然量上完善了,但是质上还没完美。 2,电脑端发送产生的丢包或者错误。当电脑开多个程序分别运行的时候,就能明显感觉到出错率的提升。 其实也好判断上述两点:现在是PC链接FPGA,我们用PC链接PC看看错误率情况。或者用FPGA链接FPGA看看错误率情况,前提是FPGA板子的UDP发射部分保证不出错,(这已经测试实现了,之后文字介绍)。 ------ 想起孙子兵法一句话:
要细致入微,我们尽力研究透彻了项目设计中遇到的每个细节,哪怕不是我们当前项目的要求,这样融汇贯通,能达到做一个项目经验和功力的提升非常大。 又想起了兵法里面的另外一段:
基本的知识点就那么点,我们从具体的设计里面深究下去挖到根源,之后总结出来这些基本规律,也就是上段说的五声五色五味,之后自己设计的时候运用上融汇贯通灵活运用上这色声味的基本原理规律或者套路,就能提出诸多方案并在这些方案中选择最优化的设计。 提到声味色,心经有讲:
这是更高层次的抽象,已经上升到唯识层面了。已经将总结的五声五色五味升华成了诸法空性了。对我们的指导意义是及时消化这写规律,得其义忘其形。 非法非非法,一切都是无,之后就是《金刚经》的那句
要看穿,要悟空,具体而言
觉悟到诸法空性,也就能看穿世间远离颠倒梦想了,也就修佛入门了,接下来就是无主宰非自然三世因果六道轮回... 你我程序猿工程狮凡夫俗子三尺微命一介书生,到不了那么高的境界无法乘风归去。要在这婆娑世界风雨红尘中携妻雏承上启下忙生活,暂且写写代码调调板子以混口狗粮。时有发骚,写写博文以自娱... 那咱们下篇就继续DEBUG哈,调试的内容是ICMP_REQUEST的信息提取以及ICMP_REPLY的生成。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:25:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |