Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1476318
  • 博文数量: 295
  • 博客积分: 10051
  • 博客等级: 上将
  • 技术积分: 3850
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-11 08:50
文章分类

全部博文(295)

文章存档

2011年(1)

2009年(4)

2008年(290)

我的朋友

分类: 系统运维

2008-05-30 22:39:40

TCP/IP与OSI的比较

通过前面的讨论,大家已经看到TCP/IP 模型和ISO/OSI模型有许多相似之处。例如,两种模型中都包含能提供可靠的进程之间端到端传输服务的传输层,而在传输层之上是面向用户应用的传输服务。尽管ISO/OSI模型和TCP/IP模型基本类似,但是它们还是有许多不同之处。接下来我们将讨论两种模型的不同之处。有一点需要特别指出:我们是比较两种参考模型的差异,并不对两个模型中所使用的协议进行比较。

在ISO/OSI参考模型中,有3个基本概念:服务、接口和协议。也许ISO/OSI模型的最重要的贡献是将这3个概念区分清楚了。每一层都为其上层提供服务,服务的概念描述了该层所做的工作,并不涉及服务的实现以及上层实体如何访问的问题。层间接口描述了高层实体如何访问低层实体提供的服务。接口定义了服务访问所需的参数和期望的结果。接口仍然不涉及到某层实体的内部机制,而只有不同机器同层实体使用的对等进程才涉及层实体的实现问题。只要能够完成它必须提供的功能,对等层之间可以采用任何协议。如果愿意,对等层实体可以任意更换协议而不影响高层软件。

上述思想也非常符合现代的面向对象的程序设计思想。一个对象(如模型中的某一层),有一组它的外部进程可以使用的操作。这些操作的语义定义了对象所能提供的服务的集合。对象的内部编码和协议对外是不可见的,也与对象的外部世界无关。TCP/IP模型并不十分清晰地区分服务、接口和协议这些概念。相比TCP/IP模型,ISO/OSI模型中的协议具有更好的隐蔽性并更容易被替换。

ISO/OS I参考模型是在其协议被开发之前设计出来的。这意味着ISO/OSI模型并不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着ISO/OSI模型在协议实现方面存在某些不足。而TCP/IP模型正好相反。先有协议,模型只是现有协议的描述,因而协议与模型非常吻合。

问题在于TCP/IP模型不适合其他协议栈。因此,它在描述其他非TCP/IP网络时用处不大。

下面我们来看看两种模型的具体差异。其中显而易见的差异是两种模型的层数不一样:

ISO/OSI模型有7层,而TCP/IP模型只有4层。两者都有网络层、传输层和应用层,但其他层是不同的。两者的另外一个差别是有关服务类型方面。ISO/OSI模型的网络层提供面向连接和无连接两种服务,而传输层只提供面向连接服务。TCP/IP模型在网络层只提供无连接服务,但在传输层却提供两种服务。

综上所述,使用ISO/OSI模型(去掉会话层和表示层)可以很好地讨论计算机网络,但是OSI协议并未流行。TCP/IP模型正好相反,其模型本身实际上并不存在,只是对现存协议的一个归纳和总结,但TCP/IP协议却被广泛使用。

阅读(1417) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~