前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UDP的FPGA实现(上) | 操作基础与理论分析

UDP的FPGA实现(上) | 操作基础与理论分析

作者头像
根究FPGA
发布2020-06-30 11:48:41
2K0
发布2020-06-30 11:48:41
举报
文章被收录于专栏:根究FPGA根究FPGA

一、操作知识

“本地连接”只出现于Win7和XP中,在Win8和win10系统,被更名为“以太网”。(.....大声重复.....)

在比较老的教程中,程序在win7或XP的环境下运行,需要查看MAC地址,所以就需要DOS命令中查看MAC地址,通过“ipconfig -all”指令,需要本地连接下的MAC号,本人除了这一步和教程不一样之外步步相同,结果显然失败了。是因为“本地连接”只出现在win7和xp系统中,本地连接*2并不是“本地连接”,没想到在这个点上疑惑了这么久。

正确的操作步骤是在dos窗口中输入“ipconfig -all”,找到“以太网适配器 以太网”,找到其对应的物理地址,如下图所示:

在DOS命令窗口绑定开发板的IP地址和MAC地址:

开发板的IP地址为:192.168.0.2(4字节)

开发板的MAC地址为:00-0a-35-01-fe-c0(6字节)

在DOS命令窗口绑定开发板的IP地址和MAC地址,通过IP和MAC绑定的方式来强制将开发板的IP地址和MAC地址关联在一起,这样,当PC给192.168.0.2发送数据包的时候,目标MAC地址自动为开发板的MAC地址。

绑定方法:

1、 使用netsh i i show in命令查看本地连接(以太网连接)的idx编号。

2、使用netsh -c “i i” add neighbors 6 “192.168.0.2” “00-0a-35-01-fe-c0”指令,将开发板的IP和MAC绑定到本地连接下:

3、打开网络调制助手设置参数,本地的IP地址为PC的IP Address,本地端口需要跟FPGA中的程序一致,为32768(16’h8000=16’d32768),最终结果为:

上面这些操作都是啥?????干啥用的?又是物理地址,又是IP地址,又是端口号,又是你的,又是我的的,到底要是干什么?

首先是“ipconfig -all”查看以太网下的物理地址,是一个6字节的MAC地址,该地址应用于主机的MAC帧,用于board的数据链路层通信。

IP地址用于网络层,既然是开发板与PC之间的通信,肯定是需要双方的IP地址的,所以主机的IP地址分配为192.168.0.3,board的IP地址分配为192.168.0.2,用于PC与board的网络层之间的通信。

端口号用于传输层,既然是UDP通信,用户数据包协议是无连接的,但是也要知道是给谁传的数据,所以此处使用端口号,实现PC与board的传输层之间的通信。

所以前期准备中需要两组参数,分别是:PC和board的端口号、IP地址、Mac地址,即得到以下数据:

1、PC的IP地址:192.168.0.3(网络层) MAC地址:F0-76-1C-82-4E-D8(用于数据链路层) 端口号:32768 (16’h8000)(用于传输层)

2、板子的IP地址:192.168.0.2(网络层) MAC地址:00-0a-35-01-fe-c0(用于数据链路层) 端口号:32768 (16’h8000)(用于传输层)

二、UDP介绍

UDP即User Datagram Protocol,用户数据报协议,还有一个耳熟能详的叫做TCP(Transmission Control Protocol),传输控制协议, 既然是传输控制,那必然稳定性高一点。

两者区别:

1、 TCP是一种面向连接的、可靠的、基于字节流的 传输层通信协议,但是TCP的传输速度慢,效率低,确认机制、重传机制、拥塞控制等都会占用大量的时间等。

2、 UDP是一种无连接的传输层协议,提供面向实物的简单不可靠信息传送服务,传输速度快,效率高。

OSI模型:

对于UDP传输同样采用了分层接收,层与层之间相互独立,但是也有密切的关系,与TCP/IP类似:

TCP/IP分为四层,自上而下依次为:

(4)、应用层

(3)、传输层

(2)、网络层

(1)、网络接口层。

各层介绍:

1、应用层:包含所有的高层协议,包括:文本传输协议FTP、超文本传送协议http等。

2、传输层 为通信双方的主机提供端到端的服务,传输层对信息流具有调节作用,提供可靠性传输,保证数据到达无误,包含UDP、TCP协议等。

3、网络层 进行网络互联,根据网间报文IP地址,从一个网络通过路由器传到另一网络。

4、网络接口层 负责接收IP数据报,并负责把这些数据报发送到指定网络上。TCP/IP的核心是网络层和传输层:网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。

UDP与TCP机制类似,应用数据经过每一层处理后才能通过网络传输到目的端,每一层上使用该层的协议数据单元(PDU,Protocol Data Unit)彼此交换信息。不同层的PDU包含不同的信息,因此PDU在不同层被赋予了不同的名称:

1、传输层:上层数据在传输层添加TCP包头后得到的PDU称为Segment(数据段)

2、网络层:数据段被传递给网络层,按网络层添加IP报头得到的PDU称为Packet(数据包)

3、数据链路层:数据包被传输到数据链路层,封装数据链路层报头得到的PDU称为Frame(数据帧)。

4、物理层:最后,帧被转换为比特(物理层)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 根究FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云联网
云联网(Cloud Connect Network,CCN)提供全网互联服务,助力您实现各地域的云上、云下多点互联。云联网的智能调度、路由学习等特性,可帮助您构建极速、稳定、经济的全网互联,轻松满足在线教育、游戏加速、混合云等全网互联场景下的极速体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档