SCTP ABORT报文
SCTP端点发送ABORT数据块来中止到对等端的偶联,ABORT数据块中可以包含原因参数用来通知接收ABORT数据块的一方中止该偶联的原因。
DATA数据块不能同ABORT数据块捆绑在一个SCTP分组中。
控制数据块(除INIT、INIT ACK和SHUTDOWN COMPLETE)均可以同ABORT进行捆绑在一个SCTP分组中,但这些控制块都应放在SCTP分组中的ABORT数据块之前,否则这些控制数据块将被接收方忽略。
如果一个端点收到了格式错误或与不存在的偶联相关的ABORT消息,则应当舍弃该消息。此外,在任何情况下,端点收到一个ABORT消息后,都不能通过发送ABORT消息作为响应。
一、 SCTP ABORT报文格式
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
+-------------------------------+-------------------------------+ ---
| Source Port Number | Destination Port Number | ^
+-------------------------------+-------------------------------+ |
| Verification Tag | Common Header
+---------------------------------------------------------------+ |
| Checksum | V
+---------------+-------------+-+-------------------------------+ ---
| Type = 6 |Reserved |T| Length |
+---------------+-------------+-+-------------------------------+
| zero or more Error Causes |
+ +
| ... ... |
+---------------------------------------------------------------+
二、 SCTP ABORT报文格式释义
字段 | 长度 | 描述 |
---|---|---|
Source Port Number | 16比特 | 源端口号,识别SCTP发送端点的SCTP端口号。接收方可以使用源端口号、源IP地址、目的端口号和目的IP地址标识该SCTP分组所属的偶联。 |
Destination Port Number | 16比特 | 目的端口号,为目的端点的SCTP端口号。接收主机可以使用目的端口号将SCTP分组复用到正确的端点或应用中。 |
Verification Tag | 32比特 |
验证标签是偶联建立时,本端端点为这个偶联生成一个随机标识。偶联建立过程中,双方会交换这个TAG,到了数据传递时,发送端必须在公共分组头中带上对端的这个TAG,以备校验。 在包含ABORT数据块的分组中,验证标签必须要从触发这个ABORT发送的分组中复制。 |
Checksum | 32比特 | SCTP通过对用户数据使用ADLER-32算法,计算出一个32位的校验码,带在数据报中,在接收端进行同样的运算,通过检查校验码是否相等来验证用户数据是否遭到破坏。 |
Type | 8比特 | Type=6:中止(ABORT) |
Reserved | 7比特 | 在发送方设置为全0,并在接收方忽略。 |
T | 1比特 | 当发送方有一个TCB被破坏时则该T比特设置为0,如果发送方没有TCB,则把该比特设置为1。 |
Length | 16比特 | 设置为该数据块的长度,包括数据块头和所有包含的差错原因字段。 |
zero or more Error Causes | 变长 | ABORT数据块还可以包含0个或多个差错原因参数。 |
三、SCTP ABORT报文示例
Frame 1: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
Encapsulation type: Ethernet (1)
Arrival Time: Aug 18, 2011 16:09:25.809661000
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1313654965.809661000 seconds
[Time delta from previous captured frame: 0.000000000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]
[Time since reference or first frame: 0.000000000 seconds]
Frame Number: 1
Frame Length: 64 bytes (512 bits)
Capture Length: 64 bytes (512 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:sctp]
[Coloring Rule Name: SCTP ABORT]
[Coloring Rule String: sctp.chunk_type eq ABORT]
Ethernet II, Src: 00:0f:e2:d5:c5:29 (00:0f:e2:d5:c5:29), Dst: 00:25:9e:17:0d:85 (00:25:9e:17:0d:85)
Destination: 00:25:9e:17:0d:85 (00:25:9e:17:0d:85)
Address: 00:25:9e:17:0d:85 (00:25:9e:17:0d:85)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Source: 00:0f:e2:d5:c5:29 (00:0f:e2:d5:c5:29)
Address: 00:0f:e2:d5:c5:29 (00:0f:e2:d5:c5:29)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Type: IP (0x0800)
Padding: 000000000000
Frame check sequence: 0xa89c09f1 [correct]
[FCS Good: True]
[FCS Bad: False]
Internet Protocol Version 4, Src: 10.168.168.9 (10.168.168.9), Dst: 10.21.112.2 (10.21.112.2)
Version: 4
Header Length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..00 = Explicit Congestion Notification: Not-ECT (Not ECN-Capable Transport) (0x00)
Total Length: 40
Identification: 0x5c7a (23674)
Flags: 0x02 (Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 61
Protocol: SCTP (132)
Header checksum: 0x5c0e [validation disabled]
[Good: False]
[Bad: False]
Source: 10.168.168.9 (10.168.168.9)
Destination: 10.21.112.2 (10.21.112.2)
[Source GeoIP: Unknown]
[Destination GeoIP: Unknown]
Stream Control Transmission Protocol, Src Port: diameter (3868), Dst Port: 3876 (3876)
Source port: 3868
Destination port: 3876
Verification tag: 0x0bbf238b
[Assocation index: 0]
Checksum: 0x4f4f2668 (not verified)
ABORT chunk
Chunk type: ABORT (6)
0... .... = Bit: Stop processing of the packet
.0.. .... = Bit: Do not report
Chunk flags: 0x00
.... ...0 = T-Bit: Tag not reflected
Chunk length: 8
User initiated ABORT cause
Cause code: User initiated ABORT (0x000c)
Cause length: 4
发表评论