什么是whois服务器?

什么是whois服务器?,第1张

随着近年来SIP协议受到通信界的普遍关注,在互联网界不断开发和完善SIP协议应用的同时。电信界也开始看好该协议,国际著名的无线通信组织3GPP在Release5的IMS(IP多媒体子系统)中宣布以SIP为核心协议,ETSI又在其NGN体系中采用了IMS,SIP协议大有成为下一代网络核心协议的趋势。SIP服务器作为SIP系统中的核心实体,在不同的应用场景中其功能和性能指标上都有一定的差异,但是在其应用的初期应首先针对各种场景中共性的部分作出统一规定,以便为电信运营商提供必要的技术参考,同时为设备生产厂商提供设备开发的技术依据。从而有利于电信网向下一代网络过渡的良性发展。
SIP服务器设备技术要求规定了SIP服务器设备的通用技术要求,包括功能要求、业务要求、接口要求、协议要求、通信流程、 *** 作维护与网管要求、性能及可靠性指标、互通要求、电源与接地要求、环境要求等方面的通用技术要求,对于SIP服务器在一些特定场景中的特定要求将结合实际发展情况进行分别研究。
2、SIP介绍
SIP网络结构示意及SIP服务器在SIP网络中的位置如图1所示,用于向SIP网络中的用户提供语音和视频等业务。SIP网络中的主要功能实体包括:SIP服务器、用户终端、AAA服务器、网管服务器、应用服务器、域名服务器和媒体服务器等。网络运营商可根据实际运营需要,选择合适的功能实体向用户提供语音和视频等业务。
SIP网络通过互通单元(IWF)可实现与DN/PLMN网络、H323网络或软交换网络的互通。IWF为逻辑功能实体,其功能可以内嵌于SIP服务器中,也可以由软交换设备或其他功能实体如SIP网关实现。当IWF没有内嵌于SIP服务器时,SIP服务器与IWF之间的接口协议为SIP协议。不同运营商SIP网络之间的互联互通可以通过IWF实现。SIP服务器设备技术要求对IWF的具体实现不进行规定。
下面给出图中几个术语的定义,其他设备的说明可参见软交换系列技术规范中的规定。
SIP服务器(SIP Server):SIP网络中提供呼叫控制、呼叫路由、用户管理等功能的网络设备。
用户代理(User Agent):包括SIP用户代理客户端(UAC)和SIP用户代理服务器(UAS)两个部分。UAC用于发起请求,而UAS则用于响应请求。用户代理可以在SIP语音终端、SIP视频终端和SIPIAD等实体上实现。
软交换网络:由软交换设备完成域内用户的注册、呼叫控制、路由、认证计费等功能的网络。
3、SIP基本功能要求
SIP服务器采用IP承载方式,提供的功能有:呼叫控制和处理功能、业务提供/支持功能、用户管理功能、协议处理功能、路由处理、接入认证、计费信息采集、 *** 作维护/网管功能、互通功能、安全功能(可选)、黑白名单功能、拥塞控制功能(可选)。
SIP服务器的功能结构图如图2所示。
图2 SIP服务器功能结构图
31 呼叫控制和处理功能
SIP服务器可以为基本业务/多媒体业务完成呼叫建立、维持和释放等控制功能,包括呼叫处理、连接控制、智能呼叫触发检出和资源控制等。SIP服务器应支持基本的两方呼叫控制功能和多方呼叫控制功能。多方呼叫的会议桥资源功能应通过媒体服务器完成。
32 业务提供/支持功能
SIP服务器应支持基本的语音业务和多媒体业务,还应该支持传统PSTN补充业务和数据、多媒体相关业务。SIP服务器向域内用户提供传统智能网业务需通过软交换设备实现与传统智能网互通。因此,SIP域内可提供的传统智能网业务与软交换设备提供的智能网业务相关,规范中不作具体规定。另外,由于SIP协议在支持用户代理拍叉簧,,#信号上报等方面还没有明确规定。因此规范中并不要求通过SIP协议实现补充业务的 *** 作方式。SIP服务器可以通过应用服务器或PARLAY网关。提供多种增值业务和智能业务。
33 协议处理功能
在协议处理能力方面,SIP服务器应支持SIP,SDP,SNMP,Telnet等协议,可选支持有RADIUS,Diameter协议。SIP服务器所采用的SIP协议必须支持UDP和TCP承载,无论SIP协议采用TCP或UDP承载,缺省端口号为5060。
34 路由处理功能
(1)SIP服务器应可以完成域名至IP地址的转换功能。但SIP服务器应实现请求消息重定向功能。
(2)SIP服务器应支持向域名服务器进行域名查询功能。
(3)对于号码分析和存储功能,要求SIP服务器支持存储主叫号码20位、被叫号码24位,并能扩充到28位号码的能力,具有分析10位号码然后选取路由的能力,具有在任意位置增、删号码的能力。
35 *** 作维护/网管功能
*** 作维护系统是SIP服务器中负责系统的管理和 *** 作维护的部分,是用户使用、配置、管理、监视SIP服务器的工具集合。SIP服务器应既能支持本地维护和远程维护管理,又可以通过内部的SNMP代理模块与支持SNMP协议的网管中心进行通信。规范中对于 *** 作维护系统从配置管理、故障管理、话务控制功能、安全管理、统计管理以及人机系统几个方面进行了详细规定。
36 接入认证功能
(1)SIP服务器应能对用户的每次呼叫请求进行鉴权,对未通过认证的用户发起的呼叫请求予以拒绝和丢弃。SIP服务器可以将所管辖区域内的用户终端的注册和呼叫信息送往认证中心进行用户认证与授权。
(2)SIP服务器还可以通过AAA服务器,实现对记账卡用户的认证和授权。
(3)SIP服务器应能够支持对动态IP地址配置的用户代理的认证与授权。
37 计费信息采集
在计费方面的要求。为提高SIP服务器与现有网络的兼容能力。例如能够在现有电话网的计费系统和现有IP电话网系统中使用,SIP服务器应能够支持CMIS/FTAM协议或FTAM协议、RADIUS协议或Diameter协议、FTP等计费信息的传送协议,具体传送协议的使用由各运营商根据自身网络的特点决定。至于计费方式,SIP服务器至少应具备根据计费对象进行计费信息采集功能,采集的信息包括时长、流量、媒体格式和编码方式等,并负责将采集信息送往计费中心。SIP服务器应至少支持详细话单计费方式,可选支持复式计费、立即计费等功能。SIP服务器应至少提供对主叫号码计费和对账号进行计费。
38 SIP服务器支持的通信流程
SIP服务器设备技术要求中还给出了相关通信流程的描述,包括基本的注册流程、成功呼叫流程、可靠临时响应证实流程、异常呼叫流程、呼叫释放流程以及几个典型的补充业务流程等。同时,技术要求还规定,当用户签约信息包含于后台的认证/计费中心时,用户的身份认证和呼叫过程中的计费都需要经过SIP服务器到认证/计费中心完成。SIP服务器设备技术要求中所描述的流程未包含SIP服务器和认证/计费中心之间的交互流程。
4、SIP性能及可靠性要求
41 性能要求
呼叫接通率。呼叫接通率是指在一段观察时间内,呼叫接通的次数与总试呼次数的比值。
呼叫处理能力。SIP服务器的呼叫处理能力应通过每小时忙时试呼次数(BHCA)和最大并发处理能力两个指标进行衡量。
时延。时延是指SIP服务器接收到SIP消息后完成消息处理。并实现消息成功转发的时间间隔。
42 可靠性指标
运营商一旦采用基于SIP协议的网络系统,由于SIP服务器是其系统中的关键设备,因此对于SIP服务器的可靠性就需要按电信级系统设备进行要求。在SIP服务器设备技术要求中规定如下:
SIP服务器必须采用容错技术设计,系统必须达到或超过99999%的可用性。全系统每年的中断时间小于3min。
要求SIP服务器具有高可靠性和高稳定性(如采用双机备份)。
5、电源和环境要求
考虑到SIP服务器可能会用于不同的场景,因此对其设备电源的要求从直流电源和交流电源两个方面来说明,其中直流电源规定了额定电压、电压波动范围和杂音电压的指标。此外,还对SIP服务器的接地要求进行了规定,包括接地方式、接地要求、接地线截面积、接地电阻和电源冗余度等规定。
环境要求则从温湿度、机房地面的要求、机房的防尘和对有害气体浓度的要求、抗电磁干扰能力、SIP服务器本身产生的电磁干扰要求、抗震要求、运输及仓储要求等进行了详细说明。

SimpleRegistryService本身也是作为一个dubbo服务暴露。
<dubbo:protocolport="9090" />
<dubbo:service interface="comalibabadubboregistryRegistryService"ref="registryService" registry="N/A" ondisconnect="disconnect"callbacks="1000">
<dubbo:methodname="subscribe"><dubbo:argument index="1" callback="true"/></dubbo:method>
<dubbo:methodname="unsubscribe"><dubbo:argument index="1" callback="false"/></dubbo:method>
</dubbo:service>
<bean id="registryService"class="comalibabadubboregistrysimpleSimpleRegistryService" />
上面是暴露注册中心的dubbo服务配置,
定义了注册中心服务的端口号
发布RegistryService服务, registry属性是”N/A”代表不能获取注册中心,注册中心服务的发布也是一个普通的dubbo服务的发布,如果没有配置这个属性它也会寻找注册中心,去通过注册中心发布,因为自己本身就是注册中心,直接对外发布服务,外部通过ip:port直接使用。
服务发布定义了回调接口, 这里定义了subscribe的第二个入参类暴露的回调服务供注册中心回调,用来当注册的服务状态变更时反向推送到客户端。
Dubbo协议的注册中心的暴露以及调用过程过程跟普通的dubbo服务的其实是一样的,可能跟绝大多数服务的不同的是在SimpleRegistryService在被接收订阅请求subscribe的时候,同时会refer引用调用方暴露的NotifyListener服务,当有注册数据变更时自动推送
生产者发布服务
Dubbo协议向注册中心发布服务:当服务提供方,向dubbo协议的注册中心发布服务的时候,是如何获取,创建注册中心的,如何注册以及订阅服务的,下面我们来分析其流程。
看如下配置发布服务:
<dubbo:registry protocol=”dubbo” address="127001:9090" />
<beanid="demoService" class="comalibabadubbodemoproviderDemoServiceImpl"/>
<dubbo:serviceinterface="comalibabadubbodemoDemoService" ref="demoService"/>
1 指定了哪种的注册中心,是基于dubbo协议的,指定了注册中心的地址以及端口号
2 发布DemoService服务,服务的实现为DemoServiceImpl
每个<dubbo:service/>在spring内部都会生成一个ServiceBean实例,ServiceBean的实例化过程中调用export方法来暴露服务
1 通过loadRegistries获取注册中心registryUrls
registry://127001:9090/comalibabadubboregistryRegistryServiceapplication=demo-provider&dubbo=254-SNAPSHOT&owner=william&pid=7084&registry=dubbo&timestamp=1415711791506
用统一数据模型URL表示:
protocol=registry表示一个注册中心url
注册中心地址127001:9090
调用注册中心的服务RegistryService
注册中心协议是registry=dubbo
。。。。。。
2 构建发布服务的URL
dubbo://1921680102:20880/comalibabadubbodemoDemoServiceanyhost=true&application=demo-provider&dubbo=254-SNAPSHOT&generic=false&interface=comalibabadubbodemoDemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=7084&side=provider&timestamp=1415712331601
发布协议protocol =dubbo
服务提供者的地址为1921680102:20880
发布的服务为comalibabadubbodemoDemoService
。。。。。。
3 遍历registryUrls向注册中心注册服务
给每个registryUrl添加属性key为export,value为上面的发布服务url得到如下registryUrl
registry://127001:9098/comalibabadubboregistryRegistryServiceapplication=demo-provider&dubbo=254-SNAPSHOT&export=dubbo%3A%2F%2F1921680102%3A20880%2FcomalibabadubbodemoDemoService%3Fanyhost%3Dtrue%26application%3Ddemo-provider%26dubbo%3D254-SNAPSHOT%26generic%3Dfalse%26interface%3DcomalibabadubbodemoDemoService%26loadbalance%3Droundrobin%26methods%3DsayHello%26owner%3Dwilliam%26pid%3D7084%26side%3Dprovider%26timestamp%3D1415712331601&owner=william&pid=7084&registry=dubbo&timestamp=1415711791506
4 由发布的服务实例,服务接口以及registryUrl为参数,通过代理工厂proxyFactory获取Invoker对象,Invoker对象是dubbo的核心模型,其他对象都向它靠拢或者转换成它。
5 通过Protocol对象暴露服务protocolexport(invoker)
通过DubboProtocol暴露服务的监听(不是此节内容)
通过RegistryProtocol将服务地址发布到注册中心,并订阅此服务
RegistryProtocolexport(Invoker)暴露服务
1 调DubboProtocol暴露服务的监听
2 获取注册中心getRegistry(Invoker)
URL转换, 由Invoker获取的url是registryURL它的协议属性用来选择何种的Protocol实例如RegistryProtocol, DubboProtocol或者RedisProtocol等等。 这里要通过URL去选择何种注册中心,所以根据registry=dubbo属性,重新设置url的协议属性得registryUrl
dubbo: //127001:9098/comalibabadubboregistryRegistryServiceapplication=demo-provider&dubbo=254-SNAPSHOT& export=dubbo%3A%2F%2F1921680102%3A20880%2FcomalibabadubbodemoDemoService%3Fanyhost%3Dtrue%26application%3Ddemo-provider%26dubbo%3D254-SNAPSHOT%26generic%3Dfalse%26interface%3DcomalibabadubbodemoDemoService%26loadbalance%3Droundrobin%26methods%3DsayHello%26owner%3Dwilliam%26pid%3D5040%26side%3Dprovider%26timestamp%3D1415715706560&owner=william&pid=5040&timestamp=1415715706529
RegistryFactorygetRegistry(url) 通过工厂类创建注册中心,RegistryFactory通过dubbo的spi机制获取对应的工厂类, 这里的是基于dubbo协议的注册中心,所以是DubboRegistryFactory
3 获取发布url 就是registryUrl的export参数的值
registryProviderUrl=dubbo://1033377:20880/comalibabadubbodemoDemoServiceanyhost=true&application=demo-provider&dubbo=254-SNAPSHOT&generic=false&interface=comalibabadubbodemoDemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=6976&side=provider&timestamp=1415846958825
4 DubboRegistryregister(registryProviderUrl)
通过注册器向注册中心注册服务
这里注意registryProviderUrl的并没有设置category属性, 在注册中心UrlUtilsismatch(conuumerUrl, providerUrl)比较的时候,providerUrl的category属性取默认值providers,
这点消费者订阅的时候会指定订阅的url的category=providers,去判断有没有注册的提供者。
5 构建订阅服务overrideProviderUrl,我们是发布服务
provider:/ /1033377:20880/comalibabadubbodemoDemoServiceanyhost=true&application=demo-provider&category=configurators&check=false&dubbo=254-SNAPSHOT&generic=false&interface=comalibabadubbodemoDemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=6432&side=provider&timestamp=1415847417663
6 构建OverrideListener它实现与NotifyLisener,当注册中心的订阅的url发生变化时回调重新export
7 registrysubscribe(overrideProviderUrl, OverrideListener), 注册器向注册中心订阅overrideProviderUrl,同时将Override Listener暴露为回调服务,当注册中心的overrideProviderUrl数据发生变化时回调,
注册器DubboRegistry的registry,subscribe, unRegistry, unSubscribe都类似, 是一个dubbo的远程服务调用
DubboRegistryFactory创建注册中心过程
1 根据传入registryUrl重新构建
移除EXPORT_KEY REFER_KEY
添加订阅回调参数
dubbo://127001:9098/comalibabadubboregistryRegistryServiceapplication=demo-provider&callbacks=10000&connecttimeout=10000&dubbo=254-SNAPSHOT& interface=comalibabadubboregistryRegistryService&lazy=true&methods=register,subscribe,unregister,unsubscribe,lookup&owner=william&pid=8492&reconnect=false&sticky=true&subscribe1callback=true&timeout=10000&timestamp=1415783872554&unsubscribe1callback=false
2 根据url 注册服务接口构建注册目录对象RegistryDircectory,实现了NotiyfLisener,这里NotiyfLisener实现主要是根据urls去refer引用远程服务RegistryService得到对应的Invoker,当urls变化时重新refer;目录服务可以列出所有可以执行的Invoker
3 利用cluster的join方法,将Dirctory的多个Invoker对象伪装成一个Invoker对象, 这里默认集群策略得到FailoverClusterInvoker
4 FailoverClusterInvoker利用ProxyFactory获取到RegistryService服务的代理对象
5 由RegistryService服务的代理对象和FailoverClusterInvoker构建dubbo协议的注册中心注册器DubboRegistry
6 RegistryDircectory设置注册器DubboRegistry,设置dubbo的协议
7 调用 RegistryDircectory的notify(urls)方法
主要是根据registryUrls, 引用各个注册中心的RegistryService服务实现,将引用的服务按key=menthodName/value=invoker缓存起来, 目录服务Directorylist(Invocation)会列出所调用方法的所有Invoker , 一个Invoker代表对一个注册中心的调用实体。
8 订阅注册中心服务, 服务的提供者调注册中心的服务RegistryService属于消费方, 所以订阅服务的url的协议是consumer
consumer: //1921680102/comalibabadubboregistryRegistryServiceapplication=demo-provider&callbacks=10000&connecttimeout=10000&dubbo=254-SNAPSHOT&interface=comalibabadubboregistryRegistryService&lazy=true&methods=register,subscribe,unregister,unsubscribe,lookup&owner=william&pid=6960&reconnect=false&sticky=true &subscribe1callback=true&timeout=10000&timestamp=1415800789364& unsubscribe1callback=false
订阅的目的在于在注册中心的数据发送变化的时候反向推送给订阅方
directorysubscribe(url)最终调用注册中心的RegsryService远程服务, 它是一个普通的dubbo远程调用。要说跟绝大多数dubbo远程调用的区别:url的参数subscribe1callback=true 它的意思是RegistryService的subscribe方法的第二个参数NotifyListener暴露为回调服务; url的参数 unsubscribe1callback=false 的意思是RegistryService的 unsubscribe 方法的第二个参数NotifyListener暴露的回调服务销毁。
这里dubbo协议的注册中心调注册中心的服务采用的默认集群调用策略是FailOver,选择一台注册中心,只有当失败的时候才重试其他服务器,注册中心实现也比较简单不具备集群功能, 如果想要初步的集群功能可以选用BroadcastCluster它至少向每个注册中心遍历调用注册一遍


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10340053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存