新编计算机网络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 OSI和TCP/IP

1.5.1 协议与划分层次

1.协议

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些为进行网络中的数据传输而建立的规则、标准或约定称为网络协议。网络协议也可简称为协议。网络协议主要由以下3个要素组成:

(1)语法。即数据与控制信息的结构或格式。

(2)语义。即语法表达的意思。

(3)同步。即事件的先后顺序。即谁先发,发什么,然后发什么,最后发什么。收到后如何回应。等等。

协议需要通过文字、图形等方法进行描述以便于人们阅读和理解,同时,需要软件、硬件配合实现从而让计算机能够理解。

2.层次

对于有经验的程序员,不会把一个复杂问题的解决写在一个程序里,因为这样编写、调试、修改、阅读、维护都很麻烦。而是把一个复杂问题分解为若干个较容易处理的更小一些的问题,每一个小问题用一个模块解决,模块之间只要定义好如何接口即可。

计算机网络非常复杂,需要解决的问题很多。我们可以分解成多个小的问题进行处理。同时,它具有的特殊之处是它们之间是套用的关系。我们把具有独立功能并且具有上下套用的关系的模块称为层。例如,要实现主机1和主机2之间通过一个通信网络传送文件。我们可以将要做的工作划分为三块。第一块工作与传送文件直接有关,它们需要约定先传文件名、文件格式、文件长度、大的文件内容如何分块、什么时候开始、什么时候结束等。第二块设立一个通信服务模块,用来保证文件内容和命令可靠地在两个系统之间交换。第三块构造一个网络接入模块,负责与网络接口细节有关的工作,它不管传输的内容是什么,只是将内容通过网络传过去。如图1.18所示。

图1.18 划分层次的举例

从上述简单例子可以看到,分层可以带来下列好处。

(1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道如何使用下一层所提供的功能(这里称为服务)。每一层只实现一种相对独立的功能,并且可标准化。

(2)灵活性好。每一层仅定义功能,而不管具体实现。由于技术的变化,某一层实现手段可以更新,但并不会层对其他产生影响。

(3)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个系统已被分解为若干个相对独立的子系统。

但分层时层数需要适当。若层数太少,就会使每一层的协议仍然太复杂。但层数太多又会降低效率。就像模块分得太多反而会带来麻烦,从而产生额外开销。

我们把计算机网络的各层及其协议的集合称为网络的体系结构。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

1.5.2 OSI参考模型

1974年,IBM公司提出世界上第一个网络体系结构,即系统网络体系结构(SNA)。此后,很多公司纷纷提出各自的网络体系结构。这些网络体系结构的共同之处在于采用分层技术,但是层次划分、功能分配与采用的协议均不同。由于采用不同的网络体系结构与协议,从而很难实现异构网络之间的互联。随着信息技术的发展,各种计算机网络互联成为迫切需要解决的课题,OSI(开发系统互联)参考模型正是在这一背景下提出与研究的。

1974年,ISO(国际标准组织)发布了著名的ISO/IEC 7498标准,使得一台计算机可以与位于世界上任何地方、遵循同一标准的其他计算机进行通信。

1.OSI参考模型

OSI参考模型采用分层的体系结构,详细规定每层的功能、层次之间的相互关系与各层包括的服务。某层的服务就是该层及以下各层的功能,它通过接口提供给更高一层。各层提供的服务与这些服务如何实现的具体技术无关。

OSI参考模型只是描述一些概念,并没有定义具体的实现方法。各种网络只要符合OSI协议就能实现互联。因此,OSI参考模型并不是一个标准,而是一个制定标准时使用的概念性框架。

1977年,ISO成立专门的分委员会研究网络体系结构时,ARPANET已经连接了100台主机,而局域网的研究刚开始。在这种情况下,OSI参考模型的研究只能以ARPANET为原型,通过认真研究和总结,完成广域网体系结构。

ISO将整个通信功能划分为7个层次,划分层次的主要原则是:

(1)网中的各结点都具有相同的层次。

(2)不同结点的同等层具有相同的功能。

(3)同一结点内相邻层之间通过接口通信。

(4)每层可以使用下层提供的服务,并向其上层提供服务。

(5)不同结点的同等层通过协议来实现对等层次之间的通信。

OSI参考模型结构定义了一个7层的网络体系结构,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。计算机网络与OSI参考模型的关系如图1.19所示。

图1.19 计算机网络与OSI参考模型

各层的功能如下。

物理层:利用传输介质实现比特序列的传输。

数据链路层:实现一个网络内的数据传输。

网络层:实现网络之间分组路由选择、分组转发与拥塞控制等。

传输层:实现整个网络中主机之间的“端-端”数据传输。

会话层:维护两个通信计算机之间的进程通信,管理数据交换。

表示层:处理两个通信的计算机系统的数据表示方式,完成数据的格式变换、加密与解密、压缩与恢复。

应用层:为应用软件提供多种网络服务,例如文件服务、数据库服务、电子邮件与其他服务等。

2.OSI环境数据传输过程

在OSI环境下,主机之间的数据传输过程如图1.20所示。

图1.20 OSI环境数据传输过程

从图中可以看出,计算机网络为了完成源主机向目的主机传输数据,经过了层层传递。源主机和目的主机传输数据经过所有的层,而中间结点仅仅经过下面三层。下面分别介绍各传递过程。

(1)源主机发送过程。

应用层:为应用进程交给的数据加上应用层报头,组成应用层协议数据单元(PDU),再传送到表示层。

表示层:为应用层数据单元加上表示层报头组成表示层协议数据单元,再传送到会话层。

会话层:为表示层协议数据单元加上会话层报头组成会话层协议数据单元,再传送到传输层。

传输层:为会话层协议数据单元加上传输层报头组成传输层协议数据单元(称为报文),再传送到网络层。

网络层:由于网络层协议数据单元的长度有限制,需要将长传输层报文分成多个较短的部分,加上网络层报头组成网络层协议数据单元(称为分组),再传送到数据链路层。

数据链路层:为分组加上数据链路层的头和尾组成数据链路层协议数据单元(称为帧),再传送到物理层。

物理层:将帧对应的二进制序列中的每一位变成传输介质能够接收的信号发送出去。

(2)路由器中间转发。

因为路由器仅仅对传输的报文进行转发,而转发需要的信息在网络层报头中,所以路由器仅仅运行到网络层即可。

(3)目的主机接收过程。

当比特序列到达目的主机时,从物理层依层上传,每层根据自己的协议数据单元报头进行处理,然后将本层数据上交高层,最终将源主机应用进程的数据传送给目的主机的应用进程。

1.5.3 TCP/IP协议

1.TCP/IP与OSI

OSI参考模型的研究对促进计算机网络理论体系的形成起到了重要作用。TCP/IP协议起初是几个网络互联的通信规程,它规定计算机之间通信使用的协议数据单元、格式、报头与相应的动作。现在是因特网中采用的协议。

TCP/IP协议分为4个层次:

(1)应用层。与OSI参考模型的应用层、表示层与会话层对应。

(2)传输层。与OSI参考模型的传输层对应。

(3)网际层。与OSI参考模型的网络层对应。

(4)网络及接口层。与OSI参考模型的数据链路层、物理层对应。这两层分开,即为TCP/IP体系5层结构。

图1.21给出了TCP/IP体系与OSI参考模型的层次对应关系。

图1.21 TCP/IP体系与OSI参考模型的层次对应关系

2.TCP/IP协议各层功能

网络及接口层:通过具体网络发送和接收IP数据报。它采取开放的策略,允许使用广域网、局域网与城域网的各种协议。任何一种现有的和流行的低层传输协议都可以与网络层接口。这种开放性、兼容性也是TCP/IP协议成功的基础。

网际层:提供“尽力而为”的网络分组传输服务。

传输层:负责在应用进程之间建立和维护端-端的连接和应用层数据传输。传输层定义了两种不同的协议——传输控制协议(TCP)与用户数据报协议(UDP)。TCP是一种可靠的、面向连接字节流的传输协议。UDP是一种不可靠的无连接传输协议。

应用层:应用层协议可以分为两类:TCP/IP应用层协议属于标准的因特网应用协议,而目前的P2P协议基本上都属于专用网络应用协议。

基本的TCP/IP应用层协议及其功能如下。

(1)域名系统(DNS)实现网络设备名字到IP地址映射服务功能。

(2)文件传输协议(FTP)实现交互式文件传输功能。

(3)简单邮件传输协议(SMTP)实现电子邮件传输功能。

(4)远程登录协议(TELNET)实现远程登录功能。

(5)超文本传输协议(HTTP)实现Web服务功能。

(6)简单网络管理协议(SNMP)实现网络设备的监控与管理功能。

1.5.4 因特网组织、管理机构与RFC文档

1.因特网标准化组织

目前,计算机网络领域有影响的标准化组织主要有:国际电信联盟(ITU)、国际标准化组织(ISO)、国际电气与电子工程师协会(IEEE)。其中,ITU负责电信标准的制定, ISO负责数据通信标准的制定与OSI参考模型的研究,IEEE负责局域网领域最重要的802标准的制定。

2.RFC文档

最早出现的RFC文档是在1969年4月7日由参与ARPANET研究的UCLA研究生Steve Crocker发布的,他希望创造一种非官方的、所有参与ARPANET项目的技术人员之间交流研究成果的方式,以系列的形式发布各种网络技术与标准的研究文档,并取名为请求评价(Request For Comment, RFC)文档。这种形式很快就受到所有参与ARPANET项目的研究人员的欢迎,并逐步成为有关因特网技术研究成果、标准讨论的最主要的方式,在因特网技术研究与标准从研究到修改、确定过程中发挥了重要的作用,也是当前所有的网络技术研究人员了解因特网技术动态与标准内容最重要的信息来源。各种RFC文档都可以免费在http://www.rfc-editor.org网站找到。

在了解RFC文档的过程中,需要注意以下几个问题:

(1)任何研究人员都可以提交RFC文档。管理RFC文档的机构收到文档之后,经过IETF(因特网工程部)专家审查认为可以发布时,按照接收文档的时间先后将RFC排序编号。

(2)因特网标准的制定需要经过草案、建议标准、草案标准和标准等4个阶段。“草案”阶段的文档是提供给大家讨论用的。当研究人员提交的文档经过IETE专家审查认为有可能成为协议标准时,将被接受为“建议标准”阶段的RFC文档。“草案标准”阶段的RFC文档是正在被考虑和审查的协议标准。“标准”阶段的RFC文档表示该文档已经成为因特网协议标准。

(3)RFC文档有3种形式:实验性文档、信息性文档与历史性文档。实验性RFC文档表示该文档是某一项技术研究的当前实验的进展报告;信息性RFC文档表示该文档是关于因特网相关的一般性信息或指导性的信息;历史性RFC文档表示该协议已经被新的协议取代,或者是没有达到一定的成熟程度、从未使用的标准。

(4)一个网络协议可能会出现很多RFC文档。例如,讨论TCP协议的第一个RFC文档“RFC793 Transmission Control Protocol, J.Postel. September”是1981年发布的。为了解决TCP协议中的一系列问题,在之后的20多年里IETF又公布了十几个对TCP的功能扩充、调整的RFC文档。因此,如果读者要系统地了解一个协议标准的细节,可能需要阅读多个RFC文档。同时,同一个协议可能有后面的新协议文档取代了前面的旧协议文档,读者在查询与阅读RFC文档时要确定是否是最新的文档。例如,对于“Internet Official Protocol Standards”存在两个RFC文档(2002年:RFC3300;2003年:RFC3600)。

3.因特网管理机构

因特网管理的一般组织方式如图1.22所示。

图1.22 因特网管理机构结构

因特网协会(ISOC, http://www.isoc.org):是成立于1992年的国际性的、非营利性组织,用来提供对因特网标准化过程的支持。ISOC通过维护和支持其他的一些因特网管理机构来完成这一任务,如IAB、IETF、IRTF以及IANA。ISOC还推进与因特网有关的研究和其他一些学术活动。

因特网体系结构研究委员会(IAB, http://www.iab.org):是ISOC的技术顾问。IAB的主要任务是监督TCP/IP协议族的持续发展,以及用技术咨询能力向因特网界的研究人员提供服务。IAB通过其下属的两个主要机构,即因特网工程部(IETF)和因特网研究部(IRTF)来完成此任务。IAB的另一个责任就是对RFC的编辑管理。IAB还是因特网与其他标准化组织和论坛进行对外联络的机构。

因特网工程部(IETF, http://www.ietf.org):它是在因特网工程指导小组(IESG, http://www.ietf.org/iesg.html)领导下的工作组论坛。IETF负责找出运行中的问题,并对这些问题提出解决的方法。IETF还开发并评审打算成为因特网标准的一些规约。这些工作组被划分成一些领域,每一个领域集中研究某个特定的题目。目前已经定义了9个领域,这个数字并不是固定和一成不变的。

因特网研究部(IRTF, http://www.irtf.org):它是在因特网研究指导小组(IRSG)领导下工作组的论坛。IRTF关注的是有关因特网协议、应用、体系结构和技术的长期研究课题。

因特网赋号管理局和因特网名字与号码指派公司:到1998年10月之前,由美国政府支持的因特网赋号管理局(IANA, http://www.iana.org)一直负责着因特网域名和地址的管理。此后,由国际委员会管理的,称为因特网名字与号码指派公司(ICANN)的民间非盈利公司取代了IANA的工作。

因特网网络信息中心(NIC, http://www.internic.net):负责收集和分发有关TCP/IP协议族的信息。