多媒體

移動(dòng)通信

計(jì)算機(jī)網(wǎng)絡(luò)

  無(wú)限網(wǎng)絡(luò)今日始
  羽檄交馳話通信
  計(jì)算機(jī)網(wǎng)絡(luò)的五臟六腑
  嫦娥孤凄與誰(shuí)鄰
  因特網(wǎng)的游戲規(guī)則
  團(tuán)結(jié)的力量――網(wǎng)絡(luò)互連
  Internet今昔談
  網(wǎng)絡(luò)應(yīng)用萬(wàn)花筒
  小心駛得萬(wàn)年船

智能網(wǎng)

光通信

微波通信

衛(wèi)星通信

交換網(wǎng)

接入網(wǎng)

電信管理網(wǎng)

 

 

  
  電信博物館 > 計(jì)算機(jī)網(wǎng)絡(luò) > 因特網(wǎng)的游戲規(guī)則


 


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

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

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

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

  另一個(gè)重要的TCP/IP協(xié)議集的成員是用戶數(shù)據(jù)報(bào)協(xié)議(UDP),它同TCP相似但比TCP原始許多。TCP是一個(gè)可靠的協(xié)議,因?yàn)樗芡ㄟ^(guò)錯(cuò)誤檢查和握手確認(rèn)來(lái)保證數(shù)據(jù)完整地到達(dá)目的地。UDP是一個(gè)“不可靠”的協(xié)議,因?yàn)樗荒鼙WC數(shù)據(jù)報(bào)的接收順序同發(fā)送順序相同,甚至不能保證它們是否全部到達(dá)。如果有可靠性要求,則應(yīng)用程序避免使用它。同許多TCP/IP工具同時(shí)提供的SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)就是一個(gè)使用UDP協(xié)議的應(yīng)用例子。

  下面的內(nèi)容可以讓我們對(duì)TCP協(xié)議的功能和特點(diǎn)有更為深刻的認(rèn)識(shí)。

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

  TCP端口為信息的傳送提供地點(diǎn),端口號(hào)小于256的定義為常用端口。 SOCKETS實(shí)用程序使用一個(gè)協(xié)議端口號(hào)來(lái)標(biāo)明自己應(yīng)用的唯一性。端口可以使用0到65536之間的任何數(shù)字。在服務(wù)請(qǐng)求時(shí),操作系統(tǒng)動(dòng)態(tài)地為客戶端的應(yīng)用程序分配端口號(hào)。

套接字

  網(wǎng)絡(luò)應(yīng)用程序把兩臺(tái)希望相互通訊的計(jì)算機(jī)連在一起,所以它們需要連接來(lái)交換數(shù)據(jù)。在TCP/IP中,這種連接叫做套接字(Socket),它和金屬套管用的是一個(gè)詞。TCP/IP的套接字是一種支撐某物的支架,所以需要兩個(gè)套接程序,每臺(tái)計(jì)算機(jī)一個(gè)。為了建立雙方的連接,以達(dá)到各類通訊要求,一個(gè)應(yīng)用程序通過(guò)定義三部分來(lái)產(chǎn)生一個(gè)套接字:主機(jī)IP地址、服務(wù)類型(面向連接的服務(wù)是TCP,無(wú)連接服務(wù)是UDP)、應(yīng)用程序所用的端口。套接字在要領(lǐng)上與文件句柄類似,因?yàn)槠涔δ苁亲鳛榫W(wǎng)絡(luò)通信的終結(jié)點(diǎn)。

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

  就像電影院散場(chǎng)的時(shí)候人如潮涌,平時(shí)則冷冷清清,網(wǎng)絡(luò)中的通信量也會(huì)時(shí)大時(shí)小,有時(shí)傳輸量過(guò)大,信號(hào)就無(wú)法到達(dá)目的地。TCP的一個(gè)重要作用就是對(duì)通信量的控制。

  TCP采用可變發(fā)送窗口的方式進(jìn)行流量控制。發(fā)送窗口在連接建立時(shí)由雙方商定。但在通信的過(guò)程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整自己的接收窗口(可增大或減。缓蟾嬖V對(duì)方,使對(duì)方的發(fā)送窗口和自己的接收窗口一致。這種由接收端控制發(fā)送端的做法,在計(jì)算機(jī)網(wǎng)絡(luò)中經(jīng)常使用。

(三)沒(méi)收到?再發(fā)唄!--TCP的重發(fā)機(jī)制

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

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

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

  我們來(lái)看看這三次握手的簡(jiǎn)單過(guò)程:

  (1)初始化主機(jī)通過(guò)一個(gè)同步標(biāo)志置位的數(shù)據(jù)段發(fā)出會(huì)話請(qǐng)求。

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

  (3)請(qǐng)求主機(jī)再回送一個(gè)數(shù)據(jù)段,并帶有確認(rèn)順序號(hào)和確認(rèn)號(hào)。

[上一頁(yè)]

 
韩国日本在线看片,国产免费99热精品,国产精品码一区二区,色老久久精品偷偷鲁偷偷鲁