UDP_IP_ARP協议的FPGA实现.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDP_IP_ARP協议的FPGA实现

UDP/IP/ARP协议的FPGA实现一、协议体系(1)分层模型图1为简易的TCP/IP网络的分层模型,从上到下依次为应用层、传输层、网络层和链路层。每个协议层都为其上层提供通信服务,同时使用下层的服务。各个协议层都对其上各层隐藏了底层的实现细节。也就是说,各层使用下层的服务时,可以将下层看成一个“黑箱”,所需要关心的只是各层之间的接口,而不必关心其内部结构和实现。图1 简易TCP/IP网络分层模型通过这种方式,设计人员可以建立具有良好接口的功能模块。应用层位于TCP/IP网络分层模型的最上层,它直接与应用程序打交道,与应用程序连接最为紧密,因此被称为应用层。传输层主要包括TCP协议和UDP协议。它为应用程序传来的数据提供传输服务,这是它被称为传输层的原因。传输层负责将应用层传来的数据打包封装成适合发送的分片,然后交给网络层处理。同时,传输层还对数据传输的正确性和完整性进行必要的控制,例如TCP协议和UDP协议对每一个传输的数据报都附带校验和,接收端用此校验和来校验接收到的数据的正确性;TCP协议对数据的传输提供了超时重传控制和确认机制等。传输层为应用程序提供数据传输服务,同时对应用程序屏蔽了下层通信的细节,从而使建立在传输层上的应用程序的网络通信变得非常的简单。因为系统中通常都有多个应用程序要使用传输层的服务,所以传输层要在所传输的数据中加入信源和信宿应用程序的信息,以区分不同的应用程序。基于这种考虑,传输层为使用其服务的每一个应用程序都提供了一个编号,这个编号就是常说的“端口”。网络层位于传输层和链路层之间。它被称为网络层是因为它的主要功能是对数据在网络中的传输进行控制,例如规定数据包传输的目的IP地址和源IP地址,规定数据包在传输过程中允许通过的最大路由器数目等。IP协议是整个网络层的核心,传输层的TCP和UDP都使用IP协议提供的服务。网络层还包括ARP协议。链路层是TCP/IP协议族分层模型的最底层,它是直接与硬件打交道的一层。它的主要功能是负责接收网络层数据包并通过传输线发送,或者从传输线接收数据帧,从中取出数据报,交给网络层。协议分层的存在使得各层间可以进行透明的通信,但又不必关心下层协议的实现细节。在这里我们只考虑传输层和网络层的UDP、IP、ARP协议的FPGA实现。(2)数据包的打包和解包当主机A的应用程序需要发送数据给主机B时,将需要传输的数据包送入TCP/IP协议栈进行处理。首先用户数据在传输层进行打包(添加传输层首部信息),然后将打包后的传输层报文(TCP/UDP数据包)送给网络层。网络层对来自传输层的数据包进行打包(添加网络层首部信息),然后将网络层报文(IP数据包)送给数据链路层。数据链路层对IP数据包添加以太网首部和尾部信息,然后送给物理层通过网络发送出去。打包过程如图2所示。图2 打包过程示意图当数据包通过网络传输到主机B时,主机B对目的主机地址和自身主机地址匹配的数据包进行处理。在数据链路层对以太网帧进行解包处理,然后将通过CRC校验的数据包(IP或ARP数据包)送给网络层,具体是哪种类型的数据包需要根据以太网帧首部的帧类型字段来识别。网络层对来自数据链路层的IP或ARP数据包进行解包处理并对数据包校验(包括校验和计算和目的IP地址检查),再将正确的IP数据包送给传输层,ARP数据包直接由网络层完成处理而不需要交给传输层。由于传输层有两个不同的传输协议,具体交给哪一个协议处理由网络层决定,因为IP首部中含有具体传输层协议的标识信息。传输层对网络层送来的数据包进行解包并校验,通过校验的数据包会根据首部的目的端口号信息交给应用层不同的应用程序。解包过程请参考图2。一般来说,数据打包就是在每一层上给数据包添加相应首部信息的过程;数据解包就是在每一层上去掉数据包相应首部信息并校验的过程。二、各子协议的工作原理(1)ARP协议ARP (Address Resolution Protocol) 是个地址解析协议。我们知道网络中的每台机器都有一个48 bit硬件地址来标识。链路层数据的发送和接收都依赖于这个硬件地址,发送数据时需要知道目的主机的硬件地址(广播包除外),接收数据时目的主机需要检查该数据报的目的硬件地址是否与自身的硬件地址相匹配。但是在某些情况下,发送数据时只知道目的主机的P地址并不知道它的硬件地址,怎么办呢?ARP协议就是为解决这个问题而设计的。链路层要发送数据时,首先搜索ARP高速缓存,如果其中没有对应的映射记录,就会发送一个ARP请求,接收到该请求的机器检查数据包中目的IP地址,若与自身的IP地址匹配,就会回复一个ARP应答,本地主机接收到这个应答包后就可以知道目的主机的硬件地址,然后就可以发送数据。同时还会更新本机ARP高速缓存。图3是ARP数据报格式。图3 ARP数据报格式以太网首部

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档