# 協議僵化
# 協議僵化(Ossification)
互聯網(Internet)——多個網絡互聯之網。為了保證互聯網工作正常,我們需要在互聯網各處搭建各種設備。這些在互聯網上分布式架設的設備被稱為中間設備(middle-box)。傳統網絡傳輸中兩個端點之間的中間設備服務于網絡數據傳輸過程。
這些中間設備有著許多、各式各樣的用途和目的,我們簡單來說,這些設備是為了實現放置人在該位置所要完成的特定目的而安置。
中間設備的目的包括:在網絡之間轉發(路由)數據包、阻擋惡意流量、執行地址轉換(NAT)、提升性能、監視流量等等。
為了完成這些目的,這些設備必須了解網絡以及它們所要監視或修改的數據包協議。它們為此依賴于一些軟件——一些很少升級的軟件。
雖然這些設備是將互聯網“粘”在一起的關鍵元素,但是它們經常跟不上最新的技術。網絡的核心部分與邊緣部分(客戶端、服務器)相比,更新很慢。
所以當這些設備決定了經過的流量是否合格時,就有些問題了——在這些設備部署之后的一段時間里,協議有了新的特征。而在這些設備引入(了解)這些新特性之前,它們會認為這種特征的數據包是非法的、惡意的,于是會將這種流量直接扔掉,或是拖延到用戶不再想使用這些新特征的程度。
這種問題就被稱之為“協議僵化”。
協議僵化也影響了TCP協議的改變:當客戶端與遠程服務器之間的某些中間設備檢測到對于它們來說未知的新的TCP選項時,中間設備將攔截這些流量,因為它們不知道這些選項的作用。如果中間設備監測了協議的實現細節,它們會學習到協議的典型行為,在一段時間后,這些行為變得沒法更改。
盡可能將通信加密是對抗僵化的唯一有效手段,加密可以防止中間設備看到協議傳輸的絕大部分內容。