网络发展中一个重要里程碑便是ISO(Internet Standard Organization,国际标准组织)对OSI(Open System Interconnect,开放系统互连)七层网络模型的定义。它不但成为以前的和后续的各种网络技术评判、分析的依据,也成为网络协议设计和统一的参考模型。
建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。它的最大优点是将服务、接口和协议这三个概念明确地区分开来:服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:
减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;
在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行; 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术; 便于研究和教学。
网络分层体现了在许多工程设计中都具有的结构化思想,是一种合理的划分。
--------------------------------------------------------------------------------------
网络七层包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。
那么,网络七层的具体定义和相应职责各是什么呢?下图便是OSI七层模型示简单意图,它们由下到上分别为:
OSI参考模型(简单图一)
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
第一层—物理层:
物理层定义了通讯网络之间物理链路的电气或机械特性,以及激活、维护和关闭这条链路的各项操作。
机械性能:物理连接媒体,接口的型状,尺寸的大小,引脚的数目和排列方式等。
电气性能:接口规定信号的电压、电流、阻抗、波形、速率、最大传输距离及平衡特性等。
工程规范:接口引脚的意义、特性、标准。
工作方式:确定数据位流的传输方式,如:单工、半双工或全双工。
第二层—数据链路层:
链路层屏蔽传输介质的物理特征,使数据可靠传送。
内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。
实际的物理链路是不可靠的,总会出现错误。
数据链路层的作用就是通过一定的手段(将数据分成帧,以数据帧为单位进行传输)将有差错的物理链路转化成对上层来说没有错误的数据链路。
提供物理地址、网络拓朴结构、错误警告机制、所传数据帧的排序和流控等。其中物理地址是相对网络层地址而言的,它代表了数据链路层的节点标识技术;“拓朴”是网络中经常会碰到的术语,标记着各个设备以何种方式互连起来,如:总线型—所有设备都连在一条总线上,星型—所有设备都通过一个中央结点互连;错误警告是向上层协议报告数据传递中错误的发生;数据帧排序可将所传数据重新排列;流控则用于调整数据传输速率,使接收端不至于过载。
第三层—网络层:
管理连接方式和路由选择。
连接方式:虚电路(Virtual Circuits)和数据报(Datagram)服务。
虚电路是面向连接的(Connection-Oriented),数据通讯一次路由,通过会话建立的一条通路。
数据报是非连接的(Connectionless-Oriented),每个数据报都有路由能力。
网络层的数据单位是包,使用的是IP地址,典型设备是路由器Router。
这一层可以进行流量控制,但流量控制更多的是使用第二层或第四层。本层将数据分成一定长度的分组,并在分组头中标识源和目的节点的逻辑地址,这些地址就象街区、门牌号一样,成为每个节点的标识;网络层的核心功能便是根据这些地址来获得从源到目的的路径,当有多条路径存在的情况下,还要负责进行路由选择。
第四层—传输层:提供对上层透明(不依赖于具体网络)的可靠的数据传输。如果说网络层关心的是“点到点”的逐点转递,那么可以说传输层关注的是“端到端”(源端到目的端)的最终效果。它的功能主要包括:流控、多路技术、虚电路管理和纠错及恢复等。其中多路技术使多个不同应用的数据可以通过单一的物理链路共同实现传递;虚电路是数据传递的逻辑通道,在传输层建立、维护和终止;纠错功能则可以检测错误的发生,并采取措施(如重传)解决问题。
第五层—会话层:在网络实体间建立、管理和终止通讯应用服务请求和响应等会话。
第六层—表示层:定义了一系列代码和代码转换功能以保证源端数据在目的端同样能被识别,比如大家所熟悉的文本数据的ASCII码,表示图象的GIF或表示动画的MPEG等。
第七层——应用层:应用层是面向用户的最高层,通过软件应用实现网络与用户的直接对话,如:找到通讯对方,识别可用资源和同步操作等。
网络七层的底三层(物理层、数据链路层和网络层)通常被称作媒体层,它们不为用户所见,默默地对网络起到支撑作用,是网络工程师所研究的对象;上四层(传输层、会话层、表示层和应用层)则被称作主机层,是用户所面向和关心的内容,这些程序常常将各层的功能综合在一起,在用户面前形成一个整体。大家所熟悉的网上应用WWW、FTP、TELNET等,都是这多层功能的综合。
在数据的实际传输中,发送方将数据送到自己的应用层,加上该层的控制信息后传给表示层;表示层如法炮制,再将数据加上自己的标识传给会话层;以此类推,每一层都在收到的数据上加上本层的控制信息并传给下一层;最后到达物理层时,数据通过实际的物理媒体传到接收方。接收端则执行与发送端相反的操作,由下往上,将逐层标识去掉,重新还原成最初的数据。由此可见,数据通讯双方在对等层必须采用相同的协议,定义同一种数据标识格式,这样才可能保证数据的正确传输而不至走形。
------------------------------------------------------------------------------------------------------------------------------
网络中实际用到的协议是否严格按照这七层来定义呢?并非如此,七层模型是一个理论模型,实际应用则千变万化,完全可能发生变异。何况有的应用由来已久,不可能在七层模型推出后又推翻重来。因此对大多数应用,我们只是将它的协议族(即协议堆栈)与七层模型作大致的对应,看看实际用到的特定协议是属于七层中某个子层,还是包括了上下多层的功能。我们在以前的篇幅中曾介绍过的TCP/IP协议,它与七层模型的对应关系如下:
OSI与TCP/IP模型的对应关系(简单图二)
应用层 *
表示层 应用层
会话层 *
传输层 传输层
网络层 网络层
数据链路层 网络接口层
物理层 *
由图二可看出,TCP/IP的多数应用协议将OSI应用层、表示层、会话层的功能合在一起,构成其应用层,典型协议有:HTTP、FTP、TELNET等;TCP/UDP协议对应OSI的传输层,提供上层数据传输保障;IP协议对应OSI的网络层,它定义了众所周知的IP地址格式,做为网间网中查找路径的依据;TCP/IP的最底层功能由网络接口层实现,相当于OSI的物理层和数据链路层,实际上TCP/IP对该层并未作严格定义,而是应用已有的底层网络实现传输,这就是它得以广泛应用的原因。
从功能角度可分为三组,1、2层解决网络信道问题,3、4层解决传输问题,5、6、7层处理对应用进程的访问。
从控制角度可分为二组,第1、2、3层是通信子网层,第4、5、6、7层是主机控制层。
-----------------------------------------------------------------------------------------------------------------
一、OSI各层对协议
比较常用的应用层协议有:
SMTP (simple Mail Transfer Protocol)
BOOTP(Boot trap.Protocol)
FTP (File Transfer Protocol)
HTTP (Hyperrext Transfer Protocol
AFP (Apple Talk文件协议)--Apple公司的网络协议族,用于交换文件
SNMP (Simple Network Management Protoco1)
SMB (Server Message Block Protoco1)
X.500
NCP (NetWare Core Protoco1)
NFS (Network File System)
主要的传输层协议有:
TCP(Transmission Control Protocol)
SPX(SequenCed Packet ExChange Protocol
NWL INK
ATP(AppleTalk Transaction Protocol),NBP(名字绑定协议)
NetBEUI(NetBIOS Extended User Internet)
网络层协议包括:
IP (Internet Protocol)
IPX (Internet work Packet Exchange)
NWLINK--微软实现的 IPX/SPX
DDP (Datagram Delivery Protoco1)
NetBEUI
Ethernet
链路层协议有:
协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。
仲裁协议:802.3、802.4、802.5,即:
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token Bus、Token Ring
链路层数据单位是帧,实现对MAC地址的访问,典型设备是交换机Switch。
物理层协议有:
美国电子工业协会(EIA)的RS232,RS422,RS423,RS485等;
国际电报电话咨询委员会(CCITT)的X.25、X.21等;
物理层的数据单位是位(BIT),典型设备是集线器HUB。
二、TCP/IP 协议簇
TCP/IP(Transmission Control Protocol/Internet Protocol)已成为一个事实上的工业标准。
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。
TCP和IP是TCP/IP协议簇的中间两层,是整个协议簇的核心,起到了承上启下的作用。
1、接口层
TCP/IP的最低层是接口层,常见的接口层协议有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
2、网络层
网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
IP是网络层的核心,通过路由选择将下一跳IP封装后交给接口层。IP数据报是无连接服务。
ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站和DHCP服务。
3、传输层
传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram rotocol)。
TCP是面向连接的通信协议,通过三次握手建立连接,通讯时完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求在程序员编程验证。
4、应用层
应用层一般是面向用户的服务。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换。
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转。
POP3(Post Office Protocol 3)是邮局协议第3版本,用于接收邮件。
5.数据格式:
数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)
IP数据包:IP头部+TCP数据信息 (IP头包括源和目标主机IP地址、类型、生存期等)
IP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校
验字等)
转自:http://www.cnblogs.com/BlogNetSpace/archive/2009/02/06/1385104.html