MPTCP包結構

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章