zoukankan      html  css  js  c++  java
  • 通俗讲解OSI七层模型

    国际标准化组织 ISO 于 1983 年正式提出了开放式系统互联模型(通称 ISO/OSI)。将整个网络通信的功 能划分为 7 个层次
    OSI参考模型将整个网络通信的功能划分为 7 个层次,这些层 就像我们吃的洋葱、卷心菜的一样:每一层都将其下面的层遮起来。 下一层次的细节被隐藏起来。如果你将洋葱皮剥开往里看,你一 定会流下许多眼泪,OSI模型也是如此,越往下看越难理解,只要你 不怕流泪、麻烦,不放弃你就会成功。
    物理层:网卡,网线,集线器,中继器,调制解调器
    数据链路层:网桥,交换机
    网络层:路由器
    网关工作在第四层传输层及其以上
    集线器是物理层设备,采用广播的形式来传输信息。
    交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文.。
    路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。
    交换机和路由器的区别
    交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。
    使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。
    交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。
    总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
    从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。路由器的另外一个明显优势就是可以自动过滤网络广播。
    集线器与路由器在功能上有什么不同?
    首先说HUB,也就是集线器。它的作用可以简单的理解为将一些机器连接起来组成一个局域网。而交换机(又名交换式集线器)作用与集线器大体相同。但是两者在性能上有区别:集线器采用的式共享带宽的工作方式,而交换机是独享带宽。这样在机器很多或数据量很大时,两者将会有比较明显的。而路由器与以上两者有明显区别,它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径。路由器是产生于交换机之后,就像交换机产生于集线器之后,所以路由器与交换机也有一定联系,不是完全独立的两种设备。路由器主要克服了交换机不能路由转发数据包的不足。
    总的来说,路由器与交换机的主要区别体现在以下几个方面:
    (1)工作层次不同
    最初的的交换机是工作在数据链路层,而路由器一开始就设计工作在网络层。由于交换机工作在数据链路层,所以它的工作原理比较简单,而路由器工作在网络层,可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
    (2)数据转发所依据的对象不同
    交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用IP地址来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。
    (3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
    由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。
    (4)路由器提供了防火墙的服务
    路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
    1、物理层 物理层是OSI 参考模型的最低层,且与物理传输介质相关联, 该层是实现其他层和通信介质之间的接口。是整个开放系统的基 础。它的主要任务就是描述为确定与传输媒体的接口的一些特性, 即机械特性、电气特性、功能特性以及规程特性,如规定了使用电 缆和接头的类型、传送信号的电压(水晶头、脉冲电压 5v)等,在这 一层数据还没有被组织,仅作为原始的位流或电气电压处理。 物理层的主要功能:(1)为数据端设备提供传送数据的通路, 无论花费多少电缆、光纤、双绞线,都把通信的两个数据终端(电脑、 路由器、交换机)设备连接起来,形成一条通路;(2)传输数据。一 是要保证数据能在其上正确通过,必须保证一方发出“1”时(你 好!),另一方接收到的也是“1”(你好!)而不是“0”(再见!)。二 是要提供足够的带宽,以减少信道上的拥塞。三传输数据的方式 串行或并行,半双工或全双工,同步或异步传输的需要;(3)完成物 理层的管理工作,如监视物理层所有连接,任何的连接断开都会立 即得到检测。 物理层相应设备包括网络传输介质(如同轴电缆、双绞线、光 缆、无线)和连接器等,以及保证物理通信的相关设备,如中继器、 共享式 HUB、放大设备等。
    2、数据链路层 数据链路层是 OSI 参考模型的第 2 层,数据链路层将物理层 不可靠的传输媒体变成可靠的传输通路提供给网络层,它把从物 理层来的原始数据打包成帧。负责帧在计算机之间的无差错信息 传递。物理层的传输媒体及其连接是长期的,网线、光纤时刻和终 端设备(电脑、路由器)连接着。而数据链路连接是有生存期的,在 连接生存期内,收发两端可以进行不等的一次或多次数据通信。就 像打电话,电话拨通后就建立了一次电话连接(数据链路),通话完 毕要挂掉,通话结束了但电话线还连接着,每次打电话都要拨通号 建立连接,当然电脑的每次通信也都要经过建立通信联络和拆除 通信联络两过程。这种建立起来的数据收发关系就叫作数据链路。
    3、网络层 网络层是 OSI 参考模型中最复杂、最重要的一层。网络层的 产生也是网络发展的结果,当数据终端增多时,它们之间需要中继 设备相连。此时会出现一台终端要求不只是与唯一的一台而是能 和多台终端通信的情况,这就产生了把任意两台数据终端设备的 数据链接起来的问题,也就是路由,进而实现两个端系统之间的数 据传送。工作在网络层的协议有 TCP/IP、IPX/SPX、AppleTalk 等。 网络层的主要提供以下功能:(1)路径选择与中继。物理层和数据链路层都只解决直接相连的两节点间的数据传输问题,网络 层则是 OSI 模型中第一个能实现不一定需要直接相连的节点或设 备间的数据传输问题的协议层;(2)拥塞控制、流量控制。当通信 子网中有太多的分组时,网络性能降低,这种情况就叫拥塞,是一 个全局性问题,涉及主机、路由器等很多因素。流量控制则与点到 点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局 部问题,一般都是基于反馈进行控制的。网络中链路层、网络层、 传输层等都存在,其控制方法大体一致,目的是防止通信量过大造 成通信于网性能下降。
    在实现网络层功能时,需要解决的主要问题如下:
    寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
    交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
    路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
    连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
    4、传输层 传输层是 OSI 参考模型的第 4 层中,介于应用层和网络层之 间的传输层是分层网络体系结构的重心部分。是惟一负责总体数 据传输和控制的一层。它的重要任务就是直接给运行在不同主机 上的应用程序提供通信服务,而网络层协议为不同主机提供逻辑 通信。 在 OSI 模型中传输层是负责数据通信的最高层,又是面向网 络通信的低三层和面向信息处理的高三层之间的中间层。因为网 络层不一定保证服务的可靠,用户也不能直接对通信子网加以控 制,因此在网络层之上加一层即传输层以改善传输质量。原因世 界上各种通信子网在性能上存在着很大差异。如电话交换网,分 组交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传 输速率,数据延迟通信费用各不相同,传输层就承担了调节上述通 信子网的差异,使会话层感受不到。此外传输层还具备差错恢复, 流量控制等功能。传输层支持的协议有:TCP/IP 的传输控制协议 TCP、Novell的顺序包交换SPX及Microsoft NetBIOS/NetBEUI等。
    主要功能如下:
    传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
    处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时, 通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。
    监控服务质量。
    5、会话层 会话层的主要功能是在两个节点间建立、维护和释放面向用 户的连接,对进行会话的两台机器间建立对话控制,管理会话如管 理哪边发送、何时发送、占用多长时间等,保证会话数据可靠传送。 会话层还提供了同步服务,例如你正在下载一个 100M 的文件,当 下载到 95M 时,网络断线了,这时是不需要重头再传的。 会话层需要决定使用全双工通信还是半双工通信。如果采用 全双工通信,则会话层在对话管理中做的工作就很少;如果采用半 双工通信,会话层则通过一个数据令牌来协调会话,保证每次只有 一个用户能够传输数据。当建立一个会话时,先让一个用户得到 令牌。只有获得令牌的用户才有权进行发送数据。
    会话层的具体功能如下:
    会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
    会话流量控制:提供会话流量控制和交叉会话功能。
    寻址:使用远程地址建立会话连接。l
    出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。
    6、表示层 表示层是处理所有与数据表示及传输有关的一层,为异种机 通信提供一种公共语言,为上层用户提供数据信息的语法表示变 换,屏蔽不同计算机在信息表示方面的差异,即用一种大家一致同 意的标准方法对数据编码。进行数据加密、数据压缩传输、字符集 转换等以便能进行互操作。这种类型的服务之所以需要,是因为 不同的计算机体系结构使用的数据表示法不同。
    表示层的具体功能如下:
    数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
    数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。
    压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
    数据的加密和解密:可以提高网络的安全性。
    7、应用层 应用层是最终用户应用程序访问网络服务的地方,它负责识 别并证实通信双方的可用性,进行数据传输完整性控制,使网络应 用程序(如电子邮件、P2P文件共享、多用户网络游戏、网络浏览、目 录查询等)能够协同工作。应用层是 OSI 参考模型的最高层,它为 用户的应用进程访问 OSI 环境提供服务。应用层关心的主要是进 程之间的通信行为,因而对应用进程所进行的抽象只保留了应用 产程与应用进程间交互行为的有关部分。这种现象实际上是对应 用进程某种程度上的简化。
    用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
    实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
    8、结语 OSI 模型(应称为 OSI 理想化的模型)本身不是网络体系结构 的全部内容,这是因为它并未确切地描述用于各层的协议和服务, 它仅仅告诉我们每一层应该做什么。各层之间相互独立,某一层 只要了解下一层通过接口所提供的服务,而不需了解其实现细节。 它的灵活性好,若某一层的内容发生变化,只要接口关系不变,上 下层均不受影响,同时也便于程序的实现、调试和维护。不过它仅 仅是一种网络教学模型,到目前为止,OSI 模型还没有实现。
    由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。
    在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。

    本文来自博客园,作者:公子初心,转载请注明原文链接:https://www.cnblogs.com/itzhangxuhui/p/15720455.html

  • 相关阅读:
    ATM+购物车项目
    python基础语法13 内置模块 subprocess, 正则表达式re模块, logging日志记录模块, 防止导入模块时自动执行测试功能, 包的理论
    kvm ip查看
    tar 排除某个目录
    MySQL5.7 添加用户、删除用户与授权
    tomcat 自带jdk
    django examples 学习笔记(1)创建一个独立的python环境
    cdh 安装组件 异常总结
    pycharm ubuntu安装
    (cdh)hive 基础知识 名词详解及架构
  • 原文地址:https://www.cnblogs.com/itzhangxuhui/p/15720455.html
Copyright © 2011-2022 走看看