已阅读5页,还剩47页未读, 继续免费阅读
(测试计量技术及仪器专业论文)嵌入式tcpip协议的fpga实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着i n t e r n e t 的不断发展,人们希望日常生活中所用到的嵌入式设备都能够 很方便地实现i n t e r n e t 接入,这对嵌入式系统设计提出了新的挑战,要求低成本、 多功能、高性能。这些是目前嵌入式系统设计的热点。 可编程逻辑器件f p g a 在过去的几十年中取得了飞速发展,从最初的几千门 到现在的几百万门,可靠性与集成度不断提高,而功耗和成本却在不断降低,具 有很高的性价比。再加上开发周期短、对开发人员的要求相对较低的优点,因此 被大量应用于嵌入式系统设计中。 本文是基于f p g a 高性价比、可灵活配置的特点,也是当前流行的“微控制 器+ f p g a ”的嵌入式系统设计方式,所以我们提出了基于f p g a 的实现方案。 本文通过在f p g a 中硬件实现嵌入式t c p i p 协议( 包括u d p 、i p 、a r p 、t c p 等网络协议) 以及以太网m a c 协议,并提供标准m i i 接口,通过外接p h y 实现 网络连接。最终成功地通过了验证。 基于f p g a 的实现可以有效地降低成本,同时可以在其中集成其他功能模块, 提高整个系统的集成度,减小p c b 版图面积和布线复杂度,有利于提高系统可靠 性。因此,本研究课题对嵌入式系统设计有很大的实用价值。 关键词:i n t e m e tf p g a 以太网m a ct c p i p 协议 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e m e t ,p e o p l eh o p et h a te m b e d d e dd e v i c e su s e di n d a i l yl i f ec a l lc o n n e c tw i t hi n t c m e tc o n v e n i e n t l y , i ti sai l c wc h a l l e n g ef o re m b e d d e d s y s t e md e s i g n ,w h i c hr e q u i r e sl o wc o s t , m u l t i f t m e t i o na n dh j 曲p e r f o r m a n c e a l lo f t h e s ea l eh o t s p o t so f e m b e d d e ds ”;t e md e s i g n p r o g r a m m a b l el o g i cd e v i c e , s u c h 鹤f p g a , p r o g r e s s e da tv e r yf a s ts p c c di np a s t d e c a d e so fy e a r s ,d e v e l o p e df r o mt h o u s a n d so fg a t e so r i g i n a l l yt om i l l i o n so fg a t e s n o w r c l i a b i l i t ya n di n t e g r a t i o na i m p r o v i n gc o n t i n u a l l y , t h u sp o w e rc o n s u m p t i o n a n dc o s ta r cd e c r e a s i n gc o n t i n u a l l ya n dh a v eh i g hr a t i oo fp e r f o r m a n c ea n dc o s t a d d i t i o n a l l y , w i t ht h ea d v a n t a g e so fs h o r td e s i g np e r i o da n dl o wr e q u e s t st od e s i g n e r c o m p a r a t i v e l y , i ti sa p p l i e dw i d e l yi ne m b e d d e ds y s t e md e s i g n t h i sp a p e ri sb a s e do i lf a c tt h a tf p g ah a s t h ec h a r a c t e r so fh i g hr a t i oo f p e r f o r m a n c ea n dc o s t , f l e x i b l ec o n f i g u r a t i o n , a n da l s oap o p u l a rs t y l eo fe m b e d d e d s y s t e md e s i g n , s u c h 勰”m i e r o e o n l r o l l e r + f p g a ”s ow ep u tf o r w a r das o l u t i o nb a s e d o nf p g a a n di nt h i s p a p e ri ti sr e a l i z e db yi m p l e m e n t i n ge m b e d d e dt c p i i ( i n c l u d i n gu d p 、i p 、a r pa n dt c pp r o t o c o l , 咖) a n de t h e m e tm a cp r o t o c o li n f p g a ,a l s op r o v i d i n gs t a n d a r dm i ii n t e r f a c e , a n dc o n n e c t i n gw i t hn e t w o r kt h r o u g h e x t e r n a lp h y c h i p e v e n t u a l l yt h ed e s i g ni sv e r i f i e ds u c c e s s f u l l yo nh a r d w a r es y s t e m i m p l e m e n t a t i o nb a s e d0 1 nf p g ac a nr c d u e ec o s te f f e c t i v e l y , i n t e g r a t eo t h e r f u n c t i o nm o d u l e se a s i l yt oi m p r o v es y s t e mi n t e g r a t i o na tt h es a m et i l n e , a l s ot h ep c b b o a r di l l c aa n dr o u t i n gc o m p l e x i t yf i l er e d u c e d , a n di si nf a v o ro f i m p r o v i n gs y s t e m r e l i a b i l i t y t h e r e f o r e , t h es t u d yh a sm u c hp r a c t i c a l i t yv a l u ef o re m b e d d e dd e s i g n k e y w o r d :i n t e r n e t f p g a e t h e r n e tm a ct c p i p 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:垂! ! 1日期:2 1 1 墨:! :! 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属于西安电子科技大学。学校有权 保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全部或部分 内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业 后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 导师签名: 日期 日期 加o g i 2 乒 t 口8 t t 荜 第一章绪论 第一章绪论 1 1 选题背景 i n t e m e t 技术的成功,深刻地改变了人们传统的通信、工作和生活方式。同时, 为嵌入式系统设计技术注入了新的元素。嵌入式系统与i n t e m e t 的紧密结合,也 成为未来的一种发展趋势,具有很广泛的应用前景,其应用范围主要包括智能公 路、信息家电、虚拟现实家政系统、工业自动化等等,覆盖了人们日常生活的方 方面面。 因此,研究嵌入式系统i n t e r n c t 【1 】接入方案具有很大的现实意义。如何为嵌入 式系统提供最佳的i n t e m e t 接入解决方案,也交得极具挑战性。 目前f p g a 2 1 ( f i e l dp r o g r a m m a b l eg a y ea r r a y ,现场可编程门阵列) 技术获 得了巨大的发展。性能和集成度不断提高,而成本却在不断降低。各大f p g a 制 造厂商不断推出低成本、高性能的芯片以满足用户的各种需求,有助于系统设计 者提出性能更高、成本更低的系统级解决方案。现在已经出现了几千万门并且集 成了嵌入式处理器( 比如a l t e r a 公司n i o s n i o s i i 软核处理器p 】,x i l i n x 公司的 m i c r o b l a z e 软核处理器等) 、d s p 块、嵌入式存储器块等i pc o r e ( i n t e l l e c t u a l p r o p e r t y ,知识产权) 的f p g a 芯片,单片f p g a 就可以实现个s o p c i 4 1 ( s y s t e m o np r o g r a m m a b l ec h i p ,片上系统) 。 针对嵌入式系统接入i n t e r a c t 有多种实现方案: 一种是采用运行t c p i p 协议栈的微处理器加外接以太网控制器和p h y ( 物 理层芯片) 来实现i n t e r n e t 接入,即传统的软件实现方案。在这类方案中,微处 理器可以是针对小型系统的8 位1 6 位单片机,也可以是针对复杂应用的3 2 位微 处理器。而采用的t c p i p 协议栈既可以是简化后的小型协议栈,也有各种功能齐 全的完整的商业协议栈或是嵌入式操作系统中集成的协议栈。 另一种是采用集成了t c p i p 协议栈和以太网控制器的单芯片( 如韩国w i z n e t 公司的w 3 1 0 0 a 、w 3 1 5 0 、w 3 1 5 0 a 5 】芯片) 外接p h y ( 物理层芯片) 的解决方 案。目前w l z n e t 的新产品w 5 1 0 0 芯片更是将物理层芯片也集成在内。 本文是基于f p g a 高性价比、可灵活配置的特点,也是当前嵌入式系统设计 者所喜爱的“微控制器+ f p g a ”的系统设计方式这样一个事实,提出了基于f p g a 的实现方案。采用一片f p g a 可以有效地降低成本,减小p c b 版图面积和布线复 杂度,同时提高整个系统的集成度和可靠性。 2 嵌入式t c p ,i p 协议的f p g a 实现 1 2 论文的主要工作 嵌入式系统设计需要考虑的两个重要问题:一个是成本,一个是性能。本文 的主要任务就是提供一个低成本、高性能的嵌入式i n t e m e t 接入解决方案。本文 在f p g a 中硬件实现嵌入式t c p i p 协议栈以及以太网m a c 协议,将原本属于主 处理器的这部分工作由额外的硬件来完成,减轻了主处理器的负担,加速了网络 处理能力,从而提高了系统性能。 我们知道,要实现嵌入式系统的i n t 朋a e t 接入,有两个必备的条件:网络协 议栈和网络接口。 本论文的主要工作: 使用v t t d l t 6 l 和= r i l o 一刀硬件描述语言实现i p 协议、u d p 协议、a r p 协 议、t c p 协议等网络协议。 在f p g a 内部实现了以太网m a c 协议,提供了标准m i i 接口,通过外 部p h y ( 物理层芯片) 芯片实现网络连接。以太网m a c 模块内部带有 发送和接收缓冲,实现全双工通信,具有冲突检测功能。 最后进行了系统调试。目前已经通过硬件验证。 1 3 论文章节组织 本论文共有六章,内容安排如下: 第一章绪论。本章简单介绍了i n t e r a c t 、f p g a 以及目前常用的嵌入式系统 i n t c r n c t 接入的实现方案,概述了本文的主要工作。 第二章t c p i p 协议简介。本章介绍了t c p i p 协议族分层模型以及各层具体 的协议,如链路层以太网协议、口协议、a r p 协议、i c m p 协议、传输层协议( t c p 和u d p ) 等。最后简单介绍了应用层协议。 第三章t c p i p 协议的f p g a 设计。本章详细介绍了在本论文重点研究的几 个协议的f p g a 设计,包括模块划分及各个子模块的设计。 第四章以太网控制器的f p g a 设计。本章重点介绍以太网m a c 协议的硬件 设计。 第五章系统实现方案。本章将t c p i p 协议栈和以太网控制器进行了集成, 对实现结果和性能进行了分析,并进行了软件仿真和硬件验证。 结束语。对本文工作进行总结,并指出了设计中的不完善之处。 第二章t c p ,i p 协议简介 第二章t c p ,i p 协议简介 t c p i p 协议起源于2 0 世纪6 0 年代末美国政府资助的一个分组交换网络研究 项目,到9 0 年代发展为计算机之间最常用的组网形式,也是目前k l e r n e t 网络应 用最广泛的网络通信协议。t c p i p 协议【s 】即传输控制协议互联网协议 ( t r a n s m i s s i o nc o n t r o lp m t o 1 h n 锄c tp i n c 0 1 ) 是一个真正的开放式通信协议标 准,其开放性意味着在不同的计算机之间,不管这些机器的物理特性有什么差别 或者可能运行不同的操作系统,都可以通过t c p i p 协议进行网络通信。本章主要 对t c p i p 协议族进行介绍。 2 1t c p i p 协议体系 2 1 1t c p i p 协议参考模型 网络协议通常是分不同的层次进行开发的,t c p 口协议也不例外。与国际标 准化组织( i s o ) 开发的开放系统互连( o s i ) 模型相比,t c p i p 四层模型更灵活, 因为它更强调功能分布而不是功能层次划分。如图1 1 所示为t c p i p 模型结构。 应用层 传输层 网络层 数据链路层 t e l n e t 、f t p 、s m t p 等 t c p 、u d p i p 、a r p 、i c m p m a c 、设备驱动 图1 1t c p ,i p 参考模型 数据链路层:通常又称为链路层或网络接口层,是实际网络硬件的接口。包 括操作系统中的设备驱动程序和计算机中对应的网络接口卡。数据链路层处理硬 件( 任何传输媒介) 的物理接口细节。必须对这些硬件设备的电气特性作一个规 范,使这些设备都能够互相连接并兼容使用,网络接口层定义了如何使用具体网 络( 如e t h 锄e t ) 来传输数据。它定义了将数据组成正确帧的规范和在网络中传 输帧的规范。帧是指一串数据,它是数据在网络中的传输单位。 4 嵌入式t c p ,i p 协议的f p g a 实现 网络层:也称作互联网层,处理分组在网络中的活动,例如分组的路由等。 网络层提供了互联网的“虚拟网络”镜像( 这一层屏蔽了更高层的协议,使它们 不受网络层下面的物理网络体系结构的影响) 。本层定义了网络中传输的“信息包” 的格式,以及从一个终端到达另一个终端的路由转发机制。它负责对数据包进行 封装和传输,让每个数据包都能到达目的主机( 但不保证能被正确接收) 。在 t c p ,口协议族中,网络层协议包括m ( 网际协议) 、i c m p ( 互联网控制报文协议) 、 i g m p ( 互联网组管理协议) 、a r p ( 地址解析协议) 、r a i 心( 逆向地址解析协议) 等协议。 传输层:为两台主机上的应用程序提供端到端的通信。t c p i p 协议族中,传 输层提供了两种不同的传输服务:t c p ( 传输控制协议) 和u d p ( 用户数据报协 议) 。t c p 协议是面向连接的( 指的是两个终端要进行数据传输之前必须要先建 立一个t c p 连接) ,因此可以提供可靠的数据传输服务,所做的工作是将需要发 送的数据包分成大小合适的分组交给网络层,确认接收到的分组以及设置最后确 认分组的超时等待时钟。与之不同的是,u d p 协议是无连接的传输协议,不能提 供可靠的数据传输服务,其可靠性只能由上层应用程序保证。 应用层:定义了应用程序使用互联网的规范,负责处理特定的应用程序细节。 几乎各种不同的t c w i p 协议实现都会提供一些通用的应用程序,如f t p ( 文件传 输协议) 、s m t p ( 简单邮件传输协议) 、t e l n e t ( 远程登录) 等等。 2 1 2t c p i p 协议通信过程 t c p i p 协议通信【9 】过程如图1 2 所示。 当需要通过网络传输数据时,通过主机上的应用程序接口,数据被送入协议 栈,然后从上往下一层一层进行相应的打包( 添加相应的首部信息) 处理,直到 被当作一串比特流送入网络。 第二章t c p i p 协议简介 5 数据到达目的主机后,进行与发送相反的操作,从下往上一层一层进行相应 的解包( 去掉相应的首部信息并校验数据) 处理,直至送给对应的应用程序。至 此,一次完整的网络通信才算完成。 2 1 3 数据包的打包和解包 如图1 2 所示,当主机a 的应用程序需要发送数据给主机b 时,将需要传输 的数据包送入t c p i p 协议栈进行处理。首先用户数据在传输层进行打包( 添加传 输层首部信息) ,然后将打包后的传输层报文( t c p u d p 数据包) 送给网络层。 网络层对来自传输层的数据包进行打包( 添加网络层首部信息) ,然后将网络层报 文( m 数据包) 送给数据链路层。数据链路层对口数据包添加以太网首部和尾 部信息,然后送给物理层通过网络发送出去。打包过程如图1 3 所示。 ; ; 俘节加脾节加字节i 停节 - _ 一m 羲据包( 4 6 l 帕字节) | | 一二- _ 一以太同帧_ 一 图1 3 打包过程不意图 当数据包通过网络传输到主机b 时,主机b 对目的主机地址和自身主机地址 匹配的数据包进行处理。在数据链路层对以太网帧进行解包处理,然后将通过 c r c 校验的数据包( 口或a r p 数据包) 送给网络层,具体是哪种类型的数据包 需要根据以太网帧首部的帧类型字段来识别。网络层对来自数据链路层的口或 a r p 数据包进行解包处理并对数据包校验( 包括校验和计算和目的m 地址检查) , 再将正确的口数据包送给传输层,a r p 数据包直接由网络层完成处理而不需要 交给传输层。由于传输层有两个不同的传输协议,具体交给哪一个协议处理由网 络层决定,因为m 首部中含有具体传输层协议的标识信息。传输层对网络层送来 的数据包进行解包并校验,通过校验的数据包会根据首部的目的端口号信息交给 应用层不同的应用程序。解包过程请参考图1 3 。 一般来说,数据打包就是在每一层上给数据包添加相应首部信息的过程;数 6 嵌入式t c p ,i p 协议的f p g a 实现 据解包就是在每一层上去掉数据包相应首部信息并校验的过程。 2 2 数据链路层 数据链路层( d a t el i n kl a y e r ) 处于t c p i p 协议参考模型的最底层,在t c p i p 协议族中,链路层主要有三个目的:( 1 ) 发送和接收数据包( 2 ) 发送a r p 请求和接收a r p 应答( 3 ) 发送r a r p 请求和接收r a r p 应答。t c p i p 支持多 种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环往、f d d i ( 光纤分布式数据接口) 及r s 2 3 2 串行线路等。主要负责把上层送来的数据包打 包并通过特定的网络发送出去,或者对从网络上接收来的数据包进行解包并校验, 然后交给上层。 数据链路层一般可再细分为介质访问控制子层m a c 和逻辑链路控制子层 l l c 。m a c 子层的协议实现一般由m a c 接口芯片来完成:而l l c 子层的实现 一般是由网络接口芯片的驱动程序来完成的。其中m a c 位于l l c 和物理层之问, 使l l c 适用于不同的媒体访问技术和物理媒体。m a c 单独作为一个子层,就不 会因为媒体访问方法的改变而影响到较高层的协议。 链路层中使用最广泛的是以太网协议。下面仅就以太网协议做一些简单的介 绍。 以太网协议【l o 】是数字设备公司( d i s t a le q u i p m e n tc o r p o r a t i o n ) 、英特尔公司 ( i n t c lc o r p o r a t i o n ) 和x e r o x 公司在1 9 8 2 年联合公布的标准。它采用一种称为 c s m a c d 的媒体接入方法,即带冲突检测的载波侦听多路接入( c a r d e rs e n s e m u l t i p l e a c c s c o l l i s i o nd e t e c t i o n ) 技术。目前支持的速率有1 0 1 0 0 1 0 0 0m b p s 。 以太网的帧格式如图1 4 所示。 1 目的硬件地址潭硬件地址帧类型数据 填充数据c r c ( 可选) l 6 字节 6 7 - 节2 字节 4 字节 ! :磊竺竺二二型 一 图1 1 4 以太网帧格式 目的硬件地址是指目的主机的硬件地址。源硬件地址是指本地主机的硬件地 址。帧类型是指以太网帧中数据的类型,帧类型字段为o x 0 8 0 0 表示m 数据包; 0 x 0 8 0 6 表示a r p 数据包;0 x 8 0 3 5 表示r a r p 数据包。数据和填充数据字段指网 络层送给链路层要发送的数据,之所以有填充字段是因为以太网有一个最小帧长 第二章t c p p 协议简介 7 限制,当网络层送来数据包的长度达不到最小帧长时,需要用零填充至最小帧长, 才能够发送出去c r c 字段对以太网帧进行c r c 校验。 硬件地址用来标识网络中主机。对于两络上的每台机器而言,每台机器都有 一个硬件地址( 4 8b i t 的值) 来标识。链路层数据包的处理依赖于正确的硬件地 址。 2 3 网络层协议 网络层协议主要包括p 、i c m p 、a r p 等。其中最为核心的就是m 协议,所 有传输层报文、i c m p 报文、i g m p 报文都以m 数据报格式传输。网络层为传输 层数据提供传输、路由及控制报文生成等服务。 2 3 1i p 协议 m 协议n 1 1 的主要功能是无连接数据包传输、数据包路由、差错处理等既然 m 协议提供的是无连接的传输服务,它就不能保证数据包能正确地到达目的地, 如果发生某种错误,p 协议有一个简单的处理算法:丢弃该数据包,然后发送 i c m p 消息给发送端。传输的可靠性应该由上层来提供碑报文格式如图1 5 所 示。 01 51 6 3 l 4 位版本 4 位首 8 位服务类型 1 6 位总长度 号部长度 ( t o s ) 3 位拓 1 6 位标识1 3 位片俯移 志 3 位生存周期 ( r r l ) 8 位协议类垄1 6 位首部校验和 3 2 位灏口地址 3 2 位目的地址 选项( 可选) 数据 图1 5m 数据报格式 一般情况下p 首部长为2 0 个字节。图中最高位在左边,记为0b i t ;最低位 在右边,记为3 1b r 。4 个字节的3 2b i t 值以下面的次序传输:首先是0 7b i t , 其次8 1 5b i t ,然后1 6 2 3b i t ,最后是2 4 3 1b i t 。这种传输次序称作b i g d i 如 tf嗍fl上 8 嵌入式t c p i p 协议的f p g a 实现 字节序由于t c p i p 首部中所有的二进制整数在网络中传输时都要求以这种次 序,因此它又称作网络字节序。以其它形式存储二迸制整数的机器,如t i t t l ee n d i a n 格式,则必须在传输数据之前转换成网络字节序。有些情况下,可能有选项字段, 此时m 首部长度就要做相应地改变。 p 数据报首部各字段的含义如下: 版本号:该字段占4b i t ,目前常用的协议版本号是4 ( g - 称为i i , v 4 ) 。下一 个版本是i p v 6 ,也是当今互联网技术研究的热点。 首部长度:指m 数据报首部3 2b i t 字的数目,包括选项字段。由于它占了4 b i t , 因此首部长度最大为6 0 个字节。例如,在没有任何选项的情况下,这个字段的值 是5 ( 即首都字节长度,4 ) 服务类型:该字段占8 雠,包括一个3b “的优先权予字段( 现在已被忽略) , 4 b i t 的 l o s 子字段和1 b “未用位( 置0 ) 。4 b i t 的t o s 分别代表:最小时延、最 大吞吐量、最高可靠性和最小费用。4 b i t 中只能置其中1 b i t 如果所有4b i t 均为 o ,那么就意味着是一般服务。目前大多数的t c p i p 协议栈的实现都不支持 l o s 特性。 总长度:指整个p 数据报的长度( 包括首部) ,以字节为单位。由于该字段 占1 6b i t ,所以m 数据报的最大长度为6 5 5 3 5 。虽然理论上一个数据报长度可 达6 5 5 3 5 ,但由于链路层一般都有一个最大传输单元( m i u ) 的限制,一般都会 对长度大于m i u 的数据报进行分片以适合进行网络传输,分片后总长度字段会 自行更新。总长度字段是必不可少的,因为一些数据报为了满足链路层的最小帧 长要求,可能会在有效数据后面添加填充码,这样在接收到有填充码的数据报时, 需要根据总长度字段提取出有效数据。 标识:该字段占1 6 雠,用来标识主机发送的每一个数据报。通常每发送一 个报文它的值就加1 。这个字段在对数据报进行分片和重组时有非常重要的作用。 标志和片偏移;该字段占1 6b i t ,其中前3b i t 是标志,后面1 3b i t 是片偏移。 其子结构如图1 6 所示 1 未用 d fm1 3 位片偏移 圈1 6 标志和片偏移子结构 d f ( d o n tf r a g m e n t ) 位是不分片标志,如果d f = l ,指示不能对数据报 分片;d f = 0 ,指示可以分片。m 位表示该分片是否是原来数据报的最后一片, 如果m = 1 ,指示该分片不是最后一个分片;m = 0 ,指示为最后一个分片 后面1 3b i t 指示了该分片在原始数据报中的所处位置的偏移量。 第二章t c p ,i p 协议简介 9 生存周期( t t l ,t i m et ol i v e ) :该字段占8b i t ,是一个用来限制数据报生 存周期的计数器。一般一个数据报经过一个路由器,该字段就减l 。对于那些过 载的路由器,由于有高延迟,路由器会记录数据报到来的时间,在转发出去时从 t t l 字段减去该路由器等待的时间。当1 v r l 字段为0 时,路由器就会丢弃该数据 报,并发送一个错误信息给源端。 协议:该字段占8b i t ,标识具体传输层协议,如t c p 或u d p 等。如果该域 是6 表示t c p 协议:1 7 表示u d p 协议;1 表示i c m p 协议( i c m p 协议不属于传 输层协议,但是也被封装在m 数据包中传输) 。 口首部校验和【1 2 】:该字段占1 6b i t ,用来确保数据的正确性。该校验和的计 算是通过将首部按1 6b i t 相加( 首先将该字段置o ) ,超出1 6 位的部分再与低1 6 位相加,最后将结果取反码后放入该字段。由于p 首部总长度、t t l 等这些字段 在传输的过程当中可能会发生变化,所以任何一个字段发生变化,校验和都需重 新计算。注意,p 首部校验和的计算不包括后面任何数据。 源地址和目的地址:这两个字段都是3 2b i t ,标识数据报的发送者和接收者。 选项:主要用来进行网络测试,该字段是变长的,定义了5 种选项:安全性、 严格源路由选择、宽松源路由选择、路由记录、时间标记。 填充字段:由于选项字段是交长的,所以该字段用0 来进行填充,以保证数 据报首部长度为3 2b i t 的倍数。 2 3 2 a r p 协议 在前面介绍链路层时,我们知道网络中的每台机器都有一个4 8b i t 硬件地址 来标识。链路层数据的发送和接收都依赖于这个硬件地址,发送数据时需要知道 目的主机的硬件地址( 广播包除外) ,接收数据时目的主机需要检查该数据报的目 的硬件地址是否与自身的硬件地址相匹配。 但是在某些情况下,发送数据时只知道目的主机的p 地址并不知道它的硬件 地址,怎么办呢? a r p 协议就是为解决这个问题而设计的。 链路层要发送数据时,首先搜索a r p 高速缓存,如果其中没有对应的映射记 录,就会发送一个a r p 请求,接收到该请求的机器检查数据包中目的璎地址, 若与自身的球地址匹配,就会回复一个a r p 应答,本地主机接收到这个应答包 后就可以知道目的主机的硬件地址,然后就可以发送数据。同时还会更新本机 a r p 高速缓存。 图1 7 是a r p 数据报格式。 1 0 嵌入式t c p i p 协议的f p g a 实现 以太两目以太网潦 帧类硬件协议操作发送端以发送靖目的端以目的端 的地址地址型类型 类型 码 太网地址口地址太网地址口地址 66 2 。2 2 il2 646 4 。 卜一以太同首部叫_ 一 r p 请求应答( 勰字节) 叫 图1 7a r p 数据报格式 以太网首部中的前两个字段分别是以太网目的地址和源地址。目的地址全l 是广播地址,例如发送a r p 请求时以太网目的地址就是广播地址。电缆上的所有 以太网接口都要接收广播数据帧。 两个字节的帧类型指示后面数据的类型。具体请参考2 2 数据链路层。 硬件类型字段标识硬件地址的类型。它的值为1 标识以太网地址。协议类型 表示要映射的协议类型。值0 x 0 8 0 0 表示口协议。它的值与包含m 数据报的以太 网数据帧中的类型字段相同。 接下来两个l 字节的字段,硬件地址长度和协议地址长度分别指出硬件地址 和协议地址的长度,以字节为单位。对于以太网上口地址的a r p 请求或应答而 言,它们的值分别为6 和4 。 操作码字段表示四种操作类型:a r p 请求( 值为1 ) 、a r p 应答( 值为2 ) 、 r a r p 请求( 值为3 ) 、r a r p 应答( 值为4 ) 。这个字段是必需的,因为a r p 请 求和a r p 应答的帧类型字段是相同的。 接下来的四个字段分别是发送端以太网地址、发送端m 地址、目的端以太网 地址、目的端口地址。注意,这里有一些重复信息,以太网首部和a r p 请求数 据帧中都有发送端硬件地址。 对于一个a r p 请求来说,除目的端以太网地址外的所有其他字段都有填充 值。当目的主机接收到一份给自己的a r p 请求后,就把自己的硬件地址填进去, 然后将两个目的端地址和发送端地址交换,并把操作码置为2 ,最后发送出去。 在这里简单提一下r a r p 协议,r a r p 报文格式与a r p 基本一致。它们之间 的主要差别是r a r p 请求或应答的帧类型字段为0 x 8 0 3 5 ,操作码字段r a r p 请求 是3 、r a r p 应答是4 。 2 3 3 i c m p 协议 数据包在传输的过程中可能要经过多个路由器,如果路由器不能转发或检测 到一个不正常的状态,路由器就要向源端报告,以便采取措施避免或解决问题。 i c m p 协议【1 3 】就提供了这种机制,它主要包含下列几种类型的消息: 第二章t c p i p 协议简介 目的不可达消息用来报告子网或者路由器没有找到目的地,或者设置了 d f 标志的数据报不能通过删小的网络。 超时消息用来报告分组由于t t l 为0 而被丢弃。 参数问题消息表明首部字段不正确,可能是发送主机或路由器软件有问 题。 源抑制消息希望发送端主机能够降低发送速率。 重定向消息在路由器发现可能出现路由错误时发送。 回显请求和应答消息用来测试目的地是否可达并且正常运作。 时间戳请求和应答与回显请求消息类似,只是要记录消息到达和发出的 时间,用于测试网络性能。 2 4 传输层协议 传输层协议有u d p ( 用户数据报协议) 和t c p ( 传输控制协议) 。 2 4 1 用户数据报协议 u d p 协议【1 4 】是一个简单的面向数据报的传输层协议,提供不可靠的传输层服 务。它只负责将应用数据打包交给网络层,但是不保证数据报能正确到达,所以 需要应用程序来保证其可靠性。虽然u d p 提供不可靠的传输服务,由于处理速度 快,在一些对实时性要求高的应用( 比如实时视频图像的传输) 会经常被使用。 如图1 8 所示为u d p 数据报格式。 1 6 位源端1 3 号1 6 位目的端口号 1 6 位u d p 长度1 6 位u d p 校验和( 可选) 数据( 如果有) 弋 8 字节 上 图1 8u d p 数据报格式 端口号用来标识发送进程和接收进程。u d p 根据目的端口号来决定将接收到 的数据交给哪个应用进程。 u d p 长度字段指示整个u d p 数据报的长度,包括u d p 首部和数据。由于 u d p 首部长度是8 字节,所以u d p 长度字段最小为8 ( 即不发送数据) 。这个u d p 长度是有冗余的,碑数据报首部的总长度字段包括口首部和数据,因此u d p 数 嵌入式t c p b p 协议的f p g a 实现 据报长度可以用坤总长度减去p 首部长度。 u d p 校验和是一个端到端的校验和。由发送端计算,然后由接收端验证。目 的是检查数据在传输过程中是否被改变。虽然这个字段是可选的,但应该总被使 用。如果发送的数据报的校验和为0 ,则说明发送端没有计算校验和。 u d p 校验和覆盖u d p 首部和数据。回想前面i p 首部校验和,它只覆盖了球 首部,不包括后面任何数据。与u d p 类似,另一个传输层协议t c p 校验和同样 覆盖t c p 首部和数据。不同的是,u d p 校验和可选,而t c p 校验和是必需的。 u d p 校验和的计算方法与口首部校验和的计算类似( 1 6b i t 字的二进制反码 和) ,但也存在不同的地方。首先,u d p 数据报的长度可以是奇数字节,但是校 验和算法是把若干个1 6 雠字相加。解决方法是必要时在最后增加填充字节0 , 这只是为了检验和的计算( 也就是说,可能增加的填充字节并不被传送) 。其次, u d p 数据报和t c p 数据报校验和的计算都包含一个1 2 字节长的伪首部,它是为 了计算校验和而设置的。 u d p 数据报中的伪首部格式如图1 9 所示。 o1 51 63 l 3 2 位源1 p 地址 3 2 位目的i p 地址 o8 位协议( 1 7 ) 1 6 位u d p 长度 1 6 位源端口号1 6 位目的端口号 1 6 位u d p 长度1 6 位u d p 校验和( 可选) 数据 数据填充字节( 0 ) 图1 9u d p 校验和计算过程中使用的各个字段 从图1 9 中可以看出,u d p 伪首部包含m 首部一些字段。其目的是让u d p 再次检查数据是否已经正确到达目的地( 例如,口没有接收目的地址不是本机的 数据报,以及口没有把应该传给另一高层协议的数据报传给u d p ) 。 在上图中,我们有意举了一个数据报长度为奇数字节的例子,因而在计算校 验和时需要添加填充字节,但是填充字节不会和数据一起发送。注意,u d p 长度 在计算校验和过程中出现了两次。 部 f t l 卡rtl卡! 第二章t c p i p 协议简介 2 4 2 传输控制协议 2 4 2 1t c p 的服务 t c p 协议【”1 提供一种面向连接的可靠的字节流服务。面向连接意味着两个使 用t c p 传输服务的应用( 通常是一个客户端和一个服务器) 在彼此交换数据之前 必须先建立一个t c p 连接。在一个t c p 连接中,仅有两方进行彼此通信。 t c p 通过下列方式来提供可靠性: 应用程序分割为t c p 认为最合适发送的数据块。由t c p 传递给口的信 息单位叫做报文段。段是t c p 传输数据的基本单位。 当t c p 发出一个报文段后,它启动一个定时器,等待目的端确认收到这 个报文段。如果不能及时收到一个确认,它就重发这个报文段。 当t c p 收到发自t c p 连接另一端的数据,它将发送一个确认。这个确认 不是立即发送,通常延迟几分之一秒。 t c p 将保持它首部和数据的校验和。这是一个端到端的校验和,目的是 检测数据在传输过程中的任何变化。如果收到报文段的校验和有差错, t c p 将丢弃这个报文段,并且不确认收到这个报文段( 希望发送端超时 重发) 。 t c p 报文段作为口数据报来传输,而m 数据报的到达可能失序,因此 t c p 报文段的到达也可能失序。如果必要,t c p 将对收到的报文进行重 新排序,将接收到的数据按正确的顺序交给应用层。 由于p 数据报会发生重复,因此t c p 的接收端必须丢弃重复的数据报。 t c p 还能提供流量控制,t c p 连接的每一方都有固定大小的缓冲空间。 t c p 的接收端只允许另一端发送接收端缓冲区所能容纳的数据。这将防 止较快主机致使较慢主机的缓冲区溢出。 两个应用程序通过t c p 连接交换8b i t 字节构成的字节流。t c p 不会在字节 流中插入记录标识符,发送端发送的字节流会原封不动的出现在接收端。另外, t c p 不会对字节流作任何解释,它只负责字节流的传输。对字节流的解释由通信 双方的应用程序完成。 2 4 2 2t c p 数据报 t c p 报文被封装在一个m 数据报中。如果不计选项字段,t c p 首部长度通 常是2 0 字节。 t c p 数据报的格式如图1 1 0 所示。 1 4 嵌入式t c p i p 协议的f p g a 实现 o 1 51 63 1 1 6 位源端口号l 难目的端口号 3 2 位序号 3 2 位确认序号 4 位首部 uprsf 长度 6 位保留 rcs syi 1 6 位窗口大小 gktnn 1 6 位校验和 1 6 位紧急指针 选项( 可选) t c p 数据 t t c p 首部 上 图1 1 0t c p 数据报格式 源和目的端口号:这两个字段用来标识发送端和接收端的应用程序。这两个 值加上口首部的源和目的m 地址就确定了一个唯一的t c p 连接。 序号:用于标识从发送端向接收端发送的数据字节流,它表示在这个报文段 中的第一个数据字节。如果将字节流看作在两个应用程序之间的单向流动,则t c p 用序号对每个字节进行计数。 确认序号:是接收端用来确认接收的数据报,该字段的值为接收端期望从发 送端接收的下一个字节流的起始序号。 首部长度:该字段用来指示t c p 首部的长度。具体请参考2 3 1m 协议小节 对口首部长度的介绍。 标志位:可同时将多个位设置为l 。 u r g :紧急指针有效 a c k:确认序号有效 p s h :接收端应该尽快将这个报文段交给应用层 r s t:重建连接 s y n:同步序号用来发起一个连接 f i n :发送端完成发送任务 窗口大小:用于t c p 进行流量控制时双方声明窗口大小,以字节为单位。该 段占1 6b i t ,因此窗口最大为6 5 5 3 5 字节。 校验和:t c p 校验和覆盖t c p 首部和数据。校验和是一个强制性的字段,由 发送端计算,接收端验证。t c p 校验和的计算与u d p 校验和类似,请参考2 4 1 用 户数据报协议小节对u d p 校验和介绍。 紧急指针:只有在u r g 标志置l 时才有效。紧急指针是一个正的偏移量, 第二章t c p ,i p 协议简介 1 5 与序号字段的值相加表示紧急数据最后一个字节的序号。t c p 的紧急方式是发送 端向另一端发送紧急数据的一种方式。 2 4 2 3t c p 连接的建立与终止 1 、建立连接 建立连接是通过通信双方的三次握手完成。 客户端首先发送一个s y n 段指明客户端打算连接的服务器的端口,以及 初始序号( i s n ) ,这个s y n 报文段为报文段l 。 服务器发送包含服务器的初始序号的s y n 报文段( 报文段2 ) 作为应答。 同时将确认序号设置为客户端的i s n 加l 以对客户的s y n 报文段进行确认。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CMF中国宏观经济分析与预测报告(2026年中期) 中国经济 2026承前启后
- 走一步算一步题目及答案
- 转化单位1的题目及答案
- 中考联立方程题目及答案
- CN114120198B 一种伪造视频检测方法、系统及存储介质 (武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所))
- 阿布拉姆·蔡辛斯《三首中国小品》:曲式与技法交织下的东方音韵
- 阿司匹林对原代培养大鼠AEC-Ⅱ的保护效应及机制探究
- 阻塞性睡眠呼吸暂停低通气综合征的中医研究:理论、实践与展望
- 阵列式静电传感器成像系统:原理、设计与应用的深度剖析
- 阴极保护电位准则与析氢电位的关联及应用研究
- (2025年)注册安全工程师考试建筑施工(初级)安全生产实务试卷与参考答案
- 广州物业管理中信广场业户手册
- 2025年10月自考00504《艺术概论》试题及答案(含评分参考 )
- 2026年毛概期末考试试题库100道含答案【基础题】
- 2025广东深圳市公安局第招聘警务辅助人员2356人(十三批)(公共基础知识)综合能力测试题附答案解析
- 彩绘土陶罐课件
- 2025年副高(外科护理)考试真题及答案
- 2025年征兵网心理测试试题题库及答案
- 机加工员工质量意识培训
- 登高架设高处作业证理论考试题(附答案)
- 2025年北京首师大附中初三零模英语试题和答案
评论
0/150
提交评论