[分享]TCPIP完整的一套基础介绍

lurenjia 发布于2004-10-9 06:52 727 次浏览 2 位用户参与讨论   [复制分享主题]
<FONT color=#9932cc>TCP/IP应该是个协议集,根据OS的七层理论,TCP/IP分为四层.分别是应用,传输,Interne和网络界面.7 t- F4 }: a) T, e* p2 T

+ b  a. J" p3 H) L我们一般说TCP在传输层,而IP在Internet层.
- g! O% T  k2 F3 ?/ ?6 ^+ d( l! f) S2 p6 m% Z: c# p7 F4 I
TCP/IP的应用程序包括我们平时经常用到的Ping,Telnet,Ftp,Finger等等' Y" t+ H: ?0 p$ S

; {2 U$ x/ Q  k* S/ b配置TCP/IP包括IP地址,子网掩码和缺省网关" |; D( w0 L( Y5 b; t  v" q. L$ m

+ `- z% p8 f1 ?  x5 [正确检测TCP/IP的四个步骤:PIng 127.0.0.1(回环地址)如果通表示TCP/IP已经装入,Ping自己表明客户机正常(主要是网卡),Ping网关表示局域网正常,Ping路由外地址表示完全正常,当然你也可以直接进行第四步,一般来说没这么麻烦的,但理论是基础:-)
6 d' L& L/ Z; H- u( E9 Q" i! ^2 V$ ~) z
IP地址是四段八位的二进制数组成的,IP分为A,B,C,D,E五类地址' Y! c2 }1 l, {+ _1 H& r

( v* {  v/ N: }A类高端为0,从1.x.y.z~126.x.y.z .B类高端为10,从128.x.y.z~191.x.y.z C类高端为110,从192.x.y.z~223.x.y.z D类高端为1110是保留的IP地址 E类高端为1111,是科研用的IP地址9 i* x% d* @/ Z  d
7 W/ u, y# {3 m4 r7 A$ u
其中255是广播地址,127是内部回送函数: u& f; p& d1 G, ~0 S. P; m1 ^

+ G2 g8 E7 e! ?以上算是开头,以后一点点增加,实在是现在还有很多事情等着去做,不好意思了 :-)
9 A$ c; G) z0 [" M) ?6 W( w2 M
; u$ E) U( f7 j* N0 R) C以下内容是子网的设定& H! N1 B, S2 |
+ {% h& P! T! X- N4 ^3 S! n
若公司不上Internet,那一定不会烦恼IPAddress的问题,因 为可以任意使用所有的IPAddress,不管是AClass或是BClass, 这个时候不会想到要用SubNet,但若是上Internet那IPAddress 便弥足珍贵了,目前全球一阵Internet热,IPAddress已经愈 来愈少了,而所申请的IPAddress目前也趋保守,而且只有 经申请的IPAddress能在Internet使用,但对某些公司只能申 请到一个CCLass的IPAddress,但又有多个点需要使用,那这 时便需要使用到Subnet,这篇短文说明Subnet的原理及如 何规划。9 l2 y" b+ x6 v: r, a/ _0 @
$ z) x4 V9 ]: P
SubnetMask的介绍
1 D+ z5 R  {- e/ ^$ S* J) j. p: ]设定任何网路上的任何设备不管是主机、PC、Router等 皆需要设定IPAddress,而跟随著IPAddress的是所谓的NetMask, 这个NetMask主要的目的是由IPAddress中也能获得NetworkNumber ,也就是说IPAddress和NetMask作AND而得到NetworkNumber,如下所 示
5 M) c# P' \# A5 d- M4 s, M
5 y/ h/ I5 q6 N' X& u
0 N6 Z* v/ t" J2 BIPAddress 192.10.10.611000000.00001010.00001010.00000110' U( [* G+ Q; h6 l/ F' ]
NetMask 255.255.255.011111111.11111111.11111111.000000009 S. \  C1 b! t5 h6 g
AND -------------------------------------------------------------------( j; y& r# M9 m7 S
etworkNumber 192.10.10.011000000.00001010.00001010.000000009 T& ^9 }' [7 ]1 N' e* v

% a1 @# B+ ~) Z' p! S$ {' }: _. Q# A( T3 w
NetMask有所谓的预设值,如下所示+ z' z1 n2 }5 G, _: `! \5 o( w( E
6 V  m3 G! j4 E4 [6 t
ClassIPAddress范围NetMask
+ f, P4 l& t4 `8 nA 1.0.0.0-126.255.255.255255.0.0.09 x2 k) X- i& g4 L6 X
B 128.0.0.0-191.255.255.255255.255.0.0
- s* b! ]) v0 ~4 j; FC 192.0.0.0-223.255.255.255255.255.255.0
0 T+ z" R5 @+ m) n
- X, l/ F* h0 d  M( l0 F/ m# O. k' v; C" I
在预设的NetMask都只有255的值,在谈到SubnetMask时这个值 便不一定是255了。
3 i" Y. S/ x, n0 L- y) D在完整一组CClass中如203.67.10.0-203.67.10.255NetMask255.255.255.0, 203.67.10.0称之NetworkNumber(将IPAddress和Netmask作AND),而 203.67.10.255是Broadcast的IPAddress,所以这?两者皆不能使用,实 际只能使用203.67.10.1--203.67.10.254等254个IPAddress,这是以 255.255.255.0作NetMask的结果,而所谓SubnetMsk尚可将整组C Class分成数组NetworkNumber,这要在NEtMask作手脚,若是要将 整组CCLass分成2个NetworkNumber那NetMask设定为255.255.255.192, 若是要将整组CCLass分成8组NetworkNumber则NetMask要为 255.255.255.224,这是怎麽来的,由以上知道NetworkNumber是由IP Address和NetMask作AND而来的,而且将NetMask以二进位表示 法知道是1的会保留,而为0的去掉* V! @2 J" \3 I. C
2 U7 T9 T  |2 x0 D( ]% i

  n7 I( Z3 D1 }192.10.10.193--11000000.00001010.00001010.100000017 u  I0 @/ ?$ |! d" V# \
255.255.255.0--11111111.11111111.11111111.00000000" Q& `6 k, G! d( P! N. w
--------------------------------------------------------------
( a' m# D7 o! _1 ^9 Z* n192.10.10.0--11000000.00001010.00001010.000000007 ]' R9 F( j2 O7 ~5 g
4 @8 |; Y/ z" @1 e4 M9 ?

7 N' ^5 x; m" M/ k* l# u) N以上是以255.255.255.0为NetMask的结果,NetworkNumber是192.10.10.0, 若是使用255.255.255.224作NetMask结果便有所不同
/ x9 X1 c6 g" e! Y( E( H( E7 w: C7 h' l  h
! g! A9 Z5 R9 o3 k( t
192.10.10.193--11000000.00001010.00001010.100000004 h, ?8 P9 m9 O/ k$ D$ T, n
255.255.255.224--11111111.11111111.11111111.11100000" y/ _1 {* v$ L7 H
--------------------------------------------------------------* @$ z; z7 ^% p4 M% f- V; d
192.10.10.192--11000000.00001010.00001010.10000000
' r4 o! s% u- k* K! v
  u: \5 |1 r8 k# p
9 c/ [+ l3 P( s7 F此时NetworkNumber变成了192.10.10.192,这便是Subnet。
3 G! D! K: V5 g: V那要如何决定所使用的NetMask,255.255.255.224以二进位表示 法为11111111.11111111.11111111.11100000,变化是在最後一组,11100000 便是224,以三个Bit可表示2的3次方便是8个NetworkNumber
% T2 ~7 u3 U  O; ?# ^
8 t. {$ o- T& g( h. ]5 l; @NetMask二进位表示法可分几个Network
0 ?4 B9 P3 k+ e  m" M2 T, F( u! [- ?, j- G# F+ P
255.255.255.0 11111111.11111111.11111111.000000001
9 z, L9 l& R3 d* W! l255.255.255.128 11111111.11111111.11111111.100000002
( F! J5 d8 e. o; j. [# C255.255.255.192 11111111.11111111.11111111.110000004
& D$ n  g: ~* j7 d5 G, `9 p6 ]255.255.255.224 11111111.11111111.11111111.111000008
/ r- A! T  ^# {( K+ U  i6 ~255.255.255.240 11111111.11111111.11111111.1111000016; ^2 L% N& l# e  c1 ~" @% {1 q
255.255.255.248 11111111.11111111.11111111.1111100032. q0 m9 Z3 Q" m& C8 I
255.255.255.252 11111111.11111111.11111111.1111110064- S! q1 x8 V9 v& t7 G
& E5 k% v# f, ?& j+ L  ^
* M6 [( ~' c0 J. u% x
以下使用255.255.255.224将C Class203.67.10.0分成8组NetworkNumber,各 个NetworkNumber及其BroadcastIPAddress及可使用之IPAddress
; v, t4 c" E7 ~: O1 V. }, N7 S0 L! f+ w
序号NetworkNumberBroadcast可使用之IPAddress
3 t) a7 ~5 ^% g2 w2 S9 o" W! C& h5 L- c4 G9 u# e; E
1 203.67.10.0 203.67.10.31 203.67.10.1-203.67.10.30' {* M% p* T# t3 ]. ?4 M5 V  O
2 203.67.10.32 203.67.10.63 203.67.10.33-203.67.10.62
; P/ F2 W) }) W6 A6 |6 f6 f) Z3 203.67.10.64 203.67.10.95 203.67.10.65-203.67.10.947 ]3 L! N/ Q+ ~6 p7 E
4 203.67.10.96 203.67.10.127 203.67.10.97-203.67.10.126
$ R) G) K8 q" \# |+ m5 203.67.10.128 203.67.10.159 203.67.10.129-203.67.10.158, _4 g3 @/ [5 o' ~% H3 F
6 203.67.10.160 203.67.10.191 203.67.10.161-203.67.10.1908 W: _2 Z( z/ Z
7 203.67.10.192 203.67.10.223 203.67.10.193-203.67.10.222
. t$ q$ C. @, T% u) a& _6 j8 203.67.10.224 203.67.10.255 203.67.10.225-203.67.10.254# q9 @* l& K2 }& u2 W
6 P- r( a( A! D5 P1 g- c
1 o  c* J! A9 j
可验证所使用的IPAddress是否如上表所示
) y/ F3 t( C* A# ]- D' v  ^) C& P
203.67.10.115--11001011.01000011.00001010.01110011. W2 E" S' z- \; V$ v2 i2 |
255.255.255.224--11111111.11111111.11111111.11100000) C, _4 g" L7 Q/ K2 z6 w5 a) m
--------------------------------------------------------------
; }9 {: W5 l, h7 z8 |' M+ J203.67.10.96--11001011.01000011.00001010.011000004 Z3 c/ O$ h9 v" C
9 |. J* J4 ~$ B& D7 S' P% ?) Y
203.67.10.55--11001011.01000011.00001010.001101116 U8 ~1 I* [: S; m+ _5 A4 o
255.255.255.224--11111111.11111111.11111111.11100000
: w+ k$ r( M, z6 Y  d8 g3 h--------------------------------------------------------------
0 H- j2 M% d  M) I' X6 e& a. W3 L203.67.10.32--11001011.01000011.00001010.00100000  S& S, n8 g, u
% k+ @( F) x6 j0 c
其他的NetMask所分成的NetworkNumber可自行以上述方法自行推演出来。
3 F! {$ K# t9 W4 @) h. Z3 h
7 E6 i% s2 U; i0 {4 I; E; G2 z, QSubnet的应用
7 ?/ _; L( h4 i3 K! U# e- Z& l使用Subnet是要解决只有一组CClass但需要数个NetworkNumber的问题,并不是解决IPAddress不够用的问题,因为使用 Subnet反而能使用的IPAddress会变少,Subnet通常是使用在总公司在台北,但分公司在台中,两者之间使用Router连线 ,同时也上Internet,但只申请到一组CCLassIPAddress,过Router又需不同的Network,所以此时就必须使用到Subnet,当然二 办公司间可以RemoteBridge连接,那便没有使用Subnet的问题,这点在此不讨论,所以在以上情况下的网路连线架 构及IPAddress的使用
2 c6 @0 A- j+ ^3 K7 s$ ^
$ b( W+ ]& }% d3 z: B4 q! _! g1 @1 E8 t% t4 E, E3 F, z2 c) d2 A
TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。! |7 H9 l( X) n; I3 ?
6 y7 W! o  V5 G: |
, ?( x3 w8 I$ p0 |0 x* n- k) _
在任何一个物理网络中,各站点都有一个机器可识别的地址,该地址叫做物理地址.物理地址有两个
: V6 C+ Z2 a# {: h6 `9 f
7 S9 f* z3 E) S特点:( {, ]4 v- \( j
物理地址的长度,格式等是物理网络技术的一部分,物理网络不同,物理地址也不同.- K: E" I9 c4 W2 u% S
同一类型不同网络上的站点可能拥有相同的物理地址.
9 s% r/ W1 n! Q7 o+ t( F! z# b以上两点决定了,不能用物理网络进行网间网通讯.  J! w% a0 w0 A
% z# O' \* q: o6 n) {
在网络术语中,协议中,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个而是许多协议,这就是为什么你经常听到它代表一个协议集的原因,而TCP和IP只是其中两个基本协议而已。& y! U6 U; T* N$ h- ]0 Z9 W# q
  W( w3 M* @9 m( Z
你装在计算机-的TCP/IP软件提供了一个包括TCP、IP以及TCP/IP协议集中其它协议的工具平台。特别是它包括一些高层次的应用程序和FTP(文件传输协&amp;#35758<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif" border=0>,它允许用户在命令行上进行网络文件传输。
- k* v# I' R5 s5 ?% m4 R, n
5 }( n, C* {( O) MTCP/IP是美国政府资助的高级研究计划署(ARPA)在二十世纪七十年代的一个研究成果,用来使全球的研究网络联在一起形成一个虚拟网络,也就是国际互联网。原始的1 Z' U- A' C/ N% A, v4 P

) D% z' t( B+ p/ b* g1 K$ TInternet通过将已有的网络如ARPAnet转换到TCP/IP上来而形成,而这个Internet最终成为如今的国际互联网的骨干网。
% X# X( I! y1 ?5 q: o/ j% z% Y
+ G- x6 `6 W; c, F& i4 _! f' A; s3 S9 _如今TCP/IP如此重要的原因,在于它允许独立的网格加入到Internet或组织在一起形成私有的内部网(Intranet)。构成内部网的每个网络通过一种-做路由器或IP路由器的设备在物理上联接在一起。路由器是一台用来从一个网络到另一个网络传输数据包的计算机。在一个使用TCP/IP的内部网中,信息通过使用一种独立的叫做IP包(IPpacket)或IP数据报(IPdatagrams)的数据单元进--传输。TCP/IP软件使得每台联到网络上的计算机同其它计算机“看”起来一模一样,事实上它隐藏了路由器和基本的网络体系结构并使其各方面看起来都像一个大网。如同联入以太网时需要确认一个48位的以太网地址一样,联入一个内部网也需要确认一个32位的IP地址。我们将它用带点的十进制数表示,如128.10.2.3。给定一个远程计算机的IP地址,在某个内部网或Internet上的本地计算机就可以像处在同一个物理网络中的两台计算机那样向远程计算机发送数据。) ^, i: k7 f$ ?2 d& _

, a2 [$ o% `+ Z) E0 f8 pTCP/IP提供了一个方案用来解决属于同一个内部网而分属不同物理网的两台计算机之间怎样交换数据的问题。这个方案包括许多部分,而TCP/IP协议集的每个成员则用来解决问题的某一部分。如TCP/IP协议集中最基本的协议-IP协议用来在内部网中交换数据并且执行一项重要的功能:路由选择--选择数据报从A主机到B主机将要经过的路径以及利用合适的路由器完成不同网络之间的跨越(hop)。</FONT>

已有(2)人评论

lurenjia 发表于 2004-10-9 06:54:06 | 显示全部楼层
<FONT color=#9932cc>TCP是一个更高层次的它允许运行在在不同主机上的应用程序相互交换数据流。TCP将数据流分成小段叫做TCP数据段(TCPsegments),并利用IP协议进行传输。在大多数情况下,每个TCP数据段装在一个IP数据报中进行发送。但如需要的话,TCP将把数据段分成多个数据报,而IP数据报则与同一网络不同主机间传输位流和字节流的物理数据帧相容。由于IP并不能保证接收的数据报的顺序相一致,TCP会在收信端装配TCP数据段并形成一个不间断的数据流。FTP和Telnet就是两个非常流行的依靠TCP的TCP/IP应用程序。
3 f" h- Y* q4 ^% P9 \3 ~# v' f' q+ o# ]1 g& y' s/ m
另一个重要的TCP/IP协议集的成员是用户数据报协议(UDP),它同TCP相似但比TCP原始许多。TCP是一个可靠的协议,因为它有错误检查和握手确认来保证数据完整的到达目的地。UDP是一个“不可靠”的协议,因为它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达。如果有可靠性要求,则应用程序避免使用它。同许多TCP/IP工具同时提供的SNMP(简单网络管理协&amp;#35758<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">就是一个使用UDP协议的应用例子。+ P3 a, h, {* C' }

5 s$ C2 g4 S0 L' d  G) q其它TCP/IP协议在TCP/IP网络中工作在幕后,但同样也发挥着重要作用。例如地址转换协议(ARP)将IP地址转换为物理网络地址如以太网地址。而与其对应的反向地址转换协议(RARP)做相反的工作,即将物理网络地址转换为IP地址。网际控制报文协议(ICMP)则是一个支持性协议,它利用IP完成IP数据报在传输时的控制信息和错误信息的传输。例如,如果一个路由器不能向前发送一个IP数据报,它就会利用ICMP来告诉发送者这里出现了问题。
+ k# p; v: A) Q0 y$ Q8 w, o4 u3 a* F
) {% x5 V% N: _; q8 E- Y/ W
网络设计者在解决网络体系结构时经常使用ISO/OSI( 国际标准化组织/开放系统互连)七层模型,该模型每 一层代表一定层次的网络功能。最下面是物理层,它 代表着进行数据转输的物理介质,换句话说,即网络 电缆。其上是数据链路层,它通过网络接口卡提供服 务。最上层是应用层,这里运行着使用网络服务的应 用程序。
) U0 a7 I3 [" {, i/ A: b6 ]$ y' ]) g
TCP/IP是同ISO/OSI模型等价的。当一个数据单元 从网络应用程序下流到网络接口卡,它通过了一列的TCP/IP 模块。这其中的每一步,数据单元都会同网络另一端 对等TCP/IP模块所需的信息一起打成包。这样当数据最 终传到网卡时,它成了一个标准的以太帧(假设物理 网络是以太网)。而接收端的TCP/IP软件通过剥去以太网 帧并将数据向上传输过TCP/IP栈来为处于接收状态的应 用程序重新恢复原始数据(一种最好的了解TCP/IP工作实 质的方法,是使用探测程序来观察网络中的到处流动 的帧中被不同TCP/IP模块所加上的信息)。& b' ]- W7 Z6 m( _2 z$ c0 _8 S
. B3 E/ [  L9 o) |( j
为了勾勒TCP/IP在现实网络世界中所扮演的角色, 请考虑当使用HTTP(超文本传输协&amp;#35758<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">的Web浏览器从连接 在Internet上的Web服务器上获取一页HTML数据时所发生的情 况。为形成同Web服务器的虚链路,浏览器使用一种被 抽象地称为套接口(socket)的高层软件。为了获 取Web页,它通过向套接口向套接口写入HTTPGET命令来向Web 服务器发出该指令。接下来套接口软件使用TCP协议向 Web服务器发出包含GET命令的字节流和位流,TCP将数据 分段并将各独立段传到IP模块,该模块将数据段转换 成数据报并发送给Web服务器。/ v& T4 L% J& e- b" F
" r& K2 i9 O5 m9 W$ m  r
如果浏览器和服务器运--在不同物理网络的计 算机上(一般情况如此),数据报从一个网络传到另一 个网络,直到抵达服务器所在的那个网。最终,数据 被传输到目的地址并被重新装配,这样Web服务器通过 读自己的套接口来获得数据主干,并进而查看连续的 数据流。对浏览器和服务器来说,数据在这一端写入 套接口而在另一端出现如同魔术一般,但这只是底 下发生的各种复杂的交互,它创造了数据经过网络无 缝传输的假象。4 B, V$ p+ }' q: d: a( c
! I& D0 V2 w, i$ |7 j- f
这就是TCP/IP所做的:将许多小网联成一个大网。 并在这个大网也就是Internet上提供应用程序所需要的 相互通信的服务。
. h7 J2 H4 a% z0 ]/ e! I4 H1 ~: h7 k  |6 T' W0 Q3 p5 o0 t
评论:
& D' F* k7 s7 ~# Q8 I' w: O
: l& b5 z2 g! v5 e; r; [对于TCP/IP有许多可谈的,但这里仅讲三个关键 点:+ e) P! B- A( b3 k' ]/ R9 z
6 ]' c" v# s' }$ I' v0 H
·TCP/IP是一族用来把不同的物理网络联在一 起构成网际网的协议。TCP/IP联接独立的网络形成一个 虚拟的网,在网内用来确认各种独立的不是物理网络 地址,而是IP地址。2 y6 O8 P# ?7 F- B) A4 X( A: b

* v1 A! w! p9 v, e+ ]5 L0 Z·TCP/IP使用多层体系结构,该结构清晰定义了 每个协议的责任。TCP和UDP向网络应用程序提供了高层 的数据传输服务,并都需要IP来传输数据包。IP有责任 为数据包到达目的地选择合适的路由。
" F  n8 S& U0 G$ d5 {3 M0 l& b+ G& z/ r# C
·在Internet主机上,两个运行着的应用程序之 间传送要通过主机的TCP/IP堆栈上下移动。在发送端TCP/IP 模块加在数据上的信息将在接收端对应的TCP/IP模块上 滤掉,并将最终恢复原始数据。) e6 [3 d! {. d/ z: T; e- [6 ~" ?
. \8 U' ?& n  L+ D, V
如果你有兴趣学习更多的TCP/IP知识,这里有两个 较高层次的信息源RFC(RequestforComment)1180——叫做“TCP/IP Tutorial”的文档,你可以从许多普及的RFC的Internet节点上 下载。另一个是InternetworkingwithTCP/IP的第一卷:Principles,Protocols,and Architectures,作者DouglasE.Comer(1995,Prentice-Hall)。作为该系三部 曲中的第一部分,许多人把看成是一本TCP/IP圣经。(原 文刊载于Vol.15No.20)
6 _7 o5 h0 I# P2 X+ _
6 C1 `% r3 `9 v" m+ K- q; y
4 g! p* q. k0 I- n二、传输层的安全性* |( U: U0 \2 M5 v% B% X

# Q& e8 U% Q5 ^6 ^在Internet应用编程序中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。比较流行的两个IPC编程界面是BSD Sockets和传输层界面(TLI),在Unix系统V命令里可以找到。
0 i4 I) M1 Y$ V; a' I- K, y8 C- m& e& x; V" W
在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。Netscape通信公司遵循了这个思路,制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全套接层协议(SSL)。SSL版本3(SSL v3)于1995年12月制定。它主要包含以下两个协议:
) M- p! ~, C: s4 J+ ]
: B) P% n; P; B8 Y4 }! C( \8 cSSL记录协议 它涉及应用程序提供的信息的分段、压缩、数据认证和加密。SSL v3提供对数据认证用的MD5和SHA以及数据加密用的R4和DES等的支持,用来对数据进行认证和加密的密钥可以通过SSL的握手协议来协商。6 ]1 M4 \3 L" v3 |$ e0 O$ l. ]
SSL握手协议 用来交换版本号、加密算法、(相互)身份认证并交换密钥。SSL v3 提供对Deffie-Hellman密钥交换算法、基于RSA的密钥交换机制和另一种实现在 Fortezza chip上的密钥交换机制的支持。
& u9 f1 L1 ]2 J" fNetscape通信公司已经向公众推出了SSL的参考实现(称为SSLref)。另一免费的SSL实现叫做SSLeay。SSLref和SSLeay均可给任何TCP/IP应用提供SSL功能。Internet号码分配当局(IANA)已经为具备SSL功能的应用分配了固定端口号,例如,带SSL的 HTTP(https)被分配的端口号为443,带SSL的SMTP(ssmtp)被分配的端口号为465,带SSL的NNTP(snntp)被分配的端口号为563。
2 w' @/ ]- m* Z, x9 W
9 i3 f) {" ?" J9 N: U微软推出了SSL2的改进版本称为PCT(私人通信技&amp;#26415<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">。至少从它使用的记录格式来看,SSL和PCT是十分相似的。它们的主要差别是它们在版本号字段的最显著位(The Most Significant Bit)上的取值有所不同: SSL该位取0,PCT该位取1。这样区分之后,就可以对这两个协议都给以支持。) R- H, u4 L* L3 R
8 W% g% q& F/ X7 I2 A$ l
1996年4月,IETF授权一个传输层安全(TLS)工作组着手制定一个传输层安全协议(TLSP),以便作为标准提案向IESG正式提交。TLSP将会在许多地方酷似SSL。9 Q6 |$ H4 v- S/ D. C6 F) r

1 Q, }8 e( i3 W1 f/ l前面已介绍Internet层安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变。这对传输层来说是做不到的。原则上,任何TCP/IP应用,只要应用传输层安全协议,比如说SSL或PCT,就必定要进行若干修改以增加相应的功能,并使用(稍微)不同的IPC界面。于是,传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。可是,比起Internet层和应用层的安全机制来,这里的修改还是相当小的。另一个缺点是,基于UDP的通信很难在传输层建立起安全机制来。同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。这一成就如果再加上应用级的安全服务,就可以再向前跨越一大步了。</FONT>
lurenjia 发表于 2004-10-9 06:56:20 | 显示全部楼层
<FONT color=#9932cc>三、应用层的安全性
2 \! H1 [1 w. N# v# D0 M必须牢记(且须仔细品味): 网络层(传输&amp;#23618<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">的安全协议允许为主机(进程)之间的数据通道增加安全属性。本质上,这意味着真正的(或许再加上机密的)数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。比如说,如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上传输的IP包就都要自动地被加密。同样,如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道,那么两个进程间传输的所有消息就都要自动地被加密。( z7 Q' C5 W" j* _
- e: a+ b' C5 @+ J! {& B
如果确实想要区分一个具体文件的不同的安全性要求,那就必须借助于应用层的安全性。提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段。例如一个电子邮件系统可能需要对要发出的信件的个别段落实施数据签名。较低层的协议提供的安全功能一般不会知道任何要发出的信件的段落结构,从而不可能知道该对哪一部分进行签名。只有应用层是唯一能够提供这种安全服务的层次。
! \: o( b6 x: A! r- {9 G5 ~8 y2 w' F8 z
2 Q% S8 u4 u# @9 {一般来说,在应用层提供安全服务有几种可能的做法,第一个想到的做法大概就是对每个应用(及应用协&amp;#35758<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">分别进行修改。一些重要的TCP/IP应用已经这样做了。在RFC 1421至1424中,IETF规定了私用强化邮件(PEM)来为基于SMTP的电子邮件系统提供安全服务。由于种种理由,Internet业界采纳PEM的步子还是太慢,一个主要的原因是PEM依赖于一个既存的、完全可操作的PKI(公钥基础结构)。PEM PKI是按层次组织的,由下述三个层次构成:
" K* q* I, v1 \, t; |& u7 ?1 C1 u$ u5 R- [" L* `0 B9 q) y
顶层为Internet安全政策登记机构(IPRA)
# n1 c2 p' K9 u9 p  `/ s: C次层为安全政策证书颁发机构(PCA)' {4 R9 F" T% |% m2 s# T- B, a
底层为证书颁发机构(CA)
9 m7 d7 ?/ p; {7 F建立一个符合PEM规范的PKI也是一个政治性的过程,因为它需要多方在一个共同点上达成信任。不幸的是,历史表明,政治性的过程总是需要时间的,作为一个中间步骤,Phil Zimmermann开发了一个软件包,叫做PGP(pretty Good Privacy)。PGP符合PEM的绝大多数规范,但不必要求PKI的存在。相反,它采用了分布式的信任模型,即由每个用户自己决定该信任哪些其他用户。因此,PGP不是去推广一个全局的PKI,而是让用户自己建立自己的信任之网。这就立刻产生一个问题,就是分布式的信任模型下,密钥废除了怎么办。+ U8 V, n; A3 F, l' n6 X

' T. C: @5 H3 ~3 l7 f" PS-HTTP是Web上使用的超文本传输协议(HTTP)的安全增强版本,由企业集成技术公司设计。S-HTTP提供了文件级的安全机制,因此每个文件都可以被设成私人/签字状态。用作加密及签名的算法可以由参与通信的收发双方协商。S-HTTP提供了对多种单向散列(Hash)函数的支持,如: MD2,MD5及SHA; 对多种单钥体制的支持,如:DES,三元DES,RC2,RC4,以及CDMF; 对数字签名体制的支持,如: RSA和DSS。  A, P8 z7 I* O7 g) X, B8 e3 o) l

$ A1 }6 B8 ?9 b( C& y$ G& \目前还没有Web安全性的公认标准。这样的标准只能由WWW Consortium,IETF或其他有关的标准化组织来制定。而正式的标准化过程是漫长的,可能要拖上好几年,直到所有的标准化组织都充分认识到Web安全的重要性。S-HTTP和SSL是从不同角度提供Web的安全性的。S-HTTP对单个文件作"私人/签字"之区分,而SSL则把参与通信的相应进程之间的数据通道按"私用"和"已认证"进行监管。Terisa公司的SecureWeb工具软件包可以用来为任何Web应用提供安全功能。该工具软件包提供有 RSA数据安全公司的加密算法库,并提供对SSL和S-HTTP的全面支持。
/ O4 S0 W0 ], N) V8 t+ \
5 d) r% J3 u& h+ p* B6 v另一个重要的应用是电子商务,尤其是信用卡交易。为使Internet上的信用卡交易安全起见,MasterCard公司(同IBM,Netscape,GTE和Cybercash一道) 制定了安全电子付费协议(SEPP),Visa国际公司和微软(和其他一些公司一道)制定了安全交易技术(STT)协议。同时,MasterCard,Visa国际和微软已经同意联手推出Internet上的安全信用卡交易服务。他们发布了相应的安全电子交易(SET)协议,其中规定了信用卡持卡人用其信用卡通过Internet进行付费的方法。这套机制的后台有一个证书颁发的基础结构,提供对X.509证书的支持。
# g) ~% k2 q( j* P. G2 c! v: {5 L! O/ \. ^7 ~4 |8 S+ D5 c$ z" C( y
上面提到的所有这些加安全功能的应用都会面临一个主要的问题,就是每个这样的应用都要单独进行相应的修改。因此,如果能有一个统一的修改手段,那就好多了。通往这个方向的一个步骤就是赫尔辛基大学的Tatu Yloenen开发的安全shell(SSH)。SSH允许其用户安全地登录到远程主机上,执行命令,传输文件。它实现了一个密钥交换协议,以及主机及客户端认证协议。SSH有当今流行的多种Unix系统平台上的免费版本,也有由Data Fellows公司包装上市的商品化版本。
( I$ m* S8 S" Y9 h
! Y) K7 `/ |2 y% Q把SSH的思路再往前推进一步,就到了认证和密钥分配系统。本质上,认证和密钥分配系统提供的是一个应用编程界面(API),它可以用来为任何网络应用程序提供安全服务,例如: 认证、数据机密性和完整性、访问控制以及非否认服务。目前已经有一些实用的认证和密钥分配系统,如: MIT的Kerberos(V4与V5),IBM的CryptoKnight和Netwrok Security Program,DEC的SPX,Karlsruhe大学的指数安全系统(TESS)等,都是得到广泛采用的实例。甚至可以见到对有些认证和密钥分配系统的修改和扩充。例如,SESAME和OSF DCE对Kerberos V5作了增加访问控制服务的扩充,Yaksha对Kerberos V5作了增加非否认服务的扩充。; V  m( o) P2 n) }. F8 o" p4 B) t5 T

3 g5 J" f: }+ z, S- C. z* n. G' k关于认证和密钥分配系统的一个经常遇到的问题是关于它们在Internet上所受到的冷遇。一个原因是它仍要求对应用本身做出改动。考虑到这一点,对一个认证和密钥分配系统来说,提供一个标准化的安全API就显得格外重要。能做到这一点,开发人员就不必再为增加很少的安全功能而对整个应用程序大动手术了。因此,认证系统设计领域内最主要的进展之一就是制定了标准化的安全API,即通用安全服务API(GSS-API)。GSS-API(v1及v2)对于一个非安全专家的编程人员来说可能仍显得过于技术化了些,但德州Austin大学的研究者们开发的安全网络编程(SNP),把界面做到了比GSS-API更高的层次,使同网络安全性有关的编程更加方便了。9 Y- T; L$ ^1 d' Y% Q/ x: i. ]

9 a0 @0 V$ `" z9 f' r
9 v, F' u! Z8 _0 Z局域网在网络层有什么不安全的地方?
7 H( m" x* t. D- D" v) O8 z
5 Y8 i9 G3 V( V$ m' E5 a$ NNAI公司 供稿
. R( [# Z! f) d1 I5 M% A
2 B0 ]; r! ]/ J. p  A不安全的地方
' B0 M9 Y! C8 z8 u. o! Z( A7 x$ i, L
由于局域网中采用广播方式,因此,若在某个广播域中可以侦听到所有的信息包,黑客就对可以对信息包进行分析,那么本广播域的信息传递都会暴露在黑客面前。  j+ |' X7 Y4 I# s2 U
8 d- t2 g, q( A
网络分段
6 N; F3 [" Z$ M( }9 N# E& I* F3 B7 u! }* \* h: T
网络分段是保证安全的一项重要措施,同时也是一项基本措施,其指导思想在于将非法用户与网络资源相互隔离,从而达到限制用户非法访问的目的。( T2 X( r* n+ c- c7 n& u& }% n

: w+ d, r$ a/ q% |3 j2 M2 [: ^网络分段可分为物理分段和逻辑分段两种方式:
( x: I+ K1 a) K" h* B1 f物理分段通常是指将网络从物理层和数据链路层(ISO/OSI模型中的第一层和第二层)上分为若干网段,各网段相互之间无法进行直接通讯。目前,许多交换机都有一定的访问控制能力,可实现对网络的物理分段。逻辑分段则是指将整个系统在网络层(ISO/OSI模型中的第三层)上进行分段。例如,对于TCP/IP网络,可把网络分成若干IP子网,各子网间必须通过路由器、路由交换机、网关或防火墙等设备进行连接,利用这些中间设备(含软件、硬件)的安全机制来控制各子网间的访问。在实际应用过程中,通常采取物理分段与逻辑分段相结合的方法来实现对网络系统的安全性控制。" A- t9 S- J( F! [; B
2 _2 B, t. U  i
5 C5 U; H4 s  X  L4 y- T
VLAN的实现  H  J6 R! s5 s4 Z- |( ?

8 M; d4 M$ |; E6 }. P7 f4 y6 ~' S! _! A2 H( A0 e+ H' k* v
虚拟网技术主要基于近年发展的局域网交换技术(ATM和以太网交&amp;#25442<IMG src="http://greenboard.chong.com.hk/vbb301/images/smilies/wink.gif">。交换技术将传统的基于广播的局域网技术发展为面向连接的技术。因此,网管系统有能力限制局域网通讯的范围而无需通过开销很大的路由器。
  Z/ W' i5 x0 R1 R0 e" t7 d& H: |- e% W0 C9 Z$ h
以太网从本质上基于广播机制,但应用了交换器和VLAN技术后,实际上转变为点到点通讯,除非设置了监听口,信息交换也不会存在监听和插入(改变)问题。
* n( T2 O8 P5 F9 @- [' d  n, j
- y  P& v; W) W6 d0 w4 h由以上运行机制带来的网络安全的好处是显而易见的:0 o: m5 U3 o# K* @
信息只到达应该到达的地点。因此、防止了大部分基于网络监听的入侵手段。
; @5 Z/ d! G4 a5 ~! Y9 L通过虚拟网设置的访问控制,使在虚拟网外的网络节点不能直接访问虚拟网内节点。1 R' d6 u7 M- N2 v# a5 Z( t) Z4 _
6 c5 I8 s5 N) F6 L* v' K
但是,虚拟网技术也带来了新的安全问题:
$ `8 s8 q$ l5 n: v! x) N执行虚拟网交换的设备越来越复杂,从而成为被攻击的对象。基于网络广播原理的入侵监控技术在高速交换网络内需要特殊的设置。基于MAC的VLAN不能防止MAC欺骗攻击。
6 y- k; H/ _% I. }$ }6 I3 O采用基于MAC的VLAN划分将面临假冒MAC地址的攻击。因此,VLAN的划分最好基于交换机端口。但这要求整个网络桌面使用交换端口或每个交换端口所在的网段机器均属于相同的VLAN。
( R* _2 [# N, {! f  X0 i3 p0 }
8 D, Q# d2 `, i8 V/ d7 L0 X# @
. c  H% b  g9 [4 N: Q9 c; v( kVLAN之间的划分原则( k( \9 z8 F& ]' Q9 y* b3 g

; i$ ~! l7 w, {5 ?1 CVLAN的划分方式的目的是保证系统的安全性。因此,可以按照系统的安全性来划分VLAN;可以将总部中的服务器系统单独划作一个VLAN,如数据库服务器、电子邮件服务器等。也可以按照机构的设置来划分VLAN,如将领导所在的网络单独作为一个Leader VLAN(LVLAN), 其他司局(或下级机构)分别作为一个VLAN,并且控制LVLAN与其他VLAN之间的单向信息流向,即允许LVLAN查看其他VLAN的相关信息,其他VLAN不能访问LVLAN的信息。VLAN之内的连接采用交换实现, VLAN与VLAN之间采用路由实现。由于路由控制的能力有限,不能实现LVLAN与其他VLAN之间的单向信息流动,需要在LVLAN与其他VLAN之间设置一个Gauntlet防火墙作为安全隔离设备,控制VLAN与VLAN之间的信息交流.</FONT>
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部