另类网络编程! (300分)

  • 主题发起人 主题发起人 kk98
  • 开始时间 开始时间
K

kk98

Unregistered / Unconfirmed
GUEST, unregistred user!
有过IPSec,IP Qos,IPv6,带外数据(Out-of-band),SSL等任何一方面应
用开发经验的朋友请说说心得,或者你对这几个方面的理解也行!
 
ip Qos:
用以针对专门用途分配特定的带宽,允许网络上预留带宽。目前主要用于实时视频。

带外数据:
对已建立连接的流套接字(TCP)上的应用来说,如果需要发送的数据比流上的普通数据重要
得多,便可将这些重要数据标记成带外数据。位于连接另一端的应用可通过一个独立的
流套接字来接收和处理带外数据。要查看待发数据中是否包含紧急数据,必须通过SIOCATMARK
选项调用。
SSL:
不清楚。

 
Secure Socket Layer(SSL) 协议

SSL可使用各种类型的加密算法和密钥验证机制,与S-HTTP相似,
SSL提供加密HTTP网络数据包的能力。S-HTTP在HTTP协议层工作,SSL在套接字层工作,
能加密多种其他基于套接字的Internet协议。SSL的客户机和服务器之间的谈判与套接
字谈判的处理过程相似。SSL不同于S-HTTP之处在于: 后者是HTTP的超集,只限于Web
的使用; 前者则是通过Socket发送信息,SSL是一个通过Socket层对客户和服务器间的
事务进行安全处理的协议,适用于所有TCP/IP应用。SSL包括客户和服务器之间协商加
密算法类型的信息和交换证书与密钥的信息。

SSL的缺陷是只能保证传输过程的安全,无法知道在传输过程中是否受到窃听,黑客可以
此破译SSL的加密数据,破坏和盗窃WEB信息。此外,SSL在全球的大规模使用还有一定的
难度。SSL产品的出口受到美国国家安全局(NSA)的限制,美国政府只允许加密密钥为
40位以下的算法出口,而美国的商家一般都可以使用128位的SSL,致使美国以外的国家
很难真正在电子商务中充分利用SSL。

参考:

RFC2246 RFC2504 RFC1319(MD5) RFC1320(MD4) RFC1321(MD2)。
 
难道就没有人有过IP Qos,IPv6,带外数据(Out-of-band),SSL其中一方面的开发经验吗?
 
这些底层的东西一般是用C写的。
 
对,对,对,这样子代码小呀。
 
to 楼上的两位:
我并不是想要什么语言来开发,只是想请教各位高手的对这些方面的一些实际开发经验!
 
这个题目太大了,而且有些问题在学术上尚无定论,谈开发为时尚早。
IP QoS:
主要有两种:IntServ(集中服务),DiffServ(区分服务)
DiffServ简单、灵活、高效和可扩展性将成为将来支持QoS的IP网中的主流技术 。
例如可在Linux内核中增加针对DiffServ的分组调度模块,使之能同时支持多种业务。
这其实主要是IP层,也就是路由器要考虑的问题,而且要整个网络所有路由器的支持。
不是你做个应用层软件就能实现的。
IP v6:
尚处在实验阶段。这也是IP层的东西,不是应用层的开发。你在应用层开发程序的时候
才不管是IP v4还是IP v6呢。
 
SSL:
采用OPENSSL进行开发比较容易,如果想自己从算法到任政协已开发难度相当大。
对于采用openssl开发同一般的SOCKET程序相似,其SSL握手协议、认证等已由OPENSSL
完成。
想了解更多SSL去WWW.OPENSSL.ORG看看,同时你还需了解一些CA证书、身份认证等知识。
 
ipv6是下一代的ip通讯协议,现在用到也只是一些地址转换的东西
ipsec可以用于vpn等等
 
主  题: QoS测试手记!!!
作  者: gcg ()
等  级:
信 誉 值: 100
所属论坛: 网络/通讯
问题点数: 0
回复次数: 1
发表时间: 2001-9-25 10:22:36

QoS测试记录
测试环境:
两台PC,都使用3C5609网卡,网线直接相连。网卡的802.1p protocol和flow control都
设置为enabled.
由于QoS的开发需要VC7.0的支持,所以我在两台机器上分别安装了Microsoft .Net
Studio B1和B2。
测试内容:
首先是测试我搭建的环境能不能作QoS开发。因为我没有支持802.1p的交换机,我只能搭
建这样的环境了。
为了测试环境的有效性,我先写一个最简单的QoS服务器和客户机。这两个程序是从
QoS.exe包含的几个程序中修改/QoS/Sample/Simple得来的。(QoS.exe come from mSDN)
对QoS服务器,我首先屏蔽它的输出,因为我总一位I/O会影响测试结果,其次修改它只支
持TCP协议。
对QoS客户机,我也屏蔽它的输出,其次修改它只支持TCP协议。然后让它每次发送都发
送1000个数据包,并且计算发送1000个数据包的时间,一般我一次测试10组。
测试一:
首先服务器和客户机的网卡都让802.1p protocol和flow control处于enabled状态,服
务器的网络中安装了QoS包调度器,客户机的网络没有安装QoS包调度器。
结果:每1000个包大概20~30左右,实际上时间和网络拥挤程度有关。
测试二:
把客户机的包调度器安装上,再测试,没有变化。如果重新启动,发现变化明显,时间
大概12000~20000之间。
安装包调度器需要重新启动才能够生效。说明这个环境对QoS是有效的!但为什么这样慢
呢?
测试三:
客户机程序中,规定了一个客户的流控参数,它使用的是G711模板。我修改一下它的参
数,但是我不知道什么含义,所以我把流速和容量都增加10倍,再测试。时间有显著变
化,说明QoS有效,而且可以调整流控参数来验证!这时我发现服务器程序没有明确规定
接收的流控参数。
测试四:
我分别修改服务器和客户机,使它们都不支持QoS,就是一个普通的Socket程序,测试它
的有效性。我发现如下结果:
QoS Server - QoS Client:QoS有效
QoS Server - Client:QoS无效
Server - QoS Client:QoS有效
Server - Client:QoS无效
好像只和客户机有关,是不是因为服务器没有规定QoS的参数?
测试五:
将服务器的接收QoS流控参数设置成和客户机一样。
QoS Server - QoS Client:QoS有效,并且效果好像好一些(摆动幅度小?)
QoS Server - Client:QoS无效,看来和服务器真的没有关系?

网卡到底在这里有没有发挥作用?
测试六:
将两个网卡的802.1p protocol设置为disenabled,但是没有用QoS仍然有效。
测试七:
将两个网卡的802.1p protocol设置为disenabled,并且重新启动,(估计没有用,还没
有测试)。。。。。。。。。
测试八:
将两个网卡的802.1p protocol和flow control都设置为disenabled,QoS立刻失效。说明
网卡是有效的。
测试九:
将两个网卡的802.1p protocol和flow control都恢复为enabled,QoS还是无效。重新启
动后有效。
这些功能要重新启动才有效。

我发现这个QoS环境有效后,准备深入阅读一下QoS的资料,仔细研究一下流控参数的含义。






 
发信人: hutu (难得糊涂), 信区: UNIX
标 题: Linux下IPV4和IPV6的互操作性研究
发信站: 烟雨漓江 (Sun May 20 02:55:15 2001), 转信

Linux下IPV4和IPV6的互操作性研究 作者:谭海平 发布时间:2001/04/10
文章摘要:
  该文简单阐述了IPV6的必要性和IPV4到IPV6升级转换的机制,详细阐明了在Linux操
作系统下进行的IPv6网络实验及其结论。
  关键词 IPV4,IPV6,隧道技术,路由器
----------------------------------------------------------------------------
----
正文:
Linux下IPV4和IPV6的互操作性研究
  作为向下一代互联网络协议过渡的重要步骤,国际的IPv6试验网--6bone在1996年成
立了。现在,6bone已经扩展到全球50多个国家和地区,成为IPv6研究者、开发者和实践
者的主要平台。CERNET国家网络中心于1998年6月加入6bone,同年11月成为其骨干网成
员。电子科大作为教育网的西南主节点,在得到Nokia的IPv6路由器之后,积极参与IPv
6技术研究,我们先查阅研究了大多数与IPv6有关的RFC文档和相关技术资料,并且在此
基础上进行了很多网络实验。该文先简单阐述了IPV6的必要性和IPV4到IPV6升级转换的
机制,然后详细阐明了在Linux操作系统下进行的IPv6网络实验及其结论,并附有相关参
考文献书目。
一、使用IPv6的必要性
  现在运行的因特网协议IPv4存在其固有的局限性,一是地址问题,IPv4的地址只有
32位,这意味着总的地址数大约是40亿,并且还有许多地址是不可用的。按照目前网络
的发展趋势,到2005和2015年之间IPv4的地址就会耗尽,必须用另一种地址方案来替代
它,二是IPv4提供的服务局限性,IPv4尽它的最大努力来传送信息包,但是它不会保证
提供给上层的服务是可靠的,没有QoS(服务质量)的概念。这些问题都是IPv4的薄弱环
节,致命弱点,另外因特网不断提出对移动性、安全性以及多媒体业务的支持等问题,
IPv4都无法解决,这样就迫使我们必须引入下一带因特网协议--IPv6。
二、IPv4和IPv6的互操作
  要将现在的IPV4网络升级到IPV6网络,不可能所有的机器在同时启用IPV6协议栈,
配置好IPV6地址,安装好IPV6应用程序,所以必须实现IPV4网络与IPV6网络之间的互操
作及平滑升级机制。IPv4到IPv6的升级转换机制的首要条件是允许IPv6和IPv4主机互操
作;其次是在相互依赖性很小的情况下使IPv6的主机和路由器能在因特网中快速发展;
第三是转换对端用户,系统管理员和网络实施者来说易于理解和执行。IPv6转换机制是
一套主机和路由器执行的协议机制,有一套定址和配置的操作指导方案,尽可能减少转
换过程中造成的破坏。IPv6转换机制的主要目标如下:
  · 可增加的升级和扩展性:单个IPv4的主机和路由器可在不需要其它的主机和路由
器同时升级的情况下单独升级成IPv6,新的IPv6主机和路由器可以后再一台台的安装成
IPv6。
  ·最小的升级依赖性。将主机升级成IPv6的唯一先决条件是域名服务器必须先升级
以处理IPv6地址记录。
  ·方便的寻址。当IPv4的主机和路由器升级到IPv6后,他们必须继续用原来的地址
。他们不需要指定新的地址。管理者不需制定新的地址分配方案。
  ·很低的启动开销。将IPv4系统升级成IPv6很少或几乎不需要准备工作。
  IPv6转换机制确保IPv6主机能和任何因特网上的IPv4通信,直到IPv4被淘汰,并在
那时允许在小范围内互相通信。这个特征保护了用户已经在IPv4上的巨大投入并使得IP
v6不会将IPv4孤立。
  基于以上原因,IPv4主机和路由器上与Ipv6主机和路由器现在广泛采用了如下两种
互操作的机制:隧道技术和双IP协议栈技术。
  
A.隧道技术:
  隧道提供了一种利用IPv4路由基础上传输IPv6包的方法。隧道应用于下面几种应用
中:路由器到路由器、主机到路由器、主机到主机和路由器到主机。
  路由器到路由器和主机到路由器隧道技术都是将IPv6包传到路由器,隧道的终点是
中间路由器,必须将IPv6包解出,并且转发到它的目的地。隧道终点的地址必须由配置
隧道节点的配置信息获得,这种类型的隧道称作人工配置隧道。
  当利用隧道到达IPv6的主干网时,如果一个在IPv4网络和IPv6网络边界的IPv4/IPv
6路由器的IPv4地址已知时,那么隧道的端点可以配置为这个路由器。这个隧道的配置可
以被写进路由表中作为"缺省路由"。这就是说所有IPv6目的地址符合此路由的都可以使
用这条隧道,这种隧道就是默认配置的隧道。
  主机到主机和路由器到主机隧道技术都是将IPv6包传到主机的,可以用IPv6包的信
息获得终点地址。隧道入口创建一个IPv4封装头并传送包,隧道出口解包,去掉IPv4头
,更新IPv6头,处理IPv6包。隧道入口节点需要保存隧道信息如MTU等。如果用于目的节
点的IPv6地址是与IPv4兼容的地址,隧道的IPv4地址可以自动从IPv6地址继承下来,因
此也就不需要人工配置。这种隧道也就称为自动隧道。
  IPv4兼容的IPv6地址格式如下:
      
B.双IP协议栈方式
  双协议栈方式包括提供IPv6和IPv4协议栈的主机和路由器。双协议栈工作方式的简
单描述如下:
  ·如果应用程序使用的目的地址是IPv4地址,那么将使用IPv4协议栈;
  ·如果应用程序使用的目的地址是兼容IPv4的IPv6地址,那么IPv6就封装到IPv4中

  ·如果目的地址是另一种类型的IPv6地址,那么就使用IPv6地址,可能封装在默认
配置的隧道中。
  双协议栈的缺省IP包发送算法为:
a. 如果IP包的目的地址是IPv4地址:
  如果目的站点在可达链路上,直接发送;
  如果目的站点不可达,要么送往在线路由器,要么不可达。
b. 如果IP包的目的地址是IPv4兼容的IPv6地址:
  如果目的站点在可达链路上,直接发送IPv6包;
  如果目的站点处于off-link,(1)如果有可达IPv4路由器,则封装在IPv4包中发往
IPv4路由器;(2)如果有可达IPv6路由器,则不封装,直接发送;(3)如果没有可达
路由器,则不可达。
c. 如果IP包的目的地址是纯IPv6地址:
  如果目的站点在 可达链路上,直接发送IPv6包;
  如果目的站点处于off-link,(1)如果有可达IPv6路由器,则直接发送到路由器;
(2如果目的地通过手动隧道可达,并且链路上有可达IPv4路由器,则封装成IPv4包,目
的IP地址为隧道终点地址,链路地址为可达路由器的链路地址。(3)否则为不可达。
d. 在线/离线的确定
  IPv4使用子网掩码确定,IPv6使用邻居发现协议。两者共同使用的是:如果目的地
址是IPv4地址,则使用  RFC1122比较两者的掩码;如果目的地址是IPv4兼容的IPv6地
址,则使用低32位目的地址的子网掩码比较;如果是  IPv6纯地址,则使用邻居发现
协议。
三、Linux下IPv6网络研究实验
  我们在研究了大量IPv6协议(主要的IPv6 RFC文档)之后,进行了一系列的IPv6研
究实验。现详细叙述如下:
1.Pv6研究实验平台的选择
  在国内有几所大学已经或正在进行IPv6实验研究,并且建立了CERNET IPv6实验床,
我们在与CERNET IPv6实验床的老师和同学取得联系并进行了交流,实验床网络中心最初
的组网是通过主机配置FreeBSD来完成的,1998年开始用的是FreeBSD2.2.8,现在是Fre
eBSD3.2,3.4,4.0都有,此外有些科研人员也开始采用linux进行实验,路由器现在采
用的是Nokia的IP650,还有FreeBSD+Mrtd的主机。电子科大作为教育网西南地区的主节
点,也得到了Nokia捐赠的IPv6路由器。在此基础之上,我们通过分析比较研究各种操作
系统,最后选定用linux作为IPv6主机和路由器研究实验平台。具体原因如下:
A. Linux作为开放的操作系统,其原代码完全公开,具有很强的灵活性,现在有很多自
由软件联盟为Linux免费开发如件,故Linux具有很强的生命力和活力,而其他大部分由
个别公司开发的操作系统,一方面原代码不公开,无法根据自己的要求修改内核,其公
司的发展的兴衰,很大程度上影响该操作系统的发展。
B. Linux操作系统很先进,一直跟踪关注网络的发展,用Linux组建Internet网络,建
立网站,进行网络开发研究,都是很好的选择。并且其内核从2.2.0开始,就已经开始支
持IPv6技术了,这等于就为我们提供了IPv6协议栈原代码,  我们可以利用其共享代
码做IPv6的研究开发。
2.Linux主机IPv6协议支持技术研究
  在选定了实验平台之后,我们就着手进行一系列的IPv6实验,主要针对在已大量安
装了IPv4的主机和路由器情况下,如何成功地兼容地升级到IPv6,如何运用在IPv6主机
和路由器上,与Ipv4主机和路由器成功互操作,以及如何建立配置IPv6主机和路由器。
在进行IPv6实验之前,我们根据网上查询资料及对Linux内核分析,研究了如何建立IPv
6主机,包括安装协议栈,网络工具及网络程序,现以Redhat 6.1 Linux为例,详细说明
其具体步骤如下:
A.支持IPv6协议的新内核的编译
  要让操作系统支持IPv6,就要安装IPv6协议栈,Redhat6.1的内核为2.2.12版本,可
支持IPv6,但是安装缺省不支持,由于协议栈在操作系统中是处于核心地位的,必须重
新编译新的内核才能安装上新的协议栈,其具体步骤如下:
  1)以root身份登陆,进入源码所在的目录:cd /usr/src/linux
  2)运行 make clean,清除一些可能过期的中间代码。
  3) 然后配置内核选项:make menuconfig 或者 make xmenuconfig运行make menuc
onfig后,将下面的支持IPv6的选项选上,其他内核选项请根据系统的具体情况作出符合
系统的选择。
   Code maturity level options
     Prompt for development and/or incomplete code/drivers Yes.
   Networking options
     Packet socket               yes
     Unix domain sockets            yes
     TCP/IP networking             yes
     The IPv6 protocol             yes
     IPv6: enable EUI-64 token format      yes
     IPv6: disable provider based address    yes
   File systems
     / procfilesystem support yes
  4)然后运行make dep; make clean; make bzImage
  5)没有错误,现在已经编译成功了支持IPv6协议的内核了。将该内核拷贝到Linux的
启动目录下。
   cp arch/i386/boot/zImage /boot/vmlinuz-IPv6
  6)编辑etc/lilo.conf使新的内核成为boot的选择。
  7) 重启系统: reboot
  在重启系统之后,在登陆之前会发现有支持IPv6的内核信息出现,这下该主机就是
纯IPv6主机啦,但是现在的主机只是安装的IPv6协议栈,并没有IPv6网络配置工具如ho
stname, netstat, arp, ifconfig, rarp, route等,还不能配置网络,不能检测
调试发送IPv6包,因此我们必须进行如下操作。
B.编译net-tools
  Linux的网络配置,基本上是通过ifconfig和route等命令实现的,需要安装编译新
版本的支持IPv6的net-tools,我们采用了net-tools-1.52。其安装过程如下:
  1)解开软件包:tar xzf your-path/net-tools-1.52.tar.gz -C /usr/src
  2)进入源码所在目录:cd /usr/src/net-tools
  3)make config时选择下面的内容,其他选项内容请根据自己系统情况选择:
   编译主选项          子选项          选择
   GNU gettext                      Yes( 如果使用的是
glibc2)
   Protocol Families      UNIX protocol family    Yes
              INET (TCP/IP) protocol family  Yes
              INET6 (IPv6) protocol family   Yes
             Device hardware types SIT (IPv6-inIPv4) support Ye
s
  4)然后编译:make;安装:make install。再重启。
  现在我们就可以使用ifconfig和route等命令配置查看网络了。运行ifconfig,我们
可以看到在每个网络接口,都生成了一个IPv6地址,这是它的本地链路地址,我们还需
要配置其相应的全球地址和路由信息。最后我们的IPv6主机就建立起来了。两台机器均
如此操作,通过绞线相连的最简单的纯IPv6网络就搭建好啦。
  但是我们没有IPv6的应用程序来检测我们的IPv6网络,但是怎么知道我们的主机在
网络中是否能够与其他主机通信呢,这还得需要有IPv6的应用程序检测我们的网络。
C.编译Inet6-applications
  编译新版本的支持IPv6的网络应用程序我们采用的是inet6-apps-0.36,其编译过程
如下:
  1) 解开软件包:tar xzf your-path/inet6-apps-0.36.tar.gz -C /usr/src
  2) 为编译程序建立必要的链接:
   ln -sf /usr/src/inet6-apps-0.36 /usr/src/inet6-apps
  3) 进入源码所在目录: cd /usr/src/inet6-apps
  4)这个版本的inet6工具的icmp.c有个小Bug,编译时需要一个补丁(inet6-apps-0
.36-glibc21-rh60-patch.txt.gz)。将补丁程序加上然后编译:make clean; make ;
make install。重启系统。
现在我们就有了如finger[d], ftp[d], inetd, ping, tftp, libinet6等网络应用
程序就可以进行主机间的IPv6测试了。
3.Linux下IPv6主机和路由器配置技术研究
  在研究了Linux IPv6主机建立技术之后,我们在Linux主机上进行了如下的进行IPv
6主机和路由网络实验研究:
A.IPv6主机通信实验
  为了了解如何建立IPv6主机,如何在Linux操作系统中,建立IPv6协议栈,收发纯的
IPv6数据包,我们最开始建立了如图1所示的一个最简单的IPv6网络实验环境:
          
  我们安装了两台以Redhat6.1 Linux为操作系统的主机,并且通过绞线相连。对于每
台主机,编译新的内核支持IPv6,由于缺省支持IPv4,故该主机为IPv6/IPv4双协议栈主
机。为了研究纯IPv6主机通信,我们只配置主机的IPv6网络信息,未配置其IPv4地址和
网络。作为西南地区,网络中心分配的IPv6地址前缀是3ffe:3203:1001::/48,故利用i
fconfig配置Host1和Host2的全球IPv6地址分别为3ffe:3203:1001::218/52和3ffe:3203
:1001::218/52,命令格式为:ifconfig interface add IPv6-address,用route添加缺
省网关分别为对方IPv6地址,然后利用IPv6的应用程序ping对方的IPv6地址,得到连续
的对方主机返回ICMPv6响应报文,安装成功了。
B.IPv6/IPv4主机隧道通信实验
  因为现在的IPv6主机在整个IPv4网络中,象一个孤岛,许多路由器不支持IPv6,故
在IPv4网络中经过了纯IPv4路由器相连的两个IPv6主机是不能直接通信的,要采用RFC1
933所说的隧道技术(tunnel)。在Linux下的IPv6协议栈是支持隧道技术的。为研究IP
v6主机如何在IPv4网络中通信的,我们建立了图2所示的实验环境。
     
  与实验1一样,配置好Host1和Host2的IPv6地址,并且按照实际IPv4网络情况,配置
好网络接口的IPv4地址。之后,我们需要分别为Host1和Host2配置隧道,两隧道的端地
址分别为Host1和Host2的IPv4地址。具体配置命令格式如下:
   ifconfig sit0 up ↙
   ifconfig sit0 inet6 tunnel ::202.115.12.218 ↙
   ifconfig sit1 up ↙
   route -inet6 add 3ffe:3203:1001::/48 dev sit1 ↙
  其中第二步中的tunnel地址是与对方主机的IPv4兼容的IPv6地址,最后一步添加的
网络为对方主机网络接口所在网络,这样,相互的隧道就连通了。隧道0(sit0)为自动
隧道(Automatic Tunneling),隧道1(sit1)为手动隧道(Configured Tunneling)
,在启动了sit0之后,可以直接ping通对方主机的IPv4兼容IPv6地址,但是不能ping通
对方的全球IPv6地址,因为IPv4 Router不负责转发IPv6报文,只有在手动配置了sit1之
后,跨越了IPv4网络的IPv6主机之间才能进行通信。
C.IPv6/IPv4主机接入6bone网络
  我们在完成以上实验的基础上,具有了IPv6主机和网络配置基本理论和实践经验,
就准备接入IPv6实验网6bone,首先通过主机与电子科大网络中心的IPv6路由器相接,连
入CERNET IPv6实验床,再通过该网络与世界IPv6实验网6bone相接。根据网络分析,我
们制定了如图3所示的网络接入方案:
   
  首先配置好Host1和Host2的IPv4网络信息,再向电子科大网络中心申请分配全球IP
v6地址,申请隧道,网络中心按照Host1和Host2的IPv4地址,手动配置分配两隧道,并
设置了静态路由信息。按照实验2的配置步骤,分别为Host1和Host2配置好IPv6地址,并
且与网络中心的Nokia IPv6路由器建立好隧道,基本操作与实验2相似。完成如上所述配
置操作之后,我们首先ping电子科大网络中心IPv6路由器的IPv6地址,实验成功,IPv6
网络连通了,然后ping CERNET IPv6实验网的主机,利用finger6,FTP6浏览6bone网络
中其他网络资源,实验成功,我们与CRENET IPv6实验床和国际IPv6实验网6bone实现了
连网。
D.Pv6/IPv4路由器研究
  在成功配置了IPv6主机并且接入了国际IPv6之后,我们尝试组建自己的IPv6网络,
具体组网如图4所示:
    
  由于没有现成的IPv6路由器,就尝试利用Linux操作系统,配置成IPv6路由器,具体
工作如下:我们就在支持IPv6的Linux主机上,配置多个网卡,为每个网卡设置好IPv6地
址,在操作系统中编辑新的配置文件和Script文件,主要为network-ip6、 network-ip
6.conf 、network-ip6.init、tunnels-ip6.init和radvd.init几个文件。具体编辑细节
参看Peter Bieringer 2000-05-19所著的IPv6 & Linux - HowTo 3.14版。之中较为关键
的是   /etc/sysconfig/network-ip6文件,需要设置IP6FORWARDING=yes,IP6GATE
WAYCONFIG=yes,IP6ROUTEFILE=/etc/sysconfig/network-ip6.conf,这样设置之后,从
一个网络接口发送来的IPv6报文就可以转发到另外的网络接口,完成路由转发功能,完
成路由器基本功能,再启动其他路由协议,完成相关工作,到此,我们的IPv6路由器就
安装成功了,如果还要安装其他的IPv6路由协议,可以参照相应的文档。
参考文献
  1. RFC1933 IPv6主机和路由器迁移机制;
  2. RFC2460 IPv6规范说明;
  3. RFC2461 IPv6邻居发现协议;
  4. RFC2462 IPv6无状态地址自动配置协议;
  5. RFC2463 ICMPV6协议;
  6. RFC2464 IPv6分组在以太网上的传输;
  7. RFC2471 IPv6实验地址分配;
  8. RFC2473 在IPv6规范中通用分组隧道;
  9. RFC2373 IPv6地址体系;
  10. RFC2147 TCP和UDP在IPv6上的大数据传输;
  11. RFC2529 在无显式的隧道情况下通过IPv4网络传输IPv6分组;
  12. IPv6 & Linux - HowTo, Peter Bieringer,2000-05-19;
  13. The Linux Kernel HOWTO, v1.0,Brian Ward, 5 June 1999;
  14. Linux Networking-HOWTO (Previously the Net-3 Howto), v1.5,Current
Author, August 1999
作者会员名:tanhp

--
※ 来源:.烟雨漓江 lily.gxnu.edu.cn.[FROM: 202.193.160.101
 
目前,Internet上有几种加密协议在使用,对应(七层)网络模型的每一层都已提出了相应
的协议。对应用层有SET(安全电子交易)协议。对会话层有SSL(安全套层)协议。在所有
的协议中,SSL和SET与电子商务的关系最为密切。

SSL是对计算机之间整个会话进行加密的协议。它在Internet上广泛用于处理财务上敏感
的信息,这很大程度上是因为先有这样东西,而不是设计它用于此项目的。
在SSL中,采用了公开密钥和专有密钥两种加密:
·在建立连接过程中采用公开密钥;
·在会话过程中使用专有密钥。
加密的类型和强度则在两端之间建立连接的过程中判断决定。
在所有情况下,服务器通过以下方法向客户机证实自身:
·给出包含公开密钥的、可验证的证明;
·演示它能对用此公开密钥加密的报文进行解密。
有时,客户机可以提供表明它本身(用户)身份的证明。
会话密钥是从客户机选择的数据中推导出来的,该数据用服务器的公开密钥加密。
在每个SSL会话(其中客户机和服务器都被证实身份)中,要求服务器完成一次使用服务器
专用密钥的操作和一次使用客户机公开密钥的操作。由于实际上目前所有的系统都使用
RSA加密法,每次操作都需要完成模数算法下的指数运算。通常,选择的公开指数为小数,
以减少要做的工作。因此,一次SSL会话只要一次"硬的"加密运算。

=======================================================================
SSL协议简介  

  SSL是由Netscape开发出来的一种在让可持有证书的浏览器软件(比如Internet
Explorer、Netacpe Navigator)和WWW服务器(如Netscape的Netscape Enterprise
Server 、ColdFusion Server等等)之间构造的安全通道中传输数据的协议,它运行在
TCP/IP层之上、应用层之下(如图一),用TCP/IP代表高级协议在数据通信过程中允许
一个支持SSL的

  
  WWW服务器在支持SSL的客户端使协议本身获得信任、使客户端得到服务器的信任,从
而在两台机器间建立一个可靠的加密传输连接。
  SSL 服务器端验证 使用户获得服务器端的信息。支持SSL的客户端软件可以用标准的
公共密钥算法验证服务器的证书和公开ID是否合法和是否已经被客户端信任的CA机构颁发
了证书。这种确认在网上交易中,比如用户把信用卡号通过网络传输出去,希望了解接受
服务器的身份信息这种活动中就得到体现。
  SSL 客户端验证 使服务器获得用户的个人信息。支持SSL的服务器端软件可以用标准
的公共密钥算法验证用户的证书和公开ID是否合法和是否已经被服务器端信任的CA机构颁
发了证书。如果一家银行需要通过网络将客户的帐户信息传递出去,自然就需要检查接受
端的身份信息。
  一条加密的数据通道 将双方机器间传输的所有数据都以加密的形式传送,这样,就提
供了非常高的可信任程度。
  SSL协议包括两个子协议:SSL记录协议和SSL握手协议。前者定制了传输数据的格式。
后者利用前者在支持SSL的客户端和服务器端之间建立安全传输通道之后提供一系列消息,
用来实现:
  ● 在客户端验证服务器;
  ● 允许客户端和服务器选择双方都支持的加密算法、密钥算子
  ● 在服务器端验证客户(可选的)
  ● 用公钥加密算法产生"共享秘密"
  ● 建立加密SSL连接。

SSL 握手过程:
  SSL协议同时使用对称密钥算法和公钥加密算法。前者在速度上比后者要快很多,但是
后者可以实现更好的安全验证。一个SSL传输过程需要先握手:用公钥加密算法使服务器端
在客户端得到验证,以后就可以使双方用商议成功的对称密钥来更快速的加密、解密数据。
  过程描述如下:
  1. 客户端向Server段发送客户端SSL版本号、加密算法设置、随机产生的数据和其他
服务器需要用于根客户端通讯的数据。
  2. 服务器向客户端发送服务器的SSL版本号、加密算法设置、随机产生的数据和其他
客户端需要用于根服务器通讯的数据。另外,服务器还要发送自己的证书,如果客户端正在
请求需要认证的信息,那么服务器同时也要请求获得客户端的证书。
  3. 客户端用服务器发送的信息验证服务器身份。如果认证不成功,用户就将得到一
个警告,然后加密数据连接将无法建立。如果成功,则继续下一步
  4. 用户用握手过程至今产生的所有数据,创建连接所用的Premaster secret,用服
务器的公钥加密(在第二步中传送的服务器证书中得到),传送给服务器。
  5. 如果服务器也请求客户端验证,那么客户端将对另外一份不同于上次用于建立加
密连接使用的数据进行签名。在这种情况下,客户端会把这次产生的加密数据和自己的证
书同时传送给服务器用来产生Premaster Secret.
  6. 如果服务器也请求客户端验证,服务器将试图验证客户端身份。如果客户端不能
获得认证,连接将被中止。如果被成功认证,服务器用自己的私钥加密Premaster Secret
,然后执行一系列步骤产生Master Secret.
  7. 服务器和客户端同时产生Session Key,之后的所有数据传输都用对称密钥算法来
交流数据。
  8. 客户端向服务器发送信息说明以后的所有信息都将用Session Key加密。至此,它
会传送一个单独的信息标示客户端的握手部分已经宣告结束。
  9. 服务器也向客户端发送信息说明以后的所有信息都将用Session Key加密。至此,
它会传送一个单独的信息标示服务器端的握手部分已经宣告结束。
  10. SSL握手过程就成功结束,一个SSL数据传送过程建立。客户端和服务器开始用
Session Key加密、解密双方交互的所有数据。

  一个SSL传输过程大致就是这样,但是很重要的一点不要忽略:利用证书在客户端和服
务器端进行的身分验证过程。
  一个支持SSL的客户端软件通过下列步骤认证服务器的身份:
  1. 服务器端传送的证书中获得相关信息(在SSL中有函数支持,在程序中有相关例子);
  2. 当天的时间是否在证书的合法期限内;
  3. 签发证书的机关是否客户端信任的;
  4. 签发证书的公钥是否符合签发者的数字签名
  5. 证书中的服务器域名是否符合服务器自己真正的域名?
  6. 服务器被验证成功,客户继续进行握手过程。
  一个支持SSL的服务器通过下列步骤认证客户端的身份:
  1. 客户端传送的证书中获得相关信息;
  2. 用户的公钥是否符合用户的数字签名;
  3. 当天的时间是否在证书的合法期限内;
  4. 签发证书的机关是否服务器信任的;
  5. 签发证书的机关是否服务器端信任的;
  6. 用户的证书是否被列在服务器的LDAP里用户的信息中
  7. 得到验证的用户是否仍然又权限访问请求的服务器资源

SET简介:
  SET是Visa和MasterCard公司共同开发的专门用于网上安全信用卡数据传输的一套协
议。像SSL一样,SET允许商人的身份通过数字证书得到认证。然而不同的是,SET也允许
商人通过数字证书认证用户的身份信息。这样就使第三者利用被盗的信用卡来进行不法活
动难度大大增加。
  SET协议不像SSL,它不受美国加密算法出口的限制,在世界各地都采用了128位密钥
加密信用卡号。为了被允许不受这种限制,SSL不得不只把128位加密只用在加密商业信息
上,而其他的如商品信息、发送地址之类的信息都除外。

SET加密流程:
  在一个典型的SET协议传输过程中,存在许多商家与客户之间、客户与银行之间的交
互隐私信息,SET将两种隐私隐私都包含在一个经过数字签名的交易过程中。
  银行需要的信息用银行的公钥加密,商家的信息用商家的公钥加密。这意味着商家就
无权访问信用卡信息,从而欺诈行为就基本上避免了。
  除了加密数据,两套信息也需要数字签名,最后两个签名将被合并来产生整个交易过
程中需要的签名。
  具体来讲,详细的步骤如下:
  1. 客户选择需要购买的商品,点击"购买"按钮;
  2. 浏览器就会把一个初始化信息发送给WWW服务器,称作SET-PDU
  3. 服务器响应,包括商家的数字证书,确认客户的身份。
  4. 客户端软件检查响应消息,然后产生一个购买定单,其中包含信用卡号。信用卡
持有者用一个新产生的密钥对定单进行加密,然后密钥用网关的公钥加密。现在只有网关
可以读取密钥、解密购买信息
  5. 商家获得购买定单,解密,然后对用户的身份进行验证。然后就可以给网关发送
一个身份认证的信息。
  6. 网关对获得的信息加密,然后认证商家信息。然后对定单解密,验证客户的身份。
  7. 网关再检查颁发信用卡的公司,这样就保证了信用卡的合法性和使用期限,然后
结束购买过程。
  8. 网关从颁发信用卡的公司收到身份认证信息,向商家发送信息
  9. 商家向用户发送订单的确认信息。至此整个交易过程结束!
 
SET(安全电子交易)协议是为了解决用户、商家和银行之间通过信用卡支付的交易而设
计的。SET包含多个部分,解决交易中不同阶段的问题。SET是由VISA和MasterCard两大信
用卡公司开发的,作为其Internet交易的标准。运通公司也采纳、接受SET。为了使电子商
务转到使用SET,银行方面和政府方面施加了许多政治压力。面对这些压力,加上SET本身显
而易见的好处,看来明年会有越来越多的单位转到SET上。
SET协议比SSL协议复杂许多,因为前者不仅加密两个端点间的单个会话,它还可以加密和认
定三方间的多个信息。
SET交易分三个阶段进行:
1. 在购买请求阶段,用户与商家确定所用支付方式的细节;
2. 在支付的认定阶段,商家会与银行核实,随着交易的进展,他们将得到付款;
3. 在受款阶段,商家向银行出示所有交易的细节,然后银行以适
当方式转移货款。
如果不是使用借记卡,而直接支付现金,商家在第二阶段完成以后的任何时间即可以供货
支付。第三阶段将紧接着第二阶段进行。用户只和第一阶段交易有关,银行与第二、三阶
段有关,而商家与三个阶段都要发生关系。每个阶段都涉及到RSA对数据加密,以及RSA数字
签名。
使用SET协议,在一次交易中,要完成多次加密与解密操作,故要求商家的服务器有很高的处
理能力。
 
多人接受答案了。
 
后退
顶部