如图,主机H1给主机H2发送数据,中间要经过3个路由器和电话网、局域网以及广域网等多种网络。
以五层协议的角度来看,主机应具有体系结构中的各个层次,而路由器只需具有体系结构中的下面三层,各设备通过物理层下面的传输媒体进行互连。当主机H1向H2发送数据时,数据的流动如下图所示。
假设数据包只在数据链路层从左向右沿水平方向传送。从数据链路层来看,主机H1到H2的通信可以看成是4段不同的链路上的通信组成的,如下图所示。
一条不远的点到点的物理线路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
或物理链路
把实现控制数据传输的协议的硬件和软件加到链路上,就构成了数据链路
或逻辑链路
典型实现:适配器(即网卡)
数据链路层把网络层交下来的数据构成帧发送到链路上以及把接收到的帧中的数据取出并上交到网络层。在互联网中,网络层协议数据单元就是IP数据报(或简称为数据包、分组、包)
在一段数据的前后分别添加首部和尾部,构成一个帧。(一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度)
首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)
添加帧头和帧尾的目的都是为了在链路上以帧为单元来传送数据,也就是为了实现数据链路层本身的功能。
在发送帧时,是从帧首部开始发送的。各种数据链路层协议都对帧首部和尾部有明显的规定。
虽然为了提高帧的传输效率应当使帧的数据部分长度尽可能大于首部和尾部的长度,但是每一种数据链路层协议都规定了所能传送的帧的数据部分长度上限,即最大传送单元MTU
帧定字符: 用控制字符作为帧定字符
控制字符SOH:放在一帧的最前面,表示帧的首部开始
控制字符EOT:放在一帧的末尾,表示帧的结束
作用:当数据在传输过程中出现差错时,帧定界符的作用更加明显。
假定发送端在尚未发送完一个帧时突然出现故障,中断了发送。但随后很快又恢复正常,于是重新从头开始发送刚才未发送完的帧。由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丢弃。而后面收到的数据有明确的帧定界符(SOH和EOT),因此这是一个完整的帧,应当收下
由于帧的开始和结束的标记使用专门指明的控制字符,因此所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
当传送的帧是用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。
因为文本文件里的字符都在ASCII码范围内,而SOH、EOT的十六进制编码分别是01和04,也就是说不在ASCII码的范围内。简单来说就是SOH(或EOT)并不是S、O、H这三个字符
但当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或E0T这种控制字符一样(见图3-6),数据链路层就会错误地“找到帧的边界”,把部分帧收下(误认为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。
如下图所示:
这显然不是透明传输
因为当遇到数据中碰巧出现字符“EOT”时就传过去了。数据中的“EOT”将被接收端错误地解释为“传输结束”的控制字符,而在其后面的数据因找不到“SOH”被接收端当作无效帧而丢弃。但实际上在数据中出现的字符“E0T”并非控制字符而仅仅是二进制数据00000100。
”在数据链路层透明传送数据“表示:无论发送什么样的比特组合的数据,这些数据都能够按原样没有差错地通过这个数据链路层。
解决透明传输问题也就是设法使数据中可能出现的控制字符”SOH“和”EOT“在接收端不被解释为控制字符
用”字节填充“或”字符填充“法来解决透明传输问题:发送端的数据链路层在数据中出现控制字符的前面插入一个转义字符”ESC“(十六进制为1B)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。
发送方将封装好的帧通过物理层发送到传输媒体,帧在传输过程中遭遇干扰后可能会出现误码,也就是比特0可能变成了比特1,反之亦然。
在一段时间内,传输错误的比特占所有传输比特总数的比率
原理:在发送端,先把数据划分为组。假定每组k个比特
CRC运算:在每组M后面在添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位。
CRC冗余码的计算:
1.先把数据划分为组,假定每组k个比特,带传送数据为M。
2.用二进制的模2运算进行2的n次方成M的运算,这相当于在M后面添加n个0
3.得到(k+n)位的数除以事 先选定好的长度为(n+1)位的除数P,得出商是Q,余数是R。余数R比除数P少1位,即R是n位。
4.将余数R作为冗余码拼接在数据M后面,一起发送出去(这种为了进行检错而添加的冗余码常称为帧检验序列FCS)
例子:
令M=101001(k=6),假定除数p=1101(即n=3)
若得出的余数R=0,则判定这个帧没有差错,就接受
若余数不等于0,则判定这个帧有差错(但无法确定究竟是哪一位或哪几位出现了差错),就丢弃。
模2运算是一种二进制算法,CRC校验技术中的核心部分。
本质是异或运算,且不考虑进位和借位。
(1)模2加法
0+0=0 0+1=1 1+0=1 1+1=0
(2)模2减法
0-0=0 0-1=1 1-0=1 1-1=0
(3)模2乘法
0×0=0 0×1=0 1×0=0 1×1=1
多位二进制模2乘法类似于普通意义上的多位二进制乘法
不同之处在于后者累加中间结果(或称部分积)时采用带进位的加法
模2乘法对中间结果的处理方式采用的是模2加法
(4)模2除法
被除数位数足够,即位数 ≥ 除数位数,则商对应写1,不够则商对应写0(也就是部分余数首位为0时,商上0;否则反之)。
得到的余数始终比除数位数少1。
循环冗余检验CRC和帧检验序列FCS并不等同
1.CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。
2.FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法
1.仅用循环冗余检验CRC差错检测技术只能做到无差错接受,即凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。
2.无比特差错与无传输差错是不同的
可靠传输是数据链路层的发送端发送什么,在接收端就收到什么
传输差错可分为两大类:比特差错和传输差错(帧丢失、帧重复、帧失序等)
在数据链路层使用CRC检验,能够实现无比特差错,但这还不是可靠传输
要做到可靠传输,还必须再加上帧编号、确认和重传等机制
点对点协议PPP是目前使用得最广泛的数据链路层协议
IETF认为,在设计PPP协议时必须考虑以下多方面的需求
三个组成部分:
1.一个将IP数据包封装到串行链路的方法
2.一个链路控制协议LCP
3.一套网络控制协议NCP
各字段的意义:
首部(4个字段):
1.标志字段F:0x7E.连续两帧之间只需要用一个标志字段
2.地址字段A:只置为0xFF。实际上不起作用
3.控制字段C:通常为0x03
4.协议字段
局部(两个字段)
当PPP用在异步传输时,使用字节填充 :将转义字符定义为0x7D
当PPP用在同步传输链路时,采用零比特填充法:只要发现有5个连续1,则立即填入一个0,这样就可以保证不会出现6个连续的1
什么是异步传输?
异步传输是一种面向字符的传输,一般以字符为一个单位传输,而非一坨坨地传
简单地来说就是发送方和接收方无需进行同步,你搞你的他搞他的,不是实时同步,而是分组同步,如QQ离线发送文件。又比如计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。
异步传输的潜在问题:即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。
这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。
因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。
起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
异步传输的缺点:
由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,负载增值就相当严重了。因此,异步传输常用于低速设备。
同步传输:
同步传输是面向比特的传输
同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。
数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。帧的最后一部分是一个帧结束标记。与同步字符一样,它也是一个独特的比特串,类似于前面提到的停止位,用于表示在下一帧开始之前没有别的即将到达的数据了。同步传输的优点:
同步传输通常要比异步传输快速得多。接收方不必对每个字符进行开始和停止的操作。一旦检测到帧同步字符,它就在接下来的数据到达时接收它们。同步传输的缺点:
数据比特位越长,缓存数据所需要的缓冲区也越大,这就限制了一个帧的大小。
帧越大,它占据传输媒体的连续时间也越长。在极端的情况下,这将导致其他用户等得太久。
总结:
异步传输: 你传输吧,我去做我的事了,传输完了告诉我一声 同步传输: 你现在传输,我要亲眼看你传输完成,才去做别的事
1.用户拨号接入ISP(网络业务提供商)后,就建立了一条从用户个人电脑到ISP的物理连接。
2.用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接
3.之后进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址
4.当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址,LCP释放数据链路层连接,最后释放的是物理层的连接。
广播信道可以进行一对多的通信
局域网工作的层次跨越了数据链路层和物理层。由于局域网技术中有关数据链路层的内容比较丰富,因此把局域网的内容放在数据链路层介绍,但并不代表局域网仅仅和数据链路层有关
局域网数据链路层分为两个子层:
逻辑链路控制LIC子层:与传输媒体无关
媒体接入控制MAC子层:与传输媒体有关
局域网使用的就是广播信道
1.网络为一个单位所拥有
2.地理范围和站点数目均有限
1.具有广播功能,从一个站点可很方便地访问全网
2.便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
3.提高了系统的可靠性、可用性和生存性
局域网可按网络拓扑进行分类:
星线网:由于集线器的出现和双绞线大量用于局域网中,星形以太网以及多星形结构的以太网获得了非常广泛的应用
环形网
总线网
什么是网络拓扑
计算机连接的方式叫做“网络拓扑结构”(Network Topology)。
网络拓扑是指用传输媒体互连各种设备的物理布局,特别是计算机分布的位置以及电缆如何通过它们。
设计一个网络的时候,应根据自己的实际情况选择正确的拓扑方式。每种拓扑都有它自己的优点和缺点。通俗地说,“拓扑结构”就是指这些计算机与通讯设备是如何连接在一起的。
双绞线:最便宜,双绞线已成为局域网中的主流传输媒体
光纤:当数据率很高时,往往需要使用光纤作为传输媒体
共享信道要着重考虑的一个问题就是如何使众多用户能够合理而方便地共享通信媒体资源
1.静态划分信道
频分复用、时分复用、波分复用、码分复用等
用户只要分配到了信道就不会和其它用户发生冲突,但是这种划分信道的方法代价较高,不适合于局域网使用
2.动态媒体接入控制(多点接入):
特点是:信道并非在用户通信时固定分配给用户
随机接入:所有用户可随机地放松信息(ps:5.2有接着介绍)
受控接入:用户必须服从一定的控制,如轮询
计算机与外界局域网的连接是通过通信适配器进行的。
适配器的作用:
适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的
适配器和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行的
适配器的一个重要功能就是要进行数据串行和并行传输的转换。
由于网络上的数据率和计算机总线上个的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片
在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。(这个驱动程序以后就会告诉适配器,应当从存储器的什么位置把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来
适配器还要能够实现以太网协议
最早的以太网是将许多计算机都连接到一根总线上。(也就是当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据,这种就是广播通信方式)
这种方式易于实现广播通信,简单,可靠(总线优点)
多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。(总线缺点)
但我们并不总是要在局域网上进行一对多的广播通信。为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧。
这样具有广播特性的总线上就实现了一对一通信。
(1) 采用较为灵活的无连接的工作方式。
不必先建立连接就可以直接发送数据。
对发送的数据帧不进行编号,也不要求对方发回确认。
(这种工作方式可以使以太网工作起来非常简单,而局域网信道的质量很好,因通信质量不好产生差错的概率是很小的)
所以这种方式提供的是不可靠交付服务:
A.尽最大努力的交付(当目的站收到有差错的数据帧时(例如,用CRC查出有差错)就把帧丢弃,其他什么也不做。)
B.对有差错帧是否需要重传则由高层来决定。(例如,如果高层使用TCO协议,那么TCP就会发现丢失了一些数据。于是经过一定的时间后,TCP就把这些数据重新传递给以太网进行重传。但以太网并不知道这是重传帧,而是当作是新的数据帧来发送。)
(总线上只要有一台计算机在发送数据,总线的传输资源就被占用。如果没有同一时间只能允许一台计算机发送,则各计算机之间就会互相干扰,使得所发送数据被干扰)
所以同一时间只能允许一台计算机发送
A.以太网采用最简单的随机接入(用于协调总线上各计算机的工作)
B.使用 CSMA/CD 协议减少冲突发生的概率。(比起随机接入,有更好的协议用来减少冲突发生的概率。这好比有一屋子的人在开讨论会,没有会议主持人控制发言。想发言的随时可发言,那么你就必须等别人讲完才能发言(否则就干扰了别人的发言)。但有时碰巧两个或者更多的人同时发言了,那么一旦发生冲突,大家都必须立即停止发言,等听到没有人发言了你再发言。)
(2)发送的数据都使用曼彻斯特 (Manchester) 编码。
曼彻斯特编码缺点:所占的频带宽度比原始的基带信号增加了一倍。
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) :载波监听多点接入 / 碰撞检测。
1.多点接入:说明这是总线型网络。许多计算机以多点接入的方式连接在一根总线上。
2.载波监听:即“边发送边监听”。不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。
(在发送前检测信道,是为了获得发送权。如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须等到信道边为空闲时才能发送。在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞)
3.碰撞检测:适配器边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(或冲突)。
(这时,总线上传输的信号产生了严重的失真,无法从中会付出有用的信息来。因此任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就要立即停止发送,免得继续进行无效的发送,白白浪费网络资源,然后等待一段随机时间后再次发送)
疑惑:既然每一个站在发送数据之前已经监听到信道为”空闲“,那么为什么还会出现数据在总线上的碰撞呢?
回答:因为信道的传播时延对载波监听产生了影响(这就好比我们开讨论会时,一听见会场安静,我们就立即发言,但偶尔也会发生几个人同时抢着发言而发生冲突的情况)
可见:每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性(这种情况可以是A先检测到为空把这个信号发回去的时候 B在此时B检测到为空,并且在这时A还没开始发送数据。所以这样就会导致A先发送数据,一段时间后B发送数据,然后就碰撞了)
显然,在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不太可能进行全双工通信而只能进行双向交替通信(半双工通信)
重要的时刻分析:
在(1)时间点时,A发送数据,B检测到信道为空
在(2)时间点时,A发送的数据还没有到达B时,由于B检测到信道是空闲的,因此B发送数据
在(3)时间点时,A发送的数据和B发送的数据发生了碰撞。但这是A和B都不知道发生了碰撞
在(4)时间点时,B检测到了发生碰撞,于是停止发送数据
在(5)时间点,A也检测到了发生了碰撞,因而也停止了发送数据。
从图3-17可看出,最先发送数据帧的A站,在发送数据帧之后至多经过时间2τ就可知道所发送的数据帧是否遭受了碰撞。
因此以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
具体的争用期时间 = 51.2 μs
争用期的长度 = 51.2 s。(发送512bit,即64字节要这么长的时间)(微秒)
对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。
这意味着:
以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
以太网规定了最短有效帧长为 64 字节。凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧,应当立即将其丢弃。
因为假如某个站发送了一个很短的帧,但在发送完毕之间并没有检测出碰撞(也就是发送完的时候碰撞信号还没传回去)。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站将会收到有差错的帧(当然会把它丢弃掉)。可是发送站却不知道这个帧发生了碰撞,因而不会重传这个帧。
所以为了避免这种情况,以太网规定了一个最短帧长64字节。
如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
因为如果发生碰撞,就一定会在发送的前64个字节之内。由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于64字节。
以太网最大端到端单程时延必须小于争用期的一半 (即 25.6 μs),相当于以太网的最大端到端长度约为 5 km。
(实际上的以太网覆盖范围远远没有这样大,所以实用的以太网都能在争用期51.2微秒内检测到可能发生的碰撞
以太网的争用期确定为51.2微秒,不仅考虑到以太网的端到端时延,而且还要考虑其他许多因素,如存在的转发器所增加的时延以及强化碰撞的干扰信号的持续时间等。
当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让多有用户都知道现在已经发生了碰撞。(即发送站检测到冲突后,立即停止发送数据帧,接着就发送 32 或 48 比特的人为干扰信号 (jammingsignal) 。)
对于10Mbits以太网,发送32比特只需要3.2微秒。
相当于96比特时间
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
以太网使用采用截断二进制指数退避 (truncated binary exponential backoff) 确定碰撞后的重传时机。(为了使各站进行重传时再次发生碰撞的概率减小)
这种算法是在发生碰撞的站停止发送数据后,(不是等待信道变为空闲就立即再发送数据而是)要退避一个随机时间后再发送数据。
简单理解就是:如果几个发生碰撞的站都在监听信道,那么都会同时发现信道变成了空闲。假如大家都同时再重新发送,那么肯定又会发生碰撞。
具体的退避算法如下:
1.基本退避时间 = 2
2.从整数集合 [0, 1, … , (2k - 1)] 中随机地取出一个数,记为 r。
重传所需的时延 = r ⅹ 基本退避时间。
3.参数 k = Min[重传次数, 10]
4.当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
例子:
第 1 次冲突重传时:
k = 1,r 为 {0,1} 集合中的任何一个数。
第 2 次冲突重传时:
k = 2,r 为 {0,1,2,3} 集合中的任何一个数。
第 3 次冲突重传时:
k = 3,r 为 {0,1,2,3,4,5,6,7} 集合中的任何一个数。
ps:若连续多次发生冲突,表明可能有较多的站参与争用信道。
上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
传统以太网传输媒体:粗同轴电缆 --> 细同轴电缆 -->双绞线。
采用双绞线的以太网采用星形拓扑。
在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)。
1.使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。 (在物理上是一个星形网)
2.使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
3.很像一个多接口的转发器,工作在物理层。
4.采用了专门芯片,进行自适应串音回波抵消,减少了近端串音。
前提:多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到 100%。
以例子来说明:
假设:单程端到端传播时延 = τ,则争用期长度 = 2τ 。检测到碰撞后不发送干扰信号。
设:帧长 = L (bit),数据发送速率 = C (bit/s),则帧的发送时间 T0 = L/C (s)。
一个站在发送帧时出现了碰撞,经过一个争用期后,可能有出现了碰撞。这样经过若干个争用期后,一个站发送成功了。假定发送帧需要的时间是T0
成功发送一个帧需要占用信道的时间是 T0 + τ ,比帧的发送时间要多一个单程端到端时延 τ 。
(因为发送站发送完最后一个比特之后,还要在以太网上传播。最极端的情况就是发送站在传输媒体的一端而比特在媒体上传输到另一端所需的时间是τ)
信道利用率为:T0/(r*2τ+T0+τ)
在以太网中定义了参数 a = 以太网单程端到端时延 τ 与帧的发送时间 T0 之比
1.a → 0,表示一发生碰撞就立即可以检测出来, 并立即停止发送,因而信道利用率很高。
2.a 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
1.为提高利用率,以太网的参数 a 的值应当尽可能小些。
2.当数据率一定时,以太网的连线的长度受到限制,否则 τ 的数值会太大。
3.以太网的帧长不能太短,否则 T0 的值会太小,使 a 值太大。
即总线一旦空闲就有某一个站立即发送数据
这样发送一帧占用线路的时间为T0+τ ,而帧本身的发送时间是T0。于是计算出的极限信道利用率Smax为
该极限信道利用率说明只有当参数 a 远小于 1 才能得到尽可能高的极限信道利用率。
假如参数a远远大于1(即没发生一次碰撞就要浪费相对较多的传输数据的时间),则极限信道利用率就远小于1,而此时实际的信道利用率就更小了
据统计,当以太网的利用率达到 30% 时就已经处于重载的情况。
在局域网中,硬件地址又称为物理地址,或 MAC 地址。
在所有计算机系统的设计中,标识系统都是以恶搞核心问题。在标识系统中,地址就是识别某个系统的一个非常重要的标识符。在讨论地址问题时,很多人常常引用著名文献给出如下的定义:
”名字指出我们所要寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处“
严格来讲,名字应当与系统的所在地无关。这就像我们每个人的名字一样,不随我们所处的地点而改变。
但是IEEE 802 标准为局域网规定了一种 48 位的全球地址(简称为地址)是指局域网上的每一台计算机中固化在适配器的 ROM 中的地址。
(1)假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器,那这台计算机的局域网”地址“也就改变了,虽然这台计算机的地理位置一点也没有改变,所接入的局域网也没有任何改变
(2)假定我们把位于南京的某局域网上的一台笔记本电脑携带到北京,并连接在北京的某局域网上。虽然这台电脑的物理位置改变了,但只要电脑中的适配器不变,那么该电脑在北京的局域网中的”地址“仍与他在南京的局域网的”地址“一样因此,局域网中的”地址“应当是每一个站的”名字“或标识符
注意:如果连接在局域网上的主机或路由器安装有多个适配器,这样的主机或路由器就有多个“地址”。更准确些说,这种 48 位“地址”应当是某个接口的标识符。
IEEE 注册管理机构 RA 负责向厂家分配前 3 个字节 (即高 24 位),称为组织唯一标识符 OUI
(Organizationally Unique Identifier)。 厂家自行指派后 3 个字节 (即低 24 位),称为扩展标识符(extended identifier)。
必须保证生产出的适配器没有重复地址。
地址被固化在适配器的 ROM 中。
IEEE 规定地址字段的第 1 字节的最低位为 I/G (Individual / Group) 位。
单站地址:I/G 位 = 0。
组地址:I/G 位 = 1。
组地址用来进行多播。
广播地址:所有 48 位都为 1(全 1)。只能作为目的地址使用。
IEEE 把地址字段第 1 字节的最低第 2 位规定为 G/L (Global / Local) 位。
全球管理:G/L 位 = 0。厂商向IEEE 购买的 OUI 都属于全球管理。
本地管理:G/L 位 = 1。 这时用户可任意分配网络上的地址。
当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口。路由器如果同时连接到两个网络上,那么它需要两个适配器和两个硬件地址
1.适配器具有过滤功能:
每收到一个 MAC 帧,先用硬件检查帧中的 MAC 地址。
如果是发往本站的帧则收下,然后再进行其他的处理。
否则就将此帧丢弃,不再进行其他的处理。
这样做不浪费主机的处理机和内存资源
2.发往本站的帧”包括以下 3 种帧:
单播 (unicast) 帧(一对一):即收到的帧的MAC地址和本站的硬件地址相同
广播 (broadcast) 帧(一对全体):即发送给本地局域网上所有站点的帧(全1地址)
多播 (multicast) 帧(一对多):即发送给本局域网上一部分站点的帧
所有的适配器都至少应当能够识别前两种帧,即能够识别单播和广播地址。有的适配器可用编程方法识别多播地址。当操作系统启动后,他就把适配器初始化,是适配器能够识别某些多播地址**。显然,只有目的地址才能使用广播地址和多播地址。**
3.适配器特殊的工作方式:以混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来,而不管这些帧是发往那个站的。
这样做实际上是”窃听“其他站点的通信而并不中断其他站点的通信。网络上的黑客常利用这种方式非法获取网络上用户的口令。因此以太网上的而用户不愿意网络上有工作在混杂方式的适配器。
常用的以太网 MAC 帧格式有 2 种标准:
1.DIX Ethernet V2 标准
2.IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。
1.目的地址字段 6 字节
2.源地址字段 6 字节
3.源地址字段 6 字节
4.类型字段 2 字节,类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
5.数据字段 46 ~ 1500 字节,数据字段的正式名称是 MAC 客户数据字段。最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46字节)
6.FCS 字段 4 字节,当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
7.插入的8字节,由硬件在帧的前面插入 8 字节。第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。(为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节)
1.数据字段的长度与长度字段的值不一致;
2.帧的长度不是整数个字节;
3.用收到的帧检验序列 FCS 查出有差错;
4.数据字段的长度不在 46 ~1500 字节之间。
5.有效的 MAC 帧长度为 64 ~ 1518 字节之间。
处理:
对于检查出的无效 MAC 帧就简单地丢弃。
以太网不负责重传丢弃的帧。
1.当“长度/类型”字段值大于 0x0600 时,表示“类型”;小于 0x0600 时,表示“长度”。
2.当“长度/类型”字段值小于 0x0600 时,数据字段必须装入逻辑链路控制 LLC 子层的 LLC 帧。
3.在 802.3 标准的文档中,MAC 帧格式包括了 8 字节的前同步码和帧开始定界符。
现在市场上流行的都是以太网 V2 的 MAC 帧,但大家也常常把它称为 IEEE 802.3 标准的 MAC 帧。
主机使用光纤和一对光纤调制解调器连接到集线器(光纤调制解调器的作用就是进行电信号和光信号的转换)
由于光纤的时延很小,并且带宽很宽,因此使用这种方法很容易使主机和几公里以外的集线器相连接。
图为:例如一个学院的三个系各有一个10BASE-T以太网,可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网
用多个集线器连成更大的以太网
这样做的好处是:
1.使这个学院不同系的以太网上的计算机能够跨系通信(使原来属于不同碰撞域(冲突域)的计算机能够跨碰撞域通信。)
2.扩大了以太网覆盖的地理范围(扩大了以太网覆盖的地理范围。)
这样做的缺点是:
1.当某个系得两个站在通信时所传送得数据会通过所有得集线器进行转发,使得其他系得内部在这时都不能通信(已发送数据就会碰撞)(碰撞域增大了,总的吞吐量未提高。)
2.如果不同系使用不用得以太网技术(如数据率不同),那么就不可能用集线器将他们互连起来。
碰撞域(collision domain)又称为冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。
碰撞域越大,发生碰撞的概率越高。
扩展以太网更常用的方法是在数据链路层进行
早期使用网桥,现在使用以太网交换机。
工作在数据链路层。
根据 MAC 帧的目的地址对收到的帧进行转发和过滤。或者转发,或者丢弃。
工作在数据链路层。
多端口的网桥。
可明显地提高以太网的性能。
1.实质上是一个多接口网桥(通常有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的差别)
2.每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
3.以太网交换机具有并行性。
·能同时连通多对接口,使多对主机能同时通信。(而网桥只能一次分析和转发一个帧)
·相互通信的主机都独占传输媒体,无碰撞地传输数据。
·每一个端口和连接到端口的主机构成了一个碰撞域。
以太网交换机的每个接口都是一个碰撞域
4、接口有存储器。
(能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的接口繁忙时,发送帧的这两台主机的接口会把收到的帧暂存一下,以后再发送出去)
5、即插即用。其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。这种交换表就是一个内容可寻址存储器CAM (Content addressable Memory)。
使用专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
6.以太网交换机的性能远远超过普通的集线器,而且价格并不贵。
每个用户独享带宽,增加了总容量
N 个用户共享集线器提供的带宽 B。
平均每个用户仅占有 B/N 的带宽。
交换机为每个端口提供带宽 B。
N 个用户,每个用户独占带宽 B。
交换机总容量达 B × N 。
把整个数据帧先缓存,再进行处理。
接收数据帧的同时立即按数据帧的目的 MAC 地址决定该帧的转发接口。
**缺点:**不检查差错就直接将帧转发出去,有可能转发无效帧。
用一个简单的例子来说明以太网交换机是怎样进行自学习的
假定下面的以太网交换机有4个接口,各连接一台计算机,其MAC地址分别是ABCD。
(1)开始时,交换表是空的
(2)A 先向 B 发送一帧。该帧从接口 1 进入到交换机
交换机收到帧后,先查找交换表。没有查到应从哪个接口转发这个帧给 B。
交换机把这个帧的源地址 A 和接口 1 写入交换表中。
交换机向除接口 1 以外的所有的接口广播这个帧。
由于与该帧的目的地址不相符,C 和 D 将丢弃该帧。只有B才手下这个目的地址正确的帧。这也称为过滤。
交换机收到帧后,先查找交换表。发现交换表中的 MAC 地址有 A,表明要发送给 A 的帧应从接口 1 转发出去。于是就把这个帧传送到接口 1 转发给 A。
交换机把这个帧的源地址 B 和接口 3 写入交换表中。
(4)经过一段时间后,只要主机C和D也向其他主机发送帧,以太网交换机的交换表就会把转发到C或D应当经过的接口号写入到交换表中。这样交换表中的项目就齐全了。要转发任何一台主机的帧,都能够很快地在交换表中找到相应的转发接口。
考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除。
这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置。
假设:A 向 B 发送了一帧,C 向 E 发送了一帧,E 向 A 发送了一帧。
请分析:此时,S1 和 S2 的交换表内容分别是什么?
有时为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些冗余的链路。在这种情况下,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
假定开始时,交换机 S1 和 S2 的交换表都是空的。
主机 A 通过接口交换机S1向主机 E 发送一帧。
分析:
交换机S1收到这个帧后就向所有其他接口进行广播发送。现观察其中一个帧的走向:离开交换机S1的接口5–>交换机S2的接口5–>接口6–>交换机S1的接口6–>接口5–>交换机S2的接口5…
这样就无限制地循环兜圈子下去,白白浪费了网络资源
生成树协议 STP (Spanning Tree Protocol) 要点:
不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
加粗样式##### 从总线以太网到星形以太网
1.早期
采用无源的总线结构
使用 CSMA/CD 协议,以半双工方式工作。
2.现在
以太网交换机为中心的星形结构
不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。但仍然采用以太网的帧结构。
问题:既然连以太网的重要协议CSMA/CD都不使用了(相关的争用期都没有了),为什么还叫以太网呢?
因为它的帧结构未改变,仍采用以太网的帧结构。
一个以太网是一个广播域
广播域(broadcast domain):指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收。
交换机之间的冗余链路形成广播风暴
交换机每个接口都处于一个独立的碰撞域(或冲突域)中,但所有计算机都处于同一个广播域中。
无法隔离不同部门的通信
利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。
IEEE 802.1Q 对虚拟局域网 VLAN 的定义:
虚拟局域网 VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
虚拟局域网其实只是局域网给用户提供的一种服务,并不是一种新型局域网
1.改善了性能
2.简化了管理
3.降低了成本
4.改善了安全性
1.基于交换机端口
2.基于计算机网卡的 MAC 地址
3.基于协议类型
4.基于 IP 子网地址
5.基于高层应用或服务
最简单、也是最常用的方法。
属于在第 1 层划分虚拟局域网的方法。
缺点:不允许用户移动。
根据用户计算机的 MAC 地址划分虚拟局域网。
属于在第 2 层划分虚拟局域网的方法。
允许用户移动。
缺点:需要输入和管理大量的 MAC 地址。如果用户的 MAC 地址改变了,则需要管理员重新配置VLAN。
根据以太网帧的第三个字段“类型”确定该类型的协议属于哪一个虚拟局域网。
属于在第 2 层划分虚拟局域网的方法。
根据以太网帧的第三个字段“类型”和 IP 分组首部中的源 IP 地址字段确定该 IP 分组属于哪一个虚拟局域网。
属于在第 3 层划分虚拟局域网的方法。
根据高层应用或服务、或者它们的组合划分虚拟局域网。
更加灵活,但更加复杂。
虚拟局域网协议允许在以太网的帧格式中插入一个个4字节的标识符,称为VLAN标记。
VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。VLAN标记的前两个字节总是设置为0x8100(即二进制10000001 00000000),称为IEEE 802.1Q标记类型.
当数据链路层检测到MAC帧的源地址字段后面的两个字节的值为0x8100时,就知道现在插入了4个字节的VLAN标记。于是就接着检查后面两个字节的内容。
在后面的两个字节中,
前3位是用户优先级字段,
接着的以为是规范格式指示符CFI,
最后12位是该虚拟局域网VLAN标识符VID它他唯一标志了这个以太网帧属于哪一个VLAN。
标准以太网帧插入 4 字节的 VLAN 标记后变成了 802.1Q 帧(或带标记的以太网帧)
又称为快速以太网 (Fast Ethernet)。
在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网。
仍使用 IEEE 802.3 的 CSMA/CD 协议。
1995 定为正式标准:IEEE 802.3u。
可在全双工方式下工作而无冲突发生。
在全双工方式下工作时,不使用 CSMA/CD 协议。
使用 IEEE 802.3 协议规定的 MAC帧格式。
保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 米。
帧间时间间隔从原来的 9.6 微秒 改为现在的 0.96 微秒。
1.允许在 1 Gbit/s 下以全双工和半双工 2 种方式工作。
2.使用 IEEE 802.3 协议规定的 MAC 帧格式。
3.在半双工方式下使用 CSMA/CD 协议,而在全双工方式不使用 CSMA/CD 协议。
4.与 10BASE-T 和 100BASE-T 技术向后兼容。
使用 2 种成熟的技术:一种来自现有的以太网,另一种则是美国国家标准协会 ANSI 制定的光纤通道 FC (Fiber Channel)。
半双工时采用 CSMA/CD,必须进行碰撞检测。
为保持 64 字节最小帧长度,以及 100 米的网段的最大长度,增加了 2 个功能:
1.载波延伸 (carrier extension)
2.分组突发 (packet bursting)
注意:全双工方式工作的吉比特以太网不使用载波延伸和分组突发。
将争用时间增大为 512 字节。凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面。
当很多短帧要发送时,第 1 个短帧采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止。
1.万兆比特。
2.与 10、100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同。
3.保留了 IEEE 802.3 标准规定的以太网最小和最大帧长。
4.只使用光纤作为传输媒体。
5.只工作在全双工方式,没有争用问题,不使用 CSMA/CD 协议。
以太网的工作范围已经扩大到城域网和广域网,实现了端到端的以太网传输。
1.技术成熟;
2.互操作性很好;
3.在广域网中使用以太网时价格便宜;
4.采用统一的以太网帧格式,简化了操作和管理。
IEEE 在 2001 年初成立了 802.3 EFM 工作组,专门研究高速以太网的宽带接入技术问题。
1.可以提供双向的宽带通信。
2.可以根据用户对带宽的需求灵活地进行带宽升级。
3.可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。
4.但不支持用户身份鉴别。
PPPoE (PPP over Ethernet) :在以太网上运行 PPP。
将 PPP 帧封装到以太网中来传输。
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。
利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间的连接也使用 RJ-45 和 5 类线,也使用 PPPoE。