電子百科
應用層向傳輸控制協(xié)議層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后傳輸控制協(xié)議把數(shù)據(jù)流分割成適當長度的報文段(通常受該計算機連接的網(wǎng)絡的數(shù)據(jù)鏈路層的最大傳送單元(MTU)的限制)。之后傳輸控制協(xié)議把結果包傳給IP層,由它來通過網(wǎng)絡將包傳送給接收端實體的傳輸控制協(xié)議層。
傳輸控制協(xié)議為了保證不發(fā)生丟包,就給每個字節(jié)一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節(jié)發(fā)回一個相應的確認(ACK);如果發(fā)送端實體在合理的往返時延(RTT)內(nèi)未收到確認,那么對應的數(shù)據(jù)(假設丟失了)將會被重傳。傳輸控制協(xié)議用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算校驗和。
?。?)面向連接的傳輸;
?。?)端到端的通信;
?。?)高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序;
?。?)全雙工方式傳輸;
?。?)采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列;
?。?)緊急數(shù)據(jù)傳送功能。
不管怎樣,TCP/IP是一個協(xié)議集。為應用提供一些\"低級\"功能,這些包括IP、TCP、UDP。其它是執(zhí)行特定任務的應用協(xié)議,如計算機間傳送文件、發(fā)送電子郵件、或找出誰注冊到另外一臺計算機。因此, 最重要的\"商業(yè)\"TCP/IP服務有:
1、FTP 文件傳送(File Transfer)
文件傳送協(xié)議FTP(File TransferProtocol)允許用戶從一臺計算機到另一臺取得文件,或發(fā)送文件到另外一臺計算機。從安全性方面考慮,需要用戶指定一個使用其它計算機的用戶名和口令。它不同于NFS(Network File System)和Netbios協(xié)議。一旦你要訪問另一臺系統(tǒng)中的文件,任何時刻都要運行FTP。而且你只能拷貝文件到自己的機器中去來使用它。RFC 959中有關于FTP的詳盡說明。
2、 RLogin 遠程登錄(Remote login)
網(wǎng)絡終端協(xié)議TELNET允許用戶登錄到網(wǎng)絡上任一計算機上。你可啟動一個遠程進程連接到指定的計算機,直到進程結束,期間你所鍵入的內(nèi)容被送到所指定的計算機。值得注意的是,這時你實際上是與你的計算機進行對話。TELENET程序使得你的計算機在整個過程中不見了,所敲的每一個字符直接送到所登錄的計算機系統(tǒng)。一般的說,這種遠程連接是通過類式撥號連接的,也就是,撥通后,遠程系統(tǒng)提示你輸入注冊名和口令,退出遠程系統(tǒng),TELNET程序也就退出,你又與自己的計算機對話了。微電腦中的TELNET工具一般含有一個終端仿真程序。
3、SMTP POP3 電子郵件(Mail)
允許你發(fā)送消息給其它計算機的用戶。通常,人們趨向于使用指定的一臺或兩臺計算機。計算機郵件系統(tǒng)只需你簡單地往另一用戶的郵件文件中添加信息,但隨之產(chǎn)生問題,使用的微電腦的環(huán)境不同,還有重要的是宏(MACRO)不適合于接受計算機郵件。為了發(fā)送電子郵件,郵件軟件希望連接到目的計算機,如果是微電腦,也許它已關機,或者正在運行另一個應用程序呢?出于這種原因,通常由一個較大的系統(tǒng)來處理這些郵件,也就是一個一直運行著的郵件服務器。郵件軟件成為用戶從郵件服務器取回郵件的一個界面。
任何一個的TCP/IP工具提供上述這些服務。這些傳統(tǒng)的應用功能在基于TCP/IP的網(wǎng)絡中一直扮演非常重要的角色。目前情況有點變化,這些功能使用也發(fā)生變化,如老系統(tǒng)的改造,計算機的發(fā)展等,出現(xiàn)了各種安裝版本,如:微電腦、工作站、小型機、和巨型機等。這些計算機好像在一起完成指定的任務,盡管有時看來像是只用到某個指定的計算機,但它是通過網(wǎng)絡得到其它計算機系統(tǒng)的服務。服務器 Server是為網(wǎng)絡上其它提供指定服務的系統(tǒng),客戶Client是得到這種服務的另外計算機系統(tǒng)。(值得注意的是,服務/客戶機不一定是不同的計算機, 有可能是同一計算機中的不同運行程序)。以下是幾種目前計算機上典型的一些服務,這些服務可在TCP/IP網(wǎng)絡上調(diào)用。
4、 NFS 網(wǎng)絡文件系統(tǒng)(Network File System)
這種訪問另一計算機的文件的方法非常接近于流行的FTP。網(wǎng)絡文件系統(tǒng)提供磁盤或設備服務,而無需特定的網(wǎng)絡實用程序來訪問另一系統(tǒng)的文件??梢院唵蔚卣J為它是一個外加的磁盤驅(qū)動器。這種額外\"虛擬\"磁盤驅(qū)動器就是其它計算機系統(tǒng)的磁盤。這非常有用。你只需加大幾臺計算機的磁盤容量,就可使網(wǎng)絡上其他用戶訪問它,且不說所帶來的經(jīng)濟效益,它還能夠讓幾臺工作的計算機共享相同的文件。它也使得系統(tǒng)維護和備份易如反掌,因為再不必為大量的不同機器上的文件的升級和備份而擔心。
5、遠程打印(Remote Printing)
允許你使用其它計算機上的打印機,好像這些打印機直接連到你的計算機上。
6、 遠程執(zhí)行(Remote Execution)
允許你請求運行在不同計算機上的特殊程序。當你在一個很小的計算機上運行一個需要大機系統(tǒng)資源的程序時,這時候遠程執(zhí)行非常有用。
7、名字服務器(Name Servers)
在一個大的系統(tǒng)安裝過程中,需要用到大量的各種名字,包括用戶名、口令,姓名、網(wǎng)絡地址、帳號等,管理這些是非常令人乏味的。因此將這些數(shù)據(jù)形成數(shù)據(jù)庫,放到一個小系統(tǒng)中去,其它系統(tǒng)通過網(wǎng)絡來訪問這些數(shù)據(jù)。
8、終端服務器(Terminal Servers)
很多的終端連接安裝不再直接將終端連到計算機,取而代之的是,將他們連接到終端服務器上。終端服務器是一個小的計算機,它只需知道怎樣運行TELNET(或其它一些完成遠程登錄的協(xié)議)。如果你的終端想連上去,只用鍵入要連的計算機名就可。通常有可能同時有幾個這種連接,這時終端服務器采用快速開關技術來切換。
上述所描述的一些協(xié)議是由Berkeley, Sun,或其它組織定義的。因此,它們不是互聯(lián)網(wǎng)協(xié)議集(InternetProtocol Suite)的一部分, 只是使用到TCP/IP的工具,如同一般的TCP/IP應用協(xié)議。因為協(xié)議的定義不一致,并且商業(yè)支持的TCP/IP工具廣泛應用,也許會把這些協(xié)議作為互聯(lián)協(xié)議集中的一部分。上述列出的只是基于TCP/IP部分服務的一些簡單例子,但包含了一些主要的應用。
傳輸控制協(xié)議協(xié)議提供的是可靠的、面向連接的傳輸控制協(xié)議,即在傳輸數(shù)據(jù)前要先建立邏輯連接,然后再傳輸數(shù)據(jù),最后釋放連接3個過程:
1、傳輸控制協(xié)議提供端到端、全雙工通信;
2、采用字節(jié)流方式,如果字節(jié)流太長,將其分段;
3、提供緊急數(shù)據(jù)傳送功能。
數(shù)據(jù)被分割成傳輸控制協(xié)議最適合發(fā)送的數(shù)據(jù)塊,也就是最大報文段長度。當一個連接建立時,連接的雙方都要通告各自的MSS(最大報文段長度)。
當傳輸控制協(xié)議發(fā)出一個報文段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認將重發(fā)這個報文段。
當傳輸控制協(xié)議收到發(fā)自傳輸控制協(xié)議連接另一端的數(shù)據(jù),它將發(fā)送一個確認,這個確認不是立即發(fā)送,通常將推遲幾分之一秒,以便將ACK與需要沿該方向發(fā)送的數(shù)據(jù)一起發(fā)送。絕大多數(shù)實現(xiàn)采用的時延為200ms。
傳輸控制協(xié)議將保持它首部和數(shù)據(jù)的檢驗和。這是一個端到端的檢驗和,目的是檢測數(shù)據(jù)在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,傳輸控制協(xié)議將丟棄這個報文段和不確認收到此報文段(希望發(fā)送端超時并重發(fā))。
既然傳輸控制協(xié)議報文段作為IP數(shù)據(jù)報來傳輸,因此傳輸控制協(xié)議報文段的到達也可能會失序。傳輸控制協(xié)議將對收到的數(shù)據(jù)進行重新排序,將數(shù)據(jù)以正確順序交給應用層。
既然IP數(shù)據(jù)報會發(fā)生重復,傳輸控制協(xié)議接收端必須丟棄重復的數(shù)據(jù)。
傳輸控制協(xié)議還能提供流量控制。傳輸控制協(xié)議連接的每一方都有固定大小的緩沖空間。傳輸控制協(xié)議的接收端只允許另一端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止較快主機致使較慢主機的緩沖區(qū)溢出。
傳輸控制協(xié)議并不是對所有的應用都適合,一些新的帶有一些內(nèi)在的脆弱性的運輸層協(xié)議也被設計出來。比如,實時應用并不需要甚至無法忍受傳輸控制協(xié)議的可靠傳輸機制。在這種類型的應用中,通常允許一些丟包、出錯或擁塞,而不是去校正它們。例如通常不使用傳輸控制協(xié)議的應用有:實時流多媒體(如因特網(wǎng)廣播)、實時多媒體播放器和游戲、IP電話(VoIP)等等。任何不是很需要可靠性或者是想將功能減到最少的應用可以避免使用傳輸控制協(xié)議。在很多情況下,當只需要多路復用應用服務時,用戶數(shù)據(jù)報協(xié)議(UDP)可以代替?zhèn)鬏斂刂茀f(xié)議為應用提供服務。