最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

传真T30协议分析

IT圈 admin 27浏览 0评论

2024年10月26日发(作者:扶清霁)

T38传真抓包分析

――于杨

本文主要对于IP实时传真抓包进行了相关分析,帮助大家对t38协议,t30协议有较为直观

的认识。简单地说,t38协议就是t30协议在IP网络上的实现规程。

抓包中101作为主叫, 作为被叫,是主叫主动发送传真

的过程。

使用wireshark分析软件打开eth0。pkt, filter域限制为 sip||t38。

篮底黑字是主叫发送的数据包,黑底红字是被叫发送的数据包。

1.T38包结构

先说一说t38包的组成结构。

我们使用udp协议进行t38数据传输,应用层的数据都被封装在UDPTL中,下图表示了

UDPTL在udp包中所处的位置,其实就是udp承载的数据。

1。1 UDPTL组织结构

UDPTL包含三部分:

1. 序列号 seq—number

2. IFP分组 primary-ifp-packet

3. 差错纠正 error—recovery

1。2 IFP分组

下面详细介绍一下IFP分组内容:

从ASN。1描述中,可以看出包括type—of-msg域和data—field域,其中data—field域是可

选的。

什么时候可选呢?这是由type—of—msg域的类型决定的。

Type—of—msg可以选择两种类型:t30-indicator 和 t30—data。

如果是t30—indicator,则不需要data—field;反之,是t30—data,则需要提供data—field域。

那么,如果我们使用了t30-data, data-field域应该如何组织呢?

Data-field域也是由两部分组成: field-type 和 field—data, 其中,field-data也是可选的,由

filed—type类型来决定,比如field—type是hdlc-fcs—ok,就不需要field—data,而field-type

是hdlc-data的话,则必须提供field—data。

1。3总结

综上所述,下图给出了UDPTL框架图,“—-—————-—"表示了二者选一的关系,也就是

说差错纠正(error recovery)只能使用冗余包或者FEC前向纠错中的一种方式。

seq number

type-of-msg

IFP packet

field-type

UDPTL

data-field(optional)

field-data(optional)

secondary-ifp-packet

error recovery

fec-info

2.抓包分析

现在已了解了一个t38包的内部构造,下面利用抓包分析一下包与包之间组合起来

所表达的信息.从抓包来看,对于是t30—indicator的信令都是单独一个包,其作用是协

助真正的t30信令的发送与接受,真正的t30信令都是使用hdlc消息帧来进行传输的,

一般都需要多个帧,每个帧存储了一个字节的有效数据.

注:我们传真的过程是主叫主动发送传真的过程,并只关注传真过程,sip信令在这里不做分

析.

传真信令和数据流程

B阶段(报文前阶段)

1141 T30ind : no—signal 信令 : 无信号,可以用于两端连接,对端没有输入的情况下.

1153—1196被叫->主叫

1153 T30ind : V21—preamble 信令 : V21前导序列,发送传真信令前必发的前导标志,

发送传真数据则不需要。

1156-1182 CSI信令

CSI信令的发送打包处理,并且是一个完整的hdlc消息帧.

HDLC消息包格式内容定义:

FlagAddressControl

Facsimile

Control

Facsimile

Info

N*1(Byte)

Frame

Checking

Seq(FCS)

Flag

Standard HDLC Frame

1156 data: v21: hdlc-data[FF]

V21表示type-of—msg选择为V21调制模式。

HDLC消息的address域, 规定值为 1111 1111(0xFF)

1157 data: v21: hdlc—data[C0]

HDLC消息的control域, 规定值为 1100 X000

X值:在发送选用帧时(如本例的CSI), 选用帧要放在必用的命令帧或响应帧(如本例的

DIS)之前,在这种情况下,选用帧的control域的X=0, 必用的命令帧或响应帧的X=1;

简单的说,就是要发送一系列连续的帧,非末帧是0,末帧是1。

1158 data: v21: hdlc-data[02]

HDLC消息的facsimile control域(FCF),0x02表示CSI信令,该信令是选用信令,表明

可用被叫用户的国际电话号码来提供被叫用户的特定身份。CSI的facimile info域由20个编

码数字组成,见其后20个帧。

1159—1181 data: v21: hdlc—data[04] (中间有2个帧序号不连续,共20帧)

CSI编码格式见下表,从表中无法查到对应的编码。

1182 data: v21: hdlc-fcs-ok

Hdlc-fcs-ok 标识了HDLC帧的结束并收到了合适的FCS,也标识这不是最后一帧,该

字段类型没有字段数据,仅仅是个标识.

1183-1193 DIS信令

DIS信令的打包发送过程。

1183,1184见1156,1157

1185 data: v21: hdlc-data[01]

FCF =0x01, 表明是DIS信令,表征被叫终端的标准能力.

1186-1191 共48位表明了被叫的传真能力。

下面仅就DIS的各标志位含义做简单描述,不明之处可查询GB_T 3382.2—2003 P39—47 表

2或ITU T。30 09/2005 P52 Table 2

1186 data: v21: hdlc-data[00]

“0000 0000”

注1: “保留" 表示为 0。

1187 data: v21: hdlc-data[72]

“0111 0010”

1188 data: v21: hdlc-data[17]

0001 0111

1189 data: v21: hdlc—data[01]

0000 0001

1190 data: v21: hdlc—data[01]

0000 0001

1191 data: v21: hdlc-data[08]

0000 1000

1192 data: v21: hdlc—fcs—ok 见1182

1193 data: v21: hdlc-sig-end

标识HDLC的功率电平已经下降到低于关闭门限,用来表征一系列帧的结束。该字段类

型后无字段数据。

1198-1340主叫—〉被叫

1214-1243 TSI信令

TSI信令的打包发送过程.TSI信令指出随后的FIF信息是发送终端的标识。

1214,1215见1156,1157

1216 data: v21: hdlc-data[C2]

FCF = 0xC2,

X100 0010

FCF域中X值:

收到DIS的终端会置X=1;反之,X=0。

在这个抓包中,主叫要发送进行设置就是1,被叫就是0。

1218—1239 data: v21: hdlc-data[04]

TSI与CSI 使用的数据编码方式相同,0x04也是接收到CSI中的数据信息。

1241 data: v21: hdlc—fcs—ok

1244—1262 DCS信令

DCS信令的打包发送过程, 是DIS信令标准能力的响应消息。

1244,1245见1153,1154.

1246 data: v21: hdlc-data[C1]

FCF =0xC1,

X100 0001, , 由于是主叫发出,所以X=1.

1248 data: v21: hdlc-data[00]

1249data: v21: hdlc—data[73]

1250data: v21: hdlc—data[15]

1251data: v21: hdlc—data[01]

1252data: v21: hdlc—data[01]

1253data: v21: hdlc-data[00]

DCS数据可参考DIS在T30协议中的同一张表,这里不再进行详细描述,可查询GB_T 3382.2

—2003 P39—47 表2或ITU T.30 09/2005 P52 Table 2

1255 data: v21: hdlc-fcs—ok 见1182

1258 data: v21: hdlc—sig—end 见1193

1274—1330 发送training数据

1274 t30ind: v29-7200—training

对应T30协议中训练检验(TCF)信号,本信号要求非HDLC 帧.

格式:1。5* (1±10%)s 的0串

1274—1329 data: v29-7200: t4-non-ecm—data

1274包的时间戳是112.14 秒,1329包的时间戳是113。64秒,其时间差正好是1。5秒,

符合协议.

T4-non-ecm-data表示不使用ECM或FEC发送T4过程数据.

1330data: v29—7200: t4—non—ecm-sig—end

t4—non-ecm-sig-end 表示不使用ECM或FEC发送T4过程数据的结束。

1346-1358被叫-〉主叫

1350—1355 CFR信令

1350,1351见1156,1157。

1352 data: v21: hdlc—data[21]

FCF = 0x21,

X010 0001, 由于是被叫发出,X=0

CFR信令表明全部报文前过程(B阶段)已结束,可以开始发送报文数据。

C阶段(报文发送阶段)

1362-3644 主叫—>被叫

1362-3616 发送第一页数据

数据格式可参考training数据格式。

3617—3641MOP信令

3632,3634见1156,1157。

3635 data: v21: hdlc—data[F2]

FCF = 0xF2

X111 0010, 由于是主叫发送,X=1.

MOP信令是多页信号,表示一完整传真信息页的结束,并在收到证实后返回到C阶段

的开始。

3637,3641见1182,1193。

3649—3662 被叫-〉主叫

3654—3659 MCF信令

3654,3655见1156,1157。

3656 data: v21: hdlc-data[31]

FCF = 0x31,

X011 0001,由于是被叫发送,X=0。

MCF信令表示已经满意地收到完整的报文,并可继续接收另外的报文,是MOP信令的

肯定响应。

3658,3659见1182,1193.

3666—6735 又发送了一页数据,同上分析。

6737—9793 主叫—>被叫

6737—9755 发送最后一页数据

9756—9737 EOP信令

9781,9782见1156,1157。

9783 data: v21: hdlc-data[F4]

FCF = 0xF4

X111 0100, 由于是主叫发送,X=1。

EOP信令是多页信号,表示一完整传真信息页的结束,并进一步表示不再发来文件,在收

到证实后进入阶段E。

9785,9789见1182,1193。

9799—9810 被叫—>主叫

9799—9810 MCF信令

见3654—3659。

MCF信令也可以是EOP信令的肯定响应.

问题1:HDLC消息的第一字节和最后一个字节Flag没有,why?

参考: 是在T38协议中使用了HDLC的消息格式,在IP层传输,而并不是在真正的数据

链路层进行数据传输,而且t38协议中也规定很多indicator可以表明HDLC消息的开始与结

束,所以Flag域就不需要了。

问题2:1159-1181 数据是0x04,在CSI编码表中不存在?

参考: 无.

2024年10月26日发(作者:扶清霁)

T38传真抓包分析

――于杨

本文主要对于IP实时传真抓包进行了相关分析,帮助大家对t38协议,t30协议有较为直观

的认识。简单地说,t38协议就是t30协议在IP网络上的实现规程。

抓包中101作为主叫, 作为被叫,是主叫主动发送传真

的过程。

使用wireshark分析软件打开eth0。pkt, filter域限制为 sip||t38。

篮底黑字是主叫发送的数据包,黑底红字是被叫发送的数据包。

1.T38包结构

先说一说t38包的组成结构。

我们使用udp协议进行t38数据传输,应用层的数据都被封装在UDPTL中,下图表示了

UDPTL在udp包中所处的位置,其实就是udp承载的数据。

1。1 UDPTL组织结构

UDPTL包含三部分:

1. 序列号 seq—number

2. IFP分组 primary-ifp-packet

3. 差错纠正 error—recovery

1。2 IFP分组

下面详细介绍一下IFP分组内容:

从ASN。1描述中,可以看出包括type—of-msg域和data—field域,其中data—field域是可

选的。

什么时候可选呢?这是由type—of—msg域的类型决定的。

Type—of—msg可以选择两种类型:t30-indicator 和 t30—data。

如果是t30—indicator,则不需要data—field;反之,是t30—data,则需要提供data—field域。

那么,如果我们使用了t30-data, data-field域应该如何组织呢?

Data-field域也是由两部分组成: field-type 和 field—data, 其中,field-data也是可选的,由

filed—type类型来决定,比如field—type是hdlc-fcs—ok,就不需要field—data,而field-type

是hdlc-data的话,则必须提供field—data。

1。3总结

综上所述,下图给出了UDPTL框架图,“—-—————-—"表示了二者选一的关系,也就是

说差错纠正(error recovery)只能使用冗余包或者FEC前向纠错中的一种方式。

seq number

type-of-msg

IFP packet

field-type

UDPTL

data-field(optional)

field-data(optional)

secondary-ifp-packet

error recovery

fec-info

2.抓包分析

现在已了解了一个t38包的内部构造,下面利用抓包分析一下包与包之间组合起来

所表达的信息.从抓包来看,对于是t30—indicator的信令都是单独一个包,其作用是协

助真正的t30信令的发送与接受,真正的t30信令都是使用hdlc消息帧来进行传输的,

一般都需要多个帧,每个帧存储了一个字节的有效数据.

注:我们传真的过程是主叫主动发送传真的过程,并只关注传真过程,sip信令在这里不做分

析.

传真信令和数据流程

B阶段(报文前阶段)

1141 T30ind : no—signal 信令 : 无信号,可以用于两端连接,对端没有输入的情况下.

1153—1196被叫->主叫

1153 T30ind : V21—preamble 信令 : V21前导序列,发送传真信令前必发的前导标志,

发送传真数据则不需要。

1156-1182 CSI信令

CSI信令的发送打包处理,并且是一个完整的hdlc消息帧.

HDLC消息包格式内容定义:

FlagAddressControl

Facsimile

Control

Facsimile

Info

N*1(Byte)

Frame

Checking

Seq(FCS)

Flag

Standard HDLC Frame

1156 data: v21: hdlc-data[FF]

V21表示type-of—msg选择为V21调制模式。

HDLC消息的address域, 规定值为 1111 1111(0xFF)

1157 data: v21: hdlc—data[C0]

HDLC消息的control域, 规定值为 1100 X000

X值:在发送选用帧时(如本例的CSI), 选用帧要放在必用的命令帧或响应帧(如本例的

DIS)之前,在这种情况下,选用帧的control域的X=0, 必用的命令帧或响应帧的X=1;

简单的说,就是要发送一系列连续的帧,非末帧是0,末帧是1。

1158 data: v21: hdlc-data[02]

HDLC消息的facsimile control域(FCF),0x02表示CSI信令,该信令是选用信令,表明

可用被叫用户的国际电话号码来提供被叫用户的特定身份。CSI的facimile info域由20个编

码数字组成,见其后20个帧。

1159—1181 data: v21: hdlc—data[04] (中间有2个帧序号不连续,共20帧)

CSI编码格式见下表,从表中无法查到对应的编码。

1182 data: v21: hdlc-fcs-ok

Hdlc-fcs-ok 标识了HDLC帧的结束并收到了合适的FCS,也标识这不是最后一帧,该

字段类型没有字段数据,仅仅是个标识.

1183-1193 DIS信令

DIS信令的打包发送过程。

1183,1184见1156,1157

1185 data: v21: hdlc-data[01]

FCF =0x01, 表明是DIS信令,表征被叫终端的标准能力.

1186-1191 共48位表明了被叫的传真能力。

下面仅就DIS的各标志位含义做简单描述,不明之处可查询GB_T 3382.2—2003 P39—47 表

2或ITU T。30 09/2005 P52 Table 2

1186 data: v21: hdlc-data[00]

“0000 0000”

注1: “保留" 表示为 0。

1187 data: v21: hdlc-data[72]

“0111 0010”

1188 data: v21: hdlc-data[17]

0001 0111

1189 data: v21: hdlc—data[01]

0000 0001

1190 data: v21: hdlc—data[01]

0000 0001

1191 data: v21: hdlc-data[08]

0000 1000

1192 data: v21: hdlc—fcs—ok 见1182

1193 data: v21: hdlc-sig-end

标识HDLC的功率电平已经下降到低于关闭门限,用来表征一系列帧的结束。该字段类

型后无字段数据。

1198-1340主叫—〉被叫

1214-1243 TSI信令

TSI信令的打包发送过程.TSI信令指出随后的FIF信息是发送终端的标识。

1214,1215见1156,1157

1216 data: v21: hdlc-data[C2]

FCF = 0xC2,

X100 0010

FCF域中X值:

收到DIS的终端会置X=1;反之,X=0。

在这个抓包中,主叫要发送进行设置就是1,被叫就是0。

1218—1239 data: v21: hdlc-data[04]

TSI与CSI 使用的数据编码方式相同,0x04也是接收到CSI中的数据信息。

1241 data: v21: hdlc—fcs—ok

1244—1262 DCS信令

DCS信令的打包发送过程, 是DIS信令标准能力的响应消息。

1244,1245见1153,1154.

1246 data: v21: hdlc-data[C1]

FCF =0xC1,

X100 0001, , 由于是主叫发出,所以X=1.

1248 data: v21: hdlc-data[00]

1249data: v21: hdlc—data[73]

1250data: v21: hdlc—data[15]

1251data: v21: hdlc—data[01]

1252data: v21: hdlc—data[01]

1253data: v21: hdlc-data[00]

DCS数据可参考DIS在T30协议中的同一张表,这里不再进行详细描述,可查询GB_T 3382.2

—2003 P39—47 表2或ITU T.30 09/2005 P52 Table 2

1255 data: v21: hdlc-fcs—ok 见1182

1258 data: v21: hdlc—sig—end 见1193

1274—1330 发送training数据

1274 t30ind: v29-7200—training

对应T30协议中训练检验(TCF)信号,本信号要求非HDLC 帧.

格式:1。5* (1±10%)s 的0串

1274—1329 data: v29-7200: t4-non-ecm—data

1274包的时间戳是112.14 秒,1329包的时间戳是113。64秒,其时间差正好是1。5秒,

符合协议.

T4-non-ecm-data表示不使用ECM或FEC发送T4过程数据.

1330data: v29—7200: t4—non—ecm-sig—end

t4—non-ecm-sig-end 表示不使用ECM或FEC发送T4过程数据的结束。

1346-1358被叫-〉主叫

1350—1355 CFR信令

1350,1351见1156,1157。

1352 data: v21: hdlc—data[21]

FCF = 0x21,

X010 0001, 由于是被叫发出,X=0

CFR信令表明全部报文前过程(B阶段)已结束,可以开始发送报文数据。

C阶段(报文发送阶段)

1362-3644 主叫—>被叫

1362-3616 发送第一页数据

数据格式可参考training数据格式。

3617—3641MOP信令

3632,3634见1156,1157。

3635 data: v21: hdlc—data[F2]

FCF = 0xF2

X111 0010, 由于是主叫发送,X=1.

MOP信令是多页信号,表示一完整传真信息页的结束,并在收到证实后返回到C阶段

的开始。

3637,3641见1182,1193。

3649—3662 被叫-〉主叫

3654—3659 MCF信令

3654,3655见1156,1157。

3656 data: v21: hdlc-data[31]

FCF = 0x31,

X011 0001,由于是被叫发送,X=0。

MCF信令表示已经满意地收到完整的报文,并可继续接收另外的报文,是MOP信令的

肯定响应。

3658,3659见1182,1193.

3666—6735 又发送了一页数据,同上分析。

6737—9793 主叫—>被叫

6737—9755 发送最后一页数据

9756—9737 EOP信令

9781,9782见1156,1157。

9783 data: v21: hdlc-data[F4]

FCF = 0xF4

X111 0100, 由于是主叫发送,X=1。

EOP信令是多页信号,表示一完整传真信息页的结束,并进一步表示不再发来文件,在收

到证实后进入阶段E。

9785,9789见1182,1193。

9799—9810 被叫—>主叫

9799—9810 MCF信令

见3654—3659。

MCF信令也可以是EOP信令的肯定响应.

问题1:HDLC消息的第一字节和最后一个字节Flag没有,why?

参考: 是在T38协议中使用了HDLC的消息格式,在IP层传输,而并不是在真正的数据

链路层进行数据传输,而且t38协议中也规定很多indicator可以表明HDLC消息的开始与结

束,所以Flag域就不需要了。

问题2:1159-1181 数据是0x04,在CSI编码表中不存在?

参考: 无.

发布评论

评论列表 (0)

  1. 暂无评论