網(wǎng)絡通信協(xié)議基礎:路由選擇[4]

互聯(lián)網(wǎng)技術 責任編輯:jamesmcu 2013-01-17

摘要:滴水不漏的TCP協(xié)議TCP是一種可靠的面向連接的傳送服務。它在傳送數(shù)據(jù)時是分段進行的,主機交換數(shù)據(jù)必須建立一個會話。它用比特流通信,即數(shù)據(jù)被作為無結構的字節(jié)流。通過對每個TCP傳輸?shù)淖侄沃付樞蛱?,可以獲得可靠性。如果一個分段被分解成幾個小段,接收主機會知道是否所有小段都已收到。通過發(fā)送應答,用以確認別的主機收

  滴水不漏的TCP協(xié)議

  TCP是一種可靠的面向連接的傳送服務。它在傳送數(shù)據(jù)時是分段進行的,主機交換數(shù)據(jù)必須建立一個會話。它用比特流通信,即數(shù)據(jù)被作為無結構的字節(jié)流。

  通過對每個TCP傳輸?shù)淖侄沃付樞蛱?,可以獲得可靠性。如果一個分段被分解成幾個小段,接收主機會知道是否所有小段都已收到。通過發(fā)送應答,用以確認別的主機收到了數(shù)據(jù)。對于發(fā)送的每一個小段,接收主機必須在一個指定的時間返回一個確認。如果發(fā)送者未收到確認,數(shù)據(jù)會被重新發(fā)送;如果收到的數(shù)據(jù)包損壞,接收主機會舍棄它,因為確認未被發(fā)送,發(fā)送者仍會重新發(fā)送分段。

  TCP是一個更高層次的協(xié)議。它允許運行在不同主機上的應用程序相互交換數(shù)據(jù)流。在大多數(shù)情況下,每個TCP數(shù)據(jù)段裝在一個IP數(shù)據(jù)報中進行發(fā)送。但如需要的話,TCP將把數(shù)據(jù)段分成多個數(shù)據(jù)報,而IP數(shù)據(jù)報則與同一網(wǎng)絡不同主機間傳輸位流和字節(jié)流的物理數(shù)據(jù)幀相容。由于IP并不能保證接收的數(shù)據(jù)報的順序與發(fā)送的相一致,TCP會在收信端裝配TCP數(shù)據(jù)段并形成一個不間斷的數(shù)據(jù)流。FTP和HTTP就是兩個非常流行的依靠TCP的TCP/IP應用程序。

  另一個重要的TCP/IP協(xié)議集的成員是用戶數(shù)據(jù)報協(xié)議(UDP),它同TCP相似但比TCP原始許多。TCP是一個可靠的協(xié)議,因為它能通過錯誤檢查和握手確認來保證數(shù)據(jù)完整地到達目的地。UDP是一個“不可靠”的協(xié)議,因為它不能保證數(shù)據(jù)報的接收順序同發(fā)送順序相同,甚至不能保證它們是否全部到達。如果有可靠性要求,則應用程序避免使用它。同許多TCP/IP工具同時提供的SNMP(簡單網(wǎng)絡管理協(xié)議)就是一個使用UDP協(xié)議的應用例子。

  下面的內容可以讓我們對TCP協(xié)議的功能和特點有更為深刻的認識。

  (一)怎么接頭--端口與套接字Socket

  TCP端口為信息的傳送提供地點,端口號小于256的定義為常用端口。 SOCKETS實用程序使用一個協(xié)議端口號來標明自己應用的性。端口可以使用0到65536之間的任何數(shù)字。在服務請求時,操作系統(tǒng)動態(tài)地為客戶端的應用程序分配端口號。

  套接字

  網(wǎng)絡應用程序把兩臺希望相互通訊的計算機連在一起,所以它們需要連接來交換數(shù)據(jù)。在TCP/IP中,這種連接叫做套接字(Socket),它和金屬套管用的是一個詞。TCP/IP的套接字是一種支撐某物的支架,所以需要兩個套接程序,每臺計算機一個。為了建立雙方的連接,以達到各類通訊要求,一個應用程序通過定義三部分來產(chǎn)生一個套接字:主機IP地址、服務類型(面向連接的服務是TCP,無連接服務是UDP)、應用程序所用的端口。套接字在要領上與文件句柄類似,因為其功能是作為網(wǎng)絡通信的終結點。

  (二)電影院散場與TCP的流量控制

  就像電影院散場的時候人如潮涌,平時則冷冷清清,網(wǎng)絡中的通信量也會時大時小,有時傳輸量過大,信號就無法到達目的地。TCP的一個重要作用就是對通信量的控制。

  TCP采用可變發(fā)送窗口的方式進行流量控制。發(fā)送窗口在連接建立時由雙方商定。但在通信的過程中,接收端可根據(jù)自己的資源情況,隨時動態(tài)地調整自己的接收窗口(可增大或減小),然后告訴對方,使對方的發(fā)送窗口和自己的接收窗口一致。這種由接收端控制發(fā)送端的做法,在計算機網(wǎng)絡中經(jīng)常使用。

  (三)沒收到?再發(fā)唄!--TCP的重發(fā)機制

  重發(fā)機制是TCP中最重要和最復雜的問題之一。TCP每發(fā)送一個報文段,就設置一次定時器。只要定時器設置的重發(fā)時間到而還沒有收到確認,就要重發(fā)這一報文段。但是,大家知道,TCP的下層往往是一個互連網(wǎng)環(huán)境,可能是一個高速的局域網(wǎng),也可能是多個低速的廣域網(wǎng),而且路由還可能會發(fā)生變化,所以往返時延(就是從數(shù)據(jù)發(fā)出到收到對方的確認所經(jīng)歷的時間)差別很大。那么,TCP的超時定時器的重發(fā)時間究竟應設置為多大?TCP采用了一種自適應算法,就是把各個報文段的往返時延樣本平均得出平均往返時延,每測量到一個新的往返時延樣本就計算一次平均往返時延,并通過公式更新定時器的重發(fā)時間。

  (四)三次握手--TCP的運輸連接管理

  TCP對話通過三次握手來初始化。三次握手的目的是使數(shù)據(jù)段的發(fā)送和接收同步;告訴其它主機其一次可接收的數(shù)據(jù)量,并建立虛連接。

  我們來看看這三次握手的簡單過程:

  (1)初始化主機通過一個同步標志置位的數(shù)據(jù)段發(fā)出會話請求。

  (2)接收主機通過發(fā)回具有以下項目的數(shù)據(jù)段表示回復:同步標志置位、即將發(fā)送的數(shù)據(jù)段的起始字節(jié)的順序號、應答并帶有將收到的下一個數(shù)據(jù)段的字節(jié)順序號。

  (3)請求主機再回送一個數(shù)據(jù)段,并帶有確認順序號和確認號。

[1]  [2]  [3]  [4]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 2
專注在線職業(yè)教育23年

項目管理

信息系統(tǒng)項目管理師

廠商認證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

!
咨詢在線老師!