時(shí)間:2022-12-05 00:07:07
緒論:在尋找寫(xiě)作靈感嗎?愛(ài)發(fā)表網(wǎng)為您精選了8篇tcp協(xié)議,愿這些內(nèi)容能夠啟迪您的思維,激發(fā)您的創(chuàng)作熱情,歡迎您的閱讀與分享!
關(guān)鍵詞:P2P;CDP;NAT 穿透;基于UDP的tcp
中圖分類號(hào):TP317文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2007)03-10736-02
1 引言
隨著互聯(lián)網(wǎng)應(yīng)用廣泛推廣,基于各種P2P網(wǎng)絡(luò)技術(shù)的產(chǎn)品也越來(lái)越多的出現(xiàn)在我們的視野當(dāng)中。從最早的Napster 到現(xiàn)在的Bittorrent、eMule、skype等產(chǎn)品,P2P這種網(wǎng)絡(luò)應(yīng)用模式已經(jīng)從各個(gè)方面深入人心。這些產(chǎn)品在網(wǎng)絡(luò)實(shí)現(xiàn)技術(shù)上,都以各自的方法解決著同樣面臨的一個(gè)問(wèn)題,如何讓他們的軟件產(chǎn)品在各異的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中順利的進(jìn)行P2P通信。
眾所周知,在當(dāng)今的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,普遍使用NAT設(shè)備來(lái)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,那么如何讓?xiě)?yīng)用程序跨越這些NAT設(shè)備進(jìn)行全雙工通信,就成為非常重要的問(wèn)題。實(shí)現(xiàn)跨越NAT 通信有很多種辦法:首先是通過(guò)服務(wù)器進(jìn)行轉(zhuǎn)發(fā),這是比較粗暴的方法,在用戶量較大時(shí),轉(zhuǎn)發(fā)服務(wù)器需要付出相當(dāng)大的代價(jià);其次,可以使用NAT 穿透技術(shù)。而在NAT 穿透中,UDP 穿透的成功率比起TCP 穿透要高出許多[1]。因此在UDP 協(xié)議上構(gòu)建一些大型的網(wǎng)絡(luò)應(yīng)用程序可能會(huì)成為很多人的需求。
由于UDP協(xié)議本身存在通信不可靠的缺點(diǎn),對(duì)于基于UDP 進(jìn)行可靠通信的需求就浮現(xiàn)出來(lái)了。目前在網(wǎng)絡(luò)上有許多人正在做著這一工作,UDT、RakNet、eNet 等都是構(gòu)建在UDP之上的網(wǎng)絡(luò)可靠通信開(kāi)發(fā)庫(kù),但這些庫(kù)都是針對(duì)一些特殊應(yīng)用進(jìn)行設(shè)計(jì)的,不具備通用性。本文提出的CDP協(xié)議是在UDP基礎(chǔ)之上實(shí)現(xiàn)的TCP協(xié)議。同時(shí)具備了TCP的通用、高效和UDP的高穿透成功率,并提供了簡(jiǎn)單易用的應(yīng)用程序開(kāi)發(fā)接口。
2 CDP設(shè)計(jì)目標(biāo)
CDP主要的目標(biāo)就是在UDP 層之上實(shí)現(xiàn)TCP 的協(xié)議算法,使得應(yīng)用程序能夠在UDP 層之上獲得通用、可靠、高效的通信能力。CDP 網(wǎng)絡(luò)開(kāi)發(fā)庫(kù)所實(shí)現(xiàn)的算法,都來(lái)自久經(jīng)考驗(yàn)的TCP協(xié)議算法,以下協(xié)議設(shè)計(jì)部分主要講解CDP實(shí)現(xiàn)中與TCP標(biāo)準(zhǔn)不同的部分。
3 CDP協(xié)議設(shè)計(jì)
CDP協(xié)議主要在以下幾個(gè)方面與TCP有所不同:協(xié)議格式、連接建立(NAT UDP PUNCH模式)、?;顧C(jī)制、MTU發(fā)現(xiàn)與MSS通告。其他部分,如報(bào)文傳輸、流量控制、超時(shí)重傳、擁塞控制等,均參照TCP協(xié)議實(shí)現(xiàn)[2]。下面將對(duì)幾個(gè)不同部分分別進(jìn)行說(shuō)明。
3.1 協(xié)議格式
CDP的實(shí)現(xiàn)的算法雖然與TCP 實(shí)現(xiàn)的算法是大致相同的,但CDP 的協(xié)議格式只是從TCP協(xié)議格式獲得參考,但并不完全與他相同,CDP協(xié)議格式如圖1所示。
圖中各字段意義分別為:
4 位首部長(zhǎng)度:表示用戶數(shù)據(jù)在數(shù)據(jù)包中的起始位置。
LIV:連接保活標(biāo)志。
ACK:確認(rèn)序號(hào)有效。
PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。
RST:重置連接。
SYN:同步序號(hào),用來(lái)發(fā)起一個(gè)連接。
FIN:發(fā)端完成發(fā)送任務(wù)。
16 位窗口大?。航邮斩丝山邮諗?shù)據(jù)的窗口大小。
選項(xiàng):只有一個(gè)選項(xiàng)字段,為最長(zhǎng)報(bào)文大小,即MSS。CDP 選項(xiàng)格式與TCP 選項(xiàng)格式一致,kind=0 時(shí)表示選項(xiàng)結(jié)束,kind=1 時(shí)表示無(wú)操作,kind=2 時(shí)表示最大報(bào)文段長(zhǎng)度。如下圖:
圖2 CDP選項(xiàng)字段
數(shù)據(jù):用戶通過(guò)CDP 傳輸?shù)臄?shù)據(jù)。
3.2 連接建立(NAT UDP PUNCH模式)
一般情況下,CDP連接的建立過(guò)程與TCP相同。但當(dāng)CDP工作在UDP NAT 穿透(NAT UDP PUNCH)模式下時(shí),在三次握手之前,先要向?qū)Χ薔AT 端口及預(yù)測(cè)端口以默認(rèn)2ms的間隔發(fā)送默認(rèn)為10個(gè)LIV報(bào)文,一來(lái)用于打開(kāi)自已的NAT 端口,二來(lái)是用于進(jìn)入對(duì)端NAT端口。默認(rèn)值可以由用戶程序設(shè)置。這時(shí)的LIV 報(bào)文中初始序號(hào)及確認(rèn)序號(hào)都為0。
當(dāng)接收到對(duì)端LIV 報(bào)文后,CDP立即停止LIV 報(bào)文發(fā)送,發(fā)出SYN 報(bào)文進(jìn)行連接建立。這時(shí)有兩種可能:一是對(duì)端直到接收到該SYN 報(bào)文,都沒(méi)有接收到LIV 報(bào)文,或是剛接收到LIV報(bào)文,但沒(méi)有來(lái)得及發(fā)送SYN 報(bào)文,此時(shí)將會(huì)和一般模式下連接建立的過(guò)程一致,經(jīng)歷三次握手;二是對(duì)端在接收到該SYN 報(bào)文之前,也已經(jīng)發(fā)送SYN報(bào)文,此時(shí)雙方都需要對(duì)SYN 報(bào)文段進(jìn)行確認(rèn)。
3.3 半打開(kāi)連接及連接?;?/p>
半打開(kāi)連接是指對(duì)端異常關(guān)閉,如網(wǎng)線拔掉、突然斷電等情況導(dǎo)致一端關(guān)閉,而另一端卻認(rèn)為連接仍處于打開(kāi)當(dāng)中,這種情況稱之為半打開(kāi)連接。CDP中的一個(gè)TDP SOCKET描述符由本地IP、本地端口、遠(yuǎn)端IP、遠(yuǎn)端端口唯一確定。當(dāng)遠(yuǎn)端客戶端連接請(qǐng)求到來(lái)時(shí),服務(wù)端將接收到一個(gè)新的CDP SOCKET描述符,當(dāng)這一個(gè)描述符唯一確定信息已經(jīng)存在時(shí),對(duì)新的連接請(qǐng)求發(fā)送RST 報(bào)文段,通知其重置連接請(qǐng)求。對(duì)于舊的連接,由保活機(jī)制自動(dòng)發(fā)現(xiàn)是否為半打開(kāi)連接,如果是半打開(kāi)連接,則自動(dòng)關(guān)閉該連接。CDP的RST 報(bào)文與TCP 中的RST 報(bào)文是不一樣的。
連接建立之后,CDP 連接需要啟動(dòng)?;顧C(jī)制。TCP 連接在沒(méi)有數(shù)據(jù)通信的情況下也能保持連接,但CDP 連接不行。CDP 連接在一定時(shí)間內(nèi)如果沒(méi)有數(shù)據(jù)交互的話,將主動(dòng)發(fā)送保活LIV報(bào)文段。這個(gè)時(shí)間根據(jù)CDP 連接工作模塊不同有所差異,在NAT UDP PUNCH 模式下,默認(rèn)值為1 分鐘(大多數(shù)的NAT中,UDP會(huì)話超時(shí)時(shí)間為2-5分鐘左右);而在常規(guī)模塊下這個(gè)時(shí)間段默認(rèn)值為5分鐘。默認(rèn)值可以由用戶程序設(shè)置,用戶程序需要指明兩種模式下的?;顣r(shí)間周期。
3.4 路徑MTU 發(fā)現(xiàn)及MSS 通告
CDP連接建立過(guò)程中會(huì)通告初始MSS(Maximum Segment Size),這個(gè)值可以由用戶程序進(jìn)行設(shè)置。但這個(gè)初始值是靜態(tài)的,當(dāng)通信雙方跨越多個(gè)網(wǎng)絡(luò)時(shí),使用設(shè)置的MSS可能導(dǎo)致傳輸?shù)腎P 報(bào)文分片的產(chǎn)生。為了避免分片,CDP在數(shù)據(jù)傳輸過(guò)程中進(jìn)行動(dòng)態(tài)的路徑MTU(Maximum Transmission Unit)發(fā)現(xiàn),并進(jìn)行MSS 的更新及通告。
CDP創(chuàng)建UDP SOCKET時(shí),即將IP選項(xiàng)設(shè)置為不允許分片: Setsockopt(clientSock, IPPROTO_IP, IP_DONTFRAGMENT, (char*)&dwFlags, sizeof(dwFlag) )。
在發(fā)送數(shù)據(jù)時(shí)先以當(dāng)前MSS 大小進(jìn)行發(fā)送,如果返回值為錯(cuò)誤碼WSAEMSGSIZE(10040),則表示為報(bào)文尺寸大于MTU,需要進(jìn)行IP 分片傳輸。此時(shí),縮減MSS大小再次發(fā)送,直至不再返回錯(cuò)誤碼WSAEMSGSIZE(10040)。當(dāng)MSS 變更并能成功發(fā)送報(bào)文后,需要向?qū)Χ送▓?bào)新的MSS 值。每次MSS 縮小后,默認(rèn)隔30 秒,CDP 將默認(rèn)擴(kuò)大MSS 大小,以檢查是否路徑MTU 是否增大了,之后隔30*2 秒、30*2*2 秒進(jìn)行檢測(cè),如果三次都未發(fā)現(xiàn)MTU 增大則停止進(jìn)行檢測(cè)。網(wǎng)絡(luò)中MTU 值的個(gè)數(shù)是有限的[3]。因此MSS 的擴(kuò)大及縮減,可依據(jù)一些由近似值按序構(gòu)成的表,依照此表索引進(jìn)行MSS 值的擴(kuò)大與縮減計(jì)算。
CDP 中MSS 與MTU 之間關(guān)系的計(jì)算公式如下:MSS = MTUC20(IP首部)C8(UDP首部)C12(CDP首部)。
4 CDP應(yīng)用程序開(kāi)發(fā)接口(CDP Socket API)
使用CDP進(jìn)行網(wǎng)絡(luò)程序開(kāi)發(fā)是非常容易的,它API與標(biāo)準(zhǔn)socket API是非常相似的,對(duì)應(yīng)功能的函數(shù)名稱都相同,只是CDP的所有API都處于名稱空間CDP 之下。此程序庫(kù)的實(shí)現(xiàn)也參考了BSD Socket的實(shí)現(xiàn)。CDP Socket API列表如下:
5 結(jié)束語(yǔ)
本文提出了一種基于UDP協(xié)議之上的TCP協(xié)議實(shí)現(xiàn)――CDP協(xié)議,并對(duì)現(xiàn)實(shí)的一些關(guān)鍵部分進(jìn)行了討論,最后給出了CDP協(xié)議的應(yīng)用開(kāi)發(fā)接口。CDP協(xié)議同時(shí)具備了TCP通用、高效的特點(diǎn),有利用的UDP的NAT穿透特性,可廣泛應(yīng)用與構(gòu)建各種P2P網(wǎng)絡(luò)應(yīng)用。
參考文獻(xiàn):
[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詳解――卷Ⅰ:協(xié)議[M],機(jī)械工業(yè)出版社,2000.4.1.
關(guān)鍵詞: 流控制傳輸協(xié)議; 傳輸控制協(xié)議; 單路徑; 多路徑; 吞吐率; 延遲
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)05-03-04
Comparison study of TCP and SCTP routing protocol
He Shijie, Tong Mengjun
(School of computer science, Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: In order to get better understanding of SCTP protocol performance, the NS-2 network simulation software is utilized to compare TCP and SCTP protocols from a single path and multi path. The experimental results show that, in response to the link's deteriorating condition, the SCTP protocol has a larger throughput capacity , and also a higher stability, and it can meet the transmission requirement of high performance network.
Key words: stream control transmission protocol; transmission control protocol; single path; multi path; throughput rate; delay
0 引言
SCTP代表的是流控制傳輸協(xié)議,它是由IEFT的信令傳輸工作組(SIGTRAN)新近提出的一種面向多媒體通信的流控制協(xié)議(SCTP),用于在IP網(wǎng)絡(luò)上傳輸PSTN信令消息,即通常所說(shuō)的SS7 over IP。
在國(guó)內(nèi),1985年是流控制傳輸協(xié)議技術(shù)開(kāi)始萌芽的時(shí)期。從1985到1995年,該技術(shù)主要局限于計(jì)算機(jī)網(wǎng)絡(luò)中接人端口數(shù)據(jù)流的控制技術(shù),以防止計(jì)算設(shè)備之間大量數(shù)據(jù)互相通信時(shí)出現(xiàn)阻塞,保證更高的傳輸效率和可靠性。目前對(duì)該技術(shù)的研發(fā)仍處于較淺的層次,對(duì)整個(gè)IP網(wǎng)絡(luò)中實(shí)規(guī)PSTN信令傳輸?shù)募夹g(shù)還鮮有涉及;國(guó)內(nèi)的SCTP研究還主要側(cè)重于應(yīng)用方面,比如SCTP與TCP的比較、SCTP在移動(dòng)環(huán)境下的性能研究(例如平滑切換,移動(dòng)IP,最后一跳性能惡化問(wèn)題,基于SCTP移動(dòng)Internet傳輸模型等)、基于獨(dú)立路徑擁塞控制的SCTP負(fù)荷分擔(dān)機(jī)制研究、結(jié)合SS7的研究,以及SCTP的安全問(wèn)題研究、軍事應(yīng)用等。
國(guó)外則更側(cè)重于起草標(biāo)準(zhǔn),如:定義SCTP負(fù)荷分擔(dān)草案(多路徑同時(shí)傳輸);制定部分可靠傳輸標(biāo)準(zhǔn);提交建立SCTP偶聯(lián)后的動(dòng)態(tài)地址重配置;提交SCTP API草案;定義SCTP對(duì)移動(dòng)IP的支持;提交單播擁塞控制建議標(biāo)準(zhǔn);TCP友好可變速率控制等等。目前,IETF致力于把SCTP作為一種通用的傳輸協(xié)議。對(duì)SCTP本身的研究集中在對(duì)其功能的完善和擴(kuò)展上,主要是從兩個(gè)本質(zhì)特點(diǎn)入手:多路徑和多流。同時(shí),對(duì)SCTP應(yīng)用的研究主要集中在兩個(gè)方面:在移動(dòng)網(wǎng)絡(luò)中的應(yīng)用和對(duì)多媒體的傳輸。
本文的主要研究工作是利用NS-2構(gòu)建仿真平臺(tái),對(duì)SCTP和TCP這兩種協(xié)議進(jìn)行對(duì)比,并根據(jù)仿真的結(jié)果計(jì)算、分析和比較這兩種協(xié)議的性能,發(fā)現(xiàn)它們各自的優(yōu)缺點(diǎn)。
1 TCP和SCTP的單路徑的對(duì)比研究
單路徑的實(shí)驗(yàn)拓?fù)鋱D如圖1所示,一共有6個(gè)節(jié)點(diǎn),2個(gè)路由節(jié)點(diǎn)。其中0-2是發(fā)送節(jié)點(diǎn),5-7是相應(yīng)的接收節(jié)點(diǎn)。3個(gè)發(fā)送節(jié)點(diǎn)都綁定了FTP應(yīng)用,其中0號(hào)節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送往5號(hào)節(jié)點(diǎn),流標(biāo)簽為1;1號(hào)節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送往6號(hào)節(jié)點(diǎn),流標(biāo)簽為2;2號(hào)節(jié)點(diǎn)的數(shù)據(jù)包發(fā)送往7號(hào)節(jié)點(diǎn),流標(biāo)簽為3。設(shè)置最大的傳輸單元為1500。路由3、4間的droptail隊(duì)列大小分別為5、10。本實(shí)驗(yàn)主要更改了1號(hào)節(jié)點(diǎn)和6號(hào)節(jié)點(diǎn)的傳輸協(xié)議?,F(xiàn)在設(shè)0-5號(hào)節(jié)點(diǎn)的路徑為L(zhǎng)1,1-6號(hào)節(jié)點(diǎn)的路徑為L(zhǎng)2,2-7號(hào)的路徑為L(zhǎng)3。變量主要在L1上面。其中發(fā)送節(jié)點(diǎn)到路由節(jié)點(diǎn)3,路由節(jié)點(diǎn)4到接收節(jié)點(diǎn)的帶寬均為10Mbps,延遲均為15ms。路由節(jié)點(diǎn)3、4直接的帶寬為1.7Mbps,延遲為15ms。這樣路由節(jié)點(diǎn)3、4之間就成為接收方和發(fā)送方直接的瓶頸。
圖1 實(shí)驗(yàn)拓?fù)鋱D
實(shí)驗(yàn)一的過(guò)程是:在0.5s的時(shí)候三個(gè)節(jié)點(diǎn)同時(shí)開(kāi)始發(fā)送數(shù)據(jù),4s的時(shí)候斷開(kāi)L1,7s的時(shí)候斷開(kāi)L2。這樣做的主要目的是讓L1的數(shù)據(jù)包先在有兩個(gè)TCP傳輸協(xié)議競(jìng)爭(zhēng)的情況下進(jìn)行數(shù)據(jù)傳輸,然后逐漸斷開(kāi)其他兩個(gè)鏈路的數(shù)據(jù)傳輸,來(lái)觀察TCP和SCTP在有TCP競(jìng)爭(zhēng)條件下,數(shù)據(jù)傳輸?shù)耐掏铝?,延遲和丟包率。吞吐量如圖2所示。
圖2 實(shí)驗(yàn)一中TCP和SCTP數(shù)據(jù)的吞吐量
圖2所表示的是鏈路L2上的數(shù)據(jù)吞吐量。X坐標(biāo)軸表示時(shí)間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。紅色線表示TCP協(xié)議在droptail隊(duì)列為5時(shí)的數(shù)據(jù)吞吐量。綠色線表示TCP協(xié)議在droptail隊(duì)列為10時(shí)的數(shù)據(jù)吞吐量。藍(lán)色線為SCTP協(xié)議在droptail隊(duì)列為5時(shí)的數(shù)據(jù)吞吐量,黃色為SCTP協(xié)議在droptail隊(duì)列為10時(shí)的數(shù)據(jù)吞吐量。從圖2中可以看出,總體上SCTP的吞吐量遠(yuǎn)遠(yuǎn)高過(guò)TCP。對(duì)于SCTP來(lái)說(shuō),在droptail隊(duì)列為5的時(shí)候,其吞吐量比10的時(shí)候略高,但差距不是很大。在兩個(gè)TCP數(shù)據(jù)傳輸斷掉以后,兩種情況下的吞吐量趨于相同,而且數(shù)據(jù)吞吐量趨于穩(wěn)定??蹿厔?shì),在9s以后,droptail隊(duì)列為10的時(shí)候,其吞吐量會(huì)略大于5的時(shí)候。對(duì)于TCP協(xié)議來(lái)說(shuō),很明顯,在droptail隊(duì)列為10的時(shí)候,其吞吐量高于5的時(shí)候,在兩個(gè)TCP協(xié)議的數(shù)據(jù)傳輸都斷掉以后,數(shù)據(jù)吞吐量的增長(zhǎng)率趨于平行式增長(zhǎng)。
圖3 實(shí)驗(yàn)一中TCP和SCTP延遲對(duì)比
圖3是實(shí)驗(yàn)一中SCTP和TCP兩種協(xié)議數(shù)據(jù)傳輸延遲的對(duì)比。如圖所示,是TCP和SCTP在droptail隊(duì)列為5的時(shí)候,兩種協(xié)議延遲的對(duì)比。紅色線為T(mén)CP的延遲,綠色的為SCTP的延遲。X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r(shí)間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個(gè)時(shí)刻的延遲,單位為s。從圖3中可以看到,兩者的數(shù)據(jù)線略有交叉,SCTP的延遲略高于TCP;TCP的延遲是在一個(gè)范圍內(nèi)上下波動(dòng),而SCTP的延遲呈一種階段性的梯度變化。從這里也可以看出兩種數(shù)據(jù)傳輸?shù)牟顒e:TCP在鏈路達(dá)到穩(wěn)定的時(shí)候,每次傳輸?shù)臄?shù)據(jù)量一定;而SCTP的數(shù)據(jù)傳輸,在沒(méi)有擁塞避免的情況下,是呈指數(shù)增長(zhǎng)的。
根據(jù)實(shí)驗(yàn)一的拓?fù)鋱D,更改鏈路L1和L3的數(shù)據(jù)傳輸時(shí)間,此為實(shí)驗(yàn)二。在0.5s的時(shí)候1號(hào)節(jié)點(diǎn)開(kāi)始發(fā)送數(shù)據(jù),在1.5s的時(shí)候0號(hào)節(jié)點(diǎn)開(kāi)始發(fā)送數(shù)據(jù),在4.5s的時(shí)候3號(hào)節(jié)點(diǎn)開(kāi)始發(fā)送數(shù)據(jù),在7.5s的時(shí)候?qū)1和L3兩條鏈路斷開(kāi)連接,8s的時(shí)候結(jié)束數(shù)據(jù)傳輸。通過(guò)觀察TCP和SCTP協(xié)議在逐漸有一個(gè)TCP協(xié)議和兩個(gè)TCP協(xié)議競(jìng)爭(zhēng)的條件下的數(shù)據(jù)吞吐量,延遲和丟包率來(lái)對(duì)比兩種協(xié)議。
圖4 實(shí)驗(yàn)二中TCP和SCTP兩種協(xié)議的數(shù)據(jù)吞吐量
在圖4中,表示的是鏈路L2上的數(shù)據(jù)吞吐量。X坐標(biāo)軸表示時(shí)間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。紅色線表示TCP協(xié)議在droptail隊(duì)列為5時(shí)的數(shù)據(jù)吞吐量。綠色線表示TCP協(xié)議在droptail隊(duì)列為10時(shí)的數(shù)據(jù)吞吐量。藍(lán)色線為SCTP協(xié)議在droptail隊(duì)列為5時(shí)的數(shù)據(jù)吞吐量,黃色為SCTP協(xié)議在droptail隊(duì)列為10時(shí)的數(shù)據(jù)吞吐量。從圖4中可以看出,總體上來(lái)說(shuō),在相同的droptail隊(duì)列值的情況下,SCTP的吞吐量遠(yuǎn)大于TCP的吞吐量。在兩個(gè)TCP競(jìng)爭(zhēng)數(shù)據(jù)傳輸出現(xiàn)后,它們的吞吐量都有一個(gè)短暫性的下降,然后繼續(xù)趨于上升。在8.0s的時(shí)候,兩種協(xié)議的吞吐量開(kāi)始趨于穩(wěn)定。
對(duì)比實(shí)驗(yàn)一和實(shí)驗(yàn)二中數(shù)據(jù)吞吐量的圖,我們看到,由于實(shí)驗(yàn)一和實(shí)驗(yàn)二的區(qū)別在于競(jìng)爭(zhēng)的TCP協(xié)議出現(xiàn)的時(shí)間不同,在實(shí)驗(yàn)一的環(huán)境下,SCTP在有其他協(xié)議競(jìng)爭(zhēng)的條件下,能夠更容易、更快地達(dá)到數(shù)據(jù)吞吐的穩(wěn)定狀態(tài),這樣非常有利于數(shù)據(jù)的傳輸。
圖5是實(shí)驗(yàn)二中鏈路L2在droptail隊(duì)列值為10的時(shí)候的延遲對(duì)比。紅色線為T(mén)CP的延遲,綠色的為SCTP的延遲。X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r(shí)間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個(gè)時(shí)刻的延遲,單位為s。由圖5中可以看出,SCTP與TCP延遲隨時(shí)間的走勢(shì)相互交叉,與實(shí)驗(yàn)一中的情形類似,SCTP的延遲略高于TCP。
圖5 實(shí)驗(yàn)二TCP和SCTP的延遲對(duì)比
圖6 TCP和SCTP競(jìng)爭(zhēng)時(shí)的延遲和吞吐量
圖6是在實(shí)驗(yàn)一環(huán)境下,SCTP和TCP相互競(jìng)爭(zhēng)下的延遲和吞吐量的對(duì)比,主要是鏈路L2和L3的對(duì)比,紅色線表示的是TCP,綠色線表示TCP。圖6上圖中,X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r(shí)間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個(gè)時(shí)刻的延遲,單位為s;圖6下圖中,X坐標(biāo)軸表示時(shí)間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。從圖6中可以看出,情況基本與上面的實(shí)驗(yàn)保持一致。在相同的droptail隊(duì)列值的情況下,SCTP的吞吐量遠(yuǎn)大于TCP,但是TCP和SCTP的延遲相互交叉,SCTP延遲略高于TCP。
2 TCP和SCTP的多路徑的對(duì)比研究
多路徑的實(shí)驗(yàn)拓?fù)鋱D如圖7所示,節(jié)點(diǎn)0-2合起來(lái)是一個(gè)發(fā)端,節(jié)點(diǎn)3-5合起來(lái)是一個(gè)收端。0是核心節(jié)點(diǎn),1、2是接口,即該端點(diǎn)的兩個(gè)IP地址;3也是核心節(jié)點(diǎn),4、5也是接口,也即該端點(diǎn)的兩個(gè)IP地址。1和4路徑命名為if0;2和5路徑命名為if1。
在SCTP傳輸過(guò)程中,數(shù)據(jù)只能從接口發(fā)或收,不能直接從核心節(jié)點(diǎn)發(fā)或收。該實(shí)驗(yàn)過(guò)程為:應(yīng)用層傳輸FTP數(shù)據(jù),在0.5s后開(kāi)始傳輸;在第5s前,路徑if0、if1的帶寬為5M,時(shí)延為50ms;在第5s,路徑if0性能惡化,帶寬變成1M,時(shí)延變?yōu)?00ms;在第8s,傳輸結(jié)束。
圖7 SCTP多路徑仿真拓?fù)鋱D
由于TCP沒(méi)有多路徑這個(gè)特點(diǎn),所以,要與SCTP作對(duì)比,只能重新建立拓?fù)鋱D。拓?fù)鋱D如圖8所示:數(shù)據(jù)傳輸過(guò)程和SCTP一樣,應(yīng)用層傳輸FTP數(shù)據(jù),在0.5s后開(kāi)始傳輸;在第5s的時(shí)候鏈路發(fā)生惡化,帶寬變成1M,時(shí)延變?yōu)?00毫秒;在第8s,傳輸結(jié)束。
圖8 相應(yīng)的TCP拓?fù)鋱D
對(duì)于這兩種協(xié)議延遲方面的比較,我們?cè)谏弦还?jié)中已經(jīng)有過(guò)很詳細(xì)的對(duì)比,所以在這里,主要針對(duì)兩種協(xié)議在多路徑的情況下,對(duì)數(shù)據(jù)吞吐量作比較,如圖9所示。
圖9 多路徑下TCP與SCTP吞吐量的比較
如圖9,其中為了表示自己搭建的TCP網(wǎng)絡(luò)和SCTP網(wǎng)絡(luò)有對(duì)比性,所以測(cè)試了在圖8中拓?fù)鋱D中SCTP數(shù)據(jù)的吞吐量,如圖9中的綠線。從圖中來(lái)看,在6.5s以前兩種拓?fù)鋱D中SCTP的數(shù)據(jù)吞吐量完全吻合,這樣看來(lái),兩種拓?fù)鋱D是具有可比性的。圖中藍(lán)色線表示TCP協(xié)議的吞吐量,黃色線表示if0路徑上SCTP的吞吐量,紅色線表示if1路徑是SCTP的吞吐量。X坐標(biāo)軸表示時(shí)間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。從圖9中看,5s之前鏈路沒(méi)有惡化,SCTP默認(rèn)if0是主路徑,5s之后鏈路if0惡化,吞吐量開(kāi)始下降,此時(shí),因?yàn)橛辛硪粭l路徑if1的存在,而且鏈路狀態(tài)比if0好,SCTP開(kāi)始將if1作為主路徑進(jìn)行傳輸,圖中if1的吞吐量開(kāi)始上升,由此可以看出,SCTP的吞吐量在經(jīng)過(guò)一段時(shí)間的降低之后,會(huì)恢復(fù)原來(lái)的吞吐量,使數(shù)據(jù)傳輸不受影響。由圖9可以看出,TCP在路徑出現(xiàn)惡化的時(shí)候,吞吐量開(kāi)始下降,如果路徑得不到緩解,吞吐量會(huì)受到很大的影響。由此可以看出,SCTP多路徑的特點(diǎn)較TCP存在很大的優(yōu)勢(shì)。我們?cè)賮?lái)分析路徑if0數(shù)據(jù)傳輸與時(shí)間的關(guān)系,如圖10所示。圖10中有上(紅色)、中(綠色)、下(藍(lán)色)三條線。上線(紅色)代表 SCTP 把數(shù)據(jù)包發(fā)送到緩存,即入隊(duì)列;中線(綠色)代表數(shù)據(jù)包從緩存注入到網(wǎng)絡(luò),即出隊(duì)列;下線(藍(lán)色)代表數(shù)據(jù)包從收端反饋回來(lái)的證實(shí) SACK??v坐標(biāo)代表所發(fā)送的數(shù)據(jù)包序列號(hào),橫坐標(biāo)代表時(shí)間,斜率指示傳輸速率(下面類似圖的信息也是這樣的)。在第5s,帶寬和時(shí)延發(fā)生變化,路徑性能變差,所以第5s后的斜率小于第5s前的斜率,即第5s后的傳輸速率小于第5s前的傳輸速率。
圖10 if0上數(shù)據(jù)傳輸與時(shí)間的關(guān)系
3 結(jié)束語(yǔ)
本文主要是通過(guò)NS-2構(gòu)建仿真平臺(tái),對(duì)TCP和SCTP在單路徑和多路徑的條件下進(jìn)行對(duì)比。通過(guò)兩個(gè)實(shí)驗(yàn)對(duì)比發(fā)現(xiàn),兩種協(xié)議在數(shù)據(jù)傳輸?shù)难舆t方面,SCTP協(xié)議略高于TCP協(xié)議,相差不是很大,但是SCTP的數(shù)據(jù)吞吐量遠(yuǎn)遠(yuǎn)大于TCP協(xié)議。由于SCTP具有多路徑和多重定址的特點(diǎn),在應(yīng)對(duì)鏈路惡化的情況時(shí),SCTP表現(xiàn)出更高的穩(wěn)定性。作為一個(gè)新的傳輸協(xié)議,SCTP還具有很大的發(fā)展空間,SCTP較TCP更能滿足高性能傳輸?shù)囊螅S著IP網(wǎng)絡(luò)的迅猛發(fā)展,SCTP一定會(huì)有更廣闊的應(yīng)用空間。
參考文獻(xiàn):
[1] Esbold Unurkhaan, Erwin P, Andreas Jungmaier. Secure SCTP-A
Versatile Secure Transport Protocol[J].Springer,2004.10(3):273
[2] V. Jaclbson. Congestion Avoidance and Contrl[J].ACM SIGCOMN,
1988.36(2):273
[3] K.Fall and S.Floyd.Simulation-based comparisons of Tahoe Reno
and SACK TCP[J]. ACM Computer Communication Review,1996.26(3):5
[4] L.Brakmo and L.Peterson.TCP Vegas:End to End Congestion
Avoidance on a Gloabal Internet[J]. IEEE Journal on Selected Areas in Communication,1995.13(8):1465
[5] 周開(kāi)波,劉桐,蔣皓等.mSCTP協(xié)議異構(gòu)網(wǎng)絡(luò)切換性能評(píng)估[J].現(xiàn)代電
信科技,2011.3(3):19
[6] 方路平,劉世華,陳盼等.NS-2網(wǎng)絡(luò)模擬基礎(chǔ)與應(yīng)用[M].國(guó)防工業(yè)出
版社,2008.
[7] 胡文靜.SCTP主路徑自動(dòng)切換的研究[D].吉林大學(xué)碩士學(xué)位論文,
2006.
[8] 葉凌偉,陳雁.SCTP與TCP的功能對(duì)比及應(yīng)用分析[J].中國(guó)數(shù)據(jù)通
信,2003.1(2):43
[9] 賀,張繼棠.流控傳輸協(xié)議SCTP的研究[J].山西電子技術(shù),
2005.11(5):21
[10] 黃曉波,鄭應(yīng)平.流控制傳輸協(xié)議與TCP協(xié)議的比較[J].微型機(jī)與應(yīng)
用,2005.7(6):37
[11] 成為青.流控制傳輸協(xié)議概述[J].電子電氣教學(xué)學(xué)報(bào),2003.4(2):31
關(guān)鍵詞:TCP協(xié)議;網(wǎng)絡(luò)安全;協(xié)議攻擊;安全防御
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào):1009-3044(2007)15-30682-01
Security Problems Study in the TCP/IP Protocol
LI Bei
(The Information Management Department,University of Qinghai Finance and Economics College, Xining 810001, China)
Abstract:The TCP/IP protocol use very extensive now, but it oneself also have the some the blemish on the safety.I described every kind of each kind aims at the attack of these blemishses, including the preface row number attack, SYN Flood attack.Put forward the defense method that some to these attackstone.
Key words:TCP protocol;Network security;Protocol attack;Protocol security.
1 引言
TCP協(xié)議現(xiàn)在用得非常廣泛,但除了對(duì)它不正確使用造成不安全因素外,它本身也有一些安全上的缺陷。一些缺陷
是由于主機(jī)使用IP源地址作為認(rèn)證機(jī)制引起的;Berkeley 的r系列調(diào)用就是一個(gè)明顯的例子。其它的一些缺陷是由于網(wǎng)絡(luò)控制機(jī)制,特別是路由協(xié)議,缺少認(rèn)證機(jī)制引起的。
描述這些攻擊的前提是攻擊者或多或少控制了某些連在互聯(lián)網(wǎng)上的機(jī)器。被控制的機(jī)器有的是因?yàn)楸旧碛新┒矗械氖亲陨頉](méi)有保護(hù)機(jī)制的個(gè)人電腦。也有可能攻擊者是一個(gè)系統(tǒng)管理員。
我不討論協(xié)議具體應(yīng)用上的漏洞,比如被互聯(lián)網(wǎng)“蠕蟲(chóng)”利用的漏洞。討論的是協(xié)議本身的問(wèn)題。只要小心地使用這些協(xié)議,有些問(wèn)題是可以避免的;我也不討論經(jīng)典的網(wǎng)絡(luò)攻擊,比如切斷物理線路,篡改或插入消息,而主要討論的是僅僅由于協(xié)議本身引起的問(wèn)題。
本文所討論的協(xié)議是Berkeley(早期的TCP/IP協(xié)議)協(xié)議,因?yàn)樗鼘?shí)際上已成為大部分廠商的標(biāo)準(zhǔn),而不僅僅是UNIX系統(tǒng)。
2 TCP序列號(hào)預(yù)測(cè)攻擊
TCP序列號(hào)預(yù)測(cè)攻擊最早是1985年由Robort.Morris對(duì)這一安全漏洞進(jìn)行闡述的。他使用TCP序列號(hào)預(yù)測(cè),即使是沒(méi)有從服務(wù)器得到任何響應(yīng), 來(lái)產(chǎn)生一個(gè)TCP包序列。這使得他能欺騙在本地網(wǎng)絡(luò)上的主機(jī)。
2.1 攻擊方法
TCP協(xié)議有一個(gè)非常令人著迷的漏洞,簡(jiǎn)單的說(shuō),就是通過(guò)預(yù)測(cè)初始序列號(hào)來(lái)偽造TCP包,并且不需要得到回應(yīng)。這樣就可以使攻擊者偽裝成一臺(tái)和服務(wù)器在同一個(gè)局域網(wǎng)上的一臺(tái)可信任的機(jī)器。
通常建立TCP連接需要三次握手??蛻魴C(jī)送一個(gè)初始序列號(hào)ISNc,服務(wù)器應(yīng)答它并送出它自己的序列號(hào)ISNs,客戶機(jī)再發(fā)出一個(gè)應(yīng)答包。這三個(gè)數(shù)據(jù)包發(fā)送以后,就可以傳輸數(shù)據(jù)了。這個(gè)
過(guò)程可以用下圖來(lái)表示:
C->S:SYN(ISNc)
S->C:SYN(ISNs),ACK(ISNc)
C->S:ACK(ISNs)
C->S:data
and/or
S->C:data
這就是說(shuō),要使一個(gè)連接建立起來(lái),C必須知道ISNs,這個(gè)數(shù)多少有一些隨機(jī)性。
假設(shè)入侵者X有一種方法可以預(yù)測(cè)ISNs。在這種情況下,他可以通過(guò)以下的步驟來(lái)模仿可信任的主機(jī)T:
X->S:SYN(ISNx),SRC=T
S->T:SYN(ISNs),ACK(ISNx)
X->S:ACK(ISNs),SRC=T
X->S:ACK(ISNs),SRC=T,nasty-data
即使S->T的數(shù)據(jù)包不經(jīng)過(guò)X,X也能知道它的內(nèi)容,因此能發(fā)送數(shù)據(jù)。如果X在一個(gè)能夠執(zhí)行命令的連接上實(shí)行這種攻擊(例如,Berkeley rsh 服務(wù)),他就可以運(yùn)行一些惡意的命令。
那么怎樣預(yù)測(cè)隨機(jī)的ISN呢?在Berkeley系統(tǒng)中,初始序列號(hào)變量是以每秒固定的數(shù)目遞增的,而每次連接的序列號(hào)就是這個(gè)變量的一半。因此,如果有人通過(guò)合法的連接觀察ISNs,他就有很大的機(jī)會(huì)通過(guò)計(jì)算得到下一次連接的ISNs。應(yīng)該指出的是服務(wù)器的應(yīng)答消息
S->T:SYN(ISNs),ACK(ISNx)
并沒(méi)有消除這種攻擊;雖然真正的T主機(jī)將接收到它,并且會(huì)重設(shè)連接。這并不是一個(gè)嚴(yán)重的障礙,因?yàn)槲覀兛梢酝ㄟ^(guò)一些拒絕服務(wù)的攻擊使T主機(jī)暫時(shí)失效,也可以在T主機(jī)關(guān)機(jī)或重起的時(shí)候攻擊。
還有一種通過(guò)netstat服務(wù)對(duì)TCP序列號(hào)進(jìn)行的攻擊。在這種攻擊中,入侵者模仿一臺(tái)關(guān)閉的主機(jī)。如果在目標(biāo)機(jī)上有netstat服務(wù),它就會(huì)提供另一個(gè)端口必要的序列號(hào)信息;這樣就根本不需要猜測(cè)了。
2.2 防御
很明顯,這種攻擊的關(guān)鍵是Berkeley系統(tǒng)中初始序列號(hào)變量變化方式太簡(jiǎn)單了。TCP標(biāo)準(zhǔn)要求這個(gè)變量必須以每秒鐘將近250,000的速度增長(zhǎng);Berkerey系統(tǒng)則使用了一個(gè)比它慢得多的速度。然而關(guān)鍵的因素是間隔的大小而不是平均速度。從4.2BSD系統(tǒng)的每秒增加128到4.3BSD的每秒增加125,000的改變是沒(méi)有意義的。
下面讓我們來(lái)看看以250,000的頻率運(yùn)行是否有用。為了簡(jiǎn)單起見(jiàn),我忽略了其它連接產(chǎn)生的問(wèn)題,僅僅考慮本計(jì)數(shù)器固定速度的改變:
為了知道當(dāng)前的序列號(hào),必須發(fā)送一個(gè)SYN包,并接收它的回應(yīng),如下:
X->S:SYN(ISNx)
(上接第682頁(yè))
S->X:SYN(ISNs),ACK(ISNx) (1)
第一個(gè)使服務(wù)器產(chǎn)生下一序列號(hào)的偽造的數(shù)據(jù)包,可以緊跟在服務(wù)器對(duì)探測(cè)包的回應(yīng)后送出:
X->S:SYN(ISNx),SRC=T (2)
序列號(hào)ISNs在應(yīng)答中使用
S->T:SYN(ISNs),ACK(ISNx)
它是由數(shù)據(jù)包(1)產(chǎn)生到服務(wù)器接收到數(shù)據(jù)包(1)之間的時(shí)間唯一確定的。但是這個(gè)時(shí)間是由X到S的來(lái)回時(shí)間確定的。因此如果攻擊者能夠測(cè)量或預(yù)測(cè)到這個(gè)時(shí)間,即使使用一個(gè)能精確的4μ秒的時(shí)鐘也不能阻止這種攻擊。
對(duì)來(lái)回時(shí)間的測(cè)量能精確到什么程度呢?如果假設(shè)網(wǎng)絡(luò)很穩(wěn)定,我們可以精確到10毫秒左右。很明顯,互聯(lián)網(wǎng)不可能長(zhǎng)期這么穩(wěn)定,但是卻有可能在一個(gè)較短的時(shí)間內(nèi)穩(wěn)定。因此我們有2500個(gè)ISNs的可能值??紤]到重新測(cè)量來(lái)回時(shí)間所需的時(shí)間,我們假設(shè)每次嘗試需要化5秒,那么一個(gè)攻擊者很可能在7500秒內(nèi)獲得成功。條件更好的網(wǎng)絡(luò)或更精確的測(cè)量,能夠提高成功的可能性。因此,僅僅是按TCP協(xié)議標(biāo)準(zhǔn)是不行的。
在這里,我們默認(rèn)的假設(shè)是目標(biāo)機(jī)上不運(yùn)行任何進(jìn)程。實(shí)際上,當(dāng)新的請(qǐng)求到達(dá)時(shí),是會(huì)運(yùn)行一些進(jìn)程的。在一個(gè)6MIPS的機(jī)器上,一個(gè)時(shí)鐘周期-4μ秒-大約可執(zhí)行25條指令。高優(yōu)先級(jí)的中斷,TCB分配順序的不同,都對(duì)下一個(gè)序列號(hào)有相當(dāng)大影響。這種隨機(jī)的效果是被認(rèn)為是主機(jī)的優(yōu)點(diǎn)。必須注意的是,越快的主機(jī)越容易攻擊,這是由于它執(zhí)行指令的時(shí)間會(huì)減少,因此對(duì)初始序列號(hào)增加的影響也會(huì)減少。當(dāng)然,CPU的速度增加是很快的。
另一個(gè)對(duì)付序列號(hào)攻擊的方法是:隨機(jī)的增加初始序列號(hào)變量。必須要全部位都是隨機(jī)的,如果假設(shè)只有低8位是隨機(jī)的,那么增加的間隔也是容易猜測(cè)的。我們應(yīng)該結(jié)合使用好的間隔增量和一個(gè)小的隨機(jī)數(shù)發(fā)生器或使用一個(gè)32位隨機(jī)數(shù)發(fā)生器。注意,有很多假的隨機(jī)數(shù)產(chǎn)生器是很容易倒轉(zhuǎn)的。實(shí)際上,假設(shè)大部分這種產(chǎn)生器是通過(guò)它的輸出的反饋來(lái)工作的,入侵者就可以通過(guò)簡(jiǎn)單的計(jì)算來(lái)得到下一個(gè)隨機(jī)數(shù)。有些技術(shù)使用32位發(fā)生器,但僅僅使用它的16位,用窮舉攻擊法就可以得到它的結(jié)果。我們必須最少把隨機(jī)數(shù)的16用在每一次增加中,以使網(wǎng)絡(luò)探測(cè)失效,但是用于防御搜索結(jié)果的位就太少了。要通過(guò)更多的研究和仿真來(lái)決定合適的參數(shù)。
與其用這么大的數(shù),不如對(duì)ISNs加密。數(shù)據(jù)加密標(biāo)準(zhǔn)算法(DES)加上一個(gè)簡(jiǎn)單的計(jì)數(shù)器是一個(gè)很好的選擇。也可以在輸出反饋模式使用DES而不要計(jì)數(shù)器。不管用哪一種方法,都必須小心的選擇密匙。在當(dāng)今使用開(kāi)機(jī)時(shí)間是不行的,入侵者能夠取得足夠多的關(guān)于開(kāi)機(jī)時(shí)間的信息,從而實(shí)現(xiàn)窮舉攻擊。但是如果開(kāi)機(jī)時(shí)間用密匙加密后,隨機(jī)數(shù)產(chǎn)生器就很難破解了。初始序列號(hào)產(chǎn)生器的性能是沒(méi)問(wèn)題的。每一次連接只需要產(chǎn)生一個(gè)初始序列號(hào),即使使用軟件來(lái)實(shí)DES加密也足夠了。
還有一些防御措施包括做好日志和報(bào)警系統(tǒng)。測(cè)量來(lái)回時(shí)間通常是用ICMP報(bào)文來(lái)實(shí)現(xiàn)的,我們可以記錄超常的ping請(qǐng)求。也可以記錄短時(shí)間的、不完全的tcp連接請(qǐng)求。同樣,偽裝一臺(tái)活動(dòng)的主機(jī)會(huì)產(chǎn)生異常的RST包,這些都應(yīng)該被記錄下來(lái)。
3 SYN Floods攻擊
3.1 什么是SYN Floods攻擊
SYN Floods攻擊是以TCP/IP協(xié)議的三次握手為基礎(chǔ)的,所以要了解SYN Floods攻擊,必須了解TCP/IP協(xié)議的三次握手,這在前面已經(jīng)介紹過(guò)了。
SYN Floods攻擊就是通過(guò)一些工具如SYN Flooders或通過(guò)raw socket編程向目標(biāo)機(jī)發(fā)送一些源地址不存在的SYN數(shù)據(jù)包,目標(biāo)機(jī)收到這些數(shù)據(jù)包后就會(huì)發(fā)出應(yīng)答并等待回應(yīng),然而由于源地址的主機(jī)不存在,所以目標(biāo)機(jī)因得不到回應(yīng)而一直等待,直到超時(shí)。如果有人向目標(biāo)機(jī)發(fā)送大量這樣的數(shù)據(jù)包,目標(biāo)機(jī)就會(huì)因?yàn)榻邮者B接的隊(duì)列填滿而不再接受連接請(qǐng)求,這樣目標(biāo)機(jī)就暫時(shí)失效了,因此SYN Floods攻擊是一種拒絕服務(wù)的攻擊。大部分這種攻擊只是使服務(wù)器不再接受連接而不影響已經(jīng)建立起來(lái)的連接;但在有些情況下,會(huì)使系統(tǒng)內(nèi)存不足而導(dǎo)致系統(tǒng)崩潰。這種攻擊比較難以預(yù)防,因?yàn)楫?dāng)三次握手的第一個(gè)SYN數(shù)據(jù)包到來(lái)的時(shí)候,沒(méi)有辦法知道它的源地址是真的還是偽造的。
3.2 解決方法
有兩種方法可以緩解或禁止這種攻擊。第一種是SYN Storm Modifications,另一種是SYN Cookies。
SYN Storm Modifications(也叫Adaptive Time-Outs):
這種方法是通過(guò)稍微修改算法以使TCP連接請(qǐng)求隊(duì)列中能容納更多的TCP連接請(qǐng)求(可以有成千上萬(wàn)個(gè)連接請(qǐng)求)。通過(guò)修改算法,就能夠緩解或阻止這種攻擊。這種修改已被應(yīng)用在Unix 環(huán)境中(SunOS,FreeBSD,OpenBSD 和 NetBSD),不過(guò)就我所知,微軟還沒(méi)有采用這種技術(shù)。
SYN Cookies:
這種技術(shù)通過(guò)在TCP包頭中的特定字段抽出一個(gè)秘密數(shù)字,SYN Floods 攻擊幾乎能被防止。這個(gè)抽出的數(shù)字必須包含包頭其它部分的索引。把這個(gè)信息用不可逆算法加密,并把它作為應(yīng)答包頭的一部分。當(dāng)有一個(gè)ACK包到達(dá)時(shí),把包頭中的加密字與服務(wù)器上的作比較,如果相同就建立連接,不同就把這個(gè)包丟棄,并且三次握手沒(méi)有完成。用這種方法,服務(wù)器不需要等,因此SYN Floods攻擊被禁止了。
4 總結(jié)
以上介紹了由于TCP協(xié)議本身缺陷所引起的兩種攻擊及其防御對(duì)策,在這兩種防御對(duì)策中,都用到了加密技術(shù)。加密技術(shù)對(duì)網(wǎng)絡(luò)安全是非常重要的,因?yàn)橄到y(tǒng)的漏洞是不可避免的,因此沒(méi)有絕對(duì)安全的系統(tǒng)。而加密技術(shù)可以使你的系統(tǒng)在被入侵后,把損失減到最小。從本文可以也可以看出,加密技術(shù)對(duì)預(yù)防攻擊也是很有效的。
參考文獻(xiàn):
[1] HILL G R,et al.Ptransport network layer based on optical network elements[J].LightwaveTechnol.,1998,11:887-879.
[2] D.S.Siyan,P>Rybaczyk,Ware 實(shí)現(xiàn)網(wǎng)際互聯(lián)[M].清華大學(xué)出版社,1998.
關(guān)鍵詞:NDK; TMS320DM642; TCP/ IP
1、 NDK 的結(jié)構(gòu)
TI公司依據(jù)C6000芯片推出了TCP/IP NDK(Network Developer's Kit)開(kāi)發(fā)套件, 其主要構(gòu)成包括: (1)支持TCP/IP 協(xié)議棧程序庫(kù)。其中主要含有的庫(kù): 支持TCP/IP網(wǎng)絡(luò)工具的庫(kù),支持TCP/IP 協(xié)議棧與DSP/BIOS平臺(tái)的庫(kù),網(wǎng)絡(luò)控制以及線程調(diào)度的庫(kù)。(2)示范程序。其中主要包括DHCP/Telnet 客戶端, HTTP 數(shù)據(jù)服務(wù)器示范。(3)支持文檔。包含用戶手冊(cè)、程序員手冊(cè)和平臺(tái)適應(yīng)手冊(cè)。NDK 采用緊湊的設(shè)計(jì)方法, 實(shí)現(xiàn)了用少量的資源耗費(fèi)來(lái)支持TCP/IP。從實(shí)用效果來(lái)看, NDK僅用200-250K程序空間和95K 數(shù)據(jù)空間即可完成常規(guī)的TCP/IP 服務(wù)。
NDK相對(duì)于操作系統(tǒng)和底層硬件是透明的, 因?yàn)檫@是由OS。LIB 提供操作系統(tǒng)DSP/BIOS的接口和HAL。LIB 提供對(duì)硬件的支持來(lái)實(shí)現(xiàn)的。在NDK的TCP/IP協(xié)議棧中STACK。LIB 包括了頂層套接字到底層鏈路層的所有功能, NETCTRL。LIB在整個(gè)協(xié)議棧中起關(guān)鍵作用, 協(xié)調(diào)操作系統(tǒng)和底層硬件驅(qū)動(dòng), 管理所有網(wǎng)絡(luò)事件, NETTOOL。LIB 提供配置網(wǎng)絡(luò)各種服務(wù)。
2、NDK 在DSP/BIOS 下的使用
DSP/BIOS 是TI 開(kāi)發(fā)的實(shí)時(shí)微型操作系統(tǒng), 支持線程管理、實(shí)時(shí)分析、周期函數(shù)、調(diào)度軟件中斷以及外部硬件中斷與各種外設(shè)的管理。使用DSP/BIOS 所有與硬件有關(guān)的操作都必須借助操作系統(tǒng)本身提供的函數(shù)完成, 應(yīng)避免直接控制硬件資源。基于DSP/BIOS 的程序與傳統(tǒng)開(kāi)發(fā)過(guò)程是不同的, 用戶編寫(xiě)的程序由DSP/BIOS 調(diào)度, 不再按標(biāo)寫(xiě)的次序順序執(zhí)行。同樣開(kāi)發(fā)基于DSP/BIOS的網(wǎng)絡(luò)應(yīng)用程序也必須要遵循一些原則。
在DSP/BIOS 下使用NDK 必須注意以下幾點(diǎn): (1) 為了保證使用NDK 的工程項(xiàng)目能正確編譯, 在CCS 的Link Order 要按一定的順序添加庫(kù)文件, 推薦的順序是: NETCTRL。LIB、HAL_xxxLIB、STACK。LIB、OS。LIB; (2)在使用NDK 的過(guò)程當(dāng)中, OS和HAL 會(huì)創(chuàng)建三個(gè)內(nèi)存段, 分別是PACKETMEM、MMBUFFER、OBJMEM, 必須在CMD 文件中為這三個(gè)段在內(nèi)存中分配存儲(chǔ)空間;(3) 至少要使用32K 的cache, 否則應(yīng)用程序會(huì)產(chǎn)生不可預(yù)料的錯(cuò)誤;(4) 必須在CDB文件中為HAL 創(chuàng)建一個(gè)周期為100ms 的PRD 函數(shù), 用來(lái)驅(qū)動(dòng)llTimerTick()系統(tǒng)函數(shù);(5) OS 需要鉤子函數(shù)為T(mén)CP/IP 堆棧加載和保存私人變量指針, 所以必須在CDB 文件中創(chuàng)建兩個(gè)鉤子函數(shù)NDK_hookInit()和NDK_hookCreate();(6)必須把工程項(xiàng)目的IncludeSearching Path 指向NDK 安裝目錄下的inc 文件夾。
3、NDK 性能測(cè)試
測(cè)試NDK性能既有主觀性又有客觀性。主觀性適應(yīng)為實(shí)際測(cè)試要受到很多環(huán)境因素的影響??陀^性是因?yàn)槭褂脴?biāo)準(zhǔn)的工具,并且結(jié)果可重現(xiàn)。 所以只能是性能的估計(jì)性測(cè)試。影響NDK性能的主要因素有:
socket API: NDK既支持非拷貝的數(shù)據(jù)包socket,也支持基于緩沖區(qū)的典型socket,甚至非拷貝的直接接收的TCP數(shù)據(jù)流。性能隨所采用的策略變化而變化。
socket 緩沖區(qū): socket緩沖區(qū)影響TCP發(fā)送和接收的窗口大小,并且決定每次發(fā)送數(shù)據(jù)流大小,這對(duì)網(wǎng)絡(luò)性能有很大的影響。
CPU速度:在cache大小一定的情況下,網(wǎng)絡(luò)性能與CPU速度成正比。CPU cache: cache的大小對(duì)網(wǎng)絡(luò)性能有巨大的影響。
網(wǎng)絡(luò)硬件設(shè)備:以太網(wǎng)硬件設(shè)計(jì)的好壞直接影響DSP和網(wǎng)絡(luò)接口的速度。
外部存儲(chǔ)器(EMIF)接口:對(duì)于和DSP外部存儲(chǔ)器接口相連的以太網(wǎng)設(shè)備, EMIF的速度對(duì)外部解碼邏輯有額外的影響。
下面的測(cè)試由TI提供,測(cè)試不僅兼顧最佳的性能而且考慮到應(yīng)用的實(shí)際情況,比如socket緩沖區(qū)大小為8K,而不是32K 或64K,因?yàn)檫@在嵌入式設(shè)備中是不切實(shí)際的。測(cè)試的過(guò)程是DSP執(zhí)行低優(yōu)先級(jí)的網(wǎng)絡(luò)任務(wù),PC機(jī)執(zhí)行客戶基準(zhǔn)測(cè)試程序, 然后與DSP不執(zhí)行網(wǎng)絡(luò)任務(wù)時(shí)CPU的負(fù)載情況做對(duì)比。
4 、結(jié)論
TI推出的NDK網(wǎng)絡(luò)開(kāi)發(fā)工具不僅可以使技術(shù)人員快速開(kāi)發(fā)基于DSP的網(wǎng)絡(luò)應(yīng)用程序,而且具有十分可靠的性能,這使得C6000系列芯片完全可以勝任大數(shù)據(jù)量的視頻網(wǎng)絡(luò)傳輸?shù)囊螅情_(kāi)發(fā)嵌入式網(wǎng)絡(luò)視頻設(shè)備的首選。
參考文獻(xiàn)
[1]Texas Instrument。TMS320C6000 Programmer ' s Guide(Rev。 I)。
【關(guān)鍵詞】TCP 協(xié)議;有色Petri網(wǎng);形式化描述;可達(dá)樹(shù)
隨著數(shù)據(jù)通信和網(wǎng)絡(luò)的發(fā)展,現(xiàn)在TCP/IP(Transfer Control Protocol/Internet Protocol)協(xié)議簇成為占主導(dǎo)地位的網(wǎng)絡(luò)體系結(jié)構(gòu),被廣泛的使用。有色Petri網(wǎng)(Colored Petri Net,CPN)是由丹麥的Jensen Kurt于1981年在Petri網(wǎng)基礎(chǔ)上定義的一種具有層次性的高級(jí)Petri網(wǎng)。利用在計(jì)算機(jī)上開(kāi)發(fā)的CPN的建模分析工具──CPN Tools,可以建立描述系統(tǒng)的CPN靜態(tài)模型,并對(duì)系統(tǒng)模型的動(dòng)態(tài)行為進(jìn)行仿真,分析系統(tǒng)的分布、并發(fā)、同步、異步等特性,以及建立系統(tǒng)模型的狀態(tài)空間并分析系統(tǒng)的活性問(wèn)題、可達(dá)性問(wèn)題等。由于CPN具有嚴(yán)格的網(wǎng)理論形式化的數(shù)學(xué)描述、上述的特性以及建模工具提供的仿真分析功能,因此在網(wǎng)絡(luò)通信協(xié)議的驗(yàn)證和分析上得到了廣泛的應(yīng)用。
一、TCP協(xié)議連接的建立過(guò)程
TCP是一個(gè)可靠的,面向連接的,端到端的傳輸協(xié)議,它提供了具有流量控制的可靠的數(shù)據(jù)傳輸。TCP的連接建立稱為“三次握手”。(1)客戶發(fā)送第一個(gè)報(bào)文段,SYN報(bào)文段,在這個(gè)報(bào)文段中只有SYN標(biāo)志置1,這個(gè)報(bào)文段的作用是使序號(hào)同步。客戶端選擇一個(gè)隨機(jī)數(shù)作為第一序號(hào),并把這個(gè)序號(hào)發(fā)給服務(wù)器。注意SYN報(bào)文段是一控制報(bào)文段,不攜帶任何數(shù)據(jù)但它消耗一個(gè)序列號(hào)。(2)服務(wù)器發(fā)送第二個(gè)報(bào)文段,即SYN+ACK報(bào)文段,其中有兩個(gè)標(biāo)志置為1這個(gè)報(bào)文段有兩個(gè)目的,一個(gè)是使用SYN同步初始序號(hào),另一個(gè)是服務(wù)器使用ACK標(biāo)志確認(rèn)已經(jīng)從客戶端收到的SYN報(bào)文段,同時(shí)給出期望從客戶端收到的下一個(gè)序號(hào)。服務(wù)器還必須定義客戶端要使用的接收窗口(rwnd),這就實(shí)現(xiàn)了TCP的流量控制。(3)客戶端發(fā)送第三個(gè)報(bào)文段。這僅僅是一個(gè)ACK報(bào)文段。它使用ACK標(biāo)志和確認(rèn)號(hào)字段來(lái)確認(rèn)收到了第二個(gè)報(bào)文。注意這個(gè)報(bào)文段的序號(hào)和SYN的報(bào)文段使用的序號(hào)一樣,這個(gè)ACK報(bào)文段不消耗任何序號(hào)??蛻暨€必須定義服務(wù)窗口值。在某些情況下第三個(gè)報(bào)文段可以攜帶客戶端的第一個(gè)數(shù)據(jù)塊,在這種情況下第三個(gè)報(bào)文段必須有一個(gè)新的序號(hào)來(lái)表示數(shù)據(jù)源的第一個(gè)自己的編號(hào)。一般的來(lái)說(shuō),第三個(gè)報(bào)文段不攜帶數(shù)據(jù)的,因而不消耗序號(hào)。
二、CPN模型
在利用CPN Tool建立具體模型之前,先對(duì)模型中各庫(kù)所和變遷,以及顏色類型,變量做一說(shuō)明。當(dāng)P1,P2,P4,P7中有標(biāo)識(shí)的時(shí)候,即發(fā)送端主動(dòng)打開(kāi)準(zhǔn)備發(fā)送連接請(qǐng)求和接受端被動(dòng)打開(kāi)監(jiān)聽(tīng),發(fā)送第一個(gè)請(qǐng)求報(bào)文,其序號(hào)用變量n1綁定,在接收端收到這個(gè)請(qǐng)求信息的時(shí)候把n1加1作為服務(wù)器想從客戶端得到下一報(bào)文段的序號(hào),同時(shí)和自己的初始序號(hào)一起組成確認(rèn)報(bào)文段序列,用(n3,n2)來(lái)綁定。當(dāng)客戶端接到這個(gè)報(bào)文的時(shí)候進(jìn)行檢查,如果n3=n1+1,說(shuō)明得到服務(wù)器確認(rèn)報(bào)文安全,發(fā)送客戶確認(rèn)報(bào)文,用(n3,n4)綁定,同時(shí)把n1作為數(shù)據(jù)傳輸?shù)某跏夹蛱?hào)。如果n3不等于n1+1,客戶端重新發(fā)送連接請(qǐng)求。在服務(wù)器端收到客戶端確認(rèn)報(bào)文的時(shí)進(jìn)行檢查,如果n4=n2+1,把n2作為接收數(shù)據(jù)的初始編號(hào),等待接收數(shù)據(jù),否則繼續(xù)監(jiān)聽(tīng)。在初始標(biāo)識(shí)下最后到的P8和P11中有標(biāo)記,說(shuō)明連接建立成功。
三、模型驗(yàn)證與分析
Petri網(wǎng)的模型驗(yàn)證方法有兩種:可達(dá)樹(shù)(Reachability Tree)方法和線性代數(shù)(Matrix Equations)方法。在初始標(biāo)識(shí)下通過(guò)工具CPN Tool我們可以得到連接的CPN模型的可達(dá)樹(shù)。(1)可達(dá)樹(shù)各結(jié)點(diǎn)中庫(kù)所包含的標(biāo)記不超過(guò)兩個(gè),且當(dāng)庫(kù)所包含兩個(gè)標(biāo)識(shí)時(shí)標(biāo)記顏色各不相同,因此TCP協(xié)議連接建立的有色Petri網(wǎng)模型是安全的,有界的。(2)可達(dá)樹(shù)中各變遷至少引發(fā)一次,沒(méi)有從不引發(fā)的變遷。樹(shù)中每個(gè)標(biāo)號(hào)有后繼標(biāo)號(hào),即每個(gè)標(biāo)號(hào)都是可以引發(fā)的。對(duì)于可達(dá)集R(M0),每一標(biāo)號(hào)都有一條從根到的變遷路徑,即。根據(jù)活性的定義,可知該模型是活的,不會(huì)有死鎖發(fā)生。(3)可達(dá)樹(shù)中不存在無(wú)用的循環(huán),其中兩個(gè)循環(huán)是處理發(fā)送端和接收端所接受的報(bào)文序號(hào)是否匹配。(4)可達(dá)樹(shù)中可達(dá)狀態(tài)M3經(jīng)變遷T3可回到初始狀態(tài),所以該CPN模型是可逆的。保證了協(xié)議周期的實(shí)現(xiàn),即能夠重復(fù)執(zhí)行請(qǐng)求連接的功能。
本文利用有色Petri網(wǎng)的建模的方法和工具CPN Tool,建立了TCP協(xié)議的連接建立過(guò)程的有色Petri網(wǎng)模型,得到模型的了可達(dá)樹(shù),通過(guò)可達(dá)樹(shù)的方法,驗(yàn)證了所建模型的有界性、安全性、活性、可逆性等性質(zhì)。從而證明了所構(gòu)造的形式化模型的正確性,同時(shí)也驗(yàn)證了協(xié)議的邏輯正確性。
參 考 文 獻(xiàn)
[1]周必水,酈泓.有色Petri網(wǎng)在通信協(xié)議中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào).2003,15(8):112~114
關(guān)鍵詞:Socket通信機(jī)制 TCP協(xié)議 開(kāi)發(fā)原理
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-3973(2012)008-081-02
1 TCP,SOCKET簡(jiǎn)介
TCP:Transmission Control Protocol 傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說(shuō)明(specified)。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。
Socket:即“套接字”,描述IP地址和端口,是通信鏈的句柄。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,提供幾種服務(wù)。每種服務(wù)都會(huì)打開(kāi)一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。
2 基于TCP協(xié)議程序的簡(jiǎn)單樣例
了解客戶端,服務(wù)器,開(kāi)發(fā)原理,開(kāi)發(fā)流程。
客戶端:客戶端(Client)或稱為用戶端,是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序。除了一些只在本地運(yùn)行的應(yīng)用程序之外,一般安裝在普通的客戶機(jī)上,需要與服務(wù)端互相配合運(yùn)行。
服務(wù)器:服務(wù)器指一個(gè)管理資源并為用戶提供服務(wù)的計(jì)算機(jī)軟件,通常分為文件服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器和應(yīng)用程序服務(wù)器。運(yùn)行以上軟件的計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)也被稱為服務(wù)器。
開(kāi)發(fā)原理:
服務(wù)器,使用ServerSocket,監(jiān)聽(tīng)指定的端口,端口可以隨意指定(建議使用大于1024的端口),等待客戶端得連接,客戶端連接后,產(chǎn)生會(huì)話;在會(huì)話完成之后,關(guān)閉連接。
客戶端,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,就打開(kāi)會(huì)話;會(huì)話完成后,關(guān)閉Socket??蛻舳瞬挥弥付ù蜷_(kāi)端口,經(jīng)常是臨時(shí)的分配一個(gè)1024以上的端口。
基于TCP的SOCKET流程如下:
(1)客戶端的編程流程:
打開(kāi)Socket,創(chuàng)建一個(gè)SOCKET;
為套接字建立一個(gè)輸入inputstream,和輸出流outputstream;
根據(jù)服務(wù)器協(xié)議(這里是TCP協(xié)議)從套接字讀入或向套接字寫(xiě)入;
關(guān)閉SOCKET:清除套接字和輸入/輸出流;
(2)服務(wù)器端的編程流程:
打開(kāi)Server Socket,新建一個(gè)服務(wù)器型套接字和一個(gè)普通套接字,服務(wù)器型套接字在指定端口為客戶端請(qǐng)求的Socket服務(wù);
使用ServerSocket類的accept()方法,使套接字處于監(jiān)聽(tīng)狀態(tài),并且把監(jiān)聽(tīng)結(jié)果返回給普通套接字;
為該普通套接字創(chuàng)建輸入和輸出流;
從輸入和輸出流中讀入或?qū)懭胱止?jié)流,進(jìn)行相應(yīng)的處理,并將結(jié)果返回給客戶端(這里的例子是判斷是奇數(shù)還是偶數(shù))。
樣例詳細(xì)說(shuō)明:
客戶端發(fā)送一個(gè)數(shù)字,交給服務(wù)器判斷是偶數(shù)還是奇數(shù),將結(jié)果返回給客戶端。
主要代碼
客戶端主要函數(shù)
Init()初始化socket,獲取IutputStream以及OutputStream;
private static void init(){
try
{
socket = new Socket(HOST,PORT);
is = socket.getInputStream();
os = socket.getOutputStream();
}
catch (Exception e){...}
}
Send()函數(shù),向服務(wù)器發(fā)送數(shù)據(jù)
private static void send(byte[ ] data){
try
{
os.write(data);
}
catch(Exception e){...}
}
Receive()函數(shù),獲取服務(wù)器返回的信息
private static byte[ ] receive(){
byte[ ] b = new byte[1024];
try
{
int n = is.read(b);
byte[ ] data = new byte[n];
System.arraycopy(b, 0, data, 0, n);
return data;
}
catch (Exception e){...}
return null;
}
Close()函數(shù),關(guān)閉socket連接
private static void close(){
try{
is.close();
os.close();
socket.close();
}catch(Exception e){...}
}
服務(wù)器主要函數(shù):
Init(),send(),receive(),close()函數(shù)同客戶端
Logic()函數(shù),處理收到的數(shù)字,判斷奇偶
private Boolean logic(byte[ ] data)
{
String s=new String(data);
System.out.println("logic");
int t=Integer.valueOf(s);
if(t%2==1)
return true;
return false;
}
調(diào)用流程
服務(wù)器init()->客戶端init()->客戶端send()->服務(wù)器receive()->服務(wù)器logic()->服務(wù)器send()->客戶端receive().
參考文獻(xiàn):
關(guān)鍵詞:網(wǎng)絡(luò)安全; TCP/IP協(xié)議;安全性
引言
現(xiàn)在Internet已在全世界普及,它使人們穩(wěn)坐家中就可以得到世界各國(guó)的所有信息,并已經(jīng)逐漸成為通信方面的基礎(chǔ)設(shè)施。但是從另一方面來(lái)說(shuō),由于世界的計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)互相連通潛在了很多不安全的因素。于是,要安全地使用Internet,就需要具備防止信息泄漏以及防止被篡改等網(wǎng)絡(luò)安全問(wèn)題的能力。為了預(yù)防這些網(wǎng)絡(luò)上的不正當(dāng)行為,特別需要理解Internet在安全方面的特性,以便采取適當(dāng)?shù)姆婪秾?duì)策。
1. TCP/IP的協(xié)議結(jié)構(gòu)
TCP/IP作為通信協(xié)議,它是一組協(xié)議的集合,其中有我們常見(jiàn)的TCP和IP協(xié)議,也有用于管理通信方法的協(xié)議,也有測(cè)試網(wǎng)絡(luò)狀態(tài)等工具性的協(xié)議。
支持因特網(wǎng)通信的TCP/IP是以TCP協(xié)議和IP協(xié)議為中心構(gòu)成的協(xié)議群的總稱。TCP/IP通信協(xié)議從最底層開(kāi)始,是由網(wǎng)間層、傳輸層以及應(yīng)用層構(gòu)成的。像這樣的構(gòu)成層次,可以使開(kāi)發(fā)工作形成模塊式開(kāi)發(fā)。
2. 按TCP/IP的協(xié)議層,對(duì)其安全性探討
2.1網(wǎng)間層在安全方面的隱患主要包括以下幾種:
(1)偽造IP地址
在Internet中,各個(gè)設(shè)備是按照預(yù)先分配的IP地址或者通過(guò)DHCP的方式來(lái)分配IP地址來(lái)標(biāo)識(shí)。于是,如果其中的某個(gè)設(shè)備設(shè)置成其他設(shè)備所屬的IP或者冒充網(wǎng)關(guān)向設(shè)備發(fā)送數(shù)據(jù)包,就會(huì)造成通信混亂,從而導(dǎo)致網(wǎng)絡(luò)癱瘓。舉個(gè)簡(jiǎn)單的例子,以太網(wǎng)上搶奪其他計(jì)算機(jī)的IP,就可以謊稱是被搶奪計(jì)算機(jī)IP數(shù)據(jù)包的源地址。致使在這種情況下,被冒充的計(jì)算機(jī)上會(huì)出現(xiàn)顯示IP地址沖突的提示框。而且在這種狀態(tài)下,也不能保證計(jì)算機(jī)能夠正常運(yùn)行。對(duì)于這樣的偽造IP地址(IP Spoofing:IP欺詐)的攻擊行為,需要采取以下的措施:
> 利用網(wǎng)絡(luò)監(jiān)視工具,對(duì)冒充源地址的數(shù)據(jù)包通過(guò)外部網(wǎng)絡(luò)進(jìn)行檢查,確認(rèn)是否真正來(lái)自于送信源地址。
> 在服務(wù)器上生成對(duì)于遠(yuǎn)程接入進(jìn)程的記錄機(jī)制,用來(lái)見(jiàn)識(shí)服務(wù)器的適用情況。
(2)偽造ARP
在網(wǎng)間層上,雖然在設(shè)置發(fā)送端與接收端時(shí),利用了IP地址通信,但在作為物理層之一的以太網(wǎng)上卻利用了MAC地址來(lái)標(biāo)識(shí)發(fā)送端與接收端的地址。像這種網(wǎng)間層的IP地址體系與數(shù)據(jù)鏈路層的MAC地址體系相互對(duì)應(yīng)的分配取決于地址解析協(xié)議(ARP)。計(jì)算機(jī)在通信時(shí)首先利用ARP獲得與目的IP地址所對(duì)應(yīng)的MAC地址。從減少通信流量的觀點(diǎn)出發(fā),一旦給予對(duì)應(yīng)MAC地址的IP地址,這種對(duì)應(yīng)組合將在ARP表中保持一定時(shí)間的緩存,這樣通過(guò)發(fā)送偽造的ARP數(shù)據(jù)包就可以改寫(xiě)這個(gè)緩存。
作為防范上述攻擊行為的對(duì)策,可以采取兩種方法:
> 利用保證IP數(shù)據(jù)包合法性的IPSec中的AH的認(rèn)證功能
> 采用使應(yīng)用軟件具備對(duì)通信過(guò)程進(jìn)行加密的方式以及強(qiáng)化認(rèn)證機(jī)構(gòu)。
2.2傳輸層上存在的安全隱患主要包括以下幾種:
(1)假冒TCP初始序號(hào)
在通信過(guò)程中,采用被稱為三次握手的步驟建立起來(lái)的TCP連接。在這個(gè)過(guò)程,對(duì)于使用IP地址認(rèn)證的應(yīng)用程序,如果可以順推出初始序號(hào),那么只要模擬發(fā)送端的IP地址,就可以建立TCP連接。不過(guò)現(xiàn)在的操作系統(tǒng)中,初始序號(hào)的分配方法已變得相當(dāng)復(fù)雜,事實(shí)上序號(hào)已不能隨便推測(cè)。
(2)利用TCP/UDP數(shù)據(jù)包的DoS攻擊
DoS攻擊是通過(guò)生成大量的、已處于連接狀態(tài)的TCP連接,使TCP/IP模塊陷入崩潰狀態(tài)的操作。對(duì)于以操作系統(tǒng)為目標(biāo)的攻擊,可以通過(guò)導(dǎo)入具備屏蔽TCP SYN數(shù)據(jù)包功能的防火墻來(lái)防范。
2.3應(yīng)用層上存在的安全隱患主要包括以下幾個(gè)方面:
(1)掃描/搜索
對(duì)信息系統(tǒng)的非法入侵,是通過(guò)收集作為攻擊目標(biāo)的設(shè)備以及用戶的相關(guān)信息開(kāi)始的。首先通過(guò)掃描搜索設(shè)備,同時(shí)通過(guò)BBS、網(wǎng)絡(luò)新聞以及主鏈接清單等資源數(shù)據(jù)收集用戶的信息。掃描用戶的設(shè)備后,通過(guò)截取用戶的通信數(shù)據(jù)或數(shù)據(jù)包、收集認(rèn)證信息以及嘗試用戶密碼等方法,使自己能夠獲得對(duì)計(jì)算機(jī)信息和資源的讀寫(xiě)權(quán)以及控制權(quán),從而再訪問(wèn)該計(jì)算機(jī)。
(2)DNS欺騙
DNS欺騙是一種從外部改寫(xiě)由DNS服務(wù)器管理的主機(jī)名與IP地址對(duì)應(yīng)表的攻擊方式。如前所述,在Internet世界中,計(jì)算機(jī)以及路由器是通過(guò)被分配的、特有的IP地址來(lái)識(shí)別的。但是IP地址作為一串?dāng)?shù)值,人們不便于記憶,因而出現(xiàn)了主機(jī)名這一概念。DNS是提供IP地址與主機(jī)名對(duì)應(yīng)的機(jī)制,因此,一旦這種對(duì)應(yīng)關(guān)系出現(xiàn)問(wèn)題,那么IP數(shù)據(jù)包就不能夠被發(fā)送到主機(jī)名所對(duì)應(yīng)的IP地址。DNS欺騙的一個(gè)簡(jiǎn)單事例,就是在IP地址與主機(jī)名對(duì)應(yīng)表的hosts文件中,進(jìn)行對(duì)應(yīng)關(guān)系不一致的設(shè)定。所以對(duì)于用戶來(lái)說(shuō),接收網(wǎng)絡(luò)安全方面的教育是非常重要的。
(3)竊聽(tīng)用戶認(rèn)證信息
這種行為大多是在非法侵入計(jì)算機(jī)后,安裝木馬程序,以非法手段獲取該計(jì)算機(jī)所連接的網(wǎng)絡(luò)的通信信息。特別是將以非加密報(bào)文形式傳輸數(shù)據(jù)的TELNET、FTP、POP以及HTTP等作為監(jiān)聽(tīng)對(duì)象,來(lái)獲取密碼等用戶認(rèn)證信息。
防竊聽(tīng)的對(duì)策有以下兩種:
> 在通信過(guò)程中進(jìn)行加密,使得數(shù)據(jù)包不能被任意讀取
> 通過(guò)限制注入網(wǎng)絡(luò)交換機(jī)的設(shè)備,縮小竊聽(tīng)范圍。
(4)利用電子郵件進(jìn)行的DoS攻擊
利用電子郵件進(jìn)行的拒絕服務(wù)攻擊包括:反復(fù)頻繁發(fā)送大數(shù)據(jù)量的電子郵件,耗盡磁盤(pán)空間的電子郵件炸彈,以及通過(guò)其他的郵件服務(wù)器,連續(xù)發(fā)送郵件造成第三方延遲等等。
互聯(lián)網(wǎng)工作工程小組最近了一種新的郵件認(rèn)證技術(shù)說(shuō)明,該說(shuō)明加入了域名密鑰識(shí)別郵件技術(shù)(DKIM),希望借此來(lái)加速對(duì)抗垃圾郵件。它把IP地址和郵件的發(fā)送人放在一起進(jìn)行分析,然后通過(guò)公共密鑰加密,給郵件加上一個(gè)數(shù)字簽名,這個(gè)數(shù)字簽名包含著發(fā)件人的域名。
(5)病毒
計(jì)算機(jī)病毒是附著于程序中可以自我繁殖的程序。現(xiàn)在所發(fā)現(xiàn)的病毒一般具有以下的形態(tài):
* 以篡改或破壞計(jì)算機(jī)中所存儲(chǔ)的數(shù)據(jù)為攻擊目標(biāo)
* 利用用戶作為中介(U盤(pán)、電子郵件等)來(lái)進(jìn)行傳播。
2011年影響最大的十大病毒之中,鬼影病毒、QQ群蠕蟲(chóng)病毒QQ假面病毒、DNF假面病毒、新型QQ大盜等新老變種病毒榜上有名。對(duì)于病毒的防護(hù),我們要加強(qiáng)計(jì)算機(jī)安全意識(shí),提高警惕,不隨便訪問(wèn)不可靠網(wǎng)站,定時(shí)對(duì)計(jì)算機(jī)進(jìn)行查殺病毒。
3.結(jié)束語(yǔ)
通過(guò)對(duì)TCP/IP協(xié)議層的安全問(wèn)題進(jìn)行闡述及分析,不難發(fā)現(xiàn)其在設(shè)計(jì)上存在很多安全隱患,黑客或黑客工具往往利用這些隱患對(duì)網(wǎng)絡(luò)進(jìn)行攻擊,只有充分了解這些隱患并采取相應(yīng)的防范措施,才能增強(qiáng)網(wǎng)絡(luò)的安全性。
參考文獻(xiàn):
[1]石志國(guó)等編著.計(jì)算機(jī)網(wǎng)絡(luò)安全教程[M]. 北京交通大學(xué)出版社;北京:,2004
[2]李美萍. TCP/IP協(xié)議體系的安全性探討[J]. 山西通信科技, 2007(4): 11-13.
【關(guān)鍵詞】圖層,幀
計(jì)算機(jī)輔助教學(xué)(Computer Assisted Instruction 簡(jiǎn)稱CAI)指的是應(yīng)用計(jì)算機(jī)作為教學(xué)的輔助手段,通過(guò)學(xué)習(xí)者與計(jì)算機(jī)交互作用完成教學(xué)過(guò)程。CAI構(gòu)成了一種個(gè)別化學(xué)習(xí)環(huán)境,讓學(xué)習(xí)者利用計(jì)算機(jī)的特點(diǎn)和優(yōu)勢(shì),通過(guò)與計(jì)算機(jī)的交互,完成某一具體課程的學(xué)習(xí)。作為一種教學(xué)媒體,計(jì)算機(jī)可以起到與其它傳播媒體一樣的呈現(xiàn)知識(shí)、給予反饋等作用,但是由于其有著存貯、處理信息、工作自動(dòng)化等功能,因此計(jì)算機(jī)輔助教學(xué)(CAI)具有如下特點(diǎn):
(1)大容量的非順序式信息呈現(xiàn)。計(jì)算機(jī)可存貯相當(dāng)豐富的信息量,可包括一門(mén)課程或與某個(gè)對(duì)象有關(guān)的全部知識(shí)。學(xué)習(xí)者既可以瀏覽所有知識(shí),也可以按需要獲取其中任意所感興趣的一部分,而不僅是按順序閱讀,或是按教師所給出的那一部分。
(2)學(xué)生可以控制學(xué)習(xí)內(nèi)容和學(xué)習(xí)進(jìn)度。通常的CAI系統(tǒng)都允許學(xué)生選擇學(xué)習(xí)內(nèi)容,也設(shè)置一些同步措施,僅當(dāng)學(xué)生學(xué)習(xí)了前一部分知識(shí)后才進(jìn)入下一步的學(xué)習(xí)。這樣,學(xué)生的學(xué)習(xí)進(jìn)展不受時(shí)間與地點(diǎn)的限制,可以取得最佳的學(xué)習(xí)速度。
(3)實(shí)現(xiàn)因人施教的教學(xué)原則和及時(shí)反饋原則。CAI系統(tǒng)可通過(guò)提問(wèn)、判斷、轉(zhuǎn)移等交互活動(dòng),分析學(xué)生的能力和學(xué)習(xí)狀況,調(diào)節(jié)學(xué)習(xí)過(guò)程,實(shí)現(xiàn)因人施教的教學(xué)原則和及時(shí)反饋原則。
(4)學(xué)生在CAI活動(dòng)中處于一種積極、主動(dòng)的精神狀態(tài)。因?yàn)榻虒W(xué)進(jìn)度由學(xué)生控制和連續(xù)的提問(wèn)-反饋或是操作一反應(yīng)刺激等交互活動(dòng),學(xué)生在CAI活動(dòng)中處于一種積極、主動(dòng)的精神狀態(tài),不象被動(dòng)受教時(shí)那么容易疲勞和受干擾,從而可以取得較好的教學(xué)效果。
(5)網(wǎng)絡(luò)技術(shù)使CAI可獲得群體的支持。目前的網(wǎng)絡(luò)技術(shù)使CAI可獲得群體的支持,解決個(gè)別化學(xué)習(xí)與群體學(xué)習(xí)的矛盾。
CAI活動(dòng)的效果受教師態(tài)度的影響。實(shí)驗(yàn)證明,CAI活動(dòng)的效果受教師態(tài)度的影響,積極推廣CAI的教師所用CAI的教學(xué)效果好,反之亦然。
在過(guò)去的幾年里,CAI的發(fā)展速度是超出人們想象的。就全國(guó)來(lái)言,大量的學(xué)校、部門(mén)、公司、企業(yè),以各自不同的目的,帶著極大的熱情投入到CAI的開(kāi)拓當(dāng)中,并以各自不同的優(yōu)勢(shì)推動(dòng)著CAI向前迅猛地發(fā)展,目前,已經(jīng)形成了以下幾個(gè)發(fā)展趨勢(shì):
1.多媒體技術(shù)的采用使CAI手段更加豐富。多媒體教學(xué)系統(tǒng)是一種以計(jì)算機(jī)為中心,處理、控制各種教學(xué)媒體綜合進(jìn)行教學(xué)活動(dòng)的系統(tǒng),它既具有各種教學(xué)媒體的特點(diǎn)和優(yōu)勢(shì),又發(fā)揮了以計(jì)算機(jī)為核心的控制作用,因此他具有多重感觀刺激,傳輸信息量大,易于接受,人機(jī)交互性強(qiáng),操作簡(jiǎn)單等特點(diǎn)。它既是CAI發(fā)展方向,也是現(xiàn)代教育發(fā)展的方向,所以引起了各方人士高度的重視。
2.計(jì)算機(jī)生產(chǎn)技術(shù)的進(jìn)步,存貯成本的降低, 使大量的存貯信息成為可能。目前,一方面硬盤(pán)的價(jià)格大幅度的降低,另一方面CD-ROM光盤(pán)的大量使用,使得存貯容量不再是問(wèn)題。圖形、動(dòng)畫(huà)、音像等各種素材得以大量存儲(chǔ)和自由調(diào)用。這也為多媒體教學(xué)系統(tǒng)打下了良好的物質(zhì)基礎(chǔ)。
3.網(wǎng)絡(luò)技術(shù)在教學(xué)領(lǐng)域的采用,使教學(xué)的觀念發(fā)生了質(zhì)的變化
4.平臺(tái)軟件為CAI軟件制作提供了方便的開(kāi)發(fā)工具。目前CAI領(lǐng)域中的一項(xiàng)重大事件是工具平臺(tái)的使用。由于計(jì)算機(jī)技術(shù)的迅速發(fā)展,其功能不斷加強(qiáng),操作卻越來(lái)越簡(jiǎn)便和易于掌握。這不但使非計(jì)算機(jī)專業(yè)人員編制CAI軟件成為現(xiàn)實(shí),而且使CAI軟件實(shí)現(xiàn)了多媒體技術(shù)。
5.微機(jī)操作的窗口化。新一代的操作系統(tǒng)(平臺(tái))已經(jīng)朝著直觀、易懂的窗口化方向發(fā)展,以圖標(biāo)管理代替文件管理,以圖標(biāo)形狀代替操作信息,以鼠標(biāo)指點(diǎn)代替鍵盤(pán)操作方法。這為進(jìn)一步普及微機(jī)應(yīng)用提供了基礎(chǔ)。
傳輸控制協(xié)議(Transmission Control Protocol TCP)是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議,通常由IETF的RFC 793說(shuō)明。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成運(yùn)輸層所指定的功能。在因特網(wǎng)協(xié)議族中,TCP層是位于IP層之上,應(yīng)用層之下的中間層。不同主機(jī)的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機(jī)制,而是提供不可靠的包交換。
TCP原理的特點(diǎn)和功能如下:
(1)面向連接的服務(wù)。對(duì)保證數(shù)據(jù)流傳輸可靠性十分重要。
(2)高可靠性:方法:確認(rèn)與超時(shí)重傳。
(3)全雙工通信
(4)支持流傳輸:流傳輸 無(wú)報(bào)文丟失、重復(fù)、亂序的正確數(shù)據(jù)報(bào)文序列;
(5)傳輸連接的可靠建立與釋放:3次握手
(6)提供流量控制與擁塞控制
TCP協(xié)議的功能
(1)保證傳輸?shù)目煽啃浴CP協(xié)議是面向連接的。所謂連接,是指在進(jìn)行通信之前,通信雙方必須建立連接才能進(jìn)行通信,而在通信結(jié)束后終止其連接。相對(duì)于面向無(wú)連接的IP協(xié)議而言,TCP協(xié)議具有高度的可靠性。當(dāng)目的主機(jī)接收到由源主機(jī)發(fā)來(lái)的IP包后,目的主機(jī)將向源主機(jī)回送一個(gè)確認(rèn)消息,這是依靠目的主機(jī)的TCP協(xié)議來(lái)完成的。
TCP協(xié)議中有一個(gè)重傳記時(shí)器(RTO),當(dāng)源主機(jī)發(fā)送IP包即開(kāi)始記時(shí)需要說(shuō)明的是,TCP協(xié)議所建立的連接是端到端的連接,即源主機(jī)與目的主機(jī)間的連接。internet中每個(gè)轉(zhuǎn)接節(jié)點(diǎn)(路由器)對(duì)TCP協(xié)議段透明傳輸。
總之,IP協(xié)議不提供差錯(cuò)報(bào)告和差錯(cuò)糾正機(jī)制,而TCP協(xié)議向應(yīng)用層提供了面向連接的服務(wù),以確保網(wǎng)絡(luò)上所傳送的數(shù)據(jù)包被完整、正確、可靠地接收。一旦數(shù)據(jù)有損傷或丟失,則由TCP協(xié)議負(fù)責(zé)重傳,應(yīng)用層不參與解決。
(2)提供部分應(yīng)用層信息的功能。在TCP協(xié)議之上是應(yīng)用層協(xié)議(如FTP、SMTP、TELNET等),最終需依靠它們實(shí)現(xiàn)主機(jī)間的通信。TCP協(xié)議攜帶了部分應(yīng)用層信息,可用來(lái)區(qū)別同一報(bào)文數(shù)據(jù)流的一組IP包及其性質(zhì)。
TCP協(xié)議對(duì)這些應(yīng)用層協(xié)議規(guī)定了整數(shù)標(biāo)志符,稱為端口序號(hào)。被規(guī)定的端口序號(hào)成為保留端口,其值在0~1 023范圍內(nèi)(如端口序號(hào)23,用于遠(yuǎn)程終端服務(wù))。此外還有自由端口序號(hào),供個(gè)人程序使用,或者用來(lái)區(qū)分兩臺(tái)主機(jī)間相同應(yīng)用層協(xié)議的多個(gè)通信,即兩臺(tái)主機(jī)間復(fù)用多個(gè)用戶會(huì)話連接。
進(jìn)行通信的每臺(tái)主機(jī)的每個(gè)用戶會(huì)話連接都有一個(gè)插口序號(hào),它由主機(jī)的IP地址和端口序號(hào)組成。在internet中插口序號(hào)是惟一的,一對(duì)插口序號(hào)惟一地標(biāo)識(shí)了一個(gè)端口的連接(發(fā)端插口序號(hào)=源主機(jī)IP地址+源端口序號(hào),收端插口序號(hào)=目的主機(jī)IP地址+目的端口序號(hào))。利用插口序號(hào)可在目的主機(jī)中區(qū)分不同源主機(jī)對(duì)同一個(gè)目的主機(jī)相同端口序號(hào)的多個(gè)用戶會(huì)話連接。
在TCP協(xié)議段的頭部各域中具有碼位項(xiàng)。其中,SYN碼位為應(yīng)用數(shù)據(jù)流的開(kāi)始位(當(dāng)SYN置1,表示該IP數(shù)據(jù)包為某一應(yīng)用報(bào)文的第一份數(shù)據(jù)包),F(xiàn)IN碼位為應(yīng)用數(shù)據(jù)流的結(jié)束位(當(dāng)FIN置1時(shí),表示此時(shí)數(shù)據(jù)包為某應(yīng)用報(bào)文的最后一份數(shù)據(jù)包)。因此可利用SYN/FIN兩個(gè)碼位來(lái)規(guī)定某一應(yīng)用報(bào)文(或某一應(yīng)用數(shù)據(jù)流)的開(kāi)始與結(jié)束。
TCP協(xié)議就是利用端口序號(hào)和SYN/FIN碼位來(lái)區(qū)分應(yīng)用數(shù)據(jù)流并判斷其性質(zhì)的,從而使具有四層功能的高端路由器具有某些對(duì)應(yīng)用數(shù)據(jù)流的控制功能。
TCP協(xié)議只定義了一種報(bào)文格式,建立、拆除連接、傳輸數(shù)據(jù)使用同樣的報(bào)文
1.傳輸連接的建立
TCP是面向連接的協(xié)議,運(yùn)輸連接的建立和釋放是每一次面向連接的通信中必不可少的過(guò)程
運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。
在連接建立過(guò)程中要解決以下三個(gè)問(wèn)題:(1)要使每一方能夠確知對(duì)方的存在;(2)要允許雙方協(xié)商一些參數(shù)(如,最大報(bào)文段長(zhǎng)度,最大窗口大小,服務(wù)質(zhì)量等);(3)能夠?qū)\(yùn)輸實(shí)體資源(如緩沖區(qū)大小,連接表中的項(xiàng)目等)進(jìn)行分配
2.TCP的傳輸連接管理――三次握手技術(shù)。(1)TCP連接的建立采用客戶/服務(wù)器方式。(2)為了確保連接的建立和釋放都是可靠的,TCP使用三次握手的方式,其中交換了三個(gè)報(bào)文。(3)已證明三次握手是在分組丟失、重復(fù)和延遲的情況下確保非模糊協(xié)定的充要條件。
3.為何使用三次握手
當(dāng)客戶端發(fā)送一連接請(qǐng)求報(bào)文段,沒(méi)有收到服務(wù)器端的確認(rèn),認(rèn)為丟失??蛻舳嗽僦貍饕淮?,得到確認(rèn),傳輸數(shù)據(jù),釋放連接。
然而,客戶端第一個(gè)請(qǐng)求報(bào)文段并沒(méi)有丟失,而是延時(shí)到這次連接、數(shù)據(jù)傳輸、釋放連接后才到達(dá)服務(wù)器端。服務(wù)器端認(rèn)為又一次新的連接,向客戶端發(fā)一確認(rèn)。客戶端由于并沒(méi)有發(fā)起新的連接,不會(huì)發(fā)送數(shù)據(jù),服務(wù)器端會(huì)一直等待,造成資源浪費(fèi)。
3. TCP的流量控制。
(1)TCP采用可變發(fā)送窗口的技術(shù)進(jìn)行流量控制,窗口大小的單位是字節(jié)。
(2)在TCP報(bào)文段首部的窗口字段寫(xiě)入的數(shù)值就是當(dāng)前設(shè)定的接收窗口數(shù)值。
(3)發(fā)送窗口在連接建立時(shí)由雙方商定,在通信過(guò)程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整自己的接收窗口,并且告訴對(duì)方,使對(duì)方的發(fā)送窗口和自己的接收窗口一致。
說(shuō)明:(1)發(fā)送端要發(fā)送的數(shù)據(jù)共9個(gè)報(bào)文段,每個(gè)報(bào)文符長(zhǎng)100字節(jié),共900個(gè)字節(jié);(2)而接收端允許的發(fā)送窗口為500字節(jié);(3)在當(dāng)前情況下,發(fā)送方可連續(xù)發(fā)送5個(gè)報(bào)文段,而不必收到確認(rèn),(已發(fā)送了二個(gè),還可發(fā)送三個(gè)報(bào)文符);
4. TCP差錯(cuò)控制
差錯(cuò)控制包括檢測(cè)受到損傷的報(bào)文段、丟失的報(bào)文段、失序的報(bào)文段和重復(fù)的報(bào)文段,以及檢測(cè)出錯(cuò)后糾正差錯(cuò)的機(jī)制。差錯(cuò)檢測(cè)三種工具:檢驗(yàn)和、確認(rèn)和超時(shí)。對(duì)各種出錯(cuò)報(bào)文段的處理:傳輸出錯(cuò)報(bào)文段(重傳計(jì)時(shí)器);丟失報(bào)文段(重傳計(jì)時(shí)器);重復(fù)報(bào)文段(報(bào)文序號(hào));亂序報(bào)文段(對(duì)亂序報(bào)文段不確認(rèn),直到收到所有它以前的報(bào)文段為止。);確認(rèn)丟失(累計(jì)確認(rèn))
本文主要是從計(jì)算機(jī)輔助教學(xué)入手,從TCP原理演示來(lái)具體生動(dòng)地介紹CAI的特點(diǎn).全文全面地介紹了TCP協(xié)議,又通過(guò)動(dòng)畫(huà)具體演示了TCP的連接和釋放過(guò)程,能夠生動(dòng)地幫助學(xué)生理解TCP協(xié)議。從而具體體現(xiàn)了計(jì)算機(jī)輔助教學(xué)的優(yōu)點(diǎn)。
計(jì)算機(jī)輔助教學(xué)與傳統(tǒng)的教學(xué)方式相比較確實(shí)具有很多的優(yōu)勢(shì)。傳統(tǒng)的教學(xué)以課堂集體教學(xué)為基礎(chǔ),這種教學(xué)通常以教師為中心,學(xué)生往往處于被動(dòng)地位,其學(xué)習(xí)積極性難以調(diào)動(dòng)。教師參照全班學(xué)生的平均水平和教學(xué)計(jì)劃確定教學(xué)進(jìn)度并向?qū)W生提供反饋信息,忽視、較少注意或難于注意學(xué)生的個(gè)別差異。對(duì)于家庭作業(yè),盡管教師能逐個(gè)學(xué)生加以批閱,但反饋信息不夠及時(shí),有時(shí)學(xué)生幾天后才能得到教師批改過(guò)的作業(yè),而這時(shí)學(xué)生又去顧及新的知識(shí)。然而計(jì)算機(jī)輔助教學(xué)相對(duì)于教師的傳統(tǒng)教學(xué)也有其固有的不足之處,比如真實(shí)性問(wèn)題,雖然呈現(xiàn)給學(xué)生的信息可以是豐富多采的,但這些都是間接經(jīng)驗(yàn),是別人做好讓學(xué)生看和聽(tīng)的,甚至有的信息的真實(shí)性會(huì)受到懷疑。還有其它的不足之處,這需要從事教育工作者的合理運(yùn)用。
參考文獻(xiàn):
[1]吳功宜,《計(jì)算機(jī)網(wǎng)絡(luò)》,清華大學(xué)出版社
[2]謝希仁,《計(jì)算機(jī)網(wǎng)絡(luò)》,電子工業(yè)出版社
[3]肖秀金、陳霄峰,《網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn)教程》,地質(zhì)出版社
[4]BehrouzA.Forouzan,Sophia Chung Fegan ,《TCP/IP協(xié)議族》,清華大學(xué)出版社