1、协议分层
两个实体之间要进行通信就需要有一个协议。而当通信比较复杂时就有必要将这个复杂的任务划分为多层,就需要有多个协议,每一层都有自己的协议。
2、ISO
国际标准化组织(International Standard Organization , ISO)是一个多国团体,专门就一些国际标准达成世界范围内的一致。全世界大约有3/4的国家派代表参加。一个全方位覆盖网络通信问题的ISO标准就是开放系统互连(OSI ,Open Systems Interconnection)模型。
3、OSI
开放系统互连(OSI ,Open Systems Interconnection)模型。一个开放系统(Open System)就是一组协议的集合,它使得两个不同系统之间能够互相通信,而不用考虑底层体系结构。OSI模型的作用就是展示两个不同的系统之间怎样才能做到互相通信,且不需要改变底层的用剑或软件逻辑。为OSI框架的各种协议的创建童工基础是OSI模型的本意。
OSI模型是一个分层的框架结构,目的是为了设计出能够让各种类型的计算机系统相互通信的网络系统。由7个独立且相关的层组成,每层都定义了信息通过网络传输的完整过程的一部分。

处于一台机器上上的每一层都要调用紧挨的下一层的服务。例如,第3层使用第2层提供的服务,同时向第4层提供服务。而机器与机器之间看起来就像是一台机器中的第x层与另一台机器中的第x层之间在相互通信。这种通信由协议来控制。
上述7层可以看成分属于三个组。第1、2、3层(物理层、数据链路层、网络层)是网络支撑层,这些层的任务是在物理上将数据从一个设备传送到另一个设备(如,电气规约、物理连接、物理编址、以及运输的定时和可靠性)。第5、6、7(会话层、表示层、应用层)可以看成是用户支撑层,这些层使得一些本来没有关系的软件系统之间有了互操作性。第4层(运输层)将这两部分链接起来,使得底层所发送的是高层使用的形式。OSI的高层几乎都是用软件来实现的,而低层的则是硬件和软件的结合,物理层绝大部分是硬件。
4、OSI模型中的各层
[1]物理层(physical layer)负责把逐个的比特从一跳(结点)移动到下一跳。协调通过物理媒体传送比特流时所需的各种功能。
物理层涉及到接口和传输媒体的机械和电气规约。物理层关心以下内容:
(1)接口和媒体的物理特性: 物理层定义了设备与传输媒体之间接口特性,定义了传输媒体的类型。
(2)比特的表示: 物理层的数据由一串没有任何解释道的比特流(0和1的序列)组成。发送时,比特必须经过编码变成信号——电的或光的。
(3)数据率: 传输速率,即每秒发送的比特数。
(4)比特的同步:发送设备和接收设备的时钟必须是同步的。
(5)线路配置:考虑设备与媒体的连接。点对点配置(point-to-point configuration)时两个设备通过专用链路连接在一起。多点配置(multipoint configuration)时若干个设备共享一条链路。
(6)物理拓扑:网状、星状、环状、总线拓扑。
(7)传输方式:单工、半双工、全双工。
[2]数据链路层(data link layer)把物理层转换成可靠的链路。使物理层对上层(网络层)看起来像是无差错的。链路层的任务:
(1)组帧:数据链路层把从网络层收到的比特流划分成可以处理的数据单元,称为帧(frame)。
(2)物理编址:若这些帧需要发给本网络内的另一个系统,那数据链路层就要在帧上附加一个首部,指明帧的发送方或接收方。若这个帧要发送给本网络以外的另一个系统,则接收方地址应当是连接本网络和下一个网络的连接设备的地址。
(3)流量控制:协调接收方吸收速率和发送方发送速率。
(4)差错控制:数据链路层增加了一些措施来检测并重传受损伤的帧或丢失帧。
(5)接入控制: 当两个或更多设备连接到同一条链路时,数据链路层决定任一时刻该由哪一个设备对链路有控制权。
[3]网络层(network layer)负责把分组从源点交付到终点。这可能要跨越多个网络,如果说数据链路层监督的是同一个网络上的两个系统之间的分组交付,那么网络层则要确保每个分组从源点出发并最终抵达目的地。若两个系统连到同一条链路上,则一般来说就不需要网络层了;若连在不同的网络上,而这些网络是由一些连接设备连接起来的,那么就需要网络层来完成从源点到终点的交付。网络层的任务包括:
(1)路由选择:当多个独立的网络或链路互相连接组成互联网 ,这些设备(路由器或交换机)就要为数据分组选路或交换以到达它们最终的目的地。
(2)逻辑编址:由数据链路层实现的物理编址处理的是本地寻址问题。若分组穿过了网络的边界,就需要另一种编址系统来区分源系统和目的系统。网络层给从上层传来的分组附加一个首部,其中包括发送方和接收方的逻辑地址。
[4]运输层(transport layer)负责完整报文的进程到进程的交付(process-to-process delivery).进程是运行在主机上的应用程序。网络层管理的是单个分组从源点到终点的交付(source-to-destination delivery),它并不考虑这些分组之间的关系。网络层独立的处理每个分组,运输层要确保整个报文原封不动的按序到达,要监督从源点到终点这一级的差错控制和流量控制。运输层的任务包括:
(1)服务点编址:计算机往往在同一时间运行多个程序。因此,从源点到终点的交付并不仅仅是从某个计算机交付到另一个计算机,同时还指交付到另一个计算机的特定进程。因此,运输层的首部必须包括一种称为服务点地址的地址(或端口地址)。网络层将各分组送抵正确的进程。
(2)分段与重装 :一个报文被划分为若干个可传输的报文段,每个报文段应包含一个序号。在报文到达终点时,运输层利用这些序号能够将他们重装起来,同时对在传输时丢失的分组也能够识别并替换为正确的分组。
(3)连接控制:运输层可以是无连接的,也可以是面向连接的。无连接的运输层把每个报文段看成是独立的数据报,并把这些报文段交付给终点设备上的运输层。面向连接的运输层在发送报文段之前,先要与终点设备上的运输层建立一条连接,当全部数据都传送完毕后,连接就被释放掉。
(4)流量控制:运输层的流量控制是端到端的,不同于数据链路层层对单条链路上的流量控制。
(5)差错控制:运输层的差错控制也是端到端的,不是只限于单条链路上的差错控制。发送端的运输层必须确保整个报文无差错(无损伤、无丢失、无重复)地到达接收端的运输层。
[5]会话层(session layer) 对某些进程来说,下四层(物理层、数据链路层、网络层、运输层)提供的服务还不够充分,会话层就是网络的对话控制器。用于建立、维持并同步正在通信的系统之间的交互。会话层的任务:
(1)对话控制:会话层允许两个系统进入对话状态。允许两个进程之间的通信按半双工或全双工方式进行。
(2)同步:会话层允许进程在数据流中插入若干个检查点(同步点)。如,某系统要发送一个2000页的文件,那么可以在每100页后插入一个同步点,这样就保证了以每100页为一个单元的数据独立的接收和确认。这种情况下,如果传输到第523页时计算机崩溃了,那系统恢复后只需要重传501~523页,第501以前的就不用重传了。
[6]表示层(presentation layer)考虑的问题是两个系统所交换的信息的语法和语义。表示层的任务有:
(1)转换:分别位于两个系统上的进程所交换的信息的形式通常都是字符串、数字等,这些信息在传送之前必须转变为比特流。由于不同的计算机使用不同的编码系统,表示层的任务就是在这些不同的编码方法之间提供互操作性。发送方的表示层把信息从与发送方相关的格式转换为一种公共的个好似,接收方的表示层把这种公共格式转换为与接收方相关的格式。
(2)加密:加密就是发送方将原始信息转换为另一种形式,然后将转换后的报文发送到网络上。
(3)压缩:数据压缩减少了信息中所包含的比特数。
[7]应用层(application layer),让用户可以接入网络。应用层给用户提供了接口,也提供多种服务支持,如电子邮件、远程文件访问和传送、共享数据库管理等。应用层提供的特定服务有:
(1)网络虚拟终端:是物理终端的软件版本,用来使用户能够登录到远程主机上。为此,这个应用程序创建一个软件对远程主机的终端进行仿真。用户的计算机先与这个软件终端交谈,然后这个软件终端再和主机交谈。远程主机认为它正在和自己的终端交谈,因此就允许你进行登录。
(2)文件传送、存取和管理(File Transfer Access and Management FTAM):这个应用程序允许用户访问远程主机中的文件(改变数据或读取数据)、将文件从远程计算机读取到本地计算机上来使用以及在本地上管理和控制远程计算机上的文件。
(3)邮件服务:这个应用程序提供转发和存储电子邮件的基本功能。
(4)名录服务:这个应用程序提供分布式数据库源,以及对全球各种对象和服务信息的存取。