基于FPGA的tcp、udp协议处理

一、常见网络传输协议

1.TCP

tcp(Transmission_Control_Protocol),传输控制协议。包含3次握手和4次挥手操作,由于存在主从间的交互。是一种稳定的数据传输通信协议。基于这些,其需要点对点的通信交互,不支持类似UDP的组播操作(一对多操作)。

下图描述常见tcp建立链接和fin/close的流程
基于FPGA的tcp、udp协议处理

下图解释tcp头的组成:主要有源、目的ip和port。sequence NO用于判断tcp间的连续性或者乱序重传,checksum用于校验在传输过程中数据内容是否丢失或者改变,保证传输数据的正确性。
基于FPGA的tcp、udp协议处理

2.UDP

udp(User Datagram Protocol),用户数据包协议,其传输不关心对端是否收到包,或者数据在传输过程中出现问题。

基于FPGA的tcp、udp协议处理

二、对比两个协议

协议名称 TCP UDP
可靠稳定性 需要对端响应,更加可靠稳定 无需交互,灵活。不可靠
面向对象 面向字节流传输,需要校验 面向pcap传输,允许丢包
协议头开销 8字节 最小20字节,最大60字节
适用场景 适用于文件传输 适用于及时响应,如可视电话,视频和直播

三、FPGA使用细节

  • 数据协议解析