下载
本部分内容包括:
• 开放式通信模型简介
• TCP/IP和I n t e r n e t
• TCP/IP概述
第1章开放式通信模型简介
作者:Mark A. Sportack
本章内容包括:
• 开放式网络的发展
• TCP/IP参考模型
毫无疑问, T C P / I P (通常它是指传输控制协议/网际协议, Transmission Control
Protocol/Internet Protocol)是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式
网络系统I n t e r n e t之上就是其成功的明证。I n t e r n e t最初的设计是为了满足美国国防的需要,具体
来讲就是使美国政府即使在遭受核打击时也能保证通信不间断, T C P / I P就是用于这个目的的。
今天,I n t e r n e t已经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但
其最初的所有质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传
输数据、自动检测和避免网络发生错误的能力。更重要的就是T C P / I P是一个开放式通信协议,
开放性意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。
本章解释了开放通信是如何产生的,以及开放式数据通信的概念,本章还介绍了两个层
次模型,正是这两个模型使得开放式数据通信成为可能。这两个模型是开放式系统互联( O p e n
Systems Interconnect,O S I )参考模型和T C P / I P参考模型。这些模型通过将网络分为各种功能
模块,从而大大提高了网络的可理解程度。这些模块被分为层。这些层次的命令以及开放通
信的概念,为T C P / I P各种组件和使用的更广泛探索提供了场景和依据。
1.1 开放式网络的发展
最初的网络与计算解决方案一起是一个享有很高专利权的互联解决方案,这个方案几乎
是一个完整的专利。个人计算机出现前,如果某个公司想使他们的数据处理和记帐功能自动
化,就必须为其监管系统与某个厂家联系,而且只能与单一厂家联系。
在该专利中,单一厂家产品环境下,应用软件只执行在由单个操作系统支持的平台上,
操作系统只能安全地执行在相同厂家的硬件产品之上,甚至用户的终端设备和与计算机进行
连接的设备都必须是同一厂家产品的完整解决方案的一部分。
第一部分T C P / I P基础
在单一厂家、完整解决方案时代,美国国防部( D o D )声称需要一个健壮可靠的通信网络,
该网络应该可以把所需要的所有计算机(包括所有被接纳为会员的组织所拥有的计算机)互联起
来。这些会员包括大学、智能坦克和国防项目的承包人。这听起来不像是一个完整系统,但
它确实是一个大型系统。在计算机的发展初期,制造商所开发的硬件、软件和网络平台是紧
密结合的、非开放式系统。一个用户在一个平台上很难共享另一用户在不同计算平台上的数
据。因为制造商想靠此永久留住用户。
让所有D o D的子机构和承包商的研究组织都使用某一厂商的设备是极不现实的。这样,在不
同平台间的通信方案就应运而生。结果就诞生了世界上第一个开放通信协议—网际协议( I P )。
因此,一个开放式网络是一种使得在两台不同计算机之间通信和共享数据成为可能的方
式。开放性是通过合作开发和技术规范的维护而达到的。这些技术规范,也称为开放式标准,
是完全公开的。
1.1.1 通信处理层次化
开放式通信的关键在于理解所有对两端系统相互之间通信和共享数据所必需的功能。这
些必需的功能以及建立它们必须发生的先后顺序是开放式通信的基础,只有两端系统对如何
通信达成一致,它们才可能通信。也就是说,它们必须在从应用取得数据和为通过网络传输
将数据打包这些动作上遵守相同的过程。其中,不管是多么细节、细小的问题都不能忽略,
必须做到完全一致。
幸运的是,一个通信会话中所必需的事件在逻辑上存在一定的顺序。按完全的最小分割,
这些事件包括如下任务:
• 数据必须从它的应用向下传给一个通信进程(称为一个协议( p r o t o c o l ) )。
• 通信协议必须为通过许多类型网络的传输准备应用数据。这通常意味着数据必须被分割
为更多可管理的块。
• 分段的数据必须包装在一个数据结构中,以便于通过网络传送到某个指定设备。这意味
着数据必须被包装成某种形式,而这种形式所包含的信息应该可以使得任何网络上的计
算机设备可以识别出数据包来自何方,到哪里去。该结构可能是一个帧、一个数据包或
者一个单元,这与使用何种协议有关。
• 为传输需要,这些帧和数据包必须被转换成物理位流。这些位流可以被转换成光纤网
(如F D D I )上的光脉冲或者通过电子网络传输的电子信号状态(如以太网,或其他任何以
电信号通过金属导线传输的网络)。
到达目的地或接收端机器后,这个过程被翻过来。
另外,在通信会话过程中,还需要其他功能,这些功能使得源端和目的端的计算机通过
协同努力可以保证数据完全到达,这些功能包括:
• 将传输数据流规范化,以保证接收机器和网络不会拥塞。
• 利用某种算法检查接收到的数据,以保证数据在传输过程中没有损坏。
• 对没有到达的数据包或者到达时损坏的数据包进行协调重发。
• 最后,数据的接收方必须将各段数据重新组合成接收端应用程序认识的格式。从接收端
应用的角度来看,接收到的数据应与发送方应用发出的数据完全一样。换句话说,两个
应用所表现出的应该是在两者之间直接通信,这就是所谓的逻辑链接(logical adjacency)。
2使用第一部分T C P / I P基础
下载
或许用于解释通信分层模型(包括逻辑链接)的最好工具就是O S I参考模型。
1.1.2参OSI参考模型
国际标准化组织( I S O )开发了开放式系统互联( O S I )参考模型,以促进计算机系统的开放互
联。开放式互联就是可在多个厂家的环境中支持互联。该模型为计算机间开放式通信所需要
定义的功能层次建立了全球标准。
当O S I参考模型在2 0年前被开发出来时,它被认为是非常激进的。要知道,那个时代的计
算机产业将用户锁定在专利私有产品的单一厂家体系结构中。开放式通信被看作向竞争发出
的邀请。从生产制造商的角度看,是不期望竞争的。因此,所有的功能都被尽可能紧密地结
合在一起。功能模块或者层次概念似乎不符合任何制造商的需求。
该模型很成功地达到了它最初的目的:将它自己付诸讨论通过。至此,早先的专利极端
集成方式已经消失了。今天,开放式通信是必需的,令人惊奇的是,很少有产品是完全的O S I
模式;相反,其基本层次框架常常满足新标准。然而, O S I参考模型为示范网络的功能结构提
供了可行的机制。
尽管O S I参考模型是成功的,但对它却有大量的误解。因此,本节将对该模型进行一下概
述,以澄清这些误解。
第一个误解就是O S I参考模型是由ISO(International Standards Org a n i z a t i o n )开发的,其实
不是。O S I参考模型是由国际标准化组织(Internet Organization for Standardization,I S O )开发
的,该组织更愿意使用可帮助记忆的缩写而不是词首字母缩写。可帮助记忆的缩写是以希腊
字母为基础的,而i s o s,意思就是平等或标准。
O S I模型将通信会话需要的各种进程划分成7个相对独立的功能层次,这些层次的组织是
以在一个通信会话中事件发生的自然顺序为基础的。
图1 - 1描述了O S I,1 ~ 3层提供了网络访问, 4 ~ 7层用于支持端端通信。
1. 物理层
最底层称为物理层(Physical Layer),这一层负责传送比
特流,它从第二层数据链路层( D D L )接收数据帧,并将帧的
结构和内容串行发送即每次发送一个比特,然后这些数据流
被传输给D L L重新组合成数据帧。
从字面上看,物理层只能看见0和1,它没有一种机制用
于确定自己所传输和发送比特流的含义,而只与电信号技术
和光信号技术的物理特征相关。这些特征包括用于传输信号
电流的电压、介质类型以及阻抗特征,甚至包括用于终止介
质的连接器的物理形状。
对O S I第一层,人们常常有这样的误解:就是认为O S I第
一层应该包括所有产生或发送通信数据信号的机制。其实并
非如此, O S I第一层只是一个功能模型,物理层只是一种处
理过程和机制,这种过程和机制用于将信号放到传输介质上
以及从介质上收到信号。它较低层的边界是连向传输介质的物理连接器,但并不包含传输介
质。
第1章开放式通信模型简介使用3
下载
图1-1 OSI参考模型
O S I参考模型层
次描述
应用层7
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
O S I层
次号
传输介质包含真正用于传输由O S I第一层机制所产生信号的任何方法。一些传输介质是同
轴电缆、光纤、双绞线等。人们之所以感到迷惑,主要是因为物理层对介质的性能没有提出
任何规范。介质的性能特征对于物理层定义的过程和机制是需要并假定存在的。
因此,传输介质处于物理层之外,有时被称为OSI 参考模型的第0层。
2. 数据链路层( D L L )
OSI 参考模型的第二层称为数据链路层( D L L )。与所有其他层一样,它肩负两个责任:发
送和接收。它还要提供数据有效传输的端端(端到端)连接。
在发送方, D L L需负责将指令、数据等包装到帧中,帧( f r a m e )是D L L层生成的结构,它
包含足够的信息,确保数据可以安全地通过本地局域网到达目的地。
成功发送意味着数据帧要完整无缺地到达目的地。也就是说,帧中必须包含一种机制用
于保证在传送过程中内容的完整性。
为确保数据传送完整安全到达,必须要做到两点:
• 在每个帧完整无缺地被目标节点收到时,源节点必须收到一个响应。
• 在目标节点发出收到帧的响应之前,必须验证帧内容的完整性。
有很多情况可以导致帧的发送不能到达目标或者在传输过程中被破坏或不能使用。D L L
有责任检测并修正所有这些错误。
D L L的另一个职责是重新组织从物理层收到的数据比特流。不过,如果帧的结构和内容
都被发出, D L L并不重建一个帧。相反,它缓存到达的比特流直到这些比特流构成一个完整
的帧。
不论哪种类型的通信都要求有第一层和第二层的参与,不管是局域网( L A N )还是广域网
( WA N )都是如此。
3. 网络层
网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误
检测和修正机制,因此,网络层必须依赖于端端之间的由D L L提供的可靠传输服务。
网络层用于本地L A N网段之上的计算机系统建立通信,它之所以可以这样做,是因为它
有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由
或可路由协议。路由协议包括I P、N o v e l l公司的I P X以及A p p l e Ta l k协议。本书将着重讲述I P协
议以及与其相关的协议和应用。
网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情
况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。例如,当两台
主机处于同一个L A N网段的直接相连这种情况,它们之间的通信只使用L A N的通信机制就可
以了(即OSI 参考模型的一二层)。
4. 传输层
传输层提供类似于D L L所提供的服务,传输层的职责也是保证数据在端端之间完整传输,
不过与D L L不同,传输层的功能是在本地L A N网段之上提供这种功能,它可以检测到路由器
丢弃的包,然后自动产生一个重新传输请求。
传输层的另一项重要功能就是将乱序收到的数据包重新排序,数据包乱序有很多原因。
例如,这些包可能通过网络的路径不同,或者有些在传输过程中被破坏。不管是什么情况,
传输层应该可以识别出最初的包顺序,并且在将这些包的内容传递给会话层之前要将它们恢
4使用第一部分T C P / I P基础
下载
复成发送时的顺序。
5. 会话层
O S I的第五层是会话层,相对而言,这一层没有太大用处,很多协议都将这一层的功能与
传输层捆绑在一起。
O S I会话层的功能主要是用于管理两个计算机系统连接间的通信流。通信流称为会话,它
决定了通信是单工还是双工。它也保证了接受一个新请求一定在另一请求完成之后。
6. 表示层
表示层负责管理数据编码方式,不是所有计算机系统都使用相同的数据编码方式,表示
层的职责就是在可能不兼容的数据编码方式,例如在A S C I I和E B C D I C之间,提供翻译。
表示层可以用在浮点格式间的调整转换并提供加密解密服务。
7. 应用层
OSI 参考模型的最顶层是应用层,尽管它称为应用层,但它并不包含任何用户应用。相
反,它只在那些应用和网络服务间提供接口。
这一层可以看成是初始化通信会话的起因。例如,邮件客户可能会产生一个从邮件服务
器检索新消息的请求,客户端应用自动向与之相关的第七层协议发出请求,并产生通信会话,
以获取所需要的文件。
1.1.3 模型的使用
垂直方向的结构层次是当今普遍认可的数据处理的功能流程。每一层都有与其相邻层的
接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程
与真正的数据流的不同如图1 - 2所示。
图1-2 在通信层之间数据逻辑流程和真实流程之间的对比
注意虽然O S I参考模型包含七层,但对任何给定的通信会话,并不是所有七层都必须
参与。例如,通过单个L A N网段的通信可以直接在模型的1、2层操作而不需要其他两
个通信层。
第1章开放式通信模型简介使用5
下载
O S I
层数
O S I参考模型
层描述
O S I参考模型层
描述
应用层7
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
O S I
层数
7 应用层
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
逻辑流
真实数据流
虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应
层直接通信。为创建这种层次间的逻辑连接,引发通信机器的每一层协议都要在数据报文前
增加报文头。该报文头只能被其他计算机的相应层识别和使用。接收端机器的协议层删去报
文头,每一层都删去该层负责的报文头,最后将数据传向它的应用,过程如图1 - 3所示。
图1-3 为支持逻辑连接而使用的协议层报文头
例如,通信源发送方机器的第四层为第三层将数据段打包。第三层将从第四层收到的数
据再次打包,也就是第三层将数据打包并编址然后通过它自己的第二层将它们发向目标机器
的第三层协议。第二层将数据包分解为帧,完善它们的编址(使其可以为L A N识别)。这些数
据帧被提供给第一层,由第一层将其转换为二进制比特流,这些二进制比特流被发向目标机
器的第一层。
目标机器将这些一个接一个的流程完全翻过来进行,并在源机器每一层相对应的协议层
上将各层增加的报文头去掉。到此,数据到达目标机器的第四层,数据形式也回到源发送方
机器在第四层时的形式。因此,这两个第四层协议看起来好像是物理连接并可以直接通信。
注意请注意,实际上今天大部分网络都使用自己的分层模型,这些模型实际上是O S I
参考模型的变型,它们在一定程度上对O S I参考模型所描述的功能划分做了一些更改。
这些模型中最常见到的一种情况就是将O S I参考模型的七层结构变成五层或更少。另外
一种常见情况就是模型中的较高层与OSI模型中的相应层并不很一致。
事实上,每个第三层都将数据向下传到第二层,第二层顺序往下将帧转换为比特流。当
目标机器的第一层收到比特流,它将比特流传向第二层D L L,由D L L将其组合成帧。当成功
6使用第一部分T C P / I P基础
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
头
第7层
头
第6层
头
第6层
头
第5层
头
第4层
头
第4层
头
第3层
头
第3层
头
第2层
头
第2层
头
第1层
头
第3层
头
第4层
头
第4层
头
第5层
头
第5层
头
第5层
头
第5层
头
第6层
头
第6层
头
第6层
头
第6层
头
第7层
头
第7层
头
第7层
头
第7层
头
第7层
头
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
头
第7层
头
第7层
头
第6层
头
第6层
头
第6层
头
第5层
头
第5层
头
第4层
头
第4层
头
第3层
头
第3层
头
第3层
头
第2层
头
第2层
头
第1层
头
第4层
头
第4层
头
第5层
头
第5层
头
第5层
头
第6层
头
第6层
头
第6层
头
第7层
头
第7层
头
第7层
头
第7层
头
应用层
表示层
会话层
传输层
网络层
数据链
路层
物理层
下载
完成帧接收后,帧的报文头被去掉并将嵌入的数据包提取出传向接收方的第三层。数据包到
达接收方第三层时与其从发送方第三层发出时的格式内容完全相同。因此对于第三层,它们
之间的通信是虚拟直接相连的。
事实上,在相关层之间,从那些层的角度来看,通信像是直接发生在对应层之间,这正
是O S I参考模型的成功之处。
虽然O S I参考模型最初的设计目标是为开放式通信协议设计一个体系结构框架,但它实际
上并没有达到这一目标。实际上,这一目标现在已经完全被变成仅仅是一个学术结构。到现
在为止,该模型是一个非常完美的用于解释开放式通信概念的方式,并是在一个数据通信会
话中所必需功能的逻辑顺序。另外还有一个有意义的参考模型—T C P / I P参考模型,该模型
描述了I P协议栈,这是本书的重点。
1.2 TCP/IP参考模型
与O S I参考模型不同,T C P / I P模型更侧重于互联设备间的数据传送,而不是严格的功能层
次划分。它通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留
下很大的余地。因此, O S I参考模型在解释互联网络通信机制上比较适合,但T C P / I P成为了互
联网络协议的市场标准。
T C P / I P参考模型比O S I模型更灵活,图1 - 4对此有所描述。
图1-4 OSI参考模型和TCP/IP参考模型比较
T C P / I P参考模型是在它所解释的协议出现很久以后才发展起来的,更重要的是,由于它
更强调功能分布而不是严格的功能层次的划分,因此它比O S I模型更灵活。
1.3 小结
本章讲述了基本网络概念,关于它们的功能甚至使用都只是提了个头。对于基本网络中
公认的模块将在本书剩下的部分中详细讲解。本章只是向读者提供了开放式网络的基本术语
和概念。
第2章“ T C P / I P和I n t e r n e t”将通过描述用于I n t e r n e t的T C P / I P的规则为读者构筑有关
T C P / I P总体框架的知识,包括用于保持T C P / I P不断更新的各种机制, O S I参考模型和T C P / I P
参考模型都会在本书涉及。
第1章开放式通信模型简介使用7
下载
O S I参考模型
层描述
T C P / I P层
描述
应用层
表示层
会话层
传输层
数据链路层
物理层
网络层
进程/应用层
O S I
层号
7
6
5
4
3
2
1
主机到主机层
网际层
网络访问层
本部分内容包括:
• 开放式通信模型简介
• TCP/IP和I n t e r n e t
• TCP/IP概述
第1章开放式通信模型简介
作者:Mark A. Sportack
本章内容包括:
• 开放式网络的发展
• TCP/IP参考模型
毫无疑问, T C P / I P (通常它是指传输控制协议/网际协议, Transmission Control
Protocol/Internet Protocol)是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式
网络系统I n t e r n e t之上就是其成功的明证。I n t e r n e t最初的设计是为了满足美国国防的需要,具体
来讲就是使美国政府即使在遭受核打击时也能保证通信不间断, T C P / I P就是用于这个目的的。
今天,I n t e r n e t已经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但
其最初的所有质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传
输数据、自动检测和避免网络发生错误的能力。更重要的就是T C P / I P是一个开放式通信协议,
开放性意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。
本章解释了开放通信是如何产生的,以及开放式数据通信的概念,本章还介绍了两个层
次模型,正是这两个模型使得开放式数据通信成为可能。这两个模型是开放式系统互联( O p e n
Systems Interconnect,O S I )参考模型和T C P / I P参考模型。这些模型通过将网络分为各种功能
模块,从而大大提高了网络的可理解程度。这些模块被分为层。这些层次的命令以及开放通
信的概念,为T C P / I P各种组件和使用的更广泛探索提供了场景和依据。
1.1 开放式网络的发展
最初的网络与计算解决方案一起是一个享有很高专利权的互联解决方案,这个方案几乎
是一个完整的专利。个人计算机出现前,如果某个公司想使他们的数据处理和记帐功能自动
化,就必须为其监管系统与某个厂家联系,而且只能与单一厂家联系。
在该专利中,单一厂家产品环境下,应用软件只执行在由单个操作系统支持的平台上,
操作系统只能安全地执行在相同厂家的硬件产品之上,甚至用户的终端设备和与计算机进行
连接的设备都必须是同一厂家产品的完整解决方案的一部分。
第一部分T C P / I P基础
在单一厂家、完整解决方案时代,美国国防部( D o D )声称需要一个健壮可靠的通信网络,
该网络应该可以把所需要的所有计算机(包括所有被接纳为会员的组织所拥有的计算机)互联起
来。这些会员包括大学、智能坦克和国防项目的承包人。这听起来不像是一个完整系统,但
它确实是一个大型系统。在计算机的发展初期,制造商所开发的硬件、软件和网络平台是紧
密结合的、非开放式系统。一个用户在一个平台上很难共享另一用户在不同计算平台上的数
据。因为制造商想靠此永久留住用户。
让所有D o D的子机构和承包商的研究组织都使用某一厂商的设备是极不现实的。这样,在不
同平台间的通信方案就应运而生。结果就诞生了世界上第一个开放通信协议—网际协议( I P )。
因此,一个开放式网络是一种使得在两台不同计算机之间通信和共享数据成为可能的方
式。开放性是通过合作开发和技术规范的维护而达到的。这些技术规范,也称为开放式标准,
是完全公开的。
1.1.1 通信处理层次化
开放式通信的关键在于理解所有对两端系统相互之间通信和共享数据所必需的功能。这
些必需的功能以及建立它们必须发生的先后顺序是开放式通信的基础,只有两端系统对如何
通信达成一致,它们才可能通信。也就是说,它们必须在从应用取得数据和为通过网络传输
将数据打包这些动作上遵守相同的过程。其中,不管是多么细节、细小的问题都不能忽略,
必须做到完全一致。
幸运的是,一个通信会话中所必需的事件在逻辑上存在一定的顺序。按完全的最小分割,
这些事件包括如下任务:
• 数据必须从它的应用向下传给一个通信进程(称为一个协议( p r o t o c o l ) )。
• 通信协议必须为通过许多类型网络的传输准备应用数据。这通常意味着数据必须被分割
为更多可管理的块。
• 分段的数据必须包装在一个数据结构中,以便于通过网络传送到某个指定设备。这意味
着数据必须被包装成某种形式,而这种形式所包含的信息应该可以使得任何网络上的计
算机设备可以识别出数据包来自何方,到哪里去。该结构可能是一个帧、一个数据包或
者一个单元,这与使用何种协议有关。
• 为传输需要,这些帧和数据包必须被转换成物理位流。这些位流可以被转换成光纤网
(如F D D I )上的光脉冲或者通过电子网络传输的电子信号状态(如以太网,或其他任何以
电信号通过金属导线传输的网络)。
到达目的地或接收端机器后,这个过程被翻过来。
另外,在通信会话过程中,还需要其他功能,这些功能使得源端和目的端的计算机通过
协同努力可以保证数据完全到达,这些功能包括:
• 将传输数据流规范化,以保证接收机器和网络不会拥塞。
• 利用某种算法检查接收到的数据,以保证数据在传输过程中没有损坏。
• 对没有到达的数据包或者到达时损坏的数据包进行协调重发。
• 最后,数据的接收方必须将各段数据重新组合成接收端应用程序认识的格式。从接收端
应用的角度来看,接收到的数据应与发送方应用发出的数据完全一样。换句话说,两个
应用所表现出的应该是在两者之间直接通信,这就是所谓的逻辑链接(logical adjacency)。
2使用第一部分T C P / I P基础
下载
或许用于解释通信分层模型(包括逻辑链接)的最好工具就是O S I参考模型。
1.1.2参OSI参考模型
国际标准化组织( I S O )开发了开放式系统互联( O S I )参考模型,以促进计算机系统的开放互
联。开放式互联就是可在多个厂家的环境中支持互联。该模型为计算机间开放式通信所需要
定义的功能层次建立了全球标准。
当O S I参考模型在2 0年前被开发出来时,它被认为是非常激进的。要知道,那个时代的计
算机产业将用户锁定在专利私有产品的单一厂家体系结构中。开放式通信被看作向竞争发出
的邀请。从生产制造商的角度看,是不期望竞争的。因此,所有的功能都被尽可能紧密地结
合在一起。功能模块或者层次概念似乎不符合任何制造商的需求。
该模型很成功地达到了它最初的目的:将它自己付诸讨论通过。至此,早先的专利极端
集成方式已经消失了。今天,开放式通信是必需的,令人惊奇的是,很少有产品是完全的O S I
模式;相反,其基本层次框架常常满足新标准。然而, O S I参考模型为示范网络的功能结构提
供了可行的机制。
尽管O S I参考模型是成功的,但对它却有大量的误解。因此,本节将对该模型进行一下概
述,以澄清这些误解。
第一个误解就是O S I参考模型是由ISO(International Standards Org a n i z a t i o n )开发的,其实
不是。O S I参考模型是由国际标准化组织(Internet Organization for Standardization,I S O )开发
的,该组织更愿意使用可帮助记忆的缩写而不是词首字母缩写。可帮助记忆的缩写是以希腊
字母为基础的,而i s o s,意思就是平等或标准。
O S I模型将通信会话需要的各种进程划分成7个相对独立的功能层次,这些层次的组织是
以在一个通信会话中事件发生的自然顺序为基础的。
图1 - 1描述了O S I,1 ~ 3层提供了网络访问, 4 ~ 7层用于支持端端通信。
1. 物理层
最底层称为物理层(Physical Layer),这一层负责传送比
特流,它从第二层数据链路层( D D L )接收数据帧,并将帧的
结构和内容串行发送即每次发送一个比特,然后这些数据流
被传输给D L L重新组合成数据帧。
从字面上看,物理层只能看见0和1,它没有一种机制用
于确定自己所传输和发送比特流的含义,而只与电信号技术
和光信号技术的物理特征相关。这些特征包括用于传输信号
电流的电压、介质类型以及阻抗特征,甚至包括用于终止介
质的连接器的物理形状。
对O S I第一层,人们常常有这样的误解:就是认为O S I第
一层应该包括所有产生或发送通信数据信号的机制。其实并
非如此, O S I第一层只是一个功能模型,物理层只是一种处
理过程和机制,这种过程和机制用于将信号放到传输介质上
以及从介质上收到信号。它较低层的边界是连向传输介质的物理连接器,但并不包含传输介
质。
第1章开放式通信模型简介使用3
下载
图1-1 OSI参考模型
O S I参考模型层
次描述
应用层7
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
O S I层
次号
传输介质包含真正用于传输由O S I第一层机制所产生信号的任何方法。一些传输介质是同
轴电缆、光纤、双绞线等。人们之所以感到迷惑,主要是因为物理层对介质的性能没有提出
任何规范。介质的性能特征对于物理层定义的过程和机制是需要并假定存在的。
因此,传输介质处于物理层之外,有时被称为OSI 参考模型的第0层。
2. 数据链路层( D L L )
OSI 参考模型的第二层称为数据链路层( D L L )。与所有其他层一样,它肩负两个责任:发
送和接收。它还要提供数据有效传输的端端(端到端)连接。
在发送方, D L L需负责将指令、数据等包装到帧中,帧( f r a m e )是D L L层生成的结构,它
包含足够的信息,确保数据可以安全地通过本地局域网到达目的地。
成功发送意味着数据帧要完整无缺地到达目的地。也就是说,帧中必须包含一种机制用
于保证在传送过程中内容的完整性。
为确保数据传送完整安全到达,必须要做到两点:
• 在每个帧完整无缺地被目标节点收到时,源节点必须收到一个响应。
• 在目标节点发出收到帧的响应之前,必须验证帧内容的完整性。
有很多情况可以导致帧的发送不能到达目标或者在传输过程中被破坏或不能使用。D L L
有责任检测并修正所有这些错误。
D L L的另一个职责是重新组织从物理层收到的数据比特流。不过,如果帧的结构和内容
都被发出, D L L并不重建一个帧。相反,它缓存到达的比特流直到这些比特流构成一个完整
的帧。
不论哪种类型的通信都要求有第一层和第二层的参与,不管是局域网( L A N )还是广域网
( WA N )都是如此。
3. 网络层
网络层负责在源机器和目标机器之间建立它们所使用的路由。这一层本身没有任何错误
检测和修正机制,因此,网络层必须依赖于端端之间的由D L L提供的可靠传输服务。
网络层用于本地L A N网段之上的计算机系统建立通信,它之所以可以这样做,是因为它
有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由
或可路由协议。路由协议包括I P、N o v e l l公司的I P X以及A p p l e Ta l k协议。本书将着重讲述I P协
议以及与其相关的协议和应用。
网络层是可选的,它只用于当两个计算机系统处于不同的由路由器分割开的网段这种情
况,或者当通信应用要求某种网络层或传输层提供的服务、特性或者能力时。例如,当两台
主机处于同一个L A N网段的直接相连这种情况,它们之间的通信只使用L A N的通信机制就可
以了(即OSI 参考模型的一二层)。
4. 传输层
传输层提供类似于D L L所提供的服务,传输层的职责也是保证数据在端端之间完整传输,
不过与D L L不同,传输层的功能是在本地L A N网段之上提供这种功能,它可以检测到路由器
丢弃的包,然后自动产生一个重新传输请求。
传输层的另一项重要功能就是将乱序收到的数据包重新排序,数据包乱序有很多原因。
例如,这些包可能通过网络的路径不同,或者有些在传输过程中被破坏。不管是什么情况,
传输层应该可以识别出最初的包顺序,并且在将这些包的内容传递给会话层之前要将它们恢
4使用第一部分T C P / I P基础
下载
复成发送时的顺序。
5. 会话层
O S I的第五层是会话层,相对而言,这一层没有太大用处,很多协议都将这一层的功能与
传输层捆绑在一起。
O S I会话层的功能主要是用于管理两个计算机系统连接间的通信流。通信流称为会话,它
决定了通信是单工还是双工。它也保证了接受一个新请求一定在另一请求完成之后。
6. 表示层
表示层负责管理数据编码方式,不是所有计算机系统都使用相同的数据编码方式,表示
层的职责就是在可能不兼容的数据编码方式,例如在A S C I I和E B C D I C之间,提供翻译。
表示层可以用在浮点格式间的调整转换并提供加密解密服务。
7. 应用层
OSI 参考模型的最顶层是应用层,尽管它称为应用层,但它并不包含任何用户应用。相
反,它只在那些应用和网络服务间提供接口。
这一层可以看成是初始化通信会话的起因。例如,邮件客户可能会产生一个从邮件服务
器检索新消息的请求,客户端应用自动向与之相关的第七层协议发出请求,并产生通信会话,
以获取所需要的文件。
1.1.3 模型的使用
垂直方向的结构层次是当今普遍认可的数据处理的功能流程。每一层都有与其相邻层的
接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程
与真正的数据流的不同如图1 - 2所示。
图1-2 在通信层之间数据逻辑流程和真实流程之间的对比
注意虽然O S I参考模型包含七层,但对任何给定的通信会话,并不是所有七层都必须
参与。例如,通过单个L A N网段的通信可以直接在模型的1、2层操作而不需要其他两
个通信层。
第1章开放式通信模型简介使用5
下载
O S I
层数
O S I参考模型
层描述
O S I参考模型层
描述
应用层7
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
O S I
层数
7 应用层
6
5
4
3
2
1
表示层
会话层
传输层
网络层
数据链路层
物理层
逻辑流
真实数据流
虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应
层直接通信。为创建这种层次间的逻辑连接,引发通信机器的每一层协议都要在数据报文前
增加报文头。该报文头只能被其他计算机的相应层识别和使用。接收端机器的协议层删去报
文头,每一层都删去该层负责的报文头,最后将数据传向它的应用,过程如图1 - 3所示。
图1-3 为支持逻辑连接而使用的协议层报文头
例如,通信源发送方机器的第四层为第三层将数据段打包。第三层将从第四层收到的数
据再次打包,也就是第三层将数据打包并编址然后通过它自己的第二层将它们发向目标机器
的第三层协议。第二层将数据包分解为帧,完善它们的编址(使其可以为L A N识别)。这些数
据帧被提供给第一层,由第一层将其转换为二进制比特流,这些二进制比特流被发向目标机
器的第一层。
目标机器将这些一个接一个的流程完全翻过来进行,并在源机器每一层相对应的协议层
上将各层增加的报文头去掉。到此,数据到达目标机器的第四层,数据形式也回到源发送方
机器在第四层时的形式。因此,这两个第四层协议看起来好像是物理连接并可以直接通信。
注意请注意,实际上今天大部分网络都使用自己的分层模型,这些模型实际上是O S I
参考模型的变型,它们在一定程度上对O S I参考模型所描述的功能划分做了一些更改。
这些模型中最常见到的一种情况就是将O S I参考模型的七层结构变成五层或更少。另外
一种常见情况就是模型中的较高层与OSI模型中的相应层并不很一致。
事实上,每个第三层都将数据向下传到第二层,第二层顺序往下将帧转换为比特流。当
目标机器的第一层收到比特流,它将比特流传向第二层D L L,由D L L将其组合成帧。当成功
6使用第一部分T C P / I P基础
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
头
第7层
头
第6层
头
第6层
头
第5层
头
第4层
头
第4层
头
第3层
头
第3层
头
第2层
头
第2层
头
第1层
头
第3层
头
第4层
头
第4层
头
第5层
头
第5层
头
第5层
头
第5层
头
第6层
头
第6层
头
第6层
头
第6层
头
第7层
头
第7层
头
第7层
头
第7层
头
第7层
头
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
数据
第7层
头
第7层
头
第7层
头
第6层
头
第6层
头
第6层
头
第5层
头
第5层
头
第4层
头
第4层
头
第3层
头
第3层
头
第3层
头
第2层
头
第2层
头
第1层
头
第4层
头
第4层
头
第5层
头
第5层
头
第5层
头
第6层
头
第6层
头
第6层
头
第7层
头
第7层
头
第7层
头
第7层
头
应用层
表示层
会话层
传输层
网络层
数据链
路层
物理层
下载
完成帧接收后,帧的报文头被去掉并将嵌入的数据包提取出传向接收方的第三层。数据包到
达接收方第三层时与其从发送方第三层发出时的格式内容完全相同。因此对于第三层,它们
之间的通信是虚拟直接相连的。
事实上,在相关层之间,从那些层的角度来看,通信像是直接发生在对应层之间,这正
是O S I参考模型的成功之处。
虽然O S I参考模型最初的设计目标是为开放式通信协议设计一个体系结构框架,但它实际
上并没有达到这一目标。实际上,这一目标现在已经完全被变成仅仅是一个学术结构。到现
在为止,该模型是一个非常完美的用于解释开放式通信概念的方式,并是在一个数据通信会
话中所必需功能的逻辑顺序。另外还有一个有意义的参考模型—T C P / I P参考模型,该模型
描述了I P协议栈,这是本书的重点。
1.2 TCP/IP参考模型
与O S I参考模型不同,T C P / I P模型更侧重于互联设备间的数据传送,而不是严格的功能层
次划分。它通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留
下很大的余地。因此, O S I参考模型在解释互联网络通信机制上比较适合,但T C P / I P成为了互
联网络协议的市场标准。
T C P / I P参考模型比O S I模型更灵活,图1 - 4对此有所描述。
图1-4 OSI参考模型和TCP/IP参考模型比较
T C P / I P参考模型是在它所解释的协议出现很久以后才发展起来的,更重要的是,由于它
更强调功能分布而不是严格的功能层次的划分,因此它比O S I模型更灵活。
1.3 小结
本章讲述了基本网络概念,关于它们的功能甚至使用都只是提了个头。对于基本网络中
公认的模块将在本书剩下的部分中详细讲解。本章只是向读者提供了开放式网络的基本术语
和概念。
第2章“ T C P / I P和I n t e r n e t”将通过描述用于I n t e r n e t的T C P / I P的规则为读者构筑有关
T C P / I P总体框架的知识,包括用于保持T C P / I P不断更新的各种机制, O S I参考模型和T C P / I P
参考模型都会在本书涉及。
第1章开放式通信模型简介使用7
下载
O S I参考模型
层描述
T C P / I P层
描述
应用层
表示层
会话层
传输层
数据链路层
物理层
网络层
进程/应用层
O S I
层号
7
6
5
4
3
2
1
主机到主机层
网际层
网络访问层