物理层和数据链路层

物理层和数据链路层

TCP/IP 四层协议中网际接口层又分为物理层和数据链路层。数据链路层负责的是组帧、拆帧和帧的传输问题,而物理层考虑的是怎么才能在连接各种计算机的传输介质上(比如光纤)传输数据比特流。


一、物理层

在计算机上的一个数据块(数字比特流)如何传输到另一台计算机呢?计算机认识 0 和 1,但是光纤是不知道 0和1的,如何处理呢?这里就需要数据通信系统了。

1、数据通信系统

数据通信系统模型

在一个数据通信系统中,有源点和终点,有发送器和接收器以及传输系统。计算机产生了比特流,但是比特流不能在传输系统中进行传输,那什么可以呢?信号可以。

2、信号是什么?

信号(signal)是数据的电气或电磁表现。信号又分为模拟信号(连续信号)和数字信号(离散信号)。

数字数据采用数字信号(Digital Signal),一系列断续变化的电压脉冲(如我们可用恒定的正电压表示二进制数1,用恒定的负电压表示二进制数0),或光脉冲来表示。一般则需要用双绞线、电缆或光纤介质将通信双方连接起来,才能将信号从一个节点传到另一个节点。

模拟数据一般采用模拟信号(Analog Signal),例如用一系列连续变化的电磁波(如无线电与电视广播中的电磁波),或电压信号(如电话传输中的音频电压信号)来表示;电磁波本身既是信号载体,同时作为传输介质;而当模拟信号采用连续变化的信号电压来表示时,它一般通过传统的模拟信号传输线(例如电话网、有线电视网)来传输。

上图中,计算机和调制解调器之间是数字信号,电话网中间传输的也是数字信号。而调制解调器到电话局之间就是模拟信号。调制解调器的作用就是信号转换。

3、信道

信号传输的媒介叫做信道,信号要在信道上传输需要经过调制。调制分为基带调制(也叫编码)和带通调制。

为了提高信道的利用率、充分利用信道资源,出现了各种信道复用技术,例如频分复用,时分复用,波分复用,码分复用等。目前,大部分的长度线路都采用时分复用的数字传输方式。

4、码元和脉冲

码元是在信道中传输中最小的一个脉冲单位,代表数字信号不同离散数值的基本波形成为码元。

那脉冲是什么?

脉冲

如果脉冲信号只有高低两种变化(比如图中a 和 b),那么一个码元就是一个比特。

而实际上码元是可以携带多个比特的,如果一次脉冲多次跳变的话。 其关系如下,

码元和比特

n是比特数,N是脉冲变化数。显然,如果一个码元出现8次跳变,则一个码元可以携带3个比特(每个比特要么是0 要么是1)。

5、如何提高传输速率?

传输速率一是与信道的属性相关,信道的带宽或者信噪比越大,信道的极限传输速率就越高。

信道传输的是码元,如果单个码元能够表示更多的比特信息,同样可以提高传输速率。

在这个理论基础上,不断出现更多的信号处理技术和调制技术提高传输速率。

二、物理层下的传输介质

传输介质是传输系统中的发送器和接收器之间的物理通路,比如常见的光纤。传输介质一般分为两类,导引型传输介质(双绞先、同轴电缆和光纤)和非导引型传输介质(无线电波),下面主要介绍光纤和无线电波。

1、光纤通信

光可以通过全反射在介质中实现传播,而且速度极快。另外可见光的频率非常高,约为10^8Mhz,因此其带宽远远超过其他媒介。(频率越高,一个周期脉冲个数就越多,数据量越大。)

光纤通信的基本原理是光电转换。发送端有光源,可以采用发光二极管或半导体激光器,在电脉冲的作用下产生光脉冲,实现电脉冲到光脉冲的转换;接收端利用成光检测器,将光脉冲还原成电脉冲,再生成数字信号。

2、无线电波通信

无线电波通信可以更好的在自由空间实现数据传输,移动通信技术就是利用的无线电波。

目前微波通信有很重要的地位。 微波的频率范围为 300MHz~300GHz,目前主要使用 2–40GHz的范围。

要使用一段无线电频段通信,比如得到政府或管理机构的许可。当前的无线局域网使用的是 2.4GHz和5GHz频段。

2.4GHz 和 5GHz 的 Wifi 哪个更好?

5G频段的工作频率要高于2.4G频段,理论上可以容纳更多的数据、负载更多的信息量,因此单位时间内,5G频段的速率要远高于2.4G频段;但是其穿越障碍的能力没有2.4G强

2.4GHz想相对频率低,波长长,2.4G频段的穿墙能力、覆盖范围要好于5G频段。另外2.4G频段受到干扰比较严重,因为很多其他设备也使用2.4G通信,例如蓝牙。

三、数据链路层

数据链路层主要工作在局域网,主要研究的是局域网中分组(帧 frame)的传输问题。

数据链路层主要有两个信道:点对点信道和广播信道。点对点信道中使用的PPP协议,而广播信道使用的是CSMA/CD协议。

1、数据链路和帧

在一条线路上传输数据时,除了需要物理线路之外,还需要协议进行传输控制。数据链路包含实现了协议的硬件软件以及物理线路。目前广泛使用的硬件是网络适配器(俗称网卡)。

帧是指数据链路层协议的基本数据单元。帧一般是由上一层网络层的IP数据报,添加首部尾部,封装而成。

帧的传输在数据链路层进行。如果不考虑物理层比特流传输的细节,可以简单理解成帧在两个结点中间的数据链路成水平传输。

简化模型

2、封装成帧、透明传输和差错检测

数据链路层协议有很多种,但是有3个基本问题。

(1)封装成帧

在一段数据的前后分别添加首尾部,就成了帧。首尾部的重要作用是帧界定,确定帧从哪开始和结束。另外首尾部也会包含一些协议的控制信息。

一般用专门的控制字符来表示帧开始和帧结尾,比如SOH(0000 0001)表示开始,EOT(0000 0100)表示结束。封装成帧

(2)透明传输

那如果数据报中有控制字符编码重复的比特序列怎么办?通过转义的方式进行处理,这种方式成为字符填充。不论传输的数据包实际内容是怎样的(可能与界定控制符比特序列有重复),帧都是在链路中传输,这就是透明传输。字节填充实现透明传输

(3)差错检测

比特序列在传输过程中可能出现差错,0可能变成1,1变成0,这叫比特差错。错误的比特数的占比较误码率。

比特差错的存在需要用差错检测技术来检查,目前广泛使用的是循环冗余检验(CRC Cyclic Redundancy Check)

循环冗余检验(CRC Cyclic Redundancy Check)中,通过一定算法,利用原数据序列计算出一个冗余码(FCS Frame Check Sequence)添加在原数据序列后面,最后通过检查收到的序列的FCS的方式来判断是否有比特差错。有点类似于数字签名技术,防止篡改。

另外除了比特差错外,还可能有传输差错,比如帧的丢失、重复、失序。理论派的OSI七层协议中要求数据链路层解决可靠传输的问题,但是在实际TCP/IP协议族的体系结构,可靠传输交给了更高层的协议来实现(例如传输层的TCP协议)。这种方式在目前的有线传输链路中,实践证明可以提高通信效率。

四、点对点协议PPP

计算机和 ISP 进行通信是所使用的就是数据链路层的 PPP 协议。PPP 协议为用于点对点信道,它与MAC地址无关。

1、基本需求

PPP协议的需求除了链路层基本的3个问题封装成帧、透明传输、差错检测之外,还包括需要支持多种网络层协议和多种数据链路,进行网络层地址协商(点对点的需求,保证在网络层进行分组传输)、可压缩,可检查链路状态以及保持简单(把可靠传输的任务交给上层)。

2、PPP帧的构成

PPP帧格式

图中首尾为界定为 F(Flag),规定为16进制Ox7E(二进制 01111110)。A 和 C 预留使用。协议部分用来表示信息主体部分的类型,比如是IP数据报还是LCP分组,或者其他的;FCS 为 CRC 的帧检验序列,用于差错检测。

3、工作方式

当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配-一个临时的IP地址。这样,用户个人电脑就成为互联网上的一个有IP地址的主机了。

当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。

五、广播通信和以太网

目前局域网使用的就是广播通信。局域网地理范围和主机数是有限的,通过广播通信可以更好的进行资源共享,一个主机可以访问全网。在局域网技术中,与数据链路层相关性更大。

1、以太网

局域网是多用户的,以太网是使用多点和随机接入方式进行信道共享的。特点是所有用户可以随机的发送信息。

DIX Ethernet V2是第一个以太网的标准,在后来的局域网市场逐渐占据主流。现在我们所说的局域网和以太网一般是指一个东西。

2、CSMA/CD协议

传统以太网使用总线进行计算机的连接,虽然连接了多台计算机,但是在同一时间只能有一台计算机发送数据。早期以太网使用 CSMA/CD 协议来协调多台计算机, CSMA/CD 协议要点就是多点接入、载波监听、碰撞检测

多点接入说的是多台计算机连接在总线上,载波监听就是发送前发送中都需要不停监听信道,空闲了才能用。

分组的传输需要传播时间,由于传播时间的存在,导致的碰撞的可能。A 向 B发数据,B需要时间才能监听到 A 的信息,如果在B收到数据前,B也发送来了自己的数据帧,这是 A 和 B 发出的帧就会在总线上发生碰撞。碰撞的结构是两个帧都被丢弃;然后主机 A 和 B 按照退避算法等待一段时间后再次发送。

(1)CSMD/CD要点

  • 准备发送 : 适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。

  • 检测信道 : 若检测到信道忙,则应不停地检测,一直 等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。

  • 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:

发送成功 在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到准备发送状态。:

发送失败 在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。

以太网每发送完一帧,一定要把己发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。

(2)总线型到星形网络

网络拓扑结构

集线器(HUB)是一种使用了大规模集成电路可靠性非常高的设备,集线器的出现使网络结构从总线型向星形发展。使用集线器的以太网在逻辑上仍然是一个总线型,共享逻辑主线,各个主机的适配器(网卡)使用的还是 CSMA/CD 协议。同一时刻允许一个主机发送数据。集线器与集线器之间还可以用光纤进行连接。

集线器是有多个接口,但是集线器使用的是广播通信,会将收到的包转发到所以接口。后来被以太网交换机取代。

(3)适配器

计算机是如何连接到局域网的呢?

通过网络适配器,也就是我们所说的网卡。网和计算机之间的通信是用过计算机主板上的IO总线以并行传输的方式进行的,而适配器和局域网之间只通过串行传输的方式进行的。

因此适配器的一个重要功能就是进行数据串行传输和并行传输带的转化。适配器还提供了缓存以解决网络总线和计算机总线速率不匹配的问题。适配器的工作需要驱动程序,所以一般换网卡需要对应的驱动程序。 适配器和局域网通信

3、以太网的MAC层

我们经常会听到 MAC 地址这个名词。MAC 地址就是一串固化于网卡(适配器)中的 6 字节序列串,也叫物理地址或硬件地址。6 字节 48 位的MAC 地址是全球唯一的,由专门的机构进行管理。

由于这种地址使用在 MAC 帧中,所以叫做 MAC地址

(1)MAC 帧的格式

这里说的是主流以太网标准 DIX Ethernet V2标准中的帧。下图假设网络层协议是 IP 协议以太网的MAC帧格式MAC 有效帧的构成比较简单,目的和源地址 + 实体数据类型 + FCS(用于差错检测)。另外有效数据帧的前面会多出 8 个字节字节长度。其中包含的实现时钟同步的前同步码和前面提到的界定符

(2)适配器处理帧

适配器有过滤功能,收到 MAC 帧后,会检查 MAC 帧中的目的地址。如果是发给自己的收下处理,否则丢弃。”发放本站的帧”包含以下三种:

  • 单播(unicast)帧 (一对一 ),即收到的帧的MAC地址与本站的硬件地址相同。

  • 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)。

  • 多播(multicast)帧 (一对多),即发送给本局域网上一部分站点的帧。

一个适配器至少能够识别单播帧和广播帧。

适配器有一种叫做混杂方式的特殊工作方式。可以接受所有以太网上传输的帧。一般网络维护和管理人员可能会用到,而黑客也可能利用这个获取非法信息。

4、以太网交换机

传统交换机接口多了之后,冲突概率也会随着增大。于是出现了比较智能的集线器以太网交换机,又叫交换式集线器(switching hub)或者第二层交换机(工作在数据链路层)。

传统总线以太网以太网以半双工的形式工作,使用 CSMD/CD 协议,不能同时进行进行接受和发送。但是以太网交换机**不使用共享总线没有了碰撞问题,因此不再使用 CSMD/CD 协议,而且是以全双工的形式**工作的。交换机具有并行性,多对接口多对主机可以同时通信;相互通信的主机之间都是独占媒体,无碰撞地传输数据。

另外很重要的一点就是交换机的学习能力。传统集线器的将受到的包广播到所有接口中,而以太网交换机则只转发到对应了接口。原因就是交换机收到帧后可以将MAC地址和接口的映射关系记录在交换表中,这样就大大节约了网络资源。

(1)环路问题

机器数量如果越来越多的话,要求的交换器的数目也越来越多,各个交换机接口之间相互转发数据,很容易形成环路问题,造成无休止的转发。为了解决这种问题,有一个STP生成树算法。它可以做到不改变网络拓扑结构,在逻辑上切换某些链路,避免出现换环状结构。具体的 STP 算法的理解,可以参考极客时间-趣谈网络协议第6讲

5、虚拟局域网

如果现在有一些安全,局域网某些帧我只想转发给某一批的机器可以么?最直接的是使用物理隔离,增加交换机,编程多个局域网。

另一个方式是使用 VLAN (虚拟局域网)。每个 VLAN 的 帧上有明确的标识符,指定发送的帧是属于哪个VALN。

插入VLAN标记的帧

VLAN标记字段的长度是4字节,插入在以太网MAC帧的源地址字段和类型字段之间。VLAN标记的前两个字节总是设置为0x8100 (即二进制的0000001 0000000), 称为IEEE 802.1Q标记类型。

当数据链路层检测到MAC帧的源地址字段后面的两个字节的值是0x8100 时,就知道现在插入了4字节的VLAN标记。于是就接着检查后面两个字节的内容。在后面的两个字节中,前3位是用户优先级字段,接着的一位是规范格式指示符CFI (Canonical FormatIndicator)P,最后的12位是该虚拟局域网VLAN标识符VID (VLAN ID), 它唯一地标志了这个以太网帧属于哪一个VLAN。

6、 以太网和PPP协议

以太网这么好用,能不能以太网接入互联网呢?

但是再以太网的帧格式当中,没有地方用来放用户名和密码进行鉴别身份,如果解决这个问题呢?

于是有人就提出可以将 PPP 帧封装到以太网中来传输,这就是 PPPoE (PPP over Ethernet)。将以太网和 PPP 结合在了一起。

六、总结

本片文章主要介绍了物理层和数据链路层的一些相关理论知识点。

物理层上文中介绍了物理层的任务,物理层上很多基础的概念以及常见物理传输介质,这里主要都是为了更好的说明比特流在物理媒介上传输的过程。

数据链路层中,有数据链路层的常用的通信方式和协议,另外介绍了十分重要的以太网。

七、其他

1、参考

极客时间-趣谈网络协议第6讲

数字信号与模拟信号的区别是什么?

数字光纤通信原理

什么是码元?什么是比特?

发表评论

电子邮件地址不会被公开。 必填项已用*标注