1、链路(link)就是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。
2、当需要在一条线路上传送数据时,除了 必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器(既有硬件,也包括软件)来实现这些协议。一般的适配器都包括了数据链路层和物理层这两层的功能。
3、早期的数据通信协议曾叫做通信规程(procedure)。因此在数据链路层,规程和协议是同义语。
4、点对点信道的数据链路层的协议数据单元——帧,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。
1、数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。
2、封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。此外,首部和尾部还包括许多必要的控制信息。每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU (Maximum Transfer Unit)
3、当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符 SOH (Start Of Header)十六进制编码分别是01 (二进制是00000001)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT (End Of Transmission)十六进制编码是04 (二进制是00000100)表示帧的结束。由于使用了帧定界符,接收端就知道前面收到的数据是不是完整的帧
4、透明传输:数据部分不会出现像SOH或EOT这样的帧定界控制字符。“在数据链路层透明传送数据”表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。非透明传输举例如下
5、字节填充或字符填充(character stuffing):发送端的数据链路层在数据中出现控制字符 “SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B,二进制是 00011011 )。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。如果转义字符也出现在数据 当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。
7、比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这就叫做比特差错。比特差错是传输差错中的一种。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER (Bit Error Rate)。误码率与信噪比有很大的关系。如果设法提高信 噪比,就可以使误码率减小。
8、为了保证数据传输的可靠性,在计算机网络传输数据时,必须釆用各种差错检测措施。 目前在数据链路层广泛使用了循环冗余检验CRC (Cyclic Redundancy Check)的检错技术。
(1)在发送端,先把数据划分为组,假定每组次个比特。现假定待传送的数据M=101001 (k = 6)。
(2)数据M的后面添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+ n)位
这种为了进行检错而添加的冗余码常称为帧检验序列 FCS (Frame Check Sequence),冗余码的计算方法:
(1)用二进制的模2运算(用模2运算进行加法时不进位,例如,1111 + 1010 = 0101。减法和加法一样,按加法规则计算。)进行2^n乘M的运算,这相当 于在M后面添加n个0。
(2)得到的*(k + n)位的数除以双方事先商定的长度为(n+ 1)位的除数P,得出商是Q而余数是R (n位,比P少一位)。这个余数R就作为冗余码拼接在数据M*的后面发送出去。
接收端:
(1)在接收端把接收到的数据以帧为单位进行CRC检验:把收到的每一个帧都除以同样的除数P(模2运算),然后检查得到的余数R
(2)如果在传输过程中无差错,那么经过CRC检验后得出的余数R肯定是0。(如果出现误码,那么余数R仍等于零的概率是非常非常小的)
9、在数据链路层,发送端帧检验序列FCS的生成和接收端的CRC检验都是用硬件完成的,处理很迅速,因此并不会延误数据的传输。
10、在数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受,即:“凡是接收端数据链路层接受的帧,我们都能以非常接近于1 的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但最终还是因为有差错被丢弃,即没有被接受。以上所述的可以近似地表述为(通常都是这样认为): “凡是接收端数据链路层接受的帧均无差错”。
11、并没有要求数据链路层向网络层提供“可靠传输”的服务。所谓 “可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。传输差错可分为 两大类:一类就是前面所说的最基本的比特差错,而另一类传输差错则更复杂些,这就是收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复或帧失序。
12、过去OSI的观点是:必须让数据链路层向上提供可靠传输。因此在CRC检错的基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送端发送确认。发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。但现在的通信线路的质量已经大大提高了,由通信链路质量不好引起差错的概率已经大大降低。因此,现在互联网就釆取了区别对待的方法,这样做可以提高通信效率:
(1)对于通信质量良好的有线传输链路,数据链路层协议不使用确认和重传机制,即不要求数据链路层向上提供可靠传输的服务。如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(例如,运输层的TCP协议)来完成。
(2)对于通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,数据链路层向上提供可靠传输的服务。
1、高级数据链路控制HDLC (High-level Data Link Control)是能实现可靠传输的数据链路层协议。但现在HDLC已很少使用了。
2、对于点对点的链路,简单得多的点对点协议PPP(Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议。
1、PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。PPP协议是IETF(互联网工程部)在1992年制定的。经过1993年和1994年的修订,现在的PPP协议在1994年就己成为互联网的正式标准[RFC 1661],PPP协议只支持全双工链路。
2、PPP协议应满足的需求:
(1)简单 IETF在设计互联网体系结构时把其中最复杂的部分放在TCP协议中,而 网际协议IP则相对比较简单,它提供的是不可靠的数据报服务。因此数据链路 层没有必要提供比IP协议更多的功能。对数据链路层的帧,不需要纠错,不需要序 号,也不需要流量控制。IETF把“简单”作为**首要的需求。**总之,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如 CRC检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。
(2)封装成帧 PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和 结束的字符),以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。
(3)透明性 PPP协议必须保证数据传输的透明性。这就是说,如果数据中碰巧出现 了和帧定界符一样的比特组合时,就要釆取有效的措施来解决这个问题
(4)多种网络层协议 PPP协议必须能够在在同一条物理链路上同时支持多种网络层 协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必 须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。
(5)多种类型链路 除了要支持多种网络层的协议外,PPP还必须能够在多种类型的 链路上运行。例如,串行的(一次只发送一个比特)或并行的(一次并行地发送多个比 特),同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静 态的)点对点链路。在1999年公布的在以太网上运行的PPP,即PPP over Ethernet,简 称为PPPoE [RFC 2516],这是PPP协议能够适应多种类型链路的一个典型例子。PPPoE是 为宽带上网的主机使用的链路层协议。这个协议把PPP帧再封装在以太网帧中(当然还要 增加一些能够识别各用户的功能)。
(6)差错检测(error detection) PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
(7)检测连接状态 PPP协议必须具有一种机制能够及时(不超过几分钟)自动检测 出链路是否处于正常工作状态。
(8)最大传送单元 PPP协议必须对每一种类型的点对点链路设置最大传送单元 MTU的标准默认值,MTU 是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
(9)网络层地址协商 PPP协议必须提供一种机制使通信的两个网络层(例如,两个 IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能够在所有的情况下得出协商结果。
(10)数据压缩协商 (6) PPP协议必须提供一种方法来协商使用数据压缩算法。但PPP
协议并不要求将数据压缩算法进行标准化。
3、PPP协议有三个组成部分:
(1)一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP (Link Control Protocol)o通信的双方可协商一些选项。在RFC 1661中定义了 11种类型的LCP分组。
(3) 一套网络控制协议NCP (Network Control Protocol)®,其中的每一个协议支持不同的网络层协议,如IP、0SI的网络层、DECnet,以及AppleTalk等。
1、各字段的意义:
(1)PPP帧的首部和尾部分别为四个字段和两个字段。首部的第一个字段和尾部的第二个字段都是标志字段F (Flag),规定为0x7E(01111110),标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符。连续 两帧之间只需要用一个标志字段。如果出现连续两个标志字段,就表示这是一个空帧,应当 丢弃。
(2)首部中的地址字段A规定为OxFF (即11111111),控制字段C规定为0x03 (即 00000011 ),这两个字段实际上并没有携带PPP帧的信息。
(3)PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息 字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而 0x8021表示这是网络层的控制数据。信息字段的长度是可变的,不超过1500字节。
(4)尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。
2、当PPP使用异步传输时,信息字段中如果出现和标志字段一样的比特(0x7E)组合时,使用转义符定义0x7D (即01111101)进行字节填充:
(1)把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D, 0x5E)
(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则 把0x7D转变成为2字节序列(0x7D, 0x5D)。 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前 面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,岀现0x03 (在控制字符中 是“传输结束” ETX)就要把它转变为2字节序列(0x7D, 0x23)。
3、零比特填充:PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议釆用零比特填充方法来实现透明传输。
(1)在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)
(2)只要发现有5个连续1,则立即填入一个0。
(3)接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。
(4)每 当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流
1、PPP链路被初始化过程:
(1)PPP链路的起始和终止状态永远是**“链路静止”**(Link Dead)状态,这时在用户个人电脑和ISP的路由器之间并不存在物理层的连接。
(2)当用户个人电脑通过调制解调器呼叫路由器时(通常是在屏幕上用鼠标点击一个连接 按钮),路由器就能够检测到调制解调器发出的载波信号,这个过程叫用户拨号接入ISP。这时就建立了一条从用户个人电脑到ISP的物理连接。 PPP就进入“链路建立” (Link Establish)状态,其目的是建立链路层的LCP连接。
(3)这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。
首先开始协商一些配置选项。即发送LCP的配置请求帧(Configure.Request)。这是个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。链路的另一端可以发送以下几种响应中的一种:
a、配置确认帧(Configure-Ack) 所有选项都接受。
b、配置否认帧(Configure-Nak) 所有选项都理解但不能接受。
c、配置拒绝帧(Configure-Reject) 选项有的无法识别或不能接受,需要协商。
然后配置LCP选项包括:链路上的最大帧长、所使用的鉴别协议(authentication protocol)的规约(如果有的话),以及不使用PPP帧中的地址和控制字段(因为这两个字段的值是固定的,没有任何信息量,可以在PPP帧的首部中省略这两个字节),协商结束后双方就建立了 LCP链路。
(4)接着就进入**“鉴别”(Authenticate)状态。在这一 状态,只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。若使用口令鉴别协议PAP (Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可允许用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令 握手鉴别协议 CHAP (Challenge-Handshake Authentication Protocol)o。若鉴别身份失败,则转 到“链路终止”** (Link Terminate)状态。若鉴别成功,则进入**“网络层协议”** (Network-Layer Protocol)状态。
(5)在**“网络层协议”状态,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。这样,用户个人电脑就成为互联网上的一个有IP地址的主机了。PPP链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分 配IP地址)时就要使用NCP中支持IP的协议——IP控制协议**IPCP (IP Control Protocol)o IPCP分组也封装成PPP帧(其中的协议字段为0x8021)在PPP链路上传送。在低速链路上 运行时,双方还可以协商使用压缩的TCP和IP首部,以减少在链路上发送的比特数。
(6)当网络层配置完毕后,链路就进入可进行数据通信的**“链路打开”(Link Open)状态。链 路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可发送回送请求LCP分组 (Echo-Request)和回送回答**LCP分组(Echo-Reply),以检查链路的状态。
(7)数据传输结束后,可以由链路的一端发出终止请求LCP分组(Terminate-Request)请求终 止链路连接,在收到对方发来的终止确认LCP分组(Terminate.Ack)后,转到**“链路终止”** 状态。如果链路出现故障,也会从“链路打开”状态转到“链路终止”状态。当调制解调器的载波停止后,则回到“链路静止”状态。
(5)当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址
(6)接着,LCP 释放数据链路层连接。
(7)最后释放的是物理层的连接。
PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
1、局域网具有如下一些主要优点:
(1)具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
(2) 便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变。
(3)提高了系统的可靠性(reliability) 、 可用性(availability)和生存性 (survivability) 。
2、局域网可按网络拓扑进行分类:
(1)星形网 由于集线器(hub)的出现和双绞线大量用于局域网中,星形以太网以及多级星形结构的以太网获得了非常广泛的应用。
(2)环形网
(3)总线网:各站直接连在总线上。总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射。总线网以传统以太网最为著名。在快速以太网(100 Mbit/s)和吉比特以太 网(1 Gbit/s)、10吉比特以太网(10 Gbit/s)相继进入市场后,以太网已经在局域网市场中占了绝对优势。现在以太网几乎成为了局域网的同义词。
3、双绞线己成为局域网中的主流 传输媒体。当数据率很高时,往往需要使用光纤作为传输媒体。
4、局域网工作的层次跨越了数据链路层和物理层。
5、共享信道要着重考虑的一个问题就是如何使众多用户能够合理而方便地共享通信媒体资源。这在技术上有两种方法:
(1)静态划分信道 如频分复用、时分复用、波分复 用和码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。但这种划分信道的方 法代价较高,不适合于局域网使用。
(2)动态媒体接入控制,又称为多点接入 信道并非在用户 通信时固定分配给用户。这里又分为以下两类:
a、随机接入 特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞(即发生了冲 突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。以太网属于随机接入。
b 、受控接入 受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询(polling), 或称为轮询。
6、以太网是美国施乐(Xerox)公司的Palo Alto研究中心(简称为PARC)于1975年研制成功的。那时,以太网是一种基带总线局域网,当时的数据率为2.94 Mbit/s。以太网用无源电缆作为总线来传送数据帧,并以曾经在历史上表示传播电磁波的以太(Ether)来命名。
7、以太网的两个标准:
(1)DIXEthernet V2 1980年9月,DEC公司、英特尔(Intel)公司和施乐公司联合提出了 10 Mbit/s以太网规约的第一个版本DIX VI (DIX是这三个公司名称的缩写)。1982年又修改为第二版规约(实际上也就是最后的版本),即DIXEthernet V2,成为世界上第一个局域网产品的规约。
(2)IEEE 802.3[W-IEEE802.3] 在DIXEthernet V2基础上IEEE 802委员会①的802.3工作组于1983年制定了第一个IEEE的以太网标准,数据率为10 Mbit/s。
两个标准只有很小的差别,因此很多人也常把 802.3局域网简称为“以太网”。
8、为了使数据链路层能更好地适应多种局域网标准,IEEE 802委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制LLC (Logical Link Control)子层和媒体接入控制 MAC (Medium Access Control)子层。与接入到传输媒体有关的内容都放在MAC子层,而 LLC子层则与传输媒体无关,不管釆用何种传输媒体和MAC子层的局域网对LLC子层来说都是透明的。由于互联网发展很快而TCP/IP体系经常使用的局域网只剩下DIX Ethernet V2而不是IEEE 802.3标准中的局域网,因此现在 IEEE 802委员会制定的逻辑链路控制子层LLC (即IEEE 802.2标准)的作用己经消失了, 很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议。
9、计算机与外界局域网的连接是通过通信适配器(adapter)进行的。适配器本来是在主机箱 内插入的一块网络接口板,这种接口板又称为网络接口卡NIC (Network Interface Card)或简称为 “网卡”。在这种通信适配器上面装有处理器和存储器(包括 RAM和ROM)。
10、适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的, 而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
11、由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。适配器所实现的功能包含了数据链路层及物理层这两个层次的功能。
12、适配器在接收和发送各种帧时,不使用计算机的CPU。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。计算机的硬件地址就在适配器的ROM中,而计算机的软件地址——IP地址(在第4章423节讨论),则在计 算机的存储器中。
1、总线的特点是:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据。这种就是广播通信方式。
2、为了在总线上实现一对一的通信,可以使每一台计算机的适配器拥有一个与其他适配器都不同的地址。在发送数据帧时,在帧的首部写明接收站的地址。
3、为了通信的简便,以太网釆取了以下两种措施:
(1)釆用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。当目的站收到有差错的数据帧时,就把帧丢弃,对有差错帧是否需要重传则由高层来决定。例如,如果高层使用TCP协议,那么TCP就会发现丢失了一些数据。于是经过一定的时间后,TCP就把这些数据重新传递给以太网进行重传。
总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此, 在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。以太网采用最简单的随机接入,但有很好的协议用来减少冲突发生的概率。以太网釆用的协调方法和上面的办法非常像,它使用的协议是CSMA/CD,意思是载波监听多点接入/碰撞 检测(Carrier Sense Multiple Access with Collision Detection)。
(2)以太网发送的数据都使用曼彻斯特(Manchester)编码的信号。曼彻斯特编码的编码方法是把每一个码元再分成两个相等的间隔。码元1是前一个间隔为低电压而后一个间隔为高电压。码元0则正好相反,从高电压变到低电压(也可釆用相反的约定,即 1是“前高后低”而0是“前低后高”)。这样就保证了在每一个码元的正中间出现一次电压的转换,而接收端就利用这种电压的转换很方便地把位同步信号提取出来。曼彻斯特编码的缺点就是它所占的频带宽度比原始的基带信号增加了一倍。
4、CSMA/CD协议的实质是“载波监听”和“碰撞检测”,要点是:
(1)”多点接入“就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
(2)”载波监听“就是用电子技术检测总线上有没有其他计算机也在发送。其实总线上并没有什么“载波”,这里只不过借用一下“载波”这个名词而己。因此载波监听就是检测信道,这是个很重要的措施。不管在发送前,还是在发送中,每个站都必须不停地检测信道。 在发送前检测信道,是为了获得发送权。如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须要等到信道变为空闲时才能发送。在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞。这就称为碰撞检测。
(3)“碰撞检测”也就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加)。当适配器检测到的信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。这时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。因此,任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就要立即停止发送,免得继续进行无效的发送,白白浪费网络资源,然后等待一段随机时间后再次发送。
5、在局域网的分析中,常把总线上的单程端到端传播时延记为τ。A发送数据后要经过最多2τ的时间才能知道自己发送的数据和其他站发送的数据有没有发生碰撞。
(1)在t=0时,A发送数据。B检测到信道为空闲。
(2)在t= τ-δ时(这里τ>δ> 0), A发送的数据还没有到达B时,由于B检测到信道是空闲的,因此B发送数据。
(3)经过时间δ/2后,即在t= τ -δ/2时,A发送的数据和B发送的数据发生了碰撞。但这时A和B都不知道发生了碰撞。
(4)在t= τ时,B检测到发生了碰撞,于是停止发送数据。
(5)在t=2τ-δ 时,A也检测到发生了碰撞,因而也停止发送数据。
6、在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
7、每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离。因此,以太网不能保证某一时间之内一定能够把自己的数据帧成功地发送出去(因为存在产生碰撞的可能)。以太网的这一特点称为发送的不确定性。如果希望在以太网上发生碰撞的机会很小,必须使整个以太网的平均通信量远小于以太网的最高数据率。
8、以太网的端到端往返时间2τ为争用期(contention period),它是一个很重要的参数。争用期又称为碰撞窗口(collision window),这是因为一个站在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。这时,就可以放心把这一帧数据顺利发送完毕。
9、以太网使用截断二进制指数退避(truncated binary exponential backoff)算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是推迟(这叫做退避)一个随机的时间。具体的退避算法如下:
(1)协议规定了基本退避时间为争用期2τ,具体的争用期时间是51.2us。1比特时间就是发送1比特所需的时间。所以这种时间单位与数据率密切相关。为了方便,也可以直接使用比特作为争用期的单位。
(2)从离散的整数集合[0,1,…,(2ʶ-1)]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。上面的参数次按下面的公式计算:k = Min[重传次数,10],可见当重传次数不超过10时,参数次等于重传次数;但当重传次数超过10时,次就不再增大而一直等于10。
(3)当重传达16次仍不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。
例如,在第1次重传时,*k= 1,*随机数,从整数{0, 1}中选一个数。因此重传的站可选择的重传推迟时间是0或2τ了,在这两个时间中随机选择一个。
若再发生碰撞,则在第2次重传时,k=2,随机数r就从整数{0, 1,2,3}中选一个数。 因此重传推迟的时间是在0, 2τ,4τ和6τ,4个时间中随机地选取一个。
同样,若再发生碰撞,则重传时*k=3,*随机数r,就从整数{0, 1,2, 3, 4, 5, 6, 7}中选一个数。依此类推。
若连续多次发生冲突,就表明可能有较多的站参与争用信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
10、适配器每发送一个新的帧,就要执行一次CSMA/CD算法。适配器对过去发生过的碰撞并无记忆功能。因此,当好几个适配器正在执行指数退避算法时,很可能有某一个适配器发送的新帧能够碰巧立即成功地插入到信道中,得到了发送权,而已经推迟好几次发送的站,有可能很不巧,还要继续执行退避算法,继续等待。
11、某个站发送了一个很短的帧,但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站将收到有差错的帧(当然会把它丢弃)。可是发送站却不知道这个帧发生了碰撞,因而不会重传这个帧。为了避免发生这种情况,以太网规定了一个最短帧长64字节,即512 bito如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。对于10 Mbit/s以太网,发送512 bit的时间需要51.2us,也就是上面提到的争用期。因此凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。
12、当发送数据的站一旦发现发生了碰撞时:
(1) 立即停止发送数据;
(2) 再继续发送若干比特的人为干扰信号 (jamming signal),以便让所有用户都知道现在已经发生了碰撞。
13、把CSMA/CD协议的要点归纳如下:
(1) 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2) 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3) 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
① 发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
② 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
以太网每发送完一帧,一定要把己发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。
1、星形拓扑以太网,在星形的中心增加了一种可靠性非常高的设备,叫做集线器(hub)。
2、双绞线以太网总是和集线器配合使用的。每个站需要用两对无屏蔽双绞线(放在一根电缆内),分别用于发送和接收。双绞线的两端使用RJ・45插头。由于集线器使用了大规模集成电路芯片,因此集线器的可靠性就大大提高了。
3、1990年IEEE制定出星形以太网10BASE-T的标准802.3i。“10”代表10 Mbit/s的数据率,BASE表示连接线上的信号是基带信号,T代表双绞线。
4、但10BASE-T以太网的通信距离稍短,每个站到集线器的距离不超过100 m。这种性价比很高的10BASE-T双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,从此以太网的拓扑就从总线型变为更加方便的星形网络,而以太网也就在局域网中占据了统治地位。
5、使双绞线能够传送高速数据的主要措施是把双绞线的绞合度做得非常精确。这样不仅可使特性阻抗均匀以减少失真,而且大大减少了电磁波辐射和无线电频率的干扰。
6、集线器的一些特点如下:
(1) 从表面上看,使用集线器的局域网在物理上是一个星形网,但由于集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍像一个传统以太网那样运行。也就是说,使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是 CSMA/CD协议(更具体些说,是各站中的适配器执行CSMA/CD协议)。网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。
(2) 一个集线器有许多接口,例如8至16个,每个接口通过RJ-45插头(与电话机使用的插头RM1相似,但略大一些)用两对双绞线与一台计算机上的适配器相连(这种插座可连接4对双绞线,实际上只用2对,即发送和接收各使用一对双绞线)。因此,一个集线器很像一个多接口的转发器。
(3) **集线器工作在物理层,它的每个接口仅仅简单地转发比特——**收到1就转发1,收 到0就转发0,不进行碰撞检测。若两个接口同时有信号输入(即发生碰撞),那么所有的接口都将收不到正确的帧。
(4) 集线器采用了专门的芯片,进行自适应串音回波抵消。这样就可使接口转发出去的较强信号不致对该接口接收到的较弱信号产生干扰(这种干扰即近端串音)。每个比特在转发之前还要进行再生整形并重新定时。
7、集线器本身必须非常可靠。现在的堆叠式(stackable)集线器由4〜8个集线器堆叠起来使用。集线器一般都有少量的容错能力和网络管理功能。例如,假定在以太网中有一个适配器出了故障,不停地发送以太网帧。这时,集线器可以检测到这个问题,在内部断开与出故障的适配器的连线,使整个以太网仍然能够正常工作。模块化的机箱式智能集线器有很高的可靠性。它全部的网络功能都以模块方式实现。各模块均可进行热插拔,出故障时不断电即可更换或增加新模块。集线器上的指示灯还可显示网络上的故障情况,给网络的管理带来了很大的方便。
8、IEEE 802.3标准还可使用光纤作为传输媒体,相应的标准是10BASE-F系列,F代表光纤。它主要用作集线器之间的远程连接。
1、多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到100%。
2、发送帧需要的时间是T0,成功发送一个帧需要占用信道的时间是T0+ τ,因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。在最极端的情况下,发送站在传输媒体的一端,而比特在媒体上传输到另一端所需的时间是τ。因此,必须在经过时间To +τ后以太网的媒体才完全进入空闲状态,才能允许其他站发送数据。
3、在以太网中定义了参数a,它是以太网单程端到端时延τ与帧的发送时间T0之比,a=τ/T0,当数据率一定时,以太网的连线的长度受到限制(否则τ的数值会太大),同时以太网的帧长不能太短(否则T0的值会太小,使a值太大)。
4、假设不发生碰撞,极限信道利用率Smax=T0/T0+τ=1/1+a,可以看出只有当参数a远小于1才能得到尽可能高的极限信道利用率。据统计,当以太网的利用率达到30%时就已经处于重载的情况。很多的网络容量被网上的碰撞消耗掉了。
1、在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。
2、“名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处。”
3、IEEE 802 标准为局域网规定了一种48位的全球地址(一般都简称为“地址”),是指局域网上的每一台计算机中固化在适配器的ROM中的地址。
(1) 假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器,那么这台计算机的局域网的“地址”也就改变了,虽然这台计算机的地理位置一点也没有变化,所接入的局域网也没有任何改变。
(2) 假定我们把位于南京的某局域网上的一台笔记本电脑携带到北京,并连接在北京的某局域网上。虽然这台电脑的地理位置改变了,但只要电脑中的适配器不变,那么该电脑在北京的局域网中的“地址”仍然和它在南京的局域网中的“地址”一样。
由此可见,局域网上的某台主机的“地址”根本不能告诉我们这台主机位于什么地方。因此,严格地讲,局域网的“地址”应当是每一个站的“名字”或标识符
4、如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”。更准确些说,这种48位“地址”应当是某个接口的标识符。
5、IEEE 802标准规定MAC地址字段可釆用6字节(48位)或2字节(16位)这两种中的一种。6字节地址字段对局部范围内使用的局域网的确是太长了,但是由于6字节的地址字段可使全世界所有的局域网适配器都具有不相同的地址,因此现在的局域网适配器实际上使用的都是6字节MAC地址。
6、现在IEEE的注册管理机构RA (Registration Authority)是局域网全球地址的法定管理机构[WJEEERA],它负责分配地址字段的6个字节中的前三个字节(即高位24位)。世界上凡要生产局域网适配器的厂家都必须向IEEE购买由这三个字节构成的这个号(即地址块),这个号的正式名称是组织唯一标识符OUI (Organizationally Unique Identifier),通常也叫做公司标识符(companyjd) [RFC 7042],地址字段中的后三个字节(即低位24位)则由厂家自行指派, 称为扩展标识符(extended identifier),只要保证生产出的适配器没有重复地址即可。用这种方式得到的48位地址称为EUI-48,这里 EUI表示扩展的唯一标识符(Extended Unique Identifier)o EUI-48的使用范围并不局限于局域网的硬件地址,而是可以用于软件接口。
7、24位的OUI不能够单独用来标志一个公司,因为一个公司可能有几个OUL也可能有几个小公司合起来购买一个OUL。在生产适配器时,这种6字节的MAC地址已被固化在适配器的ROM中。因此,MAC地址也叫 做硬件地址(hardware address)或物理地址,可见“MAC地址”实际上就是适配器地址或适配器标识符EUI-48。
8、IEEE规定地址字段的第一字节的最低位为I/G位。I/G表示Individual/Group。当I/G位为0时,地址字段表示一个单个站地址。当I/G位为1时表示组地址,用来进行多播(以前曾译为组播)。IEEE只分配地址字段前三个字节中的23位。当I/G位分别为0和1 时,一个地址块可分别生成224个单个站地址和224个组地址。
9、IEEE把地址字段第1字节的最低第二位规定为G/L*位,*表示Global/Local。当G/L位为0时是全球管理(保证在全球没有相同的地址),厂商向IEEE购买的OUI都属于全球管理。当地址字段的G/L位为1时是本地管理,这时用户可任意分配网络上的地址。釆用2字节地址字段时全都是本地管理。但应当指出,以太网几乎不理会这个G/L位。
10、在全球管理时,对每一个站的地址可用46位的二进制数字来表示(最低位和最低第2位均为0时)。剩下的46位组成的地址空间可以有2^46个地址,已经超过70万亿个,可保证世界上的每一个适配器都可有一个唯一的地址。当然,非无限大的地址空间总有用完的时候。但据测算,到 2020年以前还不需要考虑MAC地址耗尽的问题。
11、当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。
12、适配器有过滤功能。但适配器从网络上每收到一个MAC帧就先用硬件检查 MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。“发往本站 的帧”包括以下三种帧:
(1) 单播(unicast)帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同。
(2) 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)。
(3) 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。
13、所有的适配器都至少应当能够识别前两种帧,即能够识别单播和广播地址。有的适配器可用编程方法识别多播地址。当操作系统启动时,它就把适配器初始化,使适配器能够识别某些多播地址。显然,只有目的地址才能使用广播地址和多播地址。
14、以太网适配器还可设置为一种特殊的工作方式,即混杂方式(promiscuous mode)。工作在混杂方式的适配器只要“听到”有帧在以太网上传输就都悄悄地接收下来,而不管这些帧是发往哪个站。请注意,这样做实际上是“窃听”其他站点的通信而并不中断其他站点的通信。
15、常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的802.3标准。这里只介绍使用得最多的以太网V2的MAC帧格式,假定网络层使用的是IP协议。实际上使用其他的协议也是可以的。
以太网V2的MAC帧较为简单,由五个字段组成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议, 以便把收到的MAC帧的数据上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报。若类型字段的值为0x8137,则表示该帧是由Novell IPX发过来的。第四个字段是数据字段,其长度在46到1500字节之间(46字节是这样得 出的:最小长度64字节减去18字节的首部和尾部就得出数据字段的最小长度)。最后一个字段是4字节的帧检验序列FCS (使用CRC检验)。
16、在以太网V2的MAC帧格式中,其首部并没有一个帧长度(或数据长度)字段。曼彻斯特编码的一个重要特点就是:在曼彻斯特编码的每一个码元(不管码元是1或0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送1,也不发送0)。因此,发送方网络适配器的接口上的电压也就不再变化了。这样,接收方就可以很容易地找到以太网帧的结束位置。在这个位置往前数4字节(FCS字段长度是4字节),就能确定数据字段的结束位置。
17、当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。上层使用IP协议时,其首部就有一个“总长度”字段。因此,“总长度”加上填充字段的长度,应当等于MAC帧数据字段的长度。例如,当IP数据报的总长度为42字节时,填充字段共有4字节。当MAC帧把46字节的数据上交给IP层后,IP层就把其中最后4字节的填充字段丢弃。
18、在传输媒体上实际传送的要比MAC帧还多8个字节。这是因为当一个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此 MAC帧的最前面的若干位就无法接收,结果使整个的MAC成为无用的帧。为了接收端迅速实现位同步,从mac子层向下传到物理层时还要在帧的前面插入8字节(由硬件生成),它由两个字段构成。
(1)第一个字段是7个字节的前同步码(1和0交替码),它的作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步, 也就是“实现位同步”(位同步就是比特同步的意思)
(2)第二个字段是帧**开始定界符,**定义为 10101011。它的前六位的作用和前同步码一样,最后的两个连续的I就是告诉接收端适配 器:“MAC帧的信息马上就要来了,请适配器注意接收”。
19、MAC帧的FCS字段的检验范围不包括前同步码和帧开始定界符。顺便指出,在使用SONET/SDH进行同步传输时则不需要用前同步码,因为在同步传输时收发双方的位同步总是一直保持着的。
20、在以太网上传送数据时是以帧为单位传送的。以太网在传送帧时,各帧之间还必须有一定的间隙。因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。
22、IEEE 802.3标准规定凡出现下列情况之一的即为无效的MAC帧:
(1)帧的长度不是整数个字节;
(2)用收到的帧检验序列FCS查出有差错;
(3)收到的帧的MAC客户数据字段的长度不在46〜1500字节之间。
对于检查出的无效MAC帧就简单地丢弃。以太网不负责重传丢弃的帧。
23、IEEE 802.3标准规定的MAC帧格式与上面所讲的以太网V2 MAC帧格式的区别就是两个地方:
(1)IEEE 802.3规定的MAC帧的第三个字段是“长度/类型”。
当这个字段值大于0x0600时(相当于十进制的1536),就表示“类型”。这样的帧和以太网V2 MAC帧完全一样。
当这个字段值小于0x0600时才表示“长度”,即MAC帧的数据部分长度。
(2)当“长度/类型”字段值小于0x0600时,数据字段必须装入上面的逻辑链路控制 LLC子层的LLC帧。
24、帧间最小间隔为 9.6 us,相当于 96 bit 的发送时间。一个站在检测到总线开始空闲后,还要等待 9.6 us 才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
1、扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器
光纤调制解调器的作用就是进行电信号和光信号的转换。由于光纤带来的时延很小, 并且带宽很宽,因此使用这种方法可以很容易地使主机和几公里以外的集线器相连接。
2、如果使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网。这样做可以有以下两个好处:
(1)这个学院不同系的以太网上的计算机能够进行跨系的通信
(2)扩大了以太网覆盖的地理范围
缺点:
(1)在三个系的以太网互连起来之前,每一个系的10BASE.T 以太网是一个独立的碰撞域(collision domain,又称为冲突域),即在任一时刻,在每一个碰撞域中只能有一个站在发送数据。每一个系的以太网的最大吞吐量是10 Mbit/s,因此三个系总的最大吞吐量共有30 Mbit/s.在三个系的以太网通过集线器互连起来后就把三个碰撞域变成一个碰撞域(范围扩大到三个系),而这时的最大吞吐量仍然是一个系的吞吐量10 Mbit/s.这就是说,当某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能通信(一发送数据就会碰撞)。
(2)如果不同的系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来。一个系使用10 Mbit/s的适配器,而另外两个系使用 10/100 Mbit/s的适配器,那么用集线器连接起来后,大家都只能工作在10 Mbit/s的速率。 集线器基本上是个多接口(即多端口)的转发器,它并不能把帧进行缓存。
1、扩展以太网更常用的方法是在数据链路层进行。最初人们使用的是网桥(bridge)。网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
2、1990年问世的交换式集线器(switching hub),很快就淘汰了网桥。交换式集线器常称为以太网交换机(switch)或第二层交换机(L2 switch),强调这种交换机工作在数据链路层。
3、以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的差别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据。
4、以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的接口繁忙时,发送帧的这两台主机的接口会把收到的帧暂存一下,以后再发送出去。
5、以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
6、以太网交换机的性能远远超过普通的集线器,而且价格并不贵,这就使工作在物理层的集线器逐渐地退出了市场。
7、交换机的最大优点:对于传统的10 Mbit/s的共享式以太网,若共有10个用户,则每个用户占有的平均带宽只有1 Mbit/s。若使用以太网交换机来连接这些主机,虽然在每个接口到主机的带宽还是10 Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有10个接口的交换机的总容量则为100 Mbit/s。
8、从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要作任何改动。
9、以太网交换机一般都具有多种速率的接口,例如,可以具有10 Mbit/s、100 Mbit/s和1 Gbit/s的接口的各种组合,这就大大方便了各种不同情况的用户。
10、虽然许多以太网交换机对收到的帧釆用存储转发方式进行转发,也有一些交换机釆用直通(cut-through)的交换方式。直通交换不必把整个数据帧先缓存后再进行处理,而是在接收数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口,因而提高了帧的转发速度。如果在这种交换机的内部采用基于硬件的交叉矩阵,交换时延就非常小。
11、直通交换的一个缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
12、以太网交换机自学习过程:
(1)假定以太网交换机有4个接口,各连接一台计算机,其MAC地址分别 是A, B, C和D。在一开始,以太网交换机里面的交换表是空的
(2)A先向B发送一帧,从接口 1进入到交换机。交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧(在MAC地址这一列中,找不到目的地址为B的项目)。接着,交换机把这个帧的源地址A和接口1写入交换表中,并向除接口1以外的所有接口广播这个帧(这个帧就是从接口1进来的,当然不应当把它再从接口1转发出去)。C和D将丢弃这个帧,因为目的地址不对。只B才收下这个目的地址正确的帧。这也称为过滤。
(3)从新写入交换表的项目(A, 1)可以看出,以后不管从哪一个接口收到帧,只要其目的地址是A,就应当把收到的帧从接口1转发出去。这样做的依据是:既然A发出的帧是从接口1进入到交换机的,那么从交换机的接口1转发出的帧也应当可以到达A。
(4)接下来B通过接口3向A发送一帧。交换机查找交换表,发现交换表中的MAC 地址有A。表明要发送给A的帧(即目的地址为A的帧)应从接口 1转发。于是就把这个 帧传送到接口 1转发给A。显然,现在已经没有必要再广播收到的帧。交换表这时新增加的项目(B, 3),表明今后如有发送给B的帧,就应当从接口3转发岀去。
(5)经过一段时间后,只要主机C和D也向其他主机发送帧,以太网交换机中的交换表就会把转发到C或D应当经过的接口号(2或4)写入到交换表中。这样,交换表中的项目就齐全了。要转发给任何一台主机的帧,都能够很快地在交换表中找到相应的转发接口。
13、考虑到有时可能要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除。用这样的方法保证交换表中的数据都符合当前网络的实际状况。
14、有时为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些冗余的链路。假定一开始主机A通过接口交换机#1向主机B发送一帧,在这种情况下,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
为了解决这种兜圈子问题,IEEE的802.1D标准制定了一个生成树协议STP (Spanning Tree Protocol)。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
15、总线以太网使用CSMA/CD协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。既然连以太网的重要协议CSMA/CD都不使用了(相关的“争用期”也没有了),为什么还叫做以太网呢? 原因就是它的帧结构未改变,仍然采用以太网的帧结构。
1、利用以太网交换机可以很方便地实现虚拟局域网VLAN (Virtual LAN)
2、在IEEE 802.1Q标准中,对虚拟局域网VLAN是这样定义的:虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
3、设有10台计算机分配在三个楼层中,构成了三个局域网,即:LANi: (A1,A2, B1, C1), LAN2: (A3, B2, C2), LAN3: (A4, B3, C3)。
但这10个用户划分为三个工作组,也就是说划分为三个虚拟局域网VLAN。即:VLAN1: (A1, A2, A3, A4), VLAN2: (B1, B2, B3); VLAN3: (C1 C2, C3)。
每一个VLAN的计算机可处在不同的局域网中,也可以不在同一层楼中。
计算机B1〜B3同属于虚拟局域网VLAN2。当B1向工作组内成员发送数据时,计算机B2和B3将会收到广播的信息,虽然它们没有和B1连在同一个以太网交换机上。相反,B1向工作组内成员发送数据时,计算机A1,A2和C1都不会收到B1发出的广播信息,虽然它们都与B1连接在同一个以太网交换机上。
4、虚拟局域网限制了接收广播信息的计算机数,使得网络不会因传播过多的广播信息(即所谓的“广播风暴”)而引起性能恶化。由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。
5、1988年IEEE批准了802.3ac标准,这个标准定义了以太网的帧格式的扩展,以便支持虚拟局域网。虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记(tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入VLAN标记得出的帧称为802.1Q帧。
VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。VLAN标记的前两个字节总是设置为0x8100 (即二进制的10000001 00000000),称为 IEEE 802.1Q标记类型。
后面的两个字节中,前3位是用户优先级字段,接着的一位是规范格式指示符CFI (Canonical Format Indicator),最后的12位是该虚拟局域网VLAN标识符VID (VLAN ID),它唯一地标志了 这个以太网帧属于哪一个VLAN。
由于用于VLAN的以太网帧的首部增加了 4个字节,因此以太网的最大帧长从原来的 1518字节(1500字节的数据加上18字节的首部)变为1522字节。
1、100BASE-T是在双绞线上传送100 Mbit/s基带信号的星形拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议,它又称为快速以太网(Fast Ethernet)o用户只要使用100 Mbit的适配器和100 Mbit/s的集线器或交换机,就可很方便地由10BASE.T以太网直接升级到100 Mbit/s,而不必改变网络的拓扑结构。
2、 1995年IEEE己把100BASE-T的快速以太网定为正式标准,其代号为IEEE 802.3u,是对现行的IEEE 802.3标准的补充。
3、快速以太网使用的MAC帧格式仍然是IEEE 802.3标准规定的帧格式。
4、IEEE 802.3u的标准未包括对同轴电缆的支持。这意味着想从细缆以太网升级到快速以太网的用户必须重新布线。因此,现在10/100 Mbit/s以太网都使用无屏蔽双绞线布线。
5、在100 Mbit/s的以太网中釆用的方法是保持最短帧长不变,对于铜缆100 Mbit/s以太网,一个网段的最大长度是100 m,其最短帧长仍为64字节,即512比特。因此100 Mbit/s 以太网的争用期是5.12us,帧间最小间隔现在是0.96 us,都是10 Mbit/s以太网的1/10。
1、吉比特以太网的产品已在1996年夏季问市。IEEE在1997年通过了吉比特以太网的标准802.3z,并在1998年成为正式标准。几年来,吉比特以太网迅速占领了市场,成为以太网的主流产品。
2、吉比特以太网的标准IEEE 802.3z有以下几个特点:
(1) 允许在1 Gbit/s下以全双工和半双工两种方式工作。
(2) 使用IEEE 802.3协议规定的帧格式。
(3) 在半双工方式下使用CSMA/CD协议,而在全双工方式不使用CSMA/CD协议。
(4) 与10BASE.T和100BASE-T技术向后兼容。
3、吉比特以太网可用作现有网络的主干网,也可在高带宽(高速率)的应用场合中(如医疗图像或CAD的图形等)用来连接计算机和服务器。
4、吉比特以太网的物理层使用两种成熟的技术:一种来自现有的以太网,另一种则是美国国家标准协会ANSI制定的光纤通道FC (Fibre Channel)o釆用成熟技术就能大大缩短吉比特以太网标准的开发时间。
1、10GE并非把吉比特以太网的速率简单地提高到10倍,因为还有许多技术上的问题要解决。
2、10GE的帧格式与10 Mbit/s, 100 Mbit/s和1 Gbit/s以太网**的帧格式完全相同,并保留了802.3标准规定的以太网最小帧长和最大帧长。**这就使用户在将其已有的以太网进行升级时,仍能和较低速率的以太网很方便地通信。
3、10GE只工作在全双工方式,因此不存在争用问题,当然也不使用CSMA/CD协议。这就使得10GE的传输距离大大提高了(因为不再受必须进行碰撞检测的限制)
4、现在以太网的工作范围已经从局域网(校园网、企业网)扩大到城域网和广域网,从而实现了端到端的以太网传输。这种工作方式的好处是:
(1) 以太网是一种经过实践证明的成熟技术,无论是互联网服务提供者ISP还是端用户都很愿意使用以太网。当然对ISP来说,使用以太网还需要在更大的范围进行试验。
(2) 以太网的互操作性也很好,不同厂商生产的以太网都能可靠地进行互操作。
(3) 在广域网中使用以太网时,其价格大约只有同步光纤网SONET的五分之一和异步传递方式ATM的十分之一。以太网还能够适应多种传输媒体,如铜缆、双绞线以及各种光缆。这就使具有不同传输媒体的用户在进行通信时不必重新布线。
(4) 端到端的以太网连接使帧的格式全都是以太网的格式,而不需要再进行帧的格式转换,这就简化了操作和管理。但是,以太网和现有的其他网络,如帧中继或ATM网络,仍然需要有相应的接口才能进行互连。
5、以太网从10 Mbit/s到10 Gbit/s甚至到100 Gbit/s的演进,证明了以太网是:
(1) 可扩展的(速率从10 Mbit/s到100 Gbit/s)o
(2) 灵活的(多种媒体、全/半双工、共享/交换)。
(3) 易于安装。
(4) 稳健性好。
1、以太网接入的一个重要特点是它可以提供双向的宽带通信,并且可以根据用户对带宽的需求灵活地进行带宽升级(例如,把10兆的以太网交换机更新为吉比特的以太网交换机)。当城域网和广域网都釆用吉比特以太网或10吉比特以太网时,釆用以太网接入可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本。
2、然而以太网的帧格式标准中,在地址字段部分并没有用户名字段,也没有让用户键入密码来鉴别用户身份的过程。如果网络运营商要利用以太网接入到互联网,就必须解决这个问题。
3、把数据链路层的两个成功的协议结合起来,即把PPP协议中的PPP 帧再封装到以太网中来传输。这就是1999年公布的PPPoE (PPP over Ethernet),意思是“在以太网上运行PPP” [RFC 2516].现在的光纤宽带接入FTTx都要使用PPPoE的方式进行接入。