网络设备会话标识的自动分配方法

文档序号:7582032阅读:440来源:国知局
专利名称:网络设备会话标识的自动分配方法
技术领域
本发明涉及一种网络设备自动分配会话标识的方法,具体地说,涉及一种为网络设备所使用的RADIUS协议(拨入用户的远程验证服务Remote AuthenticationDial In User Service的缩写,参见RFC 2138、RFC 2139)中对远程拨入用户进行验证和记费的会话标识的自动分配方法,属于数据通信领域。
会话标识是记费时用来标识每个拨入用户会话的一个字符串,用户拨入到网络设备(比如接入服务器),该网络设备作为RADIUS客户端,会生成一个字符串来唯一标识该拨入用户的该次会话,供RADIUS的服务器端记费时使用。在RFC 2139中,会话标识的英文为“Acct-Session-Id”。
在RFC 2139中描述了一种网络设备会话标识的分配方法是使用8位的大写16进制数来表示,前两位数字在每次系统重启动时增加(每256次重启动后就会重复),后6位数字在每次重启动后都从0开始(对第一个登录的用户),一直分配到2^24-1(大约为1千6百万)。此外,还有其他可能的编码方式。
上述方法使用了一个8位的字符串来标识每一个会话,头2位用来记录RADIUS客户端重启动的次数,后6位从0开始,每一个用户登录进来之后就加1。按照上述的会话标识的分配方式,要保证会话标识在很长时间内不重复,就必须有一个“掉电后数据不丢失”的存储器(比如硬盘)来存储机器重启的次数。否则,每次机器掉电后重启,就会同上一次分配的会话标识重复。
目前的某些接入服务器生成会话标识的方法是每次重启动后,会话标识就从一个固定的数据开始分配,即没有一个“掉电后数据不丢失”的存储器用来存储机器重新启动的次数,这样,如果机器重新启动,为了避免会话标识的重复,就需要手工重新设定。
如果作为会话标识的字符串的长度足够长,或者是字符集的范围足够大(不仅是0到9或0到E十来个字符),那么,将时间同会话标识联系起来,就可以满足会话标识的自动分配。但是,对于某些目前已经在使用的RADIUS服务器,它可能会企图将收到的字符串转换成长整数(其可能的原因之一是当时RADIUS服务器程序同当时的某些网络设备的RADIUS客户端能够对通,而没有为以后的升级多做考虑)。有的RADIUS服务器甚至要求在较长的时间内,所有与它对通的RADIUS客户端所分配的会话标识都不重复(RADIUS服务器在建立数据库时将会话标识作为主码进行处理),这样,本来只有10位(十进制)的长整型还要分出几位来标识不同的网络设备。为了保证会话标识的有效分配,在系统非正常关机后,也只能对会话标识进行手工分配。这种手工分配既麻烦繁琐,又容易出错。
本发明的目的是提供一种可以克服上述种种缺陷的网络设备会话标识的自动分配方法。在RADIUS服务器上,如果会话标识在很长一段时间内都不重复,那么就可以认为该会话标识的分配是不重复的。使用本发明的分配方法,当带有RADIUS客户端的网络设备在非正常关机后,重新启动时,即使设备没有用“掉电后数据不丢失”的存储器存储机器已经重新启动的次数,仍然能够自动避免会话标识的重复分配,而无需再进行手工配置;并在很大程度上满足网上已经在使用的RADIUS服务器对会话标识的苛刻要求,而无需目前的RADIUS服务器修改其程序。
本发明是这样实现的是将带有RADIUS客户端的网络设备分配的会话标识与时间相关。
其具体步骤如下(1).确定单位时间t,该单位时间t不大于网络设备的平均最快接入时间T;(2).计算基本依据值d,其计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,d=n;(3).有用户拨入时,计算会话标识对第i个用户计算会话依据值d(i),计算方法为d(l)=d,d(i+l)=d(i)+k(其中i和k为不小于1的整数);根据依据值d(i)计算会话标识S(i),计算方法为S(i)=f(d(i)),f(x)是数值x的一种编码方式,即如果整数x!=y,那么f(x)!=f(y)。
当RADIUS服务器对会话标识的位数和字符集有限制时,应经过适当的间隔时间定时对会话标识的分配进行推动。
其具体操作步骤如下(1).确定单位时间t,该单位时间t不大于于网络设备的平均最快接入时间T,其中
(2).确定基数b,假定该RADIUS服务器要求会话标识至少在m时间范围内都不重复,那么基数b就可以选择不小于(m/t)的某个数字,即b>=(m/t);(3).计算基本依据值d,并开始设定一个不大于b×t的计时时间,基本依据值d的计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,那么基本依据值d为n模b,即d=n%b;(4).如果计时时间到,那么重新从步骤3开始执行,即定时推动;否则,为最近一次计时开始后拨入的第i个用户计算会话依据值d(i),并根据会话依据值d(i)为该用户分配会话标识S(i),方法如下a.d(i)的计算方法为d(l)=d,d(i+l)=(d(i)+k)%b(其中i为大于0的整数,k为1或-1或其他与b互质的整数);b.会话标识S(i)的计算方法为S(i)=f(d(i)),f(x)是数值x的一种编码方式,S(i)可以是d(i)的十进制表示,也可以是十六进制表示,或者是其他的能将小于b的正整数同一个字符集建立对应关系的任何编码(即如果x!=y,x<b且y<b,那么f(x)!=f(y))。
可以将会话标识的前面若干个字符作为不同网络设备的标识,而其他字符仍然按照上面所述的方法进行处理。
可以将会话标识的特定位置的若干个字符作为不同网络设备的标识,而其他字符仍然按照上面所述的方法进行处理。
本发明所提出的会话标识的自动分配方法,在设备非正常关机后重启动时,能自动避免会话标识的重复分配,无需再进行手工配置;也无需用“掉电后数据不丢失”的存储器存储机器已经重新启动的次数。并在很大程度上满足网上已经存在的RADIUS服务器对会话标识的苛刻要求,为网络设备的会话标识进行有效的分配,而无需网络上已经在使用的(也许设计得并不是很好的)RADIUS服务器修改程序。
下面结合附图详细介绍本发明的具体操作步骤

图1是本发明在没有定时推动时的自动分配方法的流程图。
图2是本发明在设有定时推动时的自动分配方法的流程图。
参见图1,本发明是一种网络设备会话标识的自动分配方法,是将带有RADIUS客户端的网络设备分配的会话标识与时间相关,其具体步骤如下(1).确定单位时间t,该单位时间t不大于网络设备的平均最快接入时间T;(2).计算基本依据值d,其计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,d=n;(3).有用户拨入时,计算会话标识对第i个用户计算会话依据值d(i),计算方法为d(l)=d,d(i+l)=d(i)+k(其中i和k为不小于1的整数);根据依据值d(i)计算会话标识S(i),计算方法为S(i)=f(d(i)),f(x)是数值x的一种编码方式,即如果整数x!=y,那么f(x)!=f(y)。
参见图2,本发明是一种应用于带有RADIUS客户端的网络设备会话标识的自动分配方法,其是将带有RADIUS客户端的网络设备分配的会话标识与时间相关;当RADIUS服务器对会话标识的位数和字符集有限制时,应经过适当的间隔时间定时对会话标识的分配进行推动。其具体操作步骤如下(1).确定单位时间t,该单位时间t不大于于网络设备的平均最快接入时间T,其中
比如,某个接入服务器共有30个用户端口,而每个用户从MODEM协商到最后登录成功需要45秒钟,那么,网络设备的平均最快接入时间为(45秒/30=1.5秒),单位时间t可以选择为不大于1.5秒的任何正值,比如为1秒,即t<=T;2.确定基数b,假定该RADIUS服务器要求会话标识至少在m时间范围内都不重复,那么基数b就可以选择不小于(m/t)的某个数字。即b>=(m/t);3.计算基本依据值d,并开始设定一个不大于b×t的计时时间,基本依据值d的计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,那么基本依据值d为n模b,即d=n%b;4.如果计时时间到,那么重新从步骤3开始执行(定时推动),否则,为最近一次计时开始后拨入的第i个用户计算会话依据值d(i),并根据会话依据值d(i)产生用户的会话标识S(i),方法如下a.d(i)的计算方法为d(l)=d,d(i+l)=(d(i)+k)%b (其中i为大于0的整数,k为1或-1或其他与b互质的整数)b.会话标识S(i)的计算方法为S(i)=f(d(i)),f(x)是数字x的一种编码方式,比如S(i)可以为d(i)的十进制表示,也可以是十六进制表示,或者是其他的能将小于b的正整数同一个字符集建立对应关系的任何编码(即如果x!=y,x<b且y<b,那么f(x)!=f(y))。
本发明所以要采用定时推动的原因是因为单位时间t短于设备的平均最快接入时间,而会话标识的基本依据值d(i)的产生模了b,这样,假设设备在第2次重启动之前的最后一个会话标识的依据值为d(h),第2次重启动后的第1个会话标识的依据值(基本依据值)有可能比d(h)还小(因为模了b),比如正好比d(h)小1,那么,第2次重启动后的第2个会话标识就马上同前一次最后一个会话标识重复了。
定时推动就是模拟系统的重启动,关于定时推动定时器的时间间隔长度有如下的建议(在b×t-m比m小很多时,如果仅仅满足小于b×t是不够的)首先,基数b要比m/t大一些,其次,定时推动不要太频繁,建议定时器的时间间隔长度应该至少大于计算设备平均最快接入时间时所选取的那段时间段的长度。另外,定时器的定时推动时间间隔也不要设的太长,建议小于(b×t)/u,其中,u为整数,而目满足u>b×tb×t-m]]>(将b×t分成u份,那么它的u-1份比m要大,根据这个条件,可以计算出上述的取值范围)。
上述条件是一个充分条件,但不是必要条件。这样可以保证如果任意两个会话标识的依据值相同,那么,它们之间的时间间隔一定比m大。
如果要求不同的网络设备分配的会话标识也不同,那么,可以将会话标识的前面的若干个字符作为网络设备的标识,而其他的字符仍然按照上面所述的方法进行处理。也可以将会话标识的特定位置的若干个字符作为网络设备的标识,而其他的字符仍然按照上面所述的方法进行处理。
下面介绍本发明的一个实施例其条件是RADIUS服务器要求用一个10位的十进制数的字符串形式来表示会话标识。而且要求在3个月内,任何两个会话标识不能重复。而用户的平均最快拨入时间为1.5秒。
在这种情况下,可以这样规划一个长整型的十进制标识(10位字符串),前3位用来表示不同的设备(为了避免设备号从0开始,从100开始编号),取单位时间为1秒(1秒<1.5秒),将基数b设为10000000(10的7次方),(10000000×1秒/1秒/(86400秒/天)=115.74天,大于3个月)。假设每1000000秒对会话标识进行提升或推动。并将作为参照的固定时刻选定为1970年1月1日0时0分0秒。
假设RADIUS客户端是在参照的固定时刻(即1970年1月1日0时0分0秒)后的第80000007秒后启动的,并假设系统的编号为100,那么,如果系统一直正常运行,则分配的会话标识的依据值为1000000007、1000000008、...、1000000007+头1000000秒钟内的拨入用户数-1、1001000007、1001000008、...、1001000007+第二个1000000秒钟内的拨入用户数-1、1002000007、1002000008、...、1002000007+第三个1000000秒钟内的拨入用户数-1、……1009000007、1009000008、...、1009000007+第十个1000000秒钟内的拨入用户数-1、1000000007、1000000008、...、1000000007+第十一个1000000秒钟内的拨入用户数-1、……将这些数字看成字符串,就可以作为该RADIUS客户端分配的会话标识。
权利要求
1.一种网络设备会话标识的自动分配方法,其特征在于是将带有RADIUS客户端的网络设备分配的会话标识与时间相关。
2.如权利要求1所述的网络设备会话标识的自动分配方法,其特征在于其具体步骤如下(1).确定单位时间t,该单位时间t不大于网络设备的平均最快接入时间T;(2).计算基本依据值d,其计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,d=n;(3).有用户拨入时,计算会话标识对第i个用户计算会话依据值d(i),计算方法为d(l)=d,d(i+l)=d(i)+k(其中i和k为不小于1的整数)根据依据值d(i)计算会话标识S(i),计算方法为S(i)=f(d(i)),f(x)是数值x的一种编码方式,即如果整数x!=y,那么f(x)!=f(y)。
3.如权利要求1所述的网络设备会话标识的自动分配方法,其特征在于当RADIUS服务器对会话标识的位数和字符集有限制时,应经过适当的间隔时间定时对会话标识的分配进行推动。
4.如权利要求1或3所述的网络设备会话标识的自动分配方法,其特征在于其具体步骤如下(1).确定单位时间t,该单位时间t不大于于网络设备的平均最快接入时间T,其中
(2).确定基数b,假定该RADIUS服务器要求会话标识至少在m时间范围内都不重复,那么基数b就可以选择不小于(m/t)的某个数字,即b>=(m/t);(3).计算基本依据值d,并开始设定一个不大于b×t的计时时间,基本依据值d的计算方法为获取当前网络设备的系统时间到某一个固定时刻的单位时间数n,那么基本依据值d为n模b,即d=n%b;(4).如果计时时间到,那么重新从步骤3开始执行,即定时推动;否则,为近一次计时开始后拨入的第i个用户计算会话依据值d(i),并根据会话依据值d(i)为该用户分配会话标识S(i),方法如下a.d(i)的计算方法为d(l)=d,d(i+l)=(d(i)+k)%b(其中i为大于0的整数,k为1或-1或其他与b互质的整数);b.会话标识S(i)的计算方法为S(i)=f(d(i)),f(x)是数值x的一种编码方式,S(i)可以是d(i)的十进制表示,也可以是十六进制表示,或者是其他的能将小于b的正整数同一个字符集建立对应关系的任何编码(即如果x!=y,x<b且y<b,那么f(x)!=f(y))。
5.如权利要求1或3所述的网络设备会话标识的自动分配方法,其特征在于可以将会话标识的前面若干个字符作为不同网络设备的标识,而其他字符仍然按照上面所述的方法进行处理。
6.如权利要求1或3所述的网络设备会话标识的自动分配方法,其特征在于可以将会话标识的特定位置的若干个字符作为不同网络设备的标识,而其他字符仍然按照上面所述的方法进行处理。
全文摘要
一种网络设备会话标识的自动分配方法,是将带有RADIUS客户端的网络设备分配的会话标识与时间相关。当服务器对会话标识的位数和字符集有限制时,应经过适当间隔时间对会话标识的分配进行推动。其步骤包括:确定单位时间t,确定基数b,计算基本依据值d,设定一个不大于b×t的计时,计算会话依据值及根据会话依据值为该用户分配会话标识。该方法自动避免会话标识的重复分配,并满足已在网上的RADIUS服务器对会话标识的要求,而无需其修改程序。
文档编号H04L12/18GK1269649SQ9910544
公开日2000年10月11日 申请日期1999年4月7日 优先权日1999年4月7日
发明者王建 申请人:深圳市华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1