TCP/IP协议——数据链路层

413 阅读3分钟

以太网和IEEE802

背景

以太网一般是指数字设备公司、英特尔公司和Xerox公司在1982年联合发布的一个标准。它是当今TCP/IP采用的主要局域网技术,主要使用一种称作CSMA/CD的媒体接入方法(后来为IEEE802.3标准) 。它的速率是10Mb/s,地址为48bit。

但几年后IEEE802委员会公布了一个稍有不同的标准集,将数据链路层的技术标准归类:

  • IEEE802.2: 802网络共有的逻辑链路控制(LLC)
  • IEEE802.3: 整个CSMA/CD网络(带冲突检测的载波侦听多路复用)
  • IEEE802.4: 令牌总线网络
  • IEEE802.5: 令牌环网络

IEEE802标准定义的服务和协议限定在OSI模型的最低两层协议(即物理层和数据链路层),IEEE802标准又将OSI模型的数据链路层分为两个自层,分别为逻辑链路层(LLC)和介质访问控制(MAC)。MAC位于数据链路层上层,LLC位于上层,MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。LLC子层的主要功能包括:传输可靠性保障和控制,数据包的分段与重组,数据包的顺序传输。

数据封装格式

IEEE802.2和IEEE802.3定义了一个和以太网不同的帧格式。以太网IP数据包的封装是在RFC894中定义的,而IEEE802网络的IP数据包是在RFC1042中定义的。目前业界普遍使用以太网的RFC894标准的数据格式,而之后修订的标准RFC1042反而被忽略了。

  • IEEE802数据封装格式(RFC1042)
目的地址源地址长度DSAPSSAPcntlorg code类型数据CRC
6621113238-14924
  • 以太网数据封装格式(RFC894)
目的地址源地址类型数据CRC
66246-15004

数据链路层地址

以太网的数据帧格式和IEEE802的数据帧格式都采用的是48位的源地址和目的地址,这就是通常所说的硬件地址或MAC地址。制造商生产出一个网卡时就已产生一个全球唯一的MAC地址,以保证以太网上的节点能相互鉴别。

最大传输单元MTU

MTU

数据链路层最大最大传输单元,即每个数据链路层数据包最大能传输的字节数,如果传输的字节数超过MTU,就会被拆分成不同的数据包再传输,下表是各种典型的网络MTU:

网络MTU字节
超通道65535
FDDI4352
以太网1500
IEEE802.2/802.31492
点对点(低时延)286

路径MTU:

两台主机之间的通讯可能要经过不同的网络,而每个网络的MTU可能各不相同,这两台主机所经过网络中最小的MTU就是路径MTU。路径MTU并不是一个常量,这取决于当时所选的路由,而选路并不一定是对称的(从A到B的路由和从B到A的路由可能不一致)。路径MTU决定了传输时的数据帧大小,在选路后必须监测到路径MTU才能知道是否对数据帧切片。