1.2 计算机网络体系结构
1.2.1 网络分层的必要性
计算机网络是一个非常复杂的系统。若两台计算机进行通信必须有一条传送数据的通路,但还远远不够,至少还有以下工作要做:
⊙ 发起通信的计算机必须将数据通信的通路进行激活。
⊙ 告诉网络如何识别接收数据的计算机。
⊙ 发起通信的计算机必须查明对方计算机是否已准备好接收数据。
⊙ 发起通信的计算机必须清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
⊙ 若两个计算机的文件格式不兼容,则至少其中的一台计算机能完成格式转换。
⊙ 对出现的各种差错和意外事故,应有可靠的措施保证对方计算机最终能收到正确的文件。
上面的例子足以说明计算机网络通信的复杂性了,为了将复杂的问题简单化,便于网络的设计和管理,1974年IBM公司宣布了研制的系统网络体系结构SNA,这个网络标准就是按照分层的方法制定的。网络分层以后,使得某公司所生产的各种设备都能够很容易地互连成网络。但由于用户一旦购买了某个公司的网络产品后,若需扩大网络只能购买原公司的产品。为此,ISO(国际化标准组织)于1978年定义了OSI参考模型,使得各个公司的产品能互相兼容。
1.2.2 OSI参考模型
OSI参考模型即开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。这是一个开放协议标准,使各网络设备厂商可以遵照共同的标准来开发网络产品,最终实现彼此兼容。整个OSI参考模型共分7层,如图1-4所示,从下往上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每层都为上一层提供服务。
图1-4 ISO参考模型
(1)物理层
物理层是整个OSI/RM的最低层,它的任务就是提供网络的物理连接。所以,物理层建立在物理介质上(而不是逻辑上的协议和会话),提供的是机械和电气接口,主要包括电缆、物理端口和附属设备,如双绞线、同轴电缆、接线设备(如网卡等)、RJ-45接口、串口和并口等在网络中都工作在该层上。
物理层提供的服务包括:物理连接、物理服务数据单元顺序化(接收物理实体收到的比特顺序,与发送物理实体所发送的比特顺序相同)和数据电路标识。
(2)数据链路层
数据链路层建立在物理传输能力的基础上,以帧为单位传输数据,其主要任务是进行数据封装和数据链接的建立。在封装的数据信息中,地址段含有发送节点和接收节点的地址,控制段用来表示数据连接帧的类型,数据段包含实际要传输的数据,差错控制段用来检测传输中帧出现的错误。数据链路层可使用的协议有SLIP、PPP、X.25和帧中继等。交换机工作在数据链路层上,工作在该层上的交换机俗称“第二层交换机”。Modem之类的拨号设备也工作在数据链路层上。
数据链路层的功能包括:数据链路连接的建立与释放,构成数据链路数据单元,数据链路连接的分裂、定界和同步,顺序和流量控制,差错的检测和恢复等。例如,在大多数系统上,NIC的驱动程序执行在此层,MAC地址属于数据链路层。
(3)网络层
网络层属于OSI/RM中的较高层次,解决的是网络与网络之间即网际通信的问题,而不是同一网段内部的问题。
网络层的主要功能是提供路由,即选择到达目标主机的最佳路径,并沿该路径传输数据包。除此之外,网络层还应能够消除网络拥挤,具有流量控制和拥挤控制的能力。网络边界中的路由器就工作在网络层上,现在较高档的交换机也可直接工作在网络层上,因为它们也提供了路由功能,这类交换机俗称“第三层交换机”。网络层的功能还包括:建立和拆除网络连接,路径选择和中继,网络连接多路复用,分段和组块,服务选择和传输及流量控制等。
(4)传输层
传输层解决的是数据在网络之间的传输质量问题,属于较高层次。传输层用于提高网络层服务质量,提供可靠的端到端的数据传输,如常说的QoS(Quality of Service,服务质量)就是传输层的主要服务。传输层主要涉及的是网络传输协议,提供的是一套网络数据传输标准,如TCP协议。传输层的功能包括:映像传输地址到网络地址,多路复用与分割,传输连接的建立和释放,分段和重新组装,组块和分块。
(5)会话层
会话层利用传输层来提供会话服务,会话可能是一个用户通过网络登录到一个主机,或者是一个正在建立的用于传输文件的会话。
会话层的功能主要有:会话连接到传输连接的映射,数据传输,会话连接的恢复和释放,会话管理,令牌管理和活动管理。
(6)表示层
表示层用于数据管理的表示方式,如用于文本文件的ASCII码和BCD码,用于表示数字的1S或2S补码表示形式。如果通信双方用不同的数据表示方法,它们就不能互相理解。表示层就是用于屏蔽这种不同之处。
表示层的功能主要有:数据语法转换,语法表示,表示连接管理,数据加密和数据压缩。
(7)应用层
应用层是OSI/RM的最高层,解决的也是最高层次即程序应用过程中的问题,直接面对用户的具体应用。应用层包含用户应用程序执行通信任务所需要的协议和功能,如电子邮件和文件传输等。在该层,TCP/IP协议中的FTP、SMTP、POP等协议得到了充分应用。
1.2.3 TCP/IP体系结构及功能
TCP/IP参考模型是一个抽象的分层模型,包括:应用层(Application Layer)、传输层(Transport Layer)、网络层(Internet Layer)和网络接口层(Network Interface Layer),如图1-5所示。所有的TCP/IP系列网络协议都被归类到这4层中。完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中,因此又称它们为TCP/IP协议族。
图1-5 TCP/IP的4层模型
(1)网络接口层
网络接口层也称为链路层(Link Layer),不属于TCP/IP协议族的范围,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他传输媒介)的物理接口细节。
常用的网络接口层技术有:Ethernet(以太网)、Token Ring(令牌环)、FDDI(光纤数据分布接口)、PPP(端对端协议)、X.25,Frame Relay(帧中继)、ATM和Sonet SDH等。
(2)网络层
网络层也称为互联网层,负责处理数据分组在网络中的活动,转发和路由。在TCP/IP协议族中,网络层协议包括IP(网际协议)、ICMP(Internet控制报文协议)、IGMP(Internet组管理协议)、RIP、OSPF、BGP、ARP、RARP等。
(3)传输层
传输层主要为两台主机上的应用程序提供端到端的通信。传输层协议包括TCP(传输控制协议)和UDP(用户数据报协议)。
TCP协议为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块,交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。UDP则为应用层提供一种非常简单的服务,只是把称为数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。这两种运输层协议分别在不同的应用程序中有不同的用途。
(4)应用层
应用层负责处理特定的应用程序细节,为用户提供所需要的各种服务。
应用层提供的主要服务:远程登录,用户可使用异地主机;文件传输,用户在不同主机之间传输文件;电子邮件,用户可通过主机和终端互相发送信件;Web服务器,发布和访问具有超文本格式HTML的各种信息。该层包括的协议有HTTP、TELNET、FTP、SMTP、DNS、SNMP等。
1.2.4 OSI和TCP/IP模型的比较
产生背景:OSI/RM是由ISO制定的一个参考模型,提供了一个参考建议;TCP/IP是产生于早期ARPANET的一组协议,但由于各厂家主动遵守而变成了一个事实上的工业标准。
共同点:解决异构网络的互连问题;采用了分层结构的思想;各层次的划分和所应用的协议功能大体相同。
不同点:
⊙ OSI参考模型体系结构清晰;TCP/I模型把功能描述与实现细节混杂起来。如要分析更普遍的网络通信问题,ISO的OSI参考模型能起到更好的效果。
⊙ OSI详细地定义和划分了各层次的功能,特别是区分了物理层和数据链路层;TCP/IP只用一个网络接口层来代替。
⊙ OSI提供面向连接和面向无连接的服务,提供较高的可靠性;TCP/IP降低了可靠性。
⊙ OSI造成了协议复杂、效率低下和实现困难;TCP/IP设计目的单一,协议简单而有效,可操作性强。