【无标题】嵌入式-网络协议和体系结构&局域网

第三章网络协议和体系结构

第一节 网络协议和体系结构概述

一、网络协议的概念

根据第二章所介绍的数据通信基础知识可知,从通信的硬件设备来看,只要有终端、信道和交换设备,就能够使两个用户在硬件上建立起连接。但是要顺利地进行信息交换,或者说让通信网正常运转,仅有这些是不够的。为了保证通信正常进行,必须事先做一些规定,而且通信双方要正确执行这些规定,例如,使用哪种基带编码方式、差错编码和交换技术等。同时,只有通信双方在这些规定上达成一致,彼此才能够互相“理解”,从而确保通信的正常进行。这种通信双方必须遵守的规则和约定称为协议或规程。

协议的要素包括语法、语义和时序关系。语法规定通信双方“如何讲”,即确定数据格式、数据码型和信号电平等;语义规定通信双方“讲什么”,即确定协议元素的类型,如规定通信双方要发出什么控制信息、执行什么动作和返回什么应答等;时序关系则规定事件执行的顺序,即确定数据通信过程中通信状态的变化,如规定正确的应答关系等。

二、分层的思想

数据通信中从底层信号的编码一直到完整的数据分组的交换不仅技术十分复杂,涉及面很广,而且很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来,最典型的是采用分层的方式来组织协议。分层的核心思路是上一层的功能建立在下一层的功能基础上,并且在每一层内均要遵守一定的通信规则。在计算机网络中,按照分层的思想进行研究,具有以下几点好处。

1)各层次之间可相互独立。高层不需要了解低层的工作机制、使用设备和技术细节只需知道低层通过接口提供哪些服务。每一层都有一套清晰明确的功能和任务,这些功能和任务相对独立。这样就可以把复杂的网络问题分解成一层一层简单的模块,只要每个层次模块的问题解决了,整个网络的问题就解决了。

2)有较强的灵活性,便于实现和维护。计算机网络是一个复杂系统,如果按照整体进行规划和设计,需要考虑得非常周到,这一点是很难做到的。而进行了层次划分后,网络被分解为若干个更容易处理的部分,相关的理论研究、技术设计和产品制造就可以集中在某个更具体的领域,这样会更加有利于新技术和新产品的发展;并且当某个层次的技术发生变化时,不会影响网络的其他层次。

3)分层的思想有利于标准化。由于某一层次的功能和服务进行了明确的界定,就可以围绕这些确定的功能和服务制定相应的标准。

人们现在所使用的计算机网络就是按层次结构方式进行划分的,每一层都对上一层提供一定的服务,相邻的层次之间都要有一个接口(Interface),接口定义了下层向上层提供的命令和服务,相邻两个层次之间通过接口进行数据交换。网络中的每个层中都有产生和接受数据的元素,称为实体。实体可以是软件,如应用程序或进程等,也可以是硬件,如各种智能芯片。不同通信结点上同一层次中的实体构成了通信的双方,称为对等实体。对等实体之间的通信遵从了所在层次的相关协议,在实际通信过程中,除了最底层的物理介质,其他层次的对等实体是无法直接通信的,其必须将要通信的数据及控制信息一层层地向下传递,最终到达物理传输介质,才能实现对等实体间的通信。

三、网络体系结构

层次和协议的集合构成了网络的体系结构。体系结构研究的是网络系统各部分的组成及其相互关系。完整的体系结构应该包括整个计算机网络的逻辑组成和功能分配,定义和描述了用于计算机及其通信设施之间互联的标准和规范的集合,以便在统一的原则指导下进行计算机网络的设计、构造、使用和维护。一种体系结构应当具有足够的信息,以允许软件设计人员给每个层次编写实现该层协议的有关程序,即通信软件。早期许多计算机制造商开发了自己的通信网络体系结构,例如,IBM公司从20世纪60年代后期开始开发了系统网络体系结构(SystemsNetwork Architecture,SNA),并于1974年宣布了SNA及其产品;数字设备公司(DEC)也发展了自己的网络体系结构(DigitalNetwork Architecture,DNA)。各种通信体系结构的发展增强了系统成员之间的通信能力,但是,同时也产生了不同厂家之间的通信障碍,因此迫切需要制定全世界统一的网络体系结构标准。目前,典型的层次化体系结构有 OSI参考模型和TCP/IP参考模型两种。

第二节 OSI 参考模型

1984年,负责制定国际标准的国际标准化组织ISO吸取了 IBM的SNA和其他计算机厂商的网络体系结构,提出了开放系统互连(OpenSystemInterconnection)参考模型(OSI/ RM),简称OSI模型。所谓开放,是指按照这个标准设计和建成的数据通信网中的设备都可以互相通信。

一、OSI参考模型各层的功能

OSI参考模型采用分层结构化技术,将整个网络的通信功能分为7层,由低层至高层分别是物理层、数据链路层、网络层、传输层(运输层)、会话层、表示层和应用层,如图3.1所示。每一层都有特定的功能,并且上一层利用下一层的功能所提供的服务。在OSI参考模型中,各层的数据并不是从一端的第N层直接送到另一端的对应层,第N层接收第N+1层的协议数据单元(PDU),按第N层协议进行封装,构成第N层PDU,再通过层间接口传递给第N-1层,……,最后,数据链路层PDU(通常称为数据帧)传递给最底层的物理层。物理层数据在垂直的层次中自上而下地逐层传递,直至物理层,在物理层的两个端点进行物理通信,这种通信称为实通信,如图3-1所示的实线箭头路径。由于对等实体通信并不是直接进行,因而称为虚拟通信。终端设备,如图3-1中的主机A和B,实现的是OSI参考模型的全部7个层次的功能,中间系统(比如路由器)通常只实现物理层、数据链路层和网络层的功能。因此,OSI参考模型的物理层、数据链路层和网络层称为结点到结点层,传输层、会话层、表示层和应用层称为端到端层。

1.物理层

物理层的主要功能是在传输介质上实现无结构比特流传输。所谓无结构的比特流,是指不关心比特流实际代表的信息内容,只关心如何将0和1这些比特以合适的信号传送到目的地,因此,物理层要实现信号编码功能。物理层的另一项主要任务就是规定数据终端设备(DTE)与数据通信设备(DCE)之间接口的相关特性,主要包括机械、电气、功能和规程4个方面特性。机械特性也称物理特性,用于说明硬件连接接口的机械特点,如接口的形状、尺寸、插脚的数量和排列方式等;电气特性规定了在物理连接上,导线的电气连接及有关电路的特性,如信号的电平大小、接收器和发送器电路特性的说明、信号的识别,以及最大传输速率的说明等;功能特性用于说明物理接口各条信号线的用途,如接口信号线的功能分类等;规程特性指明利用接口传输比特流的全过程及各项用于传输的事件发生的合法顺序,包括事件的执行顺序和数据传输方式,即在物理连接建立、维持和交换信息时,收发双方在各自电路上的动作序列。这些功能都是由物理层的协议来完成的。典型的物理层协议包括RS-232、RS-449,以及其他网络通信标准中有关物理层的协议等。

2.数据链路层

数据链路层的主要功能是实现在相邻结点之间的数据可靠而有效地传输。数据在物理传输介质的传输过程中,不能保证没有任何错误发生。为了能实现有效的差错控制,就采用了一种以“帧”为单位的数据块传输方式。要采用帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称为“帧同步”)功能,包括定义帧的格式、类型和成帧的方法等。有了“帧”的存在,就可以将之前介绍的差错控制技术应用在数据帧中,例如,在数据码后面附加一定位数的循环码,从而实现数据链路层的差错控制功能。数据链路层还可以实现相邻结点间通信的流量控制。某些数据通信网络的数据链路层还提供连接管理功能,即通信前建立数据链路,通信结束后释放数据链路,这种数据链路的建立、维持和释放过程称为链路管理。数据链路层的另一个重要功能是寻址,即用来确保每一帧都能准确地传送到正确的接收方,接收方也应该知道发送方的地址,这在使用广播介质的网络中尤为重要,比如计算机局域网中广泛采用MAC 地址。

3.网络层

网络层解决的核心问题是如何将分组通过交换网络传送至目的主机,因此,网络层的主要功能是数据转发与路由。在交换网络中,信息从源结点出发,要经过若干个中继结点的存储转发后,才能到达目的结点。这样一个包括源结点、中继结点和目的结点的集合称为从源结点到目的结点的路径。一般在两个结点之间都会有多条路径选择,这种路由选择是网络层要完成的主要功能之一。当网络设备,比如路由器,从一个接口收到数据分组时,需要根据已掌握的路由信息将其转发到合适的接口向下一个结点发送,直至送达目的结点。此外,网络层还要对进入交换网络的通信量加以控制,以避免通信量过大造成交换网络性能的下降。当然,和数据链路层类似,网络层也要具备寻址功能,确保分组可以被正确传输到目的主机,比如Internet网络中的IP地址。

4.传输层

传输层是第一个端到端的层次,也是进程-进程的层次。数据的通信从表面上看是在两台主机之间进行,但实质上是发生在两个主机上的进程之间。OSI参考模型的前3层(自下而上)可组成公共网络,被很多设备共享,并且计算机-结点机、结点机-结点机是按照“接力”方式传送的。为了防止传送途中报文的丢失,两个主机的进程之间需要实现端到端控制。因此,传输层的功能主要包括复用/解复用(区分发送和接收主机上的进程)、端到端的可靠数据传输、连接控制、流量控制和拥塞控制机制等。

5. 会话层

会话层是指用户与用户的连接,它通过在两台计算机间建立、管理和终止通信来完成对话。会话层的主要功能是:在建立会话时核实双方身份是否有权参加会话;确定何方支付通信费用;双方在各种选择功能方面(如全双工还是半双工通信)取得一致;在会话建立以后,需要对进程间的对话进行管理与控制,例如,对话过程中某个环节出了故障,会话层在可能条件下必须保存这个对话的数据,使数据不丢失,如不能保留,那么终止这个对话,并重新开始。在实际的网络中,会话层的功能已经被应用层所覆盖,很少单独存在。

6.表示层

表示层主要用于处理应用实体间交换数据的语法,其目的是解决格式和数据表示的差别,从而为应用层提供一个一致的数据格式,从而使字符、格式等有差异的设备之间相互通信。除此之外,表示层还可以实现文本压缩/解压缩、数据加密/解密和字符编码的转换等功能。这一层的功能在某些实际数据通信网络中也是由应用层实现的,表示层也不独立存在。

7.应用层

应用层与提供给用户的网络服务相关,这些服务非常丰富,包括文件传送、电子邮件和 P2P应用等。应用层为用户提供了一个应用网络通信的接口。

OSI参考模型的7层中,1~3层主要完成数据交换和数据传输,称为网络低层,即通信子网;5~7层主要完成信息处理服务功能,称为网络高层;低层与高层之间由第4层衔接。

二、OSI 参考模型的有关术语

OSI 参考模型中每一层的真正功能是为其上一层提供服务。例如,N层的实体为(N+1)层的实体提供服务,N层的服务则需使用(N-1)层及更低层提供的功能服务。下面介绍OSI参考模型中常用的几个术语。

1.数据单元

在层的实体之间传送的比特组称为数据单元。在对等层之间传送数据单元是按照本层协议进行的,因此,这时的数据单元称为协议数据单元。图3-2显示出了层间数据单元的传送过程。

2.服务访问点

相邻层间的服务是通过其接口面上的服务访问点(ServiceAccessPoint,SAP)进行的, N层SAP就是(N+1)层可以访问N层的地方。每个SAP都有一个唯一的地址号码。

3.服务原语

第N层向(N+1)层提供服务,或第(N+1)层请求N层提供服务,都是用一组原语

(Primitive)描述的。OSI参考模型的原语有4类。

●请求(Request):用户实体请求服务做某种工作。

●指示(Indication):用户实体被告知某件事发生。

●响应(Response):用户实体表示对某件事的响应。

●确认(Confirm):用户实体收到关于它的请求的答复。

这4类原语的图解形式如图3-3所示。在通信过程的3个阶段中,每个阶段都可能用到

一些或全部原语。

图3-3说明了系统A中N+1层用户和系统B中N+1层用户之间建立通信联系时4种类型原语的应用。首先,系统A中N+1用户发出请求原语,调用本系统N服务提供者的一些程序,于是N服务提供者向对方发送一个或一组N-PDU。当系统B的N服务提供者收到N-PDU之后,向本系统的N+1用户发出指示原语,说明本系统的N+1用户需要调用一些程序,或者N服务提供者已经在同级服务访问点调用了一个程序。响应原语是由系统B的N+1用户发出的,这个响应原语是对N层协议的一个指令,以完成原来由指示原语调用的程序。N层协议产生一个PDU,传送至系统A的N层。系统A的N服务提供者发出证实原语,表示在服务访问点已经完成了由请求原语调用的程序。证实和响应可以是确认也可以是否认,这取决于具体情况。

4.面向连接和无连接

在分层的体系结构中,下层向上层提供服务通常有两种形式:面向连接的服务和无连接的服务。

面向连接的服务以电话系统最为典型,假设要和某人通话,其过程为:拿起电话一拨号码一接通一通话一挂断。网络中的面向连接服务类似打电话的过程。某一方欲传送数据,首先给出对方的全称地址,并请求建立连接,当双方同意后,双方之间的通信链路就建立起来。第二步是传送数据,通常以分组为单位,按序传送,不再标明地址,只标明所建立的链路号,并由接收方对收到的分组予以确认,称为可靠传送方式;不确认则称为不可靠传送方式。第三步当数据传送结束后,拆除链路。面向连接的服务又称为虚电路(Virtual Circuit, VC)服务。

无连接服务没有建立和拆除链路的过程,例如,邮政系统的用户在发送信件之前并不必与收信方进行任何消息交换。无连接服务又称为数据报(Datagram)服务,要求每一个分组信息带有全称地址,独立选择路径,其到达目的地的顺序也是不定的,到达目的地后,还要重新对分组进行排序。

第三节 TCP/IP参考模型

OSI参考模型更多的是一种理论上的体系结构,目前主要用于学习网络和讨论网络的一种工具。在实际数据通信网络中,作为Internet体系结构的TCP/IP参考模型则具有更现实的意义。

一、TCP/IP的产生

在互联网的前身ARPANET产生运作之初,连接在网络上的计算机并不多,大部分计算机之间互不兼容,在一台计算机上完成的工作很难拿到另一台计算机上去用,因此要想让硬件和软件都不一样的计算机联网是非常困难的事情。在这种背景下,当时的研究人员开始致力于建立一套大家能共同遵守的标准,可以使不同的计算机按照一定的规则进行信息的交流,从而实现资源的共享。

在确定今天互联网基础协议的过程中,有两个最重要人物:Vinton G.Cerf 和 Robert E.Kahn。以他们两位为首的研究小组,从20世纪70年代初期就开始了对网络互联协议的研究。1970年,VintonG.Cerf和RobertE.Kahn开发出最初的网络通信协议网络控制协议(NCP)。之后,他们开始研究新的网络协议框架,1974年,由他们制定的第一份传输控制协议(TCP)详细说明正式发表,接着TCP第二版、第三版相继问世,并且在美国和欧洲之间的网络进行了测试,取得了非常好的效果。1978年年初,研究小组提出将TCP用于处理信息路径选择的那部分功能分离出来,形成单独的互联网协议,简称IP。1978年,TCP正式变为TCP/IP。在TCP/IP中,TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给互联网的每一台计算机规定一个地址,从而能让数据进行准确地传递。1983年1月1日,长期运行的NCP被停止使用, TCP/IP作为互联网上所有主机间的共同协议开始运行,从此以后,TCP/IP作为一种必须遵守的规则被肯定和应用。

二、TCP/IP参考模型及功能介绍

用下列两个传输层协议之一进行数据传输:面向连接的传输控制协议(TCP)和无连接的用户数据报协议(UDP)。

2.传输层

当应用层的程序将用户数据按照特定应用层协议封装好后,接下来就由传输层的协议负责把这些数据传输到接收方主机上对等的应用层程序。传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制,之所以称为逻辑通信,是因为两个进程之间的通信就像所在的两个主机存在直接连接一样。其实,两个主机可能相距很远,两者的物理连接可能经过了多个交换机/路由器,传输路径可能由不同类型的物理链路组成。利用这种逻辑通信机制,两个进程可以不用考虑两者之间的物理连接方式而实现发送/接收消息。传输层协议可以解决(如果需要)诸如端到端可靠性、保证数据按照正确的顺序到达等问题。实际上,传输层负责在网络层和应用层之间传递消息,丝毫不会涉及消息如何在网络中传输,这个任务交给下面的网络互联层去解决。TCP/IP参考模型的传输层主要包括面向连接、提供可靠数据流传输的传输控制协议(TCP)和无连接、不提供可靠数据传输的用户数据报协议(UDP)。

3.网络互联层

网络互联层是整个TCP/IP参考模型的核心,主要解决把数据分组发往目的网络或主机的问题。在这个过程中,要为分组的传输选择相应的路径(路由选择),完成分组的转发,提供网络层寻址-IP地址。网络互联层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互联的任务。在TCP/IP参考模型中,网络互联层的核心协议是IP,负责定义分组的格式和传输。IP是无连接不可靠网络协议,因此,IP分组到达的顺序和发送的顺序可能不同,并且可能存在分组丢失现象。网络互联层还包括互联网控制报文协议(ICMP)、互联网多播组管理协议(IGMP),以及路由协议,如BGP、OSPF和RIP等。

4.网络接口层

实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层网络互联层一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。实际上,这一层包括OSI参考模型中的数据链路层和物理层,不同网络类型将上层的IP分组封装到数据帧中,实现有关的链路控制功能,最终以比特流的形式在不同的传输介质上进行传输。

在实际的数据通信过程中,用户的数据在应用层以报文的形式开始向下一层进行封装,形成段、数据报、帧,最后以比特流的形式进行传输。在中间结点处,例如路由器、交换机等,分别从对应的数据报、帧中取出并对相应的路由、地址信息进行处理,送达目的主机后由下层到上层开始逐层处理,并去掉相应的头部信息,最终还原为最初的报文。整个数据封装和传输的示意图如图3-5所示。

三、TCP/IP参考模型与 OSI 参考模型的区别

TCP/IP参考模型与OSI参考模型有很多相似之处,都是按照分层的思想对计算机网络进行模块化设计,形成了一组自上而下的单向依赖关系的协议栈,两者的区别主要包括以下

几个方面。

1)层次划分的不同。OSI参考模型将网络划分为7层,而TCP/IP参考模型只有4层。两者都有网络层(互联层)、传输层和应用层,TCP/IP中没有表示层和会话层,而且将OSI模型中物理层和数据链路层的功能合并起来放到了网络接口层进行描述。

2)面向连接的和面向无连接的通信的不同。OSI参考模型在网络层支持面向连接的和面向无连接的通信,在传输层仅有面向连接的通信;而TCP/IP模型在网络层仅有面向无连接的通信,但在传输层支持两种方式,给用户提供选择的机会。

3)与具体协议的配合程度。OSI参考模型产生在具体协议发明之前,并没有偏向某种特定的协议,因此具有很好的通用性,但由于设计者之前没有实际的协议设计经验,因此很多功能不知道该放置在哪一层。而TCP/IP模型是先有的TCP、IP等具体协议,再在这些协议基础上建立的参考模型,因此对协议配合得很好。

第四节TCP 和 UDP

TCP/IP 参考模型是Internet的基础框架,其中包含的主要协议有网络互联层的网络互连协议(IP),传输层的传输控制协议(TCP)和用户数据报协议(UDP),以及应用层的域名系统(DNS)、超文本传输协议(HTTP)和文件传输协议(FTP)等。有关网络互联层和应用层的协议内容将在本书后面章节进行详细介绍,本章将主要介绍TCP和UDP的相关基础知识。

一、TCP/IP参考模型中的传输层

在TCP/IP参考模型中,传输层的功能主要包括:为应用进程之间提供端到端的逻辑通信,传输层通常还对收到的报文进行差错检测;某些传输层协议进行端到端的数据传输可控性控制;传输层协议要针对应用层实现复用与解复用(Multiplexing/Demultiplexing)的功能等。TCP/IP中规定了两种不同的传输层协议:面向连接的传输控制协议(TCP)和无连接的用户数据报协议(UDP)。

传输层为了支持运行在不同主机、不同操作系统上的应用进程之间能够互相通信,必须用统一的寻址方法对TCP/IP体系的应用进程进行标识。解决方法就是在传输层使用协议端口号(Protocol Port Number),或简称为端口(Port)。在Internet中,一台拥有IP地址的主机可以提供许多服务,如Web服务、FTP服务和电子邮件服务等,这些服务使用不同的应用进程,但都使用同一个IP地址进行数据通信。而要让主机能够区分不同的网络服务,仅仅依靠IP地址是不够的,因为IP地址与网络服务的关系是一对多的关系。在TCP/IP中,是通过“IP地址+端口号”来唯一标识通信中的端点,其中,IP地址用于标识网络中的主机,而端口号用于标识是哪一个服务或应用进程。

端口号是一个16位的二进制整数,根据端口号的大小,端口可以分为熟知端口、注册端口和客户端口等。端口号为0~1023的端口为熟知端口,熟知端口被固定分配给一些服务。比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等。1024~49151为登记端口号,为没有熟知端口号的应用程序使用,必须在IANA登记,以防止重复;49152~65535为客户端口号或短暂端口号,留给客户进程选择暂时使用。

传输层提供无连接与面向连接两类服务,其中无连接服务是指数据传输之前无需与对端进行任何信息交换,即“握手”,直接构造数据分组,直接发送出去;面向连接服务是指在数据传输之前,需要交换一些控制信息,建立连接(辑连接),然后再传输数据,数据传输结束后还需要再拆除连接。Internet网络提供无连接服务的传输层协议是UDP,提供面向连接服务的传输层协议是TCP。

二、UDP

在介绍TCP之前,首先来看看另外一种传输层协议-用户数据报协议(UDP)。如前文所述,UDP是一种无连接的传输层协议,UDP数据报结构如图3-6所示。

数据报的长度字段是指包括首部和数据部分在内的总字节数。因为首部的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含首部在内的数据报的最大长度为65535B。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192B。

UDP使用首部中的检验和字段值来保证数据的安全。检验和字段值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送方和接收方的检验和计算值将不会相符,由此UDP可以检测是否出错。

UDP的工作机制主要包括以下几个方面。

1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当UDP想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它发送到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

3)UDP数据报的首部很短,只有8个字节,相对于TCP的20个字节首部,其数据报的额外开销很小。

4)吞吐量不受拥塞控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

5)UDP使用最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。

6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

虽然 UDP 是一个不可靠的协议,但它非常适合对于速率要求高、而对精确度要求相对较低的网络应用,尤其是各种多媒体实时业务,如视频会议、视频点播和网络电话等。

三、TCP

TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在TCP/IP参考模型中,TCP位于网络互联层之上,应用层之下。由于IP不提供可靠的通信服务,因此主机之间要实现可靠的数据传输,需要使用TCP的传输控制。应用层向TCP层发送用于网间传输的、用字节表示的数据流,然后TCP把数据流分成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元MTU的限制)。之后,TCP把结果数据报传给网络互联层的IP,由它来通过网络将数据报传送给接收端实体的TCP。TCP为了保证不发生数据报的丢失,就给每个数据报一个序号,同时序号也保证了传送到接收端实体的数据报的按序接收。然后接收端实体对已成功收到的数据报发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据报就被假设为已丢失,将会被重传。TCP用一个检验和函数来检验数据是否有错误,在发送和接收时都要计算检验和。

TCP数据报首部的结构如图3-7所示。

各个字段的具体解释如下。

1)源端口号与目的端口号字段分别占16位,标识发送该数据报的源端口和目的端口。

2)序号字段与确认序号字段分别占32位。TCP的序号是对每个应用层数据的每个字节进行编号,因此每个TCP段的序号是该段所封装的应用层数据的第一个字节的序号。确认序号是期望从对方接收数据的字节序号,即该序号对应的字节尚未收到,该序号之前的字节已被全部正确接收,也就是说,TCP采用累积确认机制。

3)首部长度字段占4位,指出TCP段的首部长度,以4B为计算单位。

4)保留字段占6位,保留为今后使用,目前置为0。

5)URG、ACK、PSH、RST、SYN和FIN字段各占1位,共占6位。各字段的具体含义是:URG=1时,表明紧急指针字段有效,通知系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据);ACK=1时,标识确认号字段有效,当ACK=0时,确认号无效;TCP收到PSH=1的段时,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付;当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接;SYN=1时,表示这是一个建立新连接请求控制段或者是同意建立新连接的确认段;FIN用来释放一个TCP连接,当FIN=1时,表明该TCP段的发送端的数据已发送完毕,并请求释放TCP连接。

6) 窗口字段占16位,用于向对方通告接收窗口大小(单位为字节),其值是本端接收对方数据的缓存剩余空间,用于实现TCP的流量控制。

7)检验和字段占16位,检验和字段检验的范围类似于UDP,包括了TCP首部和用层数据。

8)紧急指针字段占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

9)选项字段(长度可变)。TCP最初只规定了一种选项,即最大段长度MSS,用于通告对方TCP:“我的缓存能接收的数据段的最大长度是MSS个字节”。注意MSS只计数应用层数据字节数,不包括段首部。其他选项还包括:窗口扩大选项(占3B),其中一个字节表示移位值S,新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小;时间戳选项(占10B),其中最主要的是字段时间戳值字段(4B)和时间戳回送回答字段(4B);选择确认(SACK)选项,TCP默认采用累积确认机制,如果要使用选择确认,那么在建立TCP连接时,就要在TCP首部的选项中加上

“允许SACK”的选项,并且双方必须都事先商定好。

10)填充字段,长度为0-3个字节,取值全为0,为的是使整个首部长度是4B的整数倍。

TCP是面向连接的传输协议,其连接功能是通过TCP的连接管理实现的,TCP连接管理包括连接建立、数据传输和连接拆除3个阶段。TCP连接建立过程中要解决以下3个问题。

1)要使通信的双方能够确知对方的存在。

2)要允许双方协商通信过程中的相关参数。

3)能够对传输实体的资源进行分配。

TCP连接的建立采用客户/服务器方式。主动发起连接建立的应用进程为客户,被动等待连接建立的应用进程为服务器。TCP连接的建立过程可以形象地描述为“三次握手”。假设A主机运行TCP客户程序,B主机运行TCP服务器程序,则A与B建立TCP连接的过程如下。

1)A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择初始序号 seq=x,表明传送数据的第一个字节的序号是x。(第一次握手)

2)B的TCP收到连接请求报文段后,如同意,则发回确认。B在确认报文段中应使 SYN=1,ACK=1,其确认序号ack_ seq=x+1,自己选择的初始序号seq=y。(第二次握手)

3)A收到此确认报文段后向B给出确认,其中ACK=1,SYN=0,seq=x+l,ack_seq=y+1。(第三次握手)

注意:第一次握手和第二次握手段不携带数据,第三次握手段可以携带数据,也就是说,A给B发送数据的第一个字节序号为(x+1),同理,B给A发送数据的第一个字节的序号为(y+1),即SYN=1的段会空耗一个序号。

TCP的连接建立完成后,就可以进行数据传送。数据传送结束后,还需要进行连接拆除,TCP的连接拆除需要经过4次握手过程。

1)TCP通信的双方都可以拆除连接,假设拆除连接由A发起,则A向B发送释放连接控制报文段,并停止再发送数据。控制报文段首部中的终止控制位FIN位置为1,其序号 seq=u,然后A等待B的确认。

2)B收到A发出的释放连接控制报文段后,立即向A发送确认报文段,确认报文段的 ACK位置为1,确认序号ack_seq=u+1,设确认报文段自己的序号seq=v。A 收到来自B的确认后,进入等待状态,等待B发出的释放连接控制报文段。

3)如果B已经没有要向A发送的数据,则B向A发送释放连接控制报文段,其首部中 FIN位置为1,假设此时B要发送的报文段序号seq为w,而确认序号ack_seq 仍然为u+1。

4)A收到B的释放连接控制报文段后,要向B发送确认报文段,其中的ACK位置为1,序号seq=u +1,确认序号ack_seq=w+1。B收到该确认报文段后,可以马上释放连接; A在发出该确认段后,延迟一段时间即释放连接。

TCP 能够提供可靠的数据传输服务,是通过以下工作机制来实现的。

1)应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(Segment)。

2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,则认为该报文段被丢失,将重发这个报文段。当TCP收到发自 TCP连接另一端的数据时,它将发送一个确认。

3)TCP首部中设有检验和字段,用于检测数据在传输过程中是否发生变化。如果收到段的检验和有差错,TCP将丢弃这个报文段并不确认收到此报文段(希望发送端超时并重发)。

4)由于TCP报文段作为IP数据报来传输,而IP数据报的到达可能会经过不同的路径,从而造成顺序的错乱,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

5)由于存在网络延迟和重传机制,TCP的接收端有可能会收到多个重复的报文段,这时接收端要对重复的报文段进行丢弃。

6)TCP能够提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

流量控制(Flow Control)是TCP的重要功能,流量控制的目的是使发送端的数据发送速率不要太快,确保接收端能够来得及接收,即接收端的数据缓存不会溢出。为此,接收端(接收端与发送端是相对的,因为TCP是全双工的)在给发送端发送数据段(ACK=1)或单纯确认段时,通告剩余接收缓存空间作为接收窗口,发送端在接下来发送数据段时,控制未确认段的应用层数据总量不超过最近一次接收端通告的接收窗口大小,从而确保接收端不会发生缓存溢出。

拥塞控制(CongestionControl)也是TCP的一项重要功能,TCP的拥塞控制机制是从端到端的角度推测网络是否发生拥塞,如果推断网络发生拥塞,则立即将数据发送速率降下来,以便缓解网络拥塞。TCP的拥塞控制采用的也是窗口机制,通过调节窗口的大小实现对数据发送速率的调整。TCP的发送端维持一个称为拥塞窗口cwnd的变量,单位为字节,用于表示在未收到接收端确认的情况下,可以连续发送的数据字节数。cwnd的大小取决于网络的拥塞程度,并且动态地发生变化。拥塞窗口调整的原则是:只要网络没有出现拥塞,就可以增大拥塞窗口,以便将更多的数据发送出去,相当于提高发送速率;一旦网络出现拥塞,拥塞窗口就减小一些,减少注入网络的数据量,从而缓解网络的拥塞。发送端判断网络发生拥塞的依据是:发送端设置一个重传计时器RTO,对于某个已发出的数据报文段,如果在RTO计时到期后,还没有收到来自接收端的确认,则认为此时网络发生了拥塞。TCP的拥塞控制算法包括慢启动(Slow.Start)、拥塞避免(Congestion Avoidance)、快速重传(FastRetransmit)和快速恢复(FastRecovery)4部分。慢启动算法作用在TCP数据传输的开始阶段,当主机开始发送数据时,因为不知道网络中的负荷情况,如果立即发送大量的数据,有可能会引起网络的拥塞。因此,TCP采用试探的方法,逐渐增大拥塞窗口。通常在刚开始发送数据报文段时,先将拥塞窗口cwnd设置为一个TCP最大段长度MSS 的值。而在每收到一个数据报文段的确认后,cwnd就增加一个MSS的数值。这样就可以逐渐增大发送端的拥塞窗口,使数据注入网络的速率比较合理。如果定义从发送端发出一个数据报文段到收到这个数据报文段的确认的时间间隔为往返时间RTT,则在慢启动阶段,每经过一个RTT, cwnd 的值就加倍。为了防止拥塞窗口增长过快而引起网络拥塞,TCP还需要设置一个慢启动阈值ssthresh,当拥塞窗口的值增加到ssthresh时,就要减缓拥塞窗口的增长速度,具体的做法是每经过一个RTT,拥塞窗口cwnd的值加1(单位为MSS),这样就可以使cwnd按线性规律缓慢增长,这个过程称为“加性增加”(Additive Increase)算法。通常情况下,拥塞窗口cwnd的初值被设置为1,慢启动阈值ssthresh的初值被设置为16。当拥塞避免算法执行到某个时刻,发送端在规定时间内没有收到接收端的确认,即发生了网络超时,则意味着网络发生了拥塞。此时,发送端首先将ssthresh的值变为发生超时时cwnd值的一半,同时将 cwnd 的值置为1,重新执行慢启动算法。这样做的好处是,当网络频繁出现拥塞时,s- thresh 下降得很快,可以大大减少注入网络中的数据报文段。通常称这个过程为“乘性减小”(Multiplicative Decrease)算法。TCP中的“加性增加”和“乘性减小”算法合起来称为AIMD算法。

慢启动和拥塞避免是1988年提出的拥塞控制算法,1990年在此基础上又增加了快速重传和快速恢复两个算法。

快速重传算法的基本思想是:接收端每收到一个失序的数据报文段后就立即发出重复确认,以便更早地通知发送端有丢包的情况发生。假设在某个TCP数据传输过程中,接收端依次收到发送端发出的1号和2号数据报文段,并对这两个数据报文段发送确认后,没有按次序收到3号数据报文段,而是收到了4号,这时就需要立即向发送端发送一个2号数据报文段的确认,称为重复确认。同理,如果继续收到5号、6号数据报文段,接收端仍然要向发送端发出2号数据报文段的重复确认。此时,发送端会收到多个2号数据报文段的重复确认,则认为3号数据报文段发生了丢包,需要立即向接收端重传3号数据报文段,而不需要等待重传计时器到时再重传。快速重传算法中规定,如果收到某数据报文段的3个重复确认,则立即重传下一个数据报文段。

快速恢复是配合快速重传使用的算法,其基本思想是:当发送端连续收到3个重复确认时,就将慢启动阈值ssthresh减半,以预防网络拥塞的发生,并且将拥塞窗口cwnd的值置为减半后的ssthresh,然后开始执行拥塞避免算法,使得cwnd缓慢地加性增大。

TCP拥塞控制算法描述如下。

本 章小结

为了保证通信正常进行,必须事先做一些规定,而且通信双方要正确执行这些规定。只有通信双方在这些规定上达成一致,彼此才能够互相“理解”,从而确保通信的正常进行。这种通信双方必须遵守的规则和约定称为协议或规程。协议的要素包括语法、语义和时序关系。语法关系规定通信双方“如何讲”,即确定数据格式、数据码型和信号电平等;语义关系规定通信双方“讲什么”。即确定协议元素的类型,如规定通信双方要发出什么控制信息、执行什么动作和返回什么应答等;时序关系则规定事件执行的顺序,即确定数据通信过程中通信状态的变化,如规定正确的应答关系等。

数据通信技术十分复杂,涉及面很广,而且很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来,即分层的方法。分层的核心思路是上一层的功能建立在下一层的功能基础上,并且在每一层内均要遵守一定的通信规则。

层次和协议的集合构成了网络的体系结构。体系结构研究的是网络系统各部分的组成及其相互关系。完整的体系结构应该包括整个计算机网络的逻辑组成和功能分配,定义和描述了用于计算机及其通信设施之间互联的标准和规范的集合,以便在统一的原则指导下进行计算机网络的设计、构造、使用和维护。典型的层次化体系结构有OSI参考模型和TCP/IP参考模型两种。

国际标准化组织ISO提出了开放系统互连(OpenSystemInterconnection)!参考模型(OSI/RM),将整个网络的通信功能分为7层,由低层至高层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,每一层都有特定的功能,并且上一层利用下一层的功能所提供的服务。OSI参考模型中几个重要概念如下。

1)数据单元:在层的实体之间传送的比特组称为数据单元。在对等层之间传送数据单元是按照本层协议进行的,因此,这时的数据单元称为协议数据单元。

2)服务访问点:相邻层间的服务是通过其接口面上的服务访问点(ServiceAccess Point,SAP)进行的,N层SAP就是(N+1)层可以访问N层的地方。每个SAP都有一个唯一的地址号码。

3)服务原语:第N层向(N+1)层提供服务,或第(N+1)层请求N层提供的服务,都是用一组原语(Primitive)描述的。OSI参考模型的原语包括请求、指示、响应和确认4类。

4)面向连接和无连接:网络中的面向连接服务类似打电话的过程。某一方欲传送数据,首先给出对方的全称地址,并请求建立连接,当双方同意后,双方之间的通信链路就建立起来。第二步是传送数据,通常以分组为单位,按序传送,不再标称地址,只标称所建立的链路号,并由收方对收到的分组予以确认,称为可靠传送方式;不确认则称为不可靠传送方式。第三步当数据传送结束后,拆除链路。无连接服务没有建立和拆除链路的过程,要求每一个分组信息带有全称地址,独立选择路径,其到达目的地的顺序也是不定的,到达目的地后,还要重新对分组进行排序。

OSI参考模型更多的是一种理论上的体系结构,目前主要用于学习网络和讨论网络的一种工具。在实际数据通信网络中,作为Internet体系结构的TCP/IP参考模型则具有更现实的意义。TCP/IP参考模型包括4层,从低到高依次是网络接口层、网络互联层、传输层和应用层。

TCP/IP参考模型与OSI参考模型的不同之处在于:OSI参考模型将网络划分为7层,而 TCP/IP参考模型只有4层。OSI参考模型在网络层支持面向连接的和面向无连接的通信,在传输层仅有面向连接的通信;而TCP/IP模型在网络层仅有面向无连接的通信,但在传输层支持两种方式,给用户提供选择的机会。OSI参考模型产生在具体协议发明之前,并没有偏向某种特定的协议,因此具有很好的通用性,但由于设计者之前没有实际的协议设计经验,因此很多功能不知道该放置在哪一层。而TCP/IP模型是先有的TCP、IP等具体协议,再在这些协议基础上建立的参考模型,因此对协议配合得很好。

在TCP/IP参考模型中,传输层为了支持运行在不同主机、不同操作系统上的应用进程之间能够互相通信,使用协议端口号标识不同的服务或应用进程。端口号是一个16位整数,根据端口号的大小,端口可以分为熟知端口、注册端口和客户端口等。在TCP/IP中规定了两种不同的传输层协议:面向连接的传输控制协议(TCP)和无连接用户数据报协议(UDP)。

UDP是一个无连接的尽最大努力的传输协议,对上层报文不做处理,传输数据之前源端和终端不建立连接,也不维护连接状态,采用很短的首部,没有拥塞控制算法,适合对速率要求高,而对精确度要求相对较低的实时业务传输。

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,在TCP/IP簇中, TCP位于IP层之上,应用层之下。TCP的连接管理包括连接建立与连接拆除。TCP连接建立通过3次“握手”过程,连接拆除需要经过4次“握手”过程。TCP为每一个数据报分配一个序号,保证了传送到接收端实体的数据报按序接收。接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失,将会被重传。TCP还包含了流量控制和拥塞控制机制。

思考题与练习题

1.网络协议包括的三要素是什么?

2.在计算机网络中使用分层的思想有哪些好处?

3.什么是网络体系结构?网络体系结构研究的对象是什么?

4.简述 OSI参考模型的层次划分。

5.简述 OSI参考模型的物理层、数据链路层、网络层、传输层和应用层的主要功能。

6.OSI参考模型的服务原语有哪些类型?各种类型原语的功能是什么?

7.数据通信中,面向连接的服务和无连接的服务含义各是什么?

8.简述 TCP/IP参考模型的层次划分,以及与OSI参考模型的主要区别。

9.HTTP、SMTP、FTP、UDP、TCP、IP、ICMP和OSPF等协议分别属于TCP/IP参考模型的哪个层次?

10.分别指出TCP/IP中的熟知端口、注册端口和客户端口的端口号范围。11.简述UDP的数据报结构和主要工作机制。

12.简述TCP首部结构中URG、ACK、PSH、RST、SYN和FIN标志位字段的作用。13.简述TCP建立连接的“三次握手”过程和拆除连接的“四次握手”过程。14.简述TCP流量控制的基本原理。15.TCP拥塞控制的基本算法有哪些?

16.简述“加性增加,乘性减小”的AIMD算法的基本思想。

第四章局域网技术

第一节 局域网概述

如本书第一章中所述,局域网是计算机网络的一种具体应用形式,也是互联网的重要组成部分。局域网可以将范围在几十米到几千米内的计算机设备连接起来实现数据的高速通信,非常适用于大楼、车间、办公室、校园和家庭等用户环境。有了局域网,各种企事业单位就可以实现文件管理、应用软件共享、打印共享和电子邮件等功能,网络中的用户还可以通过局域网接人Internet,获得更多的互联网服务。

局域网的研究开始于20世纪70年代初,一些大学和研究机构提出了不同的局域网技术设计思想,如由美国加州大学设计的Newhall环网,由英国剑桥大学设计的CambridgeRing环网,由IBM公司设计的令牌环网,以及由通用汽车公司设计的令牌总线网等。1975年,美国施乐公司(Xerox)研制出了基于总线的局域网产品以太网(Ethernet),以太网用曾经在历史上表示传播电磁波的物质-以太(Ether)来命名。1980年,DEC公司、Intel公司和施乐公司联合提出了以太网规约的第一个版本DIXV1,1982年又修改为第二版规约 DIX V2。到了20世纪80年代,局域网已经得到了广泛的应用,在局域网技术领域占主导地位的技术主要有以太网、令牌环网和令牌总线网3种,市场上有很多基于这3种技术的局域网产品,它们的数据格式和控制方式各不相同。为了解决局域网技术标准化的问题,美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)在1980年成立了局域网标准委员会,简称IEEE802委员会,专门从事局域网标准化工作,其制定的相关标准也以IEEE 802来命名。IEEE802标准主要研究的是局域网内部的数据传输与控制,无须考虑路由和交换的问题,因此可以只对应OSI参考模型的数据链路层和物理层两个层次。数据链路层用于信息帧的传送与控制,物理层负责物理连接和实现比特流的传输。

为了将多种局域网技术纳人一个统一的协议模型,IEEE802委员会提出将数据链路层划分为两个子层:逻辑链路控制子层(LogicalLinkControl,LLC)和介质访问控制子层( Media Access Control,MAC)。与接入各种传输介质有关的内容都放在MAC子层,包括将上层数据封装成帧进行发送、寻址和比特差错检测等;LLC层负责与介质接入无关的内容,包括建立和释放数据链路层的逻辑连接、提供帧序号、提供高层接口和差错控制等。不同的局域网产品在MAC子层和物理层可以采用不同的技术和协议,但在LLC子层必须采用相同的技术和协议,即:不管局城网采用什么物理传输介质、介质访问方法及MAC帧结构,LLC子层统一将它们封装到相同格式的LLC帧中。这样在进行网络互联时,网络层就可以不考虑局域网的传输介质、拓扑结构和介质访问方法等问题,只需处理格式统一的LLC帧即可。

IEEE 802委员会为局域网制定了一系列标准,并且根据技术的发展不断地更新,主要标准及任务如表4-1所示。

IEEE 802委员会最初的想法是形成统一的局域网标准,但由于各生产厂商在市场竞争中势均力敌,因此只能为主流的局域网技术分别制定标准,如以太网标准IEEE802.3、令牌总线网标准IEEE 802.4和令牌环网标准IEEE802.5。由于以太网的开放性特点,它得到了更多软硬件生产厂商的支持,逐渐在竞争中脱颖而出,在校园网、企事业单位内部网等局域网环境中,几乎采用的都是以太网技术和产品。因此在局域网中是否使用LLC子层已经变得不再重要,很多设备制造商的产品不再使用LLC协议,而是直接将数据封装在以太网的MAC帧中。由于技术和市场的变化,IEEE802中的一些标准已经不再或很少使用,如 IEEE802.2、IEEE802.4、IEEE802.6、IEEE 802.7 和 IEEE802.12等,相应的工作组已经停止工作。

第二节以太网技术

一、以太网的基本原理

以太网(Ethernet)自产生以来,一直在快速发展,技术和产品都在不断更新,传输速率越来越高,安装维护越来越简单,价格越来越适中,目前已经成为应用最普遍的局域网产品。

以太网的技术规范主要包括:拓扑结构、传输介质、介质访问方式、传输速率、最多工作站数和最远传输距离等。例如,最早的以太网产品10Base-5的拓扑结构为总线型,传输介质为粗同轴电缆,介质访问控制协议为CSMA/CD,传输速率为10Mbit/s,最多工作站数为1024,最远传输距离为2500m。

传统的以太网是总线型的局域网,总线型结构决定了网络中所有的结点共享传输介质,都可以通过总线发送或者接收数据,但同一时间只允许一个结点以“广播”的方式使用总线发送数据,其他结点以“收听”的方式接收数据。所以,当局域网中的结点要发送数据时,首先要确定总线上没有其他结点发送数据,否则,就要等待总线空闲下来才能发送。而由于结点发送的数据在总线上有传输延迟,有可能会出现同时有两个以上结点通过总线发送数据的情况,多个数据信号在信道上叠加会造成“冲突”现象,接收结点无法正确接收数据。这些都是介质访问控制(MAC)协议要考虑的内容。介质共享型局域网中的介质访问控制(MAC)协议需要具体解决以下3个问题。

1)在某一时刻,哪个结点可以发送数据?

2)发送时是否会出现冲突?

3)出现冲突时如何处理?

以太网中采用载波监听多路访问/冲突检测(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)作为介质控制访问方法。CSMA/CD的基本思想为:每一个结点在发送数据之前首先要检测总线上是否有其他结点发送数据。如果有,则暂时不发送数据,要等到信道变为空闲状态后再发送数据。由于以太网使用的是曼彻斯特编码,所以各结点检测的是总线上是否有高低电平的变化,这个过程称为“载波监听”。

由于电磁波在总线上以有限的速率进行传播,因此当一个结点监听到总线是空闲的,总线上有可能会有其他信号正在传播,只是此时还没有到达该结点。这就需要结点在发出数据后,还要继续对总线进行检测。当有多于一个的结点在总线上发送数据时,总线上的信号电压会因为叠加而增大,如果结点检测到信号电压的变化幅度超过某一阈值时,就认为总线上有不止一个的结点在同时发送数据,即产生了“冲突”,这一过程称为“冲突检测”。当结点发现总线上有冲突时,就立即停止发送数据,以免浪费网络资源,等待一段时间后再次发送。

CSMA/CD的介质访问控制基本思想可以简单概括为:“先监听,再发送;边发送,边监听。”

二、以太网的硬件地址

与其他计算机网络一样,局域网也需要设计一套标识系统来为网络中的每一个结点表明身份,从而能在网络中方便地找到各个结点,实现数据的通信,这就好像人们要能与别人实现邮件或电话通信,必须要有通信地址和电话号码一样。IEEE802委员会为局域网设定了一套标识规则,即用一个48bit(6B)二进制数作为局域网的全球地址,标识每一块局域网适配器(网卡)。这个地址在适配器生产时就固化在其ROM中,称为局域网适配器的物理地址或MAC地址。计算机只有安装了局域网适配器才能接入局域网,所以其局域网适配器的 MAC地址可以认为是该计算机在局域网中的地址。如果一台计算机或路由器安装有多个局域网适配器,则它就具有多个MAC地址。

就像电话号码由电信部门分配、邮政编码由邮政部门分配一样,局域网地址也有统一的管理和分配机构IEEE注册管理机构RA。IEEERA负责分配局域网地址6个字节中的前3个字节,所有的局域网适配器生产厂商都要向IEEERA来购买由这3个字节构成的地址块号,厂商购买某个地址块号后,其生产的适配器的MAC地址的前3个字节就被确定,后3个字节的地址可以由厂商自行分配,只要不出现重复地址即可。

MAC地址是IEEE为所有局域网设置的地址规则,以太网也遵从这一编址方案。

三、以太网的 MAC帧格式

在以太网的MAC层,数据是以帧(frame)的形式存在的,以太网的MAC 帧格式有两种标准:DIX EthernetV2(即以太网V2)标准和IEEE802.3标准,两者的帧格式基本相同,唯一的区别在于以太网V2帧中设置两个字节作为类型字段,用于标识上一层所使用的协议类型,而IEEE802.3帧定义这两个字节为长度或类型字段。当这个字段值大于0x0600时,用于标识上一层使用的协议类型;当这个字段值小于0x0600时,用于标识MAC帧的数据部分的字节数。目前使用最广泛的是以太网V2的MAC帧格式。具体的MAC帧格式如图4-1所示。

MAC帧进行差错检测,长度为4B。由于MAC帧结构中除数据外的各部分字节总长度为18B,所以有效的MAC帧长度在64~1518B之间。在实际传输中,发送端要在每个以太网 MAC帧前面插入8B(由硬件生成),包括7B的前导码和1B的帧前定界符,用于告知接收端数据到了,实现接收的同步。

共享式以太网的基本工作原理是:假设以太网内某站点A有数据要发送给站点B,那么站点A首先将B的MAC地址和自己的MAC地址分别作为目的地址和源地址封装在MAC帧中,并且将上层传来的数据放入MAC帧中的数据字段,然后开始对以太网进行监听,当网络空闲时将MAC帧以广播的方式发送到以太网中,并且继续监听是否发生碰撞。以太网中的每个站点收到A所发送的AC帧后,首先检查一下其目的地址字段中的MAC地址是否是自己的MAC地址,如果不是则丢弃;当站点B收到该MAC帧后,发现目的地址字段的内容与自己的MAC地址一致,则需要继续检查该MAC帧是否为无效帧,如果是无效的就将其丢弃,否则就将其接收。出现无效MAC帧的情况包括:MAC帧的长度不是整数字节; FCS检测出错;收到的MAC帧长度不在64~1518B之间。以太网规定,对于被丢弃的帧不负责重传,是否重传由高层协议决定。

四、以太网的产品类型

1.粗缆以太网 (10Base-5)

粗缆以太网(10Base-5)是最早的以太网产品,采用的是电阻为50Ω的粗同轴电缆。以太网中的每一个站点通过一个收发器和收发器电缆与以太网干线相连。10Base-5的含义如下。

·10表示信号在电缆上的传输速率是10Mbit/s

· Base 表示电缆上传输的信号是基带信号。

·5表示每一段电缆的最大长度为500m。

·当实践网络跨度超过500m时,需要采用中继器(Repeater)将信号放大并整形后转发出去。

粗缆以太网(10Base-5)的主要参数包括以下几个。

·站点间的最大干线长度为500m。

·收发器连至干线段。

·工作站到收发器的最大距离为50m。

·最多使用4个中继器连接5条干线段。

·最大网络干线长度为2469m。

·一条干线上最多支持100个工作站。中继器相当于一个工作站。

2.细缆以太网(10Base-2)

细缆以太网采用0.2in(英寸)的50Ω同轴电缆作为传输介质,数据传输速率为10Mbit/s,采用网卡和T形连接器将站点与同轴电缆相连。细缆以太网相比粗缆以太网的优点是组网开销低,连接方便。其主要参数指标包括以下几个。

·站点间最大的干线长度为200m。

·采用T形连接器将网卡与电缆相连。

·最多使用4个中继器连接5条干线。

·最大网络干线长度为910m。

·一条干线上最多支持30个工作站。中继器相当于一个工作站。

粗缆以太网(10Base-5)和细缆以太网(10Base-2)都是以太网早期的技术和产品,目前已经不再使用。

3.双绞线以太网 (10Base-T)

双绞线以太网(10Base-T)是替代同轴电缆以太网的产品,在相当长的一段时期内是使用最为广泛的局域网系统。它采用非屏蔽的双绞线(UTP)作为以太网传输介质,数据传输速率为10Mbit/s,支持以太网结构化布线方式和集线器(Hub)设备。双绞线以太网中的站点可以通过不超过100m的非屏蔽双绞线连接到一个集线器上,多个集线器还可以通过级联方式连接到其他集线器上。10Base-T以太网组网容易且方便,具有良好的故障隔离功能。具体的组网规则如下。

·采用非屏蔽双绞线UTP将站点连接到集线器上,一段双绞线的最大长度为100m。

·工作站、集线器与双绞线之间的物理接口采用标准的RJ45接口。

·非屏蔽双绞线的最低标准是3类UTP,特征阻抗为100Ω。

·最多支持4个集线器或中继器,从而构成5个网段。

4. 快速以太网 (100Base-T)

快速以太网(100Base-T)是在传统以太网基础上发展起来的,保留了传统以太网的帧格式和CSMA/CD介质访问控制方式,但数据传输速率提高到100Mbit/s。IEEE在1995年正式公布了IEEE 802.3u,即快速以太网(100Base-T)标准。100Base-T标准定义了3种物理层规范,以支持不同的物理介质。

·100Base-TX:采用两对5类UTP。

·100Base-T4:采用四对3、4或5类UTP。

·100Base-FX:采用光缆。

5.千兆位以太网 (Gigabit Ethernet)

千兆位以太网(GigabitEthernet)是IEEE 802.3标准的扩展,在保持100Base-T以太网的帧格式和CSMA/CD协议的基础上,将数据传输速率提升到1000Mbit/s,并且与传统以太网完全兼容,可以支持各种已有的网络设备和应用,主要用于主干网和接入网。同快速以太网一样,千兆位以太网标准也定义了多个物理层规范以支持不同的物理介质。

·1000Base-SX:采用62.5μm 和50μm规格的多模光纤作为传输介质,短波长激光作为信号源,在全双工方式下的最长传输距离可分别达到275m和 550m。

·1000Base-LX:可采用62.5μm和50μm规格的多模光纤,也可支持9μm的单模光纤作为传输介质,长波长激光作为信号源。使用多模光纤在全双工方式下的最长传输距离为550m,使用单模光纤在全双工模式下的最长传输距离为3000m。

·1000Base-CX:采用特殊规格的铜质高质量平衡屏蔽双绞线,阻抗为150Ω,最长有效距离为25m。

·1000Base-T:采用4对5类或超5类UTP作为传输介质,最长有效距离为100m。

6.万兆位以太网 (10 Gigabit Ethernet)

随着网络应用的普及,数据通信需求的增大,人们希望获得更高的数据传输速率,支持更广泛数据业务的网络服务。1999年IEEE成立了802.3ae工作组,开始进行万兆位以太网(10Gbit/s)的研究,并于2002年正式发布了IEEE802.3ae (10 GigabitEthernet),即万兆位以太网标准。万兆位以太网进一步扩展了以太网的数据传输速率和传输距离,还使得以太网技术突破局域网领域的限制,开始应用于城域网和广域网领域。

万兆位以太网的主要技术特点包括以下几个。

·MAC层的帧结构与千兆位以太网的MAC层帧结构保存一致,但不再支持CSMA介质控制方式。

·保留802.3标准的最小和最大帧长度。

·只支持全双工传输方式。

·提供5种物理接口,支持多模和单模光纤。

·提供更高带宽和更远传输距离的通信服务,可以应用于局域网、城域网和广域网等。

目前,IEEE和各大生产厂商正在致力于研究10万兆位以太网的相关技术,已经推出了定义10万兆位以太网的标准IEEE802.3ba,给出了相关框架和接口的定义,但具体的细节还在进一步的研究中。

五、以太网的扩展

随着以太网应用的普及,人们需要以太网能覆盖更广泛的区域,容纳更多的主机,这就需要对以太网进行扩展。扩展的方法根据使用设备工作所在层次的不同,分为物理层扩展和数据链路层扩展。物理层扩展使用的设备主要有中继器(Repeater)和集线器(Hub),数据链路层扩展使用的设备主要有网桥(Bridge)和交换机(Switch)。

1.中继器和集线器

由于以太网中的数字基带信号在传输介质中传输会产生衰减,从而使得CSMA/CD协议无法检测出有无信号或者是否发生碰撞,所以要扩大以太网的地理覆盖范围,最简单的办法就是使信号在保持原样的基础上尽可能远的传输。这个任务可以由物理层设备完成。物理层设备连接多个以太网,只负责数据信号的放大、转发或重发,不关心以太网帧中的内容。中继器是一种最简单、廉价的以太网扩展设备,常用于连接两个以太网网段,对衰减的信号进行放大,保持与原数据相同。集线器(Hub)是一种特殊形式的中继器,其基本工作原理也是对物理信号进行放大和转发,它位于某个以太网网段的中心,具有多个物理接口,每个接口可以连接主机或者其他以太网网段。这样,就可以通过多个集线器之间的级联,形成更大范围的以太网,如图4-2所示。

每个集线器和与其相连的主机构成一个星形结构的以太网,其中任何一台主机都可以和自己所在以太网的其他主机通信,也可以和其他集线器所连接的主机进行通信,大大拓展了以太网的范围。在采用集线器的以太网中,当一个主机要发送数据时,它会将其发送给直接相连的集线器,集线器对数据信号进行保存和放大,然后转发到该集线器的各个接口,包括主机和其他集线器。多级结构的集线器虽然可以拓展以太网的范围,但也带来了一些缺点,最主要的原因在于多级集线器构成的以太网仍然采用的是CSMA/CD协议,因此会在整个以太网范围内形成一个很大的碰撞域(或冲突域),即在这个冲突域中,任意时刻只能有一个主机可以发送数据,否则就会发生碰撞。而如果各集线器之间没有级联,则每一个小的以太网网段是一个独立的冲突域,只需要在这个冲突域内保证有唯一一个主机发送数据就可以避免碰撞,而对于其他冲突域的通信没有影响。

2.网桥

当网络规模更大、结构更复杂时,只在物理层进行信号的放大和转发而扩展以太网就显得效率过低,因此人们就设计出在数据链路层扩展以太网的技术。网桥(Bridge)是工作在数据链路层的以太网扩展设备,通常用于连接少量的以太网网段(网桥一般设有2~4个接口),它根据MAC帧中的目的地址对收到的帧进行转发和过滤。网桥通过接口连接不同的以太网网段,同时其内部维护着一个用于转发MAC帧的数据库,称为转发表。当网桥收到一个帧时,并不是向所有接口转发此帧,而是对该帧进行读取,检查其目的地址,根据转发表将该帧转发到合适的接口,或者将其丢弃。转发表的结构示意图如表4-2所示。

网桥的接口1和接口2分别连接两个以太网LAN1和LAN2,假设主机1要向主机5发送数据,它将MAC帧广播发送到LAN1上,与之相连的网桥也会收到该MAC帧,收到该帧后,网桥检查其中的目的地址并查找转发表,发现主机5对应的接口为接口2,则将其转发到接口2,从而广播到LAN2中,不再向接口1发送。如果主机1要向主机4发送数据,它将MAC帧广播发送到LAN1上,网桥收到该帧后,发现其目的地址对应的接口为接口1,与接收到的接口一致,则表明主机1和主机4在同一个网段上,不需要转发,将该帧丢弃。网桥的这种机制,可以保证不同网段上的通信不会互相干扰。如果主机1要向主机8发送数据,它将MAC帧广播发送到LAN1上,网桥收到该帧后,发现转发表中没有目的地址为主机8的表项,则向除该MAC帧来源(接口1)外的其他所有接口(这里是接口2)进行转发。

建立和维护转发表是网桥能够正常工作的基础。目前使用的网桥都是即插即用型设备,即直接接入以太网而不需要人工配置就可以工作,这就需要通过“自学习”算法来自动建立起转发表。“自学习”算法的基本思想是:当一个网桥刚接入以太网时,其转发表中没有任何信息,是一个空表。当它从某接口x收到某主机a所发出MAC帧时,就把主机a的地址和接口x记录到转发表中,表明如果再收到目的地址为主机a的MAC帧,则向接口x转发。当以太网内的所有主机都向网桥发送过MAC帧后,每一个主机地址就会被记录在网桥中的转发表中。

网桥只适用于用户数不太多的以太网,否则有可能产生因为广播信息过多而造成网络拥塞,这称为广播风暴。

3. 以太网交换机

以太网交换机也是工作在数据链路层的以太网扩展设备,也被称为第二层交换机,其实质是一种多接口的网桥,通常都有几十个以上的接口。以太网交换机的每一个接口都直接与主机或者集线器相连,而网桥的接口通常是连接在以太网的总线上。以太网交换机也是一种即插即用设备,通过自学习算法逐渐建立起转发表。以太网交换机内部采用专用的交换结构芯片,能大大提升交换的速度。以太网交换机设有支持不同速率的接口,可以连接10Mbit/ s、100Mbit/s和 1Gbit/s等多种以太网。

下面通过一个例题来解释一下以太网交换机的转发过程。

设某以太网拓扑及交换机当前的转发表如图4-4所示。主机00-e1-d5-00-23-al向主机00-e1-d5-00-23-c1发送1个数据帧,假如主机00-el-d5-00-23-c1收到该帧后,向主机00-el- d5-00-23-al发送1个确认帧,则交换机对这两个帧的转发端口有如下可能。

大家知道,以太网交换机是工作在数据链路层的网络互联设备,其实质是一种多端口网桥。以太网交换机根据以太网帧中的目的MAC地址对收到的帧进行转发和过滤。当收到一个帧时,需要依据该帧的目的MAC地址检索转发表,如果检索到转发表项,则进一步判断该表项对应的端口与收到该数据帧的端口是否一致,如果一致,则丢弃该帧,否则向转发表项对应的端口转发该帧;如果未成功检索到转发表项,则向除接收到该帧的端口外的所有端口泛洪该帧(每个端口都发送一份该帧的副本)。

交换机在转发和过滤数据帧的过程中,还完成自学习。转发表的信息就是通过自学习获得的。交换机自学习的基本原理是利用接收到的数据帧的源MAC地址完成学习,即学习到可以通过接收该帧的端口到达该帧的源MAC地址对应的主机。例如,若从某个主机A发出的帧通过端口x进入某交换机,就意味着从端口x出发沿相反方向一定可以把一个帧传送到 A。所以,交换机每收到一个帧,先按其源MAC地址查看转发表的目的地址栏,如果没有则将其源MAC地址和进入的端口标识记录在转发表中,完成一次学习;再按目的MAC地址查找转发表的目的地址栏,如果有记录,则向相应的端口转发,如果没有记录,则向除帧进人交换机对应的端口外的其他所有端口转发。

根据以太网交换机的工作原理,在本题中,主机00-el-d5-00-23-a1向主机00-el-d5-00-23-c1 发送的帧通过端口1进入交换机,交换机按源地址00-el-d5-00-23-al查找转发表,发现没有相应记录,则将00-el-d5-00-23-al和端口1记录到转发表中,此时转发表更新为:

再按目的地址00-e1-d5-00-23-c1查找转发表,发现没有相应记录,则将该帧向除端口1外的其他所有端口转发,即端口2和端口3。

当主机 00-el-d5-00-23-c1收到该帧后,向主机00-el-d5-00-23-a1发送确认帧,该帧的源地址和目的地址分别是00-e1-d5-00-23-c1和00-e1-d5-00-23-al,通过端口3进入交换机,交换机同样先按源地址查找转发表,发现没有记录,则将00-e1-d5-00-23-c1和端口3写入转发表,然后按目的地址00-e1-d5-00-23-al查找转发表,结果发现转发表中有该目的地址的记录,转发接口为端口1,因此将该确认帧向端口1转发。

综上所述,交换机对这两个帧的转发端口分别是{2,3| 和 {1}。

以太网交换机的交换方式主要有直接交换(cut-through)和存储转发交换(store and forward)两种。直接交换方式是指交换机接收到MAC帧后,检测目的地址并查找转发表,然后直接将该帧转发或丢弃,而不对该帧进行差错校验,留给目的主机去完成校验功能。这样可以加快交换的速度。存储转发交换方式是指交换机首先要接收并暂存MAC帧,并进行差错校验,如果没有差错,再根据目的地址和交换表进行转发,否则就丢弃该帧。存储转发方式可以避免将一些无效帧转发给其他主机,造成信道资源的浪费。

以太网交换机具有多个接口,它可以将多台主机连接在一起,构成星形结构的局域网,采用交换方式进行数据传输。交换式以太网相比于共享式以太网具有很多优点,包括以下几个。

1)它可以在保留现有的以太网基础设施的基础上进行扩展,无须丢弃和重建现有网络。

2) 允许多对主机进行同时通信,每一对通信的主机都可以独占传输媒体,实现无碰撞的数据传输。

3)可以连接不同速率的以太网,满足不同网络环境进行互联扩充的要求。

4)可以基于以太网交换机实现帧过滤、传输控制和虚拟局域网络设置等多种功能。

因此,以太网交换机的应用越来越广泛,尤其是随着建筑物结构化布线系统的普及,以太网交换机已经成为校园、工厂和楼宇等环境局域网建设不可缺少的重要网络设备。常用的以太网交换机形式有单台交换机、堆叠交换机和箱体模块化交换机等

第三节 虚拟局域网(VLAN)

一、虚拟局域网的基本概念

虚拟局域网是基于交换机的一种局域网应用形式。IEEE802.1Q中对虚拟局域网的定义是:虚拟局域网VirtualLAN(VLAN)是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN帧都有一个明确的标识符,可以指明发送这个帧的主机属于哪一个VLAN。

在局域网中,具有相同业务需求的若干主机可以构成一个工作组,同一工作组内的计算机的互相访问更加频繁和自由,比如一个公司的某个部门中的计算机,一个学院的某个系中的计算机等。而在传统局域网中,工作组通常都是被限定在同一个局域网网段中,不同工作组之间通过网桥或路由器交换数据,当一个工作组中的主机要转移到其他工作组时,需要重新调整物理位置。而采用虚拟局域网的方式可以不受物理位置的限制,以软件的方式划分和管理局域网中的工作组。虚拟局域网的基本工作原理如图4-5所示。

假设某公司局域网中有9台主机,分布在3个楼层,通过3个以太网交换机(交换机

1、交换机2和交换机3)形成3个网段:网段a (al,a2,a3)、网段b(bl,b2,b3) 和网段c(cl,c2,c3)。3个网段再通过路由器连接在一起。每个网段内部的主机构成一个局域网工作组。根据业务的需要,公司希望重新划分工作组,将不同网段内的主机划分成一个工作组,即形成虚拟的局域网。假设划分成3个虚拟局域网:VLAN1: (al,b1,c1)、 VLAN2:(a2,b2,c2)和 VLAN3:(a3,b3,c3),每一个虚拟局域网中的主机可以位于不同的网段和楼层。虚拟局域网传输数据的基本原理是:在虚拟局域网中的每一个主机都可以收到同一个虚拟局域网内的其他主机所发出的广播;当一个主机向虚拟局域网内的其他主机发送数据时,该虚拟局域网外的其他主机不会收到其所发的广播信息。这样的工作机制可以限制接收广播信息的主机数,从而使局域网不会因为传播过多的广播信息而引起性能的恶 前 化,即通常所说的“抑制广播风暴”。

二、虚拟局域网的划分方法

虚拟局域网的设置是在以太网交换机上,通过软件方式实现的。划分虚拟局域网的方法主要有3种。

1.基于交换机端口的划分

局域网的网络管理员可以按照以太网交换机的端口定义VLAN成员,每个交换机端口属于一个VLAN。例如在图4-5中,可以将交换机1的A1端口、交换机2的B1端口和交换机3的C1端口划分到一个虚拟局域网VLAN1中。基于端口的划分方法简单有效,易于控制管理,是一种最常用的虚拟局域网划分方法。由于是由网络管理员静态指定的端口,因此基于端口划分的虚拟局域网又称为静态虚拟局域网。

2.基于 MAC 地址的划分

基于MAC地址划分虚拟局域网是按每个连接到以太网交换机的主机MAC地址定义 VLAN成员。例如在图4-5中,假设9台主机的MAC地址为

网络管理员可以在以太网交换机中将MAC地址为00-00-00-00-00-al、00-00-00-00-00-b1和00-00-00-00-00-cl的主机设置在一个虚拟局域网VLAN1里。基于MAC地址的划分方法需要以太网交换机连接一台VLAN配置服务器,其中保存了VLAN管理数据库,用于对接人交换机的主机进行动态的VLAN划分。基于MAC地址划分的优点是在新增用户或用户移动时,可以自动进行划分,减少配线、布局等中间环节。

3.基于上层协议类型或地址的划分

基于上层协议类型或地址的虚拟局域网划分方法是根据以太网帧所携带数据中的上层协议类型(如TCP/IP、IPX和DECENT等)或地址(如IP地址、子网地址等)定义VLAN成员,这种方法的优点是有利于组成基于应用的VLAN。

三、虚拟局域网的帧格式

要在局域网中实现虚拟局域网的划分,必须对以太网的帧格式进行扩展,用来标识以太网帧所属的不同虚拟局域网。IEEE802.1Q标准定义了虚拟局域网环境下的以太网帧格式,即在一般以太网的帧格式中插入一个4B的标识符,称为VLAN标记(Tag),用来指明发送该帧的主机属于哪一个虚拟局域网,具体的帧格式如图4-6所示。

VLAN标记字段的长度是4B,位于以太网帧结构的源地址字段和类型字段之间,其中前两个字节(16位)固定设置为0x8100(二进制数1000000100000000),称为IEEE802.1Q标记类型。当以太网中的设备检测到MAC帧的源地址字段后面出现0x8100时,就知道是插人了 VLAN标记。在后面的两个字节中,前3位是用户优先级字段,接着是1位规范格式指示符(CFI),最后的12位是虚拟局域网VLAN标识符(VID),用于表明该以太网帧属于哪一个VLAN。

四、虚拟局域网中继技术 VLAN Trunk

由于VLAN是按照逻辑位置而非物理位置进行划分的,因此经常会遇到同一VLAN中的主机需要跨越不同的交换机进行数据通信的问题,采用的方法是在不同交换机之间用一条骨干链路连接起来,并且利用VLAN帧格式中的VLAN标记来识别和承载来自多个VLAN中的数据帧,如图4-7所示。

在交换机1和交换机2之间用一条链路级联,并将对应的端口设置为Trunk 端口,这样就可以使两个交换机上处于同一个VLAN的主机进行通信,即al和b1之间,a2和b2之间, a3和 b3之间。

五、交换机配置 VLAN 的基本命令

下面以市场上流行的Cisco交换机为例,简单介绍一下利用交换机配置 VLAN的基本命令。

局域网中的交换机要完成VLAN划分功能,必须要进行配置管理,配置的方式主要有通Console口将计算机与交换机相连,利用相应的软件工具如Windows操作系统自带的“超级终端”等进行配置;通过Telnet对交换机进行远程管理;通过Web对交换机进行远程管理;通过SNMP工作站对交换机进行远程管理,共4种配置方式。配置的形式分为命令行形式和菜单形式两种,这里主要介绍利用命令行形式配置VLAN的基本命令。

1.创建和修改 VLAN

登录交换机,进入用户模式。

第四节 无线局域网(WLAN)

随着移动通信技术的迅猛发展,人们对于摆脱有线介质的束缚,不受空间限制地使用计算机网络提出了更高的要求,特别是伴随着笔记本电脑、平板电脑和智能手机等便携式、可移动的计算机设备的普及,基于无线传输的计算机网络的市场需求越来越大。无线局域网(Wireless Local Area Network,WLAN)是局域网发展的一种新形式,在家庭、办公室、工厂、学校、商场和餐厅等场所,通过无线方式在各种便携式的计算机设备之间建立数据连接,从而实现各种网络服务和功能。

无线局城网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网。有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或Internet;而无固定基础设施是指网络中的每个成员都是对等的可移动设备。

对于有固定基础设施的无线局域网,IEEE于1997年制定了其协议标准,称为IEEE802.11标准。IEEE 802.11协议是无线以太网的标准,采用星形拓扑结构,无线局域网中的移动站通过无线方式与接入点(Access Point,AP)相连,再由AP通过有线介质连接其他网络或Internet。IEEE802.11在MAC层使用载波监听多路访问/冲突避免协议(CSMA/CA)。使用IEEE802.11协议的无线局域网也称为Wi-Fi(Wireless-Fidelity)网络。

与有线以太网采用CSMA/CD协议不同,IEEE802.11协议使用冲突避免算法(CA)来代替冲突检测算法(CD),这样做的原因主要包括:①在无线通信的环境下,信号强度的动态范围非常大,接收端不容易根据收到的信号强度判断是否发生碰撞;②由于无线电磁波信号是向所有方向传播的,当有多个站点同时进行通信时,很有可能产生“检测到信道空闲,其实并不空闲;而检测到信道忙,其实并不忙”的错误。因此,无线局域网不宜使用冲突检测的控制方法。不采用碰撞检测就意味着一个站点只要开始发送数据,就必须要把整个帧发送完毕,如果在这个时刻发送碰撞,则整个信道资源就在这段时间被浪费掉了,因此,无线局域网应该尽可能地减少碰撞的发生。

CSMA/CA协议的目标就是要在无线局域网的数据收发过程中,尽可能地避免发生碰撞, CSMA/CA 算法的整个过程比较复杂,本书在这里不做过多的解释,其核心思想主要包括以下几个。

1)采用“停止-等待”的可靠传输方式,即发送方必须收到接收方的确认帧后才能继续发送;如果在规定时间内没有收到确认帧,则认为数据丢失,需要重新发送。

2) 采用“虚拟载波监听”机制,让发送方将它要占用信道的时间及时通知给其他所有站点,以便使其他站点在这一段时间都停止发送数据,从而大大降低碰撞的机会。

3)在信道从忙态转为空闲时,各个站点要执行“退避算法”,等待一个随机的时间段后再发送数据,目的是减少发生碰撞的概率。

IEEE 802.11协议标准规定了WLAN的最小单位为基本服务集BSS,其中包括一个AP和多个移动设备。在一个BSS内,各个移动设备之间可以通信,但如果要和本BSS之外的设备进行通信,则必须经过BSS内的AP。每个BSS需要被设置有一个不超过32B的服务集标识符SSID,用来表明这个BSS。无线局域网BSS的覆盖范围一般不超过100m。一个基本服务集BSS可以与由以太网、点对点链路或者无线网络构成的分配系统DS相连接,然后再连接其他BSS,构成覆盖范围更大的扩展服务集ESS,进而连接其他网络或者Internet,如图4-8所示。

在一个BSS中,每个移动设备需要和本BSS内的AP建立关联,从而能和其他BSS或者外部网络进行通信。建立关联的方式有两种:一种是被动扫描,即由AP周期性地发出包含有SSID、速率等参数的信息帧,移动设备收到这些信息帧后与AP建立连接;另一种是主动扫描,即由移动设备主动发出探测请求帧,然后等待AP发回的探测响应帧进行连接。移动设备如笔记本电脑、平板电脑等需要配备无线局域网适配器,才能实现IEEE 802.11协议在物理层和MAC层定义的功能,在有无线局域网信号的区域接入AP。为了方便管理和保证安全,移动设备接入无线局域网通常需要提供匹配的SSID和密码。

另外一种无线局域网是无固定基础设施的无线局域网,其中没有像AP这样的固定接入点,网络中的各个站点在功能上是平等的状态,在相互通信过程中自动组成临时的网络,因此也被称为无线自组网络(AdHoc)。无线自组网络中的每个移动站点既是信息的收发设备,也是信息的转发设备,而且能够随着网络拓扑结构的变化不断更新路由方案。无线自组网络一般情况下是独立运行的,不与外界其他网络相连。

无线自组网络由于其不受固定设备的限制,在军事、救灾、勘探和航海等领域中有着重要的作用。在这些环境中,一般不具备基站、线缆等网络设施,各个移动设备可以通过自组的方式建立临时网络,方便地进行数据通信和信息交换。近年来,在无线自组网络的基础上又发展起来更具针对性的无线局域网技术,如由传感器构成的无线传感器网络WSN、将汽车作为移动站点相互连接而构成的车载自组网VANET等。

本章小结

局域网将范围在几十米到几千米内的计算机设备连接起来实现数据的高速通信,适用于大楼、车间、办公室、校园和家庭等用户环境。局域网可以实现文件管理、应用软件共享、打印共享和电子邮件等功能,网络中的用户还可以通过局域网接入Internet。

IEEE在 1980年成立了局域网标准委员会,简称IEEE802委员会,专门从事局域网标准化工作,其制定的相关标准也以IEEE802来命名。为了将多种局域网技术纳入一个统一的协议模型,IEEE802委员会提出将数据链路层划分为两个子层:逻辑链路控制子层(Logical Link Control,LLC)和介质访问控制子层(MediaAccess Control,MAC)。与接入各种传输介质有关的内容都放在MAC子层,包括将上层数据封装成帧进行发送、寻址和比特差错检测等;LLC层负责与介质接入无关的内容,包括建立和释放数据链路层的逻辑连接、提供帧序号、提供高层接口和差错控制等。

以太网(IEEE 802.3协议)是应用最普遍的局域网产品。传统的以太网是总线型的局域网,网络中所有的结点共享传输介质,采用载波监听多路访问/冲突检测(Carrier sense multiple access with collision detection,CSMA/CD)作为介质控制访问方法。CSMA/CD的介质访问控制基本思想可以简单概括为:“先监听,再发送;边发送,边监听。”

以太网通过物理地址或MAC地址进行身份标识,MAC地址是一个48位(6个字节)二进制数,在适配器生产时就固化在其ROM中,如果一台计算机或路由器安装有多个局域网适配器,则它就具有多个MAC 地址。IEEE RA 负责分配MAC地址6个字节中的前3个字节,所有的局域网适配器生产厂商都要向IEEERA来购买由这3个字节构成的地址块号,厂商购买某个地址块号后,后3个字节的地址可以由厂商自行分配。

主要的以太网产品包括了粗缆以太网(10Base-5)、细缆以太网(10Base-2)、双绞线以太网(10Base-T)、千兆位以太网(GigabitEthernet)和万兆位以太网(10Gigabit Ethernet) 等。

随着以太网应用的普及,人们需要以太网能覆盖更广泛的区域,容纳更多的主机,这就需要对以太网进行扩展。扩展的方法根据使用设备工作所在层次的不同,分为物理层扩展和数据链路层扩展。物理层扩展使用的设备主要有中继器(Repeater)和集线器(Hub),数据链路层扩展使用的设备主要有网桥(Bridge)和交换机(Switch)。

虚拟局域网是基于交换机的一种局域网应用形式。虚拟局域网Virtual LAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN帧都有一个明确的标识符,可以指明发送这个帧的主机属于哪一个VLAN。

采用虚拟局域网的方式可以不受物理位置的限制,以软件的方式划分和管理局域网中的工作组,可以限制接收广播信息的主机数,从而使局域网不会因为传播过多的广播信息而引起性能的恶化,即“抑制广播风暴”。虚拟局域网的设置是在以太网交换机上,通过软件方式实现的。划分虚拟局域网的方法主要有基于交换机端口的划分、基于MAC地址的划分和基于上层协议类型或地址的划分3种。IEEE802.1Q标准定义了虚拟局域网环境下的以太网帧格式,即在一般以太网的帧格式中插入一个4B的标识符,称为VLAN标记(Tag),用来指明发送该帧的主机属于哪一个虚拟局域网。为了解决同一VLAN中的主机需要跨越不同的交换机进行数据通信的问题,需要采用VLANTrunk方法:即不同交换机之间用一条骨干链路连接起来,并且利用VLAN帧格式中的VLAN标记来识别和承载来自多个VLAN中的数据帧。

无线局域网(Wireless Local Area Network,WLAN)是局域网发展的一种新形式,通过无线方式在各种便携式的计算机设备之间建立数据连接,从而实现各种网络服务和功能。无线局域网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网。有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或Internet;而无固定基础设施是指网络中的每个成员都是对等的可移动设备。

IEEE 802.11协议是无线以太网的标准,使用载波监听多路访问/冲突避免协议(CS MA/CA),移动站通过无线方式与接入点(Access Point,AP)相连,再由AP通过有线介连接其他网络或Internet。无固定基础设施的无线局域网中没有AP这样的固定接入点,网络中的各个站点在功能上是平等的状态,在相互通信过程中自动组成临时的网络,也被称为无线自组网络(Ad Hoc)。

思考题与练习题

1. IEEE 802委员会提出将数据链路层划分为哪两个层次,每个层次的功能各是什么?

2.IEEE802.3协议描述的是哪种局域网的技术规范?

3.请简述CSMA/CD的基本思想。

4.以太网的 MAC地址占几个字节,保存在什么位置?

5.请简述共享式以太网的基本工作原理。

6.10Base-T以太网采用的传输介质是什么?其数据传输速率是多少?

7.对以太网进行扩展主要在哪两个层上进行?各层使用的扩展设备有哪些?

8.使用多级结构集线器的以太网的缺点是什么?

9.请解释为什么网桥可以保证不同网段上的通信不会互相干扰?10.请简述以太网交换机“自学习”算法的过程。11.以太网交换机的交换方式主要有哪两种?12.请解释为什么虚拟局域网可以抑制广播风暴?13.划分虚拟局域网的方法有哪几种?

14.请简述 IEEE 802.1Q标准定义的VLAN标记(Tag)格式。15.无线局域网根据结构可以分为哪两大类?

16.为什么在无线局域网IEEE802.11协议中使用冲突避免算法(CA)来代替冲突检测算法(CD)?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值