8.1.3 网络分层模型
上节介绍了网络分层的一些基本概念,本节将介绍两种具体的网络分层参考模型,分别为国际标准化组织(International Standardization Organization,ISO)制定的开放系统互连参考模型和TCP/IP参考模型。
1.OSI参考模型
OSI参考模型主要涉及7个层次的顺序以及各个层次的功能。
(1)参考模型概述
开放系统互连参考模型是一个开放式计算机网络的层次结构模型。“开放”表示任何两个遵守了参考模型及相关标准的系统都可以进行互连。这个模型定义了异种计算机标准间的互连。之所以提出这样一个参考模型,是由于在1974年IBM公司提出了世界上第一个系统网络体系结构(System Network Architecture,SNA)之后,各厂商纷纷提出自己的网络体系结构。为了避免各种网络体系结构之间在互连、互操作和可移植性方面可能出现的问题,ISO在1978年提出了OSI/RM。此标准在1983年成为正式的国际标准。遵循这个标准的系统可以和其他任何遵守该标准的系统进行通信。因此称其为“开放”系统互连参考模型。
OSI参考模型仅仅提出了对于系统的体系结构(Architecture)、服务定义(Service Definition)和协议规格说明(Protocol Specification)的描述,并没有提出任何具体协议,也没有给出任何具体的实现方法。因此实现这样一个参考模型时,还需要对具体的协议和实现协议的具体办法进行研究。这是一个非常庞杂的任务,到目前为止,世界上还没有任何一个厂商或者组织真正实现了这个参考模型。事实上,这个参考模型具有双重意义,它为人们研究相关的协议提供了一个很好的参考,但是从另外一个意义上讲,过分关注这个模型可能会使人们的研究走入困境。也正因为如此,人们提到网络体系结构时都要说到七层模型,但实际中使用的标准却是TCP/IP参考模型。
OSI参考模型对系统体系结构、服务定义和协议规范三个方面进行了定义。它定义了一个七层模型,用以进行进程间的通信,并作为一个框架来协调各层标准的制定:OSI的服务定义描述了各层所提供的服务,以及层与层之间的抽象接口和交互用的服务原语。OSI各层的协议规范精确地定义了应当发送何种控制信息以及应该通过何种过程对此控制信息进行解释。
1)七层结构
OSI/RM将系统分成了7层,从下到上分别为物理层(Physical Layer,PHL)、数据链路层(Data LinkLayer,DLL)、网络层(Network Layer,NL)、传输层(Transport Layer,TL)、会话层(Session Layer,SL)、表示层(Presentation Layer,PL)和应用层(Application Layer,AL),如图8-6所示。
图8-6 OSI参考模型
2)数据传递过程
分层模型是对系统功能进行的抽象划分,那么,系统中两台主机之间的信息又是如何通过这些分层结构进行流通的呢?在介绍每层的具体功能之前,先介绍分层模型中数据的传递过程。
在OSI参考模型中用到的数据单元有如下几种。
·服务数据单元(Service Data Unit,SDU):是指第N层中等待传送和处理的数据单元。
·协议数据单元(Protocol Data Unit,PDU):指同等层水平方向上传送的数据单元。
·接口数据单元(Interface Data Unit,IDU):指在相邻层接口之间传送的数据单元,它是由SDU和一些控制信息组成的。
图8-7展示了数据的传递过程。数据在发送端从上到下逐层传递,在传递过程中,每层都要加上适当的控制信息(头部),即图中的AH、PH、SH、TH、NH、DH及DT(数据链路层加的尾部)。到物理层转换成为由“0”、“1”组成的比特流,然后转换为电信号在物理介质上传输至接收端。在接收端逐层向上传递时,过程正好相反,要逐层剥去发送端相应层加上的头部控制信息。对任意一层来说,都不会收到其下各层的控制信息,而其上各层的控制信息对它来说只是透明的数据,所以它只需将本层的控制信息剥离出来,并按照信息指示进行相应的协议操作即可。
图8-7 OSI参考模型中数据传递过程示意图
(2)各层功能概述
1)物理层
数据终端设备(Data Terminal Equipment,DTE),包括希望通过网络进行互连的设备,即入网设备,如计算机、终端等。数据通信设备(Data Communicate Equipment,DCE),包括网络中含有的通信设备,即网内设备,如通信处理机等。物理层是DTE和DCE之间的接口。物理层定义了建立、维护和拆除物理链路所需的机械、电气、功能和规程特性,其目的是在物理介质上传输原始的数据比特流。
·机械特性:接口部件的尺寸、规格、插脚数目和分布等。
·电气特性:接口部件的信号电平、阻抗、传输速率等。
·功能特性:接口部件信号线(数据线、控制线、定时线等)的用途。
·规程特性:接口部件的信号线建立、维持、释放物理连接和传输比特流的时序。
物理层要实现实体之间的按位传输,保证按位传输的正确性,并向数据链路层提供透明的比特流传输。但物理层仅仅负责将比特流从一台计算机传输到另一台计算机,并不关心这些比特的含义。
物理介质可以选择光纤、同轴电缆、双绞线、红外线等。介质的选择主要取决于用户需要以多快的速率将数据传输多远。
2)数据链路层
物理层的目的是提供可靠的比特流传输,不考虑这些比特之间的联系,以及所传输数据的结构。因而在物理层中无法解决数据传输过程中发生的异常情况、差错控制和恢复以及信息格式等问题。数据链路层是建立在物理层基础上的,通过使用物理层提供的服务,建立通信联系,将比特流组织成名为帧的协议数据单元进行传输。帧中除了包含上层传递来的数据之外,还包括一些地址、控制以及校验码信息。两个系统中的数据链路层通过这些控制信息,实现停止等待协议、窗口等流量控制机制、差错处理机制,对物理设备的传输速率进行匹配,在比特流传输的基础上实现相邻节点间的可靠数据传输。
IEEE将数据链路层进一步划分成了两个子层:介质访问控制(Media Access Control,MAC)子层和逻辑链路控制(Logical Link Control,LLC)子层。这两个子层分担了数据链路层的功能。其中,LLC子层与网络层相邻,是MAC子层的上一层。LLC子层具有差错控制、流量控制等功能,负责实现数据帧的可靠传输。MAC子层主要负责实现共享信道的动态分配,控制和管理信道的使用,保证多个用户能向共享信道发送数据,并能从共享信道中识别并正确接收到发送给自己的数据。
3)网络层
数据链路层只实现了相邻节点间的可靠通信,而源节点和目的节点之间的信息通道往往是由很多中间节点构成的网络,在这种复杂网络中使用适当的路由选择算法为数据选路,建立逻辑链路进行分组传输,以实现网络互连则是网络层的功能。另外,为了避免通信子网中出现过多的分组而造成网络阻塞,还要对流入的分组数量进行控制。当分组要跨越多个通信子网才能到达目的地时,还要解决网际互联的问题。
对路由选择算法的基本要求是正确、简单、健壮、稳定和公平。拥塞控制首先是要通过选择适当的路由算法,防止大量信息堆积在一条链路上,延误信息的传递:同时如果信息堆积过多,还要考虑通过丢弃部分分组等方式减少信息的拥塞量。
物理层、数据链路层和网络层是七层协议的基础层次,也是目前最为成熟的三个层次。无论是在广域网还是局域网上,都是以这几个层次为基础的。它们主要是面向数据通信的,因此基于这三层通信协议构成的网络通常被称为通信网络或通信子网。
4)传输层
在网络层,可能产生整包的数据差错,无法保证端到端传输的可靠性。传输层则通过对数据单元错误、数据单元次序以及流量控制等问题的处理为用户提供了可靠的端到端服务。传输层处于分层结构体系高低层之间,是高低层之间的接口,是非常关键的一层。
为了实现可靠的端到端的数据传输,传输层主要采用了以下技术手段。
·分流技术:利用多条网络连接来支持一条信道的数据传输,提高数据传输速率,使得具有低吞吐量、低速率和高传输延迟的网络能够满足高速数据的传输要求。
·复用技术:将多条信道上的数据汇集到一条网络连接上传输,使得具有高吞吐量、高速率和低传输延迟、高费用的网络能够支持用户的低传输成本要求。
·差错检测与恢复:使差错率较高的网络能够满足用户对高可靠性数据传输的要求。
·流量控制:对连续传输的协议数据单元个数进行限制,避免网络拥塞。
5)会话层
会话层是进程一进程间的通信协议,主要功能是组织和同步不同主机上各种进程间的通信。会话层负责在两个会话层实体之间进行对话连接的建立和拆除。为了建立会话,该层执行了名称及用户权限识别功能。
会话层利用传输层提供的端到端的数据传输服务,具体实施服务请求者与服务提供者之间的通信,属于进程间通信范畴。管理不同主机进程间的对话,主要针对远程终端访问。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层,表示层,应用层构成开放系统的高3层,面对应用进程提供分布处理,会话管理,信息表示,恢复最后的差错等。通常,会话层提供服务需要建立连接、数据传输、释放连接等三个阶段。会话层是最薄的层,常被省略。
6)表示层
表示层在网络需要的格式和计算机可处理的格式之间进行数据翻译。表示层执行协议转换、数据翻译、压缩与加密、字符转换以及图形命令的解释功能。
7)应用层
应用层包含利用网络服务的应用程序进程以及应用程序接口(Application Program Interface,API)。应用层提供的服务包括文件服务、数据库服务、电子邮件及其他网络软件服务。
在实际情况中,常把会话层和表示层归入应用层,成为五层简化的OSI/RM。
2.TCP/IP参考模型
TCP/IP参考模型小节主要涉及该模型的层次划分以及与OSI模型的对比。
(1)TCP/IP参考模型的基本概念
传输控制协议/网际协议(Transfer Control Protocol/Internet Protocol,TCP/IP),又称为网络通信协议,这个协议是国际互联网(Internet)的基础。
TCP/IP是网络中使用的基本的通信协议。虽然从名称上看TCP/IP似乎只包括两个协议,即传输控制协议(Transmission Control Protocol,TCP)和网际协议(Internet Protocol,IP)。实际上TCP/IP是一组协议的集合,它包括上百种功能的协议,如TCP、IP、UDP、ICMP、RIP、Telnet、FTP、SMTP、ARP及TFTP等。而TCP和IP是保证数据完整传输的两个基本的重要协议。通常所说的TCP/IP是指Internet协议族,而不仅是TCP和IP。以此为基础组建的Internet是目前国际上规模最大的计算机网络,由于Internet的广泛使用,使得TCP/IP成为了事实上的标准。
TCP/IP并不完全符合OSI的7层参考模型。传统的开放系统互连参考模型采用了7层结构,而TCP/IP通信协议采用了4层的层级结构,每一层都使用它的下一层所提供的服务来完成本层的功能。这四层从下往上依次是网络接口层、网络层、传输层和应用层,如表8-1所示。
表8-1 TCP/IP层次结构
·网络接口层:这是TCP/IP参考模型的最低层,负责对实际的网络媒体进行管理,接收IP数据报并通过网络将其发送出去,或者从网络上接收帧,剥离出IP数据报,交给网络层。
·网络互联层:负责数据的转发和路由,保证数据报到达目的主机。
·传输层:负责传送数据,并且确定数据已被送达并接收。
·应用层:向用户提供一组常用的应用程序。
TCP/IP参考模型要完成OSI七层模型的任务,模型中互相对应的部分由TCP/IP协议族中相关的协议实现。其他部分(如会话层和表示层)的功能由用户实现。TCP/IP参考模型是在TCP/IP协议族逐渐丰富起来以后才提出的。
TCP/IP参考模型和OSI/RM的数据传递过程类似。用户数据单元从应用程序向下传送,通过TCP/IP参考模型的各层时,每层都会在数据单元上加上相应的头部和/或尾部。在接收端,由对等层将这些头尾部剥离出来,并根据其中的信息对数据单元进行相应的处理。
(2)与OSI参考模型的比较
TCP/IP参考模型和OSI参考模型的目的和实现的功能都一样,本质上它们都采用了分层结构,并在层间定义了标准接口,上层使用下层提供的服务,但下层提供服务的方式对上层来说是透明的;在对等层间采用协议来实现相应的功能。这两种模型在层次划分上也有相似之处。但这两种模型的提出是相互独立的,出发点也不同。因此在使用上有很大的不同。TCP/IP参考模型和OSI参考模型的比较如表8-2所示。
表8-2 OSI/RM与TCP/IP的层次对应
OSI参考模型理论比较系统、全面,对具体实施有一定的指导意义,但是与具体实施还有很大的差别,要完整地实现OSI参考模型所规定的所有功能是非常困难的;TCP/IP参考模型则是在实践中逐步发展而来的。TCP/IP和互联网的发展相辅相成,现在不仅在Internet中,而且在局域网中也广泛应用TCP/IP。
(3)物理层常用协议简介
物理层最常用的标准有EIA-232-E接口标准和RS-449接口标准。
1)EIA-232-E
EIA-232-E最早是1962年制定的标准RS-232。这里RS表示EIA一种“推荐标准”,232是个编号。在1969年修订为RS-232-C,C是标准RS-232以后的第三个修订版本。1987年1月,修订为EIA-232-D。1991年又修订为EIA-232-E。由于标准修改得并不多,因此,现在很多厂商仍用旧的名称,有时简称为EIA-232。
EIA-232-E的传送距离最大约为15m,最高速率为20Kbit/s,并且EIA-232-E接口是为点对点(即只用一对收、发设备)通信而设计的。所以,EIA-232-E只适合于本地通信使用。
通常,EIA-232-E接口以9个接脚(DB-9)或是25个接脚(DB-25)的形态出现,一般个人计算机(Personal Computer,PC)上会有两组EIA-232-E接口,分别称为COM1和COM2。
2)RS-449
RS-449是1977年由EIA发表的标准,它规定了DTE和DCE之间的机械特性和电气特性。RS-449是想取代RS-232-C而开发的标准,但是,几乎所有的数据通信设备厂家仍然采用原来的标准,所以RS-232-C仍然是最受欢迎的接口而被广泛采用。
RS-449的连接器使用ISO规格的37引脚及9引脚的连接器,2次通道(返回字通道)电路以外的所有相互连接的电路都使用37引脚的连接器,而2次通道电路则采用9引脚连接器。
除此以外,还有V.35、X.21和X.21bit和各种局域网的物理层标准。
(4)数据链路层常用协议简介
常用的数据链路层协议包括以下几种。
1)局域网数据链路协议
各种不同的局域网中LLC子层的功能基本相同,不同的是MAC子层。在IEEE802系列协议中,IEEE802.2定义了LLC子层的相关内容。IEEE802.3、802.4、802.5、802.8则分别定义了CSMA/CD、令牌总线、令牌环、FDDI等不同网络中的MAC子层规范。
2)面向字符的数据链路控制规程
面向字符的同步协议是最早提出的同步协议,其典型代表是IBM公司的二进制同步控制规程(Binary Synchronous Communication,BSC)。为了实现建链、拆链等链路管理以及同步功能,BSC采用了ASCII或EBCDIC字符集中的字符,并在这些字符前增加一个转义字符,以形成特殊的控制字符组,控制数据的传输过程。BSC的实现只需要很少的缓存容量,规程简单,易于实现。它最大的缺点是它和特定的字符编码集关系过于密切,不利于兼容,而且BSC是一个半双工协议,链路传输效率很低。
3)面向比特型的数据链路控制规程
在这类规程中,最典型的就是高级数据链路控制规程(High-level Data Link Control,HDLC)。通过在帧结构中设置相应的控制字段,提高了数据传输的效率,比面向字符型的控制规程更优越。
在HDLC中,每帧的开始和结束处都有一个标志字段(01111110),用来标识帧的开始和结束,并对帧进行同步。在帧内部采用了“零比特填充法”,防止在数据字段中出现与标志字段相同的内容,以实现数据的透明传输。
HDLC使用了一个8bit的控制字段,通过它,以编码的方式定义了丰富的控制命令,完成了BSC协议中众多传输控制字符和转义字符的功能。
HDLC支持全双工工作方式,采用窗口和捎带应答机制,允许在未收到确认的情况下,连续发送多个帧,提高了信息传输的效率。
HDLC采用了帧校验序列,并设置了窗口序号,提髙了信息传输的正确性和可靠性。
4)其他协议
从另外一个角度来看,在TCP/IP协议族中对应于数据链路层功能的协议还包括SLIP、PPP等。
·SLIP(Serial Line Internet Protocol,串行线路因特网协议)是面向低速串行线路的协议,现已逐渐被功能更好的点对点协议(Point to Point Protocol,PPP)所取代。
·点对点协议是IETF推出的在点到点类型线路上使用的数据链路层协议。它解决了SLIP中存在的问题,并成为正式的因特网标准,目前得到广泛的应用。
(5)网络层常用协议简介
曾经得到广泛应用的以及现在常用的网络层协议包括X.25分组层协议、IPX(Internetwork PacketExchange/Sequential Packet Exchange)、IP、ICMP、IGMP、RIP、OSPF及BGP等。
1)X.25的分组层
X.25是原CCITT(现ITU-T)提出的,定义了终端和计算机到分组交换网络的连接。X.25协议定义了对应于OSI下三层的功能,如物理层的X.21协议,数据链路层的LAP-B协议(HDLC协议的一部分),以及X.25的分组层协议。X.25的分组层协议定义了通过分组交换网络的可靠虚电路传输。
2)互联网分组交换/顺序分组交换IPX/SPX
Novell提出的用于客户机/服务器相连的网络协议。使用IPX/SPX能运行通常需要NetBEUI支持的程序,通过IPX/SPX可以跨过路由器访问其他网络。
3)IP协议
IP是TCP/IP的心脏,也是网络层中最重要的协议,负责在网络内的寻址和数据报的路由。
4)ICMP(Internet Control Message Protocol,网际控制消息协议)
ICMP协议提供控制和传递消息的功能。该协议是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。我们可以通过Ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息,通过这些消息来对网络或主机的故障诊断提供参考依据。
ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。比如,可以利用操作系统规定的ICMP数据包最大大小不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death”攻击的原理是:如果ICMP数据包的大小超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。禁用ICMP所提供的相应端口,可以限制外来主机的Ping入。
ICMP发送的消息类型主要有如下几种。
·未达目的地信息。相应于网关的路由表,如果在目的域中指定的网络不可达,如网络距离为无限远,网关会向发送源数据的主机发送目的不可达消息。而且,在一些网络中,网关有能力决定目的主机是否可达。如果目的地不可达,它将向发送源数据的主机发送不可达信息。
在目的主机,如果IP模块因为指定的协议模块和进程端口不可用而不能提交数据报,目的主机将向发送源数据的主机发送不可达信息。
另外一种情况是当数据报必须被分段传送,而“不可分段”位打开时,在这种情况下,网关必须抛弃此数据报,并向发送源数据的主机发送不可达信息。
·超时信息。如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃。网关同时必须通过超时信息通知源主机。如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,此数据报必须抛弃,网关发送超时信息。
·参数问题消息。如果网关或主机在处理数据报时发现报头参数有错误以至不能完成工作,它必须抛弃此数据报。一个潜在的原因可能是变量的错误。网关或主机将通过参数问题消息通知源主机,此消息只有在消息被抛弃时才被发送。指针指向发现错误的数据报报头字节。
·源拥塞(抑制)消息。如果没有缓冲容纳,网关会抛弃数据报,如果网关这样做了,它会发送源拥塞消息给发送主机。如果接收的数据报太多无法处理,目的主机也会发送相应的消息给发送主机。此消息要求发送方降低发送速率,网关会给每个抛弃的消息返回源拥塞消息,在接收到此消息后,发送主机应该降低发送速率,直到不再接收到网关发送的源拥塞消息为止。在此之后,源主机可以再提高发送速率,直到接收到目的主机的源拥塞消息为止。网关或主机不会等到已经超过限度后再发送此消息,而是接近自己的处理极限时就发送此消息,这意味着,引发源拥塞消息的数据报仍然可以处理。
·重定向消息。网关在下面情况下发送重定向消息。网关(G1)从网关相连的网络上接收到数据报,它检查路由表获得下一个网关(G2)的地址(X)。如果G2和指定的接收主机在同一网络上,重定向消息发出,此消息建议发送主机直接将数据报发向网关G2,因为这更近,同时网关G1向前继续发送此数据报。
因为在数据报中的IP源路由和目的地址域是可选的,所以即使有更好的路由有时也无法发现。
·回送或回送响应消息。回送消息中接收到的消息应该在回送响应消息中返回。标识符和序列码由回送发送者使用帮助匹配回送请求的响应。
·时间戳和时间戳响应消息。接收到的时间戳附加在响应里返回,时间是以百万分之一秒为单位计算的,并以标准时午夜开始计时。原时间戳是发送方发送前的时间。接收时间戳是回送者接收到的时间,传送时间是回送者发送的时间。
如果时间以百万分之一秒计算无效,或者不能以标准时提供,可以在时间戳的高字节填充数据以表示这不是标准数据。标识符和序列码由发送者匹配请求的响应。
·信息请求或信息响应消息。此消息可以在IP报头中以源网络地址发送,但同时目的地址域为0(这表示此网络内)。响应IP模块应该发送完全指定地址的响应。发送此消息是主机寻找到自己所在网络号码的一种方法。标识符和序列码由发送者匹配请求的响应。
5)IGMP(Internet Group Management Protocol,因特网组管理协议)
运行于主机和与主机直接相连的组播路由器之间,是IP主机用来报告多址广播组成员身份的协议。
6)RIP(Routing Information Protocol,路由信息协议)
最早的路由协议之一,现在仍在广泛使用。它是一种距离向量式路由协议,是内部网关协议的一种。
7)OSPF(Open Shortest Path First,开放最短路径优先协议)
由因特网工程任务组(Internet Engineering Task Force,IETF)开发的一种内部网关协议(Interior Gateway Protocol,IGP),是一种链路状态协议。
8)BGP(Border Gateway Protocol,边界网关协议)
不同自治系统路由器之间进行通信的外部网关协议。
9)ARP(Address Resolution Protocol,地址解析协议)
ARP协议为已知的IP地址确定相应的MAC地址。该协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的MAC地址,比如IP地址为192.168.0.1,网卡的MAC地址为00-03-0F-FD-1D-2B。整个转换过程是一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求,然后目标主机向该主机发送一个含有IP地址和MAC地址的数据包,通过MAC地址,两个主机就可以实现数据传输了。
在安装了以太网网络适配器的计算机中有专门的ARP缓存,包含一个或多个表,用于保存IP地址以及经过解析的MAC地址。在Windows中要查看或者修改ARP缓存中的信息,可以使用arp命令来完成,比如在WindowsXP的命令提示符窗口中,键入“arp–a”或“arp–g”可以查看ARP缓存中的内容;键入“arp-dip_address”表示删除指定的IP地址项(ip_address表示IP地址)。arp命令的其他用法可以键入“arp/”查看到。
10)RARP(Reverse Address Resolution Protocol,反向地址解析协议)
RARP协议根据MAC地址确定相应的IP地址。该协议允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其IP地址。网络管理员在局域网网关路由器里创建一个表以映射MAC地址和与其对应的IP地址。
(6)IPv6协议
除上述协议外还有一个当前我国教育主干网所采用的IPv6协议。
通常所说的“传统IP”协议,也就是指当前所用的IPv4版本,自从1981年由RFC791等文档所定义后,一直没有本质上的改变。经过二十多年的实践应用,IPv4也被证实是一个健壮的、易于实现并具有可操作性的一个协议。互联网络能发展到当前的规模,IPv4协议的建立功不可没。但同时它的缺点也已经充分显现出来,如地址空间耗尽、路由表急剧膨胀、缺乏对QoS的支持、本身并不提供任何安全机制、移动性差等。尽管采用了许多新的机制来缓解这些问题,如DHCP技术、NAT技术、CIDR技术等,但都不可避免地要引入其他新的问题,问题没有得到根本解决。于是IETF从90年代起就开始积极探讨下一代IP网络,经过几年努力,在广泛听取业界和专家意见的基础上,终于在1995年12月推出了下一代网络的RFC文档——IPv6协议,该协议最早叫做下一代IP(IP Next Generation,IPng)。现在它的全称是“互联网协议第6版”,即下一代的网际协议。IPv6对IPv4的主要改进如下。
·扩展地址:把原来32位地址扩展到128位,采用16进位表示,每4位构成一组,每组间用一个冒号隔开。为了更好地将IPv4过渡到IPv6,IPv6提供了如下两类嵌有IPv4地址的特殊地址。
0000:0000:0000:0000:0000:FFFF:xxxx:xxxx
0000:0000:0000:0000:0000:0000:xxxx:xxxx
其中,xxxx:xxxx是原来的IPv4的IP地址。在IPv6中有两个特殊的地址:一个是全0,表示未指定地址;另一个是0:0:0:0:0:0:0:1,表示环回(Loopback)地址。
·简化的报头:IPv6的报头共有8个字段,总长为40字节;而IPv4的报头则包含至少12个字段,长度在没有选项时为20字节,有选项时达60字节。IPv6采用固定格式的报头减少了需要检查和处理的字段的数量,提高选路效率。
·对扩展和选项支持的改进:IPv4可以在IP的尾部加入选项,而IPv6则将选项加到单独的扩展头中。
·流标志:IPv4对所有的包大致同等对待,这意味着每个包都是由中间路由器按照自己的方式来处理的,路由器并不跟踪任意两台主机间发送的包,因此不能“记住”如何对将来的包进行处理。而IPv6中引入了流概念,可以对流中的包进行高效处理。
·身份验证和保密:IPv6使用了两种安全性扩展:IP身份验证头、IP封装安全性净荷。
IPv6地址为128位长,但通常写作8组每组4个十六进制数的形式。例如2001:0db8:85a3:08d3:1319:8a2e:0370:7344是一个合法的IPv6地址。
如果4个数字都是零,可以被省略。例如2001:0db8:85a3:0000:1319:8a2e:0370:7344等价于2001:0db8:85a3::1319:8a2e:0370:7344。
遵守这些规则,如果因为省略而出现了两个以上的冒号,则可以压缩为一个,但这种零压缩在地址中只能出现一次。分析如下地址。
2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
以上都是合法的地址,并且它们是等价的。同时前导的零可以省略,因此2001:0DB8:02de::0e13等价于2001:DB8:2de::e13。
(7)传输层常用协议简介
传输层协议可以分为如下3类。
·A类:网络连接具有可接受的差错率和故障通知率,A类服务是可靠的网络服务,一般指虚电路服务。
·C类:网络连接具有不可接受的差错率。C类的服务质量最差,提供数据报服务或无线分组交换的网络均属此类。
·B类:网络连接具有可接受的差错率和不可接受的故障通知率,B类服务介于前二者之间,广域网多提供B类服务。
常用的传输层协议有TCP和UDP。
1)TCP协议
TCP即传输控制协议,是一个面向连接的协议,它提供双向的、可靠的、有流量控制的字节流的服务。字节流服务的意思是,在一个TCP连接中,源结点发送一连串的字节给目的结点。可靠服务是指数据有保证地传递、按序、没有重复。TCP报头格式如图8-8所示。
TCP协议是一种面向连接的、可靠的传输层协议。面向连接是指一次正常的TCP传输需要通过在TCP客户端和TCP服务端建立特定的虚电路连接来完成,该过程通常被称为“三次握手”。三次握手的目标是使数据段的发送和接收同步,同时也向其他主机表明其一次可接收的数据量(窗口大小),并建立逻辑连接。这三次握手的过程可以简述如下。
①源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN),ISN是一个随时间变化的随机值。
图8-8 TCP报头格式
②目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。
③源主机再回送一个数据段,同样带有递增的发送序号和确认序号。
至此,TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。
基于TCP的应用层协议有SMTP、FTP、HTTP、Telnet、POP等。
2)UDP协议
UDP即用户数据报协议,是一个无连接服务的协议。它提供多路复用和差错检测功能,但不保证数据的正确传送和重复出现。UDP报头包括16位的源和目的端口号,16位的以字节为单位的长度总和(数据和报头的和)标识字段,16位的数据和报头校验和字段。
UDP协议提供了无连接通信,不对传送的数据报提供可靠性保证,适合于一次传输少量数据的情况,传输的可靠性由应用层负责。
基于UDP的应用层协议有SNMP、DNS、TFTP、DHCP及RPC等。
(8)应用层常用协议简介
1)简单邮件传送协议
简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)决定了用户代理(Mail User Agent,UA)与报文传送代理(Mail Transfer Agent,MTA)建立连接的方法,以及UA发送其电子邮件的方法。MTA也使用SMTP在相互之间进行电子邮件的转发,直到电子邮件到达合适的MTA并传递给接收的UA。UA与MTA和MTA之间有着相类似的交互处理,其差别在于后者要求MTA必须查找一个接收MTA。
2)邮局协议
SMTP运行的前提是接收邮件的服务器端程序的目的主机一直在运行,否则就不能建立TCP连接,而这又不现实,因为桌面计算机每天要关机,不可能建立SMTP会话。TCP/IP专门设计了一个提供对电子邮件信箱进行远程存取的协议,它允许用户的邮箱安置在某个运行邮件服务器程序的计算机(邮件服务器)上,并允许用户从其个人计算机对邮箱的内容进行存取。这个协议就是邮局协议(Post Office Protocol,POP),现在用的是邮局通信协议第三版(Post Office Protocol3,POP3)。
3)文件传送协议
在客户和服务器的文件传送过程中,有两个进程:控制进程和数据传送进程,同时工作。控制进程负责建立传送FTP(文件传输协议)命令控制连接,这些命令使服务器知道要传送什么文件。控制进程即前面的子进程,客户端在向服务器发出连接请求时,还要告诉服务器自己的另一个端口号码,用于建立数据传送,数据进程用来建立数据连接,传送每个文件。服务器用自己的传送数据熟知端口(20)与客户端建立数据传送连接,如图8-9所示。
图8-9 FTP文件传输服务
4)普通文件传输协议
Internet协议包括另外一个被称做普通文件传输协议(Trivial File Transfer Protocol,TFTP)的文件传输服务。TFTP在多个方面与FTP存在着差异。
首先,TFTP客户与服务器之间的通信使用的是UDP而非TCP。其次,TFTP只支持文件传输。也就是说,TFTP不支持交互,而且没有一个庞大的命令集。最为重要的是,TFTP不允许用户列出目录内容或者与服务器协商来决定那些可得到的文件名。其三,TFTP没有授权。客户不需要发送登录名或者口令,文件仅当权限允许全局存取时才能被传输。
5)远程登录协议
远程登录协议Telnet是一个简单的远程终端协议,用户用Telnet可通过TCP登录到远地的一个主机上。Telnet将用户的击键传到远地主机,也将远地主机的输出通过TCP连接返回到用户屏幕,使用户感觉到像是键盘和屏幕直接连到主机上一样。
Telnet也使用客户/服务器模式,本地系统运行Client进程,远地主机则运行Server进程。和FTP一样,Server中的主进程等待新的请求,并产生从属进程来处理每一个连接。
6)WWW与超文本传输协议
众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用。WWW服务器使用的主要协议是HTTP协议,即超文本传输协议。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP协议的主要特点可概括如下。
·支持客户/服务器模式。
·简单快速。客户向服务器请求服务时,只需传送请求方法和路径。常用的请求方法有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
·灵活。HTTP允许传输任意类型的数据对象。
·无连接。无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
·无状态。HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
7)域名系统
域名系统(Domain Name System,DNS)(服务)协议是一种分布式网络目录服务,主要用于域名与IP地址的相互转换,以及控制因特网的电子邮件的发送。大多数因特网服务依赖于DNS来工作,一旦DNS出错,就无法连接Web站点,电子邮件的发送也会中止。DNS有如下两个独立的方面。
·定义了命名语法和规范,以利于通过名称委派域名权限。基本语法是:local.group.site。
·定义了如何实现一个分布式计算机系统,以便有效地将域名转换成IP地址。
在DNS命名方式中,采用了分散和分层的机制来实现域名空间的委派授权,以及域名与地址相转换的授权。通过使用DNS的命名方式来为遍布全球的网络设备分配域名,而这则是由分散在世界各地的服务器实现的。
理论上,DNS协议中的域名标准阐述了一种可用任意标签值的分布式的抽象域名空间。任何组织都可以建立域名系统,为其所有分布结构选择标签,但大多数DNS协议用户遵循官方因特网域名系统使用的分级标签。常见的顶级域有com、edu、gov、net、org,另外还有一些带国家和地区代码的顶级域,如cn、us、uk、hk等。
DNS的分布式机制支持有效且可靠的名字到IP地址的映射。多数名字可以在本地映射,不同站点的服务器相互合作能够解决大网络的名字与IP地址的映射问题。单个服务器的故障不会影响DNS的正确操作。DNS是一种通用协议,它并不仅限于网络设备名称。