Adam Taylor玩转MicroZed系列,第79部分

Adam Taylor玩转MicroZed系列,第79部分,第1张

在本系列博客的前两部分中,我们研究了带有Zynq SoC PS(处理器系统)的以太网MAC(介质访问控制层),包括深入探讨了一个MAC使用范例。以太网MAC是一个基础的构建模块,它允许我们实现一个IP栈,然后因此给我们的工程创建联网条件。

该IP协议栈,有时候称为TCP/IP协议栈,因为两者总是出现在一起的,是一系列叠加在以太网数据帧顶端的协议。这些协议允许应用基于网络来通信。IP协议栈因而包含一系列由OSI协议模型划分的不同协议。如果我们想要解析一个IP协议栈,我们需要找到下列协议:

 第一层——物理层:使用Zynq SoC的时候,一个外部的物理层设备和一个合适的互连媒体(如RJ45电缆光纤)提供该层。
 第二层——以太网-数据链路层:由带有PS的Zynq SoC MAC提供
 第三层——IP-网络层-因特网协议:提供网络路由和寻址层。可以使IPv4或者IPv6。
 第四层——TCP-传输层-传输控制协议:经常简称为TCP。
 第五层——应用层:应用停留在该层,可以使HTML,SMTP,FTP或者其它用户应用。3

同其它概念一样,最好可视地展示ISO协议栈,如下图所示:

Adam Taylor玩转MicroZed系列,第79部分,Adam Taylor玩转MicroZed系列,第79部分,第2张

 

我们已经详细讨论了数据链路层。然而我们还没有涉及TCP或IP的诸多细节,因此我将尝试提供一个简单的介绍。

从最高层开始,TCP协议给应用层提供可靠的、差错保护的连接。TCP确认每一个接收帧来保证可靠接收。该协议也使用序列号来保证应用层传输的数据以正确的格式传送到接收的应用。该协议中的数据校正确保没有任何差错。

端口的概念是用来决定数据传输到那个应用中去。该方案允许多个应用在连接中使用相同的协议来传输数据,而没有任何冲突。然后,TCP并不提供网络路由;它并不保证数据在确切的网络节点到达确切的端口。把数据送到正确地方是网络层的主要作用,该层实现英特网协议即IP。

IP地址的格式大家都清楚。例如192.168.0.1是个IP地址。当前IP有两种版本:IPv4和IPv6。IPv6寻址是最新的改动,为了解决IPv4耗尽的问题,证明了TCP/IP毋庸置疑的成功。

我在该系列中已经写了好几篇文章了,IP协议栈和TCP/IP的详细解释将需要好几篇博客。(如果你没注意到,我们现在是第79部分。)IP协议栈是一个非常复杂的主题。然而,我认为在我们开始使用这些协议栈之前,有必要在接下来的博客中介绍他们的基本含义。访问 获取更多IP协议栈的细节。

由于TCP/IP协议栈的固有复杂性,我们有一系列预创建的协议栈库可用。在下面几篇博客中我们要用到的IP协议栈是轻量级IP协议栈(lwIP),我们创建BSP的时候可以包含和配置该库。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2539069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存