IEC104规约的秘密之十二----扩展报文之文件断点续传

在IEC104规约的秘密之十一中我们讲解了文件传输。

但文件不比数据报文,它是有很多帧组成的,少了任何一帧就无法组合成正确的文件。因此需要断点续传这个功能。可以将没有传完的文件的剩下部分继续进行传输,直到将文件传输完成。

对于主站的读文件来说,主站是知道文件已经收到多少的,因此断点续传由主站通知子站当前已经收到的文件的位置指针,子站可以从这个位置继续传输。

对于主站的写文件来说,子站是知道主站已经写了多少的。因此需要在交互报文中告知主站当前已经收到文件的位置指针。主站可以从这个位置继续写剩下的文件内容。

浙江省在国网6号文文件传输的基础上,定义了断点续传的操作标识,从而实现了断点续传。




报文实例:

2024/10/16 复制代码
    04 00 04 00 --> I帧报文(低字bit0=0,高字bit0=0) 发送序号:2 接收序号:2 (发:低字bit1~bit15,收:高字bit1~bit15)
    D2 -> F_FR_NA_2|210  文件传输(国网6号文)
        01 -> SQ(bit7):0  信号个数(bit0~6):1
        06 00 -> 传送原因:[T(bit7):0|未试验 P/N(bit6):0|肯定认可 原因(bit0~5):6|激活] 源发站地址(任务号):0
        01 00 -> 公共地址:1[设备类型:0(备用),设备编号:1,设备组号:0,组内偏移地址:1]
        00 00 00 -> 信息体地址:0
        02 -> 附加数据包类型:文件传输
        0B -> 操作标识:读文件激活(断点续传)
            12 -> 文件名长度:18个字节
            2F 48 49 53 54 4F 52 59 2F 74 65 73 74 31 2E 74 78 74 
                 -> 按 GBK 编码,文件名称:/HISTORY/test1.txt
                 -> 按UTF-8编码,文件名称:/HISTORY/test1.txt
            0A 00 00 00 -> 文件偏移指针:10
2024/10/16 08:13:07.797 <<-- 68 2B 04 00 06 00 D2 01 07 00 01 00 00 00 00 02 0C 00 12 2F 48 49 53 54 4F 52 59 2F 74 65 73 74 31 2E 74 78 74 02 00 00 00 30 00 00 00
    04 00 06 00 --> I帧报文(低字bit0=0,高字bit0=0) 发送序号:2 接收序号:3 (发:低字bit1~bit15,收:高字bit1~bit15)
    D2 -> F_FR_NA_2|210  文件传输(国网6号文)
        01 -> SQ(bit7):0  信号个数(bit0~6):1
        07 00 -> 传送原因:[T(bit7):0|未试验 P/N(bit6):0|肯定认可 原因(bit0~5):7|激活确认] 源发站地址(任务号):0
        01 00 -> 公共地址:1[设备类型:0(备用),设备编号:1,设备组号:0,组内偏移地址:1]
        00 00 00 -> 信息体地址:0
        02 -> 附加数据包类型:文件传输
        0C -> 操作标识:读文件激活确认(断点续传)
            00 -> 结果描述字:0(0:成功;1:失败)
            12 -> 文件名长度:18个字节
            2F 48 49 53 54 4F 52 59 2F 74 65 73 74 31 2E 74 78 74 
                 -> 按 GBK 编码,文件名称:/HISTORY/test1.txt
                 -> 按UTF-8编码,文件名称:/HISTORY/test1.txt
            02 00 00 00 -> 文件ID:2
            30 00 00 00 -> 文件大小:48
2024/10/16 08:13:07.835 <<-- 68 3F 06 00 06 00 D2 01 05 00 01 00 00 00 00 02 05 02 00 00 00 0A 00 00 00 00 BB B6 E4 BC A0 E8 BE 93 E7 9A 84 E6 96 87 E4 BB B6 E5 86 85 E5 AE B9 0A 61 62 63 31 32 33 34 35 36 37 38 39 30 0A CA
    06 00 06 00 --> I帧报文(低字bit0=0,高字bit0=0) 发送序号:3 接收序号:3 (发:低字bit1~bit15,收:高字bit1~bit15)
    D2 -> F_FR_NA_2|210  文件传输(国网6号文)
        01 -> SQ(bit7):0  信号个数(bit0~6):1
        05 00 -> 传送原因:[T(bit7):0|未试验 P/N(bit6):0|肯定认可 原因(bit0~5):5|请求/被请求] 源发站地址(任务号):0
        01 00 -> 公共地址:1[设备类型:0(备用),设备编号:1,设备组号:0,组内偏移地址:1]
        00 00 00 -> 信息体地址:0
        02 -> 附加数据包类型:文件传输
        05 -> 操作标识:读文件数据
            02 00 00 00 -> 文件ID:2
            0A 00 00 00 -> 数据段号(偏移量):10
            00 -> 后续标志:0(0:无;1:有)
            BB B6 E4 BC A0 E8 BE 93 E7 9A 84 E6 96 87 E4 BB B6 E5 86 85 E5 AE B9 0A 61 62 63 31 32 33 34 35 36 37 38 39 30 0A -> 文件数据:38字节
                当成字符串:欢浼犺緭鐨勬枃浠跺唴瀹?abc1234567890

                当成UTF-8字符串:??传输的文件内容
abc1234567890

            CA -> 检验码:202[计算校验码=CA,结果=校验码正确]
D2 复制代码
    D2 -> F_FR_NA_2|210  文件传输(国网6号文)
        01 -> SQ(bit7):0  信号个数(bit0~6):1
        06 00 -> 传送原因:[T(bit7):0|未试验 P/N(bit6):0|肯定认可 原因(bit0~5):6|激活] 源发站地址(任务号):0
        01 00 -> 公共地址:1[设备类型:0(备用),设备编号:1,设备组号:0,组内偏移地址:1]
        00 00 00 -> 信息体地址:0
        02 -> 附加数据包类型:文件传输
        0E -> 操作标识:写文件激活确认(断点续传)
            00 -> 结果描述字:0(0:成功;1:未知错误;2:文件名不支持;3:长度超范围;)
            0F -> 文件名长度:15个字节
            48 49 53 54 4F 52 59 2F 74 65 73 74 31 2E 74 
                 -> 按 GBK 编码,文件名称:HISTORY/test1.t
                 -> 按UTF-8编码,文件名称:HISTORY/test1.t
            01 00 00 00 -> 文件ID:1
            1F 00 00 00 -> 文件大小:31
            0C 00 00 00 -> 文件偏移指针:12
相关推荐
Eloudy2 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技3 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu3 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
是真的小外套5 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
小天源6 小时前
让访问数据可解释:IP 地球大屏、地区库更新与运行维护设计
网络·网络协议·tcp/ip
老李IT笔记7 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
小此方7 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
隐擎fox8 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip
Da Da 泓9 小时前
[项目] --- 基于websocket的网页五子棋(可多用户)
网络·websocket·网络协议·多线程·项目
lazy H9 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络