1. OSI七层参考模型的优点


    开放的标准化借口

    多厂商兼容性

   易于理解、学习和更新协议标准

   实现模块化工程,降低了开发实现的复杂度

   便于故障排除

2.OSI参考模型层次间的关系以及数据封装


7.应用层提供应用程序间通信
6.表示层处理数据格式、数据加密等
5.会话层建立、维护和管理会话
4.传输层建立主机端到端连接
3.网络层寻址和路由选择
2.数据链路层提供介质访问、链路管理等
1.物理层比特流传输

OSI参考模型的每一层都定义了所实现的功能,完成某些特定的通信任务,并只与紧邻的上层和下层进行数据的交换。

物理层涉及到在通信信道上传输的原始比特流,它定义了传输数据所需要的机械、电气、功能及规程的特性等,包括电压、电缆线、数据传输速率、接口的定义等。

数据链路层的主要任务是提供对物理层的控制,检测并纠正可能出现的错误,并且进行流量控制。数据链路层与物理地址、网络拓扑、线缆规划、错误检验和流量控制等有关。

网络层决定传输包的最佳路由,其关键问题是确定数据包从源端到目的端如何选择路由,网络层通过路由选择协议来计算路由。

传输层的基本功能是从会话层接受数据,并且在必要的时候把它分成较小的单元,传递给网络层,病确保到达对方的各段信息正确无误,传输层建立、维护虚电路、进行差错检验和流量控制。

会话层允许不同机器上的用户建立、管理和终止应用程序间的会话关系,在协调不同应用程序之间的通信时要涉及会话层,该层每个应用程序知道其他应用程序的状态。同时,会话层也提供双工协商、会话同步等。

表示层关注所传输的信息的语法和语义,它把来自应用层与计算机有关的数据格式处理成与计算机无关的格式,以保证对端设备能够准确无误地理解发送端数据。同时,表示层也复杂数据加密等。

应用层是OSI参考模型最接近用户的一层,负责为应用程序提供网络服务。这里的网络服务包括文件传输、文字管理和电子邮件的消息处理等。


3.物理层:

有关物理设备通过物理媒体进行互联的描述和规定。

定义电压、接口、线缆标准、传输距离等

机械特性:说明了接口所用接线器的形状和尺寸、引线数目和排列等,例如我们见到的各种规格的电源插头的尺寸都有严格的规定。

电气特性:说明在接口电缆的哪根线上出现的电压、电流等的范围。

功能特性:说明某根线上出现的某一电平的电压表示何种意义。

规程特性:说明对不同功能的各种可能事件的出现顺序。

物理层介质

 双绞线、同轴电缆、光纤、无线电信号灯

局域网物理层

 常见标准:10Base-T、100Base-TX/FX、1000Base-T、1000Base-SX/LX

 常见设备:中继器、集线器

广域网物理层

常见标准:RS-232、V.24、V.35

常见设备:Modem


4.数据链路层

负责在某一特定的介质或链路上传递数据。

数据链路层的主要功能:

编帧和识别帧:将比特编成帧,从一系列比特流中识别帧,并将帧解开传递个网络层。

数据链路的建立、维持和释放:当网络中的设备要进行通信时,通信双方有时必须先建立一条数据链路,在建立链路时需要保证安全性,在传输过程中要维持数据链路,而在通信结束后释放数据链路。

传输资源控制:在一些共享介质上,多个终端设备可能同时需要发送数据,此时必须由数据链路层协议对资源的分配加以裁决。

流量控制:为了确保正常地收发数据,防止发送数据过快,导致接收方的缓存空间溢出,网络出现拥塞,就必须及时控制发送方发送数据的速率。

差错控制:由于比特流传输时可能产生差错,而物理层无法辨别错误,所以数据链路层协议需要以帧为单位实施差错检测。

寻址:数据链路层协议应该能够标识介质上的所有节点,并且能寻找到目的节点,以便将数据发送到正确的目的。

标识上层数据:数据链路层采用透明传输的方法传送网络层包,它对网络层呈现为一条无错的线路。为了在同一链路上支持多种网络层协议,发送方必须在帧的控制信息中标识载荷(即包)所属的网络层协议,这样接收方才能将载荷提交给正确的上层协议来处理。

IEEE的数据链路层标准是当今最为流行的LAN标准。这些标准统称为IEEE802标准

802.1描述了基本的局域网需要解决的问题,例如802.1d描述了生成树协议

802.2小组负责LLC子层标准的制定

802.3小组负责MAC子层标准的制定,典型技术如CSMA/CD

802.4小组负责令牌总线标准的制定

802.5小组负责令牌环网络标准的制定

广域网常见的链路层标准有HDLC、PPP、X.25、帧中继

HDLC是ISO开发的一种面向位同步的数据链路层协议,它规定了使用帧字符和校验和的同步串行链路的数据封装方法。

PPP由RFC1661描述。支持同步和异步连接,支持多种网络层协议。

帧中继是一种交换式的数据链路协议。

5.网络层

网络层的任务是要选择合适的路径并转发数据包,使数据包能够正确无误地从发送方传递到接收方。

编址:网络层为每个节点分配标识,这就是网络层的地址。地址的分配也从源到目的的路径提供基础。

路由选择:网络层的一个关键作用是要确定从源到目的的数据传递应该如何选择路由,网络层设备在计算路由后,按照路由信息对数据包进行转发。

拥塞控制:如果网络同时传送过多的数据包,可能会产生拥塞,导致数据丢失或延迟,网络层也负责对网络上的拥塞进行控制。

异种网络互连:通信链路和介质类型是多种多样的,每一种链路都有特殊的通信规定,网络层必须能够工作在多种多样的链路和介质类型上,以便能够跨越多个网段提供通信服务。

网络层处于传输层和数据链路层之间,它负责向传输层提供服务,同时负责将网络地址翻译成对应的物理地址。网络层协议还能协调发送、传输及接收设备的处理能力的不平衡性,如网络层可以对数据进行分段和重组,以使得数据包的长度能够满足该链路的数据链路层协议所支持的最大数据帧长度。

可路由协议(routed protocol)是定义数据包内各个字段的格式和用途的网络层封装协议,该网络层协议允许将数据包从一个网络设备转发到另一个网络设备。常见的可路由协议有TCP/IP协议族中的IP协议、Novell IPX/SPX协议族中的IPX协议。

路由协议(routing protocol)运行于路由器上,在路由器之间传递信息,计算用于转发的路由并形成路由表(routing table),以便为可路由协议提供路由选择服务。路由协议使路由信息能够在相邻路由器之间传递,确保所有路由器了解到达各个目的的路径。


在计算机通信中,面向连接的服务(Connect-oriented Service)和无连接(Connectionless Service)是一对重要的概念。

通常面向连接的服务提供可靠的报文序列。接收方确认收到的每一份报文,使发送方确信它发送的报文已经到达目的地。确认过程增加了额外的开销和延迟,但如果报文丢失,发送方可以重新发送。在建立连接之后,每个用户可以发送可变长度的报文,这些报文按照顺序发送给远端的实体。在正常情况下,当两个报文发往同一目的地时,先发的先收到,但是先发的报文在途中有可能被延误,造成后发的报文反而先收到。接收方利用序列号判断接收的报文是否乱序,并对其按正确的顺序进行排列。面向连接的服务比较适用于在一定时间内向同一个目的地发送很多报文的情况,对于短报文数据的发送而言,面向连接的服务显得开销过大。

在无连接服务中,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留,这些资源是在数据传输时动态地进行分配的。无连接服务是以邮政系统为模型的,每个报文带有完整的目的地址,并且每一个报文都独立于其他报文,经由系统选定的路线传递。无连接服务提供尽力而为的服务,即网络以当前拥有的资源尽力转发报文,但并不保证确切的服务质量。

面向连接的服务无连接的服务
通信之前先建立连接,通信完成后断开连接无需建立连接 尽力而为的服务
有序传递无序号机制
应当确认无确认机制
差错重传无重传机制
适合于对可靠性要求高的应用适合于对延迟敏感的应用

6.传输层的功能是为会话层提供无差错的传送链路,保证两台设备间传递信息的正确无误。

分段上层数据 传输层从会话层接收数据,并传递给网络层,如果会话层数据过大,传输层将其切割成较小的数据单元(段)进行传送。

建立端到端连接 传输层负责创建端到端的通信连接。通过这一层,通信双方主机上的应用程序之间通过对方的地址信息直接进行对话,而不用考虑其间的网络上有多少个中间节点。

透明传输 传输层既可以为每个会话层请求建立一个单独的连接;也可以根据连接的使用情况为多个会话层请求建立一个单独的连接,这称为多路复用(Multiplexing)但无论如何,传输层服务对会话层都是透明的

可靠传输 传输层的一个重要工作是差错校验和重传。

流量控制  为了避免发送速度超出网络或接收方的处理能力,传输层还负责执行流量控制(flow control),在资源不足时降低流量,而在资源充足时提高流量。

7.会话层、表示层和应用层

 会话层(Session Layer)是利用传输层提供的端到端服务,向表示层或会话用户提供会话服务。会话层建立会话关系,并保持会话过程的畅通,决定通信是否被中断以及下次通信从何处重新开始发送。

会话层也处理差错恢复。


表示层(Presentation Layer)负责将应用层的信息“表示”成一种格式,让对端设备能够正确识别,它主要关注传输信息的语义和语法。在表示层,数据将按照某一种一致同意的方法对数据进行编码,以便使用相同表示层协议的计算机能互相识别数据。

表示层还负责数据的加密和压缩。

应用层(Application Layer)是OSI的最高层,它直接与用户和应用程序打交道,负责对软件提供接口使程序能够使用网络服务。