引言

    在TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收IP数据报;(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送RARP请求和接收RARP应答。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,常见的链路层协议有如下几种:

    1. 以太网(Ethernet)。
    2. 点对点协议(Point-to-Point Protocol,PPP)。
    3. 高级数据链路协议(High-Level Data Link Protocol,HDLC)。
    4. 帧中继(Frame Relay)。
    5. 异步传输模式(Asynchronous Transfer Mode,ATM)。

我们只关注以太网,它是最常用的局域网技术。
以太网和IEEE 802封装

    以太网这个术语一般是指数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和施乐(Xerox)公司在1982年联合公布的一个标准。它是当今TCP/IP采用的主要的局域网技术。它使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10Mbit/s的速率运行在多种类型的电缆上。

    几年后,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3标准针对整个CSMA/CD网络,802.2标准定义了802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式。

    现在,以太网包括标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)、千兆以太网(1000Mbit/s)和万兆(10Gbit/s)以太网。它们都符合802.3标准。

    在TCP/IP世界中,以太网IP数据报的封装是在RFC894中定义的,IEEE802网络的IP数据报封装是在RFC1042中定义的。
《TCP/IP详解 卷1》 笔记: 链路层
    最常使用的封装格式是RFC894定义的格式。两种帧格式都采用48位(6字节)的目的地址和源地址。这就是我们在本书中所称的硬件地址以太网地址(我们口语通常说的MAC地址)。在以太网帧格式中,类型字段之后就是数据;而在802帧格式中,跟随在后面的是3字节的802.2LLC和5字节的802.2SNAP。CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验序列)。
    802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不满足最小长度要求的数据后面插入填充(pad)字节。
环回接口

    大多数计算机都支持环回接口(Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为lo。一个传给环回接口的IP数据报不能在任何网络上出现。下图是环回接口处理IP数据报的简单过程:

《TCP/IP详解 卷1》 笔记: 链路层

最大传输单元MTU

    以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。

路径MTU

    当在同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。重要的不是两台主机所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU。它被称作路径MTU

相关文章: