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