从物理层到链路层

240 阅读2分钟
  • 物理层负责将光电信号转化为 0、1 比特流用来表示信息
  • 数据链路层把这些信息集合为一个叫做「帧」的块,再进行传输

TCP/IP 未对数据链路层及以下部分(物理层)做定义,因为 TCP/IP 以这两层的功能是透明的为前提,但是,数据链路层的知识对于深入理解 TCP/IP 与网络起着至关重要的作用,物理层主要是物理介质,比如光缆、电缆、双绞线等,更多的是硬件结构。

MAC地址

MAC 地址用于识别数据链路中互连的节点,在使用网卡的情况下,MAC 地址一般在出厂的时候就被烧到 ROM 中,不可更改,而且全球唯一。

在计算机内部,则是通过 48 位二进制数来表示,对应结构及区间含义如下:

在同一个数据链路里(比如同一个局域网),互连的主机之间通过 MAC 地址即可实现相互通信。

以太网

  • Linux:ifconfig/ip addr
  • Window:ipconfig

早期,以太网通过同一根同轴电缆将多台终端设备连接起来,这种共享介质的连接方式有一个显著的缺点,就是发送和接收信号不能同时进行,只能实现半双工通信,并且多台设备也不能同时通信,需要争夺对通信介质的控制,如果同时通信,容易出现信道冲突。为了提高通信效率和速度,随着技术的不断发展,现在的以太网一般都采用终端与交换机直连独占电缆的方式,实现了全双工通信,并且不同终端也可以同时发送信息,因为通信介质都是独占的,不存在控制权和冲突问题:

数据帧格式

以以太网为例,在数据链路层中,传输的数据帧主体格式如下:

其中,有6个字节的目标MAC地址,6个字节的源MAC地址,2个字节的上层协议类型,剩下的是传输数据,对以太网来说,数据大小是1500字节,还有最后4位是帧检验序列(FCS),用于检测帧是否损坏。


原文来自Laravel学院君