1.OSI模型
OSI(Open Systems Interconnection)参考模型由国际标准化组织ISO制定,并于1984年发布。该模型得到工业界广泛认可,是最具影响力的网络模型。ISO之所以制定一个网络模型,是因为网络工作原理极其复杂,创建模型是为了说明如何将复杂变为具体和简单。OSI模型提供层次分析工具,是理解互联技术、当前及未来网络发展的重要基础。OSI模型分解为7层协议,使互通性和互操作性可管理,每层都是自包含的,不依赖于操作系统。
OSI模型的7层分别是:物理层(Physical Layer);数据链路层(Data Link Layer);网络层(Network Layer);传输层(Transport Layer);对话层(Session Layer);表示层(Presentation Layer)和应用层(Application Layer)。如图1-11所示。
OSI模型只是一个概念框架,该模型能更好理解在不同的网络设备间发生的复杂交互过程的动作。OSI模型将通信任务分割成“子任务”,每层各自负责特定工作,实施的通信协议是与子任务有关的进程程序,所有协议组合在一起完成总体任务。OSI模型的某层功能由该层内的协议提供,不同层协议在一起协同工作,构成协议堆栈(协议套件)。
图1-11 OSI模型的7层结构
OSI模型描述了每层如何与其他结点上的对应层进行通信。在第一个结点上,最终用户创建数据,发送到其他结点。如电子邮件,在应用层,在数据上加入了应用层报头。表示层在从应用层接收到的数据上加入它自己的报头,每层在从上层收到的数据上加入自己的报头。在较低层,数据分隔为较小的信元,并在每个信元上加入报头。例如,传输层具有较小的数据报文,网络层有数据包,数据链路层有帧,物理层处理原始比特流中的数据。当该比特流到达目的地时,数据在每层上重新集合,并去除每层的报头,直至最终用户可阅读电子邮件。
分层中,数据包均由来自上层的数据与信息报头组成。这些数据包在不同层有不同的称谓。
应用层:报文和数据包。
表示层:H1数据包。
对话层:H2数据包。
传输层:H3数据报、段和数据包(message,报文)。
网络层:H4数据报和数据包(packet,报文分组)。
数据链路层:H5帧和数据包(frame,帧)。
物理层:位和数据包(bit,比特)。
封装是指把数据包裹在数据包里的过程。报头用于标志数据包的开始,通常包括地址、其他特性及协议特性的实现,报尾通常用于差错校验。
封装过程每层都会进行(最低层除外)。来自每层的完整数据包将插入到下一个层的数据字段中,并加入另外一个报头。在某些情况下,层会将一个数据信元(包括前一层报头)分开为多个部分,形成更小的数据信元,并且每个更小的数据信元用较低协议层的新报头进行封装。图1-12给出使用OSI模型交换数据的过程。Lx表示第x层的数据单元。进程从应用层第7层开始往下传送,在每一层(第7层、第1层除外)都要给数据单元加上头部,在第2层还要加上尾部。当格式化后的数据单元通过物理层时,就变成电磁信号并沿着一条物理链路传输。当信号到达目的端,信号进入物理层并转换成数字形式。然后数据单元就向上通过OSI各层。当每个数据块到达上一层时,要移去在对应发送层所加头部与尾部,然后就进行该层相应处理。当数据块到达应用层时,报文再次变成应用层所需形式,并由接收者使用。
图1-12 使用OSI模型交换数据
OSI的每层功能如下。
(1)物理层
物理层或第1层,建立在物理通信介质的基础上,定义了实际的传输媒体的机械规范和电子数据比特流。该层中包括了传输数据速率、最大距离和物理连接器件,如用于连接网络节点的介质或电缆。该层作为系统和通信介质的接口,用来实现数据链路实体间的比特流传输。比特代表数据通信中的二进制1和0。物理层负责与网络的物理性连接、信号的收发。在该层定义了物理及电子技术细节,例如,如何表示1和0,网络连接器针数是多少,数据如何同步,网卡何时发送数据等等。
物理层服务:对于网络连接类型,有多点连接或点—点连接。物理连接可为永久性连接(专线)或动态连接(交换网)。对于物理数据单元,分为串行传输方式物理服务数据单元(仅含一个比特)和并行传输方式物理服务数据单元(多个比特)。对于模拟传信或数字传信,包括对模拟和数字信号中的数据进行编码的几种方法。对于位同步,实现控制发送方及接收方的同步。对于多路复用,实现将几个数据信道合并成一个信道。
物理层功能:物理连接的建立和拆除,当数据链路层请求在两个数据链路实体之间建立物理连接时,物理层应能立即为它们建立相应物理连接。若两个数据链路实体之间要经过若干中继链路实体时,物理层还应对这些中继数据链路实体进行互连,以建立起一条有效的物理连接。当物理连接不再需要时,由物理层立即拆除;物理服务数据单元传输,物理层既可采取同步传输方式,也可采取异步传输方式传输物理服务数据单元。前者要求在系统中配置同步适配器,后者要求配置异步适配器,完成数据发送和接收。
物理层管理:物理层管理本层的一些事务,如功能的激活(何时发送和接收、异常情况处理等)、差错控制(处理在传输中出现的奇偶错和格式错等)。
(2)数据链路层
数据链路层或第2层,包含2个子层(IEEE 802)。媒体接入控制(MAC)子层,控制多个设备共享统一媒体信道的方式;逻辑链路控制(LLC)子层,管理通信设备数据链路的建立与维护。硬件地址实际上是数据链路层中的MAC地址,物理地址放置于此。物理层和数据链路层通常以硬件与软件组合解决方案实现各项功能。如集线器、交换机和网络适配器及软件驱动程序。
数据链路层的主要用途是在相邻网络实体之间建立、维持和释放数据链路连接,并传输数据链路服务数据单元。即在物理层传送“比特”的基础上,在相邻节点间传送“帧”的数据信息。例如,从网络层接收数据包,然后将特定的信息封装到名为“帧”的数据单元里,将其传给物理层以便传输。数据链路层添加的是一些控制信息,比如帧的类型、路由选择信息以及分段信息等等。利用这些信息可保证数据的顺利传送。
数据链路层具有控制差错能力,可确保数据从一台计算机正确无误地传递给另一台计算机。在数据帧里,该层添加冗余校验(CRC)信息。利用CRC可探测到已受到损坏的帧,接收方计算机的数据链路层据此可以发出请求将损坏的帧补全,并且可以侦测到数据帧的丢失情况,并请求再次传送该帧。
数据链路层的功能和服务。数据链路连接的建立和释放有3种方式:①无应答、无连接服务。源主机的数据链路层可以在任何时候发送任意长的信息。接收主机的数据链路层将收到的信息送入自己的网络层。发送前不必建立数据链路连接,传输时接收方也不必做应答,出错和数据丢失时不做处理。②有应答、无连接服务。当主机的数据链路层要发送数据时,直接发送数据帧。当接收数据链路接收到并经校验结果正确时,就向源主机数据链路层返回应答帧;若不能接收或接收后校验不正确时,也返回应答帧,以便发送端决定重发原帧或暂不重发。③面向连接的服务。这种连接的服务质量好,是OSI参考模型推荐的主要服务方式。这种方式对网络层移交的一次数据传送分为三个阶段:数据链路建立,数据帧传送和数据链路的拆除。数据链路建立阶段是让双方的数据链路层都同意并做好传送的准备;数据传输阶段是将网络层移交的数据传送到对方。在数据传送结束时,拆除数据链路连接。
数据链路层协议。数据链路层协议分为两类:面向字符的通信规程和面向比特的通信规程。面向字符的通信规程的特点是利用若干个控制字符控制报文的传输。通常报文由报头和正文两部分组成。报头含报文名称、源站地址、目标站地址、发送日期等信息,用于传输控制,正文则是报文具体内容。面向比特的通信规程是ISO制定的HDLC高级数据链路控制。该规程传送信息的单位称为帧。帧分为控制帧和信息正文。在帧的数据字段(正文)中,不以字符为单位,只看作比特流,也不一定是字符长度8位的整数倍,因此称为面向比特的通信规程。比特流用帧标志划分帧边界,帧标志也可用作同步字符。
面向比特的通信规程有很多优点。HDLC对正文字段没有位数限制,可传输5、7和8单位的编码及其他无结构信息,而面向字符的通信规程规定只能传送8位字符(7位编码和1位校验码),HDLC仅用唯一标志F(01111110),效率高,透明性好。
数据链路层能识别数据帧内保存的目标设备ID,如这个ID与本计算机的ID相符,则接收这个帧;否则便抛弃。在广播网络里,如以太网,局域网中的所有设备都能收到由任何一个设备发出的数据。网桥、HUB以及网络接口卡等都是与数据链路有关的设备。
(3)网络层
网络层负责分组源端到目的端的传送。这可能需要跨越多个网络(链路),数据链路层监督在同一个网络(链路)上的两个系统之间分组的传送,而网络层则确保每个分组从源端到达目的端。如两个系统连接在同一条链路上,则通常不需要网络层。但如两个系统连接在不同的网络上,则通常需要网络层来完成源端到目的端的传送。
网络层功能:①逻辑编址。由数据链路层实现的物理编址只能处理本地寻址问题。如果分组跨越了网络的边界,就需要另一种编址系统来区分源系统和目的系统。网络层对上层来的分组添加头部,其中包含了发送端和接收端的逻辑地址。②路由选择。当许多独立的网络或链路互连起来组成更大的网络时,这些连接设备(路由器或交换机)通过路由选择或交换的方法使分组到达它的目的端。这表明网络层协议必须包含地址分配的信息,并且能唯一识别互联网络中的每个网络。网络层是地址分配最重要的地方,地址分配决定结点所在的网络,以及该网络上的逻辑结点地址。图1-13为网络层端到端传送。
图1-13 端到端的传送
网络层地址称逻辑地址或软件地址。网络层地址具有层次结构,并同时提供网络和结点地址。路由器很容易区分将在特定端口上发送的地址。当数据包到达目的网络时,结点地址部分用于定位到特定位置。
网络层的定址及寻址功能:其中包括逻辑网络地址以及服务地址;路由、报文及数据包交换;连接服务,包括网络层流量控制、网络层出错控制以及数据包顺序控制;网关服务。
网络层所提供的服务分为两种:无连接网络服务和面向连接的网络服务。
无连接网络服务是指两实体间的通信不需要事先建立好一个连接。无连接服务有3种类型:数据报(Datagram)、确认交付(Confirmed)与请求回答(Request Reply)。数据报服务不要求接收端应答。这种方法开销小,数据通信可获得更高速度,但可靠性无法保证。确认交付又称为可靠数据报,这种服务要求接收端对每个报文分组产生确认。请求回答服务则要求接收端每收到一个报文均要给发送端发回一个应答报文。
面向连接的网络服务又称虚电路服务,具有网络连接建立、数据传输和网络连接释放3阶段,可靠的报文分组按顺序传输方式,适用于定对象、长报文、会话型传输要求。
(4)传输层(www.xing528.com)
传输层提供数据传输服务,能有效地为上层通信“掩盖”数据传输的问题。传输层服务集中在连接可靠性、建立虚电路、错误检测与纠正以及通信量的控制方面。当OSI模型应用在IP协议时,TCP和UDP都是传输层协议,传输控制协议TCP是一个可靠的、面向连接的协议,而用户数据报协议UDP是不可靠的和无连接的协议。可靠和不可靠协议之间的区别在于,可靠协议接收端通知发送端已收到了正确、完整的数据。可靠协议的网络系统开销较大,因需发送“验收通知”。不可靠协议不保证数据正确交付,但优点是因功能少而网络开销小。传输层与网络层及会话层的关系如图1-14所示。
图1-14 传输层与网络层及会话层的关系
传输层功能:
●服务点编址。计算机同时运行多个程序,因此,从源端到目的端的传送不仅仅是从一台计算机传送到下一台计算机,还应包括从一台计算机上的特定进程(运行的程序)传送到下一台计算机上的特定进程。所以传输层的头部必须包括服务点地址(或端口地址),网络层使每个分组传送到正确的计算机,传输层则将整个报文传送到该计算机上正确的进程。
●分段与重装。一个报文要划分为若干可传输的报文段,每个报文段都包括一个序号。这些序号使传输层能在到达目的端后将报文正确重装,并对传输时丢失分组进行识别和重传。
●连接控制。传输层可以是无连接的或面向连接的。无连接的传输层将每个报文段看成独立的数据段,并传送给目的计算机上的传输层;面向连接的传输层在发送分组之前,就先与目的计算机的传输层建立一条连接,当全部数据传输完毕,连接就被释放。
●流量控制。与数据链路层类似,传输层也负责流量控制。但传输层的流量控制是在端对端的意义上实现的,而不是在一条链路上实现的。
●差错控制。传输层的差错控制也是在端对端的意义上实现的。发送端的传输层要确保整个报文无差错(无缺损、无丢失、无重复)到达接收端传输层。纠错常通过重传实现。
(5)会话层
会话层是网络的对话控制器,它建立、维持和同步通信系统之间的对话。其功能是使不同计算机上的用户之间建立会话关系,并协调通信时的服务请求与应答。图1-15表示了会话层与传输层及表示层的关系。
图1-15 会话层与传输层及表示层的关系
会话层包括:①对话控制。会话层允许两个系统进行对话,进程之间的通信可以按半双工或全双工的方式进行。②同步。会话层允许进程在数据流中加入检查点(同步点)。
会话层协调不同主机间通信时的服务请求与响应。例如:结构查询语言;网络文件系统;APPLETALK会话;X窗口系统;远程过程调用等。
会话层允许进行类似传输层的普通数据传送,在某些场合还提供“增值”服务。允许用户利用一次会话在远端的分时系统上登录,或在两台计算机之间传递文件。会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制相关的服务是令牌管理,双方不能同时进行同样的操作,这一点很重要。为了能管理这些活动,会话层提供了令牌,令牌可在会话双方之间移动,而且只有持有令牌的一方才可执行某种关键性的操作。
会话层提供的另一服务是同步。如在平均每小时就出现一次大故障的网络上,两台主机之间需进行一次两小时的文件传输,会出现什么样的问题呢?每次传输中途失败后,都需重传该文件。当网络再次出现大故障时,可能不断出现“半途而废”。为解决这个问题,会话层提供了一种方法,即在数据中插入同步点。在每次网络出现故障后仅重传最后一个同步点之后的数据。
(6)表示层
表示层(Presentation Layer)主要完成转换特定功能。表示层以下各层只关心从源端机到目标机可靠地传送比特,而表示层关心的是所传送的信息的语法和语义。表示层服务的经典例子是用一致选定的标准方法对数据进行编码。大多数用户程序之间并非交换随机的比特,而是交换诸如人名、日期、货币数量和发票之类的信息。这些对象是用字符串、整型数、浮点数的形式,以及由几种简单类型组成的数据结构来表示。网络上计算机可能采用不同的数据表示,所以需要在数据传输时进行数据格式的转换。例如在不同的计算机上常用不同的代码来表示字符串(ASCII和EBCDIC)、整型数(二进制反码或补码)以及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能相互通信并交换数据,在通信过程中使用抽象的数据结构(如抽象语法表示ASNI)来表示传送的数据,而在计算机内部仍采用各自的标准编码。表示层管理这些抽象数据结构,并在发送方将计算机的内部编码转换为适合网上传输的传送语法以及在接收方做相反的转换等。表示层还涉及数据压缩和解压、数据加密和解密等工作。
(7)应用层
应用层(Application Layer)。联网目的在于支持运行于不同计算机的进程进行通信,而这些进程是为用户完成不同任务而设计的。网络应用是多方面的,并不受网络结构的限制。应用层包含大量用户普遍需要的协议。例如,用户使用仿真终端软件通过网络的某个远程主机的终端使用该远程主机的资源,该仿真终端程序使用虚拟终端协议将键盘输入的数据传送到主机的操作系统,并接收显示于屏幕的数据。因每个应用有不同要求,应用层协议集在ISO模型中并没有定义,一些确定的应用层协议,包括虚拟终端、文件传输和电子邮件等都可作为标准化的候选。
2.TCP/IP协议
(1)TCP/IP协议组合
TCP/IP协议本质上是一个动态改变的互联网络协议集合,非静态的实体。自TCP/IP协议创建后,全球多数重要网络开发集中在TCP/IP上,推动互联网发展。构成互联网协议套件的基础是TCP(传输控制协议)和IP(互联网协议)等协议组合,称其为TCP/IP协议组合,并已成为事实上的工业标准。
不同种类计算机系统组成互联网通信时,TCP/IP具有各种平台的共同特性。
TCP/IP协议组合实际上除了代表TCP/IP这两种通信协议外,还包括与TCP/IP相关的数十种通信协议,如DNS、SMTP、ICMP、POP、FTP、Telnet等等。
TCP/IP协议开发大约比OSI早了10年,互联网协议根据自己的模型定义,即Internet和DoD(Department of Defense Model)模型,只能大致上对应到OSI模型中。
TCP/IP协议有4个分层,如图1-16所示。
图1-16 TCP/IP模型的4层协议
OSI模型的高层有三层(应用层、表示层和会话层),对应到TCP/IP模型合并为一层。OSI模型中物理硬件层与数据链路层是分开的,而TCP/IP模型将它们组合在一起。如图1-17所示。
图1-17 OSI参考模型与TCP/IP协议关系
(2)TCP/IP的层次结构
应用层服务。TCP/IP协议包括几个共同的应用程序。在TCP/IP第4层。每个应用程序使用UDP或TCP作为传输机制。
传输层。其功能是在两系统之间提供可靠的数据传输。TCP/IP协议中有两个传输层协议,传输控制协议(TCP)和用户数据报协议(UDP)。它们不仅在本层重要,并得到高层的广泛使用。
网络层。网络层主要处理寻址事物。TCP/IP协议在该层中有5个主要协议,分别是:IP(网际协议);ICMP(网际控制消息协议);ARP(地址解析协议);RARP(反向地址解析协议);InARP(逆向地址解析协议)。IP协议设置网络和结点地址。ICMP是IP的一个子协议,处理网络层的控制消息,Ping命令就是由ICMP来应答的。ARP、RARP和InARP都以不同方式解析IP地址,这依赖结点所关注的寻址资源。
DoD模型层与OSI模型层之间的对应关系:
数据链路层(网络接口层)对应于OSI的“物理层”和“数据链路层”。负责对硬件功能实现,如网络适配器的驱动、帧中继等。
网络层(互联网层)对应于OSI的“网络层”。此层运行的协议将控制数据包在网络内的传输,即决定数据如何传输到目的地。如确定地址、选择路径等。在互联网层里主要运行的协议是IP。
传输层(主机—主机层)可大致与OSI的“传输层”对应。这一层协议掌管与其他主机和网络设备的同级进程间的通信,即负责传输过程的流量控制、错误处理、数据重发等工作。TCP/UDP在此层运行。
应用层(进程/应用层)大体上与OSI的“对话层、表示层和应用层”对应。本层定义应用程序如何提供网络内的服务,典型实例包括Telnet、FTP、浏览程序等怎样与Web服务器连接,邮件程序如何从邮件服务器下载邮件等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。