歡迎訪問愛發(fā)表,線上期刊服務(wù)咨詢

tcp協(xié)議8篇

時間:2022-12-05 00:07:07

緒論:在尋找寫作靈感嗎?愛發(fā)表網(wǎng)為您精選了8篇tcp協(xié)議,愿這些內(nèi)容能夠啟迪您的思維,激發(fā)您的創(chuàng)作熱情,歡迎您的閱讀與分享!

tcp協(xié)議

篇1

關(guān)鍵詞:P2P;CDP;NAT 穿透;基于UDP的tcp

中圖分類號:TP317文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2007)03-10736-02

1 引言

隨著互聯(lián)網(wǎng)應(yīng)用廣泛推廣,基于各種P2P網(wǎng)絡(luò)技術(shù)的產(chǎn)品也越來越多的出現(xiàn)在我們的視野當(dāng)中。從最早的Napster 到現(xiàn)在的Bittorrent、eMule、skype等產(chǎn)品,P2P這種網(wǎng)絡(luò)應(yīng)用模式已經(jīng)從各個方面深入人心。這些產(chǎn)品在網(wǎng)絡(luò)實現(xiàn)技術(shù)上,都以各自的方法解決著同樣面臨的一個問題,如何讓他們的軟件產(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è)備來進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,那么如何讓應(yīng)用程序跨越這些NAT設(shè)備進(jìn)行全雙工通信,就成為非常重要的問題。實現(xiàn)跨越NAT 通信有很多種辦法:首先是通過服務(wù)器進(jìn)行轉(zhuǎn)發(fā),這是比較粗暴的方法,在用戶量較大時,轉(zhuǎn)發(fā)服務(wù)器需要付出相當(dāng)大的代價;其次,可以使用NAT 穿透技術(shù)。而在NAT 穿透中,UDP 穿透的成功率比起TCP 穿透要高出許多[1]。因此在UDP 協(xié)議上構(gòu)建一些大型的網(wǎng)絡(luò)應(yīng)用程序可能會成為很多人的需求。

由于UDP協(xié)議本身存在通信不可靠的缺點,對于基于UDP 進(jìn)行可靠通信的需求就浮現(xiàn)出來了。目前在網(wǎng)絡(luò)上有許多人正在做著這一工作,UDT、RakNet、eNet 等都是構(gòu)建在UDP之上的網(wǎng)絡(luò)可靠通信開發(fā)庫,但這些庫都是針對一些特殊應(yīng)用進(jìn)行設(shè)計的,不具備通用性。本文提出的CDP協(xié)議是在UDP基礎(chǔ)之上實現(xiàn)的TCP協(xié)議。同時具備了TCP的通用、高效和UDP的高穿透成功率,并提供了簡單易用的應(yīng)用程序開發(fā)接口。

2 CDP設(shè)計目標(biāo)

CDP主要的目標(biāo)就是在UDP 層之上實現(xiàn)TCP 的協(xié)議算法,使得應(yīng)用程序能夠在UDP 層之上獲得通用、可靠、高效的通信能力。CDP 網(wǎng)絡(luò)開發(fā)庫所實現(xiàn)的算法,都來自久經(jīng)考驗的TCP協(xié)議算法,以下協(xié)議設(shè)計部分主要講解CDP實現(xiàn)中與TCP標(biāo)準(zhǔn)不同的部分。

3 CDP協(xié)議設(shè)計

CDP協(xié)議主要在以下幾個方面與TCP有所不同:協(xié)議格式、連接建立(NAT UDP PUNCH模式)、保活機(jī)制、MTU發(fā)現(xiàn)與MSS通告。其他部分,如報文傳輸、流量控制、超時重傳、擁塞控制等,均參照TCP協(xié)議實現(xiàn)[2]。下面將對幾個不同部分分別進(jìn)行說明。

3.1 協(xié)議格式

CDP的實現(xiàn)的算法雖然與TCP 實現(xiàn)的算法是大致相同的,但CDP 的協(xié)議格式只是從TCP協(xié)議格式獲得參考,但并不完全與他相同,CDP協(xié)議格式如圖1所示。

圖中各字段意義分別為:

4 位首部長度:表示用戶數(shù)據(jù)在數(shù)據(jù)包中的起始位置。

LIV:連接保活標(biāo)志。

ACK:確認(rèn)序號有效。

PSH:接收方應(yīng)該盡快將這個報文段交給應(yīng)用層。

RST:重置連接。

SYN:同步序號,用來發(fā)起一個連接。

FIN:發(fā)端完成發(fā)送任務(wù)。

16 位窗口大小:接收端可接收數(shù)據(jù)的窗口大小。

選項:只有一個選項字段,為最長報文大小,即MSS。CDP 選項格式與TCP 選項格式一致,kind=0 時表示選項結(jié)束,kind=1 時表示無操作,kind=2 時表示最大報文段長度。如下圖:

圖2 CDP選項字段

數(shù)據(jù):用戶通過CDP 傳輸?shù)臄?shù)據(jù)。

3.2 連接建立(NAT UDP PUNCH模式)

一般情況下,CDP連接的建立過程與TCP相同。但當(dāng)CDP工作在UDP NAT 穿透(NAT UDP PUNCH)模式下時,在三次握手之前,先要向?qū)Χ薔AT 端口及預(yù)測端口以默認(rèn)2ms的間隔發(fā)送默認(rèn)為10個LIV報文,一來用于打開自已的NAT 端口,二來是用于進(jìn)入對端NAT端口。默認(rèn)值可以由用戶程序設(shè)置。這時的LIV 報文中初始序號及確認(rèn)序號都為0。

當(dāng)接收到對端LIV 報文后,CDP立即停止LIV 報文發(fā)送,發(fā)出SYN 報文進(jìn)行連接建立。這時有兩種可能:一是對端直到接收到該SYN 報文,都沒有接收到LIV 報文,或是剛接收到LIV報文,但沒有來得及發(fā)送SYN 報文,此時將會和一般模式下連接建立的過程一致,經(jīng)歷三次握手;二是對端在接收到該SYN 報文之前,也已經(jīng)發(fā)送SYN報文,此時雙方都需要對SYN 報文段進(jìn)行確認(rèn)。

3.3 半打開連接及連接保活

半打開連接是指對端異常關(guān)閉,如網(wǎng)線拔掉、突然斷電等情況導(dǎo)致一端關(guān)閉,而另一端卻認(rèn)為連接仍處于打開當(dāng)中,這種情況稱之為半打開連接。CDP中的一個TDP SOCKET描述符由本地IP、本地端口、遠(yuǎn)端IP、遠(yuǎn)端端口唯一確定。當(dāng)遠(yuǎn)端客戶端連接請求到來時,服務(wù)端將接收到一個新的CDP SOCKET描述符,當(dāng)這一個描述符唯一確定信息已經(jīng)存在時,對新的連接請求發(fā)送RST 報文段,通知其重置連接請求。對于舊的連接,由保活機(jī)制自動發(fā)現(xiàn)是否為半打開連接,如果是半打開連接,則自動關(guān)閉該連接。CDP的RST 報文與TCP 中的RST 報文是不一樣的。

連接建立之后,CDP 連接需要啟動保活機(jī)制。TCP 連接在沒有數(shù)據(jù)通信的情況下也能保持連接,但CDP 連接不行。CDP 連接在一定時間內(nèi)如果沒有數(shù)據(jù)交互的話,將主動發(fā)送保活LIV報文段。這個時間根據(jù)CDP 連接工作模塊不同有所差異,在NAT UDP PUNCH 模式下,默認(rèn)值為1 分鐘(大多數(shù)的NAT中,UDP會話超時時間為2-5分鐘左右);而在常規(guī)模塊下這個時間段默認(rèn)值為5分鐘。默認(rèn)值可以由用戶程序設(shè)置,用戶程序需要指明兩種模式下的保活時間周期。

3.4 路徑MTU 發(fā)現(xiàn)及MSS 通告

CDP連接建立過程中會通告初始MSS(Maximum Segment Size),這個值可以由用戶程序進(jìn)行設(shè)置。但這個初始值是靜態(tài)的,當(dāng)通信雙方跨越多個網(wǎng)絡(luò)時,使用設(shè)置的MSS可能導(dǎo)致傳輸?shù)腎P 報文分片的產(chǎn)生。為了避免分片,CDP在數(shù)據(jù)傳輸過程中進(jìn)行動態(tài)的路徑MTU(Maximum Transmission Unit)發(fā)現(xiàn),并進(jìn)行MSS 的更新及通告。

CDP創(chuàng)建UDP SOCKET時,即將IP選項設(shè)置為不允許分片: Setsockopt(clientSock, IPPROTO_IP, IP_DONTFRAGMENT, (char*)&dwFlags, sizeof(dwFlag) )。

在發(fā)送數(shù)據(jù)時先以當(dāng)前MSS 大小進(jìn)行發(fā)送,如果返回值為錯誤碼WSAEMSGSIZE(10040),則表示為報文尺寸大于MTU,需要進(jìn)行IP 分片傳輸。此時,縮減MSS大小再次發(fā)送,直至不再返回錯誤碼WSAEMSGSIZE(10040)。當(dāng)MSS 變更并能成功發(fā)送報文后,需要向?qū)Χ送▓笮碌腗SS 值。每次MSS 縮小后,默認(rèn)隔30 秒,CDP 將默認(rèn)擴(kuò)大MSS 大小,以檢查是否路徑MTU 是否增大了,之后隔30*2 秒、30*2*2 秒進(jìn)行檢測,如果三次都未發(fā)現(xiàn)MTU 增大則停止進(jìn)行檢測。網(wǎng)絡(luò)中MTU 值的個數(shù)是有限的[3]。因此MSS 的擴(kuò)大及縮減,可依據(jù)一些由近似值按序構(gòu)成的表,依照此表索引進(jìn)行MSS 值的擴(kuò)大與縮減計算。

CDP 中MSS 與MTU 之間關(guān)系的計算公式如下:MSS = MTUC20(IP首部)C8(UDP首部)C12(CDP首部)。

4 CDP應(yīng)用程序開發(fā)接口(CDP Socket API)

使用CDP進(jìn)行網(wǎng)絡(luò)程序開發(fā)是非常容易的,它API與標(biāo)準(zhǔn)socket API是非常相似的,對應(yīng)功能的函數(shù)名稱都相同,只是CDP的所有API都處于名稱空間CDP 之下。此程序庫的實現(xiàn)也參考了BSD Socket的實現(xiàn)。CDP Socket API列表如下:

5 結(jié)束語

本文提出了一種基于UDP協(xié)議之上的TCP協(xié)議實現(xiàn)――CDP協(xié)議,并對現(xiàn)實的一些關(guān)鍵部分進(jìn)行了討論,最后給出了CDP協(xié)議的應(yīng)用開發(fā)接口。CDP協(xié)議同時具備了TCP通用、高效的特點,有利用的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.

篇2

關(guān)鍵詞: 流控制傳輸協(xié)議; 傳輸控制協(xié)議; 單路徑; 多路徑; 吞吐率; 延遲

中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號: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信令消息,即通常所說的SS7 over IP。

在國內(nèi),1985年是流控制傳輸協(xié)議技術(shù)開始萌芽的時期。從1985到1995年,該技術(shù)主要局限于計算機(jī)網(wǎng)絡(luò)中接人端口數(shù)據(jù)流的控制技術(shù),以防止計算設(shè)備之間大量數(shù)據(jù)互相通信時出現(xiàn)阻塞,保證更高的傳輸效率和可靠性。目前對該技術(shù)的研發(fā)仍處于較淺的層次,對整個IP網(wǎng)絡(luò)中實規(guī)PSTN信令傳輸?shù)募夹g(shù)還鮮有涉及;國內(nèi)的SCTP研究還主要側(cè)重于應(yīng)用方面,比如SCTP與TCP的比較、SCTP在移動環(huán)境下的性能研究(例如平滑切換,移動IP,最后一跳性能惡化問題,基于SCTP移動Internet傳輸模型等)、基于獨(dú)立路徑擁塞控制的SCTP負(fù)荷分擔(dān)機(jī)制研究、結(jié)合SS7的研究,以及SCTP的安全問題研究、軍事應(yīng)用等。

國外則更側(cè)重于起草標(biāo)準(zhǔn),如:定義SCTP負(fù)荷分擔(dān)草案(多路徑同時傳輸);制定部分可靠傳輸標(biāo)準(zhǔn);提交建立SCTP偶聯(lián)后的動態(tài)地址重配置;提交SCTP API草案;定義SCTP對移動IP的支持;提交單播擁塞控制建議標(biāo)準(zhǔn);TCP友好可變速率控制等等。目前,IETF致力于把SCTP作為一種通用的傳輸協(xié)議。對SCTP本身的研究集中在對其功能的完善和擴(kuò)展上,主要是從兩個本質(zhì)特點入手:多路徑和多流。同時,對SCTP應(yīng)用的研究主要集中在兩個方面:在移動網(wǎng)絡(luò)中的應(yīng)用和對多媒體的傳輸。

本文的主要研究工作是利用NS-2構(gòu)建仿真平臺,對SCTP和TCP這兩種協(xié)議進(jìn)行對比,并根據(jù)仿真的結(jié)果計算、分析和比較這兩種協(xié)議的性能,發(fā)現(xiàn)它們各自的優(yōu)缺點。

1 TCP和SCTP的單路徑的對比研究

單路徑的實驗拓?fù)鋱D如圖1所示,一共有6個節(jié)點,2個路由節(jié)點。其中0-2是發(fā)送節(jié)點,5-7是相應(yīng)的接收節(jié)點。3個發(fā)送節(jié)點都綁定了FTP應(yīng)用,其中0號節(jié)點的數(shù)據(jù)包發(fā)送往5號節(jié)點,流標(biāo)簽為1;1號節(jié)點的數(shù)據(jù)包發(fā)送往6號節(jié)點,流標(biāo)簽為2;2號節(jié)點的數(shù)據(jù)包發(fā)送往7號節(jié)點,流標(biāo)簽為3。設(shè)置最大的傳輸單元為1500。路由3、4間的droptail隊列大小分別為5、10。本實驗主要更改了1號節(jié)點和6號節(jié)點的傳輸協(xié)議。現(xiàn)在設(shè)0-5號節(jié)點的路徑為L1,1-6號節(jié)點的路徑為L2,2-7號的路徑為L3。變量主要在L1上面。其中發(fā)送節(jié)點到路由節(jié)點3,路由節(jié)點4到接收節(jié)點的帶寬均為10Mbps,延遲均為15ms。路由節(jié)點3、4直接的帶寬為1.7Mbps,延遲為15ms。這樣路由節(jié)點3、4之間就成為接收方和發(fā)送方直接的瓶頸。

圖1 實驗拓?fù)鋱D

實驗一的過程是:在0.5s的時候三個節(jié)點同時開始發(fā)送數(shù)據(jù),4s的時候斷開L1,7s的時候斷開L2。這樣做的主要目的是讓L1的數(shù)據(jù)包先在有兩個TCP傳輸協(xié)議競爭的情況下進(jìn)行數(shù)據(jù)傳輸,然后逐漸斷開其他兩個鏈路的數(shù)據(jù)傳輸,來觀察TCP和SCTP在有TCP競爭條件下,數(shù)據(jù)傳輸?shù)耐掏铝浚舆t和丟包率。吞吐量如圖2所示。

圖2 實驗一中TCP和SCTP數(shù)據(jù)的吞吐量

圖2所表示的是鏈路L2上的數(shù)據(jù)吞吐量。X坐標(biāo)軸表示時間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。紅色線表示TCP協(xié)議在droptail隊列為5時的數(shù)據(jù)吞吐量。綠色線表示TCP協(xié)議在droptail隊列為10時的數(shù)據(jù)吞吐量。藍(lán)色線為SCTP協(xié)議在droptail隊列為5時的數(shù)據(jù)吞吐量,黃色為SCTP協(xié)議在droptail隊列為10時的數(shù)據(jù)吞吐量。從圖2中可以看出,總體上SCTP的吞吐量遠(yuǎn)遠(yuǎn)高過TCP。對于SCTP來說,在droptail隊列為5的時候,其吞吐量比10的時候略高,但差距不是很大。在兩個TCP數(shù)據(jù)傳輸斷掉以后,兩種情況下的吞吐量趨于相同,而且數(shù)據(jù)吞吐量趨于穩(wěn)定。看趨勢,在9s以后,droptail隊列為10的時候,其吞吐量會略大于5的時候。對于TCP協(xié)議來說,很明顯,在droptail隊列為10的時候,其吞吐量高于5的時候,在兩個TCP協(xié)議的數(shù)據(jù)傳輸都斷掉以后,數(shù)據(jù)吞吐量的增長率趨于平行式增長。

圖3 實驗一中TCP和SCTP延遲對比

圖3是實驗一中SCTP和TCP兩種協(xié)議數(shù)據(jù)傳輸延遲的對比。如圖所示,是TCP和SCTP在droptail隊列為5的時候,兩種協(xié)議延遲的對比。紅色線為TCP的延遲,綠色的為SCTP的延遲。X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個時刻的延遲,單位為s。從圖3中可以看到,兩者的數(shù)據(jù)線略有交叉,SCTP的延遲略高于TCP;TCP的延遲是在一個范圍內(nèi)上下波動,而SCTP的延遲呈一種階段性的梯度變化。從這里也可以看出兩種數(shù)據(jù)傳輸?shù)牟顒e:TCP在鏈路達(dá)到穩(wěn)定的時候,每次傳輸?shù)臄?shù)據(jù)量一定;而SCTP的數(shù)據(jù)傳輸,在沒有擁塞避免的情況下,是呈指數(shù)增長的。

根據(jù)實驗一的拓?fù)鋱D,更改鏈路L1和L3的數(shù)據(jù)傳輸時間,此為實驗二。在0.5s的時候1號節(jié)點開始發(fā)送數(shù)據(jù),在1.5s的時候0號節(jié)點開始發(fā)送數(shù)據(jù),在4.5s的時候3號節(jié)點開始發(fā)送數(shù)據(jù),在7.5s的時候?qū)1和L3兩條鏈路斷開連接,8s的時候結(jié)束數(shù)據(jù)傳輸。通過觀察TCP和SCTP協(xié)議在逐漸有一個TCP協(xié)議和兩個TCP協(xié)議競爭的條件下的數(shù)據(jù)吞吐量,延遲和丟包率來對比兩種協(xié)議。

圖4 實驗二中TCP和SCTP兩種協(xié)議的數(shù)據(jù)吞吐量

在圖4中,表示的是鏈路L2上的數(shù)據(jù)吞吐量。X坐標(biāo)軸表示時間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。紅色線表示TCP協(xié)議在droptail隊列為5時的數(shù)據(jù)吞吐量。綠色線表示TCP協(xié)議在droptail隊列為10時的數(shù)據(jù)吞吐量。藍(lán)色線為SCTP協(xié)議在droptail隊列為5時的數(shù)據(jù)吞吐量,黃色為SCTP協(xié)議在droptail隊列為10時的數(shù)據(jù)吞吐量。從圖4中可以看出,總體上來說,在相同的droptail隊列值的情況下,SCTP的吞吐量遠(yuǎn)大于TCP的吞吐量。在兩個TCP競爭數(shù)據(jù)傳輸出現(xiàn)后,它們的吞吐量都有一個短暫性的下降,然后繼續(xù)趨于上升。在8.0s的時候,兩種協(xié)議的吞吐量開始趨于穩(wěn)定。

對比實驗一和實驗二中數(shù)據(jù)吞吐量的圖,我們看到,由于實驗一和實驗二的區(qū)別在于競爭的TCP協(xié)議出現(xiàn)的時間不同,在實驗一的環(huán)境下,SCTP在有其他協(xié)議競爭的條件下,能夠更容易、更快地達(dá)到數(shù)據(jù)吞吐的穩(wěn)定狀態(tài),這樣非常有利于數(shù)據(jù)的傳輸。

圖5是實驗二中鏈路L2在droptail隊列值為10的時候的延遲對比。紅色線為TCP的延遲,綠色的為SCTP的延遲。X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個時刻的延遲,單位為s。由圖5中可以看出,SCTP與TCP延遲隨時間的走勢相互交叉,與實驗一中的情形類似,SCTP的延遲略高于TCP。

圖5 實驗二TCP和SCTP的延遲對比

圖6 TCP和SCTP競爭時的延遲和吞吐量

圖6是在實驗一環(huán)境下,SCTP和TCP相互競爭下的延遲和吞吐量的對比,主要是鏈路L2和L3的對比,紅色線表示的是TCP,綠色線表示TCP。圖6上圖中,X坐標(biāo)軸表示數(shù)據(jù)傳輸?shù)臅r間變化,單位為s,Y坐標(biāo)軸表示兩種協(xié)議在某個時刻的延遲,單位為s;圖6下圖中,X坐標(biāo)軸表示時間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。從圖6中可以看出,情況基本與上面的實驗保持一致。在相同的droptail隊列值的情況下,SCTP的吞吐量遠(yuǎn)大于TCP,但是TCP和SCTP的延遲相互交叉,SCTP延遲略高于TCP。

2 TCP和SCTP的多路徑的對比研究

多路徑的實驗拓?fù)鋱D如圖7所示,節(jié)點0-2合起來是一個發(fā)端,節(jié)點3-5合起來是一個收端。0是核心節(jié)點,1、2是接口,即該端點的兩個IP地址;3也是核心節(jié)點,4、5也是接口,也即該端點的兩個IP地址。1和4路徑命名為if0;2和5路徑命名為if1。

在SCTP傳輸過程中,數(shù)據(jù)只能從接口發(fā)或收,不能直接從核心節(jié)點發(fā)或收。該實驗過程為:應(yīng)用層傳輸FTP數(shù)據(jù),在0.5s后開始傳輸;在第5s前,路徑if0、if1的帶寬為5M,時延為50ms;在第5s,路徑if0性能惡化,帶寬變成1M,時延變?yōu)?00ms;在第8s,傳輸結(jié)束。

圖7 SCTP多路徑仿真拓?fù)鋱D

由于TCP沒有多路徑這個特點,所以,要與SCTP作對比,只能重新建立拓?fù)鋱D。拓?fù)鋱D如圖8所示:數(shù)據(jù)傳輸過程和SCTP一樣,應(yīng)用層傳輸FTP數(shù)據(jù),在0.5s后開始傳輸;在第5s的時候鏈路發(fā)生惡化,帶寬變成1M,時延變?yōu)?00毫秒;在第8s,傳輸結(jié)束。

圖8 相應(yīng)的TCP拓?fù)鋱D

對于這兩種協(xié)議延遲方面的比較,我們在上一節(jié)中已經(jīng)有過很詳細(xì)的對比,所以在這里,主要針對兩種協(xié)議在多路徑的情況下,對數(shù)據(jù)吞吐量作比較,如圖9所示。

圖9 多路徑下TCP與SCTP吞吐量的比較

如圖9,其中為了表示自己搭建的TCP網(wǎng)絡(luò)和SCTP網(wǎng)絡(luò)有對比性,所以測試了在圖8中拓?fù)鋱D中SCTP數(shù)據(jù)的吞吐量,如圖9中的綠線。從圖中來看,在6.5s以前兩種拓?fù)鋱D中SCTP的數(shù)據(jù)吞吐量完全吻合,這樣看來,兩種拓?fù)鋱D是具有可比性的。圖中藍(lán)色線表示TCP協(xié)議的吞吐量,黃色線表示if0路徑上SCTP的吞吐量,紅色線表示if1路徑是SCTP的吞吐量。X坐標(biāo)軸表示時間的變化,單位為s,Y坐標(biāo)軸表示接收的數(shù)據(jù)量,單位為Byte。從圖9中看,5s之前鏈路沒有惡化,SCTP默認(rèn)if0是主路徑,5s之后鏈路if0惡化,吞吐量開始下降,此時,因為有另一條路徑if1的存在,而且鏈路狀態(tài)比if0好,SCTP開始將if1作為主路徑進(jìn)行傳輸,圖中if1的吞吐量開始上升,由此可以看出,SCTP的吞吐量在經(jīng)過一段時間的降低之后,會恢復(fù)原來的吞吐量,使數(shù)據(jù)傳輸不受影響。由圖9可以看出,TCP在路徑出現(xiàn)惡化的時候,吞吐量開始下降,如果路徑得不到緩解,吞吐量會受到很大的影響。由此可以看出,SCTP多路徑的特點較TCP存在很大的優(yōu)勢。我們再來分析路徑if0數(shù)據(jù)傳輸與時間的關(guān)系,如圖10所示。圖10中有上(紅色)、中(綠色)、下(藍(lán)色)三條線。上線(紅色)代表 SCTP 把數(shù)據(jù)包發(fā)送到緩存,即入隊列;中線(綠色)代表數(shù)據(jù)包從緩存注入到網(wǎng)絡(luò),即出隊列;下線(藍(lán)色)代表數(shù)據(jù)包從收端反饋回來的證實 SACK。縱坐標(biāo)代表所發(fā)送的數(shù)據(jù)包序列號,橫坐標(biāo)代表時間,斜率指示傳輸速率(下面類似圖的信息也是這樣的)。在第5s,帶寬和時延發(fā)生變化,路徑性能變差,所以第5s后的斜率小于第5s前的斜率,即第5s后的傳輸速率小于第5s前的傳輸速率。

圖10 if0上數(shù)據(jù)傳輸與時間的關(guān)系

3 結(jié)束語

本文主要是通過NS-2構(gòu)建仿真平臺,對TCP和SCTP在單路徑和多路徑的條件下進(jìn)行對比。通過兩個實驗對比發(fā)現(xiàn),兩種協(xié)議在數(shù)據(jù)傳輸?shù)难舆t方面,SCTP協(xié)議略高于TCP協(xié)議,相差不是很大,但是SCTP的數(shù)據(jù)吞吐量遠(yuǎn)遠(yuǎn)大于TCP協(xié)議。由于SCTP具有多路徑和多重定址的特點,在應(yīng)對鏈路惡化的情況時,SCTP表現(xiàn)出更高的穩(wěn)定性。作為一個新的傳輸協(xié)議,SCTP還具有很大的發(fā)展空間,SCTP較TCP更能滿足高性能傳輸?shù)囊螅S著IP網(wǎng)絡(luò)的迅猛發(fā)展,SCTP一定會有更廣闊的應(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] 周開波,劉桐,蔣皓等.mSCTP協(xié)議異構(gòu)網(wǎng)絡(luò)切換性能評估[J].現(xiàn)代電

信科技,2011.3(3):19

[6] 方路平,劉世華,陳盼等.NS-2網(wǎng)絡(luò)模擬基礎(chǔ)與應(yīng)用[M].國防工業(yè)出

版社,2008.

[7] 胡文靜.SCTP主路徑自動切換的研究[D].吉林大學(xué)碩士學(xué)位論文,

2006.

[8] 葉凌偉,陳雁.SCTP與TCP的功能對比及應(yīng)用分析[J].中國數(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é)報,2003.4(2):31

篇3

關(guān)鍵詞:TCP協(xié)議;網(wǎng)絡(luò)安全;協(xié)議攻擊;安全防御

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼: A 文章編號: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)在用得非常廣泛,但除了對它不正確使用造成不安全因素外,它本身也有一些安全上的缺陷。一些缺陷

是由于主機(jī)使用IP源地址作為認(rèn)證機(jī)制引起的;Berkeley 的r系列調(diào)用就是一個明顯的例子。其它的一些缺陷是由于網(wǎng)絡(luò)控制機(jī)制,特別是路由協(xié)議,缺少認(rèn)證機(jī)制引起的。

描述這些攻擊的前提是攻擊者或多或少控制了某些連在互聯(lián)網(wǎng)上的機(jī)器。被控制的機(jī)器有的是因為本身有漏洞,有的是自身沒有保護(hù)機(jī)制的個人電腦。也有可能攻擊者是一個系統(tǒng)管理員。

我不討論協(xié)議具體應(yīng)用上的漏洞,比如被互聯(lián)網(wǎng)“蠕蟲”利用的漏洞。討論的是協(xié)議本身的問題。只要小心地使用這些協(xié)議,有些問題是可以避免的;我也不討論經(jīng)典的網(wǎng)絡(luò)攻擊,比如切斷物理線路,篡改或插入消息,而主要討論的是僅僅由于協(xié)議本身引起的問題。

本文所討論的協(xié)議是Berkeley(早期的TCP/IP協(xié)議)協(xié)議,因為它實際上已成為大部分廠商的標(biāo)準(zhǔn),而不僅僅是UNIX系統(tǒng)。

2 TCP序列號預(yù)測攻擊

TCP序列號預(yù)測攻擊最早是1985年由Robort.Morris對這一安全漏洞進(jìn)行闡述的。他使用TCP序列號預(yù)測,即使是沒有從服務(wù)器得到任何響應(yīng), 來產(chǎn)生一個TCP包序列。這使得他能欺騙在本地網(wǎng)絡(luò)上的主機(jī)。

2.1 攻擊方法

TCP協(xié)議有一個非常令人著迷的漏洞,簡單的說,就是通過預(yù)測初始序列號來偽造TCP包,并且不需要得到回應(yīng)。這樣就可以使攻擊者偽裝成一臺和服務(wù)器在同一個局域網(wǎng)上的一臺可信任的機(jī)器。

通常建立TCP連接需要三次握手。客戶機(jī)送一個初始序列號ISNc,服務(wù)器應(yīng)答它并送出它自己的序列號ISNs,客戶機(jī)再發(fā)出一個應(yīng)答包。這三個數(shù)據(jù)包發(fā)送以后,就可以傳輸數(shù)據(jù)了。這個

過程可以用下圖來表示:

C->S:SYN(ISNc)

S->C:SYN(ISNs),ACK(ISNc)

C->S:ACK(ISNs)

C->S:data

and/or

S->C:data

這就是說,要使一個連接建立起來,C必須知道ISNs,這個數(shù)多少有一些隨機(jī)性。

假設(shè)入侵者X有一種方法可以預(yù)測ISNs。在這種情況下,他可以通過以下的步驟來模仿可信任的主機(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)過X,X也能知道它的內(nèi)容,因此能發(fā)送數(shù)據(jù)。如果X在一個能夠執(zhí)行命令的連接上實行這種攻擊(例如,Berkeley rsh 服務(wù)),他就可以運(yùn)行一些惡意的命令。

那么怎樣預(yù)測隨機(jī)的ISN呢?在Berkeley系統(tǒng)中,初始序列號變量是以每秒固定的數(shù)目遞增的,而每次連接的序列號就是這個變量的一半。因此,如果有人通過合法的連接觀察ISNs,他就有很大的機(jī)會通過計算得到下一次連接的ISNs。應(yīng)該指出的是服務(wù)器的應(yīng)答消息

S->T:SYN(ISNs),ACK(ISNx)

并沒有消除這種攻擊;雖然真正的T主機(jī)將接收到它,并且會重設(shè)連接。這并不是一個嚴(yán)重的障礙,因為我們可以通過一些拒絕服務(wù)的攻擊使T主機(jī)暫時失效,也可以在T主機(jī)關(guān)機(jī)或重起的時候攻擊。

還有一種通過netstat服務(wù)對TCP序列號進(jìn)行的攻擊。在這種攻擊中,入侵者模仿一臺關(guān)閉的主機(jī)。如果在目標(biāo)機(jī)上有netstat服務(wù),它就會提供另一個端口必要的序列號信息;這樣就根本不需要猜測了。

2.2 防御

很明顯,這種攻擊的關(guān)鍵是Berkeley系統(tǒng)中初始序列號變量變化方式太簡單了。TCP標(biāo)準(zhǔn)要求這個變量必須以每秒鐘將近250,000的速度增長;Berkerey系統(tǒng)則使用了一個比它慢得多的速度。然而關(guān)鍵的因素是間隔的大小而不是平均速度。從4.2BSD系統(tǒng)的每秒增加128到4.3BSD的每秒增加125,000的改變是沒有意義的。

下面讓我們來看看以250,000的頻率運(yùn)行是否有用。為了簡單起見,我忽略了其它連接產(chǎn)生的問題,僅僅考慮本計數(shù)器固定速度的改變:

為了知道當(dāng)前的序列號,必須發(fā)送一個SYN包,并接收它的回應(yīng),如下:

X->S:SYN(ISNx)

(上接第682頁)

S->X:SYN(ISNs),ACK(ISNx) (1)

第一個使服務(wù)器產(chǎn)生下一序列號的偽造的數(shù)據(jù)包,可以緊跟在服務(wù)器對探測包的回應(yīng)后送出:

X->S:SYN(ISNx),SRC=T (2)

序列號ISNs在應(yīng)答中使用

S->T:SYN(ISNs),ACK(ISNx)

它是由數(shù)據(jù)包(1)產(chǎn)生到服務(wù)器接收到數(shù)據(jù)包(1)之間的時間唯一確定的。但是這個時間是由X到S的來回時間確定的。因此如果攻擊者能夠測量或預(yù)測到這個時間,即使使用一個能精確的4μ秒的時鐘也不能阻止這種攻擊。

對來回時間的測量能精確到什么程度呢?如果假設(shè)網(wǎng)絡(luò)很穩(wěn)定,我們可以精確到10毫秒左右。很明顯,互聯(lián)網(wǎng)不可能長期這么穩(wěn)定,但是卻有可能在一個較短的時間內(nèi)穩(wěn)定。因此我們有2500個ISNs的可能值。考慮到重新測量來回時間所需的時間,我們假設(shè)每次嘗試需要化5秒,那么一個攻擊者很可能在7500秒內(nèi)獲得成功。條件更好的網(wǎng)絡(luò)或更精確的測量,能夠提高成功的可能性。因此,僅僅是按TCP協(xié)議標(biāo)準(zhǔn)是不行的。

在這里,我們默認(rèn)的假設(shè)是目標(biāo)機(jī)上不運(yùn)行任何進(jìn)程。實際上,當(dāng)新的請求到達(dá)時,是會運(yùn)行一些進(jìn)程的。在一個6MIPS的機(jī)器上,一個時鐘周期-4μ秒-大約可執(zhí)行25條指令。高優(yōu)先級的中斷,TCB分配順序的不同,都對下一個序列號有相當(dāng)大影響。這種隨機(jī)的效果是被認(rèn)為是主機(jī)的優(yōu)點。必須注意的是,越快的主機(jī)越容易攻擊,這是由于它執(zhí)行指令的時間會減少,因此對初始序列號增加的影響也會減少。當(dāng)然,CPU的速度增加是很快的。

另一個對付序列號攻擊的方法是:隨機(jī)的增加初始序列號變量。必須要全部位都是隨機(jī)的,如果假設(shè)只有低8位是隨機(jī)的,那么增加的間隔也是容易猜測的。我們應(yīng)該結(jié)合使用好的間隔增量和一個小的隨機(jī)數(shù)發(fā)生器或使用一個32位隨機(jī)數(shù)發(fā)生器。注意,有很多假的隨機(jī)數(shù)產(chǎn)生器是很容易倒轉(zhuǎn)的。實際上,假設(shè)大部分這種產(chǎn)生器是通過它的輸出的反饋來工作的,入侵者就可以通過簡單的計算來得到下一個隨機(jī)數(shù)。有些技術(shù)使用32位發(fā)生器,但僅僅使用它的16位,用窮舉攻擊法就可以得到它的結(jié)果。我們必須最少把隨機(jī)數(shù)的16用在每一次增加中,以使網(wǎng)絡(luò)探測失效,但是用于防御搜索結(jié)果的位就太少了。要通過更多的研究和仿真來決定合適的參數(shù)。

與其用這么大的數(shù),不如對ISNs加密。數(shù)據(jù)加密標(biāo)準(zhǔn)算法(DES)加上一個簡單的計數(shù)器是一個很好的選擇。也可以在輸出反饋模式使用DES而不要計數(shù)器。不管用哪一種方法,都必須小心的選擇密匙。在當(dāng)今使用開機(jī)時間是不行的,入侵者能夠取得足夠多的關(guān)于開機(jī)時間的信息,從而實現(xiàn)窮舉攻擊。但是如果開機(jī)時間用密匙加密后,隨機(jī)數(shù)產(chǎn)生器就很難破解了。初始序列號產(chǎn)生器的性能是沒問題的。每一次連接只需要產(chǎn)生一個初始序列號,即使使用軟件來實DES加密也足夠了。

還有一些防御措施包括做好日志和報警系統(tǒng)。測量來回時間通常是用ICMP報文來實現(xiàn)的,我們可以記錄超常的ping請求。也可以記錄短時間的、不完全的tcp連接請求。同樣,偽裝一臺活動的主機(jī)會產(chǎn)生異常的RST包,這些都應(yīng)該被記錄下來。

3 SYN Floods攻擊

3.1 什么是SYN Floods攻擊

SYN Floods攻擊是以TCP/IP協(xié)議的三次握手為基礎(chǔ)的,所以要了解SYN Floods攻擊,必須了解TCP/IP協(xié)議的三次握手,這在前面已經(jīng)介紹過了。

SYN Floods攻擊就是通過一些工具如SYN Flooders或通過raw socket編程向目標(biāo)機(jī)發(fā)送一些源地址不存在的SYN數(shù)據(jù)包,目標(biāo)機(jī)收到這些數(shù)據(jù)包后就會發(fā)出應(yīng)答并等待回應(yīng),然而由于源地址的主機(jī)不存在,所以目標(biāo)機(jī)因得不到回應(yīng)而一直等待,直到超時。如果有人向目標(biāo)機(jī)發(fā)送大量這樣的數(shù)據(jù)包,目標(biāo)機(jī)就會因為接收連接的隊列填滿而不再接受連接請求,這樣目標(biāo)機(jī)就暫時失效了,因此SYN Floods攻擊是一種拒絕服務(wù)的攻擊。大部分這種攻擊只是使服務(wù)器不再接受連接而不影響已經(jīng)建立起來的連接;但在有些情況下,會使系統(tǒng)內(nèi)存不足而導(dǎo)致系統(tǒng)崩潰。這種攻擊比較難以預(yù)防,因為當(dāng)三次握手的第一個SYN數(shù)據(jù)包到來的時候,沒有辦法知道它的源地址是真的還是偽造的。

3.2 解決方法

有兩種方法可以緩解或禁止這種攻擊。第一種是SYN Storm Modifications,另一種是SYN Cookies。

SYN Storm Modifications(也叫Adaptive Time-Outs):

這種方法是通過稍微修改算法以使TCP連接請求隊列中能容納更多的TCP連接請求(可以有成千上萬個連接請求)。通過修改算法,就能夠緩解或阻止這種攻擊。這種修改已被應(yīng)用在Unix 環(huán)境中(SunOS,FreeBSD,OpenBSD 和 NetBSD),不過就我所知,微軟還沒有采用這種技術(shù)。

SYN Cookies:

這種技術(shù)通過在TCP包頭中的特定字段抽出一個秘密數(shù)字,SYN Floods 攻擊幾乎能被防止。這個抽出的數(shù)字必須包含包頭其它部分的索引。把這個信息用不可逆算法加密,并把它作為應(yīng)答包頭的一部分。當(dāng)有一個ACK包到達(dá)時,把包頭中的加密字與服務(wù)器上的作比較,如果相同就建立連接,不同就把這個包丟棄,并且三次握手沒有完成。用這種方法,服務(wù)器不需要等,因此SYN Floods攻擊被禁止了。

4 總結(jié)

以上介紹了由于TCP協(xié)議本身缺陷所引起的兩種攻擊及其防御對策,在這兩種防御對策中,都用到了加密技術(shù)。加密技術(shù)對網(wǎng)絡(luò)安全是非常重要的,因為系統(tǒng)的漏洞是不可避免的,因此沒有絕對安全的系統(tǒng)。而加密技術(shù)可以使你的系統(tǒng)在被入侵后,把損失減到最小。從本文可以也可以看出,加密技術(shù)對預(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 實現(xiàn)網(wǎng)際互聯(lián)[M].清華大學(xué)出版社,1998.

篇4

關(guān)鍵詞:NDK; TMS320DM642; TCP/ IP

1、 NDK 的結(jié)構(gòu)

TI公司依據(jù)C6000芯片推出了TCP/IP NDK(Network Developer's Kit)開發(fā)套件, 其主要構(gòu)成包括: (1)支持TCP/IP 協(xié)議棧程序庫。其中主要含有的庫: 支持TCP/IP網(wǎng)絡(luò)工具的庫,支持TCP/IP 協(xié)議棧與DSP/BIOS平臺的庫,網(wǎng)絡(luò)控制以及線程調(diào)度的庫。(2)示范程序。其中主要包括DHCP/Telnet 客戶端, HTTP 數(shù)據(jù)服務(wù)器示范。(3)支持文檔。包含用戶手冊、程序員手冊和平臺適應(yīng)手冊。NDK 采用緊湊的設(shè)計方法, 實現(xiàn)了用少量的資源耗費(fèi)來支持TCP/IP。從實用效果來看, NDK僅用200-250K程序空間和95K 數(shù)據(jù)空間即可完成常規(guī)的TCP/IP 服務(wù)。

NDK相對于操作系統(tǒng)和底層硬件是透明的, 因為這是由OS。LIB 提供操作系統(tǒng)DSP/BIOS的接口和HAL。LIB 提供對硬件的支持來實現(xiàn)的。在NDK的TCP/IP協(xié)議棧中STACK。LIB 包括了頂層套接字到底層鏈路層的所有功能, NETCTRL。LIB在整個協(xié)議棧中起關(guān)鍵作用, 協(xié)調(diào)操作系統(tǒng)和底層硬件驅(qū)動, 管理所有網(wǎng)絡(luò)事件, NETTOOL。LIB 提供配置網(wǎng)絡(luò)各種服務(wù)。

2、NDK 在DSP/BIOS 下的使用

DSP/BIOS 是TI 開發(fā)的實時微型操作系統(tǒng), 支持線程管理、實時分析、周期函數(shù)、調(diào)度軟件中斷以及外部硬件中斷與各種外設(shè)的管理。使用DSP/BIOS 所有與硬件有關(guān)的操作都必須借助操作系統(tǒng)本身提供的函數(shù)完成, 應(yīng)避免直接控制硬件資源。基于DSP/BIOS 的程序與傳統(tǒng)開發(fā)過程是不同的, 用戶編寫的程序由DSP/BIOS 調(diào)度, 不再按標(biāo)寫的次序順序執(zhí)行。同樣開發(fā)基于DSP/BIOS的網(wǎng)絡(luò)應(yīng)用程序也必須要遵循一些原則。

在DSP/BIOS 下使用NDK 必須注意以下幾點: (1) 為了保證使用NDK 的工程項目能正確編譯, 在CCS 的Link Order 要按一定的順序添加庫文件, 推薦的順序是: NETCTRL。LIB、HAL_xxxLIB、STACK。LIB、OS。LIB; (2)在使用NDK 的過程當(dāng)中, OS和HAL 會創(chuàng)建三個內(nèi)存段, 分別是PACKETMEM、MMBUFFER、OBJMEM, 必須在CMD 文件中為這三個段在內(nèi)存中分配存儲空間;(3) 至少要使用32K 的cache, 否則應(yīng)用程序會產(chǎn)生不可預(yù)料的錯誤;(4) 必須在CDB文件中為HAL 創(chuàng)建一個周期為100ms 的PRD 函數(shù), 用來驅(qū)動llTimerTick()系統(tǒng)函數(shù);(5) OS 需要鉤子函數(shù)為TCP/IP 堆棧加載和保存私人變量指針, 所以必須在CDB 文件中創(chuàng)建兩個鉤子函數(shù)NDK_hookInit()和NDK_hookCreate();(6)必須把工程項目的IncludeSearching Path 指向NDK 安裝目錄下的inc 文件夾。

3、NDK 性能測試

測試NDK性能既有主觀性又有客觀性。主觀性適應(yīng)為實際測試要受到很多環(huán)境因素的影響。客觀性是因為使用標(biāo)準(zhǔn)的工具,并且結(jié)果可重現(xiàn)。 所以只能是性能的估計性測試。影響NDK性能的主要因素有:

socket API: NDK既支持非拷貝的數(shù)據(jù)包socket,也支持基于緩沖區(qū)的典型socket,甚至非拷貝的直接接收的TCP數(shù)據(jù)流。性能隨所采用的策略變化而變化。

socket 緩沖區(qū): socket緩沖區(qū)影響TCP發(fā)送和接收的窗口大小,并且決定每次發(fā)送數(shù)據(jù)流大小,這對網(wǎng)絡(luò)性能有很大的影響。

CPU速度:在cache大小一定的情況下,網(wǎng)絡(luò)性能與CPU速度成正比。CPU cache: cache的大小對網(wǎng)絡(luò)性能有巨大的影響。

網(wǎng)絡(luò)硬件設(shè)備:以太網(wǎng)硬件設(shè)計的好壞直接影響DSP和網(wǎng)絡(luò)接口的速度。

外部存儲器(EMIF)接口:對于和DSP外部存儲器接口相連的以太網(wǎng)設(shè)備, EMIF的速度對外部解碼邏輯有額外的影響。

下面的測試由TI提供,測試不僅兼顧最佳的性能而且考慮到應(yīng)用的實際情況,比如socket緩沖區(qū)大小為8K,而不是32K 或64K,因為這在嵌入式設(shè)備中是不切實際的。測試的過程是DSP執(zhí)行低優(yōu)先級的網(wǎng)絡(luò)任務(wù),PC機(jī)執(zhí)行客戶基準(zhǔn)測試程序, 然后與DSP不執(zhí)行網(wǎng)絡(luò)任務(wù)時CPU的負(fù)載情況做對比。

4 、結(jié)論

TI推出的NDK網(wǎng)絡(luò)開發(fā)工具不僅可以使技術(shù)人員快速開發(fā)基于DSP的網(wǎng)絡(luò)應(yīng)用程序,而且具有十分可靠的性能,這使得C6000系列芯片完全可以勝任大數(shù)據(jù)量的視頻網(wǎng)絡(luò)傳輸?shù)囊螅情_發(fā)嵌入式網(wǎng)絡(luò)視頻設(shè)備的首選。

參考文獻(xiàn)

[1]Texas Instrument。TMS320C6000 Programmer ' s Guide(Rev。 I)。

篇5

【關(guān)鍵詞】TCP 協(xié)議;有色Petri網(wǎng);形式化描述;可達(dá)樹

隨著數(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ǔ)上定義的一種具有層次性的高級Petri網(wǎng)。利用在計算機(jī)上開發(fā)的CPN的建模分析工具──CPN Tools,可以建立描述系統(tǒng)的CPN靜態(tài)模型,并對系統(tǒng)模型的動態(tài)行為進(jìn)行仿真,分析系統(tǒng)的分布、并發(fā)、同步、異步等特性,以及建立系統(tǒng)模型的狀態(tài)空間并分析系統(tǒng)的活性問題、可達(dá)性問題等。由于CPN具有嚴(yán)格的網(wǎng)理論形式化的數(shù)學(xué)描述、上述的特性以及建模工具提供的仿真分析功能,因此在網(wǎng)絡(luò)通信協(xié)議的驗證和分析上得到了廣泛的應(yīng)用。

一、TCP協(xié)議連接的建立過程

TCP是一個可靠的,面向連接的,端到端的傳輸協(xié)議,它提供了具有流量控制的可靠的數(shù)據(jù)傳輸。TCP的連接建立稱為“三次握手”。(1)客戶發(fā)送第一個報文段,SYN報文段,在這個報文段中只有SYN標(biāo)志置1,這個報文段的作用是使序號同步。客戶端選擇一個隨機(jī)數(shù)作為第一序號,并把這個序號發(fā)給服務(wù)器。注意SYN報文段是一控制報文段,不攜帶任何數(shù)據(jù)但它消耗一個序列號。(2)服務(wù)器發(fā)送第二個報文段,即SYN+ACK報文段,其中有兩個標(biāo)志置為1這個報文段有兩個目的,一個是使用SYN同步初始序號,另一個是服務(wù)器使用ACK標(biāo)志確認(rèn)已經(jīng)從客戶端收到的SYN報文段,同時給出期望從客戶端收到的下一個序號。服務(wù)器還必須定義客戶端要使用的接收窗口(rwnd),這就實現(xiàn)了TCP的流量控制。(3)客戶端發(fā)送第三個報文段。這僅僅是一個ACK報文段。它使用ACK標(biāo)志和確認(rèn)號字段來確認(rèn)收到了第二個報文。注意這個報文段的序號和SYN的報文段使用的序號一樣,這個ACK報文段不消耗任何序號。客戶還必須定義服務(wù)窗口值。在某些情況下第三個報文段可以攜帶客戶端的第一個數(shù)據(jù)塊,在這種情況下第三個報文段必須有一個新的序號來表示數(shù)據(jù)源的第一個自己的編號。一般的來說,第三個報文段不攜帶數(shù)據(jù)的,因而不消耗序號。

二、CPN模型

在利用CPN Tool建立具體模型之前,先對模型中各庫所和變遷,以及顏色類型,變量做一說明。當(dāng)P1,P2,P4,P7中有標(biāo)識的時候,即發(fā)送端主動打開準(zhǔn)備發(fā)送連接請求和接受端被動打開監(jiān)聽,發(fā)送第一個請求報文,其序號用變量n1綁定,在接收端收到這個請求信息的時候把n1加1作為服務(wù)器想從客戶端得到下一報文段的序號,同時和自己的初始序號一起組成確認(rèn)報文段序列,用(n3,n2)來綁定。當(dāng)客戶端接到這個報文的時候進(jìn)行檢查,如果n3=n1+1,說明得到服務(wù)器確認(rèn)報文安全,發(fā)送客戶確認(rèn)報文,用(n3,n4)綁定,同時把n1作為數(shù)據(jù)傳輸?shù)某跏夹蛱枴H绻鹡3不等于n1+1,客戶端重新發(fā)送連接請求。在服務(wù)器端收到客戶端確認(rèn)報文的時進(jìn)行檢查,如果n4=n2+1,把n2作為接收數(shù)據(jù)的初始編號,等待接收數(shù)據(jù),否則繼續(xù)監(jiān)聽。在初始標(biāo)識下最后到的P8和P11中有標(biāo)記,說明連接建立成功。

三、模型驗證與分析

Petri網(wǎng)的模型驗證方法有兩種:可達(dá)樹(Reachability Tree)方法和線性代數(shù)(Matrix Equations)方法。在初始標(biāo)識下通過工具CPN Tool我們可以得到連接的CPN模型的可達(dá)樹。(1)可達(dá)樹各結(jié)點中庫所包含的標(biāo)記不超過兩個,且當(dāng)庫所包含兩個標(biāo)識時標(biāo)記顏色各不相同,因此TCP協(xié)議連接建立的有色Petri網(wǎng)模型是安全的,有界的。(2)可達(dá)樹中各變遷至少引發(fā)一次,沒有從不引發(fā)的變遷。樹中每個標(biāo)號有后繼標(biāo)號,即每個標(biāo)號都是可以引發(fā)的。對于可達(dá)集R(M0),每一標(biāo)號都有一條從根到的變遷路徑,即。根據(jù)活性的定義,可知該模型是活的,不會有死鎖發(fā)生。(3)可達(dá)樹中不存在無用的循環(huán),其中兩個循環(huán)是處理發(fā)送端和接收端所接受的報文序號是否匹配。(4)可達(dá)樹中可達(dá)狀態(tài)M3經(jīng)變遷T3可回到初始狀態(tài),所以該CPN模型是可逆的。保證了協(xié)議周期的實現(xiàn),即能夠重復(fù)執(zhí)行請求連接的功能。

本文利用有色Petri網(wǎng)的建模的方法和工具CPN Tool,建立了TCP協(xié)議的連接建立過程的有色Petri網(wǎng)模型,得到模型的了可達(dá)樹,通過可達(dá)樹的方法,驗證了所建模型的有界性、安全性、活性、可逆性等性質(zhì)。從而證明了所構(gòu)造的形式化模型的正確性,同時也驗證了協(xié)議的邏輯正確性。

參 考 文 獻(xiàn)

[1]周必水,酈泓.有色Petri網(wǎng)在通信協(xié)議中的應(yīng)用[J].系統(tǒng)仿真學(xué)報.2003,15(8):112~114

篇6

關(guān)鍵詞:Socket通信機(jī)制 TCP協(xié)議 開發(fā)原理

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-3973(2012)008-081-02

1 TCP,SOCKET簡介

TCP:Transmission Control Protocol 傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說明(specified)。在簡化的計算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。

Socket:即“套接字”,描述IP地址和端口,是通信鏈的句柄。在Internet上的主機(jī)一般運(yùn)行了多個服務(wù)軟件,提供幾種服務(wù)。每種服務(wù)都會打開一個Socket,并綁定到一個端口上,不同的端口對應(yīng)于不同的服務(wù)。

2 基于TCP協(xié)議程序的簡單樣例

了解客戶端,服務(wù)器,開發(fā)原理,開發(fā)流程。

客戶端:客戶端(Client)或稱為用戶端,是指與服務(wù)器相對應(yīng),為客戶提供本地服務(wù)的程序。除了一些只在本地運(yùn)行的應(yīng)用程序之外,一般安裝在普通的客戶機(jī)上,需要與服務(wù)端互相配合運(yùn)行。

服務(wù)器:服務(wù)器指一個管理資源并為用戶提供服務(wù)的計算機(jī)軟件,通常分為文件服務(wù)器、數(shù)據(jù)庫服務(wù)器和應(yīng)用程序服務(wù)器。運(yùn)行以上軟件的計算機(jī)或計算機(jī)系統(tǒng)也被稱為服務(wù)器。

開發(fā)原理:

服務(wù)器,使用ServerSocket,監(jiān)聽指定的端口,端口可以隨意指定(建議使用大于1024的端口),等待客戶端得連接,客戶端連接后,產(chǎn)生會話;在會話完成之后,關(guān)閉連接。

客戶端,使用Socket對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,就打開會話;會話完成后,關(guān)閉Socket。客戶端不用指定打開端口,經(jīng)常是臨時的分配一個1024以上的端口。

基于TCP的SOCKET流程如下:

(1)客戶端的編程流程:

打開Socket,創(chuàng)建一個SOCKET;

為套接字建立一個輸入inputstream,和輸出流outputstream;

根據(jù)服務(wù)器協(xié)議(這里是TCP協(xié)議)從套接字讀入或向套接字寫入;

關(guān)閉SOCKET:清除套接字和輸入/輸出流;

(2)服務(wù)器端的編程流程:

打開Server Socket,新建一個服務(wù)器型套接字和一個普通套接字,服務(wù)器型套接字在指定端口為客戶端請求的Socket服務(wù);

使用ServerSocket類的accept()方法,使套接字處于監(jiān)聽狀態(tài),并且把監(jiān)聽結(jié)果返回給普通套接字;

為該普通套接字創(chuàng)建輸入和輸出流;

從輸入和輸出流中讀入或?qū)懭胱止?jié)流,進(jìn)行相應(yīng)的處理,并將結(jié)果返回給客戶端(這里的例子是判斷是奇數(shù)還是偶數(shù))。

樣例詳細(xì)說明:

客戶端發(fā)送一個數(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):

篇7

關(guān)鍵詞:網(wǎng)絡(luò)安全; TCP/IP協(xié)議;安全性

引言

現(xiàn)在Internet已在全世界普及,它使人們穩(wěn)坐家中就可以得到世界各國的所有信息,并已經(jīng)逐漸成為通信方面的基礎(chǔ)設(shè)施。但是從另一方面來說,由于世界的計算機(jī)通過網(wǎng)絡(luò)互相連通潛在了很多不安全的因素。于是,要安全地使用Internet,就需要具備防止信息泄漏以及防止被篡改等網(wǎng)絡(luò)安全問題的能力。為了預(yù)防這些網(wǎng)絡(luò)上的不正當(dāng)行為,特別需要理解Internet在安全方面的特性,以便采取適當(dāng)?shù)姆婪秾Σ摺?/p>

1. TCP/IP的協(xié)議結(jié)構(gòu)

TCP/IP作為通信協(xié)議,它是一組協(xié)議的集合,其中有我們常見的TCP和IP協(xié)議,也有用于管理通信方法的協(xié)議,也有測試網(wǎng)絡(luò)狀態(tài)等工具性的協(xié)議。

支持因特網(wǎng)通信的TCP/IP是以TCP協(xié)議和IP協(xié)議為中心構(gòu)成的協(xié)議群的總稱。TCP/IP通信協(xié)議從最底層開始,是由網(wǎng)間層、傳輸層以及應(yīng)用層構(gòu)成的。像這樣的構(gòu)成層次,可以使開發(fā)工作形成模塊式開發(fā)。

2. 按TCP/IP的協(xié)議層,對其安全性探討

2.1網(wǎng)間層在安全方面的隱患主要包括以下幾種:

(1)偽造IP地址

在Internet中,各個設(shè)備是按照預(yù)先分配的IP地址或者通過DHCP的方式來分配IP地址來標(biāo)識。于是,如果其中的某個設(shè)備設(shè)置成其他設(shè)備所屬的IP或者冒充網(wǎng)關(guān)向設(shè)備發(fā)送數(shù)據(jù)包,就會造成通信混亂,從而導(dǎo)致網(wǎng)絡(luò)癱瘓。舉個簡單的例子,以太網(wǎng)上搶奪其他計算機(jī)的IP,就可以謊稱是被搶奪計算機(jī)IP數(shù)據(jù)包的源地址。致使在這種情況下,被冒充的計算機(jī)上會出現(xiàn)顯示IP地址沖突的提示框。而且在這種狀態(tài)下,也不能保證計算機(jī)能夠正常運(yùn)行。對于這樣的偽造IP地址(IP Spoofing:IP欺詐)的攻擊行為,需要采取以下的措施:

> 利用網(wǎng)絡(luò)監(jiān)視工具,對冒充源地址的數(shù)據(jù)包通過外部網(wǎng)絡(luò)進(jìn)行檢查,確認(rèn)是否真正來自于送信源地址。

> 在服務(wù)器上生成對于遠(yuǎn)程接入進(jìn)程的記錄機(jī)制,用來見識服務(wù)器的適用情況。

(2)偽造ARP

在網(wǎng)間層上,雖然在設(shè)置發(fā)送端與接收端時,利用了IP地址通信,但在作為物理層之一的以太網(wǎng)上卻利用了MAC地址來標(biāo)識發(fā)送端與接收端的地址。像這種網(wǎng)間層的IP地址體系與數(shù)據(jù)鏈路層的MAC地址體系相互對應(yīng)的分配取決于地址解析協(xié)議(ARP)。計算機(jī)在通信時首先利用ARP獲得與目的IP地址所對應(yīng)的MAC地址。從減少通信流量的觀點出發(fā),一旦給予對應(yīng)MAC地址的IP地址,這種對應(yīng)組合將在ARP表中保持一定時間的緩存,這樣通過發(fā)送偽造的ARP數(shù)據(jù)包就可以改寫這個緩存。

作為防范上述攻擊行為的對策,可以采取兩種方法:

> 利用保證IP數(shù)據(jù)包合法性的IPSec中的AH的認(rèn)證功能

> 采用使應(yīng)用軟件具備對通信過程進(jìn)行加密的方式以及強(qiáng)化認(rèn)證機(jī)構(gòu)。

2.2傳輸層上存在的安全隱患主要包括以下幾種:

(1)假冒TCP初始序號

在通信過程中,采用被稱為三次握手的步驟建立起來的TCP連接。在這個過程,對于使用IP地址認(rèn)證的應(yīng)用程序,如果可以順推出初始序號,那么只要模擬發(fā)送端的IP地址,就可以建立TCP連接。不過現(xiàn)在的操作系統(tǒng)中,初始序號的分配方法已變得相當(dāng)復(fù)雜,事實上序號已不能隨便推測。

(2)利用TCP/UDP數(shù)據(jù)包的DoS攻擊

DoS攻擊是通過生成大量的、已處于連接狀態(tài)的TCP連接,使TCP/IP模塊陷入崩潰狀態(tài)的操作。對于以操作系統(tǒng)為目標(biāo)的攻擊,可以通過導(dǎo)入具備屏蔽TCP SYN數(shù)據(jù)包功能的防火墻來防范。

2.3應(yīng)用層上存在的安全隱患主要包括以下幾個方面:

(1)掃描/搜索

對信息系統(tǒng)的非法入侵,是通過收集作為攻擊目標(biāo)的設(shè)備以及用戶的相關(guān)信息開始的。首先通過掃描搜索設(shè)備,同時通過BBS、網(wǎng)絡(luò)新聞以及主鏈接清單等資源數(shù)據(jù)收集用戶的信息。掃描用戶的設(shè)備后,通過截取用戶的通信數(shù)據(jù)或數(shù)據(jù)包、收集認(rèn)證信息以及嘗試用戶密碼等方法,使自己能夠獲得對計算機(jī)信息和資源的讀寫權(quán)以及控制權(quán),從而再訪問該計算機(jī)。

(2)DNS欺騙

DNS欺騙是一種從外部改寫由DNS服務(wù)器管理的主機(jī)名與IP地址對應(yīng)表的攻擊方式。如前所述,在Internet世界中,計算機(jī)以及路由器是通過被分配的、特有的IP地址來識別的。但是IP地址作為一串?dāng)?shù)值,人們不便于記憶,因而出現(xiàn)了主機(jī)名這一概念。DNS是提供IP地址與主機(jī)名對應(yīng)的機(jī)制,因此,一旦這種對應(yīng)關(guān)系出現(xiàn)問題,那么IP數(shù)據(jù)包就不能夠被發(fā)送到主機(jī)名所對應(yīng)的IP地址。DNS欺騙的一個簡單事例,就是在IP地址與主機(jī)名對應(yīng)表的hosts文件中,進(jìn)行對應(yīng)關(guān)系不一致的設(shè)定。所以對于用戶來說,接收網(wǎng)絡(luò)安全方面的教育是非常重要的。

(3)竊聽用戶認(rèn)證信息

這種行為大多是在非法侵入計算機(jī)后,安裝木馬程序,以非法手段獲取該計算機(jī)所連接的網(wǎng)絡(luò)的通信信息。特別是將以非加密報文形式傳輸數(shù)據(jù)的TELNET、FTP、POP以及HTTP等作為監(jiān)聽對象,來獲取密碼等用戶認(rèn)證信息。

防竊聽的對策有以下兩種:

> 在通信過程中進(jìn)行加密,使得數(shù)據(jù)包不能被任意讀取

> 通過限制注入網(wǎng)絡(luò)交換機(jī)的設(shè)備,縮小竊聽范圍。

(4)利用電子郵件進(jìn)行的DoS攻擊

利用電子郵件進(jìn)行的拒絕服務(wù)攻擊包括:反復(fù)頻繁發(fā)送大數(shù)據(jù)量的電子郵件,耗盡磁盤空間的電子郵件炸彈,以及通過其他的郵件服務(wù)器,連續(xù)發(fā)送郵件造成第三方延遲等等。

互聯(lián)網(wǎng)工作工程小組最近了一種新的郵件認(rèn)證技術(shù)說明,該說明加入了域名密鑰識別郵件技術(shù)(DKIM),希望借此來加速對抗垃圾郵件。它把IP地址和郵件的發(fā)送人放在一起進(jìn)行分析,然后通過公共密鑰加密,給郵件加上一個數(shù)字簽名,這個數(shù)字簽名包含著發(fā)件人的域名。

(5)病毒

計算機(jī)病毒是附著于程序中可以自我繁殖的程序。現(xiàn)在所發(fā)現(xiàn)的病毒一般具有以下的形態(tài):

* 以篡改或破壞計算機(jī)中所存儲的數(shù)據(jù)為攻擊目標(biāo)

* 利用用戶作為中介(U盤、電子郵件等)來進(jìn)行傳播。

2011年影響最大的十大病毒之中,鬼影病毒、QQ群蠕蟲病毒QQ假面病毒、DNF假面病毒、新型QQ大盜等新老變種病毒榜上有名。對于病毒的防護(hù),我們要加強(qiáng)計算機(jī)安全意識,提高警惕,不隨便訪問不可靠網(wǎng)站,定時對計算機(jī)進(jìn)行查殺病毒。

3.結(jié)束語

    通過對TCP/IP協(xié)議層的安全問題進(jìn)行闡述及分析,不難發(fā)現(xiàn)其在設(shè)計上存在很多安全隱患,黑客或黑客工具往往利用這些隱患對網(wǎng)絡(luò)進(jìn)行攻擊,只有充分了解這些隱患并采取相應(yīng)的防范措施,才能增強(qiáng)網(wǎng)絡(luò)的安全性。

參考文獻(xiàn):

[1]石志國等編著.計算機(jī)網(wǎng)絡(luò)安全教程[M]. 北京交通大學(xué)出版社;北京:,2004

[2]李美萍. TCP/IP協(xié)議體系的安全性探討[J]. 山西通信科技, 2007(4): 11-13.

篇8

【關(guān)鍵詞】圖層,幀

計算機(jī)輔助教學(xué)(Computer Assisted Instruction 簡稱CAI)指的是應(yīng)用計算機(jī)作為教學(xué)的輔助手段,通過學(xué)習(xí)者與計算機(jī)交互作用完成教學(xué)過程。CAI構(gòu)成了一種個別化學(xué)習(xí)環(huán)境,讓學(xué)習(xí)者利用計算機(jī)的特點和優(yōu)勢,通過與計算機(jī)的交互,完成某一具體課程的學(xué)習(xí)。作為一種教學(xué)媒體,計算機(jī)可以起到與其它傳播媒體一樣的呈現(xiàn)知識、給予反饋等作用,但是由于其有著存貯、處理信息、工作自動化等功能,因此計算機(jī)輔助教學(xué)(CAI)具有如下特點:

(1)大容量的非順序式信息呈現(xiàn)。計算機(jī)可存貯相當(dāng)豐富的信息量,可包括一門課程或與某個對象有關(guān)的全部知識。學(xué)習(xí)者既可以瀏覽所有知識,也可以按需要獲取其中任意所感興趣的一部分,而不僅是按順序閱讀,或是按教師所給出的那一部分。

(2)學(xué)生可以控制學(xué)習(xí)內(nèi)容和學(xué)習(xí)進(jìn)度。通常的CAI系統(tǒng)都允許學(xué)生選擇學(xué)習(xí)內(nèi)容,也設(shè)置一些同步措施,僅當(dāng)學(xué)生學(xué)習(xí)了前一部分知識后才進(jìn)入下一步的學(xué)習(xí)。這樣,學(xué)生的學(xué)習(xí)進(jìn)展不受時間與地點的限制,可以取得最佳的學(xué)習(xí)速度。

(3)實現(xiàn)因人施教的教學(xué)原則和及時反饋原則。CAI系統(tǒng)可通過提問、判斷、轉(zhuǎn)移等交互活動,分析學(xué)生的能力和學(xué)習(xí)狀況,調(diào)節(jié)學(xué)習(xí)過程,實現(xiàn)因人施教的教學(xué)原則和及時反饋原則。

(4)學(xué)生在CAI活動中處于一種積極、主動的精神狀態(tài)。因為教學(xué)進(jìn)度由學(xué)生控制和連續(xù)的提問-反饋或是操作一反應(yīng)刺激等交互活動,學(xué)生在CAI活動中處于一種積極、主動的精神狀態(tài),不象被動受教時那么容易疲勞和受干擾,從而可以取得較好的教學(xué)效果。

(5)網(wǎng)絡(luò)技術(shù)使CAI可獲得群體的支持。目前的網(wǎng)絡(luò)技術(shù)使CAI可獲得群體的支持,解決個別化學(xué)習(xí)與群體學(xué)習(xí)的矛盾。

CAI活動的效果受教師態(tài)度的影響。實驗證明,CAI活動的效果受教師態(tài)度的影響,積極推廣CAI的教師所用CAI的教學(xué)效果好,反之亦然。

在過去的幾年里,CAI的發(fā)展速度是超出人們想象的。就全國來言,大量的學(xué)校、部門、公司、企業(yè),以各自不同的目的,帶著極大的熱情投入到CAI的開拓當(dāng)中,并以各自不同的優(yōu)勢推動著CAI向前迅猛地發(fā)展,目前,已經(jīng)形成了以下幾個發(fā)展趨勢:

1.多媒體技術(shù)的采用使CAI手段更加豐富。多媒體教學(xué)系統(tǒng)是一種以計算機(jī)為中心,處理、控制各種教學(xué)媒體綜合進(jìn)行教學(xué)活動的系統(tǒng),它既具有各種教學(xué)媒體的特點和優(yōu)勢,又發(fā)揮了以計算機(jī)為核心的控制作用,因此他具有多重感觀刺激,傳輸信息量大,易于接受,人機(jī)交互性強(qiáng),操作簡單等特點。它既是CAI發(fā)展方向,也是現(xiàn)代教育發(fā)展的方向,所以引起了各方人士高度的重視。

2.計算機(jī)生產(chǎn)技術(shù)的進(jìn)步,存貯成本的降低, 使大量的存貯信息成為可能。目前,一方面硬盤的價格大幅度的降低,另一方面CD-ROM光盤的大量使用,使得存貯容量不再是問題。圖形、動畫、音像等各種素材得以大量存儲和自由調(diào)用。這也為多媒體教學(xué)系統(tǒng)打下了良好的物質(zhì)基礎(chǔ)。

3.網(wǎng)絡(luò)技術(shù)在教學(xué)領(lǐng)域的采用,使教學(xué)的觀念發(fā)生了質(zhì)的變化

4.平臺軟件為CAI軟件制作提供了方便的開發(fā)工具。目前CAI領(lǐng)域中的一項重大事件是工具平臺的使用。由于計算機(jī)技術(shù)的迅速發(fā)展,其功能不斷加強(qiáng),操作卻越來越簡便和易于掌握。這不但使非計算機(jī)專業(yè)人員編制CAI軟件成為現(xiàn)實,而且使CAI軟件實現(xiàn)了多媒體技術(shù)。

5.微機(jī)操作的窗口化。新一代的操作系統(tǒng)(平臺)已經(jīng)朝著直觀、易懂的窗口化方向發(fā)展,以圖標(biāo)管理代替文件管理,以圖標(biāo)形狀代替操作信息,以鼠標(biāo)指點代替鍵盤操作方法。這為進(jìn)一步普及微機(jī)應(yīng)用提供了基礎(chǔ)。

傳輸控制協(xié)議(Transmission Control Protocol TCP)是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議,通常由IETF的RFC 793說明。在簡化的計算機(jī)網(wǎng)絡(luò)OSI模型中,它完成運(yùn)輸層所指定的功能。在因特網(wǎng)協(xié)議族中,TCP層是位于IP層之上,應(yīng)用層之下的中間層。不同主機(jī)的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機(jī)制,而是提供不可靠的包交換。

TCP原理的特點和功能如下:

(1)面向連接的服務(wù)。對保證數(shù)據(jù)流傳輸可靠性十分重要。

(2)高可靠性:方法:確認(rèn)與超時重傳。

(3)全雙工通信

(4)支持流傳輸:流傳輸 無報文丟失、重復(fù)、亂序的正確數(shù)據(jù)報文序列;

(5)傳輸連接的可靠建立與釋放:3次握手

(6)提供流量控制與擁塞控制

TCP協(xié)議的功能

(1)保證傳輸?shù)目煽啃浴CP協(xié)議是面向連接的。所謂連接,是指在進(jìn)行通信之前,通信雙方必須建立連接才能進(jìn)行通信,而在通信結(jié)束后終止其連接。相對于面向無連接的IP協(xié)議而言,TCP協(xié)議具有高度的可靠性。當(dāng)目的主機(jī)接收到由源主機(jī)發(fā)來的IP包后,目的主機(jī)將向源主機(jī)回送一個確認(rèn)消息,這是依靠目的主機(jī)的TCP協(xié)議來完成的。

TCP協(xié)議中有一個重傳記時器(RTO),當(dāng)源主機(jī)發(fā)送IP包即開始記時需要說明的是,TCP協(xié)議所建立的連接是端到端的連接,即源主機(jī)與目的主機(jī)間的連接。internet中每個轉(zhuǎn)接節(jié)點(路由器)對TCP協(xié)議段透明傳輸。

總之,IP協(xié)議不提供差錯報告和差錯糾正機(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等),最終需依靠它們實現(xiàn)主機(jī)間的通信。TCP協(xié)議攜帶了部分應(yīng)用層信息,可用來區(qū)別同一報文數(shù)據(jù)流的一組IP包及其性質(zhì)。

TCP協(xié)議對這些應(yīng)用層協(xié)議規(guī)定了整數(shù)標(biāo)志符,稱為端口序號。被規(guī)定的端口序號成為保留端口,其值在0~1 023范圍內(nèi)(如端口序號23,用于遠(yuǎn)程終端服務(wù))。此外還有自由端口序號,供個人程序使用,或者用來區(qū)分兩臺主機(jī)間相同應(yīng)用層協(xié)議的多個通信,即兩臺主機(jī)間復(fù)用多個用戶會話連接。

進(jìn)行通信的每臺主機(jī)的每個用戶會話連接都有一個插口序號,它由主機(jī)的IP地址和端口序號組成。在internet中插口序號是惟一的,一對插口序號惟一地標(biāo)識了一個端口的連接(發(fā)端插口序號=源主機(jī)IP地址+源端口序號,收端插口序號=目的主機(jī)IP地址+目的端口序號)。利用插口序號可在目的主機(jī)中區(qū)分不同源主機(jī)對同一個目的主機(jī)相同端口序號的多個用戶會話連接。

在TCP協(xié)議段的頭部各域中具有碼位項。其中,SYN碼位為應(yīng)用數(shù)據(jù)流的開始位(當(dāng)SYN置1,表示該IP數(shù)據(jù)包為某一應(yīng)用報文的第一份數(shù)據(jù)包),F(xiàn)IN碼位為應(yīng)用數(shù)據(jù)流的結(jié)束位(當(dāng)FIN置1時,表示此時數(shù)據(jù)包為某應(yīng)用報文的最后一份數(shù)據(jù)包)。因此可利用SYN/FIN兩個碼位來規(guī)定某一應(yīng)用報文(或某一應(yīng)用數(shù)據(jù)流)的開始與結(jié)束。

TCP協(xié)議就是利用端口序號和SYN/FIN碼位來區(qū)分應(yīng)用數(shù)據(jù)流并判斷其性質(zhì)的,從而使具有四層功能的高端路由器具有某些對應(yīng)用數(shù)據(jù)流的控制功能。

TCP協(xié)議只定義了一種報文格式,建立、拆除連接、傳輸數(shù)據(jù)使用同樣的報文

1.傳輸連接的建立

TCP是面向連接的協(xié)議,運(yùn)輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程

運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。

在連接建立過程中要解決以下三個問題:(1)要使每一方能夠確知對方的存在;(2)要允許雙方協(xié)商一些參數(shù)(如,最大報文段長度,最大窗口大小,服務(wù)質(zhì)量等);(3)能夠?qū)\(yùn)輸實體資源(如緩沖區(qū)大小,連接表中的項目等)進(jìn)行分配

2.TCP的傳輸連接管理――三次握手技術(shù)。(1)TCP連接的建立采用客戶/服務(wù)器方式。(2)為了確保連接的建立和釋放都是可靠的,TCP使用三次握手的方式,其中交換了三個報文。(3)已證明三次握手是在分組丟失、重復(fù)和延遲的情況下確保非模糊協(xié)定的充要條件。

3.為何使用三次握手

當(dāng)客戶端發(fā)送一連接請求報文段,沒有收到服務(wù)器端的確認(rèn),認(rèn)為丟失。客戶端再重傳一次,得到確認(rèn),傳輸數(shù)據(jù),釋放連接。

然而,客戶端第一個請求報文段并沒有丟失,而是延時到這次連接、數(shù)據(jù)傳輸、釋放連接后才到達(dá)服務(wù)器端。服務(wù)器端認(rèn)為又一次新的連接,向客戶端發(fā)一確認(rèn)。客戶端由于并沒有發(fā)起新的連接,不會發(fā)送數(shù)據(jù),服務(wù)器端會一直等待,造成資源浪費(fèi)。

3. TCP的流量控制。

(1)TCP采用可變發(fā)送窗口的技術(shù)進(jìn)行流量控制,窗口大小的單位是字節(jié)。

(2)在TCP報文段首部的窗口字段寫入的數(shù)值就是當(dāng)前設(shè)定的接收窗口數(shù)值。

(3)發(fā)送窗口在連接建立時由雙方商定,在通信過程中,接收端可根據(jù)自己的資源情況,隨時動態(tài)地調(diào)整自己的接收窗口,并且告訴對方,使對方的發(fā)送窗口和自己的接收窗口一致。

說明:(1)發(fā)送端要發(fā)送的數(shù)據(jù)共9個報文段,每個報文符長100字節(jié),共900個字節(jié);(2)而接收端允許的發(fā)送窗口為500字節(jié);(3)在當(dāng)前情況下,發(fā)送方可連續(xù)發(fā)送5個報文段,而不必收到確認(rèn),(已發(fā)送了二個,還可發(fā)送三個報文符);

4. TCP差錯控制

差錯控制包括檢測受到損傷的報文段、丟失的報文段、失序的報文段和重復(fù)的報文段,以及檢測出錯后糾正差錯的機(jī)制。差錯檢測三種工具:檢驗和、確認(rèn)和超時。對各種出錯報文段的處理:傳輸出錯報文段(重傳計時器);丟失報文段(重傳計時器);重復(fù)報文段(報文序號);亂序報文段(對亂序報文段不確認(rèn),直到收到所有它以前的報文段為止。);確認(rèn)丟失(累計確認(rèn))

本文主要是從計算機(jī)輔助教學(xué)入手,從TCP原理演示來具體生動地介紹CAI的特點.全文全面地介紹了TCP協(xié)議,又通過動畫具體演示了TCP的連接和釋放過程,能夠生動地幫助學(xué)生理解TCP協(xié)議。從而具體體現(xiàn)了計算機(jī)輔助教學(xué)的優(yōu)點。

計算機(jī)輔助教學(xué)與傳統(tǒng)的教學(xué)方式相比較確實具有很多的優(yōu)勢。傳統(tǒng)的教學(xué)以課堂集體教學(xué)為基礎(chǔ),這種教學(xué)通常以教師為中心,學(xué)生往往處于被動地位,其學(xué)習(xí)積極性難以調(diào)動。教師參照全班學(xué)生的平均水平和教學(xué)計劃確定教學(xué)進(jìn)度并向?qū)W生提供反饋信息,忽視、較少注意或難于注意學(xué)生的個別差異。對于家庭作業(yè),盡管教師能逐個學(xué)生加以批閱,但反饋信息不夠及時,有時學(xué)生幾天后才能得到教師批改過的作業(yè),而這時學(xué)生又去顧及新的知識。然而計算機(jī)輔助教學(xué)相對于教師的傳統(tǒng)教學(xué)也有其固有的不足之處,比如真實性問題,雖然呈現(xiàn)給學(xué)生的信息可以是豐富多采的,但這些都是間接經(jīng)驗,是別人做好讓學(xué)生看和聽的,甚至有的信息的真實性會受到懷疑。還有其它的不足之處,這需要從事教育工作者的合理運(yùn)用。

參考文獻(xiàn):

[1]吳功宜,《計算機(jī)網(wǎng)絡(luò)》,清華大學(xué)出版社

[2]謝希仁,《計算機(jī)網(wǎng)絡(luò)》,電子工業(yè)出版社

[3]肖秀金、陳霄峰,《網(wǎng)頁設(shè)計培訓(xùn)教程》,地質(zhì)出版社

[4]BehrouzA.Forouzan,Sophia Chung Fegan ,《TCP/IP協(xié)議族》,清華大學(xué)出版社

推薦范文
欧美午夜精品一区二区三区,欧美激情精品久久久久久,亚洲av片不卡无码久东京搔,亚洲鲁丝片AV无码APP
在线观看免费人成视频色9 久久精品国产一区二区三区 | 日韩AV一区三区 | 日本永久免费A∨在线视频 亚洲国产日韩欧美在线 | 日韩在线免费视频 | 一色屋任你精品亚洲香蕉 | 精品国产免费二区二区 |