前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇tcp協議范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
關鍵詞:P2P;CDP;NAT 穿透;基于UDP的tcp
中圖分類號:TP317文獻標識碼:A 文章編號:1009-3044(2007)03-10736-02
1 引言
隨著互聯網應用廣泛推廣,基于各種P2P網絡技術的產品也越來越多的出現在我們的視野當中。從最早的Napster 到現在的Bittorrent、eMule、skype等產品,P2P這種網絡應用模式已經從各個方面深入人心。這些產品在網絡實現技術上,都以各自的方法解決著同樣面臨的一個問題,如何讓他們的軟件產品在各異的網絡拓撲結構中順利的進行P2P通信。
眾所周知,在當今的網絡拓撲結構中,普遍使用NAT設備來進行網絡地址轉換,那么如何讓應用程序跨越這些NAT設備進行全雙工通信,就成為非常重要的問題。實現跨越NAT 通信有很多種辦法:首先是通過服務器進行轉發,這是比較粗暴的方法,在用戶量較大時,轉發服務器需要付出相當大的代價;其次,可以使用NAT 穿透技術。而在NAT 穿透中,UDP 穿透的成功率比起TCP 穿透要高出許多[1]。因此在UDP 協議上構建一些大型的網絡應用程序可能會成為很多人的需求。
由于UDP協議本身存在通信不可靠的缺點,對于基于UDP 進行可靠通信的需求就浮現出來了。目前在網絡上有許多人正在做著這一工作,UDT、RakNet、eNet 等都是構建在UDP之上的網絡可靠通信開發庫,但這些庫都是針對一些特殊應用進行設計的,不具備通用性。本文提出的CDP協議是在UDP基礎之上實現的TCP協議。同時具備了TCP的通用、高效和UDP的高穿透成功率,并提供了簡單易用的應用程序開發接口。
2 CDP設計目標
CDP主要的目標就是在UDP 層之上實現TCP 的協議算法,使得應用程序能夠在UDP 層之上獲得通用、可靠、高效的通信能力。CDP 網絡開發庫所實現的算法,都來自久經考驗的TCP協議算法,以下協議設計部分主要講解CDP實現中與TCP標準不同的部分。
3 CDP協議設計
CDP協議主要在以下幾個方面與TCP有所不同:協議格式、連接建立(NAT UDP PUNCH模式)、保活機制、MTU發現與MSS通告。其他部分,如報文傳輸、流量控制、超時重傳、擁塞控制等,均參照TCP協議實現[2]。下面將對幾個不同部分分別進行說明。
3.1 協議格式
CDP的實現的算法雖然與TCP 實現的算法是大致相同的,但CDP 的協議格式只是從TCP協議格式獲得參考,但并不完全與他相同,CDP協議格式如圖1所示。
圖中各字段意義分別為:
4 位首部長度:表示用戶數據在數據包中的起始位置。
LIV:連接保活標志。
ACK:確認序號有效。
PSH:接收方應該盡快將這個報文段交給應用層。
RST:重置連接。
SYN:同步序號,用來發起一個連接。
FIN:發端完成發送任務。
16 位窗口大小:接收端可接收數據的窗口大小。
選項:只有一個選項字段,為最長報文大小,即MSS。CDP 選項格式與TCP 選項格式一致,kind=0 時表示選項結束,kind=1 時表示無操作,kind=2 時表示最大報文段長度。如下圖:
圖2 CDP選項字段
數據:用戶通過CDP 傳輸的數據。
3.2 連接建立(NAT UDP PUNCH模式)
一般情況下,CDP連接的建立過程與TCP相同。但當CDP工作在UDP NAT 穿透(NAT UDP PUNCH)模式下時,在三次握手之前,先要向對端NAT 端口及預測端口以默認2ms的間隔發送默認為10個LIV報文,一來用于打開自已的NAT 端口,二來是用于進入對端NAT端口。默認值可以由用戶程序設置。這時的LIV 報文中初始序號及確認序號都為0。
當接收到對端LIV 報文后,CDP立即停止LIV 報文發送,發出SYN 報文進行連接建立。這時有兩種可能:一是對端直到接收到該SYN 報文,都沒有接收到LIV 報文,或是剛接收到LIV報文,但沒有來得及發送SYN 報文,此時將會和一般模式下連接建立的過程一致,經歷三次握手;二是對端在接收到該SYN 報文之前,也已經發送SYN報文,此時雙方都需要對SYN 報文段進行確認。
3.3 半打開連接及連接保活
半打開連接是指對端異常關閉,如網線拔掉、突然斷電等情況導致一端關閉,而另一端卻認為連接仍處于打開當中,這種情況稱之為半打開連接。CDP中的一個TDP SOCKET描述符由本地IP、本地端口、遠端IP、遠端端口唯一確定。當遠端客戶端連接請求到來時,服務端將接收到一個新的CDP SOCKET描述符,當這一個描述符唯一確定信息已經存在時,對新的連接請求發送RST 報文段,通知其重置連接請求。對于舊的連接,由保活機制自動發現是否為半打開連接,如果是半打開連接,則自動關閉該連接。CDP的RST 報文與TCP 中的RST 報文是不一樣的。
連接建立之后,CDP 連接需要啟動保活機制。TCP 連接在沒有數據通信的情況下也能保持連接,但CDP 連接不行。CDP 連接在一定時間內如果沒有數據交互的話,將主動發送保活LIV報文段。這個時間根據CDP 連接工作模塊不同有所差異,在NAT UDP PUNCH 模式下,默認值為1 分鐘(大多數的NAT中,UDP會話超時時間為2-5分鐘左右);而在常規模塊下這個時間段默認值為5分鐘。默認值可以由用戶程序設置,用戶程序需要指明兩種模式下的保活時間周期。
3.4 路徑MTU 發現及MSS 通告
CDP連接建立過程中會通告初始MSS(Maximum Segment Size),這個值可以由用戶程序進行設置。但這個初始值是靜態的,當通信雙方跨越多個網絡時,使用設置的MSS可能導致傳輸的IP 報文分片的產生。為了避免分片,CDP在數據傳輸過程中進行動態的路徑MTU(Maximum Transmission Unit)發現,并進行MSS 的更新及通告。
CDP創建UDP SOCKET時,即將IP選項設置為不允許分片: Setsockopt(clientSock, IPPROTO_IP, IP_DONTFRAGMENT, (char*)&dwFlags, sizeof(dwFlag) )。
在發送數據時先以當前MSS 大小進行發送,如果返回值為錯誤碼WSAEMSGSIZE(10040),則表示為報文尺寸大于MTU,需要進行IP 分片傳輸。此時,縮減MSS大小再次發送,直至不再返回錯誤碼WSAEMSGSIZE(10040)。當MSS 變更并能成功發送報文后,需要向對端通報新的MSS 值。每次MSS 縮小后,默認隔30 秒,CDP 將默認擴大MSS 大小,以檢查是否路徑MTU 是否增大了,之后隔30*2 秒、30*2*2 秒進行檢測,如果三次都未發現MTU 增大則停止進行檢測。網絡中MTU 值的個數是有限的[3]。因此MSS 的擴大及縮減,可依據一些由近似值按序構成的表,依照此表索引進行MSS 值的擴大與縮減計算。
CDP 中MSS 與MTU 之間關系的計算公式如下:MSS = MTUC20(IP首部)C8(UDP首部)C12(CDP首部)。
4 CDP應用程序開發接口(CDP Socket API)
使用CDP進行網絡程序開發是非常容易的,它API與標準socket API是非常相似的,對應功能的函數名稱都相同,只是CDP的所有API都處于名稱空間CDP 之下。此程序庫的實現也參考了BSD Socket的實現。CDP Socket API列表如下:
5 結束語
本文提出了一種基于UDP協議之上的TCP協議實現――CDP協議,并對現實的一些關鍵部分進行了討論,最后給出了CDP協議的應用開發接口。CDP協議同時具備了TCP通用、高效的特點,有利用的UDP的NAT穿透特性,可廣泛應用與構建各種P2P網絡應用。
參考文獻:
[1]B. Ford, P. Srisuresh, D. Kegel, Peer-to-Peer Communication across Network Address Translators [EB/OL], draft-ford-midcom-p2p,/pub/net/p2pnat, June 2004.
[2]W.Richard Stevens, 范建華,譯,TCP/IP詳解――卷Ⅰ:協議[M],機械工業出版社,2000.4.1.
關鍵詞:NDK; TMS320DM642; TCP/ IP
1、 NDK 的結構
TI公司依據C6000芯片推出了TCP/IP NDK(Network Developer's Kit)開發套件, 其主要構成包括: (1)支持TCP/IP 協議棧程序庫。其中主要含有的庫: 支持TCP/IP網絡工具的庫,支持TCP/IP 協議棧與DSP/BIOS平臺的庫,網絡控制以及線程調度的庫。(2)示范程序。其中主要包括DHCP/Telnet 客戶端, HTTP 數據服務器示范。(3)支持文檔。包含用戶手冊、程序員手冊和平臺適應手冊。NDK 采用緊湊的設計方法, 實現了用少量的資源耗費來支持TCP/IP。從實用效果來看, NDK僅用200-250K程序空間和95K 數據空間即可完成常規的TCP/IP 服務。
NDK相對于操作系統和底層硬件是透明的, 因為這是由OS。LIB 提供操作系統DSP/BIOS的接口和HAL。LIB 提供對硬件的支持來實現的。在NDK的TCP/IP協議棧中STACK。LIB 包括了頂層套接字到底層鏈路層的所有功能, NETCTRL。LIB在整個協議棧中起關鍵作用, 協調操作系統和底層硬件驅動, 管理所有網絡事件, NETTOOL。LIB 提供配置網絡各種服務。
2、NDK 在DSP/BIOS 下的使用
DSP/BIOS 是TI 開發的實時微型操作系統, 支持線程管理、實時分析、周期函數、調度軟件中斷以及外部硬件中斷與各種外設的管理。使用DSP/BIOS 所有與硬件有關的操作都必須借助操作系統本身提供的函數完成, 應避免直接控制硬件資源。基于DSP/BIOS 的程序與傳統開發過程是不同的, 用戶編寫的程序由DSP/BIOS 調度, 不再按標寫的次序順序執行。同樣開發基于DSP/BIOS的網絡應用程序也必須要遵循一些原則。
在DSP/BIOS 下使用NDK 必須注意以下幾點: (1) 為了保證使用NDK 的工程項目能正確編譯, 在CCS 的Link Order 要按一定的順序添加庫文件, 推薦的順序是: NETCTRL。LIB、HAL_xxxLIB、STACK。LIB、OS。LIB; (2)在使用NDK 的過程當中, OS和HAL 會創建三個內存段, 分別是PACKETMEM、MMBUFFER、OBJMEM, 必須在CMD 文件中為這三個段在內存中分配存儲空間;(3) 至少要使用32K 的cache, 否則應用程序會產生不可預料的錯誤;(4) 必須在CDB文件中為HAL 創建一個周期為100ms 的PRD 函數, 用來驅動llTimerTick()系統函數;(5) OS 需要鉤子函數為TCP/IP 堆棧加載和保存私人變量指針, 所以必須在CDB 文件中創建兩個鉤子函數NDK_hookInit()和NDK_hookCreate();(6)必須把工程項目的IncludeSearching Path 指向NDK 安裝目錄下的inc 文件夾。
3、NDK 性能測試
測試NDK性能既有主觀性又有客觀性。主觀性適應為實際測試要受到很多環境因素的影響。客觀性是因為使用標準的工具,并且結果可重現。 所以只能是性能的估計性測試。影響NDK性能的主要因素有:
socket API: NDK既支持非拷貝的數據包socket,也支持基于緩沖區的典型socket,甚至非拷貝的直接接收的TCP數據流。性能隨所采用的策略變化而變化。
socket 緩沖區: socket緩沖區影響TCP發送和接收的窗口大小,并且決定每次發送數據流大小,這對網絡性能有很大的影響。
CPU速度:在cache大小一定的情況下,網絡性能與CPU速度成正比。CPU cache: cache的大小對網絡性能有巨大的影響。
網絡硬件設備:以太網硬件設計的好壞直接影響DSP和網絡接口的速度。
外部存儲器(EMIF)接口:對于和DSP外部存儲器接口相連的以太網設備, EMIF的速度對外部解碼邏輯有額外的影響。
下面的測試由TI提供,測試不僅兼顧最佳的性能而且考慮到應用的實際情況,比如socket緩沖區大小為8K,而不是32K 或64K,因為這在嵌入式設備中是不切實際的。測試的過程是DSP執行低優先級的網絡任務,PC機執行客戶基準測試程序, 然后與DSP不執行網絡任務時CPU的負載情況做對比。
4 、結論
TI推出的NDK網絡開發工具不僅可以使技術人員快速開發基于DSP的網絡應用程序,而且具有十分可靠的性能,這使得C6000系列芯片完全可以勝任大數據量的視頻網絡傳輸的要求,是開發嵌入式網絡視頻設備的首選。
參考文獻
[1]Texas Instrument。TMS320C6000 Programmer ' s Guide(Rev。 I)。
關鍵詞:網絡安全; TCP/IP協議;安全性
引言
現在Internet已在全世界普及,它使人們穩坐家中就可以得到世界各國的所有信息,并已經逐漸成為通信方面的基礎設施。但是從另一方面來說,由于世界的計算機通過網絡互相連通潛在了很多不安全的因素。于是,要安全地使用Internet,就需要具備防止信息泄漏以及防止被篡改等網絡安全問題的能力。為了預防這些網絡上的不正當行為,特別需要理解Internet在安全方面的特性,以便采取適當的防范對策。
1. TCP/IP的協議結構
TCP/IP作為通信協議,它是一組協議的集合,其中有我們常見的TCP和IP協議,也有用于管理通信方法的協議,也有測試網絡狀態等工具性的協議。
支持因特網通信的TCP/IP是以TCP協議和IP協議為中心構成的協議群的總稱。TCP/IP通信協議從最底層開始,是由網間層、傳輸層以及應用層構成的。像這樣的構成層次,可以使開發工作形成模塊式開發。
2. 按TCP/IP的協議層,對其安全性探討
2.1網間層在安全方面的隱患主要包括以下幾種:
(1)偽造IP地址
在Internet中,各個設備是按照預先分配的IP地址或者通過DHCP的方式來分配IP地址來標識。于是,如果其中的某個設備設置成其他設備所屬的IP或者冒充網關向設備發送數據包,就會造成通信混亂,從而導致網絡癱瘓。舉個簡單的例子,以太網上搶奪其他計算機的IP,就可以謊稱是被搶奪計算機IP數據包的源地址。致使在這種情況下,被冒充的計算機上會出現顯示IP地址沖突的提示框。而且在這種狀態下,也不能保證計算機能夠正常運行。對于這樣的偽造IP地址(IP Spoofing:IP欺詐)的攻擊行為,需要采取以下的措施:
> 利用網絡監視工具,對冒充源地址的數據包通過外部網絡進行檢查,確認是否真正來自于送信源地址。
> 在服務器上生成對于遠程接入進程的記錄機制,用來見識服務器的適用情況。
(2)偽造ARP
在網間層上,雖然在設置發送端與接收端時,利用了IP地址通信,但在作為物理層之一的以太網上卻利用了MAC地址來標識發送端與接收端的地址。像這種網間層的IP地址體系與數據鏈路層的MAC地址體系相互對應的分配取決于地址解析協議(ARP)。計算機在通信時首先利用ARP獲得與目的IP地址所對應的MAC地址。從減少通信流量的觀點出發,一旦給予對應MAC地址的IP地址,這種對應組合將在ARP表中保持一定時間的緩存,這樣通過發送偽造的ARP數據包就可以改寫這個緩存。
作為防范上述攻擊行為的對策,可以采取兩種方法:
> 利用保證IP數據包合法性的IPSec中的AH的認證功能
> 采用使應用軟件具備對通信過程進行加密的方式以及強化認證機構。
2.2傳輸層上存在的安全隱患主要包括以下幾種:
(1)假冒TCP初始序號
在通信過程中,采用被稱為三次握手的步驟建立起來的TCP連接。在這個過程,對于使用IP地址認證的應用程序,如果可以順推出初始序號,那么只要模擬發送端的IP地址,就可以建立TCP連接。不過現在的操作系統中,初始序號的分配方法已變得相當復雜,事實上序號已不能隨便推測。
(2)利用TCP/UDP數據包的DoS攻擊
DoS攻擊是通過生成大量的、已處于連接狀態的TCP連接,使TCP/IP模塊陷入崩潰狀態的操作。對于以操作系統為目標的攻擊,可以通過導入具備屏蔽TCP SYN數據包功能的防火墻來防范。
2.3應用層上存在的安全隱患主要包括以下幾個方面:
(1)掃描/搜索
對信息系統的非法入侵,是通過收集作為攻擊目標的設備以及用戶的相關信息開始的。首先通過掃描搜索設備,同時通過BBS、網絡新聞以及主鏈接清單等資源數據收集用戶的信息。掃描用戶的設備后,通過截取用戶的通信數據或數據包、收集認證信息以及嘗試用戶密碼等方法,使自己能夠獲得對計算機信息和資源的讀寫權以及控制權,從而再訪問該計算機。
(2)DNS欺騙
DNS欺騙是一種從外部改寫由DNS服務器管理的主機名與IP地址對應表的攻擊方式。如前所述,在Internet世界中,計算機以及路由器是通過被分配的、特有的IP地址來識別的。但是IP地址作為一串數值,人們不便于記憶,因而出現了主機名這一概念。DNS是提供IP地址與主機名對應的機制,因此,一旦這種對應關系出現問題,那么IP數據包就不能夠被發送到主機名所對應的IP地址。DNS欺騙的一個簡單事例,就是在IP地址與主機名對應表的hosts文件中,進行對應關系不一致的設定。所以對于用戶來說,接收網絡安全方面的教育是非常重要的。
(3)竊聽用戶認證信息
這種行為大多是在非法侵入計算機后,安裝木馬程序,以非法手段獲取該計算機所連接的網絡的通信信息。特別是將以非加密報文形式傳輸數據的TELNET、FTP、POP以及HTTP等作為監聽對象,來獲取密碼等用戶認證信息。
防竊聽的對策有以下兩種:
> 在通信過程中進行加密,使得數據包不能被任意讀取
> 通過限制注入網絡交換機的設備,縮小竊聽范圍。
(4)利用電子郵件進行的DoS攻擊
利用電子郵件進行的拒絕服務攻擊包括:反復頻繁發送大數據量的電子郵件,耗盡磁盤空間的電子郵件炸彈,以及通過其他的郵件服務器,連續發送郵件造成第三方延遲等等。
互聯網工作工程小組最近了一種新的郵件認證技術說明,該說明加入了域名密鑰識別郵件技術(DKIM),希望借此來加速對抗垃圾郵件。它把IP地址和郵件的發送人放在一起進行分析,然后通過公共密鑰加密,給郵件加上一個數字簽名,這個數字簽名包含著發件人的域名。
(5)病毒
計算機病毒是附著于程序中可以自我繁殖的程序。現在所發現的病毒一般具有以下的形態:
* 以篡改或破壞計算機中所存儲的數據為攻擊目標
* 利用用戶作為中介(U盤、電子郵件等)來進行傳播。
2011年影響最大的十大病毒之中,鬼影病毒、QQ群蠕蟲病毒QQ假面病毒、DNF假面病毒、新型QQ大盜等新老變種病毒榜上有名。對于病毒的防護,我們要加強計算機安全意識,提高警惕,不隨便訪問不可靠網站,定時對計算機進行查殺病毒。
3.結束語
通過對TCP/IP協議層的安全問題進行闡述及分析,不難發現其在設計上存在很多安全隱患,黑客或黑客工具往往利用這些隱患對網絡進行攻擊,只有充分了解這些隱患并采取相應的防范措施,才能增強網絡的安全性。
參考文獻:
[1]石志國等編著.計算機網絡安全教程[M]. 北京交通大學出版社;北京:,2004
[2]李美萍. TCP/IP協議體系的安全性探討[J]. 山西通信科技, 2007(4): 11-13.
關鍵詞:FPGA;以太網;TCP/IP協議;DM9000
中圖分類號:TP301 文獻標識碼:A 文章編號:1672-7800(2013)005-0022-02
0、引言
隨著網絡通信技術的飛速發展,越來越多的測試儀器需要將大量數據傳送給終端計算機進行解析處理,抑或從PC機傳送大量數據給相應設備。現在常用的數據傳輸方式(usb、總線)中,雖說數據傳輸的速率較快(可達400Mb/s),但是傳輸距離過短成為其不可避免的缺點。而百兆以太網中點對點間的數據傳送距離可達100m,如果借助交換機或者路由器等設備可以實現更遠距離傳輸。本文以FPGA為基礎,在硬件上完成簡化的TCP/IP協議棧,用來獲取必須的協議處理機能,實現三態以太網嵌入式系統設計。
1、系統硬件設計
該系統以Altera公司的EPIC12型FPGA芯片作為中心控制單元,另外還需兩片作為緩存數據用的SRAM,以太網接口芯片采用DM9000。系統具體硬件框圖如圖1所示。
DM9000是一款全集成、功能強大、性價比高的快速以太網MAC控制器。該芯片擁有一個通用處理器接口、10/1()()PHY、EEPROM和16kB的SRAM。DM9000支持8位、16位以及32位的接口訪問內部存儲器,可以支持不同型號的處理器。該芯片的PHY協議層接口完全可以使用10MBps下的3/4/5類非屏蔽雙絞線和100MBps下的5類非屏蔽雙絞線,很好地對應IEEE 802.3u規范。DM9000實現以太網媒體介質訪問層(MAC)和物理層(PHY)的功能,其中包含MAC數據幀的組裝/拆分與發送接收、地址的識別、CRC編碼/校驗、MLT-3編碼器、接收噪聲抑制、輸出脈沖形成、超時重傳、鏈路完整性測試、信號極性檢測與糾正等。
2、TCP/IP協議實現
2.1 TCP/IP協議
TCP/IP協議就是傳輸控制協議/互聯網協議,它是一個真正實際的開放性通信協議規范,其開放式的特點使得計算機之間都可以通過此協議來完成數據的交換,而不管這些設備擁有不同的物理特性或者各自運行著不同的系統。
與其它網絡協議相同,TCP/IP協議的開發也是分不同層次進行的。與ISO開發的OSI模型相比,TCP/IP的四層模型顯得更為靈活,原因在于它著重強調功能分布而不是功能層次的劃分。
ARP協議負責IP地址與MAC地址之間的轉換工作,IP協議實現網絡層數據的封裝工作以及路由功能,而TCP和UDP是運輸層的協議,主要完成傳輸數據的封裝、實現可靠穩定傳送以及流量的監控。ICMP是報文控制協議,它是一種輔協議,所具有的Ping功能可以用來診斷網絡性能。在一個正常通信過程中,ARP/IP協議是必需的,而TCP/UDP實現一種即可。在FPGA用硬件完成ARP\P和UDP比較簡單,而TCP協議在連接時的握手機制、數據發送接收的校驗機制以及流量的控制,實現起來較為復雜,因此從系統的復雜度來考慮,本文并沒有實現TCP/IP協議,實現了相對較為簡單的UDP協議。
2.2 系統模塊構成
本系統的協議棧功能由網絡控制模塊、數據接收解析模塊、ARP應答發送模塊、Ping應答發送模塊、UDP發送模塊和調度模塊構成。每個模塊間相互的接口聯系如圖3所示。
因為每個模塊都有分時訪問DM9000接口總線的要求,所以必須要有一個調度模塊執行中心控制工作,利用開始與結束信號來同步。在接受到中斷信號時,調度模塊只有在總線空閑狀態時才會開啟接收模塊,接收模塊解析完MAC層數據包后會發送對應的請求訊號:ARP應答請求、Ping應答請求,此時必需的應答參數也會輸出。在總線空閑時,調度模塊會依據請求信號開啟對應的應答模塊進行工作。接收模塊在收到已定義端口UDP數據包后將有效數據寫入SRAM中,供其它的應用模塊使用。
2.3 DM9000接口控制
DM9000內部存儲器由物理層寄存器、鏈路層寄存器和數據緩沖三部分組成,與該芯片進行的所有數據交換作都必須通過此三部分寄存器來完成。為遵循DM9000接口時序規范,接口邏輯需分層設計,I/O讀寫模塊位于最底層,第二層為物理寄存器讀寫,接下來是鏈路層寄存器讀寫模塊,而最上層是初始化模塊,主要完成接口芯片內物理寄存器與鏈路寄存器的初始化工作,比如MAC地址、中斷設置以及數據包過濾條件等等。
3、實驗結果及系統性能分析
3.1 接收處理能力
在計算機端編寫一死循環程序,用來發送有效數據大小為1 400Byte的UDP數據包。當PC端的發送軟件運行后,網絡傳輸速率可以達到98Mb/s,利用Ethereal能夠看出,相鄰的UDP數據包的間隔為10tLs~200tLs。圖4為抓取的FPGA引腳信號波形,通道1為DM9000接收的中斷信號,通道2為FPGA接收處理開始及結束信號。
3.2 發送處理能力
如果系統以最大速率發送含有1400比特的UDP數據包,傳送速率可以達到98Mb/s。因為UDP未設計流量監控與確認功能,所以在編寫應用軟件的時候需要特別注意,必須加大Socket的緩沖區大小以及增加數據處理的速率,不然會出現數據丟失的現象。
關鍵詞:TCP/IP;網絡協議;防御;安全協議
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2013)03-0485-02
在短期內,基礎TCP/IP網絡協議不可能進行重新設計和部署實施,無法從根本上改變目前網絡面臨嚴重安全威脅的狀況。通過部署一些監測、預防與安全加固的防范措施,是增強網絡對已知攻擊的抵御能力不可或缺的環節。
1 網絡各層防范措施
在網絡接口層,主要監測和防御的安全威脅的方法是網絡嗅探,可以利用防范網絡嗅探的思路,檢測出局域網中的監聽點,并在網絡設計上盡量細分和優化網絡結構,盡量消除數據廣播的情況,并對關鍵路徑上的網關、路由器等設備進行嚴格的安全防護,以減少網絡嗅探造成的影響。此外,對于無線網絡而言,應增強鏈路層加密的強度,同時對各類網絡采用加密通信協議,使得在通信過程中,即使遭受嗅探也不會破壞數據要達到的機密性要求。
在互聯層上,雖然IP、ICMP、ARP等協議中存在安全缺陷,安全問題帶來的風險很難完全避免,但我們可以采用多種檢測和過濾技術來發現和阻斷網絡中可能出現的欺騙攻擊,此外也可以增強防火墻、路由器和網關設備的安全策略,對一些用于欺騙攻擊的特殊數據包進行過濾,特別是對外部網絡進行欺騙攻擊的數據包進行出站過濾,只有如此,才能共同維護整個互聯網的安全。對關鍵服務器使用靜態綁定IP-MAC映射表、使用IP sec協議加密通信等預防機制,可以有效地增強網絡對欺騙攻擊的抵御能力。
在傳輸層,可以實現基于面向連接和無連接服務的加密傳輸和安全控制機制,包括身份認證,訪問控制等。
應用層可以采用加密、用戶級身份認證、數字簽名技術、授權和訪問控制技術,以及主機安全技術,如審計、入侵檢測等。
2 網絡各層安全協議
為了克服TCP/IP協議棧的安全缺陷和問題,互聯網研究機構也在不斷地研究和開發一些網絡安全協議,IETF、IEEE 802等國際性的網絡研究和標準化組織在不斷地進行討論和改進,并作為標準化協議規范對業界進行,使得業界能夠在這些標準在網絡設備、操作系統中實現和應用這些安全協議,從而增強現有網絡的安全性。在TCP/IP協議棧各個層次上運用的網絡安全協議如下表1所示。
2.1 網絡接口層的安全協議
網絡接口層的安全協議設計和標準化主要由IEEE802委員會負責推進,由于無線網絡傳輸媒介的共享特性,因此比有線網絡更加需要安全保護機制,目前常用的802.11WiFi、藍牙(Bluetooth)等無線網絡均實現了用于身份認證、加密傳輸和防止假冒篡改攻擊的安全協議,如WEP(Wired Equivalent Privacy)和WPA/WPA2(Wi-Fi Protected Access)協議等。此外IEEE802委員會還制定了802.1X協議,提供了基于端口訪問控制的接入管理協議標準,為各種不同類型網絡中的用戶認證和訪問控制給出了通用的解決方案。
2.2 網絡互聯層的安全協議
網絡互聯層目前最重要的安全通信協議主要是IP sec協議簇。IP sec (Internet Protocol Security),即互聯網安全協議,是IETF(Internet Engineering Task Force)提供的一系列的互聯網安全通信的標準規范,這些是私有信息通過公用網的安全保障。 IP sec適用于目前的IP版本IPv4和下一代IPv6。IP sec規范相當復雜,規范中包含大量的標準文檔。由于IP sec在TCP/IP協議的核心層――IP層實現,因此可以有效地保護各種上層協議,并為各種安全服務提供一個統一的平臺,IP sec也是被下一代互聯網所采用的網絡安全協議。 IP sec協議是現在VPN開發中使用最廣泛的一種協議,有可能在將來成為IPVPN的標準。
IP sec協議簇的基本目的是把密碼學的安全機制引入IP協議,通過使用現代密碼學方法支持機密性和認證服務,使用戶能有選擇地使用,并得到所期望的安全服務。IP sec將幾種安全技術結合形成一個完整的安全體系,包括安全協議部分和密鑰協商部分。IP sec的安全協議主要包括AH協議(Authentication Header,認證頭)和ESP協議(Encapsulate Security Payload,封裝安全載荷)兩大部分:AH認證協議提供五連接的完整性、數據源認證和抗重放保護服務,但是AH不提供任何機密性保護服務;而ESP協議則為IP協議提供機密性、數據源驗證、抗重放,以及數據完整性等安全服務。其中,數據機密性是ESP的基本功能,而帶有數據源身份認證、數據完整性檢驗以及抗重放保護等功能。此外IP sec中還包含了密鑰協商和交換協議,如Internet密鑰交換協議(Internet Key Exchange,IKE),負責處理通信雙方的協議及算法的協商,產生并交換加密和認證密鑰,以建立起AH和ESP協議需要的通信雙方安全關聯(Security Association,SA)。
IP sec協議支持隧道及傳輸兩種模式。隧道模式用于主機與路由器或兩部路由器之間,保護整個IP數據包。通常情況下,只要IP sec雙方有一方是安全網關或路由器,就必須使用隧道模式。傳輸模式用于兩臺主機之間,保護傳輸層協議頭,實現端到端的安全。它所保護的數據包的通信終點也是IPsec終點。傳輸模式下,IP sec主要對上層協議即IP包的載荷進行封裝保護,通常情況下,傳輸模式只用于兩臺主機之間的安全通信。
由于工作在互聯層上,IP sec協議能夠為IP協議之上的任何網絡應用提供安全保護機制,而網絡應用無需任何的特殊設計和實現,就可以使用IP sec.
2.3 傳輸層的安全協議
傳輸層上的安全協議主要是TLS(Transport Layer Security),其前身是由Netscape公司所開發的SSL(Secure Socket Layer),目前最新版本是IETF的TLS l.2標準化網絡安全協議(RFC 5246)。TLS協議在傳輸層上通過密碼學算法,為應用層的網絡通信提供了安全的點到點傳輸,在Web瀏覽、電子郵件、即時通信和VoIP (Voice over IP)等網絡應用服務中得到了廣泛使用。
TLS協議基于密碼學算法支持在互聯網上的身份認證和通信機密性保護,能夠防止竊聽、干擾和消息偽造。TLS協議包括兩個協議組:TLS記錄協議和TLS握手協議。 TLS記錄協議位于可靠的傳輸協議TCP之上,用于封裝各種高層協議,提供的安全性具有兩個基本特性。
① 加密:使用對稱加密算法(如 DES、RC4等)進行數據加密,以保證傳輸數據的機密性,對稱加密所產生的密鑰對每個連接都是唯一的,對稱密鑰由TLS握手協議進行協商,記錄協議也可以不使用加密。
② 可靠:信息傳輸使用密鑰進行消息完整性檢查,通常使用安全哈希函數(如SHA、MD5等)來計算消息完整性校驗和(Message Authentication Code,MAC)。
TLS握手協議允許服務器與客戶機在應用程序協議傳輸和接收其第一個數據字節前,進行單向身份認證,或者彼此之間相互認證,并協商加密算法和加密密鑰。
TLS協議已被用于封裝整個網絡棧以創建虛擬專有網絡(Virtual Private Network,VPN),如開源的Open VPN軟件,一些廠商也將TLS的加密和認證機制與訪問授權相結合,研制出功能更強的SSLVPN產品,與傳統的IP sec VPN技術相比,TLS在防火墻和網絡地址轉換(Network Address Translation,NAT)設備穿越方面具有內在的優勢,使其在存在大量遠程訪問用戶的環境中具有更好的易管理性。
2.4 應用層的安全協議
在應用層,安全通信協議的特點是需要針對不同的應用安全需求,設計不同的安全機制,例如HTTP安全、電子郵件、遠程控制、電子交易等,在安全協議設計過程中也會盡量地使用底層協議已經提供的安全防護能力。
對于萬維網訪問進行安全防護的主要協議是安全超文本傳輸協議(Secure Hypertext Transfer Protocol,HTTPS),基于傳輸層安全協議TLS實現,端口號為443,通常應用于電子商務、資產管理等應用,隨著近年來的發展,HTTPS在Web上逐步流行,在涉及個人敏感信息的登錄及使用環節,安全的網站一般都會使用HTTPS協議進行加密傳輸和身份認證。
安全電子郵件協議(Secure/Multipurpose Internet Mail Extensions,S/MIME),由RSA公司提出,是電子郵件的安全傳輸標準。S/MIME使用PKI數字簽名技術,支持消息和附件的加密傳輸,采用單向散列算法,如SHA―1、MD5等,也采用公鑰機制的加密體系,證書格式采用X.509標準。目前大多數電子郵件產品都包含了對S/MIME的內部支持,網絡管理員應啟用該安全協議,從而避免了電子郵件明文傳輸所面臨的信息泄露等安全風險。
3 結束語
TCP/IP協議是互聯網得以蓬勃發展的基礎,然而TCP/IP協議在開始設計時并沒有考慮到現在網絡上如此多的安全威脅,因此不可避免地遭遇了各種形形的攻擊方式。本文介紹了網絡各層上的防范措施和安全協議,包括它們的技術原理和具體過程。應對網絡協議的攻擊威脅,TCP/IP協議也正在進行著完善和改進,對于防御者而言,應采用最新的安全協議來武裝自己的網絡,從而降低網絡安全風險。
參考文獻: