




已阅读5页,还剩80页未读, 继续免费阅读
(通信与信息系统专业论文)在嵌入式网络中tcpip协议的简化.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨t 业大学工学硕上学位论文 1 1 引言 第1 章绪论 1 1 1o s l 七层互连参考模型简介 计算机网络是由各种计算机和各类终端通过通信线路连接起来的复合 系统。在这个复杂的系统中,由于硬件、连接方式及软件不同,网络中各结 点间的通信无法进行。由于各厂家使用的数据格式、交换方式不同,异种机 通信硬件的标准化非常困难。所以网络协议的设计者们不应当只规定个体 积庞人功能集成在一起的单一协议来为所有形式的通信规定完整的细节,那 样不仅使得协议设计复杂化,而且更使得协议缺少必要的兼容性干lj 可扩展 性。所以应把通信问题划分成多个层次,然后为每一层设计一个单独的m 议。 这样做使得每个层次上的协议的设计周期短且设计复杂度低。而协议划分的 一个= = ! = 要原则是确保目标系统正确性且效率高。为了提高效率,各个协议之 间应该明确各自的责任以免重复造成浪费。为了整体通信过程的实现更加有 效,协议之间需要协同合作,有共同的接口标准;同时这些协议的组合应该 能处理可能的硬件错误以及其它异常情况。为了保证这些协议工作的协同 性,应当将西议设计和开发成完整的、协作的协议系列( 即协议栈) ,而不是 孤立地开发每个协议。 所以,一般的分层原则为: 1 各层相对独立,某一层的内部变化不影响另一层; 2 层次数适中,不应过多,也不宜太少: 3 每层完成特定的功能,类似功能尽量集中在同一层; 4 低层对高层提供的服务与低层如何完成无关; 5 相邻层之间的接口有利于标准化工作。 计算机网络的各层及其协议的集合称为网络的体系结构。世界上著名的 网络体系结构有i b m 公司的s n a 、美国国防部的a r m 、d i g i t a l 公司的d n a 。 但这些阕络体系结构都是有局限性的,且是封闭的。在1 9 7 7 年,国际标准 化纰织( 1 s o ) 和国际电报电话咨询委员会( c c i t t ) 充分认识到制定。个开放 式的国际性标准的重要性,于是成赢了新的委员会s 1 6 ,专门研究异种计算 哈尔滨t 业大学工学硕上学位论文1 1 引言第1 章绪论1 1 1 o s l 七层互连参考模型简介 计算机网络是由各种计算机和各类终端通过通信线路连接起来的复合 系统。在这个复杂的系统中,由于硬件、连接方式及软件不同,网络中各结 点间的通信无法进行。由于各厂家使用的数据格式、交换方式不同,异种机 通信硬件的标准化非常困难。所以网络协议的设计者们不应当只规定个体 积庞人功能集成在一起的单一协议来为所有形式的通信规定完整的细节,那 样不仅使得协议设计复杂化,而且更使得协议缺少必要的兼容性干l ;拌柑斧 无i 疑是不陶螭酮嚣制线裂m ¥洋鞋楗。滗澄瘩喂一海臻濠雨籍 基叠函i 魏毛罄t 司必羲秘姒露塑羹醛娩并衍醵h 黪秭译;醺列烈蜘娘冀 一纠m 埘驰妊张靶珐鬻匿铲基塾曹孔丽翱科始。蘸址弼殂硼i 塌嘿罐疆淄 峰癌淄 熟了,人们利用互联网可以获得大量信息。而若将数量巨大的 嵌入式设备连接到互联网上,人们可以利用的瓦联网资源将得到极大的十 富。例如个人廿j 以在世界各地控制家中花圃里的喷水器给花浇水;或者奄看 饮水机是否有水以便回家的路上购买;而企业可以利用传感器网络来监控财 广:的位置从而降低防盗成本;或者在产品上装上传感器来及时返回产品信息 以便 x 哈尔滨t 业大学t 学硕十学位论文 机网络间的通信标准。这个标准就是著名的i s 0 7 4 9 8 国际标准,称为开放 系统互联七层参考模型,其英文缩写为0 s i ( o p e ns y s t e mi n t e r c o 衄e c t i o n ) , 我国的相应的国家标准为g b 9 3 8 7 。0 s i 参考模型把功能分成七个分立的层 次,包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。 面作为枣实上的i n t e r n e t 标准的t c p i p 协议栈则从更高效的角度出发,选 用了包括应用层、传输层、网络层和网络接口层的四层分层结构。| 3 | 1 4 l 图l 一1 表示了o s l 分层模跫和t c p i p 分层模型之间的对应关系。 + _ 第七层 一第一层 一第四层 一第一层 0 s i 七层釜考模型 t c p i p 四层参考模型 图卜1o s i 七层参考模型与t c p i p 四层参考模型对比 f i g 1 - 1o s is e v e nl a y e r sr e f c r e n c ec o 打a s t sw i 也 t c p i pf o u r1 a ”r sr e f c r c n c em o d e l 1 物理层物理层是0 s i 参考模型的最低层。物理层的主要功能足确 保在连接开放系统的传输媒体上正确传输各种比特流。 物理层协议是由机械特性、电气特性、功能特性、规程特性四个部分组 成,机械特性规则定了所用连接器形状和尺寸,电气特性规定了多大电压表 示“0 ”或“l ”,功能特性指各条信号线的用途。规程特性规定事件出现的 顺序。 在通信中,为了提高传输效率,采用多路复用技术,把不同来源的多个 信号复合在单一的信道中传输,到目的地再将信号分离。常用的多路复用技 术有三种:频分多路复用,时分多路复用和统计时分多路复用。频分多路复 用把物理信道总带宽分割成若干个与单个信号带宽相同或略宽的子信道,侮 个了信道传输一路信号,此法适用于传输模拟信号。时分多路复用把物理信 道按时间分成若干时问片为多个信号所使用,它适用于传输数字信号。统汁 堕尘堡三! ! 奎耋,! 兰堡:! 兰堡鎏兰 换。如代码转换、文本压缩、加密和解密等。把计算机内部的表示法转换为 9 四络的标准表示法,其i s 0 标准有:i s 0 8 8 2 2 8 8 2 3 、i s 0 8 6 4 9 8 6 5 0 、a n s 1 等。 应用层是o s i 的最高层,直接为用户提供服务,它包括面向用户服务 的各种软件。依照不同应用,应用层提供的协议有:文件传输协汉 l s 0 8 5 7 l 8 5 7 2 ,虚拟终端协议i s 0 9 0 4 0 9 0 4 l ,电子邮件协议i s 0 8 5 0 5 8 8 8 3 , 作业传输与操作协议1 s 0 8 8 3 1 8 8 3 2 ,公共应用协议l s 0 8 6 4 9 8 6 5 0 ,多媒体 协 义i s 0 8 6 1 3 等等。 高层协议具备了提供面向用户的服务,端到端的数据处理,处理信息均 为报文,标准新、尚有不完备之处等特点,还有待进一步的完善。 总而言之,开放系统互连( o s i ) 参考模型对人们研究网络起了重要的 指导意义。o s i 的分层思想,将复杂的通信问题分成若干独立易解决的子问 题,便丁 人们学习和研究,从而促进了网络的发展和应用。 o s i 参考模型为计算机网络提供了一个国际e 的网络标准,解决了异种 机问的通信问题。一个系统只要遵循所制定的国际标准,就能与世界上所有 遵守该标准的系统互连,这正是我们所希望的。 1 1 2 嵌入式网络的发展背景 嵌入式计算机的兴起是在六f4 年代末集成电路化的第三代计算机时期, 由f 在军事和空间领域的需求推动,计算机的硬、软件技术非常高的可靠性 的要求,而且在这一时期计算机技术取得重大发展。而嵌入式计算机的真正 发展是在微处理器问世之后。i n t e l8 0 8 0 8 0 8 5 、8 0 8 6 ,m o t o r 0 1 a 的6 8 0 0 、 6 8 0 0 0 ,z i l o g 的z 8 0 、z 8 0 0 0 等微处理器为核心构成的微型计算机o e m 嵌 入式计算机系统开始得到广泛应用。此时,为了灵括兼容,形成r 系列化、 模块化的单板机。人们开始不必从选择芯片开始来设计台专用的嵌入式计 算机了,只要选择各功能模块,就叫以组建一台嵌入式的系统。随着微电子 工艺水平的提高,集成电路制造商开始把嵌入式应用所需要的微处理器、i 0 接口、d 、d a 转换、串行接口以及r a m 、r o m 通通集成到一个v l s l 中,制造出面向i 0 设计的微控制器,就是我们俗称的单片机。9 0 年代,嵌 入式应用进一步加速发展。面向实时信号处理算法的d s p 向高速、高精度、 低功耗发展。j 【叫 现在,嵌入式系统的广泛应用已经渗入到我们日常生活的各个方面。在 皇查鎏兰些查兰兰耋堡兰堡篁兰 成,有关元器件商品化程度高,造价较低。 6 开放性:嵌入式嘲络必需具有良好的开放性,一一方面能通过企业 i n f r a n e t 连接到i n t r a n e tl i ,实现企业生产管理的管控一体化;另一方面应 具有公开透明的开发界面,资料完备,实现系统硬件、软件的自主开发和集 成。1 此外,嵌入式网络系统必须配置灵活、维护简便。 由于以上的这些特殊应用,i m e m 吼l ! 二所使用的t c 事 莹明摊铭朔翳拦靴 赫明1 型獭滔凄港崩慨撕峪翅滢? 亘i j 钊;鲤州磁蛙冀萄拭而誊秭。霸羹髦蠢! i 薹 剧掣拱基垡华尊雾零田爸用吲叁f 端签联礁强哩暂辱挥擐强鞘嫦。裂雪息 糯节真剑瞽翳上镀铬举着i ! i 黪g 妇鼻堑雌靼鲫錾;s 卜l i ; 全局性的拥篡羹鳞避那函驯毋重割刨嘲喾: i 跹酣甄黼址姗馥均捐蛇蝎蕴媸: 酗受神 文分组都含有控制信息,目 的地址和分组编号,各报文分组可在不同的路径传输,最后再重新组成报文。 此种数据交换方式交换延时小,町靠性高,速度快,但技术复杂。 4 传输层o s i 参考模型中的低三层是通信子网的功能,提供面向通信 的服务,高三层是提供, = | 户功能,提供面向信息处理的服务。而传输层成为 面向通信服务与面向信息服务的桥梁。这是非常重要的一层。其主要功能是 为主机问的通信提供透明的数据传输通路。基本传输单位是报文。 传输层将源主机与目的主机以端对端的方式简单连接起来,因此传输层 曲议通常叫做端到端协议,传输层协议i s 0 8 0 7 2 8 0 7 3 提供a 、b 、c 三种类 型的服务。在大、中型网络中,难以实现无差错的a 、b 型服务,只提供c 型服务。i s 0 8 0 7 2 ,8 07 3 定义了五种类型协议。o 类协议t p o 是最简单的,只 定义丫连接功能。1 类防议t pl 较为简单,定义了基本差错恢复功能。2 类 协议t p 2 具有复用功能。3 类协议t p 3 包含t p l 和t p 2 功能,第4 类协议 最复杂,具有差错控制与恢复、复用功能。可见第4 类协议功能最齐全。 5 高三层高三层包括会话层、表示层和应用层。高层卧议的共同特点 为:( 1 ) 处理的信息都是报文。报文是用户间交换的完整的信息单位。( 2 ) 提 供面向用户的服务。( 3 ) 端到端的数据处理,而不考虑信息的传输及怎样传 输的问题。 会话层是用户连接到网络的接口,为不同系统中的两个用户进程问建立 会话连接,进行会话管理,并将分组按顺序正确组成报文完成数据交换。相 竺查鎏! :些盔:鎏士兰皇兰兰 关上。所以既保证了记忆体和能源的消耗符合嵌入式网络的要求,又实现了 功能的完整性。而对于网绍结构如图1 2 所不的嵌入式嗍络,其内部口点足 刘等的,节点之间的通信原则上说是不需要网关的,每两个节点之间叫以直 接通信。但如果嵌入式节点要与嵌入式嘲络外部的i n t e r n e t 进行通信的话就 要通过网关进行必要的协议转换。 综上所述,我们的简化t c p 1 p 协议栈不仅简化ri p 、t c p 、u d p = 个 协议,更在其基础上简化了相应的应片j 层协议,为嵌入式设备币i 网络大大节 省r 资源,延良了寿命,达到了很高的性价比。 1 _ 3 论文的主要工作 本文的主要内容分为四个部分:网络层、传输层、应用层和州关的结构。 在第一章中我划网络层协议做个初步的介绍,并简要介绍对网络层进行优 化的原因。第一二章是对传输层的两个协议一一i m p 和t c p 的介绍,并给出简 化模型和具体实现。其中由于t c p 是面向连接的,所以将作为重点内容进行 介绍。第四章足应用层的协议介绍,主要包括s l p ,h t t p 和x m l 。其中以s l p 和h 下m p 为重点。第五章足本文的另一部分对应网关的结构设计,其中 包括了对两种不同两关结构的分别介绍。 包括了对悄种不同两关结构的分别介缁。 i 喻尔滨丁业大学丁学硕士学位论文 第2 章网络层协议的简化 2 1 网络层功能简介 网络层是o s i 模型中的第三层。网络层提供路由和寻址的功能,使两终 端系统能够互连,并且具有一定的拥塞控制和流量控制的能力。这一层本身 没有任何错误检测和修正机制,因此,网络层必须依赖于端端之间的由d l l 提供的可靠传输服务。网络层用于本地l a n 网段之上的计算机系统建立通 信,它之所以可以这样做,是冈为它有自己的路由地址结构,这种结构与第 二层机器地址是分开的、独立的。这种协议称为路由或可路由协议。路由协 议包括i p 、n o v e l l 公司的l p x 以及a p p l e t a lk 协议。t c p i p 协议体系中的 网络层功能由l p 协议规定和实现,故又称i p 层。【1 2 i p 报文头中含有使一些熏要网络功能成为可能的所有必要信息,包括: 寻址和路由,分段利重组以及传输过程中数据损坏检测和更正。下面分别介 绍: 1 寻址和路由i p 最明显的一个功能是能使报文送到特定目的地。连 接源和目的地网络中的路由器和交换机,使用目的i p 地址确定经过网络的 最优路径。相似的,i p 报文也包括源机器地址。源地址的出现是因为目的 机可能会和源机通信。 2 分段和重组有时应用数据的一段不能完全包括在一个l p 报文巾, 它们必须分段成两个或更多的报文。当分段发生时,i p 必须能重组报文( 小 管有多少个报文要到达其目的地) 。重要的一点是源和目的机必须理解,遵 守完全相同的分段数据过程。否则,重组为了报文转发而分成多个段的过程 将是不可能的。数据恢复到源机器 :的相同格式时,传输数据就被成功重组 了。i p 头中的分段标志标识分段的数据片。这里要注意,重组分段的数据 利乱序帧经重排序到达的数据是非常不同的。重新排序是t c p 的功能。 3 损坏报文补偿i p 的最后个主要功能是检测和补偿在传输过程中 遭到破坏或丢失的报文。有讷:多方式可以让一个报文被破坏:无线电频率卜 扰( r f t ) 和电磁干扰( e m i ) 是两种比较显然的干扰因素。报文以与源机创 建时不同的位模式到达目的机时,就认为报文被破坏了。有许多原凶可造成 哈尔滨工业大学工学硕士学位论文 撤文丢失。网络拥塞会导致报文t t l 超时,检测到报文t t l 超时的路由器会 简单地把报文丢弃。另一种情况是,报文遭到e m i 或r f i 干扰,可能使头信 息变得没有意义。在这种情况卜| ,报文也将被丢弃。当报文不町能转发或不 可用时,路由器必须通知源机。i p 头中包含源机器的t p 地址使通知源机器 成为可能。虽然i p 不包括熏传机制,但通知源主机可能会导致重传,凶此 通知源主机起着重要作用。 尽管有这些功能,但必须承认t p 仅是个网际协议。为了使其发挥作 用,必须和传输协议( o s i 中第四层) 及数据链路层协汉( o s i 参考模型中第 二层) 一起工作。虽然这里不讨论数据链路层结构,但在下一章会讨沦两个 依赖于i p 互连的传输协议。它们是t c p 和u d p 。【2 ”1 2 2 网络层协议简化 在现阶段i n t e r n e t 上普遍采用的是i p v 4 协议,虽然i p v 6 被认为是 i nl e r n e t 的发展方向,但是在段时间内还是不能代替i p v 4 的。而上土l p v 6 的报头长度比i p v 4 的要更长,更不适合在嵌入式网络中传输,所以我采用 i p v 4 的报头并对之缩减。在r f c 7 9 l 中规定的i p v 4 的报头结构如图2 1 所 示。 3 2 3 4 j 其中各个字段的意义如下: 版本一一i p 头中前四位标识,i p 的操作版本,比如版本4 或版本6 。 i n t e r n e t 头长度一一头中f 面4 位包括头长度,以3 2 位为单位表示。 服务类型一一卜面的一个字节包括一系列标志,这些标志能保证优先 级( 相对于其他i p 报文的绝对优先级) 、延时、吞吐量以及报文数的可靠性 参数。优先级标志3 位长,而延时,吞吐量和可靠性标志每个l 位长。剩下 的两位保留为将来之用。 总长度一一报文总长度, 1 6 位域,长度以字节为单位。有效值范围 最大至6 5 5 3 5 个字节。 标识一一每个i p 报文被赋予一个唯一的1 6 位标识,用于标识数据报 的分段。 分段标志一一下一个域包括3 个1 位标志,标识报文是否允许被分段 和是否使刚了这些域。第+ 位保留并总设为o ,第二位标识报文能否被分段。 如果这位等于0 ,说明内容可以被分段。如果等于l ,它就不能被分段。第 三位只有存第二位为o 时才有意义。如果这位等于0 ( 数据可分成多个报 喻尔滨上业大学工学硕十学位论文 文) ,这一位标识此报文是否是这系列分段的最后一个,或者接收j 衄用程 序是否还希望有更多f l 句段。o 指示报文是最后一个。 o120 o 1 2345 6 78 90 12 345 6 78 g0 12 345 6 7890 1 + 一p 一+ 一+ 一十一+ 一+ 一+ 一卜- + 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一十一+ + 一+ + 一+ 一+ 一+ 一十一+ i 版本号l 头长度l 服务类型总长度 - 卜_ - 一+ 一- 一- 一- h - 一- p 一 一p 一+ 一- f 一- 卜_ + _ 一+ _ - p + i - f 一p 一_ 一+ _ f 一+ - - 一卜- + _ h 一+ 一- 卜_ + - + 标识 l 标志1分段偏移 + 一+ 一+ + 一十一+ 一+ 一+ 一十一+ 一+ 一十一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 生存时间协议报头校验和 + 一p 一,p 一- 卜_ _ 一卜_ 一- 卜_ 1 一卜_ 一+ 一 一- h 一 一卜_ + _ h 一 一 一h 一+ 一- 卜_ + 一_ 一1 一 一+ 一+ _ p 一 一+ _ + 源地址 + 一十一十一+ 一+ 一十一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十+ 目的地址 一 一十一卜_ p 一卜+ 一+ _ 一+ _ + 一- 卜 一+ 一 一h 一 一h 一 一- 卜h 一- 卜h 一一 一卜卜- 一- h 一- 卜r 一 一+ 选项填充 卜_ + _ 1 一_ 一1 - + 一1 - + - 1 一+ _ 一1 一_ - _ 一1 - + _ + _ _ 一1 一+ _ + _ + - _ 一+ _ _ 一+ - 1 - + - + _ + 1 一+ _ + 图2 一li p v 4 的报头结构 f i g2 1h e a d e rs t m c t u r eo f i p v 4 分段偏移一一8 位的域指出分段报文相对于整个报文开始处的偏移。 这个值以6 4 位为单位递增。 生存时间( t t l ) 一一i p 报文不允许在广域网中永久漫游。它必须限 制在一定的t t l 内。8 位的t t i 在经过每一跳时加1 。在到达它的最大限制 之后,报文就被认为是不可转发的。之后产生一个i c m p 报文并发回源机器, 不u j 转发的报文被丢弃。 协议一一8 位域指示l p 头之后的协议,如v i n e s 、t c p 、u d p 等。 校验和一一校验和是1 6 位的错误检测域。目的机、网络中的每个网 关要重新计算报文头的校验和,就如同源机器所做的一样。如果数据没有被 改动过,两个计算结果应该是一样的。这个域也通知目的主机所接收的数掘 的帚。 源i p 地址源计算机的i p 地址。 目的i p 地址一目的计算机的i p 地址。 填充一一为了保证i p 头长度是3 2 位的整数倍,要填充额外的o 。 哈尔滨t 业大学t 学硕士学位论文 从上面对各个域代表的意义的解释来看,其中的头长度是为了选项而设 计,而在实际应用中,嵌入式网络用到i p 协议中的可选项的概率非常的小, 所以我们完全有理由把报头长度同定,简化计算。对于服务类型宁段,由于 嵌入式网络的应用中重发应用比较少,而延时、吞吐最相对固定,所以服务 类型宁段也没有太大的用处。而标识、分段偏移都是为了解决传输内容过多 而定义的,在嵌入式设备中是用不到的。所以,头长度、服务类型、标识、 分段偏移这几个字段在嵌入式网络里没有很大的实际意义,我们完全可以缩 减掉。而对其它域来讲,过长的长度将是对嵌入式设备和网络资源的巨大浪 费。所以对于可以缩减的域,我都进行了相应的缩减,我们最后缩减出来的 帧结构如图2 2 所示。由于刚才已经介绍过各个字段的意义,这罩就不再做 更多介绍。 1 5 1 7 】 0123456789012345 1 一一+ 一一- + 一一卜一- 卜_ 一- 卜一- + 一一- 卜- 一- 卜_ 一- + 一一- + 一一- 卜_ 一- 一一+ 一十一一+ 一一+ 版率号l 生存时间l总长度 源地址 目的地址 + _ 一+ 校验和 一一一一一一一一一一一- - 一一一一一一一一一一+ 胁议l标志位填充 数据 ( nb y t e s ) 一 图2 2 缩减后的i p 报头格式 f i 9 2 - 2a b b r e v i a t e df o r m a to fi ph e a d e r 或者,为了更好的缩减,可以把跳数和填充再简化掉,报头格式变为图 23 的情况。 哈尔滨t 业大学t 学硕士学位论文 o12045 678901 2045 + 一一- 卜_ 一卜一- 卜一- 卜一卜一- 卜一- 卜_ 一- 卜一- 卜一- 卜_ 一1 一一- 卜_ 一- 卜_ 一- 卜一- 卜一+ 版率号i协议总长度 源地址目的地址 - 一一一一一一一一一一- p 一一一一一一一一一一一一+ 校验和 2 3 伪码实现 数据 ( nb y t e s ) 图23 缩减后的报头格式i i f i g 2 3a b b r e v i a t e df b r m a t o fi ph e a d e l 由于在嵌入式设备及网络里需要作的计算和传输的量很少,所以在实现 的过程中将第三层网络层和其上的传输层一起实现将会比较节省编码空间。 所以对于编码实现,其结构如图2 4 所示。 图24 编码实现层次结构 f 培2 - 4e n c o d et or e a l i z e st h eh i e r a r c h i c a ls t r i l c t u r e 网络层和传输层实现分别给卜层和下层提供了一些接口,这些接门我们 哈尔滨工业大学丁学硕+ 学位论文 细介绍。具体的介绍参见下一章。 当然,除了这些接口之外,a r p 协议也是必要的。因为在以太网中传 输的数据包是以太包,而以太包的寻址是依据其首部的物理地址( m a c 地 址) 。仅仅知道某主机的逻辑地址( i p 地址) 并不能让内核发送一帧数据给 此主机,内核必须知道日的主机的物理地址才能发送数据。a r p 协议的作 用就是在于把逻辑地址变换成物理地址,也既是把l p 地址变换成以太地址。 每一个节点都有一个a r p 高速缓存,此缓存中记录了最近一段时间内 其它i p 地址与其m a c 地址的对应关系。如果本机想与某台主机通信,则 首先在a r p 高速缓存中查找此台主机的i p 和m a c 信息,如果存在,则直 接利用此m a c 地址构造以太包;如果不存在,则向本网络上每个主机广 播一个a r p 请求包,其意义是“如果你有此i p 地址,请告诉我你的m a c 地址”,目的主机收到此请求包后,发送个a r p 响应包,本机收到此响应 包后,把相关信息记录在a r p 高速缓存中,以下的步骤同卜。 在以太网( e t h e r n e t ) 中,一个网络设备要和另一个网络设备进行直接 通信,除了知道目标设备的网络层逻辑地址( 如i p 地址) 外,还要知道目 标设备的第二层物理地址( m a c 地址) 。a r p 协议的基本功能就是通过目 的设备的i p 地址,查询目标设备的m a c 地址,以保证通信的顺利进行。 在这旱,由于对i p v 4 协议的修改,a r p 协议也需要作相应的修改。为了节 约系统的资源,我们在嵌入式网络中仅仅对一+ 张非常简单的表进行维护。这 张表有且仅有5 个数据项。 当i p 包发往以太网时,必须要查询这张表,以找到该i p 包的目的i p 地址所对应的下一跳的目的m a c 地址。当表中没有给定的【p 地址,就发 送个a r p 请求包;这个请求包是个广播包,含有包中给定i p 地址的主 机会发送个a r p 虑答。当源主机接受到这个应答包,它就会更新这张表。 更新的时候根据每个数据项中的优先级值来淘汰不常引用的项,如果优先级 值相同,就采取随机淘汰的方法。其中的数据项定义为: s t m c ta r p e n t r y u n s i g n e ds h o ni p a d d ; u n s i g n e di n tm a c a d d ; u n s i g n e ds h o np r i o r ; 几项相关操作的伪代码如下: a r ps e a r c h ( ) 查询表单 2 奎鎏;:些盔兰:;兰窒兰兰堡丝兰 f o r ( 仁1 ;i = 5 ;i + + ) 鱼询i p 地址与第i 项表是否符合; i f ( 在表中找到i p 地址) 返同m a c 地址; e l s e 发送a r p 请求;) a r p u p d a t e ( ) 更新袁单 f o r ( i _ 1 ;i = 5 ;i + + ) ( 查询最小优先级:) i f ( 最小优先级唯一) 替换最小优先级项; 随即选出一项进行更新) 2 4 本章小结 在简化r 之后,我们可以从结构上清楚的看到,在i p v 4 巾,i p 报头的 固定长度已经达到2 6 字节,这还卅;算当i p 报头含扩展报头的情形,如果包 含扩展报头的话将会更长。而从我们缩减之后的情形来看,整个i p 报头仅 仅有5 字节,图2 5 是缩减之后的情况和缩减之前的情况的比较。 哈尔滨t 业大学工学硕士学位论文 3 1 传输层功能简介 第3 章传输层 传输层也称为运输层,是两台通信终端经过网络进行数据通信时的。个 端到端的层次,具有缓冲作用。它是源端到目的端对数据传送进彳:j :控制从低 到高的最后一层。传输层还l ;j 丁进行复用,即在一个网络连接上创建多个逻辑 连接。此外传输层还要具备差错恢复,流量控制等功能,从而为应用层提供 可靠的端到端连接。传输层面对的数据对象不是网络地址和主机地址,而是 应用层的界面端口。 传输层的最终目的是为应用层提供可靠的、无误的数据传输。佳输层的 服务一般要经历传输连接建立阶段、数据传送阶段、传输连接释放阶段,经 历这三个阶段才算完成个完整的服务过程。 在t c p i p 协议栈里传输层由两个协议组成:t c p 和u d p 。其中t c p 提供可靠的面向连接的传输,u d p 提供不可靠的无连接的传输。 3 1 1t c p 简介 t c p 在通信会话中提供几个重要作用。町以认为它是多个应用和网络之 间的连络。其功能包括: 多路复用多种应用数据。 测试所接收数据的完整性。 顺序化乱序接收的数据。 对成功收到数据作出应答。 速率一适应的流控( 通过t c p 窗口大小、。 定时功能。 重传在传输过程中损坏或丢失的数据。 1 多路复用数据流t c p 是用户应用与许多网络通信协议之问的接l j 。 冈为,实际 哈尔滨t 业大学工学硕士学位论文 3 1 传输层功能简介 第3 章传输层 传输层也称为运输层,是两台通信终端经过网络进行数据通信时的。个 端到端的层次,具有缓冲作用。它是源端到目的端对数据传送进彳:j :控制从低 到高的最后一层。传输层还l ;j 丁进行复用,即在一个网络连接上创建多个逻辑 连接。此外传输层还要具备差错恢复,流量控制等功能,从而为应用层提供 可靠的端到端连接。传输层面对的数据对象不是网络地址和主机地址,而是 应用层的界面端口。 传输层的最终目的是为应用层提供可靠的、无误的数据传输。佳输层的 服务一般要经历传输连接建立阶段、数据传送阶段、传输连接释放阶段,经 历这三个阶段才算完成个完整的服务过程。 在t c p i p 协议栈里传输层由两个协议组成:t c p 和u d p 。其中t c p 提供可靠的面向连接的传输,u d p 提供不可靠的无连接的传输。 3 1 1t c p 简介 t c p 在通信会话中提供几个重要作用。町以认为它是多个应用和网络之 间的连络。其功能包括: 多路复用多种应用数据。 测试所接收数据的完整性。 顺序化乱序接收的数据。 对成功收到数据作出应答。 速率一适应的流控( 通过t c p 窗口大小、。 定时功能。 重传在传输过程中损坏或丢失的数据。 1 多路复用数据流t c p 是用户应用与许多网络通信协议之问的接l j 。 冈为,实际上没有人听说过t c p 只被限制于一个应用,所以t c p 必须能同 时接收多个应用数据,t c p 把它们打包到数据段中,之后传给i p 。相似的, 哈尔滨:业人学工学硕十学位论文 源机器会使用一个坚持( p e r s i s t ) 计时器周期性地奋询目的主机的最大窗口尺 寸。在理想世界中,从彳i 需要p e r s i s t 计时器,因为每个应答会包含窗口尺 寸。然而,有时网络确实会丢失数据。如果1 台机器发生了缓冲e 溢问题, 并发矧个o 窗f 1 尺寸的应答,传输节点会中l 匕发送。但是,如果后序非o 窗口尺寸的应答丢失,发送会话会处于危险境地。p e r s i s t 计时器通过周期性 的询问窗口大小来保证这种情况不会发生。如果查询仍不能得到窗口大小, t c p 协议会重新设置连接。另一个计时机制称为最大段生存时间( m a x i m u m s e g m e n t “f e t i m e ,m s l ) 。m s l 使t c p 机器识别已经在9 c 】9 络中传输了很长 时目的因此己被替换了的数据报,接收到m s l 中止的数据报被简单抛弃。 6 应答接收如果a c k 被设置,日的t c p 机器必须要对接收到的特定 数据作卅虑答。考虑到t c p 几乎总是用于可靠模式,因此a c k 不被设置的 情况很少见。没被应答的数据段被认为在传输过程中已丢失,并被重传。重 传必须在源和目的机器之间配合进行。 3 1 2u d p 简介 u d p 和t c p 的主要区别是两者在如何实现信息的可靠传递方面不同。 u d p 被设计成一个有效的和最小的传输协议,被认为是提供不可靠服务。 这 点直接反映在其头结构中。它只包括用于转发数据报至合适应用( 端u 号) 的足够信息,并且执行。定的错误检查。u d p 不提供任何t c p 支持的更 先进的功能。没有计时机制、流控或拥塞管理机制、应答、紧急数据的加速 传送,或其他任何功能。u d p 使用尽力方式传送数据报。由于某种原因传 输失败,数据报被丢弃并且不试图作重传。u d p 和t c p 的另外一个不同之 处在于如何接收突发性的多个数据报。不同于t c p ,u d p 并不能确保数据 的发送和接收顺序,例如,一个位于客户端的应用程序向服务器顺序发出两 个数据报:“1 1 l ”和“2 2 2 ”,u d p 协议有可能按照“2 2 2 ”和“1 1 1 ”的 顺序将所接收的数据提交到服务端的应用。不过这里只是说一种可能性。事 实上,u d p 协议的这种乱序性基本上很少出现,通常只会在网络非常拥挤 的情况卜才有可能发生,在嵌入式网络中就更没有太大关系,由于传输的数 据量很少,而且传输距离短,所以基本不会存在顺序错误的情况。 1 8 阻o 】 3 1 3 总结 t c p 和u d p 是迥异的传输层协议,被设计为做不同的事情。_ - 者的共 哈尔滨t 业大学t 学硕士学位论文 性是都使用i p 作为其网络层协议。t c p 和u d p 之间的丰要差别在丁可靠性。 t c p 是高度可靠的,而u d p 是一个简单的、尽力数据报转发协议。这个基 本的差别暗示t c p 更复杂,需要大量功能开销,然而u d p 是简单和高效的。 u d p 经常被认为是一i 可靠的,因为它不具有任何t c p 的町靠性机制。u d p 不可靠,是冈为其不具有t c p 的接收应答机制、乱序到达数据的顺序化, 甚至不具有对接收到损坏报文的重传机制。也就是说u d p 不保证数据不受 损害地到达目的端。 凶此,u d p 最适合于小的发送( 也就是单独的报文) ,对于数据分成多个 报文且需要对数据流进行调节的情况,t c p 更适合。有必要对u d p 的不可 靠性和u d p 的优点作一折衷。u d p 是小的、节约资源的传输层协议。它的 操作执行比t c p 快得多。因此,它适合于不断出现的、和时间相关的应用, 如i p 上传输语音和实时的可视会议。u d p 也能很好地适用于其他的网络功 能,如在路由器之间传输路由表更新,或传输网络管理监控数据。这些功 能,虽然对网络的可操作性很关键,但是,如果使用可靠的t c p 传输机制 会对网络造成负面影响。不可靠的协议并不意味着u d p 是无用协议,它只 意味着设计用于支持不同的应用类型。 3 2 传输层协议简化 3 2 1t c p 简化 由于我们的简化是根据t c p 协议进行的,所以这里先给出t c p 西议的 报头格式,如图3 1 所示。 和t c p 样,简化的t c p 协议是为了在节点间实现高可靠性的包交换 传输而定义的协议,是面向连接的端到端的可靠协议,它对下层服务没有多 少要求,假定下层只能提供不可靠的无连接的数据报服务,它可以在多种硬 件构成的网络上运行,无论是无线的传感器节点,还是有线的嵌入式节点都 可以部署。 t c p 的上面就是应用程序。对于上层的应用程序来说,简化的t c p 协 议应该能够异步传送数据。为了在并不可靠的网络 二实现面向连接的可靠的 传送数据,简化的t c p 协议必须解决可靠性的问题,保证上层应用程序的 使用。此外,简化的t c p 协议必须能够为上层应用程序提供多个接门,同 哈尔滨工业大学工学硕上学位论文 据,这个责任由接收办负责。 o1204567 8g0120 45 - + 一一- 卜_ 一十一- + 一一- 一一 一一- p 一- 卜_ 一卜_ 一- 卜- 一- 卜- 一1 一一 一一- 卜_ 一+ 一- + 一一+ 标志总长度 总长度( 续)源端口 目的端口序号l - p 一一一一一一一一一一一一一一一一一一+ 序号( 续)确 序号 - p 一一一一一一一一一+ 一一一一一一一一一+ 确认号( 续) 数据 ( nb y t e s ) 幽3 2 简化后的t c p 西议的帧结构 f i g 3 2s i m p l i f i e df m m es t r u c t u r eo f t c pp r o t o c o l 种简化的t c p 协议的帧结构如图3 2 所示,其中包括以下几个宁段: 标志:标志字段,4 比特,表示传输过程中需要的1 些标志。其中,a c k 是确认序号比特,只有当其值为1 时确认字段有效;r s t 足重置比特,当其 值为1 时表示出现严重差错,必须先释放连接然后再重新建立通信连接;f i n 是结束比特,当其值为l 时表示所有数据已经发送完,并释放连接。 总长度:长度字段,1 6 比特,表示熬个简化的t c p 协议帧的长度。 源端口:源端口字段,8 比特,表示源端口的端口号。 目的端口:目的端口字段,8 比特,表示目的端【_ :i 的端口号。 序号:序号字段,1 6 比特,表示所发报文的序号。 确认序号:确认序号字段,1 6 比特,表示接收方期望接收的下一分组 的序号。 我们可以看到用1 6 位的序号和确认字段可以具有基本的重传能力,同 时也包括其它的基本字段,像长度和端口号字段。但是由于嵌入式网络的特 殊性,我们彳i 提供客端请求重传功能,也就是说,服务器在发送h 报文之 后,等待一段时间如果没有收到确认信息就进行重传。而客户机即使检测到 接收的报文是错误的也不要求重传,而是简单的丢弃,等服务器端判断出报 文没有收到之后再进行重传。 同时,拥塞控制在一个单独的子网中是不需要的,所以拥塞控制的功能 就没有包括进来。流量控制可以看作是用一个已经预先规定好的固定的窗r 进行控制的。 哈尔滨工、地人学工学硕士学位论文 0123456789o1234 5 - + 一一卜_ 一- 一一- f 一+ 一一+ 一一- + 一一- 卜一- + 一一卜一- 卜一- 卜_ 一- 卜- 一- 卜一- + 一一。卜一+ 标志窗口总长度 总长度( 续)i源端口 一 目的端口序号 序号( 续)确认序号 确认号( 续) 数据 ( nb y t e s ) 图3 3 简化后的t c p 协议的帧结构i i f i g ,3 - 3s j m p h 行e df r a m es t n l c t u r eo ft c pp r o t o c o li l 012345678g0l2045 - 卜_ 一卜一- 卜一- 卜一卜一+ 一一- + 一一卜一 一一+ 一一一一- 卜一- 卜_ 一- + 一一- 卜_ 一- + 一一+ 标志 窗口 总长度 总长度( 续)源端口 一一一一一一一一一- p 一一一一一一+ 目的端口序号 序号( 续)相对确认序号 一一一一一一一一一+ 一一一一一一一一一一+ 数据 ( nb y t e s ) 一一j - 图3 4 简化后的t c p 西议的帧结构i i i f i g 3 4s i m p l i f i e df r a m es t r u c t u r eo ft c pp r o t o c 0 1i i i 我们提出另外两种简化的t c p 协议的帧结构,如图3 3 和3 4 所示。图 3 3 与前一种结构的区别就在前八位上。其中标志字段包括a ( 确认标志, 只有此位为“1 ”时确认字段有效) 、r ( 出现严重错误,置“1 ”重置连接) 和f ( 结束标志,置“1 ”表示连接结束) 来保持连接和终止连接。然后把 标志字段缩短,在标志字段所在的位置的后半个字节加上窗口字段,就可以 进行简单的流量控制功能,但依然不包括拥塞控制,也就是说发送窗l j 就等 于接收方的根据其接收能力确定的通知窗口值,发送端将不发送拥塞窗i1 值。由于窗口的改变是简单而低能量消耗的,所以这个流量控制功能相划: 成本来说是划算的。 哈尔滨工业大学工学硕上学位论文 在第三种帧结构中,为了进一步缩减报头的长度,我们把1 6 位的确认 宁段缩减到8 位的相对确认字段。所以这个字段的值将不是接收方所期望的 下一个序号字段的值,而是期望接收的下一个字段与上一个接收成功的字段 的偏移量。因此报头的总长度由9 个字节减少到8 个字节。 3 2 2 u d p 简化 简化的u d p 协议是种无连接的协议,无连接主要是和简化的t c p 协 议相比较的。我们知道当利用简化的t c p 协议传送数据的时候,首先必须 先建立连接( 也就是所谓的握手) 才可以传输数据。而当计算机利用简化的 u d p 协议进行数据传输的时候,发送方只需要知道对方的m a c 地址和端口 号就可以发送数据,而并不需要进行连接。当然如果你非要进行连接,也是 可以实现的,但这是种画蛇添足的做法,不仅丢失了简化的u d p 协议的无 连接传送数据的特点和优点,而还给程序运行带来了不安定的因素。所以 这种方法我们基本不采用。【2 8 】【4 0 01 20 45 67 89 01 2 0d5 卜一- 卜_ 一一一+ 一一- 一一+ 一一- + 一一- 卜- 一卜一 一一- f 一一卜一p 一一- 卜_ 一 一一- + 一一+ 标志总长度 + 一一一一一一- 一一一- 一一一+ 一一一一一一一一一一一+ 总长度( 续)源端口 1 一一一一一一一一一一一一一一一一一一一 一一一一一一一一一一一一一一一一一一一一一一一+ 目的端口 数据 ( nb ”e s ) 一一一一一一一一一一一一一一一一一一一一一一一一一+ 图3 5 简化的u d p 协议的帧结构 f i g 3 5s i m p l i f i e df r a m es t r u c t u r eo f u d pp r o t o c 0 1 由于简化的u d p 协议是无连接的,所以就有可能造成数据的丢失,有 时候甚至足大量的。但是我们也不能因为这个缺点就全面否定简化的u d p 协议,这是因为虽然利用简化的u d p 协议来传送安全性要求高的数据是不 适合的,但对于那些不重要的数据,或者即使丢失若干数据包也彳i 影响整体 性的数据,如实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程消防演练计划方案(3篇)
- 2025年拥有履行合同所需的关键设备
- 工程信息收集处理方案(3篇)
- 城市照明节能改造2025年技术升级与创新研究报告
- 城市照明系统智能化升级对2025年城市夜生活的影响评估
- 2025澳大利亚购房签合同需留意的关键细节
- 红十字应急救护培训测试题及答案
- 2025 租赁合同范本标准简易租赁合同范本
- 2025年急救安全试题及答案
- 2025年消防防晒安全测试题及答案
- 中小学英语课件-Go-away-Mr-Wolf
- 二年级语文上册《有趣的动物》课件PPT
- 不干胶贴标机设计学士学位论文
- 《劳动合同书》-河南省人力资源和社会保障厅劳动关系处监制(2016.11.15)
- 钢轨检测报告
- 战略管理:概念与案例
- GB/T 3505-2009产品几何技术规范(GPS)表面结构轮廓法术语、定义及表面结构参数
- GB/T 11186.1-1989涂膜颜色的测量方法第一部分:原理
- 09S304 卫生设备安装图集
- 功能材料概论-课件
- 微纳加工课件
评论
0/150
提交评论