博文
对等网络P2P(peer-to-peer) - P2P现有系统(2006-02-25 08:57:00)
摘要:http://www.ppcn.net/n1905c38.aspx
1. 技术1.1 P2P1.1.2 P2P现有系统
这些现有系统包括了eMule MLDonkey aMule Bittorrent Kademlia/Overnet clients Shareaza FastTrack clients Kazaa Lite iMesh Grokster WinMX Gnutella clients Soulseek Freenet ShareDaemon RevConnect Gnucleus eFarm DC++ pDonkey Piolet Blubster RockitNet Waste
名称
说明
eMule
MLDonkey
aMule
Bittorrent
Kademlia/Overnet clients
Shareaza
FastTrack clients
Kazaa Lite
iMesh
Grokster
WinMX
Gnutella clients
Soulseek
Freenet
ShareDaemon
 ......
BitTorrent 协议规范(翻译)(2006-02-25 08:55:00)
摘要:http://www.ppcn.net/n2933c38.aspx
BitTorrent 协议规范原文(英文)
BitTorrent 是一种分发文件的协议。它通过URL来识别内容,并且可以无缝的和web进行交互。它基于HTTP协议,它的优势是:如果有多个下载者并发的下载同一个文件,那么,每个下载者也同时为其它下载者上传文件,这样,文件源可以支持大量的用户进行下载,而只带来适当的负载的增长。(译注:因为大量的负载被均衡到整个系统中,所以提供源文件的机器的负载只有少量增长)
一个BT文件分布系统由下列实体组成:一个普通的web服务器一个静态的“元信息”文件一个跟踪(tracker)服务器终端用户的web浏览器终端下载者
理想的情况是多个终端用户在下载同一个文件。要提供文件共享,那么一台主机需要执行以下步骤:Ø运行一个 tracker服务器(或者,已经有一个tracker服务器在运行了也可以)Ø运行一个web服务器,例如apache,或者已经有一个web服务器在运行了。Ø在web服务器上,将文件扩展名.torrent 和MIME类型 application/x-bittorrent关联起来(或者已经关联了)Ø根据 tracker服务器的 URL 和要共享的文件来创建一个“元信息”文件(.torrent)。Ø将“元信息”文件发布到web服务器上Ø在某个web页面上,添加一个到“元信息”文件的链接。Ø运行一个已经拥有完整文件的下载者(被成为’origin’,或者’seed’,种子)
要开始下载文件,那么终端用户执行以下步骤:Ø安装 BT(或者已经安装)Ø访问提供 .torrent 文件的web服务器Ø点击到 .torrent 文件的链接(译注:这时候,bt会弹出一个对话框)Ø选择要把下载的文件保存到哪里?或者是一次断点续传Ø等待下载的完成。Ø结束bt程序的运行(如果不主动结束,那么bt会一直为其它人提供文件上传)
各个部分之间的连通性如下:网站负责提供一个静态的文件,而把BT辅助程序(客户端)放在客户端机器上。Trackers从所有下载者处接收信息,并返回给它们一个随机的pee......
下一代VOIP协议探讨(2006-02-25 08:52:00)
摘要:http://www.ppcn.net/n2565c39.aspx
1、引言
对话音通信仍是赢利先锋军的中国通信业来说,VoIP真正给中国的传统通信带来了一次革命,它吸引了大量的用户,已经具有一定的市场规模,但是安定之后求发展也是硬道理,一方面运营商需要更多的盈利空间,另一方面用户需要有更个性化、更多样的业务,因此下一代VoIP的发展方向就需按照业务个性化和多样性的特点发展。选择什么样的技术来支持这些特点是关键,目前可用来实现VoIP的协议有H.323,SIP,Skype,H.248,MGCP等,本文就在分析目前存在的几种VoIP网络技术的基础上。研究和对比了各种VoIP协议的特点,以及构建部署下一代VoIP需要重点考虑的问题。
2、VoIP协议介绍
2.1 H.323协议簇
国内原有的VoIP网络几乎全部基于H.323协议簇构建的,H.323协议簇是ITU-T为基于分组的多媒体通信系统,主要是视频会议系统设计的,应该说H.323协议簇在中国的VoIP业务中得到了很好的应用。之所以称作为“簇”是因为它并不是一个独立的协议,而是由多种协议组成,包括H.225,H.245,RTP,RTCP等协议。
基于H.323协议簇的IP电话网络主要由网关和网守以及后台认证、计费等支撑系统组成,网关和网守是组成VoIP系统的关键设备,网关是完成协议转换和媒体编解码的主要设备,而网守则是完成网关之间的路由交换、用户认证和计费的控制层设备。
应该说,基于H.323协议簇的VoIP系统本身就是从电信级网络的角度出发的,它有着传统电信的各种优点,比如易于构建大规模网络、网络的可运营可管理性较好、不同厂商设备之间的互通性好等,然而这种基于H.323的IP电话网络在部署和实施的时候也带来一些问题:
(1)协议过程复杂,设备成本高,投资建设成本高,导致了假IP电话(就是用已有的PSTN冒充IP电话)的出现。
(2)网关之间一旦获知彼此的路由信息,便可以直接通信,运营商无法收取通话费用,滋生了一些非法IP电话经营者。
(3)协议扩展性较差,到目前有停止不前的感觉。IP电话从业务开展以来一直是单一的业务形式,就是简单的打电话,通则通话,不通则挂机或等待重拨,因此运营商的业务开展需要更丰富的业务形式。
2.2 SIP协议
在下一代网络的技术......
对等网络P2P(peer-to-peer) - P2P网络模型(2006-02-25 08:48:00)
摘要:http://www.ppcn.net/n1906c38.aspx
1.1.1 P2P网络模型1.1.1.1 静态配置模型
静态配置模型是一种相对静态而简单的对等点定位模型。在该模型中,每个对等点都确切地知道存在于其P2P 网络中其它对等点的位置以及它们所提供的共享资源内容。
缺点:网络无法应付不能预知的随机事件和临时变更,比如对等点随机进入和退出网络。
优点:整个网络在外部攻击面前表现得很稳固。
1.1.1.2 动态配置模型(目录式)在目录式模型中,一台或多台有特殊用途的服务器为对等点提供目录服务。对等点向目录服务注册关于自身的信息(其名称、地址、资源和元数据),并通过根据目录服务器中信息的查询,使用目录服务来定位其它对等点。Napster模型是一种典型的使用动态配置模型(目录式)的网络模型
缺点:网络的不安全性(服务器失效则该服务器下的对等点全部失效),成本问题。
优点:提高了网络的可管理性,使得对共享资源的查找和更新非常方便。
1.1.1.3 动态配置模型(网络式)它由许多对等点组成,这些对等点在功能上很类似。没有专门的目录服务器。对等点必须使用它们所在的网络来定位其它对等点。没有一个对等点知道整个网络的结构或者组成网络的每个对等点的身份。希望知道网络中另一个对等点的位置时,它就发出一个查询请求并传递给邻居。这些邻居尝试满足这个请求。如果这些邻居不能完全满足这个请求,就将请求传递给它们的邻居,以此类推。Gnutella模型是一种典型的使用动态配置模型(网络式)的网络模型
缺点:容易导致网络拥塞,对大型网络应用并不适合。
优点:在查询过程中具有较大的灵活性。
1.1.1.4 动态配置模型(多播式)除了网络中的节点不必协助发现以外,多播模型和网络模型很相似。这种模型利用网络自身提供的特性来定位和确认对等点和资源。对等点使用IP多播技术定期宣布自己的存在,对此消息感兴趣的对等点检测这个消息后,抽取出主机名和端口号,并使用这个信息与新对等点建立正常的 TCP/IP 连接。
缺点:众多子网间的路由多播通信是一个非常复杂的课题;因特网对多播并不友好。
优点:减......
小偷给屋主的一封信(爆笑)(2006-05-21 22:14:00)
摘要: 哥们(习惯了,你不同意拉倒),你好: 见字如面(还是不见的好) 首先,向你道个歉,没经过你同意,就把你家的门给整开了,不过,与同行相比,我还是挺讲究的,在开锁的时候,没有用电钻、斧子等破坏性工具,如不介意的话,从经济角度上讲,你还是可以用原先那把锁的,我用人格保证,我是不偷回头客的,一来,你小门小户的也不容易,二来,从我的战利品来看,你家也不值得我来第二次。 哥们,谈一下我的进门感受吧,不用瞒我啦,你现在刚结婚,不是我能掐会算,是屋里的摆设告诉我的,我也是马上要结婚的人,为此,在工作中虽然我很匆忙,也很紧张,但我始终心存爱心,没有对此进行大规模的破坏活动。 非常喜欢你新房的格局设计,高雅的吊灯,美丽温馨的窗纱,还有床头你老婆迷人的艺术照,看得出来,哥们你的艳福不浅呀。总之,一切看来都是那么令人羡慕不已,啥时,哥们也能混成这样,也就不干这行了。 哥们,说一下我的工作程序吧,这样有利于你清点整理战场。 客厅,那有一个小保险柜,我费了不少力气,打开了一看,让我相当失望,那里居然只有十封信,拆开一封看了几眼,竟然是你多年前写给一个小丫头的情书,要不是时间紧,任务重,我非得细看不可,我这人,除了这行呀,就爱好个文学啥的,一来为了你的隐私不被你老婆发现,二来也防止信封里夹带美元等贵重物品啥的,我全拿走了,后来拆封一看,美元是没有,但我发现哥们你呀,还真挺有才呢,写的情书文采还真不错,酸不筋儿的,字里行间净是些勾人的词儿,怪不得你老婆那么漂亮呢。另外,冰箱里的果汁我喝了一瓶,挺好喝的,啥牌的还真忘了。 南屋,也就是你的卧房,是我重点关照的地方,因为工作匆忙,床罩、被单扔在地板上了,不过,你放心,我是穿着你的新袜子才来回走的,所以没有弄脏那些东西,电视、音响挺好的,大重太沉,我没有带走,也没破坏(就凭这点,你就应该谢谢我,我们这行有些人带不走的是要统统砸坏的),但是你夹在床垫子里的36700块钱我拿走了,想来,你也不太缺钱吧,要不,那么多钱,怎么会放在家里呢? 北屋的抽屉我全翻过了,只找到一只钻戒,可能是你送给你老婆的结婚信物吧,本来不想带走,但兄弟我也实在是结婚需要,没办法,拿走了,其余的东西,如牙刷呀、钥匙串呀,我都没动。 东屋是你的书柜,以为你是爱书的人,可是一翻全是道具书,光有皮和盒,没有真书,挺让我失望的,不过书柜下边的DV......
asp连接各种数据库的方法 (2006-02-22 12:01:00)
摘要: 一、asp的对象存取数据库方法 在asp中,用来存取数据库的对象统称ado(active data objects),主要含有三种对象:
connection、recordset 、command connection:负责打开或连接数据 recordset:负责存取数据表 command:负责对数据库执行行动查询命令
二、连接各数据库的驱动程序
连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。
odbc链接
适合数据库类型 链接方式 access "driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;" dbase "driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;" oracle "driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;" mssql server "driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;" ms text "driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;persist securityinfo=false;" visual foxpro "driver={microsoft visual foxpro driver};sourcetype=dbc;sourcedb=*.dbc;exclusive=no;" mysql "driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"
oledb链接
适合的数据库类型 链接方式 access "provider=mi......
几个常用的小函数 (2006-02-22 12:00:00)
摘要: //函数名:chkemail//功能介绍:检查是否为Email Address//参数说明:要检查的字符串//返回值:0:不是 1:是function chkemail(a){ var i=a.length;var temp = a.indexOf('@');var tempd = a.indexOf('.');if (temp > 1) {if ((i-temp) > 3){
if ((i-tempd)>0){return 1;}
}}return 0;}//函数名:fucCheckNUM//功能介绍:检查是否为数字//参数说明:要检查的数字//返回值:1为是数字,0为不是数字function fucCheckNUM(NUM){var i,j,strTemp;strTemp="0123456789";if ( NUM.length== 0)return 0for (i=0;i<NUM.length;i++){j=strTemp.indexOf(NUM.charAt(i)); if (j==-1){//说明有字符不是数字return 0;}}//说明是数字return 1;}//函数名:fucCheckTEL//功能介绍:检查是否为电话号码//参数说明:要检查的字符串//返回值:1为是合法,0为不合法function fucCheckTEL(TEL){var i,j,strTemp;strTemp="0123456789-()# ";for (i=0;i<TEL.length;i++){j=strTemp.indexOf(TEL.charAt(i)); if (j==-1){//说明有字符不合法return 0;}}//说明合法return 1;}
//opt1 小数 opt2 负数//当opt2为1时检查num是否是负数//当opt1为1时检查num是否是小数//返回1是正确的,0是错误的function chknbr(num,opt1,opt2){var i=num.length;var staus;//staus用于记录.的个数status=0;if ((opt2!=1) && (num.charAt(0)=='-')){//alert("You have en......
ASP 系列函数大全 (2006-02-22 12:00:00)
摘要: ASP函数大全 ASP函数与VBSCRIPT类似,以下举一些常用的函数 Array() 函数返回一个数组 表达式 Array(list) 允许数据类型: 字符,数字均可 实例: <% Dim myArray() For i = 1 to 7 Redim Preserve myArray(i) myArray(i) = WeekdayName(i) Next %> 返回结果: 建立了一个包含7个元素的数组myArray myArray("Sunday","Monday", ... ... "Saturday") CInt() 函数将一个表达式转化为数字类型 表达式 CInt(expression) 允许数据类型: 任何有效的字符均可 实例: <% f = "234" response.write cINT(f) + 2 %> 返回结果: 236 转化字符"234"为数字"234",如果字符串为空,则返回0值 CreateObject() 函数建立和返回一个已注册的ACTIVEX组件的实例。 表达式 CreateObject(objName) 允许数据类型: objName 是任何一个有效、已注册的ACTIVEX组件的名字. 实例: <% Set con = Server.CreateObject("ADODB.Connection") %> CStr() 函数转化一个表达式为字符串. 表达式 CStr(expression) 允许数据类型: expression 是任何有效的表达式。 实例: <% s = 3 + 2 response.write "The 返回结果 is: " & cStr(s) %> 返回结果: 转化数字“5”为字符“5”。 Date() 函数返回当前系统日期. 表达式 Date() 允许数据类型: None. 实例: <%=Date%> 返回结果: 9/9/00 DateAdd() 函数返回一个被改变了的日期。 表达式 DateAdd(timeinterval,nu......
asp中非常有用的20个例子(2006-02-22 11:59:00)
摘要:1.如何用Asp判断你的网站的虚拟物理路径 答:使用Mappath方法 < p align="center" >< font size="4" face="Arial" >< b > The Physical path to this virtual website is: < /b >< /font > < font color="#FF0000" size="6" face="Arial" > < %= Server.MapPath("\")% > < /font >< /p > 2.我如何知道使用者所用的浏览器? 答:使用the Request object方法 strBrowser=Request.ServerVariables("HTTP_USER_AGENT") If Instr(strBrowser,"MSIE") < > 0 Then Response.redirect("ForMSIEOnly.htm") Else Response.redirect("ForAll.htm") End If
3.如何计算每天的平均反复访问人数 答:解决方法 < % startdate=DateDiff("d",Now,"01/01/1990") if strdate< 0 then startdate=startdate*-1 avgvpd=Int((usercnt)/startdate) % > 显示结果 < % response.write(avgvpd) % > that is it.this page have been viewed since November 10,1998
4.如何显示随机图象 < % dim p,ppic,dpic ppic=12 randomize p=Int((ppic*rnd)+1) dpic="graphix/randompics/"&p&".gif" % > 显示 < img src="< %=dpic% >" >
5.如何回到先前的页面 答:< a href="< %=request.s......
asp常用代码(2006-02-22 11:58:00)
摘要:1. ASP与Access数据库连接:<%dim conn,mdbfilemdbfile=server.mappath("数据库名称.mdb")set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile%>2. ASP与SQL数据库连接:<%dim connset conn=server.createobject("ADODB.connection")con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称%>
建立记录集对象:
set rs=server.createobject("adodb.recordset")rs.open SQL语句,conn,3,2
3. SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"
(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)
(4) 添加数据记录:sql="insert into 数据表 (字段1,......
