当前位置:实例文章 » 其他实例» [文章]数据链路层中一些零碎且易忘的知识点

数据链路层中一些零碎且易忘的知识点

发布人:shili8 发布时间:2025-03-06 02:37 阅读次数:0

**数据链路层中的零碎知识点**

数据链路层是OSI参考模型中的第二层,位于网络接口层和网络层之间。它负责将数据分割成适合传输的帧,并在两个相邻设备之间传递这些帧。在这个文档中,我们将讨论一些零碎且易忘的知识点。

###1. 帧格式帧是数据链路层中的基本单位,它包含以下部分:

* **前导码**:用于标识帧开始和结束。
* **目的地址**:指向接收设备的MAC地址。
* **源地址**:指向发送设备的MAC地址。
* **控制信息**:用于控制数据传输,例如CRC校验等。
* **数据**:实际要传输的数据。
* **尾随码**:用于标识帧结束。

c// 帧格式示例struct Frame {
 uint8_t lead; // 前导码 uint16_t destMac; // 目的地址 uint16_t srcMac; // 源地址 uint8_t ctrlInfo[2]; // 控制信息 uint8_t data[1024]; // 数据 uint8_t tail; // 尾随码};


###2. MAC地址MAC地址是用于标识设备的唯一地址,它由6个字节组成,通常用十六进制表示。

c// MAC地址示例uint16_t macAddress[6] = {0x00,0x11,0x22,0x33,0x44,0x55};


###3. CRC校验CRC(循环冗余码)是用于检测数据传输错误的技术,它通过计算一个数字来检查数据是否完整。

c// CRC示例uint16_t crc16(const uint8_t* data, int len) {
 uint16_t crc =0xFFFF;
 for (int i =0; i < len; i++) {
 crc ^= data[i];
 for (int j =0; j < 8; j++) {
 if (crc &1) {
 crc >>=1;
 crc ^=0xA001;
 } else {
 crc >>=1;
 }
 }
 }
 return crc;
}


###4. 滑动窗口协议滑动窗口协议是一种用于控制数据传输的协议,它通过维护一个滑动窗口来管理数据的发送和接收。

c// 滑动窗口示例struct Window {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小 int sendSequenceNumber; // 发送序列号 int receiveSequenceNumber; // 接收序列号};


###5. ARQ协议ARQ(自动重传请求)是用于控制数据传输的协议,它通过发送确认信息来管理数据的发送和接收。

c// ARQ示例struct Arq {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小 int sendSequenceNumber; // 发送序列号 int receiveSequenceNumber; // 接收序列号};


###6. 流量控制流量控制是用于管理数据传输的技术,它通过监控网络负载来避免拥塞。

c// 流量控制示例struct FlowControl {
 int maxBandwidth; // 最大带宽 int currentBandwidth; // 当前带宽};


###7. 网络接口层网络接口层是OSI参考模型中的第一层,它负责将数据从应用程序传输到网络。

c// 网络接口示例struct NetworkInterface {
 int maxBandwidth; // 最大带宽 int currentBandwidth; // 当前带宽};


###8. 数据链路层数据链路层是OSI参考模型中的第二层,它负责将数据分割成适合传输的帧,并在两个相邻设备之间传递这些帧。

c// 数据链路示例struct DataLink {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###9. 网络层网络层是OSI参考模型中的第三层,它负责将数据从源设备传输到目的设备。

c// 网络示例struct Network {
 int maxBandwidth; // 最大带宽 int currentBandwidth; // 当前带宽};


###10.传输层传输层是OSI参考模型中的第四层,它负责将数据从源设备传输到目的设备。

c//传输示例struct Transport {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###11. 会话层会话层是OSI参考模型中的第五层,它负责建立和维护数据传输的连接。

c// 会话示例struct Session {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###12. 表现层表现层是OSI参考模型中的第六层,它负责将数据转换成适合传输的格式。

c// 表现示例struct Presentation {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###13. 应用层应用层是OSI参考模型中的第七层,它负责将数据从应用程序传输到网络。

c// 应用示例struct Application {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###14. OSI参考模型OSI参考模型是用于描述数据传输过程的框架,它包含七个层次。

c// OSI示例struct Osi {
 struct NetworkInterface networkInterface;
 struct DataLink dataLink;
 struct Network network;
 struct Transport transport;
 struct Session session;
 struct Presentation presentation;
 struct Application application;
};


###15. TCP/IP参考模型TCP/IP参考模型是用于描述数据传输过程的框架,它包含四个层次。

c// TCP示例struct Tcp {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###16. IP协议IP协议是用于将数据从源设备传输到目的设备的协议。

c// IP示例struct Ip {
 int maxBandwidth; // 最大带宽 int currentBandwidth; // 当前带宽};


###17. ICMP协议ICMP协议是用于管理数据传输过程的协议。

c// ICMP示例struct Icmp {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###18. UDP协议UDP协议是用于将数据从源设备传输到目的设备的协议。

c// UDP示例struct Udp {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###19. DNS协议DNS协议是用于管理域名和IP地址之间的映射关系的协议。

c// DNS示例struct Dns {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###20. HTTP协议HTTP协议是用于管理Web服务和客户端之间的通信关系的协议。

c// HTTP示例struct Http {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###21. FTP协议FTP协议是用于管理文件传输和管理服务之间的通信关系的协议。

c// FTP示例struct Ftp {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###22. SMTP协议SMTP协议是用于管理电子邮件传输和管理服务之间的通信关系的协议。

c// SMTP示例struct Smtp {
 int maxWindowSize; // 最大窗口大小 int currentWindowSize; // 当前窗口大小};


###23. POP3协议POP3协议是用于管理电子邮件传输和管理服务之间的通信关系的

相关标签:网络macos
其他信息

其他资源

Top