第27卷第1期2002年2月武汉大学学报·信息科学版GeomaticsandInformationScienceofWuhanUniversityVol.
27No.
1Feb.
2002文章编号:1000_050X(2002)01_0039_05文献标识码:AISDN多媒体卡拨号上网的研究与设计黄治华1喻占武1李世辉1易本顺1(1武汉大学多媒体网络通信工程湖北省重点实验室,武汉市珞喻路129号,430079)摘要:研究在已实现可视通信的ISDN多媒体卡上,通过芯片的功能复用,设计一个驱动程序模型,以实现ISDN多媒体卡的拨号上网功能.
简要介绍了ISDN接入因特网的通信协议体系,详细探讨了ISDND信道的呼叫过程,分析了拨号上网原理及如何与Windows系统的远程访问服务结构相结合.
给出了一个基于NDIS标准的ISDN多媒体卡的小端口驱动程序的设计与实现方案.
关键词:综合业务数字网;网络接口卡;驱动程序;DDK中图法分类号:TN913.
24;TP393ISDN即综合业务数字网[1],它以迅速、准确、经济、有效的方式提供各种通信网络中的现有业务;同时,它将通信和数据处理结合起来,开创了许多前所未有的新业务.
目前,ISDN的业务主要分为承载业务、用户终端业务和补充业务三类.
其中,承载业务是指ISDN网络提供的信息传送业务,它提供用户之间的信息传送而不改变信息的内容.
例如拨号上网、可视电话等,用到的都是ISDN的承载业务.
相对于传统使用的局域网接入和通过模拟电话线利用Modem拨号接入两种方式来说,ISDN利用现有电话网的用户线,访问速率可达128kbit/s,是Modem拨号上网速率的2倍以上,因此,通过ISDN接入Internet是一种极具吸引力的选择.
本文主要研究如何在已经实现可视电话的ISDN卡上扩展拨号上网的功能,在Windows系统的远程访问服务(RAS)分层结构下,编写满足NDIS标准的内置ISDN卡驱动程序.
最终,通过ISDN卡既可以打可视电话又可以拨号上网.
1ISDN网络通信协议与拨号上网原理分析1.
1ISDN网络通信协议根据B信道的数目,ISDN可分为BRI2B+D基本速率接口和PRI30B+D一次群速率接口.
本文所研究的重点是基本速率接口(2B+D)的窄带ISDN,它通过两个B信道传递数据,一个D信道传递控制信令.
下面简要介绍各信道的协议.
D信道的作用主要是信令交互,实现呼叫的建立与管理.
国际电信联盟(ITU)对D信道制定的标准协议分为物理层、数据链路层、网络层三层.
对于B信道,由于和D信道复用在同一条线路上,因此在物理层,B信道采用的也是I.
430协议;但是在物理层以上,ISDN提供多样的服务,不同的服务采用不同的协议.
对拨号上网而言,数据链路层采用PPP协议和MP协议,传输层、网络层采用TCP/IP协议.
ISDN拨号上网层次协议原理如图1所示.
1.
2NDIS与拨号上网驱动程序的原理为了便于用户开发网络设备驱动程序,Win-dows提供了网络设备驱动接口规范[2]NDIS(net-workdriverinterfacespecification),它描述了网络接口卡(NIC)驱动程序与下层网卡物理设备,上层传输驱动程序与操作系统之间通信的接口规范.
当开发者按照NDIS标准编写ISDN小端口驱动程序后,就可以利用Windows远程访问服务收稿日期:2001_11_23.
项目来源:国家自然科学基金资助项目(49771064);国家测绘局测绘科技发展基金资助项目(97009);湖北省自然科学基金资助项目(98J080).
DOI:10.
13203/j.
whugis2002.
01.
007接入Internet.
NDIS小端口驱动程序实现原理参见文献[3].
当用户选择ISDN线路进行拨号后,ISDN拨号程序通过TAPI接口发呼叫命令,经NDISTAPI转化成与呼叫相关的形如OID_TAPI_XXX的查询命令,发往NDIS小端口驱动程序,用于控制B信道物理链路的建立.
小端口驱动程序接收上层来的NDISWAN查询和TAPI来的查询命令,进行正确响应.
当线路状态发生变化时,立即通知上层拨号程序,直至物理线路连通,这时,PPP数据包开始通过NDISWAN发往B信道,控制逻辑链路的建立.
当逻辑链路建立后,用户就可以通过Windows各种网络应用软件对Internet进行访问.
2ISDN卡拨号上网功能的实现设备驱动程序是操作硬件的底层软件,它向上提供与硬件无关的用户接口,向下直接进行I/O、DMA、中断和内存访问等操作[4].
NDIS规范作为网络设备的接口规范,它对于中断、内存访问及硬件资源获取都有规定.
ISDN卡作为一种特殊的网卡,应遵循NDISNIC小端口驱动规范,它与一般网卡驱动程序的不同主要是由ISDN卡的特性所决定的.
2.
1硬件结构本文的目标是要在已经实现了可视电话的ISDN多媒体卡的硬件基础上支持拨号上网的功能.
原可视电话ISDN卡采用BT848芯片实现复合视频信号的采集、编码,并作为PCI控制器与PCI总线进行数据传输.
另外该卡还采用了ISDN接口芯片和音频压缩芯片,分别实现ISDN通信控制和语音压缩编码,它们通过24位GPIO口与BT848进行数据交互.
为了扩展该卡的上网功能,将原用于音频压缩的芯片用于B信道的数据传输,实现了单一芯片在功能上的复用.
2.
2ISDN呼叫控制过程分析ISDNB信道的呼叫建立过程遵循Q.
931协议[5].
Q.
931是在D信道的物理链路层已经建立的情况下,通过在D信道上发送Q.
931协议包从而达到对B信道的链接、监测和管理.
在呼叫双方通过ISDN建立链接的过程中,主叫和被叫两方各自经历了呼叫的不同状态.
下面以主叫方A和被叫方B为例介绍呼叫过程.
ISDN呼叫控制的状态迁移如图2所示.
当通信开始时,呼叫双方A与B呼叫状态都处于空闲状态.
请求连接时,A发出Setup帧,此时A的状态变成呼叫开始状态.
收到交换机发出的Pro-ceeding帧后,A的状态就变成了呼叫进行状态.
交换机从Setup帧中解析出被叫方B的电话号码,向B所在地的交换机发出连接请求.
B所在地的交换机收到连接请求后,向B发出Setup帧.
B方收到Setup帧时,首先检查其中的承载能力等一些信息,当这些通过验证后,B发出Alerting帧,同时B的状态变成呼叫到来状态,B开始响铃.
当用户摘机后,B的状态变成连通请40武汉大学学报·信息科学版2002年求状态,同时向A发出Connect帧.
当A收到Alerting帧后,其状态变成对方响铃状态.
随后,当A收到了Connect帧后,A得知线路已连通,变成连通状态,同时,发出Con-nect_Ack帧,确认连通请求.
当B接收到Con-nect_Ack帧后,其状态达到连通状态.
至此,就建立起来了呼叫方和被叫方之间B信道物理链路.
这之后将在该链路上传递B信道的协议应答,建立逻辑链路,然后就可传递用户的有效数据了.
当用户通过B信道传输数据时,D信道一直在监测线路状态.
由于通信的任何一方都能释放物理链接,下面仅分析A主动释放连接时状态的变迁.
若A要求主动释放链接,它将发出Disconnect帧,此时其由连通状态变成释放请求状态,等待对方的响应;被叫方B收到Disconnect帧后,它获知A要求挂断线路,于是向A发出Release帧,对A的释放请求给出响应,同时B的状态变成被动挂断状态.
A收到Release帧后,它确认B已经收到了释放请求,现在可以释放线路,于是发出Re-leaseComplete帧,A的状态变成空闲.
当B收到ReleaseComplete帧,得知线路已断开,B的状态即恢复到空闲状态.
至此,一次完整的通信过程结束.
2.
3ISDN线路管理的实现机制本文采用的ISDN接口芯片能够接收两种数据:透明数据流和HDLC数据.
透明数据流即线路上传输的所有数据,包括垃圾数据等;HDLC数据即满足HDLC帧结构的数据.
由于在上网时,数据是时断时续的,在线路上可能存在垃圾数据,因此为了获取有效的上网数据,需要将硬件芯片设置成接收HDLC数据的模式.
ISDN硬件接口如图3所示.
HDLC_AHDLC_BHDLC_C→→→S接口→ISDN网络图3ISDN通信终端结构图Fig.
3TheStructureofISDN在图3中,HDLC_A用于D通路传输信令信息的LAPD帧处理,HDLC_B和HDLC_C分别用于两个B通路上传输IP协议包的PPP链路层帧处理,S接口负责完成ISDN的S接口的硬件处理,一端与ISDN网络接口,另一端为终端提供2B+D的字节接口.
对于ISDN上网,软件实现的关键是将各种通信协议有机地结合在一起.
系统设计结构如图4所示.
拨号程序←ISDN线路管理与拨号软件的接口↑信令协议LAPD协议I.
430协议→事件调度←事件队列←定时处理→PPP封装处理↑D信道、B信道通信中断处理图4系统结构图Fig.
4TheSkeletonofDriver对于D信道处理,如图4中箭头所示,各协议实体、定时处理和D信道通信中断处理把发生的事件放入事件队列中,事件调度从事件队列中取出事件,调用相应的协议实体处理.
各协议实体可以向定时处理申请定时服务.
以事件队列为核心,由事件调度负责各协议实体同时运行,共同完成多层协议处理.
对于B信道处理,重要的是通过PPP封装处理实现PPP数据封装.
当B信道物理链接建立后,驱动程序通过B信道通信中断处理将已封装的PPP数据发送到B信道上.
2.
4ISDN线路管理与拨号软件的接口设计拨号程序对ISDN卡的线路控制请求通过电话应用程序接口TAPI转换成TAPI的相应命令,操作系统再将这些命令转化后,会向NDIS发出形如OID_TAPI_XXX的查询消息(如对于拨号操作TapiMakeCall,Windows会向驱动程序发出OID_TAPI_MAKE_CALL的查询消息).
在驱动程序里需要处理许多这样的消息.
拨号上网时,线路的处理过程如下.
1)选择ISDN线路,开始拨号.
拨号程序用TapiOpen函数打开所选线路,每个线路对应一个呼叫,每个呼叫都有对应的呼叫状态.
线路打开时,线路的呼叫状态初始化为LINECALL-STATE_IDLE.
然后通过TapiMakeCall函数进行呼叫,Windows向驱动程序发出OID_TAPI_MAKE_CALL的查询消息,驱动程序响应这个消息,向D信道上发出封装成Q.
931消息的Setup帧,同时线路的呼叫状态转变成LINECALL-STATE_DIALING,并通过系统提供的指示函数NdisMIndicateStatus告知拨号程序目前线路的呼叫状态.
41第1期黄治华等:ISDN多媒体卡拨号上网的研究与设计NdisMIndicateStatus的调用形式如下:NDIS_TAPI_EVENTCallEvent;NdisMIndicateStatus(MiniportAdapterHandle,NDIS_STATUS_TAPI_INDICATION,&CallEvent,sizeof(CallEvent));其中,CallEvent.
ulMsg=LINE_CALLSTATE;CallEvent.
ulParam1=CallState;/*需要指示的呼叫状态(如LINECALLSTATE_DIALING)*/2)线路的呼叫过程.
D信道的信令交互严格遵循Q.
931协议,对于收到的不同的Q.
931消息,应通过NdisMIndicateStatus向拨号程序指示响应的呼叫状态.
当收到Callproceeding帧时,向上指示LINECALLSTATE_PROCEEDING状态;当收到Connect帧时,向上指示LINECALL-STATE_CONNECTED状态.
3)当呼叫状态变成了LINECALLSTATE_CONNECTED时,表示B信道物理链路已经连通,可以传输数据包了.
拨号程序获知这个状态后,会立即向驱动程序发送PPP数据包.
4)在呼叫的整个过程中,若收到Disconnect帧发现对方要求断开线路,驱动程序就将LINECALLSTATE_DISCONNECTED呼叫状态通知拨号程序,拨号程序得知后,将立即结束此次呼叫.
2.
5B信道的逻辑链路建立与数据传输当B信道物理链路连通以后,就需要在B信道上建立逻辑链路以传递数据.
对于拨号上网而言,B信道数据链路层协议用到的是PPP协议[6](包括MP协议).
PPP协议是提供在点到点链路上承载网络层数据包的一种链路层协议.
PPP定义了一整套的协议包括链路控制协议(LCP)、网络层控制协议(NCP)和验证协议(PAP或CHAP)等.
要能够在B信道上传输可靠的数据,必须通过PPP协商.
在拨号上网完成了物理线路的连接基础上,从开始验证密码到验证通过,能够正常上网,期间经历了如下过程.
1)PPP在建立链路最初,首先进行LCP[7](链路控制协议)协商,协商内容包括工作方式(是PPP还是MP)、验证协议(PAP或CHAP)和最大传输单元等.
对于ISDN而言,由于支持2B上网,所以应支持将两个B信道捆绑以实现128K的最大速度,因此必须采用MP.
LCP通过协商后,双方即完成B信道链路层通信能力的交互.
2)密码验证阶段.
LCP协商结束后,通信双方根据协商的验证协议发送验证数据包,此时拨号程序将提示用户"正在验证用户名和密码".
目前验证协议大多采用的是PAP协议,PAP为两次握手验证,口令为明文.
PAP验证过程为:首先,被验证方发送用户名和口令到验证方,然后,验证方根据用户配置查看是否有此用户以及口令是否正确,再返回不同的响应.
响应都需将验证结果告知拨号网络.
如果通过了验证,PPP进入下一步NCP(网络控制协议)阶段;如果不能通过验证,拨号网络则会提示用户密码或用户名不正确,拨号将终止或提示重拨.
3)如果通过了PAP验证阶段,则进入了NCP协商阶段,NCP协商支持IPCP[8](IP控制协议)协商,主要是协商动态IP地址,拨号上网的IP地址是由ISP服务商动态提供的.
4)IP地址分配后,就可以传输IP数据包了.
TCP协议封装在IP数据包里,由于TCP是面向连接的,所以必须和ISP通过三次握手建立TCP连接.
如果应用层的协议是HTTP协议,则需和ISP服务器的80号端口建立连接,如果应用层的协议是FTP协议,则需和ISP服务器的21号端口建立连接.
通过以上过程,B信道的逻辑链接建立起来,就可以利用各种网络软件快速访问Internet了.
3结语本文根据拨号上网的原理和ISDN通信的机制,实现了ISDN卡拨号上网功能,且能根据需要进行1B和2B通信能力的切换,达到64kbit/s和128kbit/s的通信速度.
由于本文所讨论的ISDN卡是一种支持可视通信服务的硬件设备,本文实现了设备的上网功能,使得该设备既能用于IS-DN上网,又能拨打可视电话,更好地体现了IS-DN综合业务的能力,有着较为广泛的应用领域.
参考文献1程时瑞.
综合业务数字网.
北京:人民邮电出版社,19942MicrosoftWindowsDeviceDriverKit(DDK)Guide.
Mi-crosoft,20003WilliamsM.
ISDNNDISWANMicrosoftDeviceDriverKit(DDK).
DeviceDriverResource,1996:7(3)4ChrisC.
WindowsWDM设备驱动程序开发指南.
北京:机械工业出版社,200042武汉大学学报·信息科学版2002年5CCITTRecQ.
931.
ISDNUser———NetworkInterfaceLayer3Specification,19956SimpsonW.
ThePoint_to_PointProtocol(PPP).
RFC1661,1994.
http://www.
rfc_editor.
org7SimpsonW.
LinkControlProtocol(LCP).
RFC1548,1993.
http://www.
rfc_editor.
org8McGregorG.
ThePPPInternetProtocolControlProto-col.
RFC1332,1992.
http://www.
rfc_editor.
org作者简介:黄治华,硕士生.
现从事操作系统底层开发及网络通信协议等研究.
E_mail:Huangzhihua_wd@263.
netDesignandImplementationofAccessingInternetThroughanISDNMultimediaCardHUANGZhihua1YUZhanwu1LIShihui1YIBenshun1(1TheKeyLaboratoryofMultimediaandNetworkCommunicationsEngineering,HubeiProvince,WuhanUniversity,129LuoyuRoad,Wuhan,China,430079)Abstract:ISDNcansuppliedapoint_to_pointdigitalconnectionthatcanbeusedtocarrymulti_trafficincludingbothaudioandnon_audiosignalsandperformmanyoperationssuchasdialingtoaccesstheInternet,andvideophoneespecially.
Inthispaper,thespecialdrivermodelforavideophoneISDNcard,whichhardwarewasdesignedformultiplexedmultifunction,toaccesstheIn-ternetisdeveloped.
TherelatedISDNnetworkcommunicationprotocolsarediscussedindetailandtheprincipleoftheISDNmultimediaterminalcardaccessingtheInternetundertheschemeofMS_WindowsRAS(remoteaccesssystem)isanalyzed.
InthestructureofRAS,thecallcontrolinthelineismanagedbyTAPI(TelephoneAPI),andthedatatransportisachievedbytransportdrivers.
NIC(Networkinterfacecard)driversmustcompletefourfunctions:tocompletethepro-tocolsQ.
931andQ.
921inISDNDchannelandcontrolthecommunicationinphysicalchannels;toreceiveorsenddatainBchannel;tofunctiontheinterfacewithTAPIandthemanagementoflinklayer;toactastheinterfacewithtransportdriversbyWANfunctionlibraryandNDISfunc-tionlibrary.
AminiportdriverbasedonNDIS(networkdriverinterfacespecification)fortheIS-DNmultimediacard,whichenablesthecardtofunctionasanISDNmodemandamultimediater-minalsimultaneously,isdevelopedandthedesignguideandimplementationdetailsarereported.
Keywords:integratedservicedigitalnetwork(ISDN);networkinterfacecard;driver;devicedriverkit(DDK)Abouttheauthor:HUANGZhihua,postgraduate.
Hismajoraretheimplementationofoperatingsystemandthenetworkprotocolsofmultiemdiacommunication.
E_mail:Huangzhihua_wd@263.
net43第1期黄治华等:ISDN多媒体卡拨号上网的研究与设计
BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...
A400互联是一家成立于2020年的商家,主要推行洛杉矶服务器采用kvm架构,线路优质,延迟低,稳定性高!全场产品对标腾讯云轻量,服务器线路有有美国洛杉矶cn2_gia、香港cn2+cmi,目前推行的vps服务器均为精心挑选的优质线路机房,A400互联推出了夏季优惠洛杉矶5折、香港7折促销活动,质量可靠,价格实惠!二:优惠码洛杉矶五折优惠码:20210620香港cn2七折优惠码:0710三、优惠方...
昨天,遇到一个网友客户告知他的网站无法访问需要帮他检查到底是什么问题。这个同学的网站是我帮他搭建的,于是我先PING看到他的网站是不通的,开始以为是服务器是不是出现故障导致无法打开的。检查到他的服务器是有放在SugarHosts糖果主机商中,于是我登录他的糖果主机后台看到服务器是正常运行的。但是,我看到面板中的IP地址居然是和他网站解析的IP地址不同。看来官方是有更换域名。于是我就问 客服到底是什...
拨号上网为你推荐
包过滤防火墙和灵巧网关设置支持ipad支持ipad支持ipad深圳市富满电子集团股份有限公司eacceleratorCentOS5.2下安装eAccelerator,怎么都装不上ipadwifiipad的wifi打不开怎么办?css下拉菜单css下拉菜单代码x-router设置路由器是我的上网设置是x怎么弄phpecho在php中 echo和print 有什么区别
三级域名网站 stablehost 主机 流媒体服务器 512m xfce ssh帐号 网通代理服务器 卡巴斯基永久免费版 坐公交投2700元 中国电信宽带测速网 万网空间管理 lamp是什么意思 google搜索打不开 月付空间 web是什么意思 dns是什么意思 国内免备案cdn 个人web服务器 万根云主机 更多