计算机网络之数据链路层

本文介绍数据链路层,之前介绍了,在数据链路层,信息是以帧为单位进行传输的,数据被包裹在帧中,并且帧上标明了发件人和收件人地址。

基本问题

封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,就构成了一个帧,接收端可以从收到的比特流中识别帧的开始和结束。同时每一种链路层协议都规定了帧的数据部分的最大长度( MTU )。

帧

控制字符 EOT 放在帧的最前面,表示帧的首部开始。控制字符 EOT 放在帧的最后面,表示帧的结束。它们的编码分别是 00000001 和 00000100 。

透明传输

为了可以在传输的数据中能够表示 “SOH” 或者 “EOT” ,必须对他们进行转义,在他们前面加上 “ESC” (十六进制是 1B ) 。

透明传输

差错检验

在数据链路层广泛使用循环冗余检验 CRC (Cyclic Redundancy Check) 的检错技术。

假设因子为 1101 ,那么在后面先添加 n-1 位 0 ,也就是 3 个 0 。然后不断异或就可以。最后把 FCS(Frame Check Sequence) 添加到帧后。

101001000 <— 数据序列末尾增加3位0
1011 <— 因子
000101000 <— XOR结果
1011 <— 因子
010011000
1011
011000000
1011
011101100
1011
011111010
1011
011110001


011110001 <— 3 位余数

所以 3 位余数 001 作为 FCS 。如果传输无差错的话,于是应该等于 0 ,否则就是传输的帧有问题。

点对点协议 PPP

互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

特点

  1. 简单
  2. 分装成帧
  3. 透明性
  4. 多种网络层协议
  5. 多种类型链路
  6. 差错检测
  7. 检测连接状态
  8. 最大传送单位
  9. 网络层地址协商
  10. 数据压缩协商

帧格式

PPP

F(Flag) 是 PPP 帧的定界符,规定为 0x7E ,如果出现连续两个标志字段,那么就是空帧,应该舍弃。A 和 C 字段暂时没有定义。首部第 4 个字段是协议字段,如果为 0x0021 的话,那么信息字段就是 IP 数据包,如果是 0xC021 ,那么就是 PPP 链路控制协议 LCP 数据,如果是 0x8021 ,那么就是网络层的控制数据。

以太网的 MAC 层

硬件地址又称为物理地址或者 MAC 地址。每个局域网适配器都有唯一的 MAC 地址。

MAC 帧的格式

MAC帧

类型:标志上一层使用的什么协议
数据:46 到 1500 字节之间
FCS:帧检测序列
前同步码:调整时钟频率
帧开始定界符:告诉接收端适配器:“MAC 帧的信息马上就要来了” 。

集线器和交换机

集线器会把发送方的帧发到所以计算机,然后每台计算机自己检测自己的 MAC 地址是不是符合 DST ,这就是广播的过程。但是存在下面两个缺点:

  1. 两个计算机在同个局域网内通信是公开的,可以通过对信息加密提高安全性。
  2. 不允许多路同时通信,可以在设备上增加冲突检测算法,一旦设备发现有冲突,则随机等待一段时间再重新发送。

交换器记录有各个设备的MAC地址。当帧发送到交换器时,交换器会检查DST,然后将帧只发送到对应计算机上,交换器允许多路同时通信。

相关文章