基于FPGA的tcp、udp协议处理
一、常见网络传输协议
1.TCP
tcp(Transmission_Control_Protocol),传输控制协议。包含3次握手和4次挥手操作,由于存在主从间的交互。是一种稳定的数据传输通信协议。基于这些,其需要点对点的通信交互,不支持类似UDP的组播操作(一对多操作)。
下图描述常见tcp建立链接和fin/close的流程
下图解释tcp头的组成:主要有源、目的ip和port。sequence NO用于判断tcp间的连续性或者乱序重传,checksum用于校验在传输过程中数据内容是否丢失或者改变,保证传输数据的正确性。
2.UDP
udp(User Datagram Protocol),用户数据包协议,其传输不关心对端是否收到包,或者数据在传输过程中出现问题。
二、对比两个协议
协议名称 | TCP | UDP |
---|---|---|
可靠稳定性 | 需要对端响应,更加可靠稳定 | 无需交互,灵活。不可靠 |
面向对象 | 面向字节流传输,需要校验 | 面向pcap传输,允许丢包 |
协议头开销 | 8字节 | 最小20字节,最大60字节 |
适用场景 | 适用于文件传输 | 适用于及时响应,如可视电话,视频和直播 |
三、FPGA使用细节
- 数据协议解析