ISO/OSI网络模型介绍篇

    最近一直做Android视频编解码的移植,忙。很久没有写博客了,一提笔,想写点网络方面的东东了,我首先向给童鞋们介绍的是ISO网络模型。首先我先画一个图方便大家理解。

通过上面的参考模型图,我将对ISO/OSI参考模型的自低而上将每层协议讲清楚:
1、物理层  
两台计算机能够对话的话,从硬件上讲要保证这两台计算机之间有一条物理链路连接起来,这个不在我们的软件讨论范围之类。从软件上讲,假设两台计算机已经物理连接起来了,两台机器之间是怎样传递信息的呢?
   在计算机内部,不管你传递的是什么数据(声音、图形、文字……),他都是已010111…的形式表现出来的比特串。因此我们要实现计算机之间的传递就需要将这台计算机的比特串传递到另外一台计算机,这是第一个要实现的。这个工作是由物理层来实现。所以这是七层协议最最基本的一层。

2、数据链路层   
    通过上面物理层,我们已经保证信息可以相互传递了,但是这个信息传递时非常不安全的。为什么呢?
  你任何一条物理链路都可能有干扰。比如说我是无线的,打个雷可能会影响我。如果我是一条双绞线连接起来的,旁边如果有其他的干扰线,他也会干扰这条线路中的数据传递的。所以他会有出错。还有就是对计算机来做事,他1就是1,0就是0,不会有二义性。所以你传递的数据要保证他们是正确的,因此我们都会有第二层的工作-------数据链路层。
  那数据链路层干什么呢?
  他保证主机A中的比特串传递到主机B中是正确的。通过双绞线,主机A中的数据传递到主机B中与计算机内部其实是一样的,它其实传递的是信号。CPU中数据也是将其变成一串信号传递到外部设备的。她跟我们普通人说话一样的,我们在讲话的时候是把它分成一句句的说,它有节奏。如果人一个字一个字的讲,可能有些句子就听不懂了。数据链路层把你要传递的数据就分成一组一组。每一组我们把称着是一个帧,对于每一个帧来讲,我们必须保证它的完整性。他们通过计算来保证帧数据的正确性,这个与加密算法中消息摘要很相似。

3、网络层
对于两台计算机,并不是他们之间没有任何节点的物理设备来连接。主机A传递到主机B,它要通过一个通信子网的终极节点,终极节点传递到一个节点……然后再传递到我这边,这样一来就带来了一个问题-------我怎么知道将这个信息交给谁呢?
它其实是在网络中找到一条路径,然后我沿着这条路径,一段一段的传过去,这样我可以保证传递的正确性。这种机制就是网络层所要实现的。
网络层的工作就是找到这样一条路径。

4、传输层
对于网络中数据,它的最终用户并不是某台机器,而是这台机器上某个应用进程。现代的计算机他们都是多进程的。传输层的任务就是要我知道这个请求是谁?我要把它交给某个服务进程。
5、会话层
   如果我要跟你进行对话,我需要你事先做好准备,不要我发送一个消息到你那,你却没准备。比如说我我发一个WEB请求,你一定要保证你得WEB服务启动了。会话层的作用就是事先给我打好招呼。保证我们之间可以通话。
6、表示层
通过上面几层,数据可以一个应用进程传递到另外一个应用进程了,我举一个简单的例子,上面几层保证了一个人说话,另外一个人可以从耳朵听到了,如果我们都是讲的普通话,你没问题,你能够听懂。但是大家设想一个如果一个人是外国人呢?虽然他听到了,但是他无法理解,对于计算机网络来讲,我这个客户端向服务器发了一个请求,你这个服务器进程要理解这个请求到底是什么,所以接下去要解决的问题就是你怎么来理解。这个理解问题有两个层次:比如说我讲的中国话,她说的英语,他们之间就需要有个翻译,计算机里面也是一样的,每台计算机都有自己的语言,都要自己的信息表示方法。我们大多数PC机用的都是ASCII表示方法来表示字符的,但是对于一个大型机来说就不一定了,他可能是其他方式了。对于不同的编码他们表示的信息是不一样的,这些都是表示层来做的事,它的作用就是信息的理解。
7、应用层
还是举一个例子,大家都是说普通话,是不是大家都可以理解了呢?她讲哲学、你讲计算机、我说数学。你要理解某个专业里面的东西,你需要学习。我某个应用都要他特定的表示方式。这个就是应用层来实现的。
   童鞋们,通过这样的讲解,你理解了吗?

猜你喜欢

转载自jefry.iteye.com/blog/1410425