信道的类型
数据链路层使用的信道主要有以下两种类型:
- 点对点信道,这种信道使用一对一的点对点通信方式。
- 广播信道,这种信道使用一对多的广播通信方式。
数据链路和帧
链路
链路是指从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点。两台计算机的通信路径往往要经过许多段这样的通信节点。
数据链路
在链路的基础上,加上了控制数据传输的通信协议的硬件和软件。
帧
帧是点对点信道的数据链路层的协议数据单元。数据链路层把网络层传递下来的数据构成帧发送到链路上。以及把接收到的帧中的数据取出并上交到网络层。
数据链路层的三个基本问题
数据链路层的三个基本问题是封装成帧、透明传输和差错检测。
封装成帧
封装成帧就是将网络层传递下来的数据加上帧首部和帧尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界,就是当数据传输过去之后,对方的数据链路层在解析帧的时候,能根据帧定界确定这个帧的范围。除此之外,首部和尾部还有着许许多多的控制信息.
最大传送单元MTU:规定了所能传送的帧的数据部分的长度上限。
透明传输
帧开始符SOH,放在一个帧的最前面,表示着一个帧的开始。
帧结束符EOT,放在一个帧的最后面,表示着一个帧的结束。
帧开始符和帧结束符都是一串编码。因此为了防止在帧中的数据部分出现同样的编码格式的数据,我们加入了转义字符ESC,在此类数据前加上ESC,避免识别失误。但是ESC也是一串编码,为了避免帧中有和ESC格式一样的编码,当遇见编码格式好ESC一样的数据时,连续使用两个ESC代表一个ESC。
差错检测
为了避免在传输过程中产生差错,导致传输过去的数据错误,因此需要加入差错检测机制。传输错误的比特占传输比特总数的比率就称为误码率。误码率与信噪比有很大关系,信噪比越大,误码率越小。
循环冗余检测:CRC,是目前在数据链路层广泛运用的一种检错机制。
点对点协议PPP
PPP协议的特点
- 简单
- 封装成帧
- 透明性
- 多种网络层协议
- 多种类型链路
- 差错检测
- 检测连接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
PPP帧的格式
首部的第一个字段和尾部的第二个字段都是标志字段 ,格式是0X7E,表示后面的字符是用十六进制表示的。A是地址字段,规定为0xFF。C是控制字段,规定为0x03。这两个字段相当于js中的保留字,至今仍为对其赋予含义。
字节填充
这是为了避免在IP数据报中出现与相同字段,导致出错,致使帧提前结束,数据丢失。因此当PPP使用异步传输的时候,它把转义字符定义为0x7D,并使用字节填充。把信息段中出现的每一个0x7E转变为二字节序列(0x7D,0x5D)。出现的0x7D的字节,则用(0x7D,0x5D)表示。若出现ASCII码的控制字符,则进行相应改变。
零比特填充
为了避免连续的1被认为是标志字符F,只要发现5个连续的1,就立即填入一个0。
PPP链接建立阶段
- LCP协商阶段
- 鉴别(认证)阶段(1)配置确认帧(2)配置否认帧(3)配置拒绝帧
ppp有一个2个字节的协议字段。其值若为0x0021,则信息字段就是IP数据段。其值若为0x8021,则信息字段就是网络控制数据。其值若为0xC021,则信息字段就是PPP链路控制数据。其值若为0xC023,则信息字段就是鉴别数据。
局域网的主要特点
- 网络为一个单位所拥有。
- 地理范围和站点数目有限。
主要优点:
- 具有广播功能,从一个站点可方便的访问全网。
- 便于系统的扩展和逐渐的演变,各设备的位置可灵活的调整和改变。
- 提高了系统的可靠性、可用性、生存性。
共享信道带来的问题
- 提高信道利用率。
- 若多个设备在共享的广播信道上同时发送数据,则会彼此干扰,发送失败。
共享信道的方式
静态划分信道:使用如频分复用、时分复用等方式对信道进行划分,这种方式代价较高,不适合用于局域网。
动态媒体接入控制:又称为多点接入,有随机接入和受控接入两种。随机接入是争用信道,受控接入是通过令牌来判断优先级,冲突的时候优先级高的使用信道。
IBM开发了受控接入的令牌环网,GE开发了受控接入的令牌总线网,Xerox开发了随机接入的以太网。
直接来自信源的信号,想要在信道上传输,需要编码,除此之外,以太网还需要进行以下操作:
- 命名(寻址)
- 争用信道
- 信号的编码、输出。
CSMA/CD协议
早期的以太网是所有计算机连接在一根总线上,采用广播通信方式传递数据,这样做的隐患可想而知,不仅发出的数据所有用户都能接到,而且同一时间内只有一台计算机可以在总线上传输数据。当多个计算机冲突后,需要全体暂停发送数据,等总线空闲了才能继续发送。CSMA/CD协议,就是以太网使用的协议。意思是载波监听多点接入/碰撞检测。
多点接入
说明这是总线型网络。许多计算机以多点接入的方式连接在一条总线上。
载波监听
即“边发送边监听”。不管在想要发送数据之前,还是在发送数据之中,每个站必须不停的检测信道。
碰撞检测
适配器边发送数据,边检测信道上信号电压的变化情况。电压摆动值超过了一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞。
要进行碰撞检测的原因
信号的传播时延对载波监听产生了影响。假设有两个站A和B,A先对B发送信号,由于传播时延的存在,信号到大B需要一段时间,哪怕这段时间再小,倘若B在信号到来前对A发送信号,那么此时就产生了碰撞。
传播时延
1km的信道的传播时延是5微秒,即1km外的主机在t0时刻发送了电磁波,t0+5微秒之后才会达到1km之外。主机如果监听到了信号冲突,就立即停止发送数据。当主机发出的电磁波已经充满整个信道后,就不会发生信号冲突了。因此端到端的传播时延称为争用周期,又称为碰撞窗口。
相关推断:传统以太网的争用周期是51.2微秒,可据此推断出,200000km/s*0.0000256s=5.120km,传统以太网的设计拓扑直径约为51.2km。又因为传统以太网的设计速率是10Mb/s,于是传统以太网的最短帧长是512bit,即64Byte。
碰撞后重传的时机
采用截断二进制指数退避确定。发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
- 基本退避时间是一个传播时延。
- 从整数集合[0,1,2,···,(2^k-1)]中随机地取出一个数,记为r重传所需时间=r*基本传输时延。
- 参数k= Min【重传次数,10】
- 当重传次数达16次仍不能成功时,立即丢弃该帧,并向高层报告。
帧间最小间隔
以太网规定了帧间最小间隔,传统以太网的帧间最小间隔为9.6微秒,相当于96比特时间。设置帧间最小间隔的目的是为了使刚收到数据帧的站有时间来清理接受缓存,为下一帧的接受做好准备。
传统以太网的传输媒介变化
粗同轴电缆——细同轴电缆——双绞线
采用双绞线的以太网,采用星型拓扑,在星型中间增加了一种可靠性高的设备——集线器。集线器工作在物理层,具有放大信号的功能,集线器发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。
以太网的信道利用率
以太网的信道利用率不可能达到100%。在以太网中定义了参数a,他是传播时延/发送时延。a越小代表信道利用率越高。
以太网的MAC层
MAC层的硬件地址
在局域网中,硬件地址又叫做物理地址或MAC地址。IEEE 802标准为局域网规定了一种48位的全球地址。指局域网上每一天计算机中固化在适配器的ROM中的地址。正规的地址由厂商向IEEE 802.3申请并购买,能申请到一组前24位的编码。厂商在生产的时候再为每一台计算机分配后24位编码。这样的地址是独一无二的。但是IEEE考虑到有人并不愿意购买,因此将地址字段的第一字节最低第二位规定为G/L位。表示Global/Local,当G/L位为0的时候是全球管理,厂商购买的全都属于全球管理。为1时是本地管理。而第一字节最低第一位,是I/G位,0表示单播地址(一对一),1表示组播地址(一对多)。而当所有位都为1时代表广播,会向所有用户发送信息。
MAC帧的格式
MAC帧的格式有DIX Ethernet V2标准和IEEE 802.3标准两种,目前使用的都是DIX Ethernet V2标准。
类型处,有时不是类型,是长度,需要看数据大小,若小于1518,则此处是长度。若大于1536,则此处是类型。
扩展以太网
在物理层扩展以太网
物理层扩展以太网的方法
在物理层扩展以太网,在过去广泛使用粗缆细缆以太网的时候,常常使用工作在物理层的转发器来实现这一操作。IEEE 802.3还规定了任意两个站之间,最多可以经过三个电缆网段。但是随着双绞线以太网的普及,转发器就很少使用了。现在物理层扩展以太网最常用的方法就是使用光纤和光纤调制解调器来扩展主机和集线器之间的距离。这是因为光纤时延小且带宽宽,如此就可以很容易的把主机和几公里外的集线器连接起来。
碰撞域
碰撞域,也被称为冲突域。是指一个集线器下面连接的多个主机构成的区域,因为这些主机都需要通过集线器对数据进行转发,因此当处于同一个碰撞域的两台主机不能同时通信(一旦同时通信就会发生碰撞)。
在数据链路层扩展以太网
网桥
最初,人们是使用网桥来扩展以太网的。网桥工作在数据链路层,对收到的帧根据其MAC帧的目的地址进行转发和过滤。
刚出厂的网桥没有过滤的功能,当收到某一台主机从某一侧端口发过来的信息时,会将其转发至全体,也就是让信息通过网桥,从另一侧端口发布全体,同时将这台主机和来自那一侧的端口储存下来。这样就保存了一台主机的位置,当之后有主机请求的时候,就可以判断是否来自同一个碰撞域,如果是则不传输至另一个碰撞域,否则传输至另一个碰撞域。
网桥并不仅仅只有两个端口,也存在着更多端口的网桥,随着接口的增多,内部处理的逻辑也越来越复杂,最后交换机诞生了。
以太网交换机
以太网交换机实质上就是一个多端口的网桥。但是以太网交换机的每一个端口,都直接跟单台主机或另一个交换机相连,并且一般都工作在全双工方式,每个接口独享带宽,增加了总容量。交换机能同时连通许多对端口,使每一对相互通信的主机都能像独占通信媒体那样,进行无冲突地传输数据。以太网交换机即插即用,通过自学习算法建立起内部的帧交换表。
以太网交换机的每一个接口都是一个碰撞域。
一个集线器接出的接口是同一个碰撞域。遇到交换机截止。
一个交换机接出的线属于同一个广播域,遇到路由器截止。
交换机隔离碰撞域,路由器隔离广播域,路由器之后的数据都发往了转发域,转发域没有被隔离。
广播风暴
假设一开始主机A向B发送一个信息,3接到了,向全体广播,4也接到了,向全体广播。发送过去之后,虽然发过去了,但3接到了4全体广播的请求,全体广播,4同样。右侧的1与2也如左侧的3,4一样,如此循环往复,不仅仅请求不间断,还越来越大,交换表也会因为这不断震荡,最后崩溃。图表如下。
因此,在以太网交换机到另一条交换机之间,不可存在回路。为了解决这个问题,IEEE的802.1D标准制定了一个生成树协议STP,这个协议的作用是不改变网络的实际拓扑,但在逻辑上切断某些链路,使从一台主机到其他所有主机的路径都是无环路的树状结构。
但是这样一来,又会产生新的问题,在两条交换机之间多连一根线,是为了拓宽链路,提高传输速率,切断之后相当于白链接了。因此可以使用端口聚合,如上图,3,4使用端口聚合之后,被看作同一个端口,从而消除这一困境。
以太网交换机出现后,不必再用CSMA/CD协议了,为什么还叫以太网
因为它的帧结构仍未改变,仍采用以太网的帧结构。
虚拟局域网
虚拟局域网VLAN只是局域网给用户提供的一种服务,并不是一种新的局域网。虚拟局域网是将一个较大的局域网,分割成一些较小的局域网,从而形成较小的广播域,避免信息泄露的可能性。
插入VLAN标签的帧称为802.1Q帧。组成如下图所示,和普通的帧没有太大的区别,只是源地址后紧跟着VLAN标签。
VLAN标签中前两个字节是802.1Q标签类型,后两位字节是标签控制信息,标签控制信息中前四位里,前三位是用户优先级,第四位是规格指示符,剩下的十二位是VID(即VLAN ID),他标志着这个帧属于哪一个VLAN。
每台计算机都是通过接入链路连接到以太网交换机的,之后在汇聚链路传输时插入标记的802.1Q帧,最后传输到目标地址之后解析。整个过程经历了加VLAN,换VLAN和剥VLAN三个步骤。Access接口从属于某个VLAN,VLAN从属于trunk接口。