程訓(xùn)劍
摘要:TCP是計算機網(wǎng)絡(luò)中很重要的一種運輸層協(xié)議,它上接應(yīng)用層,下接網(wǎng)絡(luò)層,扮演著很重要的角色。在TCP/IP協(xié)議中,我們把TCP當成一個很重要的協(xié)議來研究。本文主要介紹對TCP協(xié)議的研究與仿真,開始敘述TCP協(xié)議的特點,介紹了TCP協(xié)議的幾個比較重要的特性。相信大家看過本文之后會對TCP協(xié)議有了很大一步的了解,在計算機網(wǎng)絡(luò)中研究它是很有必要性的,大家在今后有關(guān)TCP的學(xué)習中一定要加以重視。
關(guān)鍵詞:TCP 連接 ?仿真 ?網(wǎng)絡(luò)
中圖分類號:TP393.04 ? 文獻標識碼:A 文章編號:1007-9416(2014)09-0038-02
1 引言
在計算機網(wǎng)絡(luò)中,TCP協(xié)議在簡單的OSI模型中扮演的是一種比較難理解的運輸層協(xié)議,在我們所熟悉的因特網(wǎng)協(xié)議族中,IP層之下是TCP層,應(yīng)用層之下的傳輸層。TCP是實現(xiàn)一種比較可靠的傳輸,位于第四層。在實現(xiàn)電路方面的連接的同時,也會對包裝進行排序檢查。所以說TCP協(xié)議是Internet的基礎(chǔ),在硬件和軟件的運用中都很重要,我們對此應(yīng)多加重視。
TCP使用端口號進行進程與進程之間的通信,在主機之間提供這樣的連接,彌補了好多IP層的不足。很多人只去研究TCP的表面知識而沒有深入的研究和理解,只有通過一定的模擬實驗才能理解TCP的具體作用和工作原理。本文中學(xué)習和研究TCP的性能和工作方式,使TCP在計算機網(wǎng)絡(luò)中發(fā)揮更大的作用。
2 TCP協(xié)議的概述
2.1 TCP協(xié)議的特點
(1)所謂TCP提供的是連接的,而且非常穩(wěn)妥的,字節(jié)的服務(wù)。TCP的連接建立過程和打電弧很相似,首先撥電話號碼,然后就是等待對方接通說“喂”,然后才說明是誰,結(jié)束后釋放鏈接。(2)TCP的每一條鏈接的兩端必須只有兩個客戶端,必須是一個對于一個的傳送。(3)TCP提供全雙工通信,所謂全雙工通信就是通信的兩端在使用TCP的時候可以隨時進行通信。進行數(shù)據(jù)發(fā)送時,接受緩存是用來接收數(shù)據(jù)的,接收到后就可以不用問了,這時的TCP可以隨時把數(shù)據(jù)發(fā)送出去。
2.2 TCP端口號和套接字地址
(1)TCP端口號:端口號只具有本地意義,所謂本地意義說明端口號只標記計算機中的進程,端口號被兩個字節(jié)來標志。在沒有熟知端口號的情況下會使用等記端口號,登記端口號的數(shù)值為1024~49151,為了防止重復(fù)在使用這個端口的時候會在UANA上登記。客戶端口號數(shù)值為49152~65535,在客戶進行進程選擇暫停時使用。對于無連接的UDP和TCP一樣也有端口號,但是他們兩個的端口號是彼此孤立的,意思就是同一個端口號有不同的用途。(2)套接字地址。對于TCP中的套接字,同一個名詞卻有不同的含義,如果套接字被一個程序使用,在一個socket函數(shù)中使用的一個函數(shù)也叫scocket,調(diào)用它的端口也叫做scocket。在TCP的協(xié)議中,要想實現(xiàn)TCP服務(wù),在建立的每一端的創(chuàng)建稱為套接字的端點。TCP數(shù)據(jù)報兩個數(shù)據(jù)集之間的數(shù)據(jù)單元的TCP傳輸成段,段與TCP的各種信息。緊急URG通知系統(tǒng)這個報文段中有緊急數(shù)據(jù),應(yīng)當盡快傳送,這個在其他地方是被當做稍微高點的優(yōu)先級的。只有等于1的時候,他才會起到作用。
3 TCP的連接與釋放
這時TCP工作的過程,是客戶使用TCP時必須要完成的兩個動作,連接傳輸層協(xié)議,連接的建立是確??煽康膫鬏?,在進行數(shù)據(jù)傳輸?shù)臅r候必須首先在通信雙方建立一個連接,連接就相當于一個路徑發(fā)送數(shù)據(jù)后,通過一條通路到達另一方。
3.1 建立連接
TCP傳送數(shù)據(jù)的方式是全雙工的,TCP中建立連接使用三次握手的方式來實現(xiàn),TCP的連接和釋放都使用客戶-服務(wù)器方式,建立連接的過程從服務(wù)器開始。
先把SYN設(shè)置為1;第二步在把數(shù)據(jù)包頭部的那個確認字段設(shè)置為x+1;第三步初始序號被放在數(shù)據(jù)包頭部的數(shù)列中。如果接受到了這個鏈接的數(shù)據(jù)段,那么這個數(shù)據(jù)段就被送到緩沖區(qū)了,服務(wù)器還會收到客戶端發(fā)來的另一個數(shù)據(jù)段,服務(wù)器的允許連接數(shù)據(jù)段給出確認。
3.2 TCP的連接釋放
數(shù)據(jù)傳輸完成后都會釋連接的,因為TCP是全雙工的,所以必須單個放行釋放連接。第一,使第一個被A發(fā)送的數(shù)據(jù)報能夠到達B,第二為了不讓失效的報文段出現(xiàn)在文本中,最后一個ACK被發(fā)送完后,過2被的時間就消失了,防止“已失效的連接請求報文段”出現(xiàn)在本連接中。按照這種辦法,就不會收到就得連接請求報文段了。
3.3 TCP的連接復(fù)位
下面我們來介紹一下需要復(fù)位的三種情況:(1)當TCP連接到一個并不存在的端口時,另一端TCP就能發(fā)送一個報文段,這時就把RST=1,來關(guān)閉這一連接。(2)如果一端的TCP出現(xiàn)異常情況,就可以發(fā)送復(fù)位請求來終止連接,這時RST=1,來關(guān)閉這一連接。(3)如果一端的TCP被發(fā)現(xiàn)好長時間沒被用了,他就可以把這個連接撤銷,這時發(fā)送復(fù)位信息報,RST=1,來關(guān)閉這一連接。
3.4 TCP擁塞控制
這一節(jié)我們將討論TCP的擁塞控制,研究它的工作原理以及其他方面的內(nèi)容,這是TCP工作中出現(xiàn)的狀況,我們要加以解決,不然的話會影響TCP的運作,對工作效率很不利。
(1)慢啟動和擁塞避免。慢啟動和擁塞避免算法一定是TCP用來發(fā)送數(shù)據(jù)的,如果要實現(xiàn)這種算法,一定要加入兩個變量在TCP中。發(fā)送端口和擁塞窗口是對發(fā)送數(shù)據(jù)的一種限制,是慢啟動中必不可少的重要的摻量。發(fā)送窗口和擁塞窗口有最小值和最大門限的限制,數(shù)據(jù)之間的傳送是用最小值來確定的,而最大門限是用來確定使用慢啟動算法還是擁塞避免算法。(2)快恢復(fù)和快重傳。此ACK是用來通知收到一個混亂的數(shù)據(jù)段發(fā)送,并希望得到序列號。查收到重復(fù)ACK的原因從發(fā)送端來看是由多種網(wǎng)絡(luò)引起的。首先,我們認為可以是數(shù)據(jù)段丟失的原意,如果有了這種情況,ACK就會被丟失的數(shù)據(jù)段重新發(fā)送。然后,這種事故的原因也會由數(shù)據(jù)排序的網(wǎng)絡(luò)中斷而引起的。最后,我們也會認為由于網(wǎng)絡(luò)對ACK以及報文段做了復(fù)制而引起重復(fù)的。
4 TCP的仿真實驗
我們都知道TCP是有鏈接的可靠的傳輸層協(xié)議,所以在傳輸運用過程中也會出現(xiàn)錯誤。下面我們通過以下仿真實驗,來了解TCP在傳輸FTP文件時一數(shù)據(jù)報丟失的情況,來詳細分析下這一解決過程。
4.1 仿真實驗的設(shè)置
我們用OPNET來做TCP的仿真實驗,這只是在一個比較簡單的環(huán)境下在做關(guān)于TCP的仿真實驗,測試出數(shù)據(jù)圖通過分析和比較來觀察TCP處理數(shù)據(jù)丟失包的具體工作原理和過程。選擇“結(jié)果- - > >安排Pannels顯示所有“查看保存結(jié)果。
頂部多媒體的快速decovery conquestion窗口由于“TCP雷諾”,在重新傳輸。這個conquestion窗口只是減少了一半,而不是 ? ? 1MSS,從而快速恢復(fù)。graphe的底部顯示了發(fā)送之間的關(guān)系序列號碼和收到seqment ack服務(wù)器上的數(shù)量。服務(wù)器故意把一個數(shù)據(jù)包給丟失,這時客戶服務(wù)器就會發(fā)出三個ACK,會被重新發(fā)送。
這時把FTP的Command Mix的值設(shè)置為100%,把Inter-Requests設(shè)置為constant 3600,把File Size 設(shè)置為FTP,把Server,type of serveice值設(shè)置為best effort,把RSVP parameters值設(shè)置為 None;用NotUsed來設(shè)置Back-End Custom Application值。
4.2 仿真實驗的過程
針對TCP數(shù)據(jù)傳輸開始時,擁塞窗口設(shè)置為最大的MSS值,慢啟動算法開始,cwnd被設(shè)置為200,那么400,800,1600.......以103S,擁塞窗口達到6500的最大閾值,為了不讓擁塞窗口將不會太增加網(wǎng)絡(luò)阻塞引起的,然后執(zhí)行擁塞避免算法,每一個RTT,擁塞窗口將增加一個單位,然后在107s當FTP數(shù)據(jù)包丟失,然后進行處理,擁塞窗口的值下降,TCP協(xié)議在慢啟動和擁塞避免算法的實現(xiàn),窗口的大小增長將呈現(xiàn)線性增長。設(shè)置最大窗口閾值,根據(jù)3響應(yīng)消息重復(fù)判斷丟包,重傳丟失的數(shù)據(jù)包和直接的閾值,為當前擁塞窗口6500的一半,這是快速重傳(Tahoe),然后轉(zhuǎn)移到慢啟動。然后再轉(zhuǎn)入慢開始。
在窗口大小到達大約80000后,應(yīng)該是收到3個連續(xù)ACK,若根據(jù)3個重復(fù)的應(yīng)答報文就會知道有沒有丟包,而且丟失的分組會被重傳,此時的ssthresh的值就為擁塞窗口的一半,這樣就進入了進入擁塞避免階段。
4.3 仿真實驗小結(jié)
用OPNET做TCP的仿真實驗,數(shù)據(jù)包丟失,TCP數(shù)據(jù)的變化都被形象的描繪出來了,很好的詮釋了這一失誤和改正過程。為TCP以后出錯改正做了很好的例子。
5 結(jié)語
在這個時代,網(wǎng)絡(luò)的普及,讓我們明白了計算機網(wǎng)絡(luò)的重要性,學(xué)生們對TCP的研究呢也會越來越在乎。TCP在簡單的OSI體系中有著重要的作用,我們在深入了解TCP的結(jié)構(gòu)時一定不要忽略它的工作原理,很好的把TCP協(xié)議運用到運輸層中。
參考文獻
[1]余永勝.探究基于TCP協(xié)議的網(wǎng)絡(luò)應(yīng)用設(shè)計與開發(fā)[J].電子制作,2013.11.
[2]曹雪峰.基于虛擬實驗的TCP原理實驗設(shè)計[J].實驗技術(shù)與管理,2013.07.
[3楊延雙,張建標,王全民.TCP/IP協(xié)議分析及應(yīng)用[M].北京:機械工業(yè)出版社,2007.2.
[4]謝希仁.計算機網(wǎng)絡(luò)第五版[M].大連:大連理工出版社,2008.01.01.
[5]蘭少華,楊余旺,呂建勇.TCP/IP網(wǎng)絡(luò)與協(xié)議[M].北京:清華大學(xué)出版社,2006.01.01.
數(shù)字技術(shù)與應(yīng)用2014年9期