首页/文章/ 详情

计算机通信与网络v3 第七章 数据链路控制协议(2)

14天前浏览171
本章内容较多,所以依旧分成两部分讲解!对于本科生而言,高级数据链路控制的内容算是比较难的。这种控制方式不仅用在计算机系统中,很多通信系统中也用,只不过用的是简化版本!

在链路方面是什么情况呢?

非平衡设置

  1. 一个主站和一个或多个从站

  2. 支持全双工或半双工传输

平衡设置

  1. 两个混合站组成;

  2. 支持全双工或半双工传输。

数据传送方面呢?

先看看正常响应模式!

正常响应方式(简称为NRM)。特点如下:
  1. 非平衡设置
  2. 主站初始化到从站的数据传送
  3. 从站通过传输数据来响应主站的命令
  4. 用于多点线路
  5. 多个终端连接到一个主计算机上
  6. 终端作为从站
帧结构是指将数据在传输过程中划分成一个个特定格式的基本单元的结构。它主要包括以下几个部分:
  1. 帧头:包含同步信息、地址信息等,用于标识帧的开始和接收方的识别。
  2. 数据字段:承载实际要传输的数据内容。
  3. 帧尾:可能包含一些校验信息或其他控制信息,以确保帧的完整性和正确性。
帧结构的设计要考虑数据的有效传输、同步、错误检测与纠正等多方面因素,以保证数据通信的高效和可靠。

重点知识!
帧结构如何设定包含了太多的技巧,这些技巧需要通过实践来掌握,仅靠教学是无法理解的。帧包含哪些字段是需要大家掌握的!有没有想过为什么要包含这些字段呢?

HDLC(High-Level Data Link Control)是一种数据链路层协议,常用于串行通信中。HDLC帧由起始标志、地址字段、控制字段、信息字段、帧校验序列和结束标志组成。下面是一个简单的MATLAB示例,用于生成HDLC帧。
% HDLC帧生成函数
function frame = generateHDLCFrame(address, control, info)
    % 起始标志
    startFlag = [0 1 1 1 1 1 1 0];    
    % 地址字段
    addressField = dec2bin(address, 8);    
    % 控制字段
    controlField = dec2bin(control, 8);    
    % 信息字段
    infoField = info;    
    % 帧校验序列(CRC校验)
    crc = crc16(infoField);
    crcField = dec2bin(crc, 16);    
    % 结束标志
    endFlag = [0 1 1 1 1 1 1 0];
    % 组装帧
    frame = [startFlag, addressField, controlField, infoField, crcField, endFlag];
end
% CRC16校验函数
function crc = crc16(data)
    % 计算CRC16校验
    crc = 0;
    polynomial = hex2dec('8005');    
    for i = 1:length(data)
        crc = bitxor(crc, bitshift(data(i), 8));
        for j = 1:8
            if bitget(crc, 16)
                crc = bitxor(bitshift(crc, -1), polynomial);
            else
                crc = bitshift(crc, -1);
            end
        end
    end
end
上面MATLAB程序中的函数generateHDLCFrame接受三个参数:地址字段、控制字段和信息字段,并返回一个完整的HDLC帧。在这个示例中,假设信息字段直接是二进制形式,而地址字段和控制字段是十进制形式,需要转换成二进制形式。帧校验序列采用了CRC16校验。你可以调用这个函数来生成HDLC帧,然后将生成的帧发送到串行通信通道上。请注意,这只是一个简单的示例,实际中还需要根据具体要求来修改和完善这个函数。同学们要活学活用哦,不然你肯定会被AI所代替!
什么是HDLC?以后要学协议栈的同学必然要对HDLC帧了如指掌,不如现在就记住它的组成吧!什么是协议栈?找资料看吧。

来源:通信工程师专辑
MATLAB通信控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-19
最近编辑:14天前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 381粉丝 2448文章 230课程 38
点赞
收藏

作者推荐

未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈