本章内容还未编辑完,本章内容稍多,每天会更新一两个点的
在第一章中知道TCP/IP协议族中设计链路层的目的是为IP模块发送和接收IP数据报。它可用于携带一些支持IP的辅助性协议;例如ARP。TCP/IP支持多种不同的链路层,它依赖于使用的网络硬件类型:有线局域网,例如以太网;城域网等等……大多数链路层技术都有一个相关的协议,描述由网络硬件传输的相应PDU格式。描述链路层的PDU时,通常使用术语帧,用以区分那些更高层的PDU格式,例如描述网络层和传输层PDU的分组和段。帧格式通常支持可变的帧长度范围从几字节到几千字节。这个范围的上限称为最大传输单元(MTU)。有些网络技术(例如调制解调器和串行线路)不强制规定最大的帧,因此它们可以由用户来配置。
一、以太网和IEEE 802局域网/城域网标准
第一个常见格式的以太网目前被称为“10Mb/s以太网”或“共享以太网”,该网络结构如下图所示;
基本的共享以太网包含一个或多个站(例如工作站、超级计算机),它们都被连接到一个共享的电缆段上。当介质被确定为空闲状态时,链路层的PDU(帧)可以从一个站发送到一个或更多其他站。如果多个站同时发送数据,可能因信号传播延迟而发生碰撞。碰撞可以被检测到,它会导致发送站等待一个随机时间,然后重新发送数据。这种常见的方法称为“带冲突检测的 载波侦听多路访问”。
正是因为这种模式多个站共享同一网络,该标准需要在每个以太网接口实现一种分布式算法,用来控制一个站发送自己的数据。这种特定的方法称为“带冲突(或称碰撞)检测的载波侦听多路访问(CSMA/CD)”,它用于协调哪些计算机可访问共享的介质也就是图中显示的中间那根共享的线路,同时不需要其他特殊协议或同步。
采用CSMA/CD,一个站(例如计算机)首先会检测目前网络上正在发送的信号,并在其空闲的时候发送自己的帧。这就是协议中的“载波侦听”部分。如果其他站恰好也在这个时候一起同时发送各自的帧,那么,它们发生重叠的电信号被检测为一次碰撞。在这种情况下,每个站等待一个随机时间,然后再次尝试发送各自的帧。这个时间量的选择会依据统一的概率分布,随后每个碰撞检测到的时间长度加倍。最终,每个站会得到机会发送,或者尝试一定次数(传统以太网为16)后超时。采用CSMA/CD,在任何给定的时间里,在网络中只能有一个帧传输。如CSMA/CD这样的访问方法被正式更名为“介质访问控制(MAC)协议”。
现在以太网除了原有的10Mb/s以太网,还有100Mb/s(快速以太网)、1000Mb/s、10Gb/s甚至更高。在大型数据中心和大型企业中10Gb/s以太网是很普遍的,且可以达到100Gb/s的速度。随着快速以太网的发展,基于竞争的MAC协议以及不太流行。在局域网中每个站之间的线路通常不共享,而是采用一个专用的星形拓扑结构。通过以太网交换机来实现,如下图所示:
一个交换式以太网包含一个或多个站,每个站使用一条专用的线路连接到一个交换机端口。在大多数情况下,交换式以太网以全双工方式(一根介质可以输入与输出数据)运行,并且不需要使用CSMA/CD算法。交换机可以通过交换机端口级联形成更大的以太网,该端口有时也称为“上行”端口。
目前,交换机为以太网中的每个站提供同时发送和接收数据的能力(称为“全双工以太网”)。1000Mb/s以太网任支持半双工(同时只能接收或输出数据)操作,但很少使用。
无线网络时现在连接Internet最流行的技术之一。常见的无线局域网(WLAN)IEEE标准称为无线保真或WIFI,有时也称为“无线以太网”或802.11.
二、IEEE802局域网/城域网标准
原始的以太网帧格式被称为DIX格式或Ethernet Ⅱ格式。对这种类型的以太网稍加修改后,由IEEE标准化为一种CSMA/CD网络,称为802.3。带802前缀的标准定义了局域网和城域网的工作过程。当前最流行的802标准包括802.3(以太网)和802.11(WLAN/Wi-Fi)。下图则为一个相对完整点的列表;
有关TCP/IP协议的局域网和城域网IEEE802标准(2011年版)
802.1ak | 多注册协议(MRP) |
802.1AE | MAC安全(MACSec) |
802.1AX | 链路聚合(以前的802.3ad) |
802.1d | MAC网桥 |
802.1p | 流量类/优先级/QoS |
802.1q | 虚拟网桥的局域网/MRP的更正 |
802.1s | 多生成树协议(MSTP) |
802.1w | 快速生成树协议(RSTP) |
802.1X | 基于端口的网络访问控制(PNAC) |
802.2 | 逻辑链路控制(LLC) |
802.3 | 基于以太网和10Mb/s以太网 |
802.3u | 100Mb/s以太网(“快速以太网”) |
802.3x | 全双工运行和流量控制 |
802.3z/802.3ab | 1000Mb/s以太网(“千兆以太网“) |
802.3ae | 10Gb/s以太网(“万兆以太网”) |
802.ad | 链路聚合 |
802.3af | 以太网供电(PoE,15.4W) |
802.3ah | 以太网接入(第一公里以太网) |
802.3as | 帧格式扩展(2000字节) |
802.3at | 以太网供电增强(“PoE+”,30W) |
802.3ba | 40/100Gb/s以太网 |
802.11a | 运行在5GHz的54Mb/s的无线局域网 |
802.11b | 运行在2.4GHz的11Mb/s的无线局域网 |
802.11e | 针对802.11的QoS增强 |
802.11g | 运行在2.4GHz的54Mb/s的无线局域网 |
802.11h | 频谱/电源管理扩展 |
802.11i | 安全增强/代替WEP |
802.11j | 运行在4.9~5.0GHz(日本) |
802.11n | 运行在2.4GHz和5GHz的6.5~600Mb/s的无线局域网,使用可选的MIMO和40MHz信道 |
802.11s(草案) | 网状网,拥塞控制 |
802.11y | 运行在3.7GHz的54Mb/s的无线局域网(许可的) |
802.16 | 微波存取全球互通技术(WiMAX) |
802.16d | 固定的无线城域网标准(WiMAX) |
802.16e | 固定/移动的无线城域网标准(WiMAX) |
802.16h | 改进的共存机制 |
802.16j | 802.16中的多条中继 |
802.16k | 802.16网桥 |
802.21 | 介质无关切换介质无关切换 |
除了802.3、802.11、802.16标准定义的特定类型的局域网之外,还有一些相关标准适用于所有IEEE标准的局域网技术。最常见的是定义逻辑链路控制(LLC)的802.2标准,其帧头部在802网格的帧格式中常见。在IEEE的术语中,LLC和MAC是链路层的“子层”,LLC(对数帧格式)对每种网络都是通用的,而MAC层可能有所不同。虽然最初的以太网使用CSMA/CD,但无线局域网常使用CSMA/CD,但无线局域网常使用CSMA/CA(CA是“冲突避免”)。802.2和802.3共同定义了与EthernetⅡ不同的帧格式,直到802.3x才最终纠正。
三、以太网帧格式
所有的以太网(802.3)帧都基于一个共同的格式。在原有规范的基础上,帧格式已被改进以支持额外功能。如下图所示:
以太网(IEEE 802.3)帧格式包含一个源地址和一个目的地址、一个重载的长度/类型字段、一个数据字段和一个帧校验序列(CRC32)。另外,基本帧格式中的一个标签包含了一个VLAN ID和优先级信息(802.1p/q),以及一个可扩展标签。前导和SFD被用于接收器同步。当以太网以半双工模式运行在100 Mb/s或以上速率时,其他位可能被作为载体扩展添加到短帧中,以确保冲突检测电路的正常运行。
图中所示的帧格式包括48位(6字节)的目的地址(DST)和源地址(SRC)字段。源地址后紧跟着一个类型字段或长度字段。在多数情况下用于确定头部后面的数据类型。“注:最初的IEEE(802.3)规范将长度/类型字段作为长度字段而不是类型字段使用。因此这个字段可以用于多个目的(重载)。目前,如果字段值大于或等于1536,则表示类型,若是小于或等于1500,则用于表示长度。当前的【802.3-2008】标准采用修改后的802.3帧格式,提供最大482字节的标签,被携带在每个以太网帧中。这些较大的帧称为信封帧,长度最大可达2000字节。包含802.1p/q标签的帧称为Q标签帧,也就是信封帧。并非所有信封帧都是Q标签帧”
四、帧校验序列/循环冗余校验
在以太网帧格式中,有效载荷区域之后的最后字段提供对帧完整性的检查。循环冗余校验(CRC)字段位于尾部,有32位,有时也被称为IEEE/ANSI标准的CRC32。如果要使用一个n位CRC检查数据传输错误,被检查的消息需要先追加n位0形成一个扩展消息。然后,扩展消息使用模2除法除以一个(n+1)位的值,这个作为除数的值称为生成多项式。放在CRC字段中的值为这除法计算中的余数的二进制反码(商被丢弃)。
例如以太网使用n=32,CRC32的生成多项式是33位的二进制数100000100110000010001110110110111.。如果我们发送16位的消息1001111000101111就要进行该16位消息除以10011的模2除法运算,其中10011是国际电信联盟(ITU)将CRC4的生成多项式的值标准化为10011的。最后得出余数为1111其反码为0000放置在帧的CRC或帧校验序列(FCS)字段中,商为0101(丢弃),结果为100001100000.在接收方执行相同得除法得出余数,并判断该值与FCS字段得值是否匹配。如果两者不匹配,帧可能在传输过程中受损,通常被丢弃。所以CRC功能可用于提示信息受损。
五、帧大小
在以太网帧中,最小的帧为64字节,要求数据区(有效载荷)长度(无标签)最小为48字节。当有效载荷较小时,填充字节(值为0)被添加到有效载荷尾部,以确保达到最小长度。最小尺寸的帧能在电缆中传输约11000m.
传统以太网的最大帧长度为1518字节(包括4字节CRC和14字节头部)。最大帧长度为1518值是因为如果一个帧中包括一个错误(接收到不正确得CRC校验),只需重发1.5kb以修复这种问题。另一个是因为MTU大小限制为1500字节。为了发送一个更大的而消息,则需要更多的帧(例如,对于TCP/IP网络中常用的较大尺寸为64kb,需要至少发送44个帧)。
多个以太网帧构成一个更大的上层PDU的后果是,每个帧都贡献一个固定开销(14字节的头部和4字节的CRC)。为了允许以太网硬件接收电路正确恢复来自网络中的数据,并为其他站提供将自己的流量与已有流量区分开的机会,以太网帧在网络中不能无缝的压缩在一起。EthernetⅡ规范了除在帧开始处定义了7字节前导和1字节的SFD之外,还指定了12字节的包间距(IPG)时间(10Mb/s为9.6us,100Mb/s为960ns,1000Mb/s为96ns,10000Mb/s为9.6ns)。因此EthernetⅡ的每帧效率为1500/(12+8+14+1500+4)=0.975293约为98%。一种提高效率的方法为,在以太网中传输大量数据时,尽量使帧尺寸更大一些。这可以采用以太网巨型帧(JF)来实现,这是一种非标准的以太网扩展(主要在1000Mb/s以太网交换机中使用),通常允许帧尺寸高达9000字节。有些环境使用的帧称为超级巨型帧,通常超过9000字节。在使用巨型帧时,这些较大的帧无法与较小的1518字节的帧互操作,因为它们无法由大多数传统以太网设备处理。
六、802.1p/q:虚拟局域网和QoS标签
为了解决大型多用途交换网络运行中的问题,IEEE采用一种称为虚拟局域网(VLAN)的功能扩展802LAN标准,他被定义在802.1q【802.1Q-2005】标准中。兼容以太网交换机将主机之间的流量分隔为常见的VLAN。正是由于这种分隔,连在同一交换机但在不同VLAN中的两台主机,它们之间的流量需要一台路由器来传递。
工作站到VLAN的映射有几种方法。通过端口分配VLAN,交换机端口所连接的站被分配在一个特定VLAN中,这样连接到任意站都成为VLAN中的成员。其他选择包括基于MAC地址的VLAN,以太网交换机使用表将一个站的MAC地址映射到一个VLAN。如果有些站改变它们的MAC地址(由于某些用户行为,有时需要这样做),它们可能变得难以管理。有些IP地址也可用作分配VLAN的基础。当不同VLAN中的站连接到同一台交换机时交换机用以确保流量不在两个不同的VLAN之间泄露。当多个VLAN跨越多个交换机(中继)时,在以太网帧发送到另一台交换机之前,需要使用VLAN来标记该帧的归属。这使用一个称为VLAN标签(头部)的标记,其中包括12位VLAN标识符(提供4096个VLAN,但保留VLAN 0 和VLAN 4095)。它还包含支持QoS的3位优先级。在很多情况下,管理员必须配置交换机端口(在做VLAN实验的时候基本上都是在端口配置),以便发送802.1p/q帧能中继到适当的端口。
802.1p规定了在帧中表示QoS标识符的机制。802.1p头部包括一个3位优先级字段,用于表明一个QoS级别。该标准是802.1qVLAN标准的扩展。这两个标准可以一起工作,并在同一投不中共享某些位。它用3个有效位定义了8个服务级别。0级为最低优先级,用于传统的尽力而为的流量。7级位最高优先级,可用于关键路由或网管功能。这个标准规定了优先级如何被编码在分组中,但没指定如何控制哪些分组采用哪些级别,以及实现优先级服务的底层机制,这些可由具体的实现者来定义。因此,一个优先级流量相对于另一个的处理方式是由实现或供应商定义的。
如果802.1p/q头部中的VLAN ID字段被设置为0,802.1p可以独立于VLAN使用。
控制802.1p/q信息的Linux命令是vconfig。它可用来添加和删除虚拟接口,即与物理接口相关联的VLAN ID。它可用来设置802.1p优先级,更改虚拟接口确定方式,改变由特定VLAN ID标记的分组之间的映射,以及协议在操作系统中处理时如何划分优先级