mptcp包结构


http://www.cnblogs.com/zhuting/p/5969617.html


TCP/IP数据包

MPTCP是常规TCP协议的扩展,想要了解MPTCP数据包,首先得了解常规的TCP包。

如上图所示,为TCP/IP的数据包格式,TCP/IP数据包分为四大块:黄色的数据链路层头部,蓝色的IP头部,紫色TCP头部,还有最后的数据报内容。

详细内容参考http://blog.csdn.net/alexander_xfl/article/details/17412223

TCP头部选项

头部选项在TCP头部和数据包内容之间,一个TCP包可能没有头部选项,也可能同时有好几个头部选项。TCP头部选项的格式如下,通过kind字段区分不同的头部选项。

2013年,RFC6824将kind=30分配给了MPTCP。

红色标注的部分为RFC组织在2013年新标准化的选项字段,在做包解析的时候,根据TCP头部选项的kind值就可以判断该包是否为MPTCP包了。

MPTCP包结构

MPTCP选项的典型结构为

其中,kind字段表示该头部选项为MPTCP头部选项,kind=30。Length字段表示该头部选项的长度,subtype选项表示该MPTCP选项的子类型,剩下的字节则为该子类选项的具体数据。根据subtype值的不同,MPTCP选项的子类型有以下几种

每个MPTCP选项子类对应的结构为:

0x0:MP_CAPABLE

0x1:MP_JOIN

0x2:DSS

0x3:ADD_ADDR

0x4:REMOVE_ADDR

0x5:MP_PRIO

0x6:MP_FAIR

0x7:MP_FASTCLOSE



原文地址:https://www.cnblogs.com/ztguang/p/12645096.html