码迷,mamicode.com
首页 > 其他好文 > 详细

基于FPGA的UDP通信实现

时间:2020-04-12 18:36:35      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:系统   要求   sys   ima   计算   tag   技术   ip协议   span   

一、UDP协议介绍

  UDP是User Datagram Protocol 的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC768是UDP的正式规范。UDP在IP报文的协议号是17(即0x17)。

 

二、数据、UDP、IP、MAC四个报文的关系

  数据是打包在UDP协议中,UDP协议又是基于IP协议之上的,IP协议又是走MAC层发送的,即从包含关系来说:MAC帧中的数据段为IP数据报,IP报文中的数据段为UDP报文,UDP报文中的数据段为用户希望传输的数据内容,如“Hello,welcome to FPGA !”。下图为使用UDP协议发送“Hello,welcome to FPGA !”的数据层层打包示意图:

技术图片

 

 图1

技术图片

 

 图2

 

三、UDP封包格式

        技术图片

 

   各个字段的组成

     (1) 前导码:

      8‘h55、8‘h55、8‘h55、8‘h55、8‘h55、8‘h55、8‘h55、8‘hd5

     (2)mac首部:

    技术图片

 

     (3)IP首部:前20个字节是IP首部

技术图片

 

       具体的各个字节就不细讲了,讲下IP首部校验和(ip_checksum).

      手动计算:

           在发送数据时,计算IP数据报的校验和,步骤如下:

           a、将校验和字段置为 0 ,然后将IP包头按照16比特分成多个单元,如包头不是16比特的倍数,则用0比特填充到16位比特的倍数;

           b、对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算时直接丢掉溢出的高位),将得到的和的反码填入校验字段;

    (4)UDP首部

 技术图片

 

 ******* 16位UDP长度:UDP包头 + 数据;

 ******* 16位UDP校验和:要求不高时可以设为全零;

    (5)Crc

 

 

 

 

 

 

基于FPGA的UDP通信实现

标签:系统   要求   sys   ima   计算   tag   技术   ip协议   span   

原文地址:https://www.cnblogs.com/571328401-/p/12686528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!