2.3 ISO/OSI参考模型***
前一节讨论了协议分层和网络体系结构,本节将分析和讨论一个重要的网络体系结构,即ISO/OSI参考模型。在网络发展的初期,许多研究机构、计算机厂商和公司都大力发展计算机网络。从ARPANET出现至今,已经推出了许多商品化的网络系统。这种自行发展的网络,在体系结构上差异很大,以至于它们之间互不相容,难以相互连接以构成更大的网络系统。为此,许多标准化组织和委员会积极开展了网络体系结构标准化方面的工作,包括:国际标准化组织(ISO)、电气和电子工程师协会(IEEE)、美国国家标准学会(ANSI)、国际电信联盟(ITU)、电子工业联盟/电信工业协会(EIA/TIA)等。其中最为著名的就是国际标准化组织(ISO)提出的开放系统互连参考模型(OSI)。OSI 参考模型是研究如何把开放式系统(即为了与其他系统通信而相互开放的系统)连接起来的标准,该模型的最大作用就是促成了不同厂商之间的协同工作。
OSI参考模型将计算机网络分为7层,如图2-3-1所示。本节将从最低层开始,依次讨论模型的各层所要完成的功能。
图2-3-1 OSI七层模型
2.3.1 物理层***
1.物理层(Physical Layer)的功能
物理层的主要功能是完成相邻结点之间原始比特流的传输,控制数据怎样被放置到通信介质上。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“1”和“0”;一位持续的时间多长;数据传输是否可同时在两个方向上进行;最初的连接如何建立和完成通信后连接如何终止;物理接口(插头和插座)有多少针以及各针的用处。物理层的设计主要涉及物理层接口的机械、电气、功能和过程特性,以及物理层接口连接的传输介质等问题,物理层的设计还涉及通信工程领域内的一些问题。
2.物理层的主要网络设备
(1)中继器(Repeater)
中继器是连接网络线路的一种装置,常用于两个网络结点之间物理信号的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个结点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的。它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同。一般情况下,中继器的两端连接的是相同的媒体,但有的中继器也可以完成不同媒体的转接工作。从理论上讲中继器的使用是无限的,网络也因此可以无限延长。事实上这是不可能的,因为网络标准中都对信号的延迟范围作了具体的规定,中继器只能在此规定范围内进行有效的工作,否则会引起网络故障。
前面介绍过双绞线理论上的最大传输距离是100m,如果超过100m,由于信号的衰减,很难保证信息传输的正确性,可以使用中继器来延长传输的距离。中继器仅适用于以太网,可将两段或两段以上(使用多个中继器)的以太网互连起来。
(2)集线器(Hub)
集线器相当于多端口的中继器,也可以把信号整形、放大后发送到所有结点上。我们知道在环型网络中只存在一个物理信号传输通道,都是通过一条传输介质来传输的,这样就存在各结点争抢信道的矛盾,传输效率较低。引入集线器这一网络设备后,每一个工作站是用它自己专用的传输介质连接到集线器的,各结点间不再只有一个传输通道,各结点发回来的信号通过集线器集中,集线器再把信号整形、放大后发送到所有结点上,这样至少在上行通道上不再出现碰撞现象。但基于集线器的网络仍然是一个共享介质的局域网,这里的“共享”其实就是集线器内部总线,所以当上行通道与下行通道同时发送数据时仍然会存在信号碰撞现象。当集线器在其内部端口检测到碰撞时,产生碰撞强化信号向集线器所连接的所有端口进行传送。这时所有数据都将不能发送成功。我们可以用一个形象的现实情形来说明,那就是单车道上同时有两个方向的车驶来。我们知道,单车道上通常只允许一个行驶方向的车通过,但是在小城镇,条件有限通常没有这样的规定,单车道也很有可能允许两个行驶方向的车通过,但是必须是不同时刻经过。在集线器中也一样,虽然各结点与集线器的连接已有各自独立的通道,但是在集线器内部却只有一个共同的通道,上、下行数据都必须通过这个共享通道发送和接收数据,这样有可能像单车道一样,当上、下行通道同时有数据发送时,就可能出现塞车现象。
正因为集线器的这一不足之处,所以它不能单独应用于较大网络中(通常是与交换机等设备一起分担小部分的网络通信负荷),就像在大城市中心不能有单车道一样,因为网络越大,出现网络碰撞现象的机会就越大。也正因如此,集线器的数据传输效率是比较低的,因为它在同一时刻只能有一个方向的数据传输,也就是所谓的“半双工”方式。生活中最常见的使用“半双工”方式工作的设备有对讲机,按下通话键时,可以讲话,但不能接收;松开通话键,可以接收,但不能说话。生活中的电话采用的是“双工”工作方式,可以同时说话和听话;而收音机采用的则是“单工”方式,永远只能是接收,单方向传输。如果网络中要选用集线器作为单一的连接设备,那么网络的规模最好在 10 台以内,而且集线器带宽应为10/100Mb/s以上。
集线器除了共享带宽这一不足之处外,还有另一个方面的不足必须要考虑,那就是它的广播工作方式。因为集线器属于OSI七层模型的物理层,基本上不具有“智能”的能力,更别说“学习”功能了。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说,当它要向某结点发送数据时,不是直接把数据发送到目的结点,而是把数据包发送到与集线器相连的所有结点。如图2-3-2所示,源主机PC-A需要发送数据到目的主机PC-B,PC-A把数据包发往集线器,集线器从端口1收到数据包后,然后把该数据包复制,并把信号放大后从端口2、3、4发送出去,尽管PC-C和PC-D不是目的主机,它们也会收到PC-A给PC-B发的数据包。所有通过集线器(不管有多少个集线器)互连的网络属于同一个网络,只有一个广播域、一个冲突域。
图2-3-2 集线器的工作原理
这种广播发送数据的方式有两方面不足:第一,用户数据包向所有结点发送,很可能带来数据通信的不安全因素,一些别有用心的人很容易就能截获他人的数据包;第二,由于所有数据包都是向所有结点同时发送,加之以上所介绍的共享带宽方式,就更加可能造成网络拥塞现象,降低网络执行效率。
2.3.2 数据链路层***
1.数据链路层(Data Link Layer)的功能
数据链路层的主要功能是如何在不可靠的物理线路上进行数据的可靠传输。数据链路层完成的是网络中相邻结点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧(Frame),并按顺序传送各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上出错或丢失,从而导致接收方不能正确接收到数据帧。为了保证能让接收方对接收到的数据进行正确性判断,发送方为每个数据分块计算出CRC(循环冗余检验),并把CRC添加到帧中,这样接收方就可以通过重新计算CRC来判断数据接收的正确性。一旦接收方发现接收到的数据有错,则发送方必须重传这一帧数据。然而,相同帧的多次传送也可能使接收方收到重复的帧。比如,接收方给发送方的“确认帧”被破坏后,发送方也会重传上一帧,此时接收方就可能接收到重复帧。数据链路层必须解决由于帧的损坏、丢失和重复所带来的问题。
数据链路层要解决的另一个问题是防止高速发送方的数据把低速接收方“淹没”。因此,需要某种信息流量控制机制使发送方得知接收方当前还有多少缓存空间。为了控制的方便,流量控制常常和差错处理一同实现。
2.数据链路层的主要网络设备
在局域以太网中,数据链路层通过 MAC 地址负责主机之间数据的可靠传输。数据链路层的设备必须能够识别出数据链路层的地址,即MAC地址。一个设备如果能识别MAC地址,该设备至少是数据链路层以上的设备。数据链路层的网络设备主要有网卡、网桥和交换机。
(1)网卡(NIC)
网卡(Network Interface Card,NIC)也叫网络适配器,是连接计算机与网络的硬件设备,网卡的主要工作原理是整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送出去。对于网卡而言,每块网卡都有一个唯一的网络结点地址,它是网卡生产厂家在生产时烧入ROM(Read Only Memory,只读存储芯片)中的,我们把它叫做MAC(Media Access Control,介质访问控制)地址,且保证绝对不会重复。可以人为地修改MAC地址的显示(有些网卡提供的驱动程序可以修改MAC地址,也有些工具可以修改MAC地址,但并没有更改ROM中的内容,只是修改了MAC的显示,当计算机重新安装操作系统后,MAC地址还是出厂时的MAC地址)。
网卡插在计算机或服务器扩展槽中,通过网络线(如双绞线、同轴电缆或光纤)与网络交换数据、共享资源。计算机对接收到的数据帧进行比较,如果数据帧中的目标 MAC地址与本机网卡的 MAC 地址相同,或者目标 MAC 地址是广播 MAC 地址,即“FFFFFFFFFFFF”,则计算机对数据帧进行处理;否则,计算机丢弃该数据帧。
可以在DOS窗口中使用“ipconfig/all”命令查看计算机网卡的MAC地址,如图2-3-3所示,网卡的MAC地址是“00-1B-24-7D-25-72”,占用48位,前24位表示厂商,后24位为设备编号,用十六进制表示。
图2-3-3 查看网卡的MAC地址
(2)网桥(Bridge)
网桥工作在数据链路层,用于将两个LAN连接在一起并按MAC地址转发帧。物理层的集线器可以扩展网络的规模,但所有通过集线器相连的主机属于同一个冲突域,任何时刻只能有一台主机发送数据,如果有两台主机同时发送数据就会发生冲突,导致数据发送失败。当同一个冲突域中的主机数据量非常多时,数据发生冲突的可能性大大增加,此时可以使用网桥来分隔冲突域。网桥可以用来分隔冲突域,把一个冲突域分隔成两个冲突域(即增加冲突域的数量,减小冲突域的大小)。连接两个网段的网桥能从一个网段向另一个网段传送完整而且正确的帧,不会传送干扰或有问题的帧。
网桥主要用于互联以太网分段,传输需在两个不同分段间传输的信息,但是阻断局部分段内的信息,因此网桥减少了网络上的通信总量。
在图2-3-4中包括2台集线器、4台计算机、1台网桥。每个网桥保存一个动态的MAC地址表,由站点的MAC地址和网桥的端口号组成。初始时,该MAC地址表为空,以后通过学习方法获取MAC地址信息。当一个数据帧到达网桥时,网桥根据其源MAC地址以及到达的端口号,向MAC地址表中增加或刷新一条记录。
图2-3-4 网桥工作方式图
网桥的工作过程如下:
① 刚加电时,网桥的MAC地址表是空的,假使计算机A(192.168.1.1)要发送数据给计算机B(192.168.1.2),计算机A对数据包进行封装(假设计算机A已经知道计算机B的MAC地址,后面章节会介绍计算机A是如何获得计算机B的MAC地址的),把数据包发送到集线器A,集线器A把数据包发往除接收端口以外的所有端口(计算机B和网桥)。
② 网桥收到这个数据包后,首先在MAC地址表中添加这个数据帧的源MAC地址,即计算机A的MAC地址“AAAAAAAAAAAA”和对应的端口1,然后网桥在自己的MAC地址表中查找这个数据帧中的目的MAC地址,即“BBBBBBBBBBBB”,结果没有找到,网桥把这个数据包从端口2转发出去。从网桥端口转发出来的数据包到达集线器B,集线器B把这个数据包从除接收到端口以外的端口转发出去,计算机C和计算机D收到这个数据包并进行检查,结果发现这个数据帧中的目的MAC地址与自己网卡的MAC地址不同,计算机C和计算机D丢弃这个数据包。
③ 集线器A也把数据包转发到计算机B,计算机B收到这个数据包并检查数据包中的目的MAC地址,发现与自己的MAC地址相同,计算机B接收这个数据包,并对计算机A进行确认。计算机B封装数据包后发往集线器A,集线器A把数据包发往除接收端口以外的所有端口(计算机A和网桥)。
④ 网桥收到这个数据包后,首先在MAC地址表中添加这个数据帧的源MAC地址,即计算机B的MAC地址和对应的端口1,然后网桥在自己的MAC地址表中查找这个数据帧中的目的MAC地址,即“AAAAAAAAAAAA”,结果发现该数据帧的源和目的MAC地址在网桥的同一个端口上,即端口1,网桥不再转发该数据帧到端口2。
⑤ 最后,网桥会学到所有MAC地址和端口的对应,如图2-3-4中的表所示,表中记录了计算机A和计算机B在网桥的端口1,计算机C和计算机D在网桥的端口2。此后,计算机A与计算机B、计算机C与计算机D可以同时通信,相互不受影响。
同中继器一样,网桥也是连接两个网段的设备。但和中继器不同之处在于,网桥侦听每个网段上的信号,当它从一个网段接收到一个帧时,网桥会检查并确认该数据帧是否已经完整地到达,然后,如果需要的话就把该数据帧传送到其他网段。这样,两个 LAN 网段通过网桥连接后,就像一个 LAN 一样,网中任何一台计算机可发送数据帧到任何其他的计算机。因为每个网段都支持标准的网络连接并使用标准的帧格式,计算机并不知道它们是连接在同一LAN网段中还是连接在一个桥接网中。
因为网桥能检查出一些故障,所以比中继器使用更广泛。两个通过中继器相连的网段,如果由于闪电而导致其中一个网段上有电干扰,中继器会把它传送到另一个网段。相反,如果干扰发生在通过网桥连接的网段中,网桥接收到一个不正确的帧,丢弃该帧。类似地,网桥不会把从一个网段传送来的冲突信号传送到另一个网段。因此,网桥会把故障控制在一个网段中而不会影响到另一个网段。网桥比中断器和集线器对数据包做更多的处理,延时也相对增加,一个网桥包括两个冲突域、一个广播域。
(3)交换机(Switch)
与网桥的工作过程类似,交换机也根据源MAC学习,根据目的MAC进行转发,按每一个数据帧中的MAC地址决策信息转发。在图2-3-5中,交换机也会学到并维护表中的MAC地址表,当源主机“AAAAAAAAAAAA”发送一个数据帧给目的主机“BBBBBBBBBBBB”时,交换机收到这个数据帧,查找交换机的MAC地址表,发现目的MAC地址在交换机的端口2,交换机从端口2把数据帧转发出去,端口3和端口4不受影响。
交换机传送数据到对应的端口
图2-3-5 交换机的转发过程
CCNA考试中经常涉及交换机转发方式的考题,交换机转发方式分为3种情况:情况一,交换机对已知的单播帧,只往对应的端口转发;情况二,交换对未知的单播帧,即交换机还没有学到数据帧中的目的MAC地址,交换机泛洪数据包,即发往除接收端口以外的所有端口;情况三,交换机对组播帧和广播帧进行泛洪转发,即发往除接收端口以外的所有端口。
类似于网桥,交换机提供了网络互联功能。交换机的每个端口都是一个独立的冲突域,可以为每个工作站提供更高的带宽。因为交换机可以使用现有的电缆、中继器、集线器和工作站的网卡,不必作高层的硬件升级;交换机对工作站是透明的,这样管理开销低廉,简化了网络结点的增加、移动和网络变化的操作;并且交换机的价格与集线器所差无几,所以在当今的网络中,交换机被普遍使用。
可以简单地把交换机看成是多端口的网桥,但二者还是一些区别的:首先,网桥一般只有2个端口,而一般交换机最少也有8个端口,更有24端口、48端口甚至更多口的交换机;其次,网桥采用软件进行转发,而交换机采用专门设计的集成电路,基于硬件进行数据转发,交换机以线路速率在所有的端口并行转发信息,提供了比传统网桥高得多的操作性能,操作接近单个局域网性能,远远超过了普通网桥互联网络之间的转发性能;最后,交换机的端口造价远低于网桥。
根据功能不同,交换机可分为:
① 传统的二层交换机,与集线器相比,仅是多了 MAC 地址表的功能。属于 OSI 七层模型的数据链路层,有一个广播域、多个冲突域(每个端口就是一个冲突域)。
② VLAN(Virtual Local Area Network,虚拟局域网)型交换机,可网管型交换机,比传统型交换机多了 VLAN 的功能。它仍属于数据链路层,有多个广播域(每个 VLAN就是一个广播域)、多个冲突域(每个端口就是一个冲突域),并可配置 IP 地址,方便远程管理。
③ 三层交换机,比VLAN型交换机多了路由功能,可以把三层交换机想象成路由器 +VLAN型交换机,但三层交换机的数据包转发性能要比路由器 +VLAN型交换机的性能高出许多倍。它属于OSI七层模型的网络层,具有多个广播域、多个冲突域。工程中出于安全的考虑,有时需要把IP和MAC进行绑定,这就需要三层以上的交换机才能完成,因为普通的二层交换机处在OSI七层模型的第二层,识别不了三层的IP地址,也就无法完成绑定。
有关交换机的更多介绍和配置,请参阅本书第3部分交换机的配置。
2.3.3 网络层***
网络层(Network)的主要功能是完成网络中主机间的报文传输。在广域网中,这包括产生从源端到目的端的路由,根据采用的路由协议,选择最优的路径,本书将在后面章节介绍路由的相关知识。
网络层涉及的协议有IP、IPX等,网络层的设备必须能识别出网络层的地址,比如路由器、三层交换机等都可以根据IP地址做路径选择,它们都属于网络层设备。
路由器是一种连接多个网络或网段的网络层设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读懂”对方的数据,从而构成一个更大的网络。它不是应用于同一网段的设备,而是应用于不同网段或不同网络之间的设备。路由器之所以能在不同网络之间起到“翻译”的作用,是因为它不再是一个纯硬件设备,而是支持相当丰富路由协议的软、硬结合的设备,支持的协议有RIP、OSPF、EIGRP等,这些路由协议就是用来实现不同网段或网络之间的相互“理解”的。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网。路由器属于网络层的一种互联设备,有隔离广播的作用,它的每个端口都是一个单独的广播域,也是一个单独的冲突域。
在局域网接入广域网的众多方式中,通过路由器接入互联网是最为普遍的方式。使用路由器互联网络的最大优点是:各互联子网仍保持各自独立,每个子网可以采用不同的拓扑结构、传输介质和网络协议,网络结构层次分明。通过路由器与互联网相连,则可完全屏蔽公司内部网络,有些路由器内部还集成了入侵防御和防火墙功能,因此使用路由器可以用来防御攻击,保护内部网络的安全。
路由器和交换机的比较如表2-3-1所示。
表2-3-1 路由器和交换机的比较
2.3.4 传输层***
传输层(Transport Layer)是整个网络的关键部分,实现两个用户进程间端到端(End-to-End)的可靠通信,处理数据包错误、数据包次序,以及其他一些关键传输问题。向下提供通信服务的最高层,弥补通信子网的差异和不足,向上是用户功能的最低层。与数据链路层有相似之处,不同的地方在于前者是端到端的,后者是点到点的,而且比数据链路层协议复杂得多。
传输层的主要功能有:提供建立、维护和拆除传输层连接,选择网络层提供合适的服务,提供端到端的错误恢复和流量控制,向会话层提供独立于网络层的传送服务和可靠的透明数据传输。
传输层相关的协议有TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议),它们涉及服务使用的端口号,主机根据端口号识别服务(常用的WWW服务端口号是80,Telnet服务端口号是23等),区分会话(源IP、源端口号、目标IP、目标端口号,四者共同唯一标识一个会话)。对一些常用的服务,在文件“C:\WINDOWS\system32\drivers\etc\services”中记录了服务名、所使用的协议(TCP或UDP)、默认端口号等。
这里介绍一种识别不同应用所使用服务端口的方法,譬如查看Windows中“远程桌面”服务所使用的服务端口。假如在计算机“10.0.248.137”上,使用远程桌面登录到计算机“210.28.203.187”,然后在被控制的远程计算机上执行“netstat -n”命令(当然也可以在本地计算机上执行这个命令),如图2-3-6 所示,可以看到远程主机上使用的是“3389”端口,这就是Windows远程桌面使用的默认端口。采用类似的方法,可以获知其他应用所使用的端口号。
图2-3-6 查看应用程序的端口号
有关TCP和UDP协议,本书在后面的TCP/IP参考模型中再详述。
2.3.5 会话层***
会话层(Session Layer)允许不同机器上的用户之间建立会话关系,会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制有关的服务是令牌管理,有些协议保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步,如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,想想会出现什么样的问题?每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为了解决这个问题,会话层提供了一种方法,即在数据中插入同步点。每次网络出现故障后,仅仅重传最后一个同步点以后的数据。
CCNA考试中几乎不涉及会话层。
2.3.6 表示层***
表示层(Presentation Layer)完成某些特定的功能,对这些功能人们常常希望找到普遍的解决办法,而不必由每个用户自己来实现。值得一提的是,表示层以下各层只关心从源主机到目标主机可靠地传送比特,而表示层关心的是所传送的信息的语法和语义。表示层服务的一个典型例子是用一种大家一致选定的标准方法对数据进行编码。
网络上计算机可能采用不同的数据表示,所以需要在数据传输时进行数据格式的转换。例如在不同的机器上常用不同的代码来表示字符串(ASCII和EBCDIC)、整型数(二进制反码或补码)以及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,我们在通信过程中使用抽象的数据结构来表示传送的数据,而在机器内部仍然采用各自的标准编码。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网上传输的传送语法,以及在接收方做相反的转换等,都是由表示层来完成的。
此外,表示层还涉及数据压缩和解压、数据加密和解密等工作。
2.3.7 应用层***
联网的目的在于支持运行于不同计算机上的进程进行通信,而这些进程则是为用户完成不同任务而设计的。可能的应用是多方面的,不受网络结构的限制。应用层(Application Layer)包含大量人们普遍需要的协议,如HTTP(Hyper text Transfer Protocol,超文本传输协议),这个大家并不陌生,该应用默认使用的是TCP的80端口;FTP(File Transfer Protocol,文件传输协议),多用于因特网上的文件传输,该应用管理端口默认使用的是TCP的21号端口,另外,FTP服务还要使用到数据端口,数据端口因FTP的主动和被动模式有异,这里不再深入讨论;SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用于邮件的发送,该应用默认使用的是TCP的25号端口;POP3(Post Office Protocol Version 3,邮局协议版本3),用于邮件的接收,该应用默认使用的是TCP的110号端口;DNS (Domain Name System,域名系统),用于因特网上域名的解析,譬如把南京大学的域名“www.nju.edu.cn”解析成IP地址“202.119.32.7”,该应用默认使用的是UDP和TCP的53 号端口;Telnet(远程登录),Telnet 是一种字符模式的终端服务,它可以使用户通过网络进入远程主机或网络设备,然后对远程主机或网络设备进行操作,这种连通可以发生在局域网里面,也可以通过互联网进行,该应用默认使用的是TCP的23号端口。这里列出的一些常用应用都是需要考生了解的,感兴趣的读者可以架设相关的服务器,毕竟大家的生活中经常要使用这些服务。
对于需要通信的不同应用来说,应用层的协议都是必需的。比如,当某个用户想要获得远程计算机上的一个文件拷贝时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他特征来传输文件内容。
由于每个应用有不同的要求,应用层的协议集在ISO/OSI模型中并没有定义,但是,有些确定的应用层协议,包括虚拟终端、文件传输和电子邮件等都可作为标准化的候选。值得注意的是,OSI模型本身不是网络体系结构的全部内容,这是因为它并未确切地描述用于各层的协议和实现方法,而仅仅告诉我们每一层应该完成的功能。不过,ISO已经为各层制定了相应的标准,但这些标准并不是模型的一部分,它们是作为独立的国际标准被发布的。
OSI参考模型是在其协议开发之前设计出来的,这意味着OSI模型不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着OSI模型在协议实现方面存在某些不足。实际上,OSI协议过于复杂,这也是OSI从未真正流行开来的原因所在。
虽然OSI模型和协议并未获得巨大的成功,但是OSI参考模型在计算机网络的发展过程中仍然起到了非常重要的指导作用,作为一种参考模型和完整体系,它仍对今后计算机网络技术朝标准化、规范化方向发展具有指导意义。接下来看看目前被广泛使用的TCP/IP (Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议。