草庐IT

FPGA实现千兆/百兆自适应以太网UDP传输

0、前言笔者最近在项目中需要使用到ZYNQ中PL端做以太网UDP传输并且需要支持100M/1000M自适应切换。使用的PHY型号为RTL8211。以下分享的主要为利用已有的1000M协议栈修改为100M并且实现二者自适应切换,IP核主要实现以下功能1、实现100M/1000M自适应2、回环测试PS:完整的IP核文件下载地址:https://download.csdn.net/download/qq_24025329/870194361、软硬件环境和前置条件笔者采用的接口是RGMII接口,即100M模式下单边沿采样,时钟频率为25M。在1000M模式下使用双边沿采样,时钟频率为125M。所以在千

FPGA实现千兆/百兆自适应以太网UDP传输

0、前言笔者最近在项目中需要使用到ZYNQ中PL端做以太网UDP传输并且需要支持100M/1000M自适应切换。使用的PHY型号为RTL8211。以下分享的主要为利用已有的1000M协议栈修改为100M并且实现二者自适应切换,IP核主要实现以下功能1、实现100M/1000M自适应2、回环测试PS:完整的IP核文件下载地址:https://download.csdn.net/download/qq_24025329/870194361、软硬件环境和前置条件笔者采用的接口是RGMII接口,即100M模式下单边沿采样,时钟频率为25M。在1000M模式下使用双边沿采样,时钟频率为125M。所以在千

计算机网络之UDP与TCP协议(三次握手, 四次挥手)

⭐️前面的话⭐️本文介绍计算机网络中有关传输层协议的知识——UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手),滑动窗口,流量控制,拥塞控制,延时应答,捎带应答,粘包问题,TCP异常处理,这些都是UDP所不具备的,因为UDP不能保证数据的可靠性。📒博客主页:未见花闻的博客主页🎉欢迎关注🔎点赞👍收藏⭐️留言📝📌本文由未见花闻原创,CSDN首发!📆首发时间:🌴2022年5月2日🌴✉️坚持和努力一定能换来诗与远方!💭参考书籍:📚《图解TCP/IP》,📚《计算机网络》💬参考在线编程网站:🌐牛客网🌐力扣博主的码云g

计算机网络之UDP与TCP协议(三次握手, 四次挥手)

⭐️前面的话⭐️本文介绍计算机网络中有关传输层协议的知识——UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手),滑动窗口,流量控制,拥塞控制,延时应答,捎带应答,粘包问题,TCP异常处理,这些都是UDP所不具备的,因为UDP不能保证数据的可靠性。📒博客主页:未见花闻的博客主页🎉欢迎关注🔎点赞👍收藏⭐️留言📝📌本文由未见花闻原创,CSDN首发!📆首发时间:🌴2022年5月2日🌴✉️坚持和努力一定能换来诗与远方!💭参考书籍:📚《图解TCP/IP》,📚《计算机网络》💬参考在线编程网站:🌐牛客网🌐力扣博主的码云g

C++实现UDP可靠传输(一)

声明:禁止以任何形式转载本文章。本文章仅供个人学习记录与交流探讨,文章中提供的思路只是一种解决方案,代码也并非完整代码,如有需要,请自行设计协议并完成编程任务。食用本文章之前,推荐阅读:C++实现流式socket聊天程序目录UDP协议的基本框架程序实现消息类型三次握手四次挥手发送消息以二进制方式读文件发送消息的基本框架差错检测确认重传接收消息接收消息的基本框架以二进制方式写文件程序测试在C++实现流式socket聊天程序中,我们使用TCP协议传输数据,TCP实现的是可靠传输。但对于简单的交互应用和一些对延时敏感的应用来说,TCP需要握手挥手、维护连接状态、差错重传,这些都会增加延时。因此,这些

C++实现UDP可靠传输(一)

声明:禁止以任何形式转载本文章。本文章仅供个人学习记录与交流探讨,文章中提供的思路只是一种解决方案,代码也并非完整代码,如有需要,请自行设计协议并完成编程任务。食用本文章之前,推荐阅读:C++实现流式socket聊天程序目录UDP协议的基本框架程序实现消息类型三次握手四次挥手发送消息以二进制方式读文件发送消息的基本框架差错检测确认重传接收消息接收消息的基本框架以二进制方式写文件程序测试在C++实现流式socket聊天程序中,我们使用TCP协议传输数据,TCP实现的是可靠传输。但对于简单的交互应用和一些对延时敏感的应用来说,TCP需要握手挥手、维护连接状态、差错重传,这些都会增加延时。因此,这些

TCP与UDP的联系与区别

TCP(TransmissionControlProtocol,传输控制协议)他是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。这说明TCP连接是一个非常复杂的过程,需要进行“三次握手”才可以建立连接。以下是我在查阅资料的时候看到的例子,便于更加深刻理解:我们来看看这三次对话的简单过程:1.主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;2.主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;3.主机A再发出一个数据包确认主机B的要求同步:“我现在就发

TCP与UDP的联系与区别

TCP(TransmissionControlProtocol,传输控制协议)他是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。这说明TCP连接是一个非常复杂的过程,需要进行“三次握手”才可以建立连接。以下是我在查阅资料的时候看到的例子,便于更加深刻理解:我们来看看这三次对话的简单过程:1.主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;2.主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;3.主机A再发出一个数据包确认主机B的要求同步:“我现在就发

TCP/UDP 编程模型

TCP编程模型server创建socket套接字socket套接字--可以理解为文件描述符(filedescriptor),UNIX把网络看成文件/***@paramdomaindomain参数指定了一个通信域;它选择了将被用于通信的协议族。比如AF_UNIXAF_INET*@paramtypetypeofsockfd通信协议*SOCK_STREAM:数据流协议TCP协议*SOCK_DGRAM:数据报协议UDP协议*@paramprotocol特殊通信类型一般指定为0*@returnOnsuccess,afiledescriptorforthenewsocketisreturned.*Oner

TCP/UDP 编程模型

TCP编程模型server创建socket套接字socket套接字--可以理解为文件描述符(filedescriptor),UNIX把网络看成文件/***@paramdomaindomain参数指定了一个通信域;它选择了将被用于通信的协议族。比如AF_UNIXAF_INET*@paramtypetypeofsockfd通信协议*SOCK_STREAM:数据流协议TCP协议*SOCK_DGRAM:数据报协议UDP协议*@paramprotocol特殊通信类型一般指定为0*@returnOnsuccess,afiledescriptorforthenewsocketisreturned.*Oner