系统架构设计笔记(15)—— 网络架构与协议

网络架构是指计算机网络的各层及其协议的集合。计算机之间要交换数据,就必须遵守一些事先约定好的规则,用于规定信息的格式及如何发送和接收信息的一套规则就称为网络协议。为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一 、 巨大的协议来为所有形式的通信规定完整的细节,而是将庞大而复杂的通信问题转化为若干个小问题,然后为每个小问题设计一个单独的协议。

计算机网络采用分层设计方法,按照信息的传输过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。

1 网络互联模型

1977 年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型( Open System Interconnection/Reference Model , OSI/RM ),从而形成了网络架构的国际标准。 OSI/RM 构造了由下到上的七层模型,分别是物理层 、 数据链路层 、 网络层 、 传输层 、 会话层 、 表示层和应用层。

1.1 OSI/RM 各层的功能

在数据传输过程中,每一层都承担不同的功能和任务,以实现对数据传输过程中的各个阶段的控制。

(1)物理层

物理层的主要功能是透明地完成相邻节点之间原始比特流的传输。其中 “ 透明 ” 的意思是指物理层并不需要关心比特代表的具体含义,而要考虑的是如何发送 “ 0 ” 和 “ 1 ” ,以及接收端如何识别。物理层在传输介质基础上作为系统和通信介质的接口,为数据链路层提供服务。

物理层的所有协议规定了不同种类的传输设备 、 传输媒介如何将数字信号从一端传送到另一端,而不管传送的是什么数据。它是完全面向硬件的,通过一系列协议定义了通信设备的机械 、 电气 、 功能和规程特征 。

  • 机械特征 : 规定线缆与网络接口卡的连接头的形状 、 几何尺寸 、 引脚线数 、 引线排列方式和锁定装置等一系列外形特征。
  • 电气特征 : 规定了在传输过程中多少伏特的电压用1表示,多少伏特用 0 表示 。
  • 功能特征 : 规定了连接双方每个连接线的作用,即哪些是用于传输数据的数据线,哪些是用于传输控制信息的控制线,哪些是用于协调通信的定时线,哪些是用于接地的地线。
  • 过程特征 : 具体规定了通信双方的通信步骤。
  • (2)数据链路层

    数据链路层负责在两个相邻节点之间的线路上无差错地传送以帧为单位的数据,通过流量控制和差错控制,将原始不可靠的物理层连接变成无差错的数据通道,并解决多用户竞争问题,使之对网络层显现一条可靠的链路。

    数据链路层通过一系列协议实现以下功能 。

  • 封装成帧 : 把数据组成一定大小的数据块 ( 帧 ) ,然后以帧为单位发送 、 接收和校验数据。
  • 流量控制 : 根据接收站的接收情况,发送数据的一方实时地进行传输速率控制,以免出现发送数据过快,接收方来不及处理而丢失数据的情况。
  • 差错控制 : 当接收到数据帧后,接收数据的一方对其进行检验,如果发现错误,则通知发送方重传 。
  • 传输管理 : 在发送端与接收端通过某种特定形式的对话来建立 、 维护和终止一批数据的传输过程,以此对数据链路进行管理。就发送端而言,数据链路层将来自上层的数据按一定规则转化为比特流送到物理层进行处理 ; 就接收端而言,它通过数据链路层将来自物理层的比特流合并成完整的数据帧供上层使用。最典型的数据链路层协议是 IEEE ( Institute of Electrical and Electronics Engineers ,美国电气和电子工程师协会 ) 开发的 802 系列规范,在该系列规范中将数据链路层分成了两个子层 : 逻辑链路控制层 ( Logic Link Control , LLC ) 和介质访问控制层 ( Media Access Control , MAC ) 。LLC 层负责建立和维护两台通信设备之间的逻辑通信链路 ; MAC 层控制多个信息通道复用一个物理介质, MAC 层提供对网卡的共享访问与网卡的直接通信。网卡在出厂前会被分配给唯一的由 12 位十六进制数表示的 MAC 地址 ( 物理地址 ) , MAC 地址可提供给 LLC 层来建立同一个局域网中两台设备之间的逻辑链路。
  • IEEE 802 规范目前主要包括以下内容:

    802 .3 以太网的 CSMA / CD ( Carrier Sense Multiple Access / Collision Detect,载波监听多路访问 / 冲突检测 ) 协议,其中 802 .3i 规定了 10Base-T 访问控制方法与物理层规范, 802 .3u规定了 100Base-T 访问控制方法与物理层规范, 802 .3ab 规定了 1000Base-T 访问控制方法与物理层规范, 802 .3z 规定了 1000Base-SX 和 1000ase-LX 访问控制方法与物理层规范 。 802 .4 令牌总线 ( Token Bus ) 访问控制方法与物理层规范。 802.5 令牌环访问控制方法 。 802.6 城域网访问控制方法与物理层规范 。 802.7 宽带局域网访问控制方法与物理层规范 。 802.8 FDDI 访问控制方法与物理层规范 。 802.9 局域网上的语音 / 据集成规范 。 802.10 局域网安全互操作标准 。 802.11 无线局域网 (Wireless Local Area Network , WLAN) 标准协议 。 802.12 100VG-Any 局域网访问控制方法与物理层规范 。 802.14 协调混合光纤同轴网络的前端和用户站点间数据通信的协议 。 802.15 无线个人技术标准,其代表技术是蓝牙技术 。 802.16 无线 MAN 空中接口规范。

    (3)网络层

    网络层是通信子网的最高层,其主要任务是在数据链路层服务的基础上,实现整个通信子网内的连接,并通过网络连接交换网络服务数据单元( packet )。

  • 通信双方并不相邻。在计算机网络中,通信双方可能是相互邻接的,但也可能并不是邻接的。当一个数据分组从发送端发送到接收端时,就可能要经过多个其他网络结点,这些结点暂时存储 “ 路过 ” 的数据分组,再根据网络的 “ 交通状况 ” 选择下一个结点将数据分组发出去,直到发送到接收方为止 。

  • 由于 OSI/RM 模型出现在许多网络协议之后,因此,为了与使用这些已经存在的网络协议的计算机进行互联,就需要解决异构网络的互联问题。

  • (4)传输层

    传输层既是负责数据通信的最高层,又是面向网络通信的低三层(物理层 、 数据链路层和网络层)和面向信息处理的高三层(会话层 、 表示层和应用层)之间的中间层,是资源子网和通信子网的桥梁,其主要任务是为两台计算机的通信提供可靠的端到端的数据传输服务。传输层反映并扩展了网络层子系统的服务功能,并通过传输层地址为高层提供传输数据的通信端口,使系统之间高层资源的共享不必考虑数据通信方面的问题。

    它的作用主要体现在以下两方面 :

  • 将一个较长的数据分成几个小数据包发送。在网络中实际传递的每个数据帧都是有一定大小限制的。假设如果要传送一个字串 “ 12345678 9 ” ,假设它太长了,网络服务程序一次只能传送一个数字 ,因此网络就需要将其分成 9 次来传递。就发送端而言,当然是从1传到 9 的,但是由于每个数据分组传输的路径不会完全相同 ( 因为它是要根据当时的网络 “ 交通状况而选择路径的 ) ,先传送出去的包,不一定会先被收到,因此接收端所收到的数据的排列顺序是与发送的顺序不同的。而传输层的协议就给每一个数据组加入排列组合的记号以便接收端能根据这些记号将它们重组成原来的顺序。
  • 解决通信双方不只有一个数据连接的问题。这个问题从字面上可能不容易理解,来看一个例子,如用一台计算机与另一台计算机连接复制数据的同时,又通过一些交谈程序进行对话。这个时候,复制的数据与对话的内容是同时到达的,传输的协议负责将它们分开,分别传给相应的程序端口,这也就是端到端的通信 。
  • (5)会话层

    会话层利用传输层提供的端到端数据传输服务,具体实施服务请求者与服务提供者之间的通信 、 组织和同步它们的会话活动,并管理它们的数据交换过程。会话层提供服务通常需要经过建立连接 、 数据传输和释放连接三个阶段。会话层是最薄的一层,常被省略。

    (6)表示层

    表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面。语义是数据的内容及其含义,它由应用层负责处理;语法是与数据表示形式有关的方面,例如,数据的格式 、 编码和压缩等。表示层主要用于处理应用实体面向交换的信息的表示方法,包括用户数据的结构和在传输时的比特流(或字节流)的表示。这样,即使每个应用系统有各自的信息表示法,但被交换的信息类型和数值仍能用一种共同的方法来描述。

    当接收数据时,数据是自下而上传输的 : 当发送数据时,数据是自上而下传输的。在网络数据通信的过程中,每一层要完成特定的任务。当传输数据的时候,每一层接收上一层格式化后的数据,对数据进行操作,然后把它传给下一层。当接收数据的时候,每一层接收下一层传过来的数据,对数据进行解包,然后把它传给上一层。这就实现了对等层之间的逻辑通信 。OSI/RM 模型并未确切描述用于各层的协议和服务,它仅仅告诉我们每一层该做些什么。

    (7)应用层

    应用层是直接面向用户的一层,是计算机网络与最终用户之间的界面。在实际应用中,通常把会话层和表示层归入到应用层,使 OSI/RM 成为一个简化的五层模型。

    1.2 TCP/IP 结构模型

    虽然 OSI / RM 已成为计算机网络架构的标准模型,但因为 OSI / RM 的结构过于复杂,实际系统中采用 OSI / RM 的并不多。目前,使用最广泛的可互操作的网络架构是 TCP / IP ( TransmissionControlProtocol / InternetProtocol ,传输控制协议 / 网际协议)结构模型。与 OSI / RM 结构不同,不存在一个正式的 TCP / IP 结构模型,但可根据已开发的协议标准和通信任务将其大致分成四个比较独立的层次,分别是网络接口层 、 网络互联层 、 传输层和应用层。

    (1)网络接口层

    网络接口层大致对应于 OSI/RM 的数据链路层和物理层, TCP/IP 协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层的接口规范。网络接口层处在 TCP/IP 结构模型的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。

    (2)网络互联层

    网络互联层也称为网络层 、 互联网层或网际层,负责将数据报独立地从信源传送到信宿,主要解决路由选择 、 阻塞控制和网络互联等问题,在功能上类似于 OSI/RM 中的网络层。

    (3)传输层

    传输层负责在信源和信宿之间提供端到端的数据传输服务,相当于 OSI/RM 中的传输层。

    (4)应用层

    应用层直接面向用户应用,为用户方便地提供对各种网络资源的访问服务,包含了 OSI/RM 会话层和表示层中的部分功能。

    2 常见的网络协议

    计算机网络的各层中存在着许多协议,它们是定义通过网络进行通信的规则。接收方与发送方同层的协议必须一致,否则,一方将无法识别另一方发出的信息。

    2.1 应用层协议

    在应用层中,定义了很多面向应用的协议,应用程序通过本层协议利用网络完成数据交互的任务。这些协议主要有 FTP、TFTP、HTTP、SMTP、DHCP、Telnet、DNS 和 SNMP 等。

    (1)FTP

    FTP ( FileTransport Protocol ,文件传输协议)是网络上两台计算机传送文件的协议,运行在 TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。 FTP 的传输模式包括 Bin (二进制)和 ASCII (文本文件)两种,除了文本文件之外,都应该使用二进制模式传输。 FTP 在客户机和服务器之间需建立两条 TCP 连接,一条用于传送控制信息(使用 21 号端口),另一条用于传送文件内容(使用 20 号端口)。

    (2)TFTP

    TFTP ( Trivial File Transfer Protocol ,简单文件传输协议)是用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂 、 开销不大的文件传输服务。 TFTP 建立在 UDP ( UserDatagramProtocol ,用户数据报协议)之上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。

    (3)HTTP

    HTTP ( Hypertext Transfer Protocol ,超文本传输协议)是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。 HTTP 建立在 TCP 之上,它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。

    (4)SMTP

    SMTP ( Simple Mail Transfer Protocol ,简单邮件传输协议)建立在 TCP 之上,是一种提供可靠且有效的电子邮件传输的协议。 SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息,并提供与电子邮件有关的通知。

    (5)DHCP

    DHCP ( Dynamic Host Configuration Protocol ,动态主机配置协议)建立在 UDP 之上,是基于客户机 / 服务器模型设计的。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的 IP 环境数据。 DHCP 通过租约(默认为8天)的概念,有效且动态地分配客户端的TCP / IP 设定。当租约过半时,客户机需要向 DHCP 服务器申请续租;当租约超过 87.5% 时,如果仍然没有和当初提供 IP 的 DHCP 服务器联系上,则开始联系其他的 DHCP 服务器。 DHCP 分配的 IP 地址可以分为三种方式,分别是固定分配 、 动态分配和自动分配。

    (6)Telnet

    Telnet (远程登录协议)是登录和仿真程序,建立在 TCP 之上,它的基本功能是允许用户登录进入远程计算机系统。以前, Telnet 是一个将所有用户输入送到远程计算机进行处理的简单的终端程序。目前,它的一些较新的版本是在本地执行更多的处理,可以提供更好的响应,并且减少了通过链路发送到远程计算机的信息数量。

    (7)DNS

    DNS ( DomainNameSystem ,域名系统)在 Internet 上域名与 IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成, DNS 就是进行域名解析的服务器。 DNS 通过对用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时, DNS 服务可以将此名称解析为与之相关的其他信息,例如, IP 地址。

    (8)SNMP

    SNMP ( SimpleNetworkManagementProtocol ,简单网络管理协议)是为了解决 Internet 上的路由器管理问题而提出的,它可以在 IP 、 IPX 、 AppleTalk 和其他传输协议上使用。 SNMP 是指一系列网络管理规范的集合,包括协议本身 、 数据结构的定义和一些相关概念。目前, SNMP 已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于 SNMP 的。

    (9)NFS

    网络文件系统,英文 NetworkFileSystem(NFS) ,是由 SUN 公司研制的 UNIX 表示层协议 (presentationlayerprotocol) ,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

    (10)POP3

    POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了 SSL 加密的 POP3 协议被称为 POP3S。

    2.2 传输层协议

    传输层主要有两个传输协议,分别是 TCP 和 UDP ( UserDatagramProtocol ,用户数据报协议),这些协议负责提供流量控制 、 错误校验和排序服务。

    (1)TCP

    TCP 是整个 TCP / IP 协议族中最重要的协议之一,它在 IP 协议提供的不可靠数据服务的基础上,采用了重发技术,为应用程序提供了一个可靠的 、 面向连接的 、 全双工的数据传输服务。 TCP 协议一般用于传输数据量比较少,且对可靠性要求高的场合。

    (2)UDP

    UDP 是一种不可靠的 、 无连接的协议,可以保证应用程序进程间的通信,与 TCP 相比, UDP 是一种无连接的协议,它的错误检测功能要弱得多。可以这样说, TCP 有助于提供可靠性,而 UDP 则有助于提高传输速率。 UDP 协议一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合。

    2.3 网络互联层协议

    网络互联层中的协议主要有 IP、ICMP ( Internet Control Message Protocol ,网际控制报文协议) 、IGMP ( Internet Group Management Protocol ,网际组管理协议) 、ARP ( Address Resolution rotocol ,地址解析协议)和 RARP (Reverse Address Resolution Protocol ,反向地址解析协议)等,这些协议处理信息的路由和主机地址解析。

    (1)IP

    IP 所提供的服务通常被认为是无连接的和不可靠的,它将差错检测和流量控制之类的服务授权给了其他的各层协议,这正是TCP/ IP 能够高效率工作的一个重要保证。网络层的功能主要由 IP 来提供,除了提供端到端的分组分发功能外, IP 还提供很多扩充功能。例如,为了克服数据链路层对帧大小的限制,网络层提供了数据分块和重组功能,这使得很大的 IP 数据包能以较小的分组在网络上传输。

    (2)ARP 与 RARP

    ARP 用于动态地完成 IP 地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为 MAC ( Media Access Control ,媒体访问控制)地址,每块网卡都有唯一的地址;RARP 用于动态完成物理地址向 IP 地址的转换。

    (3)ICMP

    ICMP 是一个专门用于发送差错报文的协议,由于 IP 协议是一种尽力传送的通信协议,即传送的数据可能丢失 、 重复 、 延迟或乱序传递,所以需要一种尽量避免差错并能在发生差错时报告的机制,这就是 ICMP 的功能。

    (4)IGMP

    IGMP 允许 Internet 中的计算机参加多播,是计算机用作向相邻多目路由器报告多目组成员的协议。多目路由器是支持组播的路由器,它向本地网络发送 IGMP 查询,计算机通过发送 IGMP 报告来应答查询。多目路由器负责将组播包转发到网络中所有组播成员。

    2.4 网络接口层协议

    网络互联层中的协议主要有 CSMA/CD 、Token Ring 与 FDDI。

    (1)CSMA/CD

    CSMA/CD(Carrier Sense Multiple Access with Collision Detection)即载波侦听多路访问/冲突检测,是广播型信道中采用一种随机访问技术的竞争型访问方法,具有多目标地址的特点。它处于一种总线型局域网结构,其物理拓扑结构正逐步向星型发展。CSMA/CD采用分布式控制方法,所有结点之间不存在控制与被控制的关系。

    (2)Token Ring

    令牌环网(Token Ring)是一种 LAN 协议,定义在 IEEE 802.5 中,其中所有的工作站都连接到一个环上,每个工作站只能同直接相邻的工作站传输数据。通过围绕环的令牌信息授予工作站传输权限。

    (3)FDDI

    光纤分布式数据接口(FDDI,Fiber Distributed Data Interface)是由美国国家标准化组织(ANSI)制定的在光缆上发送数字信号的一组协议。FDDI使用双环令牌,传输速率可以达到100Mb/s。由于支持高宽带和远距离通信网络,FDDI通常用作骨干网。

    2.5 端口

    在 TCP/IP 网络中,传输层的所有服务都包含端口号,它们可以唯一区分每个数据包包含哪些应用协议。端口系统利用这种信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所收到的 IP 包类型,并把它交给合适的高层软件。

    端口号和设备 IP 地址的组合通常称作插口 (socket)。 任何 TCP/IP 实现所提供的服务都用知名的 1~1023 之间的端口号。这些知名端口号由 Internet 号分配机构( Internet Assigned Numbers Authority, IANA) 来管理。例如, SMTP 所用的 TCP 端口号是 25,POP3 所用的 TCP 端口号是 110 , DNS 所用的 UDP 端口号为 53 , WWW 服务使用的 TCP 端口号为 80。FTP 在客户与服务器的内部建立两条 TCP 连接,一条是控制连接,端口号为 21 ;另一条是数据连接,端口号为 20。

    256~1023 之间的端口号通常由 Unix 系统古用,以提供一些特定的 UNX 服务。也就是说,提供一些只有 UNIX 系统才有的 、 其他操作系统可能不提供的服务。、

    在实际应用中,用户可以改变服务器上各种服务的保留端口号,但要注意,在需要服务的客户端也要改为同一端口号。

    3 网络地址与掩码

    连接到 Internet 上的每台计算机都必须有一个唯一地址,称为 IP 地址 。

    IPv4 地址是个4字节 ( 共 32 位 ) 的数字,被分为4段,每段8位,段与段之间用句点分隔。为了便于表达和识别, IP 地址以十进制形式表示 ( 例如212.152.200.12 ) ,每段所能表示的十进制数最大不超过255。 IP 地址由两部分组成,即网络号和主机号。网络号标识的是 Internet 上的一个子网,而主机号标识的是子网中的某台主机。

    3.1 IP 地址的分类

    IP 地址可分为5类,分别是 A 类 、 B 类 、 C 类 、 D 类和 E 类,大量使用的仅为 A 类 、 B 类 、 C 类。

  • A 类地址 : 最前面1位为 0 ,然后用7位来标识网络号, 24 位标识主机号 、 即 A 类地址的第一段取值介于 1~ 126 之间。 A 类地址通常为大型网络而提供,全世界总共只有 126 个可能的 A 类网络,每个 A 类网络最多可以连接 2的24次方-2 台主机 ( 有两个保留地址 ) 。
  • B类地址 : 最前面2位是10 ,然后用 14 位来标识网络号, 16 位标识主机号。因此, B 类地址的第一段取值介于 128~191 之间,第一段和第二段合在一起表示网络号。 B 类地址适用于中等规模的网络,每个 B 类网络最多可以连接 2的16次方-22 台主机 ( 有两个保留地址 ) 。
  • C 类地址 : 最前面3位是 110 ,然后用 21 位来标识网络号, 8位标识主机号。因此, C 类地址的第一段取值介于192~ 223之间,前三段合在一起表示网络号。最后一段标识网络上的主机号。 C 类地址适用于校园网等小型网络,每个 C 类网络最多可以有 2的8次方-2 台主机 ( 有两个保留地址 ) 。
  • D 类地址 : 最前面4位为1110 , D 类地址不分网络地址和主机地址,它是一个专门保留的地址。它并不指向特定的网络,目前 D 类地址被用在多点广播中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
  • E 类地址 : 最前面5位为11110 , E 类地址也不分网络地址和主机地址,为将来使用所保留。
  • 有几种特殊的情况需要注意,例如,主机号全为1的地址用于广播,称为广播地址。网络号全为 0 , 则后面的主机号表示本网地址。主机号全为 0 ,此时的网络号就是本网的地址。网络号全为1的地址和 32 位全为 0 的地址为保留地址。

    3.2 子网掩码

    子网指一个组织中相连的网络设备的逻辑分组。一般情况下,子网可表示为某地理位置内 ( 某大楼或相同局域网中 ) 的所有机器。将网络划分成一个个逻辑段 ( 即子网 ) 的目的是便于更好地管理网络,同时提高网络性能,增强网络安全性。另外,将一个组织内的网络划分成各个子网,只需要通过单个共享网络地址,即可将这些子网连接到 Internet 上,从而减缓了 Internet 中 IP 地址的耗尽趋势。

    掩码是一个 32 位进制数字,用点分十进制来描述,默认情况下,掩码包含两个域,分别为网络域和主机域。这些内容分别对应网络号和本地可管理的网络地址部分,通过使用掩码可将本地可管理的网络地址部分划分成多个子网。

    我们以 192.168.1.53/27 为例讲解。

    正常的 C 网,前面24位表示网络号,后面8位表示主机数。子网掩码是255.255.255.0,转换为 2进制后就是:

    11111111.11111111.11111111.00000000

    示例中的 /27 表示,网络号向主机号借了 3 位(27-24),用于扩充网络数量。所以子网掩码就变为:

    11111111.11111111.11111111.11100000

    10 进制表示为 255.255.255.224。

    这时,主机数可用位数变为 5 位(8-3),那么可用主机数就为 2的5次方 -2 =30 个。子网数为 2的3次方=8 个。

    4 IPv6

    互联网络能发展到当前的规模, IPv4 协议的建立功不可没。但同时它的缺点也已经充分显现出来,如地址空间耗尽 、 路由表急剧膨胀 、 缺乏对 QoS 的支持 、 本身并不提供任何安全机制 、 移动性差等问题。尽管采用了许多新的机制来缓解这些问题,如 DHCP 技术 、 NAT技术 、 CIDR技术等,但都不可避免地要引入其他新的问题,问题没有得到根本解决。于是 IETF 从 90 年代起就开始积极探讨下一代 IP 网络,经过几年努力,在广泛听取业界和专家意见的基础上,终于在 1995 年 12 月推出了下一代网络的 RFC 文档—— IPv6协议,该协议最早叫做下一代 IP ( IP NextGeneration, IPng)。现在它的全称是 “ 互联网协议第6版 ” ,即下一代的网际协议。

    QoS ( QualityofService ,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。 QoS 的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如 VoIP 和 IPTV 等,因为这些应用常常需要固定的传输率,对延时也比较敏感。

    4.1 IPv6 地址表示

    一个 32 位的 IPv4 地址以8个位为一段分成4段,每段之间用点 “.” 分开。而 IPv6 地址的 128 位,是以 16 位为一段,共分为8段,每段的 16 位转换为一个4位的 16 进制数字,每段之间用冒号“:”分开。

    如 RFC2373 所定义,有3种格式表示 IPv6 地址。首选格式是最长的表示方法,由所有的 32 (4 位 * 8 段)个 16 进制字符组成,如下面这个 128 位的 IPv6 地址用2进制表示为:

    00100000000000010000110110101000110100000000000100000000000000010000000000000000000000000000000000000000000000001100111011001101

    先把这 128 位按照 16 位一段分开:

    0010000000000001
    0000110110101000
    1101000000000001
    0000000000000001
    0000000000000000
    0000000000000000
    0000000000000000
    1100111011001101

    把每 16 位一段转换为4个字符表示的 16 进制,然后以冒号隔开,可以得到如下表示形式:

    2001: 0da8: d001: 0001: 0000: 0000: 0000: 0001

    上面这个地址就是首选格式,是一个适合于计算机“思维”的表示法。

    4.2 IPv6 压缩地址表示

    在 IPv6 中,常见到使用包含一长串 0 的地址,为了方便书写,对于每一段中的前导 0 可以进行省略。如前面的首选格式地址经过一次压缩,可以得到:

    2001: da8: d001: 1: 0: 0: 0: 1

    对于连续2段以上都为 0 的字段,可以使用 “ :: ” (两个冒号)来表示,这样再次压缩,变成:

    2001: da8: d001: 1:: 1

    这就是 IPv6 地址的压缩表示法。(注意:每个 IPv6 地址只允许有一个“:: ”)。

    4.3 内嵌 IPv4 地址的 IPv6 地址

    还有一种表示法就是在 IPv6 地址中使用内嵌的 IPv4 地址。这种表示法的地址的第一部分使用十六进制表示,而 IPv4 部分采用十进制。这是过渡机制所用的 IPv6 地址特有的表示法。如: fe80 :: 200 : 5efe : 58.20.27.60 ,这个 IPv6 地址的后半部分就是一个 IPv4 地址。

    4.4 IPv6 地址类型

    IPv4 有单播 、 广播和组播地址类型,在 IPv6 里面,广播已经不再使用了,这对网络管理员来说,应该是个好消息,因为在传统的 IP 网络中,出现的很多问题都是由于广播引起的。 IPv6 仍有3种地址类型,分别是单播 、 多播(也称作组播) 、 泛播(也称作任意播)。

    (1)单播 IPv6 地址

    单播地址唯一标识一个 IPv6 节点的接口。发送往单播地址的数据包最终传递给这个地址所标识的接口。为适应负载均衡, IPv6 协议允许多个接口使用相同的 IPv6 地址,只要它们对于主机上的 IPv6 协议表现为一个接口。

    (2)多播 IPv6 地址

    多播地址标识一组 IPv6 节点的接口。发送往多播地址的数据包会被该多播组所有的成员处理。

    (3)泛播 IPv6 地址

    泛播地址指派给多个节点的接口。发送往泛播地址的数据包只会传递给其中的一个接口,一般是相隔最近的一个接口。

    4.5 IPv6 的优势

    与 IPv4 相比, IPv6 具有以下几点优势:

    (1)更大的地址空间

    IPv4 中规定 IP 地址长度为 32 位,而 IPv6中 IP 地址的长度为 128 位。

    (2)更小的路由表

    IPv6 的地址分配一开始就遵循路由汇聚的原则,使路由器能在路由表中用一条记录表示一个子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

    (3)增强的组播支持和对流支持

    IPv6 增加了增强的组播支持和对流支持,使网络上的多媒体应用有了长足发展的机会,为服务质量( Quality of Service , QoS )控制提供了良好的网络平台。

    (4)对自动配置的支持

    这是对 DHCP 协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

    (5)更高的安全性

    在使用 IPv6 网络时,用户可以对网络层的数据进行加密,并对 IP 报文进行校验,极大地增强了网络的安全性。

    4.6 IPv4 到 IPv6 的过渡技术

    (1)双协议栈技术

    双栈技术通过节点对 IPv4 和 IPv6 双协议栈的支持,从而支持两种业务的共存。

    (2)隧道技术

    隧道技术通过在 IPv4 网络中部署隧道,实现在 IPv4 网络上对 IPv6 业务的承载,保证业务的共存和过渡。具体的隧道技术包括: 6to4 隧道; 6over4 隧道; ISATAP 隧道。

    (3)NAT-PT 技术

    NAT-PT 使用网关设备连接 IPv6 和 IPv4 网络。当 IPv4 和 IPv6 节点互相访问时, NAT-PT 网关实现两种协议的转换翻译和地址的映射。

    5 网络分类

    不同传输距离的网络可以分为局域网 、 城域网和广域网3种。局域网的相关技术是由处理近距离传输设计和发展而来的,而广域网的相关技术是由处理远距离传输设计和发展而来的,城域网则是为一个城市网络设计的相关技术 。

    5.1 局域网

    局域网 (Local Area Network , LAN ) 是在传输距离较短的前提下所发展的相关技术的集合,用于将小区域内的各种计算机设备和通信设备互联在一起组成资源共享的通信网络。在局域网中常见的传输媒介有双绞线 、 细粗同轴电缆 、 微波 、 射频信号和红外线等。

    其主要特点如下:

  • 距离短 : 0.1~25km ,复盖范围可以是一个建筑物内 、 一个校园内或办公室内 。
  • 速度快 : 4Mbps~1Gbps ,从早期的4Mbps 、 10Mbps及 100Mbps 发展到现在的 1000Mbps(1Gbps ) ,而且还在不断向前发展 。
  • 高可靠性 : 由于距离很近,传输相当可靠,有极低的误码率 。
  • 成本较低 : 由于覆盖的地域较小,因此传输媒介 、 网络设备的价格都相对较便宜,管理也比较简单。根据技术的不同,局域网有以太网(Ethernet ) 、 令牌环网络(TokenRing ) 、 AppleTalk网络和 Arcnet 网络等几种类型。现在,几乎所有的局域网都是基于以太网实现的。当然,随着应用需求的不断提高,也对局域网技术提出了新的挑战,出现了一批像 FDDI(Fiber Distributed Data Interface ,光纤分布式数据接口 ) 一样的技术 。
  • 5.2 广域网

    广域网 (Wide Area Network ,WAN ) 是在传输距离较长的前提下所发展的相关技术的集合,用于将大区域范围内的各种计算机设备和通信设备互联在一起组成一个资源共享的通信网络。其主要特点如下 :

  • 长距离 : 跨越城市,甚至联通全球进行远距离连接 。
  • 低速率 : 这是与局域网的速度相比而言的,一般情况下,广域网的传输速率是以 kbps 为单位的。现在也出现了许多像 ISDN(Integrated Services Digital Network ,综合业务数字网 ) 和 ADSL(Asymmetric Digital Subscriber Line ,非对称数字用户线路 ) 这样的高速广域网,其传输速率也能达到 Mbps 级,当然费用也大大地提高了。
  • 高成本 : 相对于城域网和局域网来说,广域网的架设成本是很昂贵的,当然它所带来的经济效益也是极大的 。
  • WAN 由通信子网与资源子网两部分组成,通信子网通常由通信结点和通信链路组成。通信结点往往就是一台计算机,它一方面提供通信子网与资源子网的接口,另一方面对其他结点而言又是一个存储转发结点。作为网络接口结点,它能提供信息的接口,并对传输及网络信息进行控制。通信子网中,软件必须遵循网络协议,实现对链路及结点存储器的管理,还必须提供与主处理器 、 终端集中器进行信息交换的接口。资源子系统是指连在网上的各种计算机 、 终端和数据库等。这不仅指硬件,也包括软件和数据资源。通信子网主要使用分组交换技术,根据网络通信原理,局域网与广域网的互联一般是通过第3层设备路由器实现的 。

    5.3 城域网

    城域网 (Metropolitan Area Network , MAN ) 的覆盖范围介于局域网和广域网之间,城域网的主要技术是 DQDB(Distributed Queue Dual Bus ,分布式队列双总线 ) ,即 IEEE802.6。DQDB 是由双总线构成的,所有的计算机都连接在上面。所谓宽带城域网,就是在城市范围内,以 IP(Internet Protocol ,网际协议 ) 和 ATM(Asynchronous Transfer Mode ,异步传输模式 ) 电信技术为基础,以光纤作为传输媒介,集数据 、 语音和视频服务于一体的高带宽 、 多功能及多业务接入的多媒体通信网络。

    6 虚拟局域网

    虚拟局域网 (Virtual Local Area Network , VLAN ) 是由一些主机 、 交换机或路由器等组成的一个虚拟的局域网。虚拟局域网超越了传统的局域网的物理位置局限,终端系统可以分布于网络中不同的地理位置,但都属于同一逻辑广播域 。

    6.1 VLAN 的功能

    管理员能够很容易地控制不同 VLAN 间的互相访问能力,可以将同一部门或属于同访问功能组的用户划分在同一 VLAN 中, VLAN 内的用户之间可以通过交换机或路由器相互连通。网络管理员甚至还可以通过 VLAN 的安全访问列表来控制不同 VLAN 之间的访问。

    VLAN 能够对广播信息进行有效的控制,最大限度地减少对终端工作站 、 网络服务器和处理关键业务数据的骨干部分的性能影响。采用 VLAN 还便于管理的更改,而整个网络范围内与用户增加 、 移动和物理位置变更相关的对管理工作的要求,也大为减少。这从很大程度上方便了网络系统的安全访问控制管理。

    通过 VLAN 运行机制,可以给网络安全带来很多好处,如信息只到达应该到达的地点,因此可防止大部分基于网络监听的入侵手段;通过 VLAN 设置的访问控制,也使在虚拟网外的网络结点不能直接访问虚拟网内结点。但是, VLAN 技术也带来了新的问题 : 执行虚拟网交换的设备越来越复杂,从而成为被攻击的对象 : 基于网络广播原理的入侵监控技术在高速交换网络内需要特殊的设置; 基于 MAC 的 VLAN 不能防止 MAC 欺骗攻击,因此采用基于 MAC 的 VLAN 划分将面临假冒 MAC 地址的攻击。因此, VLAN 的划分最好基于交换机端口,但这要求整个网络桌面使用交换端口或每个交换端口所在的网段机器均属于相同的 VLAN。

    如果一个 VLAN 跨越多个交换机,则属于同一 VLAN 的工作站要通过 Trunk ( 干道 ) 线路互相通信 。Tunk 是一种封装技术,它是一条点到点的链路,主要功能就是仅通过一条链路就可以连接多个交换机从而扩展已配置的多个 VLAN 。还可以采用通过 Trunk 技术和上级交换机级连的方式来扩展端口的数量,达到近似堆叠的功能,节省了网络硬件的成本,从而扩展整个网络。 Trunk 承载的 VLAN 范围,默认是 1~1005 ,用户可以修改,但必须有一个 Trunk 协议。使用 Trunk 时,相邻端口上的协议要一致。

    6.1.2 VLAN 的划分方法

    目前,实现 VLAN 的划分有多种方法:

    (1)按交换机端口号划分

    将交换设备端口进行分组来划分 VLAN ,例如,一个交换设各上的端口 1 、 2 、 5 、 7 所连接的客户工作站可以构成 VLAN A ,而端口 3 、 4 、 6 、 8 则构成 VLAN B 等。在最初的实现中, VLAN 是不能跨越交换设备的,后来进一步的发展使得 VLAN 可以跨越多个交换设备。目前,按端口号划分 VLAN 仍然是构造 VLAN 的一个最常用的方法。这种方法比较简单并且非常有效。但仅靠端口分组而定义 VLAN 将无法使得同一个物理分段 ( 或交换端口 ) 同时参与到多个 VLAN 中,而且更重要的是当一个客户站从一个端口移至另一个端口时,网管人员将不得不对 VLAN 成员进行重新配置。

    (2)按 MAC 地址划分

    由网管人员指定属于同一个 VLAN 中的各客户端的 MAC 地址。由于 MAC 地址是固化在网卡中的,故移至网络中另外一个地方时将仍然保持其原先的 VLAN 成员身份而无须网管人员对之进行重新的配置,从这个意义讲,用 MAC 地址定义的 VLAN 可以看成是基于用户的 VLAN 。另外,在这种方式中,同一个 MAC 地址可以处于多个 VLAN 中。这种方法的缺点是所有的用户在最初都必须被配置到 ( 手工方式 ) 至少 ー 个 VLAN 中,只有在这种手工配置之后方可实现对 VLAN 成员的自动跟踪。

    (3)按第三层协议划分

    在决定 VLAN 成员身份时,主要考虑协议类型 ( 支持多协议的情况下 ) 或网络层地址 ( 如 TCP/IP 网络的子网地址 ) 。这种类型的 VLAN 划分需要将子网地址映射到 VLAN ,交换设备则根据子网地址而将各机器的 MAC 地址同一个 VLAN 联系起来。交换设备将决定不同网络端口上连接的机器属于同一个 VLAN 。

    在第三层定义 VLAN 有许多优点。首先,可以根据协议类型进行 VLAN 的划分,这对于那些基于服务或基于应用 VLAN 策略的网管人员无疑是极具吸引力的。其次,用户可以自由地移动他们的机器而无需对网络地址进行重新配置,并且在第三层上定义 VLAN 将不再需要报文标识,从而可以消除因在交换设备之间传递 VLAN 成员信息而花费的开销。

    与前两种方法相比,第三层 VLAN 方法的最大缺点就是性能问题。对报文中的网络地址进行检査将比对帧中的 MAC 地址进行检査开销更大。正是由于这个原因,使用第三层协议进行 VLAN 划分的交换设备一般都比使用第二层协议的交换设备更慢。但第三层交换机的出现,大大改善了 VLAN 成员间的通信效率。

    (4) IP 组播 VLAN

    在这种方法中,各站点可以自由地动态决定 ( 通过编程的方法 ) 参加到哪一个或哪一些 IP 组播组中。一个 IP 组播组实际上是用一个 D 类地址表示的,当向一个组播组发送一个 IP 报文时,此报文将被传送到此组中的各个站点处。从这个意义上讲,可以将一个 IP 组播组看成是一个 VLAN 。但此 VLAN 中的各个成员都只具有临时性的特点。

    由 IP 组播定义 VLAN 的动态特性可以达到很高的灵活性,并且借助于路由器,这种 VLAN 可以很容易地扩展到整个 WAN 上。

    (5)基于策略的 VLAN

    基于策略的方法允许网络管理员使用任何 VLAN 策略的组合来创建满足其需求的 VLAN 。通过 VLAN 策略把设备指定给 VLAN ,当一个策略被指定到一个交换机时,该策略就在整个网络上应用,而设备被置入 VLAN 中。从设备发出的帧总是经过重新计算,以使 VLAN 成员身份能随着设备产生的流量类型而改变。

    基于策略的 VLAN 可以使用上面提到的任一种划分 VLAN 的方法,并可以把不同方法组合成一种新的策略来划分 VLAN。