【1.1.1】OSI七层模型

OSI 协议层次结构就是现在常说的 OSI 参考模型(Open System Interconnection Reference Model),它是国际标准化组织(ISO)提出的一个标准框架,定义了不同计算机互连的标准,目的是使世界范围内的各种计算机互连起来,构成一个网络。

OSI 框架是基于 1984 年国际标准化组织(ISO)发布的 ISO/IEC 7498 标准,该标准定义了网络互联的 7 层框架,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。

完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。

一、概述

一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。

具体说:

  • 物理层:网卡,网线,集线器,中继器,调制解调器
  • 数据链路层:网桥,交换机
  • 网络层:路由器
  • 网关工作在第四层传输层及其以上

二、每层详解

2.1 物理层(Physical layer)

  • 在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层。
  • 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
  • 物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

指定了在端系统之间,用于激活、维护及断开物理链路所需的电气、机械、规程和功能的要求[物理拓扑]

物理层特征参数包括:电压、数据传输率、最大传输距离、物理连接媒体等。

在网络传输过程,通常使用的物理层传输介质如下:

  • 有线介质:电话线、双绞线、同轴电缆、光导纤维等。
  • 无线介质:卫星、微波、IR、RF、激光等。另外,还有大气,携带微波和光。

a)CSMA/CD(Carrier Sense Multiple Access with Collision Detection,带冲突检测的载波监听多路访问)技术

这是一种介质访问控制方法,用来帮助网络上的设备均匀的分享带宽,而不会使两台设备同时在网络介质上传送数据。当网络中不同节点同时传送数据帧时就不可避免的会产生冲突,CSMA/CD就是用来解决这种冲突问题。CSMA/CD的工作原理可以概括为:

  • 先听后说,边听边说;
  • 一旦冲突,立即停说;
  • 等待时机,然后再说;
  • 听,即监听、检测之意;说,即发送数据之意。

在以太网中,当发生冲突时:

  • 先发送Jim信号让所有设备都知道发生了冲突
  • 冲突会激活随机退避算法
  • 冲突域中的每台设备都会等待一小段时间(每次延时的时间不一致,由退避算法确定),直到定时器到期

–定时器到期后,所有主机重新发送数据的机会是均等的。

注:如果尝试15次之后还是产生冲突,试图发送数据的结点将超时。CSMA/CD只工作在半双工环境下,全双工环境下不需要这一机制。

b)单工(Simplex Communication):数据传输只支持数据在一个方向上传输

  • 半双工(Half duplex Communication):半双工通信是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。若要改变传输方向,需由开关进行切换。半双工方式要求收发两端都有发送装置和接收装置。由于这种方式要频繁变换信道方向,故效率低,但可以节约传输线路。
  • 全双工(Full duplex Communication):全双工以太网使用两对电缆线,而不是像半双工方式那样使用一对电缆线。全双工方式在发送设备的发送方和接收设备的接收方之间采取点到点的连接,这意味着在全双工的传送方式下,可以得到更高的数据传输速度。

全双工以太网可用于下列3种情况:

  • switch和host相连
  • switch和switch相连
  • 用交叉线缆(crossover cable)相连的host和host

最后,记住下列重点:

– 在全双工模式下,不会有冲突域 – 专用的交换机端口可用于全双工节点 – 主机的网卡和交换机端口必须能够运行在全双工模式下

c)以太网电缆的连接

  • 直通电缆:用于不同性质的接口相连接,一般理解为工作于相邻层次的设备。采用568B标准制作。
  • 交叉电缆:用于相同性质的接口相连接,一般理解为工作于同一层或隔层的设备。一端采用568B标准,另一端采用568A标准。
  • 反转电缆:实现主机到控制台的串行通信。1到8根针脚,两端全部相反对应连接。

568B标准:白橙、橙;白绿、蓝;白蓝、绿;白棕、棕。 568A标准:白绿、绿;白橙、蓝;白蓝、橙;白棕、棕(即正线的1,3和2,6位分别对调)。

注:DCE(Data Communications Equipment,数据通信设备)通常位于服务提供者这一端,而DTE(Data Terminal Equipment,数据终端设备)则是连接设备。DTE可获得的服务通常是通过接入调制解调器(modem)或信道服务单元/数据服务单元(CSU/DSU)而得到的。

数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。 该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;

LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。 数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。

提供数据的物理传输,并处理出错通知、网络拓扑和流量控制 [组帧]

数据链路层特征参数包括:物理地址、网络拓朴结构、错误警告机制、所传数据帧的排序和流控等。其中物理地址是相对网络层地址而言的,它代表了数据链路层的节点标识技术。

2.2.1 以太网的数据链路层采用介质访问控制(Media Access Control,MAC)地址进行寻址。

MAC地址是烧录在Network Interface Card,NIC)里的。MAC地址也叫硬件地址,是由48位(6字节)的十六进制数表示。

  • OUI与厂家分配的部分各占24位(3字节)。
  • OUI的L/G位:第一个字节的第二位。L/G=0,表示一个全局管理地址;L/G=1表示一个本地的地址。
  • OUI的I/G位:第一个字节的最低位。I/G=0,表示单播地址(设备可用物理地址);I/G=1,表示广播地址或组播地址。

2.2.2 数据链路层负责将位组合成字节,并将字节组合成帧。

帧被用在数据链路层,从网络传递过来的数据包被封装成帧,以根据介质访问的类型进行传输。在帧格式中,采用循环冗余校验(CRC)进行差错检测。但这仅仅是差错检测,而不进行差错纠正。

  • 前导(8字节):前7字节,前同步码,采用交替为0和1的格式;后1字节,帧开始定界符。
  • Ethernet II帧使用类型字段来识别网络层协议(0x0800,表示Ipv4;0x86dd,表示Ipv6)。802.3不能识别上层协议,且必须与专用的LAN(比如IPX)一起使用,较少使用。
  • Destination Address,DA—目的地址;Source Address,SA—源地址

2.3 网络层(Network layer)

提供通信设备的逻辑寻址方案 [路径选择]

网络层定义网络操作系统通信用的协议,为信息确定地址,把逻辑地址和名字翻译成物理的地址。它也确定从源机沿着网络到目标机的路由选择,并处理交通问题,例如交换、路由和对数据包阻塞的控制。

网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。 一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。 

在实现网络层功能时,需要解决的主要问题如下:

  • 寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
  • 交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
  • 路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
  • 连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。

OSI 参考模型规定网络层的主要功能有以下三点:

a)路径选择与中继

在点-点连接的通信子网中,信息从源结点出发,要经过若干个中继结点的存储转发后,才能到达目的结点。通信子网中的路径是指从源结点到目的结点之间的一条通路,它可以表示为从源结点到目的结点之间的相邻结点及其链路的有序集合。一般在两个结点之间都会有多条路径选择。路径选择是指在通信子网中,源结点和中间结点为将报文分组传送到目的结点而对其后继结点的选择,这是网络层所要完成的主要功能之一。

b)流量控制

网络中多个层次都存在流量控制问题,网络层的流量控制则对进入分组交换网的通信量加以一定的控制,以防因通信量过大造成通信子网性能下降。

c)网络连接建立与管理

在面向连接服务中,网络连接是传输实体之间传送数据的逻辑的、贯穿通信子网的端—端通信通道。

注:数据链路层协议是相邻两直接连接结点间的通信协议,它不能解决数据经过通信子网中多个转接结点的通信问题。设置网络层的主要目的就是要为报文分组以最佳路径通过通信子网到达目的主机提供服务,而用户不必关心网络的拓扑构型与所使用的通信介质。路由器是第3层设备,它需要定位特定的网络;而第2层设备(网桥和交换机)则需要定位特定的设备。

2.4 传输层(Transport layer)

提供应用程序间的端到端的逻辑通信[提供可靠和不可靠的数据传输;在错误数据重新传输前对其进行纠正]

OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。 该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。

传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送,当两节点的联系确定之后,传输层则负责监督工作。综上,传输层的主要功能如下:

  • 传输连接管理:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。
  • 处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重发。
  • 监控服务质量。

传输层将数据分段并重组为数据流(data stream)。TCP UDP 都工作在传输层,当采用TCP/IP 协议时程序开发者可以在这2 者之间做出选择。传输层负责为实现上层应用程序的多路复用,建立会话连接和断开虚电路提供机制.通过提供透明的数据传输,他也对高层隐藏了任何与网络有关的细节信息。

UDP 使用发送不需确认的方式进行数据传输,通常用于组播数据流等对部分丢弃报文影响较小的数据流的传输。而对于TCP 是一种面向连接的数据传输方式,每个数据包的传送必须确认。TCP 传输使用经典的3 次握手协议:

1(客户机)     192.168.1.97           220.181.111.160     TCP     [SYN] Syn=1             Seq=3 
2(服务器)     220.181.111.160     192.168.1.97           TCP     [SYN, ACK] Syn=1     Seq=7        Ack=3+1 
3(客户机)     192.168.1.97           220.181.111.160     TCP     [ACK] Syn=Not set    Seq=3+1   Ack=7+1

注:在传输层,可以使用术语“可靠的联网”,这意味着将使用确认、重传、排序和流量控制。流量控制的目的是为接收方提供一种方法,以管理由发送方发送的数据量。类型有:缓冲、窗口机制和拥塞避免。发送方机器在没有收到对所传数据的确认时,被允许发送的数据段的数量(以字节计)就称为“窗口”。它用来控制未被确认的数据段的数量。

2.5 会话层(Session layer)

维持不同应用程序的数据保持隔离[会话控制]

会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。

用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址例如:www.3721.com就是一个域名。会话层的具体功能如下:

  • 会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
  • 会话流量控制:提供会话流量控制和交叉会话功能。
  • 寻址:使用远程地址建立会话连接。l
  • 出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。

会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。

2.6 表示层(Presentation layer)

为应用层提供数据,并负责数据的转换及代码的格式化 [表示数据;对数据加密、压缩和转换服务等]

表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。

表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。表示层的具体功能如下:

  • 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
  • 数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。
  • 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
  • 数据的加密和解密:可以提高网络的安全性。

2.7 应用层(Application layer)

提供用户接口[文件、打印、消息、数据库和应用服务]

应用层是最接近终端用户的OSI 层,这就意味着OSI 应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI 模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。

OSI 的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。

应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。应用层的主要功能如下:

  • 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
  • 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。

三、讨论

OSI7层模型的小结

由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。 在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn