MPTCP

MPTCP

MultiPathTCP(MPTCP)由網際網路工程任務組(IETF)MultiPath TCP工作組研發,其目的是允許傳輸控制協定(TCP)連線使用多個路徑來最大化信道資源使用。

2013年1月,IEFT發布了RFC 6824作為MPTCP的試驗標準。

基本介紹

  • 中文名:多路傳輸控制協定
  • 外文名:MultiPath TCP
  • 特點:為多宿設備提供傳輸級支持
  • 優點:接口兼容,基於傳統TCP
目的,協定介紹,實現結構,協定操作,參數設定,阻塞控制,特點小結,優勢,套用,實現,套用,和其他協定的比較,SCTP,IMS SIP,其他協定和實驗,RFC,相關連結,

目的

IPv6到來的時候,主機的多地址(Multihome)將會變得越來越普及。即使是廣泛使用的IPv4,Multihome host也越來越多了。從數據中心Fat-tree網路架構下的伺服器到具有4G/Wifi/3G/Bluetooth多連線的智慧型手機,都是多宿主機。但傳統的TCP並不能同時利用這些連線資源,因此要么使用2層的bond/trunk功能,要么只能建多條4層TCP連線,而MPTCP則可以為用戶提供透明的多路徑利用能力。MPTCP不再使用傳統TCP協定所要求的單個信道,而是支持冗餘信道資源的反向多路復用,將整個數據傳輸速率提高到所有可用信道的總和。與此同時,MPTCP還與傳統TCP協定向後兼容。

協定介紹

實現結構

MPTCP的實現主要分為三部分:
  • master subsocket
  • Multi-path control bock(mpcb)
  • slave subsocket
master subsock是一個標準的sock結構體用於TCP通信。mpcb提供開啟或關閉子通道、選擇傳送數據的子通道以及重組報文段的功能。slave subsocket對應用程式並不可見,他們都是被mpcb管理並用於傳送數據。

協定操作

MPTCP本身的工作方式與傳統TCP非常相似。在三路握手時,雙方交換MP_CAPABLE(見下文參數設定)選項標明雙方都支持MPTCP,之後雙方便都可以主動創建子連線(subflow),並且互換密鑰以防止攻擊者通過子連線注入攻擊。新的subflow可以通過帶有MP_JOIN標誌的SYN報文建立,也可以在任意時刻關閉。在雙方有多個subflow時,傳送者自行決定使用哪個subflow傳送數據,也可以將包裹拆分為多塊交由多個subflow同時傳送。
由於MPTCP提供與TCP相同的套接字接口,任何使用標準的TCP應用程式可以套用於MPTCP協定,以實現同時利用多個子連線傳播數據。
雖然與標準TCP工作方式很像,但是,MPTCP的核心思想是定義一種在兩個主機之間建立連線的方式,而不是在兩個接口之間(例如標準TCP)。在標準TCP中,連線應在兩個IP位址之間建立。每個TCP連線由標誌著源和目的地的地址和連線埠的四元組來標識。鑒於此限制,應用程式只能通過單個連線創建一個TCP連線,因此會出現兩個主機之間雖然可能同時建立了多個連線,但同一時刻只有單個連線被某個套用利用,而 Multipath TCP則允許連線同時使用多個路徑。為此,MultipathTCP在每個需要使用的路徑上創建一個稱為subflow的TCP連線。
詳細的協定規範在RFC 6824中提供。

參數設定

MPTCP使用的選項在RFC 6824中都有詳細描述。所有MPTCP選項都由IANA保留,並編碼為TCP選項。
MPTCP選項包括:類型(30),長度(不定),剩餘的內容以以一個 4-bit 的子類欄位開始。IANA已創建該欄位,並將其保留名為“MPTCP選項子類型”的子註冊表隸屬在“傳輸控制協定(TCP)參數”註冊表下。
這些子類型欄位定義如下:
Value
Symbol
Name
0x0
MP_CAPABLE
Multipath Capable
0x1
MP_JOIN
Join Connection
0x2
DSS
Data Sequence Signal
0x3
ADD_ADDR
Add Address
0x4
REMOVE_ADDR
Remove Address
0x5
MP_PRIO
Change Subflow Priority
0x6
MP_FAIL
Fallback
0x7
MP_FASTCLOSE
Fast Close
0xf
(PRIVATE)
Private Use
0x8~0xe之間的欄位目前還沒有分配。

阻塞控制

Multipath TCP目前已經定義了多個擁塞控制機制。它們與傳統的TCP擁塞控制方案的主要區別在於,它們需要對不同路徑上的擁塞做出反應,而不會對單路徑TCP源產生不公平的影響,這些TCP源可能在其中一條路徑上與它們競爭。 Linux核心中的Multipath TCP實現目前支持四路多徑TCP擁塞控制方案。
  • 連線增加算法(RFC 6356)
  • 機會連線增長算法
  • 基於 wVegas 延遲的擁塞控制算法
  • 平衡連線增長算法

特點小結

在RFC 6824中定義的不同的協定操作的目的是:
  • 處理何時以及如何添加/刪除路徑(例如,有的連線由於擁塞控制而被丟失了)
  • 與傳統的TCP硬體兼容(例如,某些防火牆,如果序列號不連續,可以自動拒絕TCP連線)
  • 定義不同鏈路和不同主機之間的公平擁塞控制策略(特別是不支持MPTCP的主機)
MPTCP為TCP傳輸增加了新的機制:
  • 子流系統,用於收集多個標準TCP連線(從一個主機到另一個主機的路徑)。子流在TCP三次握手期間被識別。握手後,應用程式可以添加或刪除一些子流(子類型欄位分別為0x3和0x4(見上表));
  • MPTCP DSS選項,包含數據序列號和確認號。這些序列號和確認號允許沒有任何損壞地以原始
  • 順序從多個子流接收數據(子類型欄位為0x2);
  • 一份修改過的重傳協定,以處理擁塞控制,增強數據傳輸可靠性;

優勢

MPTCP在無線網路環境中作用尤為突出。除了信道的反向多路復用機制帶來的的數據傳輸率的增益,當用戶進入或退出覆蓋範圍時,鏈路可以被添加或丟棄,不會中斷端對端TCP連線。這樣,鏈路切換的問題便通過傳輸層中的抽象,在端點處得到解決,而沒有用到網路或鏈路級的任何特殊處理機制。
MPTCP也在數據中心這樣的套用場景中體現出了性能優勢。與使用802.3ad鏈路聚合的乙太網信道綁定相反,Multipath TCP可以跨多個接口平衡單個TCP連線,從而達到非常高的傳輸效率。

套用

實現

2013年7月,MPTCP工作組報告了五個獨立的MPTCP實現,其中包括Linux核心中的參考實現。
當前可用的實現是:
在2014年7月,Oracle報告稱正在開發Solaris上的實現。
在IETF MPTCP 小組的會議上,SungHoon Seo宣布,KT自6月中旬以來一直在部署相關商業服務,允許智慧型手機用戶使用MPTCP代理服務達到1Gbit/s。

套用

雖然Multipath TCP是一個還比較年輕的技術,它已經部署了幾個用例:
  • SiriiPhoneiPadMac上使用MPTCP從而從一個無線網路無縫切換至另一個無線網路
  • 幾種類型的智慧型手機,特別是在韓國,使用多路徑TCP通過SOCKS代理綁定WiFi4G
  • 在多個國家和地區,MPTCP用於部署包含xDSL和3G/4G的混合接入網路
  • ...

和其他協定的比較

SCTP

SCTP(Stream Control Transmission Protocol)是一種較新的傳輸協定,與2000年在IETF得到標準化,它最初是為了滿足不斷增長的IP電話市場設計的。SCTP是一種可靠的面向訊息的協定,它在端點之間提供多個流,並為多宿提供傳輸級支持。然而它有2個主要缺點:1) 開發者需要修改套用層接口; 2) 當今網際網路架構中的middlebox,比如NAT防火牆,會阻止SCTP包。而這些middlebox對TCP包是開放通行的。基於這點,IETF於2011年推出Multipath TCP,基於傳統TCP協定提供多路徑通信。

IMS SIP

在IP多媒體子系統(IMS : IP Multimedia Subsystem)架構中,會話發起協定(SIP : Session Initiation Protocol)可以支持並發使用多個聯繫人IP位址來註冊一個或多個IMS用戶代理。這允許創建多個IMS信令路徑。在這些信令路徑上,信令訊息攜帶會話描述協定(SDP)訊息傳送以協商媒體流。 SDP允許通過多個路徑(重新)協商一個媒體會話的流,使得套用層多路徑傳輸。從這個角度來看,IMS可以提供具有流粒度和並發訪問的套用層多徑支持。 IETF目前正在討論實時傳輸協定(RTP)的多徑擴展。多路RTP可以通過並發訪問和移動性(通過IMS,SDP信令或RTP控制協定)提供流粒度。

其他協定和實驗

在會話層,移動接入路由器項目於2003年通過異構技術的多個無線接入進行了實驗,透明地平衡了它們之間的流量,以回響每個接入路由器的感知性能。
用於通過利用HTTP範圍請求來啟動與複製內容的多個伺服器的連線的並行訪問方案不等同於多路徑TCP,因為它們涉及套用層,並且限於已知大小的內容。

RFC

  • RFC 6181 - 用於具有多個地址的多路徑操作的TCP擴展的威脅分析
  • RFC 6182- 多路徑TCP開發的架構指南
  • RFC 6356- 多路徑傳輸協定的耦合擁塞控制
  • RFC 6824 -具有多個地址的多路徑操作的TCP擴展
  • RFC 6897-MPTCP套用接口注意事項
  • RFC 7430 -MPTCP的殘留威脅和可能修復的分析

相關連結

  • 傳輸協定比較
  • linux 核心 MPTCP工程
  • MPTCP的實現

相關詞條

熱門詞條

聯絡我們