OSI七层模型
什么是OSI七层模型?
OSI(Open System Interconnect)开放式系统互联。由国际标准化组织ISO于1984年提出。
OSI七层模型产生的原因及其优点是什么?
产生原因
20世纪60年代以来,计算机网络得到了飞速增长。各大厂商为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA,Novell
IPX/SPX协议,Apple公司的AppleTalk协议,DEC公司的DECnet,以及广泛流行的TCP/IP协议。同时,各大厂商针对自己的协议生产出了不同的硬件和软件。各个厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。但由于多种协议的并存,也使网络变得越来越复杂;而且,厂商之间的网络设备大部分不能兼容,很难进行通信。
为了解决网络之间的兼容性问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为计算机网络通信的基础模型。在设计OSI 参考模型时,遵循了以下原则:各个层之间有清晰的边界,实现特定的功能;层次的划分有利于国际标准协议的制定;层的数目应该足够多,以避免各个层功能重复。
优点
简化了相关的网络操作;提供即插即用的兼容性和不同厂商之间的标准接口;使各个厂商能够设计出互操作的网络设备,促进标准化工作;防止一个区域网络的变化影响另一个区域的网络,结构上进行分隔,因此每一个区域的网络都能单独快速升级;把复杂的网络问题分解为小的简单问题,易于学习和操作。
OSI分层
OSI参考模型分为七层,由下至上依次为第一层物理层(Physical Layer)、第二层数据链路层(Data link Layer)、第三层网络层(Network Layer)、第四层传输层(Transport Layer)、第五层会话层(Session Layer)、第六层表示层(Presentation Layer)、第七层应用层(Application Layer)。
通常,OSI参考模型第一层到第三层称为底层(Lower Layer),又叫介质层(Media Layer),底层负责数据在网络中的传送,网络互连设备往往位于下三层,以硬件和软件结合的方式来实现。OSI参考模型的第五层到第七层称为高层(Upper Layer),又叫主机层(Host Layer),高层用于保证数据的正确传输,以软件方式来实现。
OSI七层功能
OSI参考模型各个层次的基本功能如下:
物理层:在设备之间传输比特流,规定了电平、线速和电缆针脚。
数据链路层:将比特组合成字节,再将字节组合成帧,使用MAC地址来访问介质,检测差错。
网络层:提供逻辑地址,供路由器确定路径。
传输层:提供可靠或不可靠的数据传递以及进行重传前的差错检测。
会话层:负责建立、管理和终表示层实体之间的通信会话。该层的通信由于不同设备中的应用程序之间的服务请求和相应组成。
表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。
TCP/IP模型
起源
TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA :Advanced Research Projects Agency)对有关分组交换的广域网(Packet-Switched wide-area network)科研项目,因此起初的网络称为ARPANET。(有些书写TCP/IP四层也有些书写TCP/IP五层区别是数据链路层和物理层。)
TCP/I模型
TCP/IP模型各个层次分别对应于不同的协议。TCP/IP模型是数据通信协议的集合 ,包含许多协议。其模型名字来源于其中最主要的两个协议TCP(传输控制协议)和IP(网际协议)。TCP/IP模型负责确保网络设备之间能够通信。它是一组规则,规定了信息如何在网络中传输。
TCP/IP模型与OSI模型对比
由于OSI模型和协议比较复杂,所以并没有得到广泛的应用。
而TCP/IP(transfer control protocol/internet protocol,传输控制协议/网际协议)模型因其开放性和易用性在实践中得到了广泛的应用,TCP/IP模型也成为互联网的主流协议。
TCP/IP模型同样采用分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。
TCP/IP模型与OSI参考模型的不同点在于TCP/IP把表示层和会话层都归入了应用层。TCP/IP模型由下至上依次分为网络接口层、网络层、传输层和应用层五个层次。
TCP/IP模型的层间通信与数据封装
封装
TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(协议数据单元)彼此交换信息,确保网络设备之间能够通信。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。如传输层在上层数据中加入TCP报头后得到的PDU被称为Segment(数据段 );数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。这种模型向下传递数据,并添加报头和报尾的过程称为封装。
数据被封装并通过网络传输后,接收设备将删除添加的信息,并根据报头中的信息决定如何将数据沿模型上传给合适的应用程序,这个过程称为解封装。不同设备的对等层之间依靠封装和解封装来实现相互间的通信。
如图所示,主机A与主机B通信。主机A将某项应用通过上层协议转换上层数据后交给传输层,传输层将上层数据作为自己的数据部分并且在之前封装传输层报头,然后传递给网络层;网络层将从传输层收到的数据做为本层的数据部分,之前加上网络层的报头传递给数据链路层;数据链路层封装数据链路层的报头后传给物理层;物理层将数据转换为比特流通过物理线路传送给主机B。
解封装
主机B在物理层接收到比特流之后交给数据链路层处理;数据链路层收到报文后,从中拆离出数据链路层报文头并将数据传递给网络层;网络层收到报文后,从中拆离出IP报文头,交给传输层处理,传输层拆离传输头部后交给应用层。
数据的封装和解封装都是一个逐层处理的过程,各层都会处理上层或下层的数据,并加上或剥离到本层的封装报文头。
各层功能详细介绍
物理层功能
物理层的主要功能如下:
·规定介质类型、接口类型、信令类型
·规范在终端系统之间激活、维护和关闭物理链路的电气、机械、流程和功能等方面的要求。
·规范电平、数据速率、最大传输距离和物理接头等特征。物理层标准规定了物理介质和用于将设备与物理介质相连的接头。
局域网常用的物理层标准有IEEE制定的以太网标准802.3、令牌总线标准802.4、令牌环网标准802.5以及美国国家标准组织ANSI的X3T9.5委员会制订的光缆标准FDDI(Fiber Distributed DataInterface,光纤分布式数据接口)等。广域网常用的物理层标准有电子工业协会和电信工业协会EIA/TIA制定的公共物理层接口标准EIA/TIA-232(即RS-232)、 国际电信联盟ITU制定的串行线路接口标准V.24和V.35、以及有关各种数字接口的物理和电气特性的标准G.703等。
物理层介质和物理层设备
物理层介质主要有同轴电缆(coaxical cable)、双绞线(twistedpair)、光纤(fiber)、无线电波(wireless radio)等。
同轴电缆用来传递信息的一对导体。同轴电缆根据其直径大小可以分为:粗同轴电缆与细同轴电缆。粗缆适用于比较大型的局部网络,它的标准距离长,可靠性高。安装时不需要切断电缆但粗缆网络必须安装收发器电缆。细缆安装则比较简单,造价低,但安装过程要切断电缆,两头须装上基本网络连接头(BNC),然后接在T型连接器两端,所以当接头多时容易产生不良的隐患。
双绞线是一种最为常用的电缆线,由一对直径约1mm的绝缘铜线缠绕而成,这样可以有效抗干扰。双绞线分为屏蔽双绞线(shielded twisted pair, STP)和非屏蔽双绞线(unshielded twisted pair, UTP)。屏蔽双绞线具有很强的抗电磁干扰和无线电干扰能力,易于安装,能够很好地隔离外部各种干扰,但是价格相对昂贵。非屏蔽双绞线同样易于安装且价格便宜,但是抗干扰能力相对STP较弱,传输距离较短。
光纤由玻璃纤维和屏蔽层组成,不受电磁信号的干扰,传输速率高,传输距离远,但是价格较贵。光纤连接器是光的连接接口,非常光滑,不能有划痕,安装比较困难。
无线电波可以实现两地之间不架设物理线路也能够迅速通信。无线电波是指在自由空间(包括空气和真空)传播的射频频段的电磁波。
在物理介质选择上,要综合考虑传输距离、价格、带宽需求、网络设备支持的线缆标准等。
物理层设备有中继器和线器,但是随着网络的发展,这两种设备已经很少使用,在此不做详细介绍
数据链路层功能
数据链路层是物理层上的第一个逻辑层。数据链路层对终端进行物理编址,帮助网络设备确定是否将消息沿模型向上传递;同时还使用一些字段告诉设备应将数据传递给哪个模型如IP、IPX等并提供排序和流量控制等功能。
数据链路层分为两个子层:逻辑链路控制子层(LLC, Logic Link Control sublayer),介质访问控制子层(MAC, Media Access Control sublayer)。
LLC子层位于网络层和MAC子层之间,负责识别协议类型并对数据进行封装以便通过网络进行传输。LLC子层主要执行数据链路层的大部分功能和网络层的部分功能。如帧的收发功能,在发送时,帧由发送的数据加上地址和CRC校验等构成,接收时将帧拆开,执行地址识别、CRC校验,并具有帧顺序控制、差错控制、流量控制等功能。此外,它还执行数据报、虚电路、多路复用等部分网络层的功能。
MAC子层负责指定数据如何通过物理线路进行传输,并向下与物理层通信,它定义了物理编址、网络拓扑、线路规范、错误通知、按序传递和流量控制等功能。
数据链路层协议
数据链路层协议规定了数据链路层帧的封装方式。
局域网常用的数据链路层协议有IEEE 802.2 LLC标准。
广域网常用的数据链路层协议有: HDLC(High-level Data LinkControl,高级数据链路控制)、PPP(Point-to-Point Protocol,点到点协议)、 FR(Frame Relay,帧中继)协议等。
HDLC是ISO开发的一种面向位同步的数据链路层协议,它规定了使用帧字符和校验和的同步串行链路的数据封装方法。
PPP由RFC(Request For Comment) 1661定义, PPP协议由LCP(Link Control Protocol)、NCP(Network Control Protocol)以及PPP扩展协议族组成。 PPP协议支持同步和异步串行链路,支持多种网络层协议。PPP协议是VRP路由器串口默认数据链路层封装协议。
帧中继是一种工业标准的、交换式的数据链路协议,通过使用无差错校验机制,加快了数据转发速度。常用的数据链路层设备有以太网交换机。
MAC地址规范
如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址由48个二进制位组成,通常我们用十六进制数字来表示。其中前6位十六进制数字由IEEE统一分配给设备制造商,后6位十六进制数由各个厂商自行分配。
网络接口卡(NIC, Network Interface Card),又称网卡,有一个固定的MAC地址。大多数网卡厂商把MAC地址烧入ROM中。当网卡初始化时,ROM中的MAC物理地址读入RAM中。如果把新的网卡插入主机中,主机的物理地址就变成了新的网卡的物理地址。
值得注意的是,如果主机插了两个网卡,那么就有两个MAC地址。所以有些网络设备可能有多个MAC地址。
网络层功能
网络层负责在不同的网络之间将数据包从源转发到目的地。数据链路层保证报文能够在同一网络(即同一链路)上的设备之间转发,网络层则保证报文能够跨越网络(即跨越链路)从源转发到目的地。网络层的功能可以总结为两条:
提供逻辑地址 如果数据跨网络(即跨链路)传递,则需要使用逻辑地址用来寻址。
路由:将数据报文从一个网络转发到另外一个网络。
常见的网络层设备有路由器,其主要功能是实现报文在不同网络之间的转发。如图所示,位于不同网络(即不同链路)上的HostA和HostB之间相互通信。与HostA在同一网络(即同一链路)上的路由器接口接收到HostA发出的数据帧,路由器的链路层分析帧头确定为发给自己的帧之后,发送给网络层处理,网络层根据网络层报文头以决定目的地址所在网段,然后通过查表从相应的接口转发给下一跳,直到到达报文的目的地HostA。
网络层协议
常用网络层协议
IP(InternetProtocol)、 ICMP(Internet Control Message Protocol) 、 ARP(Address Resolution Protocol)、 RARP(Reverse Address Resolution Protocol)。
IP为网络层最主要的协议,其功能即为网络层的主要功能,一是提供逻辑编址,二是提供路由功能,三是报文的封装和解封装。ICMP、 ARP、 RARP协议辅助IP工作。
ICMP是一个管理协议并为IP提供信息服务,ICMP消息承载在IP报文中。
ARP实现IP地址到硬件地址的动态映射,即根据已知的IP地址获得相应的硬件地址。
RARP实现硬件地址到IP地址的动态映射,即根据已知的硬件地址获得相应的IP地址。
IP地址规范
IP地址是一个逻辑地址并非硬件地址,硬件地址是固化在NIC(Network Interface Card)中的,如前面提到的MAC地址,用于同一链路上设备相互通信;而IP地址则是用于不同网络(即不同链路)上的设备相互通信。
IP地址长度为4个字节,由网络地址和主机地址两部分组成,常用点分十进制数字表示,如192.168.0.1。
传输层功能
传输层为上层应用屏蔽了网络的复杂性,并实现了主机应用程序间端到端的连通性,主要具备以下基本功能:
将应用层发往网络层的数据分段或将网络层发往应用层的数据段合并,即封装和解封装。
建立端到端的连接,主要是建立逻辑连接以传送数据流。
将数据段从一台主机发往另一台主机。在传送过程中通过计算校验和以及通过流控制的方式保证数据的正确性,流控制可以避免缓冲区溢出。
部分传输层协议保证数据传送正确性。主要是在数据传送过程中确保同一数据既不多次传送也不丢失,以及保证数据包的接收顺序与发送顺序一致。
传输层协议
传输层协议主要包含传输控制协议TCP(Transfer ControlProtocol)和用户数据报文协议UDP (User Datagram Protocol)。
传输层协议对比:
尽管TCP和UDP都使用IP作为其传输层协议,但是TCP和UDP为应用层提供的是截然不同的服务。
TCP提供面向连接的、可靠的字节流服务。面向连接意味着使用TCP协议作为传输层协议的两个应用之间在相互交换数据之前必须建立一个TCP连接。TCP通过确认、校验、重组等机制为上层应用提供可靠的传输服务。但是TCP连接的建立以及确认、校验等机制都需要耗费大量的工作并且会带来大量的开销。
UDP提供简单的、面向数据报的服务。 UDP不保证可靠性,即不保证报文能够到达目的地。UDP适用于更关注传输效率的应用,如SNMP、 Radius等, SNMP监控网络并断续发送告警等消息,如果每次发送少量信息都需要建立TCP连接,无疑会降低传输效率,所以诸如SNMP、 Radius等更注重传输效率的应用程序都会选择UDP作为传输层协议。另外, UDP还适用于本身具备可靠性机制的应用层协议。
应用层功能
应用层协议
应用层有许多协议,以下协议可以帮助我们使用和管理 TCP/IP 网络:
FTP(File Transfer Protocol) 文件传输协议。用于传输独立的文件,通常用于交互式用户会话。
HTTP(Hypertext Transfer Protocol)超文本传输协议。 用于传输那些构成万维网上的页面的文件。
TELNET:远程终端访问。用于传送具有TELNET控制信息的数据。它提供了与终端设备或终端进程交互的标准方法,支持终端到终端的连接及进程到进程分布式计算的通信。
SMTP(Simple Message Transfer Protocol)简单邮件传输协议 和POP3(Post Office
Protocol)邮局协议用于发送和接收邮件。
DNS(Domain Name Server)是一个域名服务的协议,提供域名到IP地址的转换,允许对域名资源进行分散管理。
TFTP(Trivial File Transfer Protocol)简单文件传输协议。设计用于一般目的的、高吞吐量的文件传输。
RIP(Routing Information Protocol)路由器用来在 IP 网络上交换路由信息的协议。
SNMP(Simple Network Management Protocol)用于收集网络管理信息,并在网络管理控制台和网络设备(例如路由器、网桥和服务器)之间交换网络管理信息。
Radius(Remote Authentication Dial In User Service)拨号接入远端认证协议完成接入用户的认证、授权、计费功能的协议。
常见问题
1、OSI网络参考模型分哪几层?
OSI网络参考模型分为七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
2、TCP/IP模型各个层次的功能?
TCP/IP模型分为五层,分别是物理层、数据链路层、网络层、传输层、应用层。物理层定义传输数据所需要的机械、电气、功能特性及过程等手段。数据链路层提供对物理层的控制,检测并纠正可能出现的错误,并且进行流量调控(可选)。网络层检查网络拓扑,以决定传输报文的最佳路由。传输层的基本功能是将应用层发往网络层的数据分段或将网络层发往应用层的数据段合并。并建立端到端的连接,将数据段从一台主机发往另一台主机,保证数据传送正确性可选。应用层为应用程序提供网络服务。
3、TCP/IP模型中报文封装和解封装过程?
报文的封装和解封装是一个相反的过程。封装是从上至下依次加上各层的头部,而解封装是从下至上依次拆离各层的头部信息。
4、MAC地址与IP地址有什么区别?
MAC地址是固化在设备硬件上的48比特的物理地址,该地址不能修改。IP地址是一个32比特的地址,存在于网络层,该地址可以修改。IP地址分为公共地址和私有地址。公共地址是全球唯一的,而私有地址可以在局域网内重复使用。