现在想想,估计专业是计算机网络的同学们,肯定都学过这个七层模型,现在还能想起上课时老师讲的那些枯燥的理论,但话又说回来,OSI参考模型的理论确实很重要,尤其是在网络故障排错中,那么这篇文章就是先介绍这七层模型,下一篇会有最基本网络故障排错,都是基于OSI七层模型,即便大家都已经对七层模型有了大概的了解,但还是希望和我一样基础不好的新手朋友们能够好好看完这篇文章。
 
    介绍任何技术的时候都不得不追述到它的起源,在20世纪80年代的时候,很多大公司逐渐感受到了盲目扩大规模扩展网络带来的后果,终于发现使用不同标准的网络之间很难通信,于是他们意识到必须放弃先前专用的网络系统,制定一种网络连接的标准,随后我们的OSI七层模型就诞生了,直到现在,OSI为各个厂商提供了一套完整的标准,确保世界各地不同类型的网络技术之间能够有良好的兼容性和互操作性。
 
    那么在介绍完OSI的简历之后呢,我们就来具体看一看OSI到底是个什么东西。开放系统互连参考模型(Open System Interconnection - Reference Model)就是OSI的大名了,我们来分析一下名字的含义,“开放”表示能使任何两个遵守参考模型和有关标准的系统进行连接,“互连”是指将不同的系统互相连接起来,以达到相互交换信息、共享资源、分布应用和分布处理的目的。下面就从最下层开始,让我们对OSI有一个全面的认识
 
1.物理层(Physical Layer)
    物理层位于OSI参考模型的最底层,它直接面向原始比特流的传输。为了实现原始比特流的物理传输,物理层必须解决好包括传输介质、信道类型、数据与信号之间的转换、信号传输中的衰减和噪声等在内的一系列问题。另外,物理层标准要给出关于物理接口的机械、电器功能和规程特性,以便于不同的制造厂家既能够根据公认的标准各自独立地制造设备,又能使各个厂家的产品互相兼容。
 
2.数据链路层(Data Link Layer)
    数据链路层涉及相邻节点时间的可靠数据传输,数据链路层通过加强物理层传输原始比特的功能,使之对网络层表现为一条无错线路。为了能够实现相邻节点之间无差错的数据传输,数据链路层在数据传输过程中提供了确认、差错控制和流量控制等机制。在数据链路层的设备有二层交换机和网桥,我们可以把数据链路层开做是承上启下的一层。
 
3.网络层(Network Layer)
    网络中的两台计算机进行通信时,中间可能要经过许多中间节点甚至不同的通信子网。网络层的任务就是在通信子网中选择一条合适的路径,使发送端传输层所传下来的数据能够通过所选择的路径到达目的端。网络层提供了路由及其相关的功能,可以将众多的数据链路结合成一个互连的网络,这是通过设备的逻辑寻址来实现的。
 
4.传输层(Transport Layer)
    传输层是OSI参考模型中唯一负责端到端节点间数据传输和控制功能的一层。传输层也是具有承上启下功能的一层,它下面的三层主要面向网络通信,以确保信息被准确有效地传输,它上面的3个层次则面向用户主机,为用户提供各种服务,传输层通过弥补网络层服务质量的不足,为会话层提供端到端的可靠数据传输服务。
 
5.会话层(Session Layer)
    会话层的主要功能是在两个节点之间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传输。会话层是建立在传输层之上,由于利用传输层提供的服务,使得两个会话实体之间不考虑他们之间相隔多远,使用了什么样的通信子网等网络通信细节,从而进行透明的、可靠的数据传输。
 
6.表示层(Presentation Layer)
    在OSI模型中,表示层的作用是为通信双方的应用层实体提供共同的表达手段,使双方能正确地理解所传送的信息。
 
    表示层为应用层提供了各种编码和数据转换功能。这些功能可以确保发自某个系统的应用层信息可以被另一个系统的应用层解读出来,表示层的一些编码与转换例子包括公共数据表示格式、字符表示格式的转换、公共数据压缩方案及公共数据加密方案等。
 
7.应用层(Application Layer)
    应用层是OSI参考模型中最靠近用户的一层,负责为用户的应用程序提供网络服务。与OSI参考模型其它层不同的是,它不为任何其他OSI层提供服务,而只是为OSI模型以外的应用程序提供服务。
 
    好了,我相信所有刚刚接触七层模型的朋友都和我一样,在看完长篇的介绍之后还是一同雾水,到底什么是OSI呢?能不能用几句话来概括一下呢?确实,把上面的介绍都背下来那是不可能的了,但我们应该记住以下的概括:

应用层:触及到应用程序的网络业务
表示层:数据表达
会话层:主机间通信
传输层:端到端的可靠连接
网络层:逻辑寻址和最佳路径
数据链路层:访问介质
物理层:数据二进制的传输
 
    最后大家要记住,OSI关心的主要是进程之间的通信行为。同时一定要了解以上内容,因为在未来的网络故障排错中,这真的很重要。
 
原创文章请注明转载自 TouchCisco,本文地址: http://www.touchcisco.com/post/22.html