Chinaunix首页 | 论坛 | 博客
  • 博客访问: 896007
  • 博文数量: 60
  • 博客积分: 1458
  • 博客等级: 中尉
  • 技术积分: 1373
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-24 12:50
个人简介

不积硅步无以至千里

文章分类

全部博文(60)

分类: 网络与安全

2012-02-29 13:18:06


OSI是Open System Interconnect的缩写,意为开放式系统互联。

国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。1至4层被认为是低层,这些层与数据移动密切相关。5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。

第一层是物理层(也即OSI模型中的第一层) 

在课堂上经常是被忽略的。它看起来似乎很简单。但是,这一层的某些方面有时需要特别留意。物理层实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。甚至一个信鸽也可以被认为是一个1层设备。网络故障的排除经常涉及到1层问题。我们不能忘记用五类线在整个一层楼进行连接的传奇故事。由于办公室的椅子经常从电缆线上压过,导致网络连接出现断断续续的情况。遗憾的是,这种故障是很常见的,而且排除这种故障需要耗费很长时间。

第2层是数据链路层

运行以太网等协议。请记住,我们要使这个问题简单一些。 第2层中最重要的是你应该理解网桥是什么。交换机可以看成网桥,人们现在都这样称呼它。网桥都在2层工作,仅关注以太网上的MAC地址。如果你在谈论有关MAC地址、交换机或者网卡和驱动程序,你就是在第2层的范畴。集线器属于第1层的领域,因为它们只是电子设备,没有2层的知识。第2层的相关问题在本网络讲座中有自己的一部分,因此现在先不详细讨论这个问题的细节。现在只需要知道第2层把数据帧转换成二进制位供1层处理就可以了。

第3层是网络层

在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链 路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。

如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“ 数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。

第4层是处理信息的传输层

第4层的数据单元也称作数据包( packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。理解第4层的另一种方法是,第4层提供端对端的通信管理。像TCP等一些协议非常善于保证通信的可靠性。有些协议并不在乎一些数据包是否丢失,UDP协议就是一个主要例子。

第5层是会话层

这一层也可以称为会晤层或对话层,在会话层及以上的高层次中, 数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

第6层是表示层

这一层主要解决拥护信息的语法表示问题。 它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

第7层是“一切”

第7层也称作“应用层”, 是专门用于应用程序的。应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务如果你的程序需要一种具体格式的数据,你可以发明一些你希望能够把数据发送到目的地的格式,并且创建一个第7层协议。SMTP、DNS和FTP都是7层协议。

学习OSI模型中最重要的事情是它实际代表什么意思。

假如你是一个网络上的操作系统。在1层和2层工作的网卡将通知你什么时候有数据到达。驱动程序处理2层帧的出口,通过它你可以得到一个发亮和闪光的3层数据包(希望是如此)。作为操作系统,你将调用一些常用的应用程序处理3层数据。如果这个数据是从下面发上来的,你知道那是发给你的数据包,或者那是一个广播数据包(除非你同时也是一个路由器,不过,暂时不用担心这个问题)。如果你决定保留这个数据包,你将打开它,并且取出4层数据包。如果它是TCP协议,这个TCP子系统将被调用并打开这个数据包,然后把这个7层数据发送给在目标端口等待的应用程序。这个过程就结束了。

当要对网络上的其它计算机做出回应的时候,每一件事情都以相反的顺序发生。7层应用程序将把数据发送给TCP协议的执行者。然后,TCP协议在这些数据中加入额外的文件头。在这个方向上,数据每前进一步体积都要大一些。TCP协议在IP协议中加入一个合法的TCP字段。然后,IP协议把这个数据包交给以太网。以太网再把这个数据作为一个以太网帧发送给驱动程序。然后,这个数据通过了这个网络。这条线路中的路由器将部分地分解这个数据包以获得3层文件头,以便确定这个数据包应该发送到哪里。如果这个数据包的目的地是本地以太网子网,这个操作系统将代替路由器为计算机进行地址解析,并且把数据直接发送给主机。

ISO把网络按照不同的功能和应用划分开了所谓的OSI七层模型,其中的数据传输由最下面的物理层、数据链路层、网络层来负责。

其中各层根据对数据封装的单位不同,在物理层中封装为数据“位”,在数据链路层封装为数据“帧”,在网络层中封装为数据“包”,在传输层中封装为数据

接下来再看一下网络层 中的定义及功能。网络层关系到子网的运行控制,其中一个关键问题是确定分组从源端到目的端如何选择路由。路由既可以选用网络中固定的静态路由表,几乎保持 不变。会话开始时,还可以根据当前网络的负载情况,高度灵活地为每一个分组决定路由。网络层提供数据的物理路由,决定计算机之间的路径。网络层处理所有路 由问题,以使较高层不必关心路由问题。网络层检查网络拓扑以决定传输报文的最佳路由,同时指出转发系统。只有网络层才真正把信源传输至信宿,并管理通过此 系统传输给另外计算机的其他数据块。

测试丢包率采用方式,说的通俗一点儿,就是你发送到目标机几个数据包,目标机需要传回几个相应的数据包,这样,就能检查网络传输中数据包的传递稳定性。

阅读(3041) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

haiyangcqu2013-05-22 00:56:11

jianjun:我想知道,在一台PC上,一个数据包从物理层到应用层需要多长时间?

一瞬间?

回复 | 举报

jianjun2013-05-11 17:07:47

我想知道,在一台PC上,一个数据包从物理层到应用层需要多长时间?

haiyangcqu2012-03-02 10:44:45

哇哦哇: 7层看起来挺复杂的!不知道ipv6是怎么个结构.....
IPV6的相关资料网上应该能够搜到吧
没怎么关注过
读书的时候学过,很遗憾,没学好啊

哇哦哇2012-03-02 03:30:08

7层看起来挺复杂的!不知道ipv6是怎么个结构