




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 一 摘要 i 近年来,各种各样的单片微处理器系统得到了广泛的应用,因特网的应用蓬勃 发展,于是将微处理器接入互联网的研究也成了当前的一大热点。 所谓嵌入式设备,就是在微处理器中有机结合了软件和硬件,使之能够工作在 各种智能化的应用场合。嵌入式设备和i n t e r n e t 连接必须符合t c p i p 协议规范, 但是嵌入式设备本身并不能支持互联网协议,而且它的本身资源也十分有限。嵌入 式设备可以通过网关来进行协议的转化。它本身也可以通过软件来模拟完成网络数 据包的收发,这需要突破资源瓶颈。) 本论文针对嵌入式设备联入互联网的问题做了两个方面的研究。 首先我们完成了t c p i p 协议族的精简,将其嵌入到内部资源有限的微处理器中。 为此我们充分研究了各种网络协议、r f c 文档和现在的各种解决方案,在综合考虑可 靠性、复杂性的基础上,完成了基于点对点协议( p p p ) 的普通单片机接入i n t e r n e t 。 同时针对现阶段的实际情况,我们完成了计算机网关程序的设计。它是基于 w i n s o c k 的多用户、多线程、实时性的程序,同时负责与外部客户机的通信和与嵌入 式设备的连接。网关是嵌入式设备和外部互联网的桥梁,通过它,嵌入式设备可以 和外部互联网世界连接起来。 这是两种不同层面上的解决方案,它们同时也相互联系,有着广泛的应用前景。 爿 ,j 关键字:微处理器互联网网关,连接 y 8 i 一一 一 :r 一4 ;戳氟,i 。蕊一。意。; ,;,童建o 。 华中科技大学硕士学位论文 a b s t a c t s i n g l e c h i pm i c r o c o m p u t e r s h a v ef o u n d a p p l i c a t i o n o f i n t e r n e ti s g r o w i n gv i g o r o u i n t e r f a c eb e t w e e ns i n g l e c h i pm i c r o c o m p u t e r s w i d e a p p l i c a t i o n sw h i l e t h e s l y ,s ot h a tr e s e a r c ho nt h e a n dt h ei n t e r n e ta p p e a r st ob e ah o t p 0 i n t t h ee m b e d d e dd e v i c ei st h e s i n g l e c h i pw h i c hc o m b i n e st h es o f t w a r ea n d h a r d w a r et o g e t h e rt i g h t l ya n dc a nb eu s e di n i n t e l l i g e n ta p p l i c a t i o n s b u t t h ee m b e d d e dd e v i c e sc a nn o tc o n n e c tt oi n t e r n e td i r e c t l y s ot h e r em u s tb e ag a t e w a ya sai n t e r f a c eo re m b e dt h et c p i ps t a c k st o t h es i n g t e c h i p t h ee s s a yd i s c u s s e st h ei s s u ei nt w o a s p e c t s f i r s t l y ,b a s i n go na n a l y s i so fv a r i o u sk i n d so fn e t p r o t o c o l s ,r f c d o c u m e n t sa n dh a r d w a r e ,t h i sp a p e rg i v e sas u c c e s s f u l e x p e r i m e n ta b o u tt h e i s s u e ,w h i c hc a nr e a l i z et h ef u n c t i o nw i t hv e r yl i m i t e dr e s o u r c eb yc u t t i n g t c p i ps t a c kt ot h em o s te s s e n t i a la n dm a k i n go p t i m i z e du s eo fr o b u s ta n d r e s o u r c ea sn e e d e d t h em o r ep r a c t i c a lw a yn o wi su s i n gap ca st h eg a t e w a y w ei m p l e m e n t e d ar e a l t i m e ,m u l t i u s e r s ,m u l t i t h r e a d e dg a t e w a yd e s i g n t h eg a t e w a yi s t h e b r i d g eb e t w e e nt h er e m o t ec o m p u t e r sa n dt h es i n g l e c h i p sn e t i tc o 哪u n i c a t e s t h e m e s s a g e sb e t w e e nt h e mb yu s i n gc o r r e s p o n d i n gp r o t o c o l s t h et w ow a y sc a nb eu s e dt o g e t h e r u n d o u b t e d l yt h ea r e ai sv e r y p r o m i s i n g k e y w o r d :s i n g l e c h i p i n t e r n e t g a t e w a y c o n n e c t i i 露蠢蓬 华中科技大学硕士学位论文 1 1 问避的援出 1绪论 今天人们生活在个信怠对代,i n t e m e t 技术已经走进了人们的工作积生活中, 网上溯览、电子邮件、文件传输等让入稍了解和交换信愚交得容易蕊篱单a i n t e r a c t 已;绠成为售息社会中很重要的组成部分。 但是到疆煎为止,t n t e m e t 技术主要还是运用在人与人( 或髓体) 之间信息的交 流。铡如e 。m a i l 、w e b 浏览等,即使是i n t e m e t 技术的进步应用,例如电子商务 昏b u s i n e s s ,也仅仅停留在企鼗与企娃或与个人在裔务方西韵信患交换上。因此,过 去我们对i n t e m e t 的理解也一宜停留在这个观念上。这其实楚一种狭隘的理解,它在 缀大程度上制约了人们从其它领域去获得与人们工作和生活密切相关的重要信患。 t n t e m e t 剐和无线骨于网技术的飞速进展使德基于分组交换技术的通信性能和质蹙褥 到稳步提高,网络应用的可靠性也嗣益值得信救。 如今人们的瞄光已经越来越集中到日常生活中的一些电子设备上。例如移动电 话、汽车、自动售货机、电表、僳安系统、医疗监护设备等。这些电子设蠢都有一 些共同的特点,即内部都套嵌入式微控制爨( m c u ) 或称之必单片机,它能够提供 定的服务和控制功能,能够获取、利用一些信息等。如何让这些电子设备跟i n t e m e t 连接起来,以使入们能够远程获得这些电子设备的信息并控帝8 它们的运行,已成为 今天信息界关注的焦点。纵观这整设想和应用,i n t e r n e t 技术将深入到人们醋常生活 和工 乍的电予设鍪中,丽旦势不可挡。i l l 把软件嵌入到微处理器中,软4 牛和硬 牛霄枧的结合成一个整体,我们可以穆之 为嵌入式设备。 本课题主要集中研究两个问题,一是嵌入式设备接入i n t e m e t 对t c p i p 的篱亿, o ? ? 。47“耐。 、 ”鼍一 ,t ;媳i 轧l 瀣i 黔i 箍瓣羔 华中科技大学硕士学位论文 二是远程控制中连接嵌入式设备和远程计算机的网关程序设计。 2 现状和已有解决方案分析 对于嵌入式系统接入i n t e m e t ,目前国外已经有了一些解决方案口1 ,最具代表性 的是以下三种。 ( 1 ) 3 2 位m c u + r t o s :采用3 2 位的高档单片机,在r t o s ( 实时多任务操作系 统) 的平台上进行软件开发,在嵌入式系统中实现t c p i p 协议的处理。由于采用高 档单片机,该方案可以完成很多复杂的功能。但这种方案存在如下缺点:1 高档单 片机价格较贵,开发周期较长:2 需要购买昂贵的r t o s 开发软件,对开发人员的 开发能力要求较高。 ( 2 ) s c e n i xm c u + 虚拟软件包:采用s c e n i x 公司( w w w s c e n i x c o m ) 提供的8 位单片机即可实现i n t e r n e t 接入功能。由于该单片机是迄今世界上最快的单片机( 每 秒l 亿条指令) ,可以实现实时多任务操作。在m c u 执行数据采集和控制功能的同时 把数据打包,发送到i n t e r n e t 上。开发人员必须熟悉t c p i p 协议和相关接口,软 件设计量大,另外每个电子设备都需要一个i p 地址,因此需要扩充i p 协议才能得 到更好的支持。 ( 3 ) e m i t 技术0 3 :e m w a r e 公司面对8 1 6 位的单片机的现实,另辟蹊径。本端的 服务器部分刻意地简化到仅仅保留h t m l 的标记,其它的服务器部分全部移到客户机 一侧;网络协议部分则放弃使用代码较长的t c p i p 协议而换用十分轻型的网络协议 该方案可以连接多种单片机。类似的解决方案也已有出现,但存在如下缺点:l 需 要依赖p c 机作网关进行协议转换,在多个单片机系统分散的情况下,专用网络布线 极为不便;2 需要在p c 机上安装专门的协议转换软件,该软件通常由专门的第三 方软件商提供,费用较高。 实现嵌入式芯片的上网与p c 有所不同。第一,微控制器是简单的控制器,普通 微控制器它们的系统资源和运算速度根本无法运行复杂的t c p i p 网络协议。第二, 薹滔馘i 溢震滋蠹溅鳓;c 7 珏:? - 如7 ,- 了: 华中科技大学硕士学位论文 微控制器并不统一,有各种型号的4 位机、8 位机或1 6 位机,指令系统也各不相同。 这些公司的产品价钱很贵( 一般为一万美元左右) ,开发系统也价值不菲,而且也不 利于掌握自己的技术。我们必须根据实际需要开发自己的系统。这就需要我们研究 更加实际的低成本的解决方案。 1 3 本课题研究的问题 本课题研究集中于研究嵌入式设备接入i n t e r n e t 的解决方案,主要有两个层面 上的问题,第一是p c 和p c 的通信,嵌入式设备通过有网关功能的p c 接入i n t e r n e t , 第二是微处理器里嵌入符合t c p i p 协议规范的程序,实现与i n t e r n e t 的数据交换。 系统层次图卜1 所示: 幽1 l 系统_ i 丢扶幽 各层的功能分别解释如下: ( 1 ) s o c k e t 模块:向应用程序提供与w i n d o w ss o c k e t s 兼容的应用程序编程接 口。 ( 2 ) 应用层协议:应用层协议,实现应用数据传输,其中t f t p 协议消耗资源最 少。 ( 3 ) 传输层协议,实现u d p 协议,为数据收、发双方提供无连接的、高效率的 信息传输通路。 ( 4 ) i p 层协议:实现i p 协议,提供网络协议层服务。实现i p 数据包的分组、 发送和重组、接收。 ( 5 ) p p p 模块:基于p p p 协议,在点到点的链路上传输多协议的数据包。包括对 华中科技大学硕士学位论文 多济议数据包的封装、对链路控制协议l c p 的建立、配置和测试、对i p 协议的网络 控制i p c p 的建立和配置以及t c p f li p 头压缩。 充分研究t c p i p 协议族,对其进行精简和简化,使其占用更可能少的系统资源, 可以用普通的单片机收发真正的t c p i p 数据包。这是本课题研究的个核心问题。 此外,当今现实的一个做法是采用专用网络( 如r s 2 3 2 ,r s 4 8 5 ,c a n b u s 等) 把一小批单片机连接在一起,然后再将该专用网络连接到个p c 上,该p c 作为网 关将专用网络上的信息转换为t c p i p 协议数据包,然后发到网上实现信息共享。被 称之为g a t e w a y ( 网关) 的网络服务器其作用是协议的解释、转换、执行等,它可以 由一台以w i n d o w s 操作系统( 或其它操作系统) 为平台的普通p c 机来实现。一方面它 支持复杂的i n t e m e tt c p f i p 协议并能提供 r r r p 服务,从而允许客户通过现在普遍使 用的网络浏览器来远程访问它;另一方面,g a t e w a y 还必需有一层与微控制器系统组 成的网络的通信协议。 在这个层面的上的应用程序设计也是本文研究的重点对象。 更加低成本、应用更广的是家用电器脱离电脑,直接联入i n t e m e t ,要进行这一 步的开发,需要i p v 6 的支持,需要更加深入研究不断发展的t c p i p 协议的内核。 4 羞滋蕊濯函:鬣题囊瑟i 了 华中科技大学硕士学位论文 2in t ern e t 各层协议分析及其选择 本章主要阐述了t c p i p 协议族的背景知识,为了利用尽可能少的资源实现嵌入 式系统i n t e r n e t 的接入,对各层协议做了深入的研究和比较。 2 1t c p i p 协议概述 由于世界各大型计算机厂商推出各自的网络体系结构,因而国际标准化组织i s o 于1 9 7 8 年提出“开放系统互连参考模型”,即著名的o s i ( o p e ns y s t e m i n t e r c o n n e c t i o n ) 。这是网络发展史上的一个里程碑。o s i 七层模型如图2 一l 所 示。它将计算机网络体系结构的通信协议规定为物理层、数据链路层、网络层、传 图2 一lo s i 七层梗型 输层、会话层、表示层、应用层等七层,受到计算机界和通信业的极大关注。通过 十多年的发展和推进已成为各种计算机网络结构的靠拢标准。o s i 七层参考模型不是 通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和 协议能在模型定义的范围内开发和相互配合。 建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。它的 。淼蠹。懑,。i。 靛: 华中科技大学硕士学位论文 最大优点是将服务、接口和协议这三个概念明确地区分开来。服务说明某一层为上 一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实 现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的 协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。 下面简单介绍七层模型的各个层次: 第一层物理层:物理层定义了通讯网络之间物理链路的电气或机械特性。 第二层数据链路层:实际的物理链路是不可靠的,总会出现错误,数据链路层的 作用就是通过一定的手段( 将数据分成帧,以数据帧为单位进行传输) 将有差错的 物理链路转化成对上层来说没有错误的数据链路。 第三层网络层:网络层将数据分成一定长度的分组,并在分组头中标识源和目的 节点的逻辑地址;网络层的核心功能便是根据这些地址来获得从源到目的的路径, 当有多条路径存在的情况下,还要负责进行路由选择。 第四层传输层:提供对上层透明( 不依赖于具体网络) 的数据传输。 第五层会话层:在网络实体间建立、管理和终止通讯应用服务请求和响应等会话。 第六层表示层:定义了一系列代码和代码转换功能以保证源端数据在目的端同样 能被识别,比如大家所熟悉的文本数据的a s c i i 码,表示图像的g i f 或表示动画的 i p e g 等。 第七层应用层:应用层是面向用户的最高层,通过软件应用实现网络与用户的直 接对话。 一般的通讯协议只符合o s i 七层模型的某几层,如:e i a r s 一2 3 2 - c :实现了物 理层。i b m 的s d l c ( 同步数据链路控制规程) :数据链路层。a n s i 的a d c c p ( 先进数 据通讯规程) :数据链路层i b m 的b s c ( 二进制同步通讯协议) :数据链路层。应用层 的电子邮件协议s m t p 只负责寄信、p o p 3 只负责收信。 t c p i p 起源于6o 年代末美国政府资助的个分组交换网络研究项目”1 ,到9o 年代已发展成为计算机之间最常应用的组网形式。很多不同的厂家生产各种型号的 计算机,它们运行完全不同的操作系统,但t c p i p 协议族允许它们互相进行通信。 6 华中科技大学硕士学位论文 这一点很让人感到吃惊,它的作用已远远超出了起初的设想。它是一个真正的开放 系统,因为协议族的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得 到。它成为被称作“全球互联网”或“因特网( i n t e r n e t ) ”的基础,该广域网( w a n ) 已包含超过不计其数的遍布世界各地的计算机。因特网连接了许多网络,它们都使 羽t c p i p 协议。t c p i p 协议与低层的数据链路层和物理层无关,这也是t c p i p 的重要 特点。正因为如此,它能广泛地支持由低两层协议构成的物理网络结构。t c p i p 协 议族现在已经成为事实上的i n t e r n e t 协议标准。 t c p i i p 通常被认为是一个四层协议系统,它和o s i 七层模型有着相应的对应关 系。t c p i p 的多数应用协议将o s i 应用层、表示层、会话层的功能合在一起,构成 其应用层,典型协议有:h t t p 、f t p 、t e l n e t 等;t c p u d p 协议对应o s i 的传输 层,提供上层数据传输保障:i p 协议对应o s i 的网络层,它定义了众所周知的i p 地 址格式,做为i n t e r n e t 中查找路径的依据;t c p i p 的最底层功能由网络接口层实现, 相当于o s i 的物理层和数据链路层,实际上t c p i p 对该层并未作严格定义,而是应 用已有的底层网络实现传输,这就是它得以广泛应用的原因。t c p i p 协议族如图2 2 所示。每一层负责不同的功能, 应用层 运输层 网络层 链踏层 t e l n e t ,f t p ,e m a i l 等 t c p 、u d p 等 i p 、i c m p 、i g p 等 设备驱动和接口 p p p 、s l i p 等 国2 2t c p i p 协议的四个层次 下文介绍它本身的一些特点和每层涉及到的协议: ( 1 ) 链路层:有时也称作数据链路层或网络接口层,通常包括操作系统中的设 备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆( 或其他任何传输 媒介) 的物理接口细节。链路层的基本协议有s l i p ( 串行电路接口协议) 和p p p ( 点 对点协议) 等。 一? :”w 。7 拍漱遂= 矗;溘;斌蟊;,;。醢盘蠢 华中科技大学硕士学位论文 ( 2 ) 网络层:有时也称作互联网层,处理分组在网络中的活动,例如分组的选 路。在t c p i p 协议族中,网络层协议包括i p 协议( 网际协议) ,i c m p 协议( i n t e m e t 互联网控制报文协议) ,以及i g m p 协议( i n t e r n e t 组管理协议) 。从概念上说,i p 路 出选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连( 如点对点 链路) 或都在一个共享网络上,那么i p 数据包就直接送到目的主机上。否则,主机 把数据包发往一默认的路由器上,由路由器来转发该数据包。大多数的主机都是采 用这种简单机制。在一般的体制中,i p 可以从t c p 、u d p 、i c m p 和i g m p 接收数据 包( 即在本地生成的数据包) 并进行发送,或者从一个网络接口接收数据包( 待转 发的数据包) 并进行发送。i p 层在内存中有一个路由表。当收到一份数据包并进行 发送时,它都要对该表搜索一次。当数据包来自某个网络接口时,i p 首先检查目的 i p 地址是否为本机的i p 地址之一或者ip 广播地址。如果确实是这样,数据包就被 送到由i p 首部协议字段所指定的协议模块进行处理。如果数据包的目的不是这些地 址,那么如果ip 层被设置为路由器的功能,那么就对数据包进行转发( 也就是说, 像下面对待发出的数据包一样处理) ;否则数据包被丢弃。 ( 3 ) 运输层:主要为两台主机上的应用程序提供端到端的通信。在t c p i p 协 议族中,有两个互不相同的传输协议:t c p ( 传输控制协议) 和u d p ( 用户数据包 协议) 。t c p 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交 给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后 确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层 可以忽略所有这些细节。而另一方面,u d p 则为应用层提供一种非常简单的服务。 它只是把称作数据包的分组从一台主机发送到另一台主机,但并不保证该数据包能 到达另一端。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不 同的应用程序中有不同的用途,这一点将在后面看到。 ( 4 ) 应用层:负责处理特定的应用程序细节。几乎各种不同的t c p i p 实现都会 提供下面这些通用的应用程序:t e l n e t 远程登录、f t p 文件传输协议、s m t p 简单邮 件传送协议和s n m p 简单网络管理协议等互联网上的每个接口必须有一个唯一的 8 蕊螽溢蔽塞滋溅鑫:滋聪慧_ 一 华中科技大学硕士学位论文 i n t e r n e t 地址( 也称作i p 地址) 。i p 地址长3 2 b i t 。 每一层协议的选择直接关系到数据传输的复杂程度和所需要资源的多少。 2 2 协议比较与选择 针对我们的课题,对于t c p i p 的各个层次的协议选择,必须综合考虑两个方面 的因素:一是协议的兼容和鲁棒性,二是协议实现所需的系统资源。由于单片机的 内部资源及其有限,所以后者是我们应该考虑的重点。 2 2 1 链路层协议选择( p p p ) i n t e m e t 行接口数据链路层协议有s l i p 6 l ( 串行电路接口协议) 和p p p ( 点对点 协议) 。s l i p 是一种简单的帧封装方法,有一些缺陷:1 每一端必须知道对方的ip 地址,没有办法把本端的ip 地址通知给另一端。2 数据帧中没有类型字段( 类似 于以太网中的类型字段) 。如果一条串行线路用于s l i p ,那么它不能同时使用其他 协议传送i p 数据包。3 s l i p 没有在数据帧中加上检验和( 类似于以太网中的c r c 字段) 。 p p p ( 点对点协议) ”1 修改t s l i p 协议中的所有缺陷。p p p 包括以下三个部分:1 在串行链路上封装i p 数据包的方法。p p p 既支持数据为8 位和无奇偶检验的异步模 式( 如大多数计算机上都普遍存在的串行接口) ,还支持面向比特的同步链接。2 建 立、配置及测试数据链路的链路控制协议( l c p :l i n kc o n t r o lp r o t o c 0 1 ) 。它 允许通信双方进行协商,以确定不同的选项。3 可以针对不同网络层协议的网络控 制协议( n c p :n e t w o r kc o n t r o lp r o t o c 0 1 ) 体系。 相比之下p p p 有更好的兼容性,而s l i p 贝u 不被一些i s p ( i n t e m e t l 务提供商) 所接 受。p p p 是为在两个对等实体间传输数据包建立简单连接而设计的。这种连接提供了 同时的双向的全双工操作,并且假定数据包是按顺序投递的。p p p 连接提供了一种广 泛的解决办法。相对于s l i p 协议,p p p 协议有很多适合嵌入式设备上网的特点:l 每 9 如箍激邈。;g 麓,i 蕊;。聪鎏。;, 华中科技大学硕士学位论文 一帧都有循环冗余检验;2 通信双方可以进行i p 地址的动态协商( 使用i p 网络控制 协议) ;3 对t c p 和i p 报文首部进行压缩;4 链路控制协议可以对多个数据链路选 项进行设置。为这些优点付出的代价是在每一帧的首部增j j j 3 个字节,当建立链路时 要发送几帧协商数据,以及更为复杂的实现。每一帧的首部增加的字节数耗费的系 统资源是可以忍受的。基于p p p 协议的登录,数据包解析等问题下一章将详细分析。 2 2 2 网络层及i p 协议分析 i p 8 】是t c p i p 协议族中最为核心的协议。所有的t c p 、u d p 、i c m p 及i g m p 都以ip 数据包格式传输。i p 提供不可靠、无连接的数据传送服务。 不可靠( u n r e l i a b l e ) 的意思是它不能保证ip 数据包能成功地到达目的地。i p 仅提供最好的传输服务。如果发生某种错误时,i p 有一个简单的错误处理算法:丢 弃该数据包,然后消息报给信源端。任何要求的可靠性必须由上层来提供( 如t c p ) 。 无连接( c o n n e c t i o n l e s s ) 这个术语的意思是i p 并不维护任何关于后续数据包的 状态信息。每个数据包的处理是相互独立的。在我们的课题中,i c m p ( 网际控制报文 协议) 是必须的。该协议是用来p i n g i n t e m e t 结点的。它送出数据包,然后等待回答。 我们需要i c m p 来检查网络连接的状态。为了指示网络是否连接成功和反应时间, 这种测试一般要重复好几次。 现行的i p 主要存在一些问题。这是i n t e r n e t 在过去几年快速增长所造成的结果。 1 地址资源已经濒临耗尽。3 2 b i t 的i p 地址从长期的i n t e r n e t 增长角度来看,一 般是不够用的。2 当前的路由结构没有层次结构,属于平面型( f l a t ) 结构,每个 网络都需要一个路由表目。随着网络数目的增长,个具有多个网络的网站就必须 分配多个c 类地址,而不是一个b 类地址,因此路由表的规模会不断增长。 2 2 3 传输层协议的选择 传输输数据的协议有稍简单的u d p t 9 】( 用户数据包协议) 和较复杂的t c p l l o l ( 传 l o 华中科技大学硕士学位论文 输控制协议) 。 t c p g u d p 都使用相同的网络层( i p ) ,t c p 向应用层提供- 与u d p 完全不同的服务。 t c p 提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用t c p 的应用 ( 通常是一个客户和一个服务器) 在彼此交换数据之前必须先建立一个t c p 连接。这 一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。 t c p 通过下列方式来提供可靠性:l 应用数据被分割成t c p 认为最适合发送的数据块。 这# n u d p 完全不同,应用程序产生的数据包长度将保持不变。由t c p 传递给i p 的信息 单位称为报文段或段( s e g m e n t ) 2 当t c p 发出一个段后,它启动一个定时器,等待 目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。t c p 协议中采用自适应的超时及重传策略。3 当t c p 收到发自t c p 连接另一端的数据,它 将发送一个确认。这个确认不是立即发送,通常将推迟几分之秒,4 t c p 将保持 它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中 的任何变化。如果收到段的检验和有差错,t c p 将丢弃这个报文段和不确认收到此报 文段( 希望发端超时并重发) 。5 既然t c p 报文段作为i p 数据包来传输,而i p 数据 包的到达可能会失序,因此t c p 报文段的到达也可能会失序。如果必要,t c p 将对收 到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。既然i p 数据包会 发生重复,t c p 的接收端必须丢弃重复的数据。6 t c p 还能提供流量控制。t c p 连接 的每一方都有固定大小的缓冲空间。t c p 的接收端只允许另一端发送接收端缓冲区所 能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。 t c p 虽然相对来说安全可靠,但是需要较大的r o m 和r a m 。适用顶级的特殊单 片机。而对于低成本的普通单片机来说,实现的难度太大。t c p 首部为2 0 字节,大大 超过u d p 首部的8 个字节。对于t c p 的数据包格式,在此我们不与分析。我们的课题 中选择的是u d p ,下文将详细分析u d p 相对于t c p 的简化及其数据包的格式。 l l i 蕊蠢纛意酴 华中科技大学硕士学位论文 2 0 字节8 字节 图2 3l i d p 封装 图2 - 4i j i ) p 首都 u d p :k t c p 有很大的简化,u d p 封装和u d p 首部分别如图2 3 和图2 - 4 所示,u d p 是一个简单的面向数据包的运输层协议,进程的每个输出操作都正好产生一个u d p 数 据包,并组装成一份待发送的i p 数据包。这与面向流字符的t c p 协议不同。程序产生 的全体数据与真正发送的单个i p 数据包可能没有什么联系。u d p 不提供可靠性,它把 应用程序传给i p 层的数据发送出去,但是并不保证它们能到达目的地。u d p 没有重新 传输缓存区,不需要解析连接列表。u d p 首部仅有8 字节。 端口号表示发送进程和接收进程。由于i p 层已经把i p 数据包分配给t c p 或u d p ( 根 据i p 首部中协议字段值) ,因此t c p 端口号e h t c p 来查看,而u d p 端口号e h u d p 来查看。 t c p 端口号与u d p 端口号是相互独立的。尽管相互独立,如果t c p 和u d p 同时提供某种 知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议 本身的要求。u d p 长度字段指的是u d p 首部和u d p 数据的字节长度。该字段的最小值为 8 - 7 - 节。这个u d p 长度是有冗余的。i p 数据包长度指的是数据包全长,因此u d p 数据包 长度是全长减去i p 首部的长度。u d p 检验和覆盖u d p 首部和u d p 数据。u d p 和t c p 在首部 中都有覆盖它们首部和数据的检验和。u d p 的检验和是可选的,而t c p 的检验和是必 需的。如果发送端没有计算检验和而接收端检测到检验和有差错,那么u d p 数据包就 要被悄悄地丢弃,不产生任何差错报文( 当i p 层检测到i p 首部检验和有差错时也这样 做) 。u d p 检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其 目的是为了发现u d p 首部和数据在发送端到接收端之间发生的任何改动。尽管u d p 检 验和是可选的,但是它们应该总是在用。 u d p 可以用于从h 2 6 3 多媒体应用程序g k i s n m p ( 简单网络管理协议) 网络管理 1 2 华中科技大学硕士学位论文 的众多方面。 2 2 4 应用层协议选择( t f t p ) f t p 是文件传输的i m e m e t 标准。与多数其他t c p 应用不同,它在客户进程和服务 器进程之闻使用两个t c p 连接一个控制连接,它一直持续到客户进程与服务器进程之 问的会话完成为止;另一个按需可以随时创建和撤消的数据连接。同样,f t p 超出了 普通单片机所能承受的资源极限。 t f t p 。( t r i v i a lf i l et r a n s f e rp r o t o c 0 1 ) 简单文件传送协议无疑是一个合适 的替代者。与使用t c p 的文件传送协议( f t p ) 不同,为了保持简单和短小,t f t p 将 使 毛j u d p 。t f t p 协议实在u d p 协议的基础上运行的,虽然它并不是很常见,但是耗费 资源很少。所以我们选择它作为文件传输协议。 f 操作码f 块编号数据f 3 = d a t a2 字节0 - 5 1 2 字节 l 操作码l 块编号i l 1 一 = r c k2 字节 f 操作码f 差错码f 差错信息1 0 f 5 = e r r o r2 字节n 字节 1 图2 5 t f t p 数据包 t f t p 数据包格式如图2 5 所示。t f t p 报文的头两个字节表示操作码。对于读请求 ( f r o ) 和写请求( w r q ) ,文件名字段说明客户要读或写的位于服务器上的文件。这 个文件字段以o 字节作为结束。 模式字段是一个a s c i i 码串n e t a s c i i 或o c t e t ( 可大小写任意组合) ,同样以0 字 华中科技大学硕士学位论文 节结束。n e t a s c i i 表示数据是以成行的a s c i i 码字符组成,以两个字节一回车字符后 跟换行字符( 称f f g c r l f ) 作为行结束符。这两个行结束字符在这种格式和本地主机 使用的行定界符之删进行转化。o c t e t 则将数据看作8 b i t 一组的字节流而不作任何解 释。每个数据分组包含一个块编号字段,它以后要在确认分组中使用。以读一个文 件作为例子,t f t p 客户需要发送一个读请求浣明要读的文件名和文件模式( m o d e ) 。 如果这个文件能被这个客户读取,t f t p 服务器就返回个块编号为1 的数据分组。 t f t p 客户又发送一个块编号为1 的a c k 。t f t p 服务器随后发送块编号为2 的数据。t f t p 客户发回块编号为2 的a c k 。重复这个过程直到这个文件传送完。除了最后一个数据 分组可含有不足5 1 2 字节的数据,其他每个数据分组均含有5 1 2 字节的数据。当t f t p 客户收到一个不足5 1 2 字节的数据分组,就知道它收到最后一个数据分组。在写请求 的情况下,t f t p 客户发送w r q 指明文件名和模式。如果该文件能被该客户写,t f t p 服 务器就返回块编号为o 的a c k 包。该客户就将文件的头5 1 2 字节以块编号为l 发出。服 务器则返回块编号为l 的a c k 。 这种类型的数据传输采用的是停止等待协议。它只用在一些简单的协议如t f t p 中。t c p 提供了不同形式的确认,能提供更高的系统吞吐量。t f t p 的优点在于实现的 简单而不是高的系统吞吐量。 最后一种t f t p 报文类型是差错报文,它的操作码为5 。它用于服务器不能处理读 请求或写请求的情况。在文件传输过程中的读和写差错也会导致传送这种报文,接 着停止传输。差错编号字段给出一个数字的差错码,跟着是一个a s c i i 表示的差错报 文字段,可能包含额外的操作系统说明的信息。 既然t f t p 使用不可靠的u d p ,t f t p 就必须处理分组丢失和分组重复。分组丢失可 通过发送方的超时与重传机制解决。丢失的数据包当发送超时和最后的数据包重新 发送的时候被检查到。和许多u d p 应用程序一样,t f t p 报文中没有检验和,它假定 任何数据差错都将被u d p 的检验和检测到。 要突破资源瓶颈,使用t f t p 无疑是合适的。 l 瓣 华中科技大学硕士学位论文 2 3 结语 当应用程序传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当 作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息( 有时还 要增加尾部信息) 。如t c p 传给i p 的数据单元称作t c p 报文段或简称为t c p 段( t c p s e g m e n t ) 。i p 传给网络接口层的数据单元称作i p 数据包( i pd a t a g r a m ) 。 当我们 确定我们选用的t c p i p 的各层协议的时候,下一步工作就是如何实现这些协议,把 它们嵌入资源及其有限的嵌入式设备中。 华中科技大学硕士学位论文 3t o p ip 的0 5 1 实现的几个关键问题分析 要在微处理器中嵌入满足t c p i p 协议,有几个必须要解决的关键问题,p p p 登 录的实现、数据包的生成和解析、校验码的计算等。下文将对这些问题进行分析。 3 1p p p 协议的实现 3 1 1p p p 数据包分析 实现收发t c p i p 协议的数据包实际上就是应用数据在i n t e r n e t 协议栈中的传 输过程。应用数据在i n t e r n e t 中传递,必须经过应用层、网络层、i p 层和数据链路 层的处理。通过分析p p p ( 可以看作位于数据链路层) 协议的实现,我们可以更清楚 的了解i n t e r n e t 中传输数据的过程。 p p p 协议包括3 个主要部件:l 在串行连接( s e r i a ll i n k ) 上封装数据包p p p 使用h d l c ( h i g hl e v e ld a t al i n kc o n t r o l ,高级数据链路控制) 做为”点到点连接” 上的基本的封装策略因此它的数据格式也符合h d l c 规程的定义。2 可扩展的 l c p ( 1 i n kc o n t r o lp r o t o c 0 1 ) 部件。用来监视连接质量,建立和配置数据连接。3 一族n c p 网络控制协议n e t w o r kc o n t r o lp r o t o c 0 1 部件,用来和不同的网络层协 议建立连接和设置选项p p p 可同时使用多个网络层协议”2 1 匦匿匿凹匦圉 圈3 一ip p p 数据包格式 p p p 数据包格式”如图3 - l 所示。标志序列为叭l l l l l 0 组成( o x 7 e ) ,是帧的 定界符,用以识剐单个的p p p 帧。地址域为u n u u ( o x f f ) ,指示所有的站均可以 1 6 华中科技大学硕士学位论文 接收该帧,使用固定值避免了分配数据链路地址的问题。控制域为0 0 0 0 0 0 1 1 ( o x 0 3 ) , 这个值指示了一个无编号的帧,p p p 并没有使用序号和确认保证传输的可靠性。协议 域占2 个字节,其值指示封装在p p p 帧中的信息所使用的协议。当它的值为o x 0 0 2 1 时,表示信息字段是一个i p 数据包;值为o x c 0 2 l 时,表示信息字段是链路控制数 据;值为o x 8 0 2 1 时,表示信息字段是网络控制数据。信息域包含有0 个或更多的字 节,为网络层的协议数据单元,缺省的最大长度为l ,5 0 0 个字节。填充域可以填充 任意数目的字节,直到信息域的最大接收单元。信息域与填充域的区别是由相应的 协议自己来完成的。f c s 域使用1 6 比特的循环冗余校验c r c 算法计算校验和,以检 测数据帧中的错误。帧校验的计算范围不包括任何起止比特,为了完成透明传输而 插入的字节,也不包括标志序列和f c s 本身。 由于标志字符的值是o x 7 e ,因此当该字符出现在信息字段中时,p p p 需要对它 进行转义。在同步链路中,该过程是通过一种称作比特填充( b i ts t u f f i n g ) 的硬件 技术来完成的。在异步链路中,特殊字符o x 7 d 用作转义字符。当它出现在p p p 数据 帧中时,那么紧接着的字符的第6 个比特要取其补码,具体实现过程如下:1 当遇 到字符o x 7 e 时,需连续传送两个字符:o x 7 d 和o x 5 e ,以实现标志字符的转义。2 当遇到转义字符o x 7 d 时,需连续传送两个字符:o x 7 d 和o x 5 d ,以实现转义字符的 转义。3 默认情况下,如果字符的值小于o x 2 0 ( 比如,一个a s c i i 控制字符) ,一 般都要进行转义。例如,遇到字符o x 0 1 时需连续传送o x 7 d 和o x 2 1 两个字符( 这时, 第6 个比特取补码后变为l ,而前面两种情况均把它变为0 ) 。 这样做的原因是防止它们出现在双方主机的串行接口驱动程序或调制解调器 中,因为有时它们会把这些控制字符解释成特殊的含义。 下小节介绍p p p 登录的流程。 3 1 2 p p p 登录流程实现 图3 2 说明了p p p 登录的实现的大致流程。 1 7 。_ | 麟j 激。满惑飘;。氮“, 华中科技大学硕士学位论文 图3 2 p p p 釜录沅程 系统初始化时处于链路d e a d 阶段,链路必须开始并且终止于这个阶段。此时物 理连接没有建立,不能进行数据通信。当某个外部事件( 如管理员配置) 发生,低层 向p p p 发送u p 信号,指示物理层可以使用时,p p p 将进入e s t a b l i s h 阶段。在此阶 段将协商l c p 的选项信息。若l c p 选项协商失败,则回到链路
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北咸宁市通城县高层次和急需紧缺人才企业招聘185人模拟试卷及答案详解(夺冠系列)
- 2025完工为期限劳动合同范本
- 2025年合同规定:餐厅厨师不得在附近开设分店
- 2025海南定安县建设工程质量安全监督站就业见习基地见习生招录5人模拟试卷及答案详解(有一套)
- 2025租赁合同写作注意事项
- 2025江苏南京鼓楼医院人力资源服务中心岗位招聘(五)模拟试卷参考答案详解
- 2025内蒙古航开城市建设投资有限责任公司及子公司公开招聘模拟试卷(含答案详解)
- 2025江苏苏州工业园区天域幼儿园教学辅助人员招聘1人模拟试卷及完整答案详解一套
- 2025年泉州德化县公办学校专项招聘编制内新任教师19人(二)考前自测高频考点模拟试题(含答案详解)
- 协考员考试题库及答案
- T-BECS 0006-2025 城镇重要基础设施内涝防护规划设计规范
- 运动会进行课件
- 2025年煤矿企业主要负责人安全生产理论考试笔试试题含答案
- 污水厂设备更新改造工程可行性研究报告
- 2025年河南省事业单位面向哈密市和十三师新星市少数民族高校毕业生专项招聘15名考试参考题库及答案解析
- 苗族舞蹈课件
- 2025年全国企业员工全面质量管理知识竞赛题及参考答案
- 中学“全员德育导师制”实施方案报告书
- 移动加权平均法自动计算表
- AutoLISP基础入门案例,很受用
- 波浪观测方法
评论
0/150
提交评论