Skip to content

物理层和数据链路层

网络互连模型

为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型

  • OSI 参考模型(Open System Interconnect Reference Model),具有 7 层结构

image-20230620164235815

请求过程

image-20230620164830494

网络分层

image-20230620165045379

物理层(Physical)

物理层定义了接口标准、线缆标准、传输速率、传输方式等

image-20230620165305931

数字信号、模拟信号

  • 模拟信号(Analog Signal)
    • 连续的信号,适合长距离传输
    • 抗干扰能力差,受到干扰时波形变形很难纠正
  • 数字信号(Digital Signal)
    • 离散的信号,不适合长距离传输
    • 抗干扰能力强,受到干扰时波形失真可以修复

image-20230620165330556

数据通信模型

  • 局域网通信模型

    image-20230620165842163

  • 广域网通信模型

    image-20230620165932966

信道(Channel)

信道:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道

  • 单工通信
    • 信号只能往一个方向传输,任何时候都不能改变信号的传输方向
    • 比如:无线电广播、有线电广播
  • 半双工通信
    • 信号可以双向传输,但必须是交替进行,同一时间只能往一个方向传输
    • 比如:对讲机、集线器同轴电缆组建的网络
  • 全双工通信
    • 信号可以同时双向传输
    • 比如:手机(打电话,听说同时进行)、交换机组建的网络

链路:从 1 个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点

在不同类型的链路上传递数据所用协议不一样

image-20230620170631313

数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输

  • 不同类型的数据链路,所用的通信协议可能是不同的
    • 广播信道:CSMA/CD 协议(比如:同轴电缆、集线器组成的网络)
    • 点对点信道:PPP 协议(比如:2 个路由器之间的信道)

数据链路层的 3 个基本问题:

  • 封装成帧
  • 透明成帧
  • 差错检验

封装成帧

image-20230620171018206

帧(Frame)的数据部分

  • 就是网络层传递下来的数据包(IP 数据包,Packet)

最大传递单元 MTU(Maximum Transfer Unit)

  • 每一种数据链路层协议都规定了所能够传送的帧的数据长度上限
  • 以太网的 MTU 为 1500 个字节

透明传输

  • 使用 SOH(Start Of Header)作为帧开始符
  • 使用 EOT(End Of Transmission)作为帧结束符

image-20230620173354559

数据部分一旦出现了 SOH、EOT,就需要进行转义

image-20230620173526473

差错检验

FCS 是根据 帧的数据部分 + 数据链路层首部 计算得出的

image-20230620173831294

CSMA/CD协议

CSMA/CD(Carrier Sense Multiple Access with Collision Detectio)

  • 载波侦听(信道没有信号传输才发送)、多路访问、冲突检测(多个信号发送检测冲突还是正常)

使用 CSMA/CD 的网络可以称为是以太网(Ethernet),它传输的是以太网帧

  • 以太网帧的格式有:Ethernet V2 标准、IEEE 的 802.3 标准
  • 使用最多的是:Ethernet V2 标准

为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要 64 字节

用交换机组件的网络,已经支持全双工通信,不需要再使用 CSMA/CD,但它传输的帧依然是以太网帧

  • 所以,用交换机组建的网络,依然可以叫以太网

Ethernet V2

image-20230621110749236

首部:目标MAC + 源MAC + 网络类型

  • 以太网帧:首部 + 数据 + FCS
  • 数据的长度至少是:64 - 6 - 6 - 2 - 4 = 46 个字节

image-20230621111319003

当数据部分的长度小于 46 字节时

  • 数据链路层会在数据的后面加入一些字节填充
  • 接收端会将添加的字节去掉

长度总结:

  • 以太网帧的数据长度:46 ~ 1500 字节
  • 以太网帧的长度:64 ~ 1518 字节(目标MAC + 源MAC + 网络类型 + 数据 + FCS)

网卡

  • 网卡接收到一个帧,首先会进行差错校验,如果校验通过则接受,否则丢弃
  • Wireshark 抓到的帧没有 FCS,因为它抓到的是差错校验通过的帧(帧尾的 FCS 会被硬件去掉)

image-20230621145251810

PPP 协议

PPP(Point to Point Protocol)

  • Address 字段:图中的值是 0xFF,形同虚设,点到点信道不需要源MAC、目标MAC地址
  • Control 字段:图中的值是 0x03,目前没有什么作用
  • Protocol 字段:内部用到的协议类型
  • 帧开始符、帧结束符:0x7E

image-20230621111655278

  • 将 0x7E 替换成 0x7D5E
  • 将 0x7D 替换成 0x7D5D

image-20230621152013703

常备不懈,才能有备无患