OSI和TCP/IP
OSI模型和TCP/IP模型
OSI
OSI模型的分层思想
- 每一层都必须实现一个或多个明确定义的功能,而且这些功能具有相同的性质
- 每一层的划分必须有利于网络协议标准化,促进网络互连
- 层与层之间尽可能的封装,并提供足够的接口
- 层与层之间接口传输的数据尽可能简洁
- 尽可能将功能详细分开,但是层次数量不能太多
OSI模型的层次结构
由低到高一共有7层:
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
物理层
面向比特流的传输,为设备之间的数据通信提供传输媒介及互连设备,为数据传输提供可靠环境,主要任务如下:
- 制定关于物理接口的机械、电气、功能和规程特性的标准,保证不同厂家的产品能够互相兼容
- 制定信号的编码方式,使得通信各方能够正确的对信号进行解析
- 制定网络连接可用的拓扑结构
- 制定数据的传输模式
数据链路层
数据链路层传输的是有结构的数据,称为帧。
数据帧中的地址称为物理地址,数据链路层的主要任务如下:
- 制定帧的同步方式
- 制定流量控制的处理方法,一般采用滑动窗口机制实现
- 制定差错控制的处理方法
- 制定共享信道的访问策略
网络层
网络层可以在不直接连接的主机之间传输数据报。网络层使用IP地址进行寻址,向上层提供一致的通信服务,并屏蔽不同数据链路层的差异。网络层的主要任务如下:
- 制定逻辑地址与物理地址之间的地址解析方法
- 既提供面向连接的通信服务,也提供无连接的通信服务
- 解决数数据报传输的路由问题,为数据报选择最合适的传输路径。路由选择可以采用静态设定也可以采用路由算法动态计算
- 制定数据报分片和重组的处理方法
- 建立拥塞处理机制
传输层
传输层建立在网络层之上,向会话层提供更强大更灵活的通信服务。传输层的主要任务如下:
- 提供面向连接的通信服务
- 以端口的形式实现多路复用,使多个上层通信进程可以同时进行网络通信
- 实现端到端的流量控制,使发送方在传输时不至于超过接收方的处理能力。流量控制采用滑动窗口机制实现
- 提供差错控制处理机制。一般采用确认和超时重传机制实现
- 提供让分组按照从发送方发出时的顺序依次到达接收方的服务
会话层
提供了对某些应用的增强会话服务,例如远程登录的会话管理。会话层的主要任务如下:
- 建立、拆分、关闭对话
- 实现会话的同步,将会话的数据进行分解,并在数据块中加入标识
- 实现会话数据的确认和重传
- 使用令牌实施对话控制,令牌可以在会话双方之间交换,拥有令牌的一方才有发言权
表示层
表示层负责两个通信系统之间所交换信息的表达方式,使得两台数据表示结构完全不同的设备能够自由的进行通信。表示层的目标是消除网络内部的语法语义差异。表示层的主要任务是:
- 实现数据格式的翻译,发送方先将数据转换成双方都能够理解的传输格式,接收方再将数据转换成自己使用的格式
- 为了数据的安全,对数据进行加密传输,到达接收方再进行解密
- 为了提高网络传输的速度,可以对数据进行压缩后再传输,并在接收方进行解压
应用层
应用层负责为用户的应用程序提供网络服务,应用层不为OSI其它层提供服务,直接为应用程序提供服务,包括建立连接、同步控制、错误纠正和重传等。为了使各种应用程序都能有效的应用OSI网络环境,应用层的各种协议都必须提供方便的接口和运行程序,并形成一定的规范,确保任何遵循规则的使用者都能互相通信。
OSI模型的数据封装
OSI模型从应用层到网络层,每次封装都是在原数据上加一个头部,头部含有控制信息;在数据链路层,除了要附加一个头部之外,还要附加一个尾部,头部含有同步和控制信息,尾部含有同步和验证信息;在物理层,数据以比特流的形式传输,不需要封装。
TCP/IP模型
TCP/IP分为四层,分别是网络接口层、网际层、传输层、应用层
主机和网络设备可以根据实际的需要决定其工作的最高层次,主机需要达到应用层,路由器需要达到网络层,交换机只需要达到网络接口层。
网络接口层
模型没有详细描述,只是指出网络接口层可以使用某种协议与网络连接,以便传输IP数据报。
网际层
网际层是TCP/IP模型的核心,负责IP数据报的产生以及数据报在逻辑网络上的转发。网际层提供了数据报的封装、分片、重组,以及路由选择和拥塞控制机制。但是,网际层只提供无连接不可靠的通信服务。
传输层
提供端到端的通信服务,既可以提供无连接的服务,也可以提供面向连接的服务。传输层以端口的形式实现通信复用。
应用层
应用层是模型中协议数量最多最复杂的层次,面向不同主题向用户提供各种各样的通信业务。
OSI模型和TCP/IP模型比较
TCP/IP模型的应用层相当于OSI模型的应用层、会话层、表示层;传输层是一样的;网际层相当于网络层;网络接口层相当于数据链路层和物理层。相对于OSI模型,TCP/IP显得简单、高效,容易实现。
在OSI模型中定义了三个基本概念---服务、接口、协议,使得OSI的结构非常清晰,非常符合分层思想。而TCP/IP中没有清晰的概念,协议之间耦合性较强,某些协议按照调用关系应该归入某个层次,但是按照功能和作用应该归入另一个层次。不过从另一个角度来看,由于OSI模型的层次划分非常严格,使得模型很复杂,比较难以实现,降低了效率。