动态连接

关键词: 加密技术 技术

动态连接(精选五篇)

动态连接 篇1

SSL VPN[1]是近年来兴起的一种新型安全VPN。它是一种基于隧道技术,利用SSL/TLS协议结合强加密算法、身份认证技术开发而成的安全VPN。它通过数据包封装技术来实现虚拟专用网的私有性,通过PKI技术和加密技术来鉴别通信双方的身份和确保传输数据的安全。SSL VPN工作在系统用户空间,具有组网灵活性强、管理维护成本低、用户操作简便等特点。SSL VPN可以构建外联网、内联网和远程访问等多种VPN系统,,支持IPv4/v6,Netware IPX,Appletalk等多种网络协议,可成功穿越NAT设备。

NAT[2](Network Address Translator)是一个IETF标准,它通过把内部私有网络地址(IP地址)翻译成合法网络地址(IP地址)来解决IPv4地址稀缺的问题。NAT的出现一定程度上缓解了IPv4地址不足的问题。但NAT也有缺点,由于NAT保护的私有网络地址在公网上没有路由,所以虽然私网用户可以访问公网用户,但是如果不对NAT做特殊的处理,私网内用户就难以被公网用户所访问。尤其是公网用户想动态的访问私网用户时很困难。NAT动态反向连接就是针对这一问题提出来的。

目前的NAT动态反向连接方案是借助DNS—ALG[2]在NAT上的部署,结合公网与私网上的DNS服务器[3]实现的。这种方案增加了NAT设备的负担,效率和性能都不太理想。可扩展性、升级改造工作都存在问题。本文提出了一种利用SSL VPN来实现NAT动态反向连接的方案,能有效的解决上述问题。

1 相关技术

1.1 NAT动态反向连接

NAT动态反向连接是针对传统NAT只能实现静态、单向访问而提出的。传统NAT只能由私网主机向公网主机发起连接请求,当公网主机想首先发起连接请求时,需要事先知道想访问的私网主机地址,然后在NAT路由器上人为改动NAT表。而且一旦公网主机想更换访问的私网主机地址,也只能静态的在NAT路由器重新改动NAT表。

随着网络的不断发展,事实上许多服务器也开始部署在NAT设备后的私网中,公网用户想使用服务器提供的服务就存在问题。传统NAT静态反向连接的方法显得既笨拙又难以满足网络发展的需求。因此需要动态反向连接方案来解决这个问题。

目前的NAT动态反向连接方案是借助DNS—ALG在NAT上部署完成的。基本原理是公网用户通过私网服务器的域名,利用DNS查询服务来获取私网服务器的IP地址。在这个过程中,利用DNS—ALG完成DNS查询服务在NAT设备上的穿越,并且查询到私网服务器的地址后,返回包经过NAT路由器时在NAT表上动态修改相应的映射关系。这种方案是最早出现的一种NAT动态反向连接方案,它也提供了一种动态反向链接实现的基本思路,即可以通过第三方来修改NAT表的相关映射,从而达到公网用户访问私网服务器的目的。但这种方案的缺点也很明显:

1)由于针对DNS服务这种特定应用来实现,因此可扩展性不强。

2)增加了NAT设备的负担,影响地址穿越的效率和性能。

3)已部署的大量NAT的升级改造工作非常困难。

1.2 SSL VPN技术

VPN技术是一种充分利用隧道、认证、加密等技术手段,使用户可以利用现有的公共网络,安全的远程访问内部网络资源的网络系统。它虽然也提供了一种公网与私网之间的互通方法,但具体实现的原理与NAT有区别,见图1。

目前流行的VPN技术有很多种,其中IPsec VPN和SSL VPN[4]是比较主流的两种技术。IPsec协议是工作在IP层的安全协议,它与NAT同时工作会有许多冲突。而相比较IPsec来说,SSL协议由于工作在IP层之上,因此在穿越NAT上具有天然的优势。SSL VPN就是利用SSL协议完成数据加密、身份认证,通过隧道技术来实现私网访问的一种VPN技术。这也是本方案选择SSL VPN而不选择IPsec VPN的原因。

2 基于SSLVPN的NAT动态反向连接方案

2.1 基本原理

2.1.1 SSL VPN与NAT网关共存的问题

由于NAT不能解决公网用户动态访问私网服务器所带来的问题,而SSL VPN可以完成公网用户安全访问私网服务器的功能,见图2。

所以很容易想到通过在NAT网关上同时部署SSL VPN服务,这样当公网客户想访问私网服务器时,只需要安装SSL VPN客户端,通过SSL VPN服务器访问到私网的服务器,从而实现NAT动态反向连接。事实上,这样并不可行。

如图3所示,A、B、C分别对应图2所示客户端A、网关B和主机C。当A与B以公网地址59.64.181.5和59.64.181.1建立SSL隧道后,A去往C的数据包会按图3所示完成封包,进入隧道转发到B。B从隧道里得到去往192.168.0.5的数据包,此时不考虑NAT的影响,SSL VPN根据正常的路由信息,向地址为192.168.0.5的C转发数据包,从而实现公网主机访问私网主机的功能。而如果考虑NAT网关,在NAT网关B的NAT路由表上如果没有192.168.0.5的记录,则通过SSL VPN也无法正常访问私网里的主机C。也就是说通过SSL VPN虽然能解决公网访问私网的问题,但并不能解决在NAT设备上动态反向连接所要解决的问题。

2.1.2 SSL VPN穿越NAT网关

虽然直接利用SSL VPN无法实现NAT动态反向连接,但是由于SSL协议工作IP层之上的缘故,SSL VPN能从私网穿越NAT网关建立SSL隧道[5],这为实现NAT动态反向连接提供了可能性。

2.2 网络部署

显然,简单的在NAT网关上部署SSL VPN不能实现NAT动态反向连接。但是通过利用SSL VPN可以从私网穿越NAT网关建立SSL隧道的特性,结合DNS—ALG实现思路,可以建立基于SSL VPN的NAT动态反向连接方案的网络模型,见图4。

如图5所示SSL VPN服务器A与B分别部署在私网和公网上,由SSL VPN服务器B向SSL VPN服务器A发起SSL隧道建立的请求。当与服务器A与B之间完成隧道建立后,在服务器A上配置相关的路由信息,使得去往私网的数据包会进入A与B建立好的SSL隧道进行转发。

2.3 实现流程

如图5所示,若私网中主机B的IP地址为192.168.0.5,用户A和SSL VPN服务器A都位于公网中,SSL VPN服务器B位于与主机B相同的私网。以用户A访问私网里主机B为例说明实现流程,可以分为两个阶段。

第一阶段:

1)用户A通过路由命令,将去往192.168.0.0网络段的数据通过服务器A转发。

2)SSL VPN服务器A根据已有的路由信息,用户A发往192.168.0.0网络段的数据包塞入SSL隧道,原本目的地址为192.168.0.5的数据包,通过隧道封装之后,目的地址为SSL VPN服务器B上建立隧道的公网地址。

3)在建立隧道连接时,NAT已有了SSL VPN服务器B的IP地址记录,也就是说数据包能通过NAT转发发给私网中的SSL VPN服务器B。

4)服务器B接收到数据包然后解密,解封装得到去往192.168.0.5的数据包。于是将数据包发给主机B

5)主机B收到用户A发来的数据包,得到用户A的的地址,于是经过NAT网关正常的向用户A回包。

此时,在NAT表上就有了主机B的记录。

第二阶段:

用户A收到主机B的回复后,就可以直接通过NAT网关与主机B进行正常的通信,不需要再经过SSL VPN服务器。

3 实验环境下的实现

3.1 实验平台的搭建

用五台实验机按照图5所示,搭建实验下网络环境。五台实验机分别对应SSL VPN服务器A、SSL VPN服务器B和NAT网关、公网用户A以及私网主机B。

五台实验机均安装相同内核版本的Red Hat Enterprise Linux 5操作系统,另外在SSL VPN服务器A、SSL VPN服务器B上安装相同版本的Openvpn、网关上配置NAT服务。

3.2 利用Openvpn完成SSL VPN部署

SSL VPN服务可以利用现有的开源软件Openvpn来实现部署。OpenVPN是一个基于虚拟网卡TUN/TAP设备实现的,具备完全特征的SSL VPN解决方案。能够进行大范围的配置操作,包括远程访问、站点-站点间VPN、Wi Fi安全及企业级远程访问解决方案,支持负载均衡,错误恢复及细粒度的访问控制。

3.2.1 SSL VPN服务器A上的配置文件

3.2.2 SSL VPN服务器B上的配置文件

3.3 实验现象分析

在实验平台搭建完毕后,先对NAT网关进行测试检验。也就说测试在不开启SSL VPN服务时,实验平台下的通信情况。

此时,私网主机B能够访问公网用户A的IP地址。在NAT网关的两个网卡上抓包发现:私网主机B发往公网用户A的数据包在到达NAT网关时,源地址是B目的地址是A。而数据包出了NAT网关后,源地址是NAT的公网地址、目的地址是A。数据包到达公网用户A后,公网用户A能够发送回复数据包到达私网主机B。但是,如果由公网用户A向私网主机B首先发起数据通信,则通信失败。

开启SSL VPN服务后,进行通信测试。此时在私网主机B没有与公网用户A进行过通信的前提下,由公网用户A向私网主机B首先发起数据通信,通信成功。

通过对实验机各关键点用tcpdump抓包分析,证实数据的流程完全符合实现流程。

4 可扩展性分析

4.1 结合DNS服务器的部署

虽然借助DNS-ALG在NAT上的部署,实现NAT动态反向连接的方案存在很多问题,但利用域名去访问服务器更符合实际应用。

早期的SSL VPN仅仅支持WEB应用。但用Openvpn实现的SSL VPN将TCP/UDP应用的数据重定向到SSL隧道中,从而支持绝大部分基于TCP/UDP的应用。这样一来,基于SSL VPN的NAT动态反向连接方案完全可以结合DNS服务器部署。

这样的好处是保留了利用域名访问私网服务器的优势,又不需要利用DNS-ALG在NAT上的部署,不会给NAT设备增加额外的负担。

4.2 基于安全性的扩展

基于SSL VPN的NAT动态反向连接方案,是利用了SSL协议能穿越NAT设备,通过VPN的隧道技术实现整体部署的。

虽然VPN技术是应用于网络之间、主机之间、主机与网络之间的一种安全通信的技术。但NAT动态反向连接方案却不是针对安全性的解决方案。因此本方案虽然利用了SSL VPN来部署网络环境,但是并没有因此解决网络上主机通信的安全问题。具体说来,SSL VPN服务器A与SSL VPN服务B之间的隧道是通过了SSL加密保护,进入隧道的数据都是处于SSL加密的保护之下。但数据没有进入隧道的部分就得不到安全保护。尤其是处于公网上的数据报文,仍然面临被攻击的威胁。

在安全性是首要考虑的情况下,基于SSL VPN的NAT动态反向连接方案还是可以和许多安全解决方案同时部署。如图6所示,如果适当的配置,改变实现流程。可以保证用户A在主机B之间的数据通信完全在SSL隧道的保护之下。由于安全解决方案很多情况下是需要根据实际应用来完成部署的,也就是说什么情况下需要将用户A在主机B之间的数据通信完全保护,或者部分保护很大程度取决于实际应用和安全管理人员的选择。

因此是如图6所示的安全部署,还是只是部分数据段进入隧道保护,或者在用户A与主机B之间直接建立安全隧道,这些都需要整体的部署。本文重在实现NAT动态反向连接方案的基础上,提供一种可供扩展的、可行的思路。具体实现受限于实验环境,没有深入研究。

4.3 位于NAT之后的主机间通信

NAT动态反向连接方案最基本的应用场景是图五所示的,解决公网用户与私网主机间通信问题。然而现实网络环境下,很多的应用场景是图7所示的,位于NAT后的两台主机之间的通信。

图7对基于SSL VPN的NAT动态反向连接方案进行了扩展。利用SSL VPN服务B和服务C均能穿越NAT与服务A建立隧道的特性,将服务器A设置成一个中介转发路由器。这种实现思路类似于目前流行的,利用中介代理服务器[6]实现NAT后主机通信的方案。

5 结语

本文给出了一种基于SSL VPN的NAT动态反向连接方案,该方案借助成熟的开源软件Openvpn完成网络环境的部署与实现,便于实施,易于维护。该方案不需要对NAT网关做特殊的更改,这样不会增加NAT的负担,而且由于隧道封装的特性,也不用针对某一种特殊的应用做出相应的改动。通过实验平台的搭建对该方案可行性进行了验证。并针对可扩展的方案进行了讨论。限于实验环境,没有完成可扩展方案的实现,这将是笔者今后的研究重点。

参考文献

[1]周敬利,曾海鹏.SSL VPN服务器关键技术研究.计算机工程与科学,2005;27(6):7—8

[2]RFC2663IP Network Address Translator(NAT)Terminology and Considerations

[3]RFC1035Domain Implementation and Specification

[4]Ken A.SSL VPN gateways:a new approach to secure remote access.Databaseand Network.2003;33(6):3—5

[5]郭瑞,赵新辉.一种SSL VPN技术的实现与研究.科技信息,2007;19:305—307

动态连接 篇2

(一)、指定动态库:

Declare语句中的Lib子句用来告诉Visual Basic如何找到包含过程的.dll文件。 如果引用的过程属于Windows核心库(User32、Kernel32或GDI32),则可以不包含文件扩展名,如:

Declare Function GetTickCount Lib ”kernel32“ Alias ”GetTickCount“ () As Long

对于其它动态连接库,可以在Lib子句指定文件的路径:

Declare Function lzCopy Lib ”c:windowslzexpand.dll“ _

(ByVal S As Integer, ByVal D As Integer) As Long

如果未指定libname的路径,Visual Basic将按照下列顺序查找该文件:

①.exe文件所在的目录

②当前目录

③Windows系统目录

④Windows目录

⑤Path环境变量中的目录

下表中列出了常用的操作系统环境库文件。

动态链接库描述

Advapi32.dll高级API服务,支持大量的API(其中包括许多安全与注册方面的调用)

Comdlg32.dll通用对话框API库

Gdi32.dll图形设备接口API库

Kernel32.dllWindows32位核心的API支持

Lz32.dll32位压缩例程

Mpr.dll多接口路由器库

Netapi32.dll32位网络API库

Shell32.dll32位ShellAPI库

User32.dll用户接口例程库

Version.dll版本库

Winmm.dllWindows多媒体库

Winspool.drv后台打印接口,包含后台打印API调用。

对于Windows的系统API函数,可以利用VB提供的工具API Viewer查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。

(二)、使用别名:

Declare语句中的Alias子句是一个可选的部分,用户可以通过它所标识的别名对动态 库中的函数进行引用。例如,在下面的语句中,声明了一个在VB中名为MyFunction的函数,而它在动态库Mydll.dll中最初的名字是MyFunctionX。

Private Declare Function MyFunction Lib ”Mydll.dll“ _

Alias ”MyFunctionX“ ( ) As Long

需要注意的是,Alias子句中的函数名是大小写敏感的,也就是说,必须与函数在生成时的声明(如在C源文件中的声明)一致。这是因为32位动态库与16位动态库不同,其中的函数名是区分大小写的。同样道理,如果没有使用Alias子句,那么在Function(或Sub)后的函数名也是区分大小写的。

通常在以下几种情况时需要使用Alias子句:

A.处理使用字符串的系统Windows API过程

如果调用的系统Windows API过程要使用字符串,那么声明语句中必须增加一个Alias 子句,以指定正确的字符集,

包含字符串的系统Windows API函数实际有两种格式:ANSI和Unicode( 关于ANSI和Unicode两种字符集的区别将在后面详细阐述)。因此,在Windows头文件中,每 个包含字符串的函数都同时有ANSI版本和Unicode版本。例如,下面是SetWindowText函数 的两种C语言描述。可以看到,第一个描述将函数定义为SetWindowTextA,尾部的”A“ 表明它是一个ANSI函数:

WINUSERAPI BOOL WINAPI SetWindowTextA(HWND hWnd, LPCSTR lpString);

第二个描述将它定义为 SetWindowTextW, 尾部的”W“ 表明它是一个 Unicode 函数:

WINUSERAPI BOOL WINAPI SetWindowTextW(HWND hWnd, LPCWSTR lpString);

因为两个函数实际的名称都不是”SetWindowText“,要引用正确的函数就必 须增加一个Alias子句:

Private Declare Function SetWindowText Lib ”user32“ _

Alias ”SetWindowTextA“ (ByVal hwnd As Long, ByVal _

lpString As String) As Long

应当注意,对于VB中使用的系统WindowsAPI函数,应该指定函数的ANSI版本,因为只 有WindowsNT才支持Unicode版本,而Windows95不支持这个版本。仅当应用程序只运行 在WindowsNT平台上的时候才可以使用Unicode版本。

B.函数名是不标准的名称

有时,个别的DLL过程的名称不是有效的标识符。例如,它可能包含了非法的字符(如连 字符),或者名称是VB的关键字(如GetObject)。在这种情况下,可以使用Alias关键字。例 如,操作环境DLLs中的某些过程名以下划线开始。尽管在VB标识符中允许使用标识符,但是 下划线不能作为标识符的第一个字符。为了使用这种过程,必须先声明一个名称合法的过程, 然后用Alias子句引用过程的真实名称:

Declare Function lopen Lib ”kernel32“ Alias ”_lopen“ _

(ByVal lpPathName As String, ByVal iReadWrite _

As Long) As Long

在上例中,lopen是VB中使用的过程名称。而_lopen则是动态连接库中可以识别的名 称。

C.使用序号标识DLL过程

除了使用名称之外,还可以使用序号来标识DLL过程。某些动态连接库中不包含过程的名称,在声明它们包含的过程时必须使用序号。同使用名称标识的DLL过程相比,如果使用序号,在最终的应用程序中消耗的内存将比较少,而且速度会快些。但是,一个具体的API的序号 在不同的操作系统中可能是不同的。例如GetWindowsDirectory在Win95下的序号为432,而在WindowsNT4.0下为338。总而言之,如果希望应用程序能够在不同的操作系统下运行,那么最好不要使用序号来标识API过程。如果过程不属于API,或者应用程序使用的范围很有 限,那么使用序号还是有好处的。

要使用序号来声明DLL过程,Alias子句中的字符串需要包含过程的序号,并在序号的 前面加一个数字标记字符(#)。例如,Windowskernel中的GetWindowsDirectory函数的序 号为432;可以用下面的语句来声明该DLL过程:

Declare Function GetWindowsDirectory Lib ”kernel32“ _

Alias ”#432“ (ByVal lpBuffer As String, _

ByVal nSize As Long) As Long

在这里,可以使用任意的合法名称作为过程的名称,VB将用序号在DLL中寻找过程。

为了得到要声明的过程的序号,可以使用Dumpbin.exe等实用工具(Dumpbin.exe是Microsoft VisualC++提供的一个实用工具,它的使用说明可以参见VC的文档)。利用Dumpbin,可以提取出.dll文件中的各种信息,例如DLL中的函数列表,它们的序号以及与代码有关的其它信息。

动态连接 篇3

Romer(1986)提出了以知识生产和知识溢出为基础的知识溢出模型,指出基于区域的知识存量和知识吸收能力以及人力资本存量的空间知识溢出成为区域经济增长的主要动力源泉[1]。Lucas(1988)又提出了劳动力空间集聚产生了强外部性人力资本,并指出该外部性提升了生产率和经济增长[2]。此后,知识溢出和作为知识溢出载体的高级人才作为推动区域发展、经济增长和创新能力的一个关键要素,受到了普遍的重视。大量的实证研究也证明了高级人才、区域发展绩效和经济增长之间具有强相关关系(Eaton and Eckstein,1997;Black and Henderson,1999;Glaeser and Saiz,2004;Rodriguez-Pose and Vilalta-Bufi,2005)。特别在高技术或者知识密集型行业,高级人才的流动在高技术产业的兴起和发展中起到核心作用。Audretsch(2001)对于加利福尼亚生物科技公司的调查显示,获得高素质人才是这些企业发展的关键因素[3]。Florida(2002)关于创新阶层的研究表明了人力资本是区域发展的推动力,人才的经济地理分布对高科技产业定位和区域发展具有重要影响[4]。

不少文献分析了科技人才区域分布的经济影响,大都指出富有科技人才的区域可以引致巨大的经济利益,而缺乏科技人才的区域则会遭受经济损失。一些学者在现实案例分析的基础上指出,活跃在一国或地区的优秀科学家和工程师的数量,对企业成功进入相应科技领域具有显著正效应。并认为,在高科技产业形成或者转型中发挥关键作用的,并非科学家们潜在的研究成果,而是优秀科学家本身,包含他们具有的知识层次、思维模式、科研态度等。因为高级人才特别是优秀科学家在区域动态发展中具有关键作用,高级人才的地理分布和他们的流动模式也引起了学者和政策层越来越广泛的关注。本文的目的就在于阐述人才流动和知识溢出之间的关系,并构建二者之间的一个动态关系模型,研究人才流动对知识溢出和区域发展的作用和机制。

1 知识转移和溢出的一个关键机制:人才流动

近年来,关于知识流动的文献提出,不仅人才市场和社会网络影响知识的转移和流动,而且知识溢出也构成了一个更为主要的渠道。这其中,高级人才流动(或人力资本的转移)则成了知识溢出的一个核心机制。比如,Brnce Fallick et al.(2006)对硅谷计算机专业人才的调查研究指出,公司间科技人才流动是造成区域知识溢出的主要源泉[5]。本文认为,高级人才通过他们的流动实现了从一个区域到另一个区域的知识转移,他们充当了知识溢出载体。

有学者认为,高级人才在企业、大学和其他组织中的流动构成了区域集体学习和知识转移的核心机制,形成了高科技集群产业的动态发展。在本地劳动力市场上,流动的高级研究人员、科学家、工程师和管理人员是重要的知识载体,引致了专业知识的广泛转移、深化并扩展了区域知识库。但是,劳动力流动并非局限于当地和本区域内。相反,高级人才的全球竞争愈演愈烈,诸如高级管理人员、科学家和工程师的跨国转移成为重要趋势。这种趋势的主要推动力是技术发达国家对先进科学技术的需求增加,以及技术移民政策更加吸引高级人才的流动。Williams(2007)指出,人才的国际流动是科学技术和管理知识全球范围内快速扩散的强力机制,高科技中心对发达国家的科学进步和创新做出了贡献,也推进了知识型产业群的涌现[6]。

Williams(2007)还指出,人才的长期迁移已经被多样性的短期流动所代替,所以出现了人才国际流动和国际回流并行而并非仅仅是人才流出的局面。而且不少文献讨论了人才流动引致的知识溢出是一个复合方式,人才输出国和输入国之间会因为人才流动而产生利益共享。这就是说我们在评价高级人才国际流动时要要一分为二地看待“人才流出”和“人才流入”问题。

Saxenian(2005)指出中国台湾、中国大陆、印度的IT产业因为那些在美国学习或工作的人员回归而得到加速蓬勃发展[7]。这种回归工作或者创办新企业的现象逆转了原先人才外流的观点,说明了人才输出国或地区可以从人才流动中获利。即使那些人才移民出去后而不再回来,连接移居海外的高级人才和其祖国之间的关系网络的加强,也减缓了高级人才流出的负面影响。Agrawal et al.(2003)的一项研究表明,促进知识转移的社会关系网络持续存在,输入人才的地区对输出人才的地区存在着知识溢出[8]。

为更好地看待人才流动问题,本文参照Regets(2001)的研究,给出高级人才流动对人才输入国和输出国可能产生的影响(见表1)[9]。

2 基于动态知识连接模型的人才流动、知识溢出和区域发展

2.1 高级人才流动引致的区域间知识相互作用

许多学者认为知识转移是指知识接收者能够获得与知识转移者相同知识的类似认知,而且知识转移是一个动态的过程,是组织系统不断学习过程中的一部分。知识会流向那些更适于接受它的地方、区域。因为在知识流动过程中存在着知识发送者、接收者和传输系统几个要素,这就决定了知识的流动绝非简单的模式,特别是知识本身的隐性性质,使它高度依赖于诸如面对面的直接交流、地理邻近性、区域环境、社会网络中的信任关系、个人经历、地区社会文化等影响知识流动的重要因素。正如Saxenian(2005)所指出的,对于区域创新活动来说,重要的不是人才和知识在区域的聚集,而是这些资源的流动与交流,而保障流动与交流的条件是社会网络[7]。

为了分析高级人才流动引致的区域间知识相互作用,我们认为:在知识溢出的方向上,扩散可以是单向的、非对称的,也可以是对称的、合作性的;在知识溢出的机制上,认为知识能通过学习,传播到其他企业和个人而得以复制、共享和转移;在知识溢出的载体上,除了通过专利引用、商品流动等情况形成知识溢出外,通过知识人才的流动形成了知识溢出的最主要渠道。

由于知识溢出的区域性,通常认为研究知识溢出必须研究区域内知识流动,比如,韩伯棠等(2005)根据关于知识溢出与发展中国家高新区的相关研究,以及关于人员流动和社会网络方面的研究,知识溢出的产生机理是由于区域内部知识型员工的流动造成的[10]。但是这就没有考虑知识流动及溢出的动态反馈效应。为了揭示区域间高级人才,比如优秀科学家流动等,对知识流动以及区域发展的作用,本文提出了区域间人才流动的动态知识连接模型。该模型考虑了所讨论问题的复杂性,区分了初始知识流动和后续知识流动(见图1)。

高级人才从区域1(输出地区)移动到区域2(输入地区),产生了区域间知识溢出。这种溢出不仅仅是区域1对区域2的溢出,而且还应该考虑区域2对区域1的影响,因为我们不能忽视高级人才移动带来的潜在的后续知识流动与后续知识溢出。为此,高级人才的移动在人才输入和输出区域间提供了更进一步的知识交互,会产生动态知识回流效应。

本文所指的后续知识流动可以表现为,一些潜在的人才可能跟随高级人才从区域1流动到区域2,因此从输出区域向输入区域产生了进一步的知识溢出。这些跟随者可能包括:高级人才先前团队的成员,或者其学生。更进一步,假设高级人才维持着他们与输出区域的学术界和产业界的关系,比如,科学技术或研发合作、专业知识和思想交流的非正式联系等,那么就会在两个区域间建立起知识的反向转移或者建立起区域间科学技术回流的机制。

2.2 高级人才流动对科技和经济的影响

在本文的动态知识连接模型中,对人才输出和输入地区,我们区分了高级人才的流动对经济的影响和对科技系统的影响。为此,应该明确,这些影响的强度依赖于科技和经济专业化、各自区域的知识基础、其吸收能力和高级人才停留在该区域的持续时间。

由于高级人才的移动,吸引到一定区域中的外部行为主体和试图利用外部知识的当地行为主体共同推动知识技能的流入[11],输入区域的科学基础有所强化,而相应的输出区域的科技能力则有所削弱。如果跟随者在数量上很大,在质量上比较优秀,那么初始效应就会强化。反向知识转移和区域间知识回流的机制的存在,能缓解这一问题,对输出和输入区域都带来不同程度的科技收益。如果高级人才所拥有的知识能在当地有效扩散的话,输入区域就会因他们的迁入而获得特别的收益。这自然就需要高级人才嵌入到移入区域的科技群体,通过合作研究、非正式联系、与当地人才进行的其他类型的科技协作。

高级人才的流动对经济产生的影响,我们要动态地看待。初始阶段,一方面人才输出区域1会丢失创新的关键资源,从而产生巨大经济社会损失;另一方面输入区域则因为高级人才的到来对本地产业带来正向作用,促进本地经济社会的大发展。长期来看,如果高级人才不能割断其与先前所在区域的联系,区域间知识回流就会产生,会对输入和输出区域的经济发展和创新都产生刺激作用。知识技能在企业、产业中的集聚和扩散作用随着高级人才流动而在区域间循环进行,不仅提升了区域间产业的创新优势,提高了区域间竞争能力,而且有助于区域间产业创新优势的可持续发展和经济的进一步增长。

之所以如此,原因在于,来自于区域2的后续新知识反向流入区域1,缓解了区域1的经济增长因失去关键性资源而产生的损失。同时,来自于区域2的后续新知识反向流入区域1,则缓解了区域1的科技能力的弱化的局面。详细分析区域1和区域2间的长期或潜在影响,可以得到,这种相互促进的动态知识连接的出现取决于科技知识的经济开发有效机制的成功创造,包括了学术性创业企业家(即创办企业的优秀科学家)、高级人才和当地产业之间的正式或非正式的联系网络、高级人才作为科技型企业的咨询顾问等。换句话说,知识转移双方之间关系质量,尤其是知识接受方的社会网络和关系能力将严重影响整个知识转移的效果。因此,我们必须强调,只有那些与东道主地区具有一些联系的“嵌入型高级人才”才可能作为区域发展的发动机,然而,那些缺乏这样联系的“隔离型高级人才”对区域发展几乎没有影响。

3 结语

由于知识本身的特征(如复杂性、专有性以及内隐性等),尤其是转移和学习那些体现在人身上的知识时,区域间知识溢出和知识转移是相当复杂的过程。本文分析了人才流动和知识溢出之间的关系,构建了二者之间的一个动态知识连接模型,研究人才流动对知识溢出和区域发展的作用和机制,指出区域间存在反向知识转移和知识回流的机制,这样会使得人才输入区域和输出区域都会获得人才流动的收益。鉴于高级人才及其知识溢出对经济增长和区域发展具有突出的作用,所以要更加重视吸引和维持高级人才。主要的方法和措施包括:工资待遇、社会关系网络、项目支持、补助及奖励、制度保障、税收优惠、生活条件等等。至于哪些主要的因素起到决定作用,如何制订针对性的政策,将是后续研究的内容。

摘要:作为知识载体的高级专门人才及其知识溢出效应,对区域经济增长的推动作用和贡献无可争议。在高级人才流动和转移的基础上,讨论人才流动和知识溢出之间的关系,构建了一个区域间人才流动的动态知识连接模型,分析高级人才流动及知识流动对区域发展的作用。

关键词:人才流动,知识溢出,区域发展,知识转移

参考文献

[1]Romer P M.Increasing Returns and Long-run Growth[J].Journal of Political Economy,1986,94:1002-1037.

[2]Lucas R E.On the Mechanics of Economic Development[J].Journal of Monetary Economics,1988(22):3-42.

[3]Audretsch D.The Role of Small Firms in U.S.Biotechnology Clusters[J].Small Business Economics,2001,17(1-2):3-15.

[4]Florida R.The Economic Geography of Talent[J].Annals of the Association of American Geographers,2002,92(4):743-755.

[5]Bruce Fallick,Charles A.Fleischmann,James B.Rebitzer.Job-Hopping in Silicon Valley:Some Evidence Concerning the Microfoundations of a High-Technology Cluster[J].The Reviewof Economics and Statistics,2006,88(3):472-481.

[6]Williams A.International Labor Migration and Tacit Knowledge Transactions:a Multi-level Perspective[J].Global Networks,2007,7(1):29-50.

[7]Saxenian A.From Brain Drain to Brain Circulation:Transnational Communities and Regional Upgrading in India and China[J].Comparative International Development,2005,40(2):35-61.

[8]Agrawal A,Cockburn I,McHale J.Gone But Not Forgotten:Labor Flows,Knowledge Spillovers,and Enduring Social Capital[J].Journal of Economic Geography,2006,6(5):571-591.

[9]Regets M.Research and Policy Issues In High-skilled International Migration:A Perspective with Data from the United States[C].Discuss Paper(No.366),2001.Bonn:Institute for theStudy of Labor.

[10]韩伯棠,朱美光,等.基于知识溢出的高新区科技人才流动研究[J].科技进步与对策,2005(5):155-157.

动态连接 篇4

一、ASP.NET实现Web数据库访问技术

ASP.NET通过支持服务器端的ActiveX组件, 从而为Web数据库连接和访问提供了基础, 对ActiveX组件的支撑是访问数据库的重要组件, 以ASP为基础, 建立了以HTML网页、ActiveX组件、ASP命令构成了动态交互且效率较高的Web服务器的应用程序扩展, 同时也实现了较为复杂的Web功能扩展。

使用ADO.NET组件访问数据库, 在ASP ActiveX组件中选择。NET通过对数据库的访问。使用ADO.NET对象, 可以创建和管理数据库连接, 并获得数据, 执行更新, 删除, 添加数据, 访问数据库, 从数据库服务器中提示出错误的消息等。通过使用ADO.NET的ASP./NET连接到数据库程序, 为用户提供连接到任何ODBC兼容的数据库, 并创建一个功能齐全的数据库应用程序的能力。ADO.NET提供四个核心对象, 他们分别是:Connect ion, Command, DataReader和DataAdapter。

ADO.NET使用简单、高速度、占用资源较少, 由此具有无可比拟的优势, 它并未强调对象继承, 大多数的ADO.NET对象是单独形成的, 同时允许开发人员只生成和继承所需要对象, 这种技术的特点致使其在实际的应用过程中创造更少的ADO.NET对象, 从而在很大程度上减少了工作量。任何命令请求都需要通过网络数据库的数据库服务器, 然后从数据库服务器接受结果和产生相应的Web页面和数据, 发送回用户浏览器。

ASP.NET可以在web服务器上生成和执行动态、互动、高效的应用程序。但迅速作出反应, 节省内存交互动态网页的制作只有通过ASP.NET几个对象是不够的, 但也可以使用ASP.NET对象作为搭配使用。充分利用ASP.N ET技术和ADO.NET技术, 实现了交互式动态web页面的开发, 使web站点上实现数据检索和修改, 实现较为复杂形式的检索和修改, 可以极大地减少了手工操作和劳动的工作量。

二、ASP.NET连接数据库的常用方法

数据库的连接是一种重要的联系环节, 在数据库访问过程中。ASP.NET可以实现多种常见的数据库连接。.NET框架包括四个数据名称空间, 也就是SQLClient, OLEDB, ODBC和OracleClient。其所对应的连接状态是OLEDB接口, ODBC接口和Oracle数据库。无论使用怎样的数据名称空间, 在数据库连接程序的编写之前, 必需说明所使用的特定名称空间。

SQL Server数据库为大型数据处理能力提供了技术支撑, 并采用多级用户识别模式、安全较强, 在中型和大型数据库应用程序领域得到广泛应用。链接到SQL Server数据库的实现示例ASP.NET连接到数据库的步骤, 在引入相关的特定命名空间ASP.NET连接SQL Serv er数据库的过程中, 引入特定命名空间的语句如下:Using System;Using System.Data;Using SystemData.SqlClient;

定义连接字符串, 不同数据库连接字符串具有不同的格式, 来连接数据库必须定义相应的连接字符串, 解释连接服务器名称、登录信息和使用的数据库名称。

三、结束语

有互动功能的网站开发和管理必须解决Web与数据库的连接问题。asp.net作为优秀的动态Web开发技术的数据库连接, 要实现网络上和控制和数据有很大的优势。通过上述ASP.net Web和实现数据库连接技术特性进行了分析。为了进一步了解asp.net 2.0核心技术的成熟度和效率高、灵活性、安全。在数据库连接, 概述了ASP.NET 2.0的语言特征, 并实现Web和多种类型的数据库连接模式。

摘要:通过对ASP.NET能与HTML网页、ActiveX控件以及ASP指令结合起来的一种动态而高效的Web服务器的应用程序技术。通过对ASP.NET实现Web数据库链接的技术特性分析, 明确了多种数据库与Web的动态连接模式中的ADO。NET Web和数据库的连接。Web和各种数据库连接方法。

关键词:ASP.NET,WEB数据库,动态连接

参考文献

[1]刘涛.ASP.Net的数据库连接技术探讨[J].韶关学院学报.2011 (04) .

[2]颜昌沁, 黄吉亚, 漆丽娟.ASP.NET存取SQL数据库图片的方法[J].科技资讯, 2011 (15) .

[3]孟彬.项目教学法在ASP.NET程序设计教学中的应用[J].衡水学院学报, 2011 (04) .

动态连接 篇5

一、基于预连接动态资源下载算法

基于预连接的动态资源下载算法由三部分组成:数据分片块预下载选择策略、紧急数据通道策略、基于预连接的对等节点选择策略。三种策略在保证数据及时到达率上各有分工:前者用来降低数据在网络中的健康程度差异给数据的及时到达可能带来的影响;中者保证系统在将数据投送给播放器之前尽量完整;后者用来降低对等节点的性能差异给数据的及时到达带来的影响。

从整个系统的体系结构上看,若将系统自上而下分为应用层、文件系统层、P2P层、网络层,前者服务于应用层,中者服务于文件系统层,而后者服务于P2P层,如图1所示。

三者的服务对象也有所区别,数据分片块预下载策略的服务对象是系统可能会投递给播放器的若干个数据分片块;紧急数据通道策略针对的是系统即将投递给播放器的若干个数据分片;基于预连接的对等节点选择的服务对象则是对等节点。如图2所示。

二、具体实施步骤

在具体实施上,采取以下步骤实现。

1.数据分片块预下载选择策略

数据分片块预下载选择策略的一个重要角色是资源预下载区,资源预下载区是一种存储数据分片块下载状态的滑动缓冲区。资源预下载区中的基本成员为Block_num,State,其中State分为已下载、未下载、正在下载三种。

假设当前正在播放的数据分片块号为block_now,资源预下载区大小为N,资源预下载区包含的是分片块号大于block_now的N个连续分片块的信息。

步骤1,查看资源预下载区的状态。

(1)在一个预下载周期开始时,清除数据分片块号等于block_now的分片块。预下载周期是播放器播放一个数据分片块所需的时间,计算公式为:T=Size_block/(Size_piece×Speed_play),其中,数据分片piece是下载数据的最小单位,大小固定,根据经验数据,我们设为16K,即Size_piece为16K。流媒体文件平均播放速度(SpeedPlay)为1秒钟播放器播放的分片数,计算公式如为:Speed_play=[avgbit/(u×Size_piece)]×(1-v),其中avgbit为媒体文件播放的平均码流率,单位为Kb/s。u、v为辅助系数,经过测试,取u等于0.590,v等于0.272 (均保留三位有效数字)比较合适。

(2)当新的数据分片块进入资源预下载区时,系统向服务器请求获取该数据分片块的健康程度。

(3)根据健康度,对窗口内未预下载的数据分片块进行由低到高的排序。若出现健康程度相同的分片块,则按照其编号由低到高排序。

步骤2,选取作为窗口头部的一个数据分片块,将分片块中的每个分片依据分片编号,顺序放置入用于存放待发出请求的数据分片集合的一块内存。

2.紧急数据通道策略

在紧急数据通道策略中,媒体缓冲区是一种存储媒体数据的滑动缓冲区,它的服务对象是流媒体播放器,该缓冲区会根据播放器请求,在缓冲区头部删除已播放数据,并根据系统的流同步策略在缓冲区尾部添加新的数据。

根据系统对数据请求的迫切程度,我们将媒体缓冲区分为三个部分,分别为播放区、紧急数据区和预留区(如图2所示)。我们用Size表示大小,则媒体缓冲区的大小为:Sizedata_bufferScope=Size_urgentScope+Size_playScope+Size_reliefScope。

(1)在播放区中数据是马上要发送给播放器的数据,如果发生数据缺失,系统认为即使立刻启动紧急通道从P2P网络获取该分片且能成功获取,在当分片到达时,该分片也已过期,故系统不会通过网络去下载该分片。播放区的最小长度,我们设定为在从P2P网络中获取一个数据分片的超时时间Timeout里,播放器播放的分片数。计算公式为:Size_playScope=Speed_play×Timeout。

(2)在紧急数据区中的数据,是系统即将发送给播放器的数据,如果发生数据缺失,系统将其放入紧急通道,优先从网络下载。我们将紧急数据区划分为k1个区域,每个区域大小为1个Size_playScope。根据离播放区的远近,将数据的紧急程度分为k1个不同级别,以标识对数据分片获取的迫切程度。离播放区越近,紧急程度越高,优先下载的级别也越高,网络加速下载策略级别也越高。紧急数据区的大小为:Sizo_urgentScope=Size_playScope×k1,其中,,ko为经验系数,取0.25比较合适。

(3)在预留区中的数据,是系统准备发送给播放器的数据,其缺失数据分片的需求程度比紧急数据区中的数据低,系统则采取随即下载策略。预留区的大小为:Size_reliefScope=Size_playScope×k2,k3∈N,其中,,ko'为经验系数,取0.15比较合适。k3为辅助系数,具体取值可以根据整个点播系统实际运行时的数据及时到达率进行调整。

3.基于预连接的对等节点选择策略

步骤1,数据传输基于长连接,对每个探测的邻居节点建立一条长连接,初始时每个对等连接初始化为一个下载速度,默认值为10s/p,系统对资源进行初始预调度。

(1)在一个调度周期开始时,清空当前没有发起请求的连接。

(2)根据当前的速度估算下一个数据分片到达的时间所需的t_next,将所有的连接根据t_next从小到大排序,将调度池中的队列首个数据分片分配给第一个对等连接,然后估算该数据分片到达的时间t_arrival,则新的下一数据分片到达时间new_t_next大小为t_next+t_arrival。对所有连接根据t_next重新排_序,然后再分配剩下的最短估计时间的对等连接给下一个需要下载的数据分片资源,并更新t_next。依此类推,直到分配完所有的数据分片资源(或者固定数目的资源)。

步骤2,每个调度周期进行一次预分配调度。

步骤3,针对每个对等点连接在收到一个数据分片时进行测速,同时按照预分配调度的次序发起新的连接请求,并立刻更新。

该技术已经应用在互联网网络终端,并经过大量实验验证,该方法有效地提高了互联网网络终端播放器的播放质量,有效地提升终端抗网络环境条件的干扰能力。

参考文献

[1]张文,侯立东.基于传输层标志位的P2P流量识别技术[J].科技资讯,2007,(1).

[2]刘向东,潘为.基于UDP协议P2P通信技术的分析及实现[J].佳木斯大学学报:自然科学版,2007,(1).

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:安全连接无线网络论文提纲 下一篇:通讯连接