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各层做了小结:

OSI模型和TCP/IP协议族(二)的更多相关文章

  1. <TCP/IP原理> (二) OSI模型和TCP/IP协议族

    1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...

  2. OSI模型和TCP/IP协议族(一)

    1990年以前,再数据通信和组网文献中占主导地位的分层模型是开放系统互连(Open System Interconnnection,OSI)模型.当时所有人都认为OSI模型将是数据通信的最终标准,然而 ...

  3. OSI模型和TCP/IP协议族(三)

    TCP/IP协议族 TCP/IP协议族的开发要比OSI模型更早,因此TCP/IP协议族的分层结构无法准确地与OSI模型一一对应.原始的TCP/IP协议族定义为建立再硬件基础上的四个软件层,不通过目前T ...

  4. OSI模型与TCP/IP协议族

    OSI模型与TCP/IP协议族 年之后,TCP/IP协议族逐渐成为占主导的商用体系结构,广泛应用于Internet中,并通过广泛的測试.而OSI模型从来没有被全然实现过. 一.OSI模型: OSI与I ...

  5. OSI 七层模型和 TCP/IP 协议比较

      OSI (Open System Interconnection), 开放式系统互联参考模型.从下到上七层模型功能及其代表协议: 物理层(Physical) :规定了激活.维持.关闭通信端点之间的 ...

  6. [转]从OSI网络模型到TCP/IP协议族简介

    OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信 ...

  7. 漫谈网络通信——从OSI网络模型到TCP/IP协议族

    OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信 ...

  8. TCP/IP协议族(二) HTTP报文头解析

    本篇博客我们就来详细的聊一下HTTP协议的常用头部字段,当然我们将其分为请求头和响应头进行阐述.下方是报文头每个字段的格式,首先是头部字段的名称,如Accept,冒号后方紧跟的是该字段名所对应的值,每 ...

  9. TCP/IP知识总结(TCP/IP协议族读书笔记一)

    一.简述TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/互联网互联协议,又名网络通信协议.是Internet最基 ...

随机推荐

  1. win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)

    在计算机视觉和机器学习方向有一个特别好用但是比较低调的库,也就是dlib,与opencv相比其包含了很多最新的算法,尤其是深度学习方面的,因此很有必要学习一下.恰好最近换了一台笔记本,内含一块GTX1 ...

  2. C#将制定文件夹下的PDF文件合并成一个并输出至指定路径

    /// <summary> /// 将源路径下的PDF合并至目标路径下 /// </summary> /// <param name="SourcePath&q ...

  3. Egret学习笔记 (Egret打飞机-5.实现子弹对象)

    上一章把飞机添加到屏幕上,但是飞机要发射子弹对吧?那么这一章我们就来实现一下发射子弹,并实现一个简单的子弹对象池 先来捋一捋思路 1.创建一个子弹对象 2.然后添加一个bitmap,显示子弹贴图 3. ...

  4. 4.3 lambda表达式

    函数,封装的代码块可以很复杂,也可以很简单.当函数的代码块简单到只有一个表达式,就可以考虑用lambda表达式,也称匿名函数. 1 lambda表达式基础 #首先需要声明一点:lambda是表达式而非 ...

  5. uva1471 二叉搜索树

    此题紫书上面有详细分析,关键是运用Set优化实现O(nlgn)复杂度 AC代码: #include<cstdio> #include<set> #include<algo ...

  6. 【推荐】开源项目minapp-重新定义微信小程序的开发

    minapp 重新定义微信小程序的开发 官网:https://qiu8310.github.io/minapp/ 作者:Mora minapp 重新定义微信小程序的开发 使用 用 npm 安装命令行工 ...

  7. foo的出现

    在计算机程序设计与计算机技术的相关文档中,术语foobar是一个常见的无名氏化名,常被作为“伪变量”使用. 从技术上讲,“foobar”很可能在1960年代至1970年代初通过迪吉多的系统手册传播开来 ...

  8. (转载)windows下mysql忘记密码

    Mysql版本:5.1 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 打开第一个cmd窗口,切换到mysql的bin目录 ...

  9. 关于instrinsicContentSize, ContentHuggingPriority, ContentcompressionResistancePriority的理解

    ios 关于intrinsic理解 最近由于项目的需要想给MBProgressHUD添加一个自定义的view, 结果花费了一两个小时也没添加上去,添加上去的view没有实际的大小,即使你给他设置了一个 ...

  10. 实战DeviceIoControl 之五:列举已安装的存储设备

    Q 前几次我们讨论的都是设备名比较清楚的情况,有了设备名(路径),就可以直接调用CreateFile打开设备,进行它所支持的I/O操作了.如果事先并不能确切知道设备名,如何去访问设备呢? A 访问设备 ...