海瑞两千
发表于 2005-1-9 18:55:00
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
计算机网络理论把这整个过程定义成一个分层服务体系。在国际标准组织(ISO)的著名标准开放式系统互联参考模型(OSI)里,这个复杂的体系依次有应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,称为ISO七层模型。ISO七层模型如下图:: d4 m. ~+ `( r- Q" P$ A& g
- a& L- w- c X; I. i WISO七层模型图
* K/ v1 y! {7 O( E% l' Y) ?
% d# p+ o, o4 B 在数据的实际传输中,发送方将数据送到自己的应用层,加上该层的控制信息后传给表示层;表示层也将数据加上自己的标识传给会话层;以此类推,每一层都在收到的数据上加上本层的控制信息并传给下一层;最后到达物理层时,数据通过实际的物理媒体传到接收方。接收端则执行与发送端相反的操作,由下往上,将逐层标识去掉,重新还原成最初的数据。由此可见,数据通讯双方在对等层必须采用相同的协议,定义同一种数据标识格式,这样才可能保证数据的正确传输。0 C$ d: y' J% S% x N4 B
4 L! k. g2 X+ m; f6 U 实际使用的协议是否严格按照这七层来定义呢?
+ Z8 E7 p4 _+ z! @0 I: M3 E/ E% c* z2 x8 F0 f0 L3 u5 Q
并非如此,OSI七层模型是一个理论模型,实际应用则千变万化,因此更多把它作为分析、评判各种网络技术的依据;对大多数应用来说,只将它的协议族(即协议堆栈)与七层模型作大致的对应,看看实际用到的特定协议是属于七层中某个子层,还是包括了上下多层的功能.
1 g6 X% s$ h, R _0 v
- B' Q6 z2 v4 T- d* q$ `+ e 第一篇,先说最基础的东西,就是OSI七层模型。
5 j: ?" ]; `1 b( f
) e$ R/ v: F+ x5 | 最初,各个厂商的设备,系统,各有各的一套,彼此之间很难互相通信,要建立一个网络,就只能选一家厂商的设备,比如说全IBM的,或全DECnet的,用一种系统,那时UNIX大行其道。后来用Windows的网络也慢慢多了起来,基于将不同网络互连的迫切要求,国际标准化组织ISO于上世纪70年代发布了OSI七层网路模型,以规范化网络设计。那为什么要分层呢?是因为出于将数据处理分步的考虑。总结来说,OSI网七层络模型的用处如下:9 ^) d3 H+ w) l3 R+ P3 p
& ?- y# ?& ^, g- f
1.使不同厂商在开发设备的时候有个公共的标准,让不同厂商开发出来的设备能够互相通信。
J0 l/ X2 w+ C9 `: F5 X3 f* I* `! x! d
2.使不同系统之间能够互相通信,如UNIX、Winsows和Mac。& o3 d! b" A9 P; n9 L
" K8 ], i) B4 K: Q 3.分层使数据处理分步,互相之间不造成影响。% s x2 \3 X, z; I
5 \2 j u v8 z2 V: k4 _% Z& t# d' B
OSI七层网络模型由下至上为1至7层,分别为物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport layer),会话层(Session layer),表示层(Presentation layer),应用层(Application layer)。其中上三层称之为高层,定义应用程序之间的通信和人机界面。什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。下四层称之为底层,定义的是数据如何端到端的传输(end-to-end),物理规范以及数据与光电信号间的转换。先面一层一层的来说明。从上层说起。( r W2 q; h5 Y
2 S% T4 s; z/ h; o# N
应用层,很简单,就是应用程序。这一层负责确定通信对象,并确保由足够的资源用于通信,这些当然都是想要通信的应用程序干的事情。* E% j8 Z( {; n5 k
+ y5 a2 t/ I' U' T7 ~" q. H
表示层,负责数据的编码、转化,确保应用层的正常工作。这一层,是将我们看到的界面与二进制间互相转化的地方,就是我们的语言与机器语言间的转化。数据的压缩、解压,加密、解密都发生在这一层。这一层根据不同的应用目的将数据处理为不同的格式,表现出来就是我们看到的各种各样的文件扩展名。" E' N$ V- G! ~$ T' Z$ m0 m7 m( N
! r$ e' x- z+ B
会话层,负责建立、维护、控制会话,区分不同的会话,以及提供单工(Simplex)、半双工(Half duplex)、全双工(Full duplex)三种通信模式的服务。我们平时所知的NFS,RPC,X Windows等都工作在这一层。
: X) \' L' t3 ~/ t0 }! \, u/ v: Y5 q& G0 w1 [. w7 h7 ]
传输层,负责分割、组合数据,实现端到端的逻辑连接。数据在上三层是整体的,到了这一层开始被分割,这一层分割后的数据被称为段(Segment)。三次握手(Three-way handshake),面向连接(Connection-Oriented)或非面向连接(Connectionless-Oriented)的服务,流控(Flow control)等都发生在这一层。, Q: ^% @( ^% ~4 H
/ b2 ~# g& l# n+ ^2 Q
网络层,负责管理网络地址,定位设备,决定路由。我们所熟知的IP地址和路由器就是工作在这一层。上层的数据段在这一层被分割,封装后叫做包(Packet),包有两种,一种叫做用户数据包(Data packets),是上层传下来的用户数据;另一种叫路由更新包(Route update packets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。
+ ^0 W% j7 J4 j9 H) Z* n8 J' C" [5 U6 ^. p/ O
数据链路层,负责准备物理传输,CRC校验,错误通知,网络拓扑,流控等。我们所熟知的MAC地址和交换机都工作在这一层。上层传下来的包在这一层被分割封装后叫做帧(Frame)。% U$ D4 h* e4 O ]0 q2 e8 M( k9 r
6 `. V5 s; E& O* b$ m 物理层,就是实实在在的物理链路,负责将数据以比特流的方式发送,接收,就不多说了。
3 N5 ~8 A9 m G" b2 x: g, a( F t
TCP/IP四层协议 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络接口层 H% J5 X$ q* n4 M% }
) Y6 N2 a# @! O+ g; M/ G
TCP/IP的多数应用协议将OSI应用层、表示层、会话层的功能合在一起,组成应用层,典型协议有:HTTP、FTP、TELNET等;TCP/UDP协议对应OSI的传输层,提供上层数据传输保障;IP协议对应OSI的网络层;TCP/IP的最底层功能由网络接口层实现,相当于OSI的物理层和数据链路层,TCP/IP应用已有的底层网络实现传输,对该层并未作严格定义。
: U7 o4 e- L' k" D8 W/ h0 L6 k
+ B% I& p5 l- O+ q 浅谈TCP/IP: M6 J9 ]! X& l/ D. N8 H9 x/ P) Y
9 U" P" V4 F4 _% P5 z
TCP/IP由上至下分为应用层(Application layer),传输层(Transport layer)——其实应称为:主机对主机传输层(Host-Host Transport layer),网际层(Internet layer),网络存取层(Network Access layer)——其实就是我们说的物理层。
3 }3 t) S) ?1 S; ?% P0 k- @: c# ?) S: W9 f
1 Network Access layer
6 z- }" j5 u0 ~3 z* Q, _& q
0 c, _- C5 b" M7 k 有关物理层的东西都是一些专家级的东西,有兴趣的可以参看0 K( l. c! @8 Q) T, J
5 ?+ C& ?8 \2 M% Z# P RFC826 地址解析协议(Address Resolution Protocal ARP); i: W9 w" e4 L/ g, i
( U+ H" j2 S( T, c$ i rfc 894 以太网的IP数据报传送标准。
* o7 V+ D1 j6 `9 V9 W0 s9 b1 H
$ C) L" _$ B- R# G% L 2 Internet layer9 D( R3 x1 R& r9 Z- p7 |- | k
. d, d- K m( k: a* I 主要功能:/ u" H8 k9 H' k7 P/ p8 d0 }
# J0 ~% Z/ U. R a 定义数据报,它是Internet中的基本传送单位
& P1 A0 {& y4 J* L& s4 p' v
8 y7 U ]- t2 H( u" z b 定义Internet的寻址方式" k7 D7 f: u; u3 Q9 n
' q5 F& y, R, v+ b6 H
c 在Network Access layer和Host-Host Transport layer间移动数据' I: P S. r3 s' k* |% I1 i
5 K" I$ D+ e& _. H4 H4 B0 E+ d
d 决定数据报到远程主机的路由
$ h+ f6 i$ }4 ?6 a" z
' X/ a" i f" f e 执行数据报的分解(fragmenting)及重组
8 B7 l, t. i; Q
7 K0 w9 ]$ }- V% T$ T! N 这层中最重要的是ICMP(Internet Control Message Protocal9 z4 O: ^. J+ \# Z
I% @/ k9 p! F# } 网际控制报文协议).有关RFC792定义可以看。5 A7 o; C4 [9 I& s7 M. A
- Z% x/ X) t1 w+ \1 k
3 Host-Host Transport layer5 d K# E% q9 Y! p: b$ E
% U: c! i* Z0 ?( r$ s4 N 这层中我只想说一点,这也是方便大家看扫描原理的理解.+ ~' P, d) V$ U( ~$ q3 f" G5 p
, {" Q- f+ R% ~ 在说之前先说一个定义:握手:在数据传输之前,两端点间交换控制信息以建立连接的过程叫"握手",在扫描器原理中大家一定常看到关于TCP的扫描原理,这其中有一个"三次握手"的说法.个人认为实在不妥.为什么?请看握手的定义.看了这么多人的文章,只有雾中鸟前辈的说法较准确.个人认为叫"三段式握手"更好.现在来详细说一下这个过程.首先,发起方A主机给B主机一个数据段,其中设置了同步序号(Synchronize
6 c* W _" a- r2 M4 B( E
) e; `2 Z) M' j2 e! G9 ?% b sequence number
) ^% t' c) q# Q6 _" S: y2 s0 [/ B, Z
SYN)位.这个数据段告诉B主机,A希望建立连接以及A将使用的数据段起始序号.B主机用设置了ACK(ackonwledement)以及SYN位的数据段回应A.B的数据段向A确认,收到A的数据段.同时也告诉A,B将使用的起始序号.最后A再传送一个数据段给B,通知收到数据段.到此完成整个"三段式握手".从这以后才开始数据的传输.在数据传输完毕以后再来一次"三段式握手"来结束连接. |
|
中国hifi音响网
|
|
|