SCTP协议具有以下格式的软件包: -源端口号 -目标端口号 -验证标签 -校验和 -N个块
我正在尝试编写协议的低杠杆解析器,但我不知道如何确定SCTP包中的块数。 谢谢!
答案 0 :(得分:0)
您需要解析块头。每个字段在8位类型和8位标志字段之后都包含一个16位长度字段。请记住,SCTP中的所有数字值都是网络字节顺序(大端)。
块字段记录在RFC 4960 section 3.2中:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk Type | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Chunk Value /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
块在SCTP Common Header Field Descriptions之后开始。
通过阅读“块长度”字段,您可以跳过其有效负载并找到下一个块的开始。重复执行此操作,直到到达IP数据包的末尾。
块的长度包括构成类型,标志和长度字段的四个字节。