购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6 数据链路层

1.6.1 数据链路层的基本概念

数据链路层的基本服务是将来自源计算机网络层的数据可靠地传输到相邻节点的目标计算机的网络层。为了达到这个目的,数据链路层主要解决以下3个问题:

1)如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位)。

2)如何控制帧在物理信道上的传输,包括如何处理传输差错、如何调节发送速率以与接收方相匹配。

3)如何管理两个网络实体之间数据链路通路的建立、维持和释放。

1.6.2 数据链路层的主要功能

数据链路层的主要功能如下:

(1)为网络层提供服务
(2)成帧、帧定界、帧同步、透明传输

为了向网络层提供服务,数据链路层必须使用物理层提供的服务。物理层是以比特流的形式进行传输的,这种比特流并不保证在数据传输的过程中没有错误,接收到的比特数量可能少于、等于或者多于发送的比特数量,它们还可能有不同的值。这时数据链路层为了实现有效的差错控制,就采用了一种称为“帧”的数据块进行传输。而要采用“帧”格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称为“帧同步”)功能。

(3)差错控制

在数据通信过程中,受物理链路性能和网络通信环境等因素的影响,难免会出现一些传送错误,为了确保数据通信的准确性,必须使这些错误发生的概率尽可能低。该功能也是在数据链路层实现的。

(4)流量控制

在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,又可以避免通信过程中不会出现因接收方来不及接收而造成数据丢失。

(5)链路管理

数据链路层的“链路管理”功能包括数据链路的建立、维持和释放3个主要方面。当网络中的两个节点要进行通信时,数据的发送方必须明确知道接收方是否已处于准备接收的状态。为此通信双方必须先交换一些必要的信息,以建立一条基本的数据链路。在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。

(6)MAC寻址

这是数据链路层中的MAC子层的主要功能。这里所说的“寻址”与“IP地址寻址”是完全不一样的,因为此处寻找的地址是计算机网卡的MAC地址,也称“物理地址”或“硬件地址”,而不是IP地址。在以太网中,采用媒体访问控制(Media Access Control,MAC)地址进行寻址,MAC地址被烧录到每个以太网网卡中。

网络接口层中的数据通常被称为MAC帧,帧所用的地址为媒体设备地址,即MAC地址,也就是通常所说的物理地址。每块网卡都有一个全世界唯一的物理地址,它的长度固定为6字节,比如00-30-C8-01-08-39。在Linux操作系统的命令行下执行ifconfig-a命令就可以看到系统中所有网卡的信息。

MAC帧的帧头定义如下: 4uGCnRrOqOrX+mMigDcSY5Jd1sPIWaYw9tjW9Kutv1VvsGTvr3/voHmna5SD/Zfh

typedef struct _MAC_FRAME_HEADER       //数据帧头定义
{
    char  cDstMacAddress[6];           //目的MAC地址
    char  cSrcMacAddress[6];           //源MAC地址
    short m_cType;  //上一层协议类型,如0x0800代表上一层是IP,0x0806代表上一层是ARP
}MAC_FRAME_HEADER,*PMAC_FRAME_HEADER;
点击中间区域
呼出菜单
上一章
目录
下一章
×