手撕网络协议,实现100G网络UDP通信

上一篇文章狼哥介绍了实现udp需要的arp,这一篇在此基础上看看icmp和udp的报文格式,整个通信的流程为先使用arp获取目标的mac地址,然后使用icmp的ping功能,进一步确认网络的通断,最后实现一个udp的echo功能,这样就完成了整个udp通路的测试,udp测试包文如下,上位机通过网络调试助手发送的16字节数据,echo逻辑返回22字节的数据,由于cmac要求报文长度最少需要64字节,而以太网帧头为14字节,IP首部20字节,UDP首部8字节,加上数据部分16字节,总共58字节,比64字节少6字节,这个时候cmac会给出6个无效数据,echo数据部分直接使用的cmac输出的数据,因此22字节数据中有6字节为随机数,整个udp网络运行符合预期。

icmp包格式如下:

icmp包数据部分格式如下:

udp包格式如下:

udp首部和数据段格式如下:

参考文章:

https://blog.csdn.net/weixin_62432906/article/details/146043043

文中部分图片来源于网络,如有侵权还望告知删除。

相关推荐
AC是你的谎言2 小时前
网络层和数据链路层
linux·网络·学习·智能路由器
王道长服务器 | 亚马逊云2 小时前
AWS + 发财CMS:高效采集站的新形态
服务器·网络·云计算·音视频·aws
Miki Makimura2 小时前
KVStore 多行文章型键值扩展解析:切片存储与客户端多行交互
运维·服务器·网络·学习
JohnYan2 小时前
工作笔记 - WSL端口映射
后端·网络协议·visual studio code
星释2 小时前
Rust 练习册 :Luhn Trait与Trait实现
网络·算法·rust
爱编程的鱼2 小时前
ESLint 是什么?
开发语言·网络·人工智能·网络协议
njnu@liyong2 小时前
HTTP-大文件传输处理
网络·网络协议·http
Mr_Xuhhh3 小时前
应用层协议HTTP(1)
网络·网络协议·http
..空空的人4 小时前
C++基于websocket的多用户网页五子棋 --- 认识依赖库
网络·websocket·网络协议
心态特好4 小时前
详解:长连接/短连接/Cookie/Session/WebSocket
网络·websocket·网络协议