




已阅读5页,还剩70页未读, 继续免费阅读
(信号与信息处理专业论文)基于mpeg4的实时流在网络中的传输研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
b 子科技大学硕+ 学位论文:基丁| m p e g 4 的实时流在网络z | l 的传输研究 摘要 存过去的几年中,随着数宁化的小断深入以及刚络应用旱指数式的上升,通 过因特网来进行视频监控变得越来越流行。其主要原因是该技术背后蕴藏着巨大 的市场,如视频聊天,划一些偏远重要危险的作业进行远程监控,交通车辆,银 行,机场的监控等。 远程视频监控系统分为前端服务器和远端监控器两部分。在服务器端,又分 为视频数据的采集部分,编码压缩部分,以及网络服务器部分。存远端监控器这 边又分为数据的网络接收部分和解码播放部分。本文基于w i n s o c k 网络编程接 口,通过v c + + 编程软件设计并实现了视频监控系统中的网络传输部分。 本文首先对视频流在网络传输中涉及到的基础知识进行了介绍。然后在第三 章中实现了一个简单的点对点的文件传输。接着在第四章中对一个远程视频文件 的川放系统进行了设计和实现。最后在第五章中,对一个多路的实时视频流的传 输系统进行了设计和实现。 本文的重点在第五章中的系统设计和实现,但是考虑到其中所采用的技术过 多,在一个系统中难以清晰地描述,所以分为三个系统层层深入地对视频流的传 输系统进行了介绍。第i 章主要侧重于网络传输的基础,第四章主要侧重于客户 服务器模型的构建,以及双缓冲技术。第五章采用了前面两章系统中的大部分 技术,井日在前面两章没有涉及到的多路传输的管理和实时性要求上进行了重点 分析。本章的最后对多路实时监控系统进行了测试,证明了系统的1 _ 行性和优越 一忖。 最后一章对本文进行了总结,对每一章的知泌点进行了回顾,并对整个系统 进行了优缺点分析和前景展望。 关键词:视频筛控 w i n s o c k实时视频流双缓冲 l i i ur 科技大学硕+ 学位论文:基于m p e g 4 的实时流庄网络中的传输研究 a b s t r a c t i nt h el a s ty e a r s ,w i t ht h ep e n e t r a t i n go f d i g i t a la n d t h ee x p o n e n t i a li m p r o v i n go f i n t e r n e t sa p p l i c a t i o n ,t h ev i d e om o n i t o r i n gt h r o u g hi n t e m e tb e c a m em o r ea n dm o r e p o p u l a t i o n t h em o s ti m p o r t a n t r e a s o ni st h a tab i gm a n e ti sb e h i n do ft h i s t e c h n o l o g y ,l i k ev i d e oc h a t t i n g ,m o n i t o r i n gw i t hs o m er e m o t eb u ti m p o r t a n tp r o j e c t , t r a f f i cv e h i c l e ,b a n ka n da i r p o r t ,e t c r e m o t ev i d e om o n i t o rs y s t e mh a st w op a r t s :s e r v e rp a r ta n dr e m o t em o n i t o r i n g p a r t s e r v e rp a r ti sc o m p o s e do f v i s u a ld a t ac o l l e c t i n gp a r t ,d a t ac o m p r e s s i n g p a r ta n d n e t w o r ks e r v e rp a r t i nr e m o t em o n i t o r i n g p a r t ,i tc a n b ed i v i d e di nt w o p a r t s :n e t w o r k r e c e i v i n gp a r ta n dd e c o m p r e s s i n gp a r t t h i s t h e s i si sb a s e do nw i n s o c ki n t e r f a c e , d e s i g n e da n dr e a l i z e dt h et r a n s m i t t i n gi n i n t e r n e to fr e m o t ev i d e om o n i t o rs y s t e m , w i t hv c + + s o f t w a r e t h i st h e s i sh a si n t r o d u c e ds o m eb a s i ck n o w l e d g eo fv i d e os t r e a m i n gt r a n s m i t t i n g i ni n t e r a c ti nt h ef i r s tp a r t t h e n ,i nt h et h i r dc h a p t e r , w eg i v eap o i n tt op o i n tf i l e t r a n s m i t t i n gs y s t e m t h e n ,i nt h ef o u r t hc h a p t e r , w ei n t r o d u c e dav i d e os t r e a m i n g t r a n s m i t t i n gs y s t e m ,b u ti t i sn o tar e a l t i m es y s t e m a tl a s t ,i nt h ef i f t hc h a p t e r , w e d e s i g n e da n d r e a l i z e dar e a l t i m ev i d e os t r e a m i n gt r a n s m i t t i n gs y s t e m t h i st h e s i sf o c u s e so nt h ed e s i g n i n ga n dr e a l i z i n go ft h es y s t e mi nf i f t hc h a p t e r , b u tc o n s i d e r i n gt h ec o m p l e x i t yo ft h i ss y s t e m ,w eu s et h r e es y s t e m st oi n t r o d u c et h e r e a l t i m ev i d e os t r e a m i n gt r a n s m i t t i n gs t e pb ys t e p i nt h et h i r dc h a p t e r , w ef o c u so n n o r m a lt r a n s m i t t i n gi ni n t e m e t i nf o u r t hc h a p t e rw ef o c u so nt h ec o n s t r u c t i o no ft h e c l i e n t s e r v e rm o d e la n dt h ed o u b l eb u f f e rt e c h n o l o g y i nf i f t hc h a p t e r , w eu s et h em o s t o f t e c h n o l o g i e so f t h es y s t e m si n t r o d u c e di nt h el a s tt w o c h a p t e r s ,a n dw e f o c u s e do n t h ea n a l y z i n go fm u l t i p l ev i d e os t r e a m i n gm a n a g e m e n tm a dr e a l t i m et r a n s m i t t i n g i n t h el a s tp a r to ft h i sc h a p t e r , w eh a v et e s t e dt h em u l t i p l er e a l - t i m ev i d e os t r e a m i n g m o n i t o r i n gs y s t e m i nt h i se x p e r i m e n t ,w ep r o v e dt h ef e a s i b i l i t ya n ds u p e r i o r i t yo f t h i ss y s t e m i nt h el a s tc h a p t e r , w eg i v ea s u n m l a r i z i n go f t h i st h e s i s i nt h i sc h a p t e r , w eh a v e r e v i e w e dt h et e c h n o l o g i e so fe v e r yc h a p t e rb e f o r e ,a n dg i v ea na n a l y z i n go ft h e a d v a n t a g ea n dd i s a d v a n t a g eo f t h i ss y s t e m ,a n dw eh a v eg i v e na p i c t u r eo f t h ef u t u r e i nr e a l - t i m ev i d e os t r e a m i n g t r a n s m i t t i n gf i e l d k e y w o r d s :v i d e om o n i t o r i n gw i n s o c kr e a l - t i m ev i d e os t r e a m i n g d o u b l eb u f f e r 电子科技大学硕+ 学位论文:基丁m p e g 4 的实时流在网络中的传输研究 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名;生叠盘查 1 3 t 蓼1 :年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:述盘鱼 导师签名: 日期:年月日 电子科技大学硕士学位论文:基于m p e g 一4 的实时流在网络中的传输研究 第一章引言 存社会信息化同益发展的今天,信息技术、网络技术、通信技术以及多媒体 技术已经渗透到人类生活的方方面面。视频监控以其直观、方便和内容丰富等特 点,日益受到人们的青睐,视频监控币从传统的安防监控向娱乐、管理、生产监 控发展,井逐步与管理信息系统相结合,数字视频监控不仅符合社会信息化的发 展趋势,而且代表了监控行业的发展方向。 视频峨控的方式大致可分为三个发展阶段:基于模拟图象监控的丁业电视系 统;基于硬盘录象机的视频监控系统;直到今天的基于网络的远程视频监控系统。 本文对网络的远程视频监控的网络传输部分进行了系统设计和实现。基于网络的 远程视频监控系统的特点是:在视频图象的信源端对视频流进行压缩,然后通过 定的通信i 办议和通信介质把压缩过的视频数据传输到远端计算机上,用计算机 对视频流进行解码回放。 本文的课题来源是绵阳九州集团的“远程网络视频监控系统”项目,该项目 的主要功能是在系统服务器上监控各个监控点,进行云台控制,并实现多媒体文 件的存储管理、现场回放等。在客户端实现实时监控、云台控制等。 电子科技人学顶十学位论文:基j 二m p e g 4 的实时流在网络中的传输研究 2 1 m p e g 一4 的介绍 第二章基础知识介绍 21 1m p e g 。4 标准概述 1 9 9 9 年1 2 月i s o i e c 制定了m p e g 一4 的标准,其中增添了7 个新的功能。 可粗略划分为3 类:基于内容的交互性、高压缩率和灵活多样的存取模式。 1 基于内容的交互一e t ( c o n t e n t b a s e di n t e r a c t i v i t y ) ( 1 1 基于内容的操作与比特流编辑:支持无须编码就可进行基于内容的操作 与比特流编辑。例如:使用者可在图像或比特流中选择一具体的对象, 然后改变它的某些特性。 ( 2 ) 自然与合成数据混和编码:提供将自然视频图像同合成数据( 如文本、 图形等) 有效结合的方式,吲时支持交可f 性操作。 f 3 ) 增强的时间域随机存取:m p e g 一4 将提供有效的随机存取方式:在有限 的时间问隔内,可按帧或任意形状的对象,对音、视频序列进行随机存 取。例如以序列中的某个音、视频对象为目标进行“快进”搜索。 2 高压缩率( c o m p r e s s i o n ) ( 1 ) 提高编码效率:与现有的或正在制定的标准相比,在可比拟速率上, m p e g4 标准将提供更好的主观视觉质量的图像。 ( 2 ) 对多个并发数据流的编码:m p e g4 将提供对一景物的有效多视角编码, 加卜多伴音声道编码及有效的视听同步。在立体视频应用方面,m p e g 一4 将利用对同一景物的多视点观察所造成的信息冗余进行编码优化。 m p e g4 的这一功能在足够的观察视点条件f ,将有效地描述i 维自然 景物。 3 灵活多样地存取( u n iv e r s a la c c e s s ) ( 1 ) 错误易发环境中的抗错性( r o b u s t n e s s ) :“灵活多样”是指允许采用各 种有线、无线网和各种存储媒体,m p e g 一4 将提高抗错误能力,尤其是 在易发牛严重错误的环境下的低比特应用中( 移动通信链路) 。注意, m p e g4 是第一个在音、视频表示规范中考虑信道特性的标准。 ( 2 1 基于内容的尺度可变性( c o n t e n tb a s e ds c a l a b i 11t y ) :内容尺度可变 性意味着给图像中的各个对象分配优先级。其中,比较重要的对象用较 乜子科技大学硕士学位论文:基t - m p e g 4 的实时流在网络中的传输研究 高的空间或时间分辨率表示。基于内容的尺度可变性是 i p e g 4 的核心。 2 1 2 m p e g 一4 基于v o p 的视频编码 传统图像编码方法依据信源编码理论的框架,将图像作为随机信号,利用其 随机特性来达到压缩的r 的。这种方法本身未能考虑信息获取者的主观意义与主 观特性,未能考虑事件本事的特性,如具体含义、重要性以及后果等等。但正是 山于信源编码理论的限定使得传统的图像编码具有较高的概括性和综合性,而基 于矩形帧编码的传统视频编码标准( 如h 2 6 1 h 2 6 3 、m p e g 一1 m p e g 2 ) 在实际应 用中也获得了巨大成功。然而m p e g 一4 并不满足与此,它的目标在于采用现代 图像编码方法,利用人眼视觉特性,抓住图像信息传输的本质,从轮廓、纹理的 思路出发,支持基于视觉内容的交互功能。而实现基于内容交q 功能的关键在于 基于视频对象的编码。为此,m p e g 一4 引入了视频对象面f v o n 的概念。在这一 概念巾,根据人眼感兴趣的一些特性,如形状、运动、纹理等,将图像序列中每 一帧中的场景,看成是由不同v o p 所组成。而同一对象连续的v o p 称为视频对 象( v i d e oo b j e c t ,v 0 1 。v o 可以是视频序列中的人物或具体的景物,例如电视新 闻中的播音员,或是电视剧中一辆汽车,也可以是一组二维或二维图形。图2 - l 为m p e g 4 基于内容图像编码方法的简化原理图。 输入图像序列f 分层编码分层编码 图2 - 1m 1 1 e ( i 一4 基于内容图像的编码方法 2 1 3m p e g 一4 的系统结构 系统模型从上到下包括压缩层、同步层和传送层。 压缩层负责视听数据的编码、压缩,对接收到的数据进行解压缩和解码。它 不用考虑所使用的传送技术,是与媒体相关与传送无关的。压缩层将音视频数据 编码后形成基本码流( e l e m e n t a r ys t r e a m s ,e s s ) 通过基本码流接口e s i 送到同 步层。e s 的层次关系、位置和属性由对象描述符( o b j e c td e s c r i p t o r ,o d ) 来描 述,它描述每个视听对象的e s 的数目和特征。o d 本身也通过e s 来传送。场景 电f 科技大学硕士学位论文:基于m p e g 4 的实时流在网络中的传输研究 描述通过b i f s 实现的,它也是通过e s 来传送。初始的b i f s 流和o d 流由初始 对象描述符i o d 制定,它通过带外方式制定,通常是存信令消息旱携带。 同步层提供媒体问的同步,它和压缩层之间的接口是e s i 。压缩层来的e s 流由一个访问单元( a c c e s su n i t ,a u ) 组成,a u 是最小的能具有时间信息的实 体。一个或多个a u 被同步层加上同步信息后封装到s l 分组里去,形成s l 分 组流,发送到传送层。另方面,同步层从传送层接收数据流,提取同步信息, 恢复出e s 流。 传送层是对已经存在的各种传输协议的抽象。传送层的功能并不在系统部分 规定,系统部分只考虑和传送层有关的接口。传送层是与媒体无关而与传输相关 的。 图2 2 示出了简单的m p e g 一4 终端体系分层模型。m p e g 一4 可以分为两个方 面,一方面是可以独立于底层网络传输技术而且能够进行统一的管理的方面( 包 括m p e g 4 码流) ,另一方面是剩下的那些受底层网络传送技术和操作场合影响 的方【f 【i ( 如m p e g 4d m i f ) ,m p e g 一4 在这两个方面划分了明确的界限。在图 2 2 中可以看到这个分界线就足d m i f 应用接口,它是位于同步层f s l ) 和传送 层( d l ) 之间的一个抽象接口。 。媒体卑篓、传送 压缩层 无关 4 媒体无关、传送 无关 ,媒体无关、传送 有关 幽22m p e g 一4 系统框架 基奉码流接口 ( e s i ) d m i f 出用接口 ( d a i 】 2 2 实时流传输协议( r e a l t i m et r a n s p o r tp r o t o c 0 1 ) 2 2 1 流式传输服务 流式传输服务( s t r e a m i n gs e r v i c e ) 与那种在每个请求和响应中只传送同定长 度的服务彳i 同,它能提供一种连续的,任意长度的数据流。数据流在长度和传送 时删l 没有限制。对大多数情况来说,流在理论。e 是无限的。 流式传输被典型地用于传送音频和视频实况。在发送端,由摄像机或话筒提 4 蔓 电子科技大学硕十学位论文:基j 二m p e g 4 的实时流在网络中的传输研究 供连续信号,这些信号经数字化后发送到因特i 劂。在接收端,数字流被转换回模 拟信号并加以播放。由r 数据是连续产生的,只要摄像机或话筒还在t 作,流就 小会结束。 2 2 2 实时交付 实时交付是指,数据的交付必须与数据的产生保持精确的时间关系。在实时 交付中有两方面的问题需要处理:顺序和时问。 顺序:进来的数据必须精确地按,“生时的顺序播放。 时间:为了准确再现输入信号,接收方必须知道产生每个分组时的精确时间。 2 2 _ 3 实时传输协议 有了上面两个基本概念的基础,下面我们来介绍实时传输协议。 针对现有基于i p 协议的互联网难以有效支持实时应用,i e t f 音视频工作组 ( i e t f a v t ) 制定了一些新的协议,例如资源预尉协议( r s v p ) 和实时传输协 议实时传输摔制协议( r t p 压玎c p ) ,它使现有的i p 网络在理论上具有提供多媒 体实时传输的能力,其中r t p r t c p 是网络多媒体应用中的核心协议之一。 r t p 被定义为在点对点或点对多点的传输情况下工作,其目的是提供时间信 息和实现流i 司步。r t p 提供端到端网络传输功能,适用于在单点和多点传送网络 上传输实时数据。r t p 通常使用u d p 来传送数据,但r t p 也可以在t c p 或其 他协议之上工作。r t p 协议本身独立于下层传输层和网络层,与下层协议无关。 r t p 数据分组没有包含长度域或者其他边界。因此,r t p 依赖于下层网络提供一 个长度的表示。r t p 用于u d p 时数据封装的情形如图2 3 所示。 数据( 净荷娄型) i r t p 头数据( 净荷类型) l u d p 头r t p 头数据( 净荷类型)1 i p 头 j d p 头r t p 头i 数据( 净荷类型) l l 。,j ,i _ _ 图2 3r t p 数据的封装 r t p 叻、议包含两个紧密相连的部分,即负责多媒体数据实时传送的r t p 和 负责反馈控制、监测q o s 和传递相关信息的实时传输控制协议( r e a l t i m e 电子科技大学硕_ = 学位论文:基于m p e g 一4 的实时流在网络中的传输司f 究 t r a n s p o r tc o n t r o lp r o t o c o l ,r t c p ) 。当应用程序丌始一个r t p 会话时将使用两个 端1 1 :一个给r t p ,一个给r t c p 。r t p 本身并刁;能为按顺序传送数据分组提供 可靠的传送机制,也不提供流量控制或拥塞控制,它依靠r t c p 提供这些服务。 通常r t p 算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一 部分。 r t c p 和r t p 一起提供流量控制和拥塞控制服务。在r t p 会话期间,各参 与者周期性地传送r t c p 分组。r t c p 分组巾含有已发送的数据包的数量、丢失 的数据包的数量等统计资料,因此,服务器町以利用这些信息动态地改变传输速 率,甚至改变有效载荷类型。r t p 和r t c p 配合使用能以有效的反馈和最小的开 销使传输效率最佳化,因而特别适合传送网上的实时数据。 1 r t p 协议 r t p 数据分组由固定的r t p 数据头,一个可能空的作用资源表和净荷数据 ( p a y l o a d ,如实时的音频或视频压缩编码后的数据) 组成。如图2 - 4 所示。 到:1 h ! 竺竺【一 时间戳 同步源( s s r c ) 标识符 炎献源 c s r o 标识符 r t p 分组冲荷( p a y l o a d ) j 】 ,_ j 图24r t p 分组的数据格式 在r t p 数据分组中,提供了分组内数据类型的标志( p a y l o a d t y p e ,p t ) ,用 以说明多媒体信息所采用的编码方式;在多媒体数据头部加上时间戳 ( t i m e s t a m p ) ,依靠时间戳可使在接收端的数据包的定时关系得以恢复,从而 降低了网络引起的延时和抖动;根据序列号( s e q u e n c en u m b e r ) 可以在收端进 行正确排序和定位,以及统计分组丢失率。 住r t p 分组格式中,与实时传输密切相关的字段是:序列号、时间戳和同 步源标识( s y n c h r o n i z a t i o ns o u r c e ( s s r c ) i d e n t i f i e r ) 。 序列号是一个1 6 b i t 的序列空间,其初始值随机产生。在发送数据时,每个 r ,i 、p 数据分组将前一个分组的序号加1 作为自己的序列号。接收方通过检测收到 的分组的序列号,进行数掘分组序列的重建和定位。 i b 子科技大学硕士学位论文:基于m p e g 一4 的实时流在网络中的传输聊f 究 时间戳为3 2 b i t ,是r t p 数据分组第个字节的采样瞬间。这个采样时间是 从一个时间单调增长的时钟获得,以便于同步和抖动计算。可以通过时间戳来提 供适合传送实时信息和不同媒体流之间的同步的控制机制。 同步源( s s r c ) :是r t p 分组码流的源,是由一3 2 位的s s r c 数字标识符 来识别的,该标识符由r t p 头所携带。之所以片jr t p 头携带,是为了不依赖网 络地址。来自一个同步源的所有的分组构成了部分相同的定时和顺序号空间。所 以在接收端就可以用同步源来把数据报划分为组,从而进行回放。典型的同步源 可以是个发送分组码流的信号源,比如麦克风或者数码相机。同步源可以随时 问改变它的数据格式,例如音频编码等。s s r c 标识符是一个随机选择的值,这 就意味着在一个特定的r t p 会话中,它的值是唯一的。一个参与者在一个多媒 体会话中不需要对所有的r t p 会话使用相同的s s r c 标识符,s s r c 标识符的绑 定是通过r t c p 来提供的。如果个参与者存个r t p 会话中产:生了多个流, 例如是从不同的数码相机产生的,那么每个流就必须用一个不同的s s r c 标识符 来l = 别。 贡献源( c s r c ) :对一个r t p 混合器产生的组合流有贡献的r t p 分组的源。 混合器。p 插入列有贡献源的s s r c 标识符。这一列被称为c s r c 列表。一个典 型的例子就是音频会议,混合器表示所有的谈话者的谈话被组合起来产生+ 个将 要发出去的报,允许接收端确认当前的谈话者,尽管所有的音频包中都包含了相 同的s s r c 标识符。 存每个r t p 会话( s e s s i o n 冲,每一个用户都可以提供多种媒体源。r t p 通 过随机产生的s s r c 来唯一标志一个媒体源,这个唯一性通过应用程序采用避免 冲突的算法来保证。如果媒体源改变了其源传输地址,它必须选择一个新的s s r c 标志。 2 r t c p 协议 r t c p 协议的基本思想是采用和数据分组同样的分发机制向r t p 会话中的所 有参l j 者周期性地传送控制分组,从而提供数据传送q o s 的检测手段,并获知 参与者的身份信息。r t c p 主要实现以下功能: ( 1 ) 通过给所有参与方发送s r ( 发送者报告) 、r r ( 接收者报告) 报告分 组来提供数据分配质量的反馈。这是r t c p 最基本的功能,它是r t p 作为传输 层出议一项不可缺少的功能,这些反馈功能与其他传输层协议的流量控制、拥塞 控制密切相关,也可以用于控制自适应编码和故障诊断。 ( 2 ) r t c p 为每一个r t p 资源传送r t p 源运输层永久标识,即c n a m e 。 s s r c 标识在发现冲突或程序重启时可能发生改变,因此接收方需要使用不变的 电子科技大学硕+ 学位论文:基于m p e g 4 的实时流在网络中的传输研究 c n a m e 来跟踪每个与会成员。接受者还要用c n a m e 来关联同一与会者由组 r t p 会话发出的多个相关的数据流。 ( 3 ) 媒体间同步需要精确的定时关系,r t p 分组中的时间戳只是反映取样周 期的信息,并不是指示绝对时间的系统时钟,因此不同媒体分组的时间戳可能是 小同步的。出数据发送者送出的r t c p 分组中既包含了r t p 时戳,又包含了绝 对刚间n t p 时戳,接收者可以据此实现多种媒体的同步。 ( 4 ) 由于r t c p 分组需要定期发送,因此可以根据可用带宽和r t c p 分组的 发送速率来观察参与者的数日,并计算数据的发送速率,从而对其进行动态调整, 达到合理利用网络资源的目的。 2 3w i n s o c k 网络编程接口 w i n s o c k 是一套丌放的、支持多种协议的w i n d o w s 下网络编程接口,是 w i n d o w s 网络编程的标准。应用程序通过凋用w i n s o c k 的a p i 实现相珏之问的 通信,f | jw i n s o c k 利用下层的网络通信协议功能和操作系统调用实现实际的通信 工作。 本节主要对w i n s o c k 的基本概念、编程模型等进行介绍。 2 3 1 套接字( s o c k e t s ) 套接字是通信的基石,是支持t c p i p 协议的网络通信的基本操作单元。可 以将套接字看作不同手机问的进程进行双向通信的端点,它构成了在单个主机内 及整个网络问的编程界面。套接字存在于通信域中,通信域是为了处理一般的线 程通过套接字通信而引起的一种抽象概念。套接字通常和同一个域中的套接字交 换数据( 数据交换也可能穿越域的界限,但这时一定要执行某种解释程序) 。 w i n s o c k 规范支持单一的通信域,即i n t e m e t 域。各种进程使用这个域坛相之间 用i n t e m e t 协议簇来进行通信。 套接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般 仅在j j 一类的套接字间通信。不过只要底层的通信协议允许,不同类型的套接字 n _ j 也照样可以通信。 套接字有两种不同的类型:流套接字和数据报套接字。 1 流套接字 流套接字提供双向的、有序的、无重复并且无记录边界的数据流服务,它适 用于处理大量数据。网络传输层可以将数据分散或集中到合适尺、j 的数据包巾。 电子科技大学硕十学位论文:基y - m p e g 4 的实时流在网络中的传输研究 流套接字是而向连接的,通信双方进行数据交换之前,必须建立一条路径, 这样既确定了它们之间存在的路由,又保证了双方都是活动的、可彼此响应的, 但存通信双方之间建赢一个通信信道需要很多开支。除此以外,大部分面向连接 的胁、议为保证发送无误,可能会需要执行额外的计算来验证f 确性,因此会进一 步增加开支。 2 数据报套接字 数据报套接字支持双向的数据流,但并不保证数据传输的可靠性、有序性和 无重复性。也就是说,一个从数据报会接字接收信息的进程有可能发现信息重复, 或者和发出时间的顺序不同的情况。此外,数据报套接字的一个重要特点是它保 留了记录边界。 数据报套接字是无连接的,它不保证接收端是否正在侦听,类似于邮政服务: 发信人把信装入邮箱即可,至于收信人是否想收到这封信或邮局是否会因为其他 原冈未能正常投递信件,发信人不得向知。因此,数据报并不十分可靠,需有程 序员负责管理数据报的排序和可靠性。 2 3 2 基本概念 1 带外数据 带外数据,也称为t c p 紧急数据,它是相连的每对流套接字问个逻辑 :独立的传输通道。带外数据是独立于普通数据传送给用户的,这一抽象要求带 外数据设备必须支持每一时刻至少一个带外数据消息被可靠地传送。 2 广播 数据报套接字叮以用米向许多系统支持的网络发送广播数据包。要实现这种 功能,网络本身必须支持广播功能,因为系统软件并不提供对广播功能的任何模 拟。广播信息将会给网络造成极重的负担,因为它们要求网络上的每台主机都为 它们服务,所以发送广播数据包的能力被限制y - 那些用显式标记了允许广播的套 接字中。 被广播的目的地址取决于这一信息将在何种网络上广播。i n t e r n e t 域中支持 个速记地址心a d d rb r o a d c a s t 用于广播。 3 字节顺序 _ i 同的计算机有时使用不同的字节顺序存储数据。例如,基于i n t e l 处理器 的计算机利m a c i n t o s h 计算机使用了相反的字节排序规则。任何从w i n s o c k 函数 对i p 地址和端口号的引用和传送给w i n s o c k 函数的i p 地址和端口号均是按照m 络顺序组织的,比如s o c k a d d ri n 这一数据结构中的i p 地址域和端口域。 电子科技大学硕士学位论文:基于m p e g 4 的实时流在网络中的传输研究 因此程序员应该使用作为w i n s o c k a p i 一部分的标准的转换函数进行字节顺 序的转换,只有使用标准的转换函数的应用程序是可移植的。 4 阻塞和非阻塞 套接字可以处于阻塞模式和非阻塞模式。调用任何个阻塞模式的函数,都 会产生相同的后果一耗费或长或短的时间等待操作的完成。而当套接字处于非阻 塞模式时,a p i 函数的调用立即返回,大多数情况下这些调用都会“失败”,并 返p 卜一个w s a e w o u l d b l o c k 错误,它意味着请求的操作在调用期间没有完 成。w i n s o c k 的套接字i 0 模型可以帮助应用程序判断一个套接字何时可供读写。 套接字的行为在w i n d o w s 9 x 和w i n d o w s n t 中与w i n d o w s 3 ,1 中不同。在3 2 位操作系统中,可以采用多线程编程,在不同的线程中使用套接字,这样即使某 个线程中的套接字被阻塞,也不会影响应用程序的其他操作,同时也不会在阻塞 线程七耗费c p u 时问。 2 3 3w i n s o c k 编程模型 1 流套接字编程模型 流套接字的服务进程和客户进程在通信前必须创建各自的套接字并建立连 接,然后爿能对相应的套接字进行“读”、“写”操作,实现数据的传输。具体编 程步骤如下: 1 ) 服务器进程创建套接字( s o c k e t ) 。 服务进程总是先于客户进程启动,服务进程静先调用s o c k e t 函数创建一个流 套接字。 s o c k e t 函数的原型如下: s o c k e ts o c k e t ( i n ta f , i n t t y p e ,i n t p r o t o c 0 1 ) : 其中,参数a f 用于指定网络地址类型,一般耿a f l n e t ,表示该套接字在 i n t e m e t 域中进行通信。参数t y p e 用于指定套接字类型,若取s o c k s t r e a m 表示要创建的套接字是流套接字,而取s o c kd g r a m 创建的是数据报套接 宁,这里取s o c k es t r e a m 。参数p r o t o c o l 用于指定| j c ) 9 络协议,1 般取0 , 表示默认为t c p i p 协议。若套接字创建成功则该函数返回所创建的套接字句 柄s o c k e t ,甭则产生i n v a l i ds o c k e t 错误。 2 ) 将本地地址( b i n d ) 绑定到所创建的套接字上以使在网络 _ - 标识该套接 字。 陔函数原型如p : 电子科技人学硕 学位论文:基于m p e g 一4 的实时流在网络中的传输研究 i n tb i n d ( s o c k e t s ,c o n s ts t r u c ts o c k a d d r + n a m e ,i n tn a m e l e n ) ; 其中,第一个参数s 标识一未捆绑套接字的句柄,它用来等待客户机的连接。 第二个参数d a l i l e 是赋予套接字的地址,它由s t r u c ts o c k a d d r 结构表示,该结 构的格式如卜i : s t r u c ls o c k a d d r u s h o r t s a f a m i l y ; c h a r s a _ d a t a 1 4 ; 浚地址结构随选择的协议的不同而变化,因此一般情况下另一个与该地址结 构大小相刊的s o c k a d d r _ i n 结构更为常用,s o c k a d d ri n 结构用来标志t c p i p 协议下的地址,在t c p i p 协议的情况下,可以方便地通过强制类型转换把 s o c k e a d d ri n 结构转换为s o c k a d d r 结构。 s o c k a d d r 协结构的格式如下: s t r u c ts o c k a d d r i n s h o r ts i n f a r n i l y ; u n s i g n e ds h o r t s i n t ) o r t ; s t r u c t i n a d d rs i n _ a d d r ; c h a r s i n _ z e r o 8 ; 其中,s i nf a m i l y 字段必须设为a f _ i n e t ,表示该s o c k e t 处于i n t e r n e t 域。 s i n - p o r t 字段用于指定服务器端1 2 1 ,在选择端口的时候必须特别小心,因为 有些可用的端口号已为固定的服务保留( 比如f t p 和h t t p 协议) ,此外还 应把端口号由主机字节顺序转换为网络字节顺序。s i n a d d r 字段用于把一个 i p 地址保存为一个4 字节的数,它是无符号氏整数类型。最后一个字段 s i nz e r o ,只充当填充项的职责,以使结构和结构的长度一样。个有用的、 名为i n e ta d d r 的函数,可把一个点式i p 地址转换为一个3 2 位的无符号长整 数。这罩取i p 地址为1 n a d d ra n y ,以允许服务器应用监听主机上面每个 网络接口上的客户机活动。 电子科技大学硕+ 学位论文:基于m p e g 4 的实时流在网络中的传输研究 b i n d 函数成功返l 四0 ,出错将返回s o c k e te r r o r 。 3 ) 将套接字罨于监听( 1 i s t e n ) 模式并准备接受连接请求。 b i n d 函数的作用只是将一个套接字和一个指定的地址关联起来,让一个套接 字等候进入连接的a p i 函数则是l i s t e n ,其原型为: i n tl i s t e n ( s o c k e ts ,i n tb a c k l o g ) ; 其中,参数s 标识一个已捆绑未连接套接字的描述字。b a c k l o g 参数用于指 定正在等待连接的最大队列长度。如无错误发生,l i s t e n 函数返回0 ,若失败 则返回s o c k e te r r o r 错误,最常见的错误是w s a e i n v a l ,该错误通常 表示套接字在l i s t e n 之前没有调用b i n d 。 4 1 客户进程调用s o c k e t 函数创建客户端套接字。 5 ) 客户端向服务进程发出连接( c o 皿e m 请求。 通过调用c o n n e c t 函数可以建立一个端的连接。c o n n e c t 的函数原型为: i n tc o n n e c t ( s o c k e t s ,c o n s ts t r u c ts o c k a d d rf a r + n a m e ,i n tn a m e l e n ) ; 其中,参数s 标识一个未连接的数据报或流套按字的描述字。n a l d _ e 是针对 t c p 的套接字地址结构,它标识服务进程的i p 地址信息。n a m e l e n 则用于标 识参数的长度。 如果欲连接的计算机没有侦听指定端口的这一进程,c o n n e c t 调用就会失败, 并发q i 错误w s a e c o n n r e f u s e d 。另一个常见的错误是 w s a e t i m e d o u t ,表示连接超时。 6 ) 当连接请求到来后,被阻塞服务进程的a c c e p t 函数生成一个新的套接字 与客户套接字建立连接,并向客户返回接收信号。 进入监听状态后,服务器端通过调用a c c e p t 函数使套接字作好接受客户连接 的准备。a c c e p t 函数的原型为: s o c k e t a c c e p t ( s o c k e ts ,s t r u c ts o c k a d d r + a d 血i m + a d d r l e n ) ; 其中,参数s 是处十监听模式的套接字描述字。第二个参数a d d r 应该是一个 有效的s o c k a d d r i n 结构的地址,而a d d r l e n 是s o c k a d d ri n 结构的 长度。这样,服务器便可为等待连接队列中的第一1 个连接请求提供服务了。 a c c e p t 函数返凹之后,a d d r 参数变量中会包含发出连接请求的那个客户机的 i p 地址信息,并返回一个新的套接字描述字,它对应于已经接受的那个客户 机连接。对于客户机后续的所自+ 操作,都应使用这个新套接字,至于原来那 个监听套接字仍然用于接受其他客户机连接,而且仍处于监听模式。如果无 电子科技大学硕士学位论文:基丁m p e g 4 的实时流在网络中的传输研究 连接请求,服务进程被阻塞。 7 )旦客户机的套接字收到来自服务器的接收信号,则表示客户机与服务 器已实现连接,则可以进行数据传输了。s e n d ,r e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源商用车辆市场新能源汽车充电桩市场智能化应用:市场需求与应用场景报告001
- 山东省枣庄市第三十九中学2024-2025学年上学期阶段性诊断检测七年级数学试题(无答案)
- 网络商城和公司转让居间合同
- 四年级 党规党章进课堂教学计划
- 2025年AI应用市场洞察分析报告
- 岩石矿产与课件
- 岩土勘察测量培训课件
- 小黄鹂鸟课件
- 艺术画廊店面租赁及作品转让协议
- 电力箱变安装与供电接入合同
- DB45-T 1696-2018危岩防治工程技术规范-(高清可复制)
- 喷砂检验报告
- 旅游英语ppt课件(完整版)
- DB32-T 4062-2021城市轨道交通工程质量验收统一标准-(高清现行)
- 城乡融合发展的做法和经验乡村振兴培训课件
- 最新肛肠科临床诊疗指南
- 供应商分级的管理制度管理办法
- 义务教育《语文》课程标准(2022年版)
- T∕CTWPDA 06-2019 橡胶木指接拼板
- 职高数学各章节知识点汇总
- 完整版_第八版内科冠心病课件
评论
0/150
提交评论