999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

IPv6在線代理的設計與實現

2013-01-01 00:00:00廖慶偉田志宏
智能計算機與應用 2013年4期

收稿日期:2013-05-09

基金項目:國家重點基礎研究發展計劃(973)(2011CB302605);國家高技術研究發展計劃(863)(2011AA010705, 2012AA012506);

國家自然科學基金(61173145,61202457)。

作者簡介:廖慶偉(1988-),男,廣西柳州人,碩士研究生,主要研究方向:網絡與信息安全;

田志宏(1978-),男,黑龍江哈爾濱人,博士,副教授,主要研究方向:入侵檢測、監聽和主動防御、云計算等。

IPv6在線代理的設計與實現

廖慶偉, 田志宏(哈爾濱工業大學 計算機科學與技術學院, 哈爾濱 150001)摘要:互聯網發展到今天IPv4的地址空間已經不能滿足需求了,IPv6相對于IPv4具有很多優勢,IPv6取代IPv4是必然的。在這個取代過程中,解決好IPv4和IPv6共存期間資源共享問題是非常重要的。提出了一種WEB服務中IPv4和IPv6兼容的方法,并通過實現在線代理來解決IPv4和IPv6的資源互訪。代理服務器能很好地將客戶端瀏覽器發來的請求轉發到目的服務器,并能夠獲取網頁傳送給客戶端瀏覽器。

關鍵詞:IPv6; 代理服務器; NGINX; 互通技術

中圖分類號:TP393 文獻標識碼:A文章編號:2095-2163(2013)04-0062-03

Design and Realization of the IPv6 Web Proxy

LIAO Qingwei, TIAN Zhihong

(School of Computer Science and Technology,Harbin Institute of Technology,Harbin 150001,China)

Abstract:Nowadays the address space of IPv4 can’t meet the demand by the development of the Internet.IPv6 has more advantages than IPv4, it is inevitable that IPv6 replaces IPv4. In the replacement process, to solve the IPv4 and IPv6 coexistence period resource sharing problem is very important. This paper presents a Web services in IPv4 and IPv6 compatible and solves the IPv4 and IPv6 resources visiting problem by Web Proxy. The Proxy server can forward the request to the destination server which the client browser send to, and can get website pages and send the pages to the client browser.

Key words:IPv6; Proxy server; NGINX; Interworking Technology

0引言

隨著當今社會向著數字化進程發展速度的不斷加快,Internet的覆蓋面、用戶量,以及業務量均呈指數級增長,現在的IPv4無論從計算機自身的發展,從Internet的規模、網絡傳輸速率、還是服務質量(QOS)、傳輸安全性等方面來看,都已與當前發展不再適用。其存在的主要問題是:

(1)32bit的IP地址很快就要告罄,隨著電子及網絡技術的發展,計算機網絡必將進入日常生活,甚至身邊的每一樣東西都需要連入全球因特網,IPv4的地址空間將無法滿足這些需求;

(2)網絡的服務質量(Qos)和安全性已難以滿足用戶不斷增長的各類需求[1]。

IPv6是在1999年完成由IETF提出的協議審定和測試的下一代Internet協議,與IPv4相比,IPv6具有如下優勢:

(1)IPv6的地址空間更大;

(2)IPv6的路由表更小;

(3)IPv6增加了組播(Multicast)的增強支持以及控制流(Flow Control),這使多媒體應用在網絡上獲得了發展契機,為網絡中的服務質量(QoS)控制提供了更好的平臺;

(4)IPv6增加了支持自動配置(Auto Configuration)的功能;

(5)IPv6具有更高的安全性;

(6)允許擴充;

(7)更好的頭部格式;

(8) 新的選項。

綜上所述,相對于IPv4,IPv6具有諸多優勢,由其取代IPv4已是發展的必然。但是,存在眾多因素將導致該取代過程極為漫長。網絡應用是物聯網發展的強大動力,在這個取代過程中,網絡應用如何平穩地過渡更將是一大難題,所以,妥善解決IPv4和IPv6共存期間的資源共享問題已日顯重要,目前的解決方法大多是采用過渡技術[2-3]使應用服務同時獲得在IPv4和IPv6的網絡上生存。本文提出并實現了一種WEB服務中IPv4和IPv6兼容的方法,即通過實現在線代理來解決IPv4和IPv6的資源互訪。

1系統模型的設計

1.1代理服務器

代理服務器的功能就是為網絡用戶提供代理去取得網絡信息。形象地說,也就是網絡信息的中轉站。代理服務器好象一個大的Cache,因此能顯著提高瀏覽速度和效率。

IPv4環境下的用戶無法訪問IPv6的網址,此在線代理將要實現:用戶可以通過IPv4環境下的客戶端瀏覽器訪問一個web頁面,頁面中間有一個輸入框,用戶輸入想要訪問的網址,客戶端向代理服務器發送http請求,代理服務器采用IPv6過渡技術將目標網址的頁面獲取下來,再將獲取的頁面傳送給客戶端瀏覽器。代理服務器模型如圖1所示。

1.2系統模塊結構

系統由3個主要模塊組成,分別是界面模塊、nginx后臺模塊和代理模塊。用戶通過界面模塊向后臺模塊發送http請求,后臺程序獲取URL后發送至代理模塊,代理模塊即向服務器發送http請求獲取頁面,具體系統模塊結構如圖2所示。

2系統的實現

2.1Nginx后臺模塊

(1)NGINX

Nginx是一個高性能的Web和反向代理服務器,具有眾多優越特性,諸如:Nginx在反向代理、支持FastCGI、Rewrite規則、穩定性、靜態文件處理、內存消耗等方面,均表現出了搶眼的優勢。選用Nginx取代傳統的Apache服務器,將會獲得多方面的性能提升[4-5]。第4期廖慶偉,等:IPv6在線代理的設計與實現智能計算機與應用第3卷

在Nginx中實現http請求,具體到Nginx中的數據結構則是ngx_http_request_t。ngx_http_request_t是對一個http請求的封裝。可以知道,一個http請求,包含請求行、請求頭、請求體、響應行、響應頭、響應體。

http請求是典型的請求-響應類型的的網絡協議,而http是文件協議,所以在分析請求行與請求頭,以及輸出響應行與響應頭時,通常是逐行進行處理。如果自己來編寫一個http服務器,通常在一個連接建立之后,客戶端就會將請求發送過來。而后讀取一行數據,分析得到請求行中包含的method、uri、http_version信息。然后再逐行處理請求頭,并根據請求method與請求頭的信息來決定是否有請求體以及請求體的長度,其后即讀取請求體。得到請求后,將處理請求產生需要輸出的數據,再生成響應行、響應頭以及響應體。在將響應發送至客戶端后,一個完整的請求即結束了其處理過程。當然,這是最簡單的webserver的處理方式,其實nginx也是同樣做法,只是存在一些微細區別,例如,當請求頭讀取完成后,就開始處理請求了。nginx通過ngx_http_request_t來保存解析請求與輸出響應相關的數據。

Nginx將分析得到請求行中包含的所要訪問的URL,并將其傳送給代理模塊進行處理。通過配置Nginx支持FastCGI可以實現代理模塊的調用。

(2)FastCGI

CGI的全稱是“公共網關接口”(Common Gateway Interface),是HTTP服務器與用戶或其它機器中的程序進行“交談”的一種工具。CGI的代碼須運行在網絡服務器上。

FastCGI則是一個常駐(long-live)型的CGI,可以一直執行,激活后,不需每次都花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。同時,FastCGI還支持分布式的運算, 即FastCGI程序可以在網站服務器以外的主機上獲得執行,并且可接受來自其它網站服務器傳送的請求。

與語言無關的、架構可伸縮的CGI開放擴展FastCGI,其主要行為是在內存中保持CGI解釋器進程并獲得更高的性能。CGI性能低下的主要原因是反復加載CGI解釋器所致。如果在內存中保持CGI解釋器并服從FastCGI進程管理器的調度,則可以使性能有所提高、伸縮性可致更好、并提供良好的Fail- Over特性等等。

2.2代理模塊

代理模塊使用libcurl庫來實現。Libcurl的主要功能就是使用不同的協議連接和溝通不同的服務器。

在基于libcurl的程序里,主要采用callback function (回調函數)的形式完成傳輸任務,用戶在啟動傳輸前,設置完成各類參數和回調函數,當條件滿足時,libcurl為了實現特定功能,就要執行用戶的回調函數。利用libcurl完成代理模塊的流程如下:

(1)調用curl_global_init()函數來完成libcurl的初始化;

(2)調用curl_easy_init()函數來獲取easy interface型指針;

(3)調用curl_easy_setopt()函數來完成傳輸選項的設置;

(4)根據curl_easy_setopt()函數設置的傳輸選項實現函數的回調,使特定任務得以完成;

(5)調用curl_easy_perform()函數來完成網頁的傳輸;

(6)調用curl_easy_cleanup()釋放內存。

在整個過程中,設置curl_easy_setopt()參數是最關鍵的,幾乎所有的libcurl程序都要用到。其部分代碼如下:

……

curl_easy_setopt(curl, CURLOPT_URL, dst_url); //設置訪問URL

curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);

curl_easy_setopt(curl, CURLOPT_WRITEDATA, page); //數據保存的功能

……

在獲取網頁之后,調用curl_easy_getinfo()函數判定網頁的類型,若是\"text/html\"類型,則需要對頁面進行網址替換;若是其他類型,則直接保存。

2.3網址替換模塊

網址替換模塊的目的是將IPv6網址返回的網頁內容進行替換,因為IPv6網址返回的網頁源文件中包含著IPv6網址,這就將導致用戶在IPv4環境下無法實現直接訪問。為了解決這個問題,需要將網頁源文件中的網址都替換成通過代理服務器的網址,即在原網址前加上代理服務器的域名,如此用戶點擊任何鏈接都會經過代理服務器,無法訪問的問題即得以解決。

若想替換所有網址,就需要獲取所有網址,利用正則表達式就可以完成尋獲所有網址的工作,這里調用pcre庫來實現正則表達式的功能。

PCRE(Perl Compatible Regular Expressions,perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數庫,由菲利普.海澤(Philip Hazel)編寫。PCRE是一個輕量級的函數庫,比Boost中的正則表達式庫小得多。PCRE使用便利,功能也十分強大,性能超過了POSIX正則表達式庫和一些經典的正則表達式庫。

和Boost正則表達式庫的比較顯示,雙方的性能相差無幾,PCRE在匹配簡單字符串時更快,Boost則在匹配較長字符串時勝出,但兩者差距很小??紤]到PCRE的大小和易用性,可以認定PCRE更值得考慮。

需要注意的地方是,網頁源文件中的網址分為絕對路徑和相對路徑,其具體判斷流程如圖3所示。

圖3 網頁替換模塊流程圖

Fig.3 The flow chart of the web pages replace

3實驗結果分析

3.1功能測試

(1)網址訪問測試在測試過程中,分別搭建了IPv4和IPv6的網絡,在IPv4網絡中配置了相應的客戶端,在IPv6網絡中配置了服務器,并在服務器上布設了基于NGINX后臺的在線代理系統。當IPv4中的客戶端計算機通過瀏覽器訪問代理服務器網頁并輸入所要訪問的URL的時候,實際客戶端將http請求發送至代理服務器,代理服務器將http請求轉發到目的服務器。成功獲取網頁之后,經過了網頁替換模塊之后,再由代理服務器將頁面轉發給客戶端瀏覽器,網頁即能完整得以顯示。

(2)網頁鏈接訪問測試

右鍵點擊客戶端計算機的瀏覽器,查看網頁源文件,發現所有鏈接網址都已替換成代理服務器域名開頭的網址,如此就保證了點擊網頁上的鏈接,都能通過代理服務器實現訪問。點擊任一鏈接進行測試,網頁均能順利顯示。

3.2非功能測試

利用多臺客戶端同時訪問代理服務器網頁,通過測試代理服務器可以同時響應多臺客戶端的請求。只是這個數字卻是有限的,這是由NGINX配置、FastCGI配置以及服務器的硬件條件影響導致的。

4結束語

本文提出的IPv6在線代理的設計與實現是合理的,并且可以實現IPv4和IPv6的資源互訪。

基于NGINX后臺的代理服務器本身雖然可以使效率達到很高。但是對于每一次請求,代理服務器必須保證兩個連接的正常,一個對目標服務器的連接,一個對客戶端的連接,因此對于特別多的連接請求,代理服務器的負載也就必然會達到很大。利用NGINX反向代理的功能可針對應用協議執行優化后的負載均衡策略,每次選擇最空閑的內部服務器來訪問并接受服務。并發數量的增加會造成代理服務器本身的負載也變得非常大,這時應該考慮部署多臺反向代理服務器來均衡負載[6]。

參考文獻:

[1]張杰,甘勇,張勇,等.一種Web服務中IPv4/IPv6兼容的實現方案[J].微計算機信息.,2006(30):25-27.

[2]司廣濤,唐俊.IPv6 過渡技術概述與實現[J].計算機與數字工程,2011,39(2):167-169.

[3]邵文簡,曹爭.從IPv4 到IPv6 的演進技術[J].計算機工程,2000,26(S1):829-834.

[4]鄭光勇,尹軍,朱賢友.用反向代理技術保護Web服務器的實現[J].計算機安全,2010(5):30-32.

[5]高國柱,蔣東興,等.一種基于反向代理的Web資源訪問控制系統的設計[J].計算機工程,2002,28(12):244-246.

[6]郭小鋒.基于Nginx的高負載Moodle網絡教學平臺的構建[J].軟件導刊,2008,7(11):166-168.

主站蜘蛛池模板: 日本欧美精品| 国产成人毛片| 亚洲综合婷婷激情| 久久久精品国产SM调教网站| 2022国产91精品久久久久久| 欧美日韩国产在线人成app| 波多野结衣一区二区三区四区| 4虎影视国产在线观看精品| 亚洲综合日韩精品| 欧美亚洲一二三区| 久久毛片免费基地| 国产主播在线观看| 国产精品部在线观看| 欧美成a人片在线观看| 精品天海翼一区二区| 波多野结衣久久高清免费| 99无码熟妇丰满人妻啪啪 | 亚洲最黄视频| 中文字幕亚洲精品2页| 久久鸭综合久久国产| 日韩午夜伦| 99re视频在线| 天堂岛国av无码免费无禁网站| 天天激情综合| 欧美日韩国产精品va| 日韩欧美中文字幕一本| 亚洲色图欧美视频| 一区二区在线视频免费观看| 91青青在线视频| 无码有码中文字幕| 色妞www精品视频一级下载| 日韩欧美国产三级| 亚洲欧美不卡视频| 一区二区三区国产精品视频| 欧美精品黑人粗大| 丁香综合在线| 中文字幕无码中文字幕有码在线| 欧美一区日韩一区中文字幕页| 欧美一级色视频| 欧美一区日韩一区中文字幕页| 99re热精品视频中文字幕不卡| 毛片a级毛片免费观看免下载| 国产精品漂亮美女在线观看| 成人福利在线视频免费观看| a天堂视频| 三上悠亚在线精品二区| www欧美在线观看| 毛片大全免费观看| 97在线公开视频| 全部免费特黄特色大片视频| 玩两个丰满老熟女久久网| 亚洲欧美日韩色图| 国产经典免费播放视频| 国产精品久久国产精麻豆99网站| 国产精品无码AV片在线观看播放| 国产黄色视频综合| 免费 国产 无码久久久| 毛片免费网址| 国产精品尤物铁牛tv| 国产亚卅精品无码| 狠狠色成人综合首页| 国产亚洲高清视频| 亚洲制服丝袜第一页| 一本一本大道香蕉久在线播放| 日韩一级二级三级| 免费A∨中文乱码专区| YW尤物AV无码国产在线观看| 日韩a级毛片| 亚洲一道AV无码午夜福利| 狠狠v日韩v欧美v| 国模视频一区二区| 欧美a级在线| 欧美国产菊爆免费观看 | 456亚洲人成高清在线| 四虎综合网| 国产91精品调教在线播放| 国产xxxxx免费视频| 国产91丝袜在线播放动漫 | 自慰高潮喷白浆在线观看| 色偷偷av男人的天堂不卡| 久久a毛片| 新SSS无码手机在线观看|