zoukankan      html  css  js  c++  java
  • 计算机网络复习笔记(第三章 2)

    第3章 数据链路层

    3.3.5 以太网的MAC层

    3.4 扩展的以太网

    3.4.1 在物理层扩展以太网

    3.4.2 在数据链路层扩展以太网

    3.4.3 虚拟局域网

    3.5 高速以太网

    3.5.1 100BASE-T以太网

    3.5.2 吉比特以太网

    3.5.3 10吉比特以太网(10GE)和更快的以太网

    3.5.4 使用以太网进行宽带接入

    3.3.5 以太网的MAC层

    以太网的地址

    前已述及,网络上的站点要相互通信需要编号,即赋予地址。

    以太网标准规定,以太网站点的地址为6字节48位的地址,因此用16进制描述时需要12个符号。

    以太网的地址常被适配器,即网卡,生产厂商写入到网卡的ROM中,因此以太网地址,或更加广泛的数据链路层或MAC层地址,又常称为物理地址。

    以太网地址中的一个特殊的地址是全1的地址,对应16进制为12个F:0xFFFFFFFFFFFF,它是一个广播地址,即目的地址为该地址的信号,即帧,将被网络上所有的站点接收。我们将在4.2.4节讲述ARP协议时,介绍该广播地址的一个应用。

    以太网的MAC地址:

      MAC地址又称为硬件地址或者是物理地址,其实是指局域网上的每一台计算机中固化在适配器的ROM中的地址。由于计算机的发展,世界上的计算机太多,为了能够标识每一台计算机,目前所采用的MAC地址一般是6字节的48位的长度。这里我们可以这样简单的理解,所谓的MAC地址,实际上就是适配器地址。

      简述一下适配的作用:

      适配器实际上就是每台计算机接入到互联网的一个接口,路由器因为要将数据在不同的局域网上面路由,所以路由器一般不止一个接口,就是说路由器一般不止一个硬件地址。

      适配器有过滤的功能,它在局域网上每次收到一个MAC帧时(局域网上面传输的数据),就检查MAC帧中的目的地址,发现如果和自己的地址一样,则拿到该MAC帧,然后做其他处理,如果发现和自己的MAC地址不一样,则把刚刚拿到的MAC帧再次丢到局域网中,以供其他的计算机使用。局域网上面的每一台计算机都是通过这种方式拿到自己需要的数据(MAC帧)。

    以太网的帧格式

    前已述及,学习一个协议,掌握其协议数据单元PDU的格式是非常重要的。

    以太网的PDU就是其数据链路层即MAC层的帧,掌握以太网的帧格式是弄懂以太网非常关键的知识。

    下图示出了以太网的帧结构。

    关于以太网帧结构各字段的解释,参见教科书“MAC帧的格式”(P95-97)。这里我们列出需要特别注意的几点:

    1. 帧格式的前面的7个字节的前同步码和1个字节的帧开始定界符,在平时绘制帧格式时,可以不用绘制。即平时绘制的的帧格式可以从6字节的目的地址开始,到4字节的帧检验序列FCS共包括5个字段的部分。
      :帧格式中前面8个字节的作用是同步和识别帧的。

    2. 上图的帧格式涵盖了DIX V2帧格式和IEEE 802.3帧格式。对于DIX V2帧来说,第3个字段是类型,它用来说明所携带的数据属于的协议,常见的协议类型如下面的表所示,需要特别记住的是IPv4协议的类型号为0x0800;而对于IEEE 802.3帧来说,第3个字段是长度

    3. 最后的4字节帧检验序列FCS为32位CRC的检验码

    4. 在同一个网络中,允许同时存在DIX V2帧和IEEE 802.3帧,这是通过一个巧妙的设计来实现的。当第3个字段为DIX V2的类型时,标准规定类型数值要大于0x0600。而0x0600对应十进制为1536,大于最大帧的长度1518。这样站点收到一个帧后,就查看第3个字段的值,如果该值小于0x0600,则即为数据帧的长度,帧中的数据按IEEE 802.3帧解释。如果该值大于等于0x0600,则即为类型,该帧即为DIX V2帧,帧中的数据即是类型值所代表的上层协议的数据。

    5. 数据部分最少46字节,最多1500字节,因而最小帧长为64字节,最大帧长为1518字节
      :如果数据部分不足46字节,则就需要填充到46字节(通常是用值为0的字节补足46字节)。

    以太网帧为什么需要最小帧长

    从上面帧格式的介绍中可以看出,以太网的最小帧长不能小于64字节,这是CSMA/CD协议导致的,解释如下。
    :要结合配图及图下的解释学习。

    1. 以太网发生碰撞的最坏情况是一个站点A发出的帧在即将到达最远的站点B时,B站由于检测到信道空闲而发出了自己的帧,即在A的帧几乎要到达B时,发生了碰撞。

    2. A要检测到该碰撞,它必须在碰撞信号传递回来之前一直保持发送,因为“边发边听”意味着“不发不听”。

    3. 最早的10Mbps粗缆以太网一个网段的最大长度为500米,最多可以加4个中继器使网段扩展到2500米。

    4. A站点发出的信号在接近最远的B站点发生碰撞再传回到A需要传播5000米的距离并经过8个中继器(Repeater),所花费的时间大约为46µs,以太网设计者取了一个有一定余地的保险的值51.2µs, 该值也称为争用期,记为2τ。

    5. 10Mbps的发送速率在51.2µs时间内发送512bit的数据,即64字节,这就是以太网帧的最小帧长。小于这个帧长的帧将不能保证最坏情况下CSMA/CD协议的“边发边听”正确执行。
      :尽管以太网后来发展为细缆以太网、集线器以太网和交换机以太网,网络速率也从10Mbps提高到了100Mbps、1Gbps,甚至更高的速率。但为了保持兼容性,64字节的最短帧一直被保持着。

    6. 以太网帧格式中固定字段为18字节,因而数据部分不应该小于46字节。如果小于46字节,则用值为0的字节补足到46字节。

    关于上图,解释如下:

    1. 图的横向维度表示站点,如该图左端为A站,右端为B站,它们之间的间隔表示物理上的距离。图的纵向从上到下表示时间轴。
      :这种横向站点、纵向时间的表示方法在计算机网络的图示中很普遍。1.3.2节中电路交换、报文交换、分组交换的比较图(图1-13)就是以这种方式表达的。

    2. 红色的箭头线表示A站发出的数据帧,它到达B站将花费τ的时间,该时间称为端到端的时延。

    3. 最坏情况下的碰撞是A发出的帧在还有δ(δ→0)时间到达B时,B站因检测到信道空闲而发出了自己的数据帧,如蓝色的箭头所示。于是,A站发出的帧与B站发出的帧将会在τ-δ/2的时间处发生碰撞。

    4. 碰撞后的帧一方面仅仅经过δ/2的时间,即在第τ时刻,很快到达B站。另一方面,它要经过τ-δ/2的时间,即在2τ-δ时刻,到达A站。

    5. 因此,A站在“边发边听”的机制中,要达到最坏情况下仍能监听到发送的帧发生了碰撞,则它必须在2τ-δ≈2τ的时间里一直发送数据。也就是说,一个数据帧的长度不能小于2τ的发送时间。

    6. 对于10Mbps的粗缆以太网,2τ的实际最大取值约为46µs。网络设计者取了一个有一定余地的保险的值51.2µs。在10Mbps的网络速率下,该时间内可以发送的数据位数为512比特,即64字节。因此以太网的最小帧长确定为64字节。

    以太网交换机及其自学习算法

    以太网交换机(Ethernet switch)如下图所示,它外形上类似于集线器(Hub),它提供RJ45插口(端口),通过带RJ45插头的网线实现到计算机的连接。

    Image result for ethernet switch    Image result for rj45 cable

    早期的10Mbps集线器以太网,即10BaseT标准的以太网,后来发展为交换机以太网。交换机以太网与集线器以太网相同的地方是允许的网线长度为100m,可以级联4级,实现直径1000m范围的通信

    交换机与集线器最大的不同是:交换机实现了多对站点间全双工的并行通信。例如上述24口的10Mbps的交换机,可以实现12对端口间的同时并行通信,即它的交换能力将达到120Mbps。对于目前流行的100Mbps以太网(标准为100BaseT),24口交换机的交换能力将达到1200Mbps。因此以太网交换机大大提高了以太网的工作效率,从集线器到交换机的进展也成为以太网得以独霸局域网领域的重要因素。

    以太网交换机要想实现并行的通信,它必须快速地找到一个帧的目的站点所对应的端口,这是通过一个聪明的自学习算法来实现的。

    以太网交换机自学习算法的关键是用帧上的源地址登记一个机器所在的端口号

    1. 首先,交换机在内部建立一个空的交换表,如下图所示。交换表包括三个表项MAC地址指的是对应端口上计算机的物理地址;端口指的是一个具体端口的编号;TTL(Time-To-Live,生存时间)指的是一个表项的有效时间。
      注1:TTL通常预先设定,如180秒(3分钟)。
      注2:以太网交换机交换表的这个“地址/端口号/TTL”结构在计算机网络中很通用,我们将会在第4章路由器的转发表中看到类似的表项结构。

    2. 若某一时刻,A向B发送一个数据帧(帧上的目的地址为B,源地址为A),该帧将从端口1进入到交换机中。
      交换机收到该帧后,从交换表的MAC地址列中查找这个帧的源地址A,没有找到,则将A、端口号1和TTL值写入到交换表中。
      :如果此后再有A从某个端口(不一定是1号端口)发出数据帧,则交换机将会找到已经记录的表项,并更新端口号和重置TTL值。

      交换机再在交换表中的MAC地址列中查找该帧的目的地址B,没有找到。则将该帧广播到除1号端口外的所有其他端口。
      由于只有3号端口上的B站发现帧的目的地址与自己的硬件地址相同,则只有B站将该数据帧接收下来。其余2号端口上的C站和4号端口上的D站由于发现帧的目的地址与自身的硬件地址不相同,都不会接收帧的内容。

    3. 若一分钟后,B向A发送一个数据帧(帧上的目的地址为A,源地址为B),该帧将从端口3进入到交换机中。
      交换机收到该帧后,从交换表的MAC地址列中查找这个帧的源地址B,没有找到,则将B、端口号3和TTL值写入交换表中。

      交换机再在交换表中的MAC地址列中查找该帧的目的地址A,找到该地址对应端口号1,因此将该帧直接发送到1号端口。
      :交换机会定期地刷新交换表中的TTL值,当TTL值减到0后,就将该表项删除。

    上述交换机的自学习算法可以归纳为下图所示的流程:

    虚拟局域网

    虚拟局域网(VLAN, Virtual LAN)指的是一组站点物理上不在一个局域网中,而逻辑上构成一个局域网的情形。即对用户来说,这些站点就如同在一个局域网中一样,但它们在物理连接上却不属于同一个局域网。

    下图给出了VLAN的示意。

    图中左下角的以太网交换机0级联了三个以太网交换机。以太网交换机1连接了A1、A2、B1、C1共4个站点构成了第一个物理LAN;以太网交换机2连接了A3、B2、C2共3个站点构成了第二个物理LAN;以太网交换机3连接了A4、B3、C3共3个站点构成了第三个物理LAN。

    图中用虚线框示出了VLAN。A1、A2、A3、A4构成了VLAN1;B1、B2、B3构成了VLAN2;C1、C2、C3构成了VLAN3。

    教材P101页倒数第2行对VLAN有如下描述:“虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。”。该句话的前半段“虚拟局域网只是局域网提供的一种服务”是没有问题的,其后半句要正确理解,因为要实现VLAN需要修改以太网的帧结构,相应的数据链路层协议软件也需要进行调整以构造和识别新的帧。

    以太网VLAN对应的标准是IEEE 802.1Q,该标准在原有的DIX V2/IEEE 802.3以太网帧中插入了802.1Q标记,构成了802.1Q帧,如下图所示:

    相较于DIX V2/IEEE 802.3以太网帧,802.1Q帧在“源地址”和“长度/类型”字段之间插入了4字节的“802.1Q标记”该标记的前两个字节固定为0x8100(称为802.1Q标记类型),后面两个字节中的高三位用于优先级,第4个位为CFI标记,后面的12个位用于标识VLAN,称为“VLAN标识符”(VLAN ID)

    802.1Q帧和原有的DIX V2/IEEE 802.3以太网帧是兼容的:收到帧的站点查看帧的第13、14字节,如果其值为0x8100,则该帧即是一个802.1Q帧,剩下的内容就按802.1Q帧解释;如果其值不是0x8100,则该帧即是一个DIX V2/IEEE 802.3帧,该值即按“长度/类型”解释。

    增加802.1Q标记后,以太网最小帧长需要仍然保持为64字节,因而数据部分至少42字节而不必46字节;数据部分需要仍然保持最大的1500字节,因而最大帧长变为1522字节。

  • 相关阅读:
    【转】 Pro Android学习笔记(九一):了解Handler(5):组件生命
    【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler
    C# 文字转成声音
    ShowDialog窗体的return问题
    8位、24位、32位图像数据转换
    winform 控件随页面大小进行自适应
    winform下实现pictureBox全屏播放
    SQLServer中求两个字符串的交集(字符串以符号分隔)
    一段四表联查外加字符拼接的sql,留存备查
    使用Nancy搭建简单的Http服务的示例demo
  • 原文地址:https://www.cnblogs.com/ranzhong/p/13028901.html
Copyright © 2011-2022 走看看