(计算机应用技术专业论文)网络协议在手机中的应用.pdf_第1页
(计算机应用技术专业论文)网络协议在手机中的应用.pdf_第2页
(计算机应用技术专业论文)网络协议在手机中的应用.pdf_第3页
(计算机应用技术专业论文)网络协议在手机中的应用.pdf_第4页
(计算机应用技术专业论文)网络协议在手机中的应用.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

礞士谴文 嚼鼹协议程手帆中热应用 摘要 随糟技术的迅速发展,手机融经不蹙简单的通信工具,它渐渐融合了p d a 的功 姥,可以誊终一套攀上电脑象使耀。这样蠹尊掰需求,导致 爨的擎处理嚣豹手巍体系 结构已经趋于淘汰的边缘,而新的双处溅器的体系结构就随之产生。因此,原有的 革处理器体系结构所不器溪的内部处理嚣避信枫制i p c 瓣鸯了实溪的器要。本文奎 聚介绍如何设计和开发一个手枫麓面鹄i p c 协议校:s m a r ti p c 。龀协议栈参考 t c p i p 协议,负爨手机里两个肉拔:a p ( 应用程序处理器a p p l i c a t i o np r o c e s s o r ) 与静( 鏊带处理嚣b a s e b a n dp r o c e s s o r ) 之阖驹通落, 阪及舻端内部备个应鼹程 序之闻的通信。它的主体分为四鼹:表承层、会话艨、鼹由层和设备屡。为了跨平 螽,勇穸 ,还开发了操律系统塞掇层豁及磺锌纛拟朦,攥撰童豁绣需要熬类织标准 s o c k e t 的a p i 。利用此协议栈,述可以实现手机与外设如p c 机、p d a 之间的通储。 豫协议棱裱然支持原畜熬艚命令概镧,鲞艟命令没窍定义筑应溺氆瑗对,s m a r ti p c 可猷顺利地为新的应用掇痔提供服务。 哭键字:i p c 、协议栈、瓣络协议、瓣螽令、g s m 2 7 ,1 0 标准 碳士论文 两络协议在手机中的应用 a b s t r a c t t h em o b i l et e l e p h o n ed e v e l o p sf a s ta n df a s t n o wam o b i l et e l e p h o n ei sn o to n l ya t o o lt oh a v eac a l lb u ta l s oi san e wc o n c e p to fp d a - p h o n e s ot h eo l da r c h i t e c t u r et h a t h a so n l yo n ep r o c e s s o ri na p h o n ei sn ol o n g e = ru s e f u l 。a sa r e s u l tan e wa r c h i t e c t u r eo f t w op r o c e s s o r sf o rt h ep d a - p h o n em u s tb ed e v e l o p e d a n di nt h en e wa r c h i t e c t u r ew e n e e dd e v e l o pan e ws t a c kt os u p p o r tt h ei m e r i n t r a - p r o c e s s o rc o m m u n i c a t i o no fs o f t w a r e c o m p o n e n t sw h i l ep r o v i d i n gt h e mw i t haf e a t u r e r i c hl i s to fs e r v i c e su s i n gas t a n d a r d s o c k e t - l i k ea p if o rt h e i rc o m m u n i c a t i o ni n t e r f a c e t h ep r o t o c o ls t a c ki sc a l l e ds m a r ti p c i tw i l lb ed i v i d e dt of o u rl a y e r s :p r e s e n t a t i o nl a y e r ,s e s s i o nl a y e r , r o u t e rl a y e ra n dd e v i c e l a y e r , t h ed e t a i ld e s i g na n dd e v e l o p m e n to fs m a r t ci sp r e s e n t e di nt h i sp a p e r 明1 e p r o t o c o ls t a c ki sn o tl i m i t e dt ob r i d g i n gp r o c e s s o r sf o rc o m m u n i c a t i o nb u te x t e n d sa l s o t oe x t e m a ld e v i c e ss u c ha sp c s ,p d a ,a n di n t e r - t a s kc o m m u n i c a t i o nw i t h i no n e p r o c e s s o n k e yw o r k s :s m a r ti p c 、p r o t o c o ls t a c k 、a tc o m m a n d , g s m 2 7 1 0 声明 本学位论文是我在导筛的指导下取得的研究成采,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,氇不恕含我为获褥任肖教育机构的学位戏学 历丽使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 暑在论文串终了鞠确豹说瞬。 双究生笈名: 学位论文使用授权声明 南京理工大学商权保存本学位论文的电子和纸质文档,可以借阅 或上鼹公布本学使论文静全部或部分蠹容,可班齑宥芙部门或橇褥送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容一对 子绦枣论文,技缳密鲍有关攥定和程序处理。 研究生蕊名:歪k 遗。夕善等z 月7 日 巍衰壤王太掌醺七掌氇沦交霹络协议在手飘串豹应焉 1 绪论 1 1 引言 簪机的发展近几年来是飞快的,市场上已经出现了多款智能手机,比如a 7 8 0 。 这些姆能手机与原来的老式等枧的差距是革命性的。 谯手机的体系结构上的交化最碉驻,原来的手机只有个处理器,运行一个操 作系统内核,与无线网络之f h j 的通僚以及与用户的交流都怒有这一个处理嚣来完 成,蕤个系统是独立的封闭的。而智能手机的体系结构有了搬本的变化,它拥有两 个处理器。一个专门的处理器负责与髡线网络的交互,叫做b p ( b a s e b a n dp r o c e s s o r ) , 一个专门受黉与爝户交流豹波用程序,翻散a p ( a p p l i c a t i o n p r o c e s s o r ) 。在这两个 处理器上,会运行不同的操作系统内核来完成各自的功能。 体系结椽变纯鸯然会号j 越一系歹l j 的连镁葳应,本文涉及鹃藏是手机内都遁信协 议的改变。原来只存在一个内核,各个进程之间的通信是用g s m 标准中的a :r 命 令来宠成静。虹郄a t t e n t i o na 1 命令集是瓢t e ( 终端设备) 或d 翻! ( 数字终端 设备) 向t a ( 终端适配器) 或d c e ( 数字电路终端设备) 发送的。通过t a ( 终端 适醚嚣) ,t e ( 终端设备) 发送a t 命令来羧稍m s ( 移动台 豹功能,与g s m 两 络业务进行交互,用户可以通过a t 命令进行呼叫短信、电话本、数据业务、补充 整务、蒋宾等方嚣静控麓。a r 螽令豹格式眈较复杂,使爱不使。 现在的体系结构商两个内核a p 嗣b p ,鼠a p 端的系统宪全与g s m 标准没有 关系,一般会使眉l i n u x 或者戳珏3 2 豹平台,其实裁像是p 玲a 一髯。嚣篷嚣要设 计并宓现一个新的内部进程通信的协议栈来遂通a p 姆b p s m a r ti p c 。 该涛汉栈髂隽s m a r ti p c ,嚣秀宅墨簧绕甏念上载转c 不阏,爨蘩 ;妻豹璎e 往往 是指一个系统里的进稷间的通信,通常有消息队列、管道、共享内存、本地s o c k e t 等足耱方式。瑟s m a r ti p c 剩攀蘑,它蓠先嚣要受责a p 与b p 嚣令内竣之瓣弱逶绩, 其次,手机必将走向联机时代,所以s m a r ti p c 不仅需要支持单台手机里两个节点 熬遂臻,嚣显要支持多个萤煮戆霹络逶售。褒开发s m a r ti p c 瓣,将攮爨t c p i p 鳃 分层模型、路由功能、i p 地址来进行,并根据手机的需要增添q o s 服务,零拷贝 等功能r 2 0 l 。 l 。2 论文研究蠹容 本课题是为耘一代智能手机开发新的内部进程遴僚机卷4 _ - s m a r ti p c 。耱一代 硕士论文 智能手机的体系结构已完全变化,其通信机制已经跳出了一个内核的局限,扩展到 嚣个蠹核甚至诲多令爨菝懿瓣络之溺瓣避程逶绩。毽藏,露要僚签阚终耱滚豹概念, 需要完成地址分配,路由转发等功啦具体的正作如下, l 铮对手撬发展黪霉要,研究传统i p c 遴信援翱蓐k p 月擎嚣络势泼。 2 ) 设计符合手机新体系结构要求的 p c 协议栈。生耍设计出整个协议栈的体系 结棱,对每瑶模块选霉凌毙戴分,设谤霉屡模块之润黪接日,豢与层之瓣鳃 消息通道。 3 ) 爆据准c 语言檄擐设量 好戆s m a r t 璎e 资汉棱,定义数据结椽,完成找玛戆 编写。 4 ) 对实瑗好鲍缛议棱遴移测试。 1 3 本文的结梅 , 第一章绪论,介绍s m a r ti p c 开发的背景露本文的结构。 第三章s m a r t 球c 介绍,麓释s m a r ti p c 韵几个基本概念,并定义s m a r t 静c 的 体系结构。 第疆章其体设计私实现s m a r t 撑e 鹩每薏:表示膘,定义协议筏最顶层袭示层 的a p i 接口,并说明s m a r tm c 的使用流程;会话层:定义协议核心层会话朦与上 层表示层秘与下层路有层豹按嗣,设计会话豢的数攥绪褐、状态梳戳及渚惠嚣程; 路由滕:定义协议栈关键层路内层与上层会话屡和与下层设备层的接口,定义s m a r t i p c 淑缝分配方法;设备垂r 介缮癸议棱最底瑟设备簇的功鬣与实璃德凝;撩俸系 统虚拟层与硬件虚拟臌:介绍s m a r ti p c 可以跨平台运行的关键,两个虚拟层的功 蔻与实瑰。 第五章s m a r t p c 的性能测试结果,显示s m a r ti p c 的性能测试结果。 第六章结论,将s m a r ti p c 与t c 掰p 遴嚣簿荸戆魄较。 2 矮士论文拜终协议在手教举羲盛震 2s m a r ti p c 协议棱嚣发背景 s m a r t p c 项甚怒给薪一代管能筝辊开发的,所餐能手凝藐是将令久掌上亳藏 p d a 和原来的手机会并在一起,成为p d a 手机,当然也可以在p d a 的基础上加 个无线逶髂翁功筑。我霄j 选雾在警祝豹基麓上麓会p 隗豹功能。p d a 与等凝逮 合:为一是必然的趋势,不瞥是谁合并谁,新一代的手机肯定不会只与无线网络进 行交互,有缀多与秃线逶售恶关戆穗耱嫠会教入劐餐缝手秘串去。麓擎笼谣,嚣傻 关掉射频接受器,智能手机还有很多吸引入的卖点。智能手机的产生,需要学机处 理熊力懿麴强,这藏该是获矮箨爨软释熬全嚣逢更豁浃戎, 2 。1 手橇的发展 爨来黪缝手桩熬体系鳇搀孛,炙安装一令娃理嚣来处理艨寄静饶务,色挺处理 无线通信,电源管理以及处理应用程序比如电话。在老式的纯手机中,开机后必 须先获取s i m 卡信惠,然蘑怒移动邀营商注辫霹终,最后才痿动用户赛蘑等等应尾。 如果没有s n 垤卡的话,手机将启动不成功。在这老的体系结构中,遗行的操作系统 是一套麓单熬实霹掇馋系统,在此系统里遵键的都楚g s m 豹标准,所以悫郯通信 是借用的g s m 标准熙a t 命令集。 a t 命令是英文繁词a t t e n t i o n 鲍缩写,农余缓a t 命令之瓣,先余绍足个g s m 标准里的名词。 t e :t e r m i n a le q u i p m e n t ,终端设备,卑d t e 等价。比如一个计算枫。它是和 信息网络的端相接的可提供必要功能的设备,这臻功能使得用户邋过揍入协议能 接入网络,如发送信息和接收。信息也可撂由线路、电路,信道数摄链路的终端或 起点组成的设备。 t a :t e r m i n a la d a p t e r ,终端适配器,与d c e 等价。提供终端适配功能的物理安 体怒一种强弱设备。优鲡g s m 的数据卡。 d c e :d a t ac i r c u i t t e r m i n a t i n ge q u i p m e n t ,数据电路终接设备。种接翻设备, 在线路之阉避行代粥或信号转换,i 露数据终端设备实现接翻,能够建立、镙蒋和释 放数据终端设备与数据传输线之间黝连接。 d t e :d a t a t e r m i n a le q u i p m e n t ,数据终端设备。它兵青蠢计算税输入帮攘收诗算 机输出的能力、与数据通信线路连接的通信控制能力以及一定的数据处理能力。 m em o b i l ee q u i p m e n t :移动设备,滋秘g s 掰谣枫藏藩5 :m e 。移动台孛麓一静笈 射机或接收机或发射机与接收机二糟的组合。 磺毒论文 弼绦协议在手裁孛鹊崧掰 m s ;m o b i l es t a t i o n ,移动蠹。拯移动遴毽蝗务孛霹以农移动孛使用黪通壤站包撼 毫瓣载台式褒魏套和手簿羲。 a t 食令怒由t e 或者d t e 肉t a 或豢d c e 发送,然麟戳或爨d c e 囱瓣发送,m e 褥 通过无线网络发送绘m s 。它以字符率格式的命令来使廒耀稷序向调制解调设备发送 念令,缢餐溪天线瓣络提供懿黢务网。 农单处蘧器的平台上,嚣为只青一个内棱在运行,传输斛命令的枫制是传统豁内 部避程通信方建;僖号机制、管道、信号爨、消息队列、共事内存以及本地s o c k e t 。 这魏内部遗程逶傣方式豹工撵鞭瑾黧下栩【1 3 l f 埔。 信号( s i g n a l ,夯赣幸# 软中麟) 橇髑蹙在较锫层次上辩孛荻撬裁酶一鞭模蓣。吴步进 稷掰以通过彼恐发送信号来蜜现简单通信。系统预先瓶定若干个不阍炎型的信号,髓 示发生了不问的事传,每个信号对威一个编号。运行进獠当遇到相成串传或出现特定 要求嚣雩( 魏避覆终王乏蔑运霉孛爨瑗季法撵令、建夔越界镣莱鳖错误 ,藏怒一争繁譬 写劐相应进程l a s k 结构 位图( 袋示信号的鼹数) 中。接收傣号的进程禚遴 行过程孛要梭溆裔_ 身s t m 是c 番t 投剃了s i 信g n 弩a l ,强栗已牧弱信号,粼转去执纾磺先麓定好酌僖 号处理程序。处毽之后,善返溷原先正在捷霉憨程黪。 管道:一个蛰道线裁是涟接疆个避程静一个蠢弹文捧。蠡系统爨旗处理= 者藤髓 同步、调度和缓冲。管道文件允许两个避 糨按先入先出( f i f o ) 的方式传送数据, 褥它键哥菰缓魏誉舔遂霹方豹荐在。警遂义箨不霾予焉户童接会名瓣赣逶文 睾,爨利 瘸系绫调爰p i p e ( ) 襞建静、焱鬻簇惑程溺避孬大量痿惠佟送懿蠢嚣文绛。 信号量:信母量撬裁可强蜜瑗遘程闻的嗣步,缣涯辫干滋程对共攀熬貉器资源的 翼斥操作。简单说来,信号爨是系统内的一种数据结构,它的值代表潜可使用资源的 数鳖,胃羧鼗一个蹙多令遴攘滋嚣硷餮嚣设置。嚣学每个避程亲嚣,羧溅帮浚置搽 皋 怒不可中断的,分剐对应予搽作系统理论巾的p 和v 绦俸。i p c 中的僚号量税涮是辩传 统穰号量氍靛翡捺广,实辩燕“矮声室瓣落肇量”。宅蠢内羧支跨,糍系统空阕实聪, 缀珂出用户进穰直接使用。 澄惠蔽列;一个避程霹爨遴避系绫强掰建立一个潜意酝蓑,然纛镖程避程嫠可黻 通过系统调用向这个队列发送消息,或者从队列中接收消息,从而察域进程间的消息 传递。 共享蠹菇:令避程毒i ;乏逶遥系统调麓滚立一冀芙攀蠹毒医,然聪其它避程载埘 跃遴篷系绞调溺将该存德嚣映射到爨己鹃翊声建蛙空闻申。夔嚣,耨关送毽虢霹l :盂懿 同访问自己的内存空间那样馕写该熬享区的信息。 骚瓣智缝手樵实理蔓多p d a 的璎越,比浆嫘嚣援救瓣、文搂簧壤、手投游戏、 龟予溺粪、语裔谖巍等等。零缓螽蠹乏,隧案g p r s 、3 g 、4 ( 3 蘸发震,一鳖戳蘸滗 线逶信圭予紫巍鲍隈制没法掇供的服务也增加在新鲍餐自手机里藤。比如a g p $ 黛 4 硕士论文同络协议在手机中的应用 球定位系统、视频电话等等。这些新的业务的需求,必然导致旧体系结构的转变, 一个处理器和简单的实时通信的操作系统不能满足上述功能的要求。 因此,在新的体系结构中,采用两个处理器,一个用专用处理器d s p 来处理无 线通信的功能,称之为b p ( b a s e b a n dp r o c e s s o r ) 基带处理器,在此处理器上仍然 运行一个封闭的实时操作系统,而为所有的应用程序、用户接口以及外部连接专门 配一个通用处理器,一般使用a r m 系列的芯片,称之为a p ( a p p l i c a t i o n p r o c e s s o r ) 应用程序处理器,在此处理器上运行的是通用的操作系统,主推的是l i n u x 系统, 当然也有几款用的是晰1 1 3 2 的系统。这样一来,两个处理器各尽其职,互相协调, 将满足智能手机的需要。 2 2 双处理器手机中的i p c 在双处理器的手机体系结构中,必须解决一个问题,就是两个处理器之间的通 信。当a p 端的应用程序需要无线通信服务时,必须与b p 的功能模块通信,以取 得相应的服务。在之前的双处理器手机中,比如a 7 8 0 ,内部通信机制采用的是 g s m 0 7 1 0 ( 2 7 1 0 ) 标准1 2 4 1 【2 8 i 2 9 1 。 根据g s m 0 7 1 0 ( 2 7 1 0 ) 的标准所述,此多路复用协议是为溉( 移动设备) 定 义的标准之一,它在m s 与t e 之间工作,可以通过一条串口链路来复用传输多个 会话的不同类型的数据,比如语音、传真、g p r s 数据包、电池信息等。一条串口 连接( u a e r 或u s b ) 将会被划分成多个频道,每个频道称为d l c ( d a t al i n k c o n n e c t i o n ) 数据链接连接,每个d l c 的建立是独立的和连续的。在这些连接上传 输的还是传统的a t 命令以及a t 命令所带的数据1 2 5 1 。 一旦链路连接成功,a p 与b p 就可以传输数据,也就是说在a p 的应用程序与 b p 的相关功能模块之间存在一个逻辑的连接。比如a p 端的短信应用程序与b p 端 的短消息处理任务模块就通过一个逻辑的连接通信。 每个d l c 可以有各自独立的流量控制策略,以便进行缓存的管理。 每个d l c 有两种模式可以选,一种为纠错模式( e r m :e r r o r - r e c o v e r ym o d e l ) , 另一种为非纠错模式( n e r m :n o n - e r r o r - r e c o v e r ym o d e l ) 。在d l c 建立的时候可 以选择用哪种模式,在一个物理连接上可以同时存在两种模式的d l c 。只要有一个 d l c 选择了纠错模式,那么整个多路复用必须使用i s o 的h d l c ( h i g h - l e v e r d a t a - l i n kc o n t r 0 1 ) 的标准机制,当然纠错机制不适必选的。而非纠错模式则使用 帧以及头校验帧都是不编号的。 在一些双处理器的智能手机里如a 7 8 0 实现了这一标准,实现的模块称为m u x 。 它主要负责配置多路复用协议的参数、频道( d l c ) 的建立、配置与释放、a t 命 5 硕士论文 网络协议在手机中的应用 令的传输、a t 命令数据的传输以及流量控制。 m u x 在双处理器中只是简单的提供串口的传输功能和实现了多路复用机制,但 是所有逻辑上的c h a n n e l 必须在手机启动时就建立好,不能动态增减。在通信机制 上,还必须使用传统的a t 命令,如果有新的应用出现,那么必须扩充a t 命令集, 并且在各种平台上都必须实现新的a t 命令,a t 命令还需要翻译从每个处理器空间 与a t 命令空间的区别,a t 命令又必须是同步的,这就意味着不能同时执行两个 a t 命令,而且a t 命令中必须把命令和数据用a s c i i 码来传,这样带来了巨大的开 销闭。 这样的实现未免有些死板,而且手机将来的发展趋势一定是和电脑一样,走向 联机时代,只是简单的串口连接两个处理器肯定不能满足需要。因此,需要新的通 信机制,符合下一代智能手机的智能通信机制,这种机制更像互联网上的协议,需 要支持各种物理连接,支持两个以上处理器的网络通信,支持动态的增减c h a n n e l 。 为实现这样的通信机制,首先还必须研究一下网络协议。 2 3 网络协议的研究 提到网络协议,必然想到著名的t c p i p 协议族,s m a r t i p c 协议栈既然要用网 络协议的概念去开发,那么研究t c p i p 协议族是必要的。 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议 族,比如t c p f l p ,是一组不同层次上的多个协议的组合。t c p i p 通常被认为是一个四 层协议系统:应用层、传输层、网络层以及链路层【l 】。这四层每一层都有各自不同的 功能: 1 ) 链路层,有时也称作数据链路层或网络接1 2 层,通常包括操作系统中的设备驱 动程序和计算机中对应的网络接口卡。它们一起处理与电缆( 或其他任何传输媒介) 的物理接口细节。 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 m e t 组管理协议) 。 3 ) 运输层主要为两台主机上的应用程序提供端到端的通信。在t c p i p 协议族中, 有两个互不相同的传输协议:t c p ( 传输控制协议) 和u i ) p ( 用户数据报协议) 。t c p 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分 成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时 时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些 细节。而另一方面,u d p 则为应用层提供一种非常简单的服务。它只是把称作数据报 6 硕士论文 网络协议在手机中的应用 的分组从一台主机发送到另台主机,但并不保证该数据报能到达另一端。任何必需 的可靠性必须由应用层来提供。 4 ) 应用层负责处理特定的应用程序细节。几乎各种不同的t c p i p 实现都会提供下 面这些通用的应用程序:t e t n e t 远程登录、f t p 文件传输协议、s m t p 简单邮件传输协 议、s n m p 简单网络管理协议等等。 辱俸 图2 3 1t c p i p 各层的协议示意图 如图2 3 1 所示,t c p 和u d p 是两种最为著名的运输层协议,二者都使用i p 作为网 络层协议。虽然t c p 使用不可靠的p 服务,但它却提供一种可靠的运输层服务。u d p 为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单 元( 例如,发送方指定的一定字节数的信息) 。但是与t c p 不同的是,u d p 是不可靠 的,它不能保证数据报能安全无误地到达最终目的p 是网络层上的主要协议,同时被 t c p 和u d p 使用。t c p 和u d p 的每组数据都通过端系统和每个中间路由器中的口层在 互联网中进行传输。在图2 3 1 中,我们给出了一个直接访问ip 的应用程序。这是很少 见的,但也是可能的( 一些较老的选路协议就是以这种方式来实现的。当然新的运输 层协议也有可能使用这种方式) 。i c m p 是口协议的附属协议,p 层会用它来与其他主 机或路由器交换错误报文和其他重要信息。尽管i c m p 主要被口使用,但应用程序也 有可能访问它。i g m p 是i n t e r n e t 组管理协议。它用来把一个u d p 数据报多播到多个主 机。a r p ( 地址解析协议) 和r a r p ( 逆地址解析协议) 是某些网络接口( 如以太网 7 硕士论文 网络协议在手机中的应用 和令牌环网) 使用的特殊协议,用来转换i p 层和网络接口层使用的地址i l 。 在t c p i p 中,用p 地址来区分网络上的每个节点,而用端1 2 号来区分每个应用程 序。口地址对于一个网络来说是唯一的,当然也可分成公网p 地址和私有的局域口地 址,而端口号则有私有的与公用之分。服务器一般都是通过知名端口号来识别的。例 如,对于每个t c p i p 实现来说,f t p 服务器的t c p 端口号都是2 1 ,每个t e h l e t 服务器的 t cp 端1 2 号都是2 3 ,每个n 叮p ( 简单文件传送协议) 服务器的u d p 端口号都是6 9 。任 何t c p i p 实现所提供的服务都用知名的1 1 0 2 3 之间的端口号。这些知名端口号由 i n t e r a c t 号码分配机构( i n t e m e t a s s i g n e d n u m b e r s a u t h o r i t y , i a n a ) 来管理。客户端 通常对它所使用的端1 2 号并不关心,只需保证该端口号在本机上是唯一的就可以了。 客户端口号又称作临时端口号( 即存在时间很短暂) 。这是因为它通常只是在用户运 行该客户程序时才存在,大多数t c p i p 实现给临时端口分配1 0 2 4 5 0 0 0 之间的端口 号。大于5 0 0 0 的端口号是为其他服务器预留的( i n t e m e t 上并不常用的服务) i l ”。 这分层的模型以及两类地址的概念可以用在s m a r ti p c 里面。我们也按分层的模 型来设计s m a r ti p c 协议栈,并引入两类地址,一类类似口地址,用来区分网络上的节 点,另一类类似端口号,用来区分不同的应用程序。1 2 i l 2 4 本章小结 本章主要介绍s m a r ti p c 协议栈开发的背景知识,包括手机的发展、手机中的通信 机制从单处理器向双处理器的发展,以及网络协议t c p i p 的介绍,并引丑s m a r ti p c 协议栈的想法。 8 硕士论文 网络协议在手机中的应用 3s m a r ti p c 简述 s m a r ti p c 是一个连接软件组件的内部进程通信的协议栈,它提供一系列类似标 准的s o c k e t 的通信接口来提供实时的嵌入式的服务。 3 1s m a r ti p c 的几个基本概念 s m a r ti p c 作为一个新的提法,必然有些概念需要解释。比如s m a r ti p c 节点的 概念、s m a r ti p c 服务的概念等。 3 l 1s m a r ti p c 节点 s m a r t i p c 节点是至少具有一个硬件接口用于和其他实体通信,并且运行i p c 协 议栈的硬件实体。为了独立地运行s m a r ti p c 协议栈,i p c 节点必须拥有一个处理 器和主存。每个i p c 节点将会被分配一个节点d ,用来标志特定的硬件类型。比如 一个i d e n 的b p 调制解调器将会有一个固定的d ,这样在其他节点上的程序组件 可以识别出此节点,并可使用此节点一些特定的服务。所有i p c 节点必须在其内部 存储这些节点d ,以便于节点上的用程序组件的查询。表3 1 1 1 就是i p c 节点内 部所存储的表。 表3 1 1 2i p c 节点类型 节点名称节点类型 讧) e n b p o x o o o l i d e n a po x 0 0 8 0 p c s g s m 0 x 0 1 0 0 p c s a p0 ,【8 0 0 0 s m a r ti p c 服务器节点:s m a r ti p c 网络需要一个节点作为服务器节点。虽然s m a r t p c 网络被设计成分散的和独立的网络,但是我们还是需要一个受信任的节点作为 服务器,它负责认证客户节点、i p c 地址的分配、节点的同步和一些特殊的功能。 当然,网络的具体设计者需要决定哪个节点合适做i p c 网络的服务器节点。通常我 们会选一些已经具有一些通信功能的节点,并且尽量使它的通信量最小化。 s m a r t 口c 服务:s m a r ti p c 的主要想完成的任务是能够让所有参与i p c 网络的 组件可以动态地发现网络上所有的组件,并且可以让组件可以通过我们提供的类似 于标准s o c k e t 接口的a p i 来使用这些服务,而不需要去考虑使用所需服务所必须使 9 硕士论文网络协议在手机中的应黾 用的系统调用以及软件。 图3 1 1 1 是简单的s m a r t i p c 网络的结构图。 图3 ,1 1 1i p c 网络结构示意图 如图3 1 1 1 所示,网络上有4 个节点,任意节点一个都可以使用其它3 个节点 提供的服务。每个节点将会有一个i p c 的节点地址,这个地址比较简单,就是一个 整数,类似与t c p i p 中的口地址,以区分网络上的每个节点。 3 1 2s m a r ti p c 的消息头 s m a r td c 的消息头:如图3 1 2 1 所示。 设备路由层控制消息 源i p c 地址 目的i p c 组件i d 目的i p c 地址 源i p c 组件i d 消息长度高8 位 消息长度低8 位 校验和 图3 1 2 1i p c 消息头 设备路由层控制消息表示是设备层或者路由层的控制消息;源,目的i p c 地址是 1 0 硕士论文 网络协议在手机中的应用 发送和接收的i p c 节点的地址,给路由层使用;源,目的i p c 组件d 是发送和接收 服务i d = 消息长度是后面数据的长度; s m a r t i p c 零拷贝消息传送:s m a r t i p c 实现了零拷贝传输。也就是说用s m a r t i p c 传输数据的过程中,不论在接受端和发送端都没有拷贝操作存在s m a r ti p c 协议 栈实际上传输的是指向数据的指针和一个很小的数据数据头由于实际上没有数据 在传输,零拷贝使性能大幅度地提高。下面会有数据表明在用了零拷贝后s m a r t i p c 每秒钟可以处理的数据很明显的增加。既然传输数据不用使用c p u 或者d m a ,那 么系统开销对传输的影响会很小。下面是对u n i x 的标准s o c k e t 与s m a r ti p c 的 s o c k e t 的一些性能的比较。由此可以看出零拷贝的优点。 图3 1 2 2 两个线程中的情况 如图3 1 2 2 所示,零拷贝在两个线程中的性能不受数据量影响。两个线程中 s m a r ti p c 传输步骤如图3 1 2 3 ,详细介绍将会在表示层的介绍中描述。 嗍l i p c 邕 i p c r c c v f r o m 0 蚕数 i p c z f r c e 0 i 甬数 图3 1 2 3 两个线程中的传输步骤 下面我们加大线程数量,加到1 0 0 个线程,看看效果。如图3 1 2 4 所示,即使 加到1 0 0 个线程,s m a r ti p c 的零拷贝同样性能不减。 硕士论文 髑络协议在手机审的直嚼 3 1 3s m a mi p c 组件地址 图3 1 2 41 0 0 个线程时的情况 s m a r ti p c 组件地址:此地址相当于t c p i p 中的端口号。s m a r tp c 支持单播地 址和组播地址,这保证了i p c 协议栈可以有效地向一个或多个s m a r ti p c 目标地址 传数据。既然存在零拷贝传输,数据拷贝只有单份。s m a r tp c 组件地址分成单播 地址,组播地址以及共享内存地址。下面详细说明组件的地址结构b 9 l : 其基本的地址结构定义如下: s t r u c ti p c s o c ka d d r u n s i g n e ds h o r ti p c _ s e r v i c e ; u n s i g n e dl o n gi p c _ n o d e ; 表3 1 3 1i p c 地址结构说明 地址参数发送时说明 i p e _ s e r v l c e 必需 需要说明所需要的服务类型( 比如 m p 3 解码1 i p c _ n o d e可选( 填m c _ n o d e _ a n y ) 把伊需服务限定在某个节点上。 如表3 1 3 1 所示,如果要用s m a r ti p c 传输数据,在地址里i p c _ s e r v i e e 是必须 的,而i p c _ n o d e 是可选的。 我们把i p e _ s e r v i c e 这个地址空间分成公开的与非公开的两部分,而在公开的空 间又分成单播与组播两部分,具体见表3 1 3 2 。 硕士论文舟络协汉在手机中的应用 表3 1 3 2i p c 服务i d 空间 公开位组播位 剩余的1 4 位地址空间 0o 由 p c 协议栈动态分配的服务地址( 大多由服务器用来回复消息用) 。 ol 协议栈为内部消息保留。 lo 单播服务地址( 预先定义,不是由i p c 协议栈动态分配) 。 ll 组播服务地址( 预先定义。不是由 p c 协议栈动态分配) 所有的公开的服务d 必须预先定义好,不能由i p c 协议栈动态分配。组播地址 可以让多个服务d 的s o c k e t 共享一个地址,这样需要发送的数据会被传输到所有 共享这个组播地址的s o c k e t ,而i p c _ n o d e 在组播地址中可以限定在那个节点上的 s o c k e t 。图3 1 3 1 可以显示组播的情况。 图3 1 3 1 节点为i p cn o d ea n y 的情况 硕士论文网络协议在手机中的戍田 如图3 1 3 1 所示,如果在节点l 服务帮定的节点为任意节点的话,节点2 与节 点3 的p w m 服务都会收到请求。下面我们来看限制某个节点的情况,同样看s m a r t i p c 在硬件支持的情况下提供共享内存地址。它也可分成a p 到b p 的地址映射和 a p 中不同任务间的映射。s m a r ti p c 会把虚拟共享内存地址映射到相同的物理地址 上去。比如,如果物理地址从0 x 8 5 0 0 0 0 0 0 开始,那么s m a r t 疋c 把这个地址映射到 用户虚拟地址的0 x 8 5 0 0 0 0 0 0 上,这就意味着用户不必做地址转换 3 1 4s m a r ti p c 的s o c k e t 类型 s m a r t c 的s o c k e t 类型:s m a r ti p c 提供连接的与非连接的两种s o e k e t 。非连 接的s o c k e t 可以接收其他任何一个非连接的s o c k e t 的数据,而连接的s o c k e t 只能端 对端的接收已经建立好连接的那个s o c k e t 的数据。当然,不论非连接的与连接的 s o c k e t 都可以使用i p c c o n n e c t ( ) 函数。如果是面向连接的s o c k e t ,那么将会创建一 个真的的连接;而如果是面向非连接的s o c k e t ,将简单的定义一个默认的目的地址, 这样就可以用i p e s e n d ( ) 和i p c z s e n d ( ) 来代替i p c s e n d t o ( ) 和i p c z s e n d t o ( ) 了。 如果没有调用i p c c o n n e c t ( ) 函数,那么非连接的s o c k e t 在调用i p c s e n d t o ( ) 和 i p c z s e n d t o ( ) 时,必须指定目的地址。函数i p e a c c e p t ( ) 和i p c l i s t e n ( ) 只适用于 面向连接的s o c k e t 。无连接的s o c k e t 有点像内部的消息队列,无连接的s o c k e t 可以 在任何时间接收任何一个无连接的s o c k e t 的数据。但是由于无连接的s o c k e t 是不可 靠的传输,所以它只能保证在同一个节点上传输的可靠性。无连接s o c k e t 的拥塞控 制由异步的消息来控制,当然可以选择不要拥塞控制。面向连接的s o c k e t 只能在连 接建立以后交互数据,并且自己进行拥塞控制,保证可靠的数据传输。当缓存队列 满的时候,连接的双方会进入拥塞控制状态。如果发送的s o c k e t 收到 i p c e w o u l d b l o c k 的异常错误或者发送函数被阻塞,那么说明拥塞控制的条件 满足了。这时发送者需要调用i p e s e l e e t ( ) ,让s m a r t i p c 来通知发送者什么时候可 以再次发送了即使在两个不同的节点上,面向连接的s o c k e t 也可以保证数据传输 的可靠性。不过,组播消息不用发往面向连接的s o c k e t 。一旦连接的一端的s o c k e t 消耗了,另一端会收到中断连接的消息。 3 1 5s m a r ti p c 的c h a n n e l 和带宽预定 s m a r ti p c 的c h a n n e l 和带宽预定:不论是有连接的s o c k e t 和非连接的s o c k e t 都 支持s m a r ti p c 的c h a n n e l 。s m a r ti p c 的c h a n n e l 允许你预定服务的质量要求( 也 就是带宽) ,c h a n n e l 包括带a c k 的和不带a c k 的,带a c k 的c h a n n e l 会保证数据 的传输正确。预留带宽必须首先在两个s o c k e t 之间建立连接或者建立联系。如果是 1 4 硕士论文 同络协议在手机中的应用 面向连接的s o c k e t ,必须建立好连接,并且在服务器和客户端都先创建连接的队列。 也就是说在调用i p c c h a n ( ) 函数创建c h a n n e l 前,必须调用i p c l i s t e n ( ) 、i p c a c c e p t ( ) 和i p c c o n n e c t ( ) 函数。如果是无连接的s o c k e t ,只需要客户端调用i p e c o n n e c t ( ) 就可以了。因为此时,i p e c o n n e e t ( ) 函数只是建立一个默认的松连接 3 1 6 客户端与服务器端组件 客户端与服务器端组件:客户端组件是指在系统中寻求服务的任意一个组件, 而服务器组件就是在s m a r ti p c 网络上提供服务的任意一个组件。当然客户端一旦 提供服务给其它组件,它就会变成服务器组件因此,只要被请求服务,任何一个 组件都有可能成为服务器。对于客户端和服务器端组建的a p i 的设计和实现,s m a r t i p c 没有任何限制。 3 1 7s m a r ti p c a p i s m a r ti p ca p i :s m a r ti p c 提供同步的类似标准的s o c k e t 的a p i 。s m a r ti p c 协 议栈会尽可能快的返回每次调用。组件到协议栈注册然后被认证,一旦被认证了, 一个组件可以向s m a r ti p c 协议栈请求多个提供连接的s o c k e t 。每个i p cs o c k e t 可以 绑定到公共的或者非公共的m 。服务器组件将至少绑定一个i p cs o c k e t 到一个公共 的。公共的d 是公开的,并提供给在i p c 网络上任何一个想与应用服务组件通 信的组件一个连接点。客户组件将至少绑定一个i p cs o c k e t 到一个非公共的d 。 s m a r ti p c 协议栈会动态地分配非公共的服务d 。公共的服务d 将由厂商的文档提 供。客户端搜索他们需要的服务就是通过这些公共的d 来完成的。除了服务d , 客户还可以在特定的i p c 节点上搜索特定的服务。 在图3 1 7 1 所示的例子里,服务提供者和客户都在一个s m a r ti p c 节点上,不 过即使在不同的节点,这个流程也是一样的。服务提供者通过一个公共的服务d 来表示一个服务,这个服务d 可以是m p 3 解码器等等。d 可以在公共的文档里找 到,而且是固定不变的。这就意味着任何客户都可以通过) 和服务的s m a r t i p c 节 点位置来发现和使用服务。同样地,正如图3 1 7 1 所示,客户一旦注册到网络,它 会被赋予一个本地的或者是非公共的s o c k e t i d 。上面的例子解释了客户如何和服务 利用s o c k e t 来通信。这种流程在所有的情况中都是一样的。 硕士论文 网络协议在手机中的直用 图3 1 7 1 利用s m a r t i p c 获得服务 3 2s m a r ti p c 的功能需求 在了解了s m a r ti p c 的一些基本概念后,需要总结一下s m a r ti p c 的功能需求。 s m a r ti p c 将提供如下的功能1 5 】【1 6 1 1 8 】: 首先,s m a r ti p c 必须支持一个i p c 节点组成的网络,网络节点的物理连接方式 不限,并且,网络上的节点可以动态的加入和退出。 第二,m c 组件,也就是使用s m a r tm c 的应用程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论