标签(空格分隔): 计算机网络算法
本节主要来学习和理解计算机网络协议分层的一些基本知识。数据库
(1) 起初在ARPANET设计时即提出了分层的方法。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。安全
(2) 1974年,IBM公司宣布了它研制的SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。不久后,其余一些公司也相继推出本公司的一套体系结构,并都采用不一样的名称。网络
(3) 国际标准化组织ISO于1977年成立了专门机构研究该问题。不久,他们就提出一个试图使各类计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM (Open Systems Interconnection Reference Model),简称为OSI。在1983年造成了开放系统互联基本参考模型的正式文件,即著名的ISO 7498国际标准。框架
(4) 20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但因为因特网已抢先在全世界覆盖了至关大的范围,而与此同时却几乎找不到有什么厂家生产出符合OSI标准的商用产品。现今规模最大的、覆盖全世界的计算机网络因特网并未使用OSI标准,而是非国际标准TCP/IP。这样,TCP/IP就是事实上的国际标准。学习
主要是对复杂的计算机网络进行分开管理,各层实现相应的功能,至关于模块式设计,便于添加和增减。
分层的理由:1)经过将网络的通讯过程划分为小一些、简单的部件,有助于各个部件的开发、设计和故障排除;2)经过网络组件的标准化,容许多个供应商进行开发;3)经过定义在模型的每一层实现什么功能,鼓励产业的标准化;4)容许各类类型的网络硬件和软件互相通讯;5)防止对某一层所作的改动影响到其余的层,这样就有利于开发。编码
本节主要来对OSI分层体系进行分析:加密
在OSI参考模型中,物理层是参考模型的最低层,也是OSI模型的第一层。
物理层的主要功能是:利用传输介质为数据链路层提供物理链接,实现比特流的透明传输。
物理层的做用是实现相邻计算机节点之间比特流的透明传送,尽量屏蔽掉具体传输介质和物理设备的差别。使其上面的数据链路层没必要考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来讲,这个电路好像是看不见的。操作系统
数据链路层(Data Link Layer)是OSI模型的第二层,负责创建和管理节点间的链路。该层的主要功能是:经过各类控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
在计算机网络中因为各类干扰的存在,物理链路是不可靠的。所以,这一层的主要功能是在物理层提供的比特流的基础上,经过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的经过物理介质传输数据的方法。
该层一般又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
LLC子层的主要任务是创建和维护网络链接,执行差错校验、流量控制和链路控制。
数据链路层的具体工做是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;一样,也未来自上层的数据帧,拆装为位流形式的数据转发到物理层;而且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。计算机网络
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通讯子网的最高一层。它在下两层的基础上向资源子网提供服务。其主要任务是:经过路由选择算法,为报文或分组经过通讯子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,创建、维持和终止网络的链接。具体地说,数据链路层的数据在这一层被转换为数据包,而后经过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另外一个网络设备。
通常地,数据链路层是解决同一网络内节点之间的通讯,而网络层主要解决不一样子网间的通讯。例如在广域网之间通讯时,必然会遇到路由(即两节点间可能有多条路径)选择问题。
在实现网络层功能时,须要解决的主要问题以下:
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不一样子网之间通讯时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个惟一的地址。因为各子网使用的物理技术可能不一样,所以这个地址应当是逻辑地址(如IP地址)。
交换:规定不一样的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
路由算法:当源节点和目的节点之间存在多条路径时,本层能够根据路由算法,经过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
链接服务:与数据链路层流量控制不一样的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
OSI下3层的主要任务是数据通讯,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。所以该层是通讯子网和资源子网的接口和桥梁,起到承上启下的做用。
该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的做用是向高层屏蔽下层数据通讯的细节,即向用户透明地传送报文。该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。
传输层提供会话层和网络层之间的传输服务,这种服务从会话层得到数据,并在必要时,对数据进行分割。而后,传输层将数据传递到网络层,并确保数据能正确无误地传送到网络层。所以,传输层负责提供两节点之间数据的可靠传送,当两节点的联系肯定以后,传输层则负责监督工做。综上,传输层的主要功能以下:
传输链接管理:提供创建、维护和拆除传输链接的功能。传输层在网络层的基础上为高层提供“面向链接”和“面向无接连”的两种服务。
处理传输差错:提供可靠的“面向链接”和不太可靠的“面向无链接”的数据传输服务、差错控制和流量控制。在提供“面向链接”服务时,经过这一层传输的数据将由目标设备确认,若是在指定的时间内未收到确认信息,数据将被重发。
监控服务质量。
会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供创建和使用链接的方法。将不一样实体之间的表示层的链接称为会话。所以会话层的任务就是组织和协调两个会话进程之间的通讯,并对数据交换进行管理。
用户能够按照半双工、单工和全双工的方式创建会话。当创建会话时,用户必须提供他们想要链接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不一样,它们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址例如:www.3721.com就是一个域名。会话层的具体功能以下:
会话管理:容许用户在两个实体设备之间创建、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
会话流量控制:提供会话流量控制和交叉会话功能。
寻址:使用远程地址创建会话链接。l
出错控制:从逻辑上讲会话层主要负责数据交换的创建、保持和终止,但实际的工做倒是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通讯介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。
表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各类语法赋予相应的含义,并按照必定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。表示层的具体功能以下:
数据格式处理:协商和创建数据交换的格式,解决各应用程序之间在数据格式表示上的差别。
数据的编码:处理字符集和数字的转换。例如因为用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等均可以有不一样的表示方式,所以,在设备之间须要具备在不一样字符集或格式之间转换的功能。
压缩和解压缩:为了减小数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:能够提升网络的安全性。
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各类应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户但愿在网络上完成的各类工做。它在其余6层工做的基础上,负责完成网络中应用程序与网络操做系统之间的联系,创建与结束使用者之间的联系,并完成网络用户提出的各类网络服务及应用所需的监督、管理和服务等各类协议。此外,该层还负责协调各个应用程序间的工做。
应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登陆服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各类网络服务由该层的不一样应用协议和程序完成,不一样的网络操做系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具备的各类应用程序接口等各个方面的差别是很大的。应用层的主要功能以下:
用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户可以与网络进行交互式联系。
实现各类服务:该层具备的各类应用程序能够完成和实现用户请求的各类服务。
因为OSI是一个理想的模型,所以通常网络系统只涉及其中的几层,不多有系统可以具备全部的7层,并彻底遵循它的规定。
在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通讯为主;第4层做为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通讯子网的功能,上3层主要完成资源子网的功能。