TCP 透明代理分為兩個(gè)部分:發(fā)送方透明代理和接收方的透明代理,兩方面的透明代理是相互對(duì)等的。
用戶在客戶端發(fā)起應(yīng)用或者業(yè)務(wù)的請(qǐng)求,數(shù)據(jù)經(jīng)過(guò)網(wǎng)絡(luò)協(xié)議的封裝分片后,發(fā)送的數(shù)據(jù)以 ip 報(bào)文的形勢(shì)經(jīng)過(guò)局域網(wǎng)內(nèi)的各級(jí)路由,最后到達(dá)發(fā)送方的廣域網(wǎng)的出口節(jié)點(diǎn)處,這時(shí)數(shù)據(jù)要經(jīng)過(guò)廣域網(wǎng)加速系統(tǒng),系統(tǒng)的 TCP 透明代理發(fā)送方在這個(gè)階段發(fā)生作用,截取用戶的發(fā)送的數(shù)據(jù),通過(guò) ipq 的相關(guān)功能既可以實(shí)現(xiàn)。截取到需要加速的數(shù)據(jù)后,把數(shù)據(jù)發(fā)送給壓縮處理模塊,壓縮處理模塊經(jīng)過(guò)壓縮后,然后再把壓縮的數(shù)據(jù)回傳給 TCP 透明代理的發(fā)送模塊。TCP 透明代理的發(fā)送模塊負(fù)責(zé)把接收到的壓縮后的數(shù)據(jù),重新封裝成 IP 報(bào)文,然后發(fā)送到廣域網(wǎng)中。
數(shù)據(jù)在經(jīng)過(guò)廣域網(wǎng)加速系統(tǒng)前,數(shù)據(jù)量大,傳輸耗費(fèi)時(shí)間長(zhǎng),經(jīng)過(guò)廣域網(wǎng)網(wǎng)加速系統(tǒng)后,數(shù)據(jù)的流量變小,減少的數(shù)據(jù)傳輸消耗的時(shí)間,從而達(dá)到加速的效果。壓縮后的數(shù)據(jù)經(jīng)過(guò)廣域網(wǎng)后到達(dá)用戶請(qǐng)求的目的網(wǎng)絡(luò)的局域網(wǎng)的入口節(jié)點(diǎn)處,從廣域網(wǎng)流入的數(shù)據(jù)先經(jīng)過(guò)接收方的廣域網(wǎng)加速系統(tǒng),加速系統(tǒng)的 TCP 透明代理模塊負(fù)責(zé)接收到 IP 報(bào)文,并且把經(jīng)過(guò)壓縮的數(shù)據(jù)解壓縮,解壓縮后的數(shù)據(jù)經(jīng)過(guò)重新的封裝后在發(fā)送到局域網(wǎng)中,經(jīng)過(guò)各級(jí)路由后,最終到達(dá)用戶訪問(wèn)的地址。
同樣從服務(wù)端提供給客戶端的數(shù)據(jù),也是先經(jīng)過(guò)各級(jí)路由后達(dá)到出口節(jié)點(diǎn),經(jīng)過(guò)廣域網(wǎng)加速系統(tǒng)的時(shí)候,被 TCP 透明代理截獲 IP 報(bào)文,并進(jìn)行解析數(shù)據(jù),然后把數(shù)據(jù)壓縮后,重新封裝成 IP 報(bào)文,然后發(fā)送到廣域網(wǎng)中。數(shù)據(jù)經(jīng)過(guò)廣域網(wǎng)傳輸后,再次到達(dá)客戶端所在的局域網(wǎng)的入口節(jié)點(diǎn),如果節(jié)點(diǎn)處的廣域網(wǎng)加速系統(tǒng)截獲數(shù)據(jù)后解析出壓縮數(shù)據(jù),然后又壓縮解壓模塊負(fù)責(zé)解壓縮,得到原始未經(jīng)壓縮的數(shù)據(jù),因?yàn)榇罅繑?shù)據(jù)在局域網(wǎng)中傳輸速度認(rèn)為是很快的,所以在入口處進(jìn)行解壓操作不影響傳輸?shù)乃俣龋紨?shù)據(jù)重新進(jìn)行分片封裝后,發(fā)送到客戶端的地址,完成服務(wù)端數(shù)據(jù)向客戶端數(shù)據(jù)的回傳。
上面的代理工作流程能夠看出,發(fā)送方的代理同時(shí)需要具有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的功能,需要同時(shí)能夠接收經(jīng)過(guò)壓縮的數(shù)據(jù)與未經(jīng)過(guò)壓縮的數(shù)據(jù),接收 ipq 攔截到得基于 TCP 協(xié)議的 ip 數(shù)據(jù)包,進(jìn)行存儲(chǔ),這些 ip 數(shù)據(jù)包存儲(chǔ)的形式是隊(duì)列的形式,按照 ip 頭部的確認(rèn)序號(hào)進(jìn)行排序存儲(chǔ),進(jìn)行排序存儲(chǔ)的目的是壓縮后重新分片的時(shí)候仍然保持按序的,在解壓方的代理收到的時(shí)候能夠進(jìn)行正確的解壓,還原出確認(rèn)序號(hào)。
對(duì)于亂序到達(dá)的 ip 數(shù)據(jù)包,也存儲(chǔ)到一個(gè)保存亂序數(shù)據(jù)包的隊(duì)列中。發(fā)送代理把保存在隊(duì)列中的數(shù)據(jù)包進(jìn)行收集,分析其中的數(shù)據(jù)段,同時(shí)去除掉頭部的信息,然后把數(shù)據(jù)部分存儲(chǔ)到一個(gè)大的內(nèi)存緩沖區(qū)中,供壓縮替換程序使用。在壓縮程序壓縮完成后,數(shù)據(jù)需要被重新分片成為 ip 數(shù)據(jù)包,進(jìn)行發(fā)送。這個(gè)時(shí)候被重新分片的數(shù)據(jù)包也保存在一個(gè)發(fā)送隊(duì)列中。接收方的代理不但能接收發(fā)送方代理發(fā)送過(guò)來(lái)的經(jīng)過(guò)壓縮的數(shù)據(jù),然后解壓出原始數(shù)據(jù)發(fā)送到目的地址,也要能接收來(lái)自目的地址,或者源地址的原始數(shù)據(jù),壓縮封裝后,發(fā)送到廣域網(wǎng)中。因此,發(fā)送方的代理與接收方的代理是處于對(duì)等地位的,任何一個(gè)廣域網(wǎng)加速系統(tǒng)既可以是發(fā)送方,也可以是接收方。
田鑫,專業(yè)的企業(yè)組網(wǎng)服務(wù)商,致力于為企業(yè)提供企業(yè)組網(wǎng)(SD-WAN、MPLS、云互聯(lián)),業(yè)務(wù)云化、數(shù)據(jù)中心、網(wǎng)絡(luò)安全、行業(yè)IT解決方案等相關(guān)服務(wù)。
更多相關(guān)內(nèi)容推薦:
什么是廣域網(wǎng)?廣域網(wǎng)優(yōu)化是什么意思?
廣域網(wǎng)加速原理,廣域網(wǎng)如何進(jìn)行加速?
廣域網(wǎng)加速系統(tǒng)中,數(shù)據(jù)存儲(chǔ)在 TCP 透明代理模塊的研究(一)
廣域網(wǎng)加速系統(tǒng)中,數(shù)據(jù)存儲(chǔ)在 TCP 透明代理模塊的研究(二)