杜旻翔
摘要摘要:超文本傳輸安全協議(Hypertext Transfer Protocol Secure,HTTPS)是近年來快速發展的網絡安全技術,具有網絡身份認證、數據傳輸加密功能。提出對HTTPS優化的思路,針對HTTPS底層的TCP協議中的TIME_WAIT參數進行分析,研究TCP特性對TLS性能的影響,并建立數學模型。研究在不同TIME_WAIT時長、不同網絡環境下,TIME_WAIT參數對用戶響應延時、服務器吞吐率、網絡效益、平均訪問時間等參數的影響。
關鍵詞關鍵詞:安全傳輸層協議;安全超文本傳輸協議;TIME_WAIT;傳輸控制協議
DOIDOI:10.11907/rjdk.162886
中圖分類號:TP393
文獻標識碼:A文章編號文章編號:16727800(2017)005015503
0引言
互聯網無處不在,所有的網頁訪問都通過HTTP協議進行,但其并不具有數據安全保障功能,該協議在安全方面最大的問題是數據明文傳輸,通過簡單抓包就能獲取隱私數據。HTTPS應用廣泛,Google、Facebook、Twitter等都支持HTTPS服務,各大互聯網公司的核心業務都在大范圍應用HTTPS。在此背景下,高并發量、高性能的HTTPS服務研究更具現實意義[1]。安全模塊的引入使網絡訪問資源消耗增大、速度變慢,如何對超文本傳輸安全協議進行優化是目前研究熱點之一[2]。 通過優化HTTPS協議中的TLS協議與底層的TCP/IP協議能夠實現HTTPS服務性能優化。
基于網絡安全的結構模型,本文重點分析TIME_WAIT參數在不穩定的網絡環境下對超文本傳輸安全協議性能的影響與優化。
1網絡模型
網絡安全結構模型如圖1所示,構成安全超文本傳輸協議握手過程如圖2所示,傳輸控制協議連接過程如圖3所示,關閉過程如圖4所示。圖1表示了研究對象在整體結構中所處的位置,圖2在實際連接過程中位于圖3和圖4之間,是相互依賴承接的關系[3] ,本文分析的重點是TIME_WAIT對服務器性能及后續連接操作的影響。
總延時等于中介協議訪問延遲之和,見式(1):
di(t)=di(tcp3)+di(tls)+di(tcp4)+di(rep)(1)
在四層網絡結構中,TLS協議介于Application Lay和Transport Lay之間。其中Transport Lay中的TCP/UDP協議同時也是TLS協議基礎[4],針對底層進行上層優化。在TCP協議完成握手之后進入HTTPS握手階段,圖2是圖3與圖4的中間過程。本文研究的內容就是在圖3和圖4所示建立連接與關閉連接過程中,參數的等待狀態時間長度對服務器的影響。
2基于可變參數的服務器狀態分析
2.1數學建模
首先對過程進行描述,關閉過程:A發送CLOSE請求到B,A→TIME_WAIT狀態;接收到請求之后B→CLOSE_WAIT狀態并發送FIN_WAIT到A;接收到FIN_WAIT之后A發送ACK到B→CLOSED,結束。最后一個ACK狀態由主動關閉連接的一段發出,并且在發出之后進入TIME_WAIT狀態。如果ACK狀態丟失,B端會重新發出FIN請求ACK,保證全雙工連接終止[5]。如果所有的TCP連接都由服務器端關閉,則每個連接都會保持一個TIME_WAIT(后文使用TW代稱)狀態并持續兩個最大分節生命周期。
假設并發數為N,記TW時長為t,服務器可承載并發總量為m1,經過n(n>0)次TW狀態之后可用并發數為m2,任意p時間可用并發數m=m1+m2,時長t以秒為單位,按照規定可知t∈[0,240]??蛻舳嗽L問的時間間隔為t2,對于socket pair是否重新建立連接存在兩種情況:①在客戶端建立連接時間間隔長于TW時間的時候可以重用端口;②在時間間隔長于TW時間時必須調用新的端口建立連接,這兩種情況表示如下:
0≤t≤t2=>t∈[0,t2](2)
t2≤t≤240=>t∈[t2,240](3)
TW對網絡、服務器的性能影響主要關注4個指標:
(1)網絡連接效率:當用戶數為N時,在正常流程下有效連接占全部連接的數據比例。
(2)可用并發數:單位時間內可建立連接的用戶數量。
(3)TFA(time-to-first-ack):用戶首次關閉連接耗時。
(4)TSA(time-to-second-ack):用戶再次關閉連接耗時。
這里,每次訪問的客戶端數量為N,批次訪問數為k,訪問時間間隔為t2,假定TW狀態全部產生在服務器端。
2.2式(2)條件下討論
數據發送次數(假定每次連接時長都穩定相同的情況下)= T/t1,網絡連接效率見式(2)。顯然在WT時間小于網絡傳輸間隔時,傳輸效率與服務器可承載的連接數m1有關。可見在t∈[0,t2]情況下,TW參數不會對服務器負載產生影響,但是t2時間是不穩定的,所以t的值應該盡可能小。
m1*T/t2N*T/t2 =m1/N(4)
可用并發數在TW階段,每個TW狀態都會占用一個可用連接,故可用并發數和t成反比。
對于TFA延時, FIN發送與ACK返回的時間受網絡環境影響,按照目前的網絡設備與網絡環境而言,首次請求丟包的可能性很小。如果首次請求產生丟包,這個概率取決于通信質量和網絡繁忙程度。由于CLOSE動作的報文長度是固定的,所以TW于TFA基本沒有關聯,不同的TW基本不會影響TFA的時間。對于TSA延時,在網絡條件穩定的環境下,這個延時指接收第二個FIN消息并進行ACK返回實現全雙工關閉[6]。如果TW狀態存在時間小于FIN數據包接收到的時間節點,或者狀態維持不到ACK丟失之后重新請求的時間階段,在B端請求重發ACK的時候A端發送RST數據,導致B端進行錯誤連接;另一種情況是連接混淆。A端正常終止之后,仍然接收到B端相同端口和句柄的數據組重復報文,此時的A端如果有新的連接建立就會導致連接混淆。
2.3 式(3)條件下討論
網絡連接效率見式(3),顯然t參數越小網絡連接效率越高。當t∈[t2,240]時,t越小越好,最優值應該為t2。
m1*T/tN*T/t2 =m1*t2/(N*t)(5)
對于TFA延時,在網絡穩定的環境下,不同的TW基本不會影響TFA時間。對于TSA延時,在網絡穩定的環境下,仍然會有全雙工以及RST導致的錯誤連接問題,只要在t=240時,2MSL的時長就可保證因路由器異常而延緩的數據包在網絡中消逝,避免連接混淆問題。
3仿真驗證
測試環境使用模擬環境,在TLS協議上進行改進,并完成協議的編譯和調試??蛻舳谁h境參數為:OS X 10.11 Beta操作系統、4核Intel Core i5 2.6GHz CPU、8G內存、HTTPS服務器與靜態Web服務器。按照壓力測試工具基本設計思路和原則進行測試。實驗參數為相同的請求次數、客戶端數量、請求時間間隔,比對服務器上的數據吞吐率、可用連接數、并發連接數、并發用戶數、用戶平均請求時間、服務器平均請求等待時間等參數。
實驗步驟:啟動HTTPS服務,使用digitalocean上1Mbps帶寬服務器,保持1 000個連接100個客戶端間隔5s請求服務器進行5次請求,觀察服務器吞吐率、并發連接數、并發用戶數、用戶平均請求時間、服務器平均請求等待時間等參數變化。按照時間間隔記錄實驗數據,再修改TIME_WAIT參數,分別按照10、30、120、240進行對照實驗。觀察服務器吞吐率、并發連接數、并發用戶數、用戶平均請求時間、服務器平均請求等待時間等參數變化,如圖5-7所示。
隨著單次實驗內請求次數增加,最長連接耗時從9 404ms逐步上升至38 883ms,在這個過程中,服務器中的TIME_WAIT數量從0逐步上升至1 649,并在達到2 048后開始下降,下降的時間節點在請求結束之后。
在修改TIME_WAIT時間長度值之后,服務器各項指標都隨著TIME_WAIT時間長度的變化而變化,以第一次實驗數據作為基準數據,記錄之后參數的變化。
4結語
本文討論了TIME_WAIT時間長度對服務器性能指標的影響,從兩種不同的場景進行了分析。
一般場景下,TIME_WAIT的時間長度在[0, t2]時服務器可用并發量最優,TIME_WAIT時間長度越短,吞吐率、并發連接數、平均響應時間都可達到較優秀的結果。
在移動網絡環境中對TCP/IP進行優化,考慮傳輸過程中數據包的穩定性傳輸問題[7],TIME_WAIT的時間長度依然符合以上論述,但這時需要更多地考慮網絡環境對數據包傳輸的影響,弱網絡會導致數據包在網絡中有更多的丟包和錯誤,導致協議結束時產生更多的不確定性。因此,TIME_WAIT時長與網絡的狀況優劣成反比。
參考文獻參考文獻:
[1]NAYLOR D, FINAMORE A, LEONTIADIS I, et al. The cost of the s in https[C].Proceedings of the 10th ACM International on Conference on emerging Networking Experiments and Technologies. ACM, 2014: 133140.
[2]BLAKE WILSON S, MOELLER B, GUPTA V, et al. Elliptic curve cryptography (ECC) cipher suites for transport layer security (TLS)[EB/OL]. http://www.faqs.org/rfcs/rfc4492.html.
[3]徐偉.TCP協議的性能建模研究[D].合肥:中國科學技術大學,2012.
[4]DIERKS T. The transport layer security (TLS) protocol version 1.2[EB/OL]. https://tools.ietf.org/html/rfc5246.
[5]何泉.在繁忙服務器上避免TCPTIME_WAIT狀態的研究[J]. 小型微型計算機系統,2000 (6):600602.
[6]李天科,劉正歧. 2MSL等待狀態及應用分析[J]. 計算機與數字工程,2011 (12):115118.
[7]MORRIS R. Scalable TCP congestion control[J]. Proceedings IEEE INFOCOM, 1970, 3(5):11761183.
責任編輯(責任編輯:杜能鋼)