iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Modern Web

快還要更快,讀作 quick 的下一代傳輸層協定: QUIC系列 第 15

【Day 15】Connection Migration(一): 簡介

  • 分享至 

  • xImage
  •  

前言

前面花了不少篇幅介紹關於 Connection ID 的議題,今天要來說明 Connection ID 真正的用處 - Connection Migration

在以前 TCP 時期一條 TCP 連線是由 (Source IP, Source port, Destination IP, Destination Port) 組成,只要其中一個元素改變,就必須要重啟一條新的連線。

在現代行動裝置盛行的生活環境,IP 位置可能經常會發生變化,走進一個 Wi-Fi 覆蓋範圍,離開那個範圍都會使手機端的 IP 發生變動。如果是走 TCP 協定的應用程式在這種情況就會頻繁的建立新連線,對用戶的體驗極度不適。

QUIC 針對這個問題提出的解決方案就是 Connection Migration,不再透過四元組識別使用者,而是利用 Connection ID 來識別,避免更改 IP 就會重啟連線。

這個特性我認為是 0-RTT 連線之後 QUIC 的另一大特色,也符合 QUIC 建立的精神,快,讓用戶的使用體驗提昇。

簡介

Connection Migration 是一個強大的武器,藉由 Connection ID 可以使 QUIC 不看四元組的情況下識別 Client 的身份,在介紹 Connection Migration 之前需要先討論一些禁止事項。

在 Handshake 流程還沒有完成以前,是不能觸發 Connection Migration 機制的,如果建立連線的過程中傳輸了 disable_active_migration 參數,傳送該參數的一端在後續發送封包時不得使用新的 address,

Connection Migration 是非常強大的機制,但因為牽扯到狀態管理,所以基本流程外,每間大公司實作的機制都會有些許差異,後續幾天的介紹主要會講解 RFC9000 中簡述的流程,實際上整個流程有很多彈性調整空間,可以根據使用場景不同進行客製化。


上一篇
【Day 14】Address Validation 機制(二): 透過 Retry packet 傳送 token
下一篇
【Day 16】Connection Migration(二): Path Validation
系列文
快還要更快,讀作 quick 的下一代傳輸層協定: QUIC23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言