




免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
TCP傳輸機(jī)制簡介摘 要:傳輸層是計(jì)算機(jī)網(wǎng)絡(luò)中重要的一層,它負(fù)責(zé)連接下層物理結(jié)構(gòu)和上層的應(yīng)用程序,TCP協(xié)議是運(yùn)輸層的重要協(xié)議之一,本文對TCP協(xié)議做一個(gè)簡單的介紹,然后為了介紹TCP傳輸機(jī)制,首先介紹TCP報(bào)文段的結(jié)構(gòu),而后介紹TCP協(xié)議可靠傳輸?shù)膶?shí)現(xiàn)方法以及TCP協(xié)議的流量控制和TCP協(xié)議的擁塞控制,最后介紹TCP協(xié)議整個(gè)的傳輸過程,從連接的建立一直到連接的釋放。關(guān)鍵詞:TCP協(xié)議 ;TCP報(bào)文段;流量控制;擁塞控制1引言運(yùn)輸層是整個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)中的關(guān)鍵層次之一,為應(yīng)用進(jìn)程之間提供端到端的邏輯通信。TCP(Transport Control Protocol,傳輸控制協(xié)議)協(xié)議是運(yùn)輸層兩個(gè)重要的協(xié)議之一(另一個(gè)是UDP協(xié)議)。它是提供面向連接的服務(wù),為用戶提供一條可靠的通信信道,這在一些場合(比如說文件傳輸,電子郵件等)中是必須的。本文對TCP協(xié)議做一個(gè)簡要的介紹,重點(diǎn)敘述TCP報(bào)文的結(jié)構(gòu)以及TCP是如何實(shí)現(xiàn)可靠傳輸?shù)?,包括流量控制和擁塞控制,幫助初學(xué)者更好的了解TCP傳輸機(jī)制。2TCP協(xié)議概述傳輸控制協(xié)議TCP是運(yùn)輸層的重要協(xié)議之一,當(dāng)運(yùn)輸層采用面向連接的TCP協(xié)議時(shí),盡管下面的網(wǎng)絡(luò)是不可靠的(只是提供盡最大努力服務(wù)),但這種邏輯通信信道就相當(dāng)于一條全雙工的可靠信道。它提供一種點(diǎn)對點(diǎn)的面向連接的服務(wù),在傳輸數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳輸結(jié)束后要釋放連接。TCP不提供廣播或多播服務(wù)。由于TCP要提供可靠的、面向連接的運(yùn)輸服務(wù),因此不可避免地增加了許多開銷,如確認(rèn)、流量控制、計(jì)時(shí)器以及連接管理等。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源。TCP提供可靠的交互服務(wù)的含義是,通過TCP連接傳送的數(shù)據(jù),無差錯(cuò)、不丟失、不重復(fù)、并且按序到達(dá)。TCP提供全雙工通信的含義是,TCP允許通信雙方的應(yīng)用進(jìn)程在任何時(shí)候都能發(fā)送數(shù)據(jù)。TCP連接的兩端都設(shè)有發(fā)送緩存和接受緩存,在發(fā)送時(shí)將數(shù)據(jù)發(fā)送到緩存中,而后TCP在合適的時(shí)候?qū)?shù)據(jù)發(fā)送出去;接受時(shí)將數(shù)據(jù)先存入緩存中,上層的程序在合適的時(shí)候讀取緩存中的數(shù)據(jù)進(jìn)行處理。TCP是點(diǎn)對點(diǎn)的通信的含義是,TCP連接有兩個(gè)端點(diǎn),這個(gè)端點(diǎn)叫做套接字(Socket)接口。根據(jù)RFC793的定義:端口號拼接到(contatenated with)IP地址即構(gòu)成套接字。因此套接字的表示方法是在點(diǎn)分十進(jìn)制的IP地址后面寫上端口號,中間用冒號或逗號隔開,即:套接字Socket=(IP地址:端口號)每一條TCP連接唯一地被通信的兩端的兩個(gè)端點(diǎn)(即兩個(gè)套接字)所確定。此外TCP是面向字節(jié)流的傳輸,即把數(shù)據(jù)塊看成無結(jié)構(gòu)的字節(jié)流并將字節(jié)流以報(bào)文段為單位傳輸。3TCP報(bào)文結(jié)構(gòu)TCP雖然是面向字節(jié)流的,但是TCP傳送的數(shù)據(jù)單元卻是報(bào)文段。一個(gè)TCP報(bào)文段分為首部和數(shù)據(jù)兩個(gè)部分,而TCP的全部功能都體現(xiàn)在它首部中各字段的作用。因此,只有弄清TCP首部各字段的作用才能掌握TCP的工作原理。下面就討論TCP報(bào)文段的首部格式。TCP報(bào)文段首部的前20個(gè)字節(jié)是固定的(Figure 1),后面有4N個(gè)字節(jié)是根據(jù)需要而增加的選項(xiàng)(N是整數(shù))。因此TCP首部的最小長度是20字節(jié)。首部固定部分各個(gè)字段的意義如下:(1) 源端口和目的端口:各占2個(gè)字節(jié),分別寫入源端口號和目的端口號。(2) 序號:占4字節(jié)。序號范圍是0,232-1,共232個(gè)序號。序號增加到232-1后,下一個(gè)序號又回到0。TCP是面向字節(jié)流的。在一個(gè)TCP連接中傳送的字節(jié)流中的每一個(gè)字節(jié)都按順序編號。整個(gè)要傳送的字節(jié)流的起始序號必須在連接建立時(shí)設(shè)置。首部中的序號字段則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號。這個(gè)字段的名稱也叫做報(bào)文段序號。Figure 1 .TCP報(bào)文段的首部格式(3) 確認(rèn)號:占4字節(jié),是期望收到對方下一個(gè)報(bào)文段的第一個(gè)數(shù)據(jù)字節(jié)的序號。例如,B正確收到A發(fā)送過來的一個(gè)報(bào)文段,去序號字段值是501,而數(shù)據(jù)長度是200字節(jié)(序號501-700),這表明B正確收到了A發(fā)送的到序號700為止的數(shù)據(jù)。因此,B期望收到A的下一個(gè)數(shù)據(jù)序號是701,于是B在發(fā)送給A的確認(rèn)報(bào)文段中把確認(rèn)號置為701。總之若確認(rèn)號=N,則表明:到序號N-1為止的所有數(shù)據(jù)都已正確收到。(4) 數(shù)據(jù)偏移:占4位,它指出TCP報(bào)文段的數(shù)據(jù)起始處距離TCP報(bào)文段的起始處有多遠(yuǎn)。這個(gè)字段實(shí)際上是指出TCP報(bào)文段的首部長度。但注意,“數(shù)據(jù)偏移”的單位是32位字。由于4位二進(jìn)制數(shù)能夠表示的最大十進(jìn)制數(shù)字是15,因此數(shù)據(jù)偏移的最大值是60字節(jié),這也是TCP首部的最大長度。(5) 保留:占6位,保留為今后使用,但目前應(yīng)置為0。下面有6個(gè)控制位說明本報(bào)文段的性質(zhì),它們的意義見下面的(6)(11)。(6) 緊急URG(URGent):當(dāng)URG=1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(優(yōu)先級較高),這時(shí)發(fā)送方TCP就把緊急數(shù)據(jù)插入到本報(bào)文段數(shù)據(jù)的最前面,而在緊急數(shù)據(jù)后面的數(shù)據(jù)仍是普通數(shù)據(jù)。這時(shí)要與首部中緊急指針字段配合使用。(7) 確認(rèn)ACK(ACKnowlegment):僅當(dāng)ACK=1時(shí)確認(rèn)號字段才有效。當(dāng)ACK=0時(shí),確認(rèn)號無效。TCP規(guī)定,在連接建立后所有傳送的報(bào)文段都必須把ACK置為1。(8) 推送PSH(PuSH):當(dāng)兩個(gè)應(yīng)用進(jìn)程進(jìn)行交互式的通信時(shí),有時(shí)在一端的應(yīng)用程序希望在鍵入一個(gè)命令后立即就能夠收到對方的回應(yīng)。在這種情況下,TCP就可以使用推送(push)操作。這時(shí),發(fā)送發(fā)TCP把PSH置為1,并立即創(chuàng)建一個(gè)報(bào)文段發(fā)送出去。接受方TCP收到PSH=1的報(bào)文段,就盡快地(即“推送”向前)交付給接受應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了再向上交付。但是該方法很少使用。(9) 復(fù)位RST(ReSeT):當(dāng)RST=1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如主機(jī)崩潰等),必須釋放連接,然后再重新建立運(yùn)輸連接。RST置為1還用來拒絕一個(gè)非法的報(bào)文段或拒絕打開一個(gè)連接。RST也可稱為重建位或重置位。(10) 同步SYN(SYNchronization):在建立連接時(shí)用來同步序號。當(dāng)SYN=1而ACK=0時(shí),表明這是一個(gè)連接請求的報(bào)文段。若對方同意建立連接,則應(yīng)在響應(yīng)報(bào)文段中使SYN=1和ACK=1。因此,SYN置為1就表示這是一個(gè)連接請求或連接接受報(bào)文。(11) 終止FIN(FINis):用來釋放一個(gè)連接。當(dāng)FIN=1時(shí),表示此報(bào)文段的發(fā)送方的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。(12) 窗口:占2個(gè)字節(jié)。窗口值是0216-1之間的整數(shù)。窗口指的是發(fā)送本報(bào)文段的一方的接受窗口。窗口值告訴對方:從本報(bào)文段首部中的確認(rèn)號算起,接受方目前允許對方發(fā)送的數(shù)據(jù)量。之所以要有這個(gè)限制,是因?yàn)榻邮辗降臄?shù)據(jù)緩存空間是有限的??傊?,窗口值作為接收方讓發(fā)送方設(shè)置其發(fā)送窗口的依據(jù),窗口字段明確的支出了現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量。窗口值經(jīng)常是在動態(tài)變化著的。(13) 檢驗(yàn)和:占2個(gè)字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段前面加上12字節(jié)的偽首部。(14) 緊急指針:占2個(gè)字節(jié)。緊急指針僅在URG=1是才有意義,它指出本報(bào)文段中的緊急數(shù)據(jù)的字節(jié)數(shù)(緊急數(shù)據(jù)結(jié)束后就是普通數(shù)據(jù))。因此緊急指針指出了緊急數(shù)據(jù)的末尾在報(bào)文段中的位置。當(dāng)所有緊急數(shù)據(jù)都處理完時(shí),TCP就告訴應(yīng)用程序恢復(fù)到正常操作。值得注意的是,即使窗口為0時(shí)也可發(fā)送緊急數(shù)據(jù)。(15) 選項(xiàng):長度可變,最長達(dá)40字節(jié)。當(dāng)沒有使用選項(xiàng)時(shí),TCP的首部長度是20字節(jié)。選項(xiàng)內(nèi)容有最大報(bào)文長度MSS、窗口擴(kuò)大、時(shí)間戳和選擇確認(rèn)等。具體的作用可以參考相關(guān)的文章,在此不再詳述。4TCP可靠傳輸?shù)膶?shí)現(xiàn)我們知道,TCP發(fā)送的報(bào)文段是交給IP層傳輸?shù)摹5獻(xiàn)P層只能提供盡最大努力的服務(wù),也就是說,TCP下面的網(wǎng)絡(luò)所提供的是不可靠的傳輸。因此,TCP必須采用適當(dāng)?shù)拇胧┎拍苁沟脙蓚€(gè)運(yùn)輸層之間的通信變得可靠。下面從最簡單的停止等待協(xié)議講起。4.1 停止等待協(xié)議全雙工通信的雙方既是發(fā)送方也是接收方。下面為了討論問題的方便,我們僅考慮A發(fā)送數(shù)據(jù)而B接受數(shù)據(jù)并發(fā)送確認(rèn)?!巴V沟却本褪敲堪l(fā)送完一個(gè)分組就停止發(fā)送,等待對方的確認(rèn)。在收到確認(rèn)后再發(fā)送下一個(gè)分組。4.1.1 無差錯(cuò)情況最簡單的無差錯(cuò)情況是A發(fā)送分組M1,發(fā)送完就暫停發(fā)送,等待B的確認(rèn)。B收到M1就像A發(fā)送確認(rèn)。A收到對M1的確認(rèn)后,就再發(fā)送下一個(gè)分組M2。同樣,在收到B對M2的確認(rèn)后,在發(fā)送M3。4.1.2 出現(xiàn)差錯(cuò)在傳輸過程中B接受M1時(shí)檢測出了差錯(cuò),就丟棄M1,其他什么也不做(不通知A收到有差錯(cuò)的分組)。也可能是M1在傳輸過程中丟失了,這時(shí)B當(dāng)然什么都不知道。在這兩種情況下,B都不會發(fā)送任何消息??煽總鬏攨f(xié)議是這樣設(shè)計(jì)的:A只要超過一段時(shí)間仍然沒有收到確認(rèn),就認(rèn)為剛才發(fā)送的分組丟失,因而重傳前面發(fā)送過的分組。這就叫做超時(shí)重傳。要實(shí)現(xiàn)超時(shí)重傳,就要在每發(fā)送完一個(gè)分組設(shè)置一個(gè)超時(shí)計(jì)時(shí)器。4.1.3 丟失確認(rèn)和確認(rèn)遲到另一種情況,B發(fā)送的對M1的確認(rèn)丟失了。A在設(shè)定的超時(shí)重傳時(shí)間內(nèi)沒有收到確認(rèn),因此A在超時(shí)計(jì)時(shí)器到期后就要重傳M1,假定B又收到了重傳的分組M1,這時(shí)應(yīng)采取兩個(gè)行動。第一,丟棄這個(gè)重復(fù)的分組M1,不向上層交付。第二,向A發(fā)送確認(rèn)。不能認(rèn)為已經(jīng)發(fā)送過確認(rèn)就不在發(fā)送,因?yàn)锳之所以重傳M1就表示A沒有收到對M1的確認(rèn)。4.2 以字節(jié)為單位的滑動窗口TCP的滑動窗口是與報(bào)文段中窗口值對應(yīng)的,即接收方最多能夠接受多長字節(jié)的數(shù)據(jù)或是發(fā)送方最多允許發(fā)送多長字節(jié)的數(shù)據(jù)。發(fā)送方A根據(jù)接收方B發(fā)來的確認(rèn)報(bào)文段段中窗口值和確認(rèn)號構(gòu)建確認(rèn)號開頭,以窗口值為長度的一個(gè)允許發(fā)送窗口,其中序號最小的位置稱為后沿,最大的稱為前沿。后沿后面的數(shù)據(jù)表示B已經(jīng)全部收到,不用再發(fā)送。在設(shè)置一個(gè)指針P2表示已經(jīng)發(fā)送數(shù)據(jù)的最大序號,在后沿到P2之間表示已經(jīng)發(fā)送但沒有收到確認(rèn)的數(shù)據(jù)。當(dāng)收到確認(rèn)報(bào)文中確認(rèn)值大于現(xiàn)在的后沿,那么應(yīng)向前滑動窗口,使得后沿等于確認(rèn)值。如果發(fā)送窗口中的數(shù)據(jù)全部發(fā)送出去,但是沒有收到B的確認(rèn),那么A在超時(shí)計(jì)時(shí)器過期時(shí)會重傳這些數(shù)據(jù),保證B能夠收到全部的數(shù)據(jù)。(有關(guān)超時(shí)重傳時(shí)間的選擇,可以參考相關(guān)的文獻(xiàn),這里不再敘述)B在收到數(shù)據(jù)時(shí),如果沒有收到期望的數(shù)據(jù)(接收窗口中編號最小的數(shù)據(jù)),即使收到其他數(shù)據(jù)(編號可能更大),那么在發(fā)送確認(rèn)報(bào)文時(shí)也需要將確認(rèn)值置為接收窗口中編號最小的數(shù)據(jù),這樣保證能夠收到完整的數(shù)據(jù)。4.3 選擇確認(rèn)SACK可以看到上面的過程會重復(fù)傳輸大量數(shù)據(jù),那么能不能在收到正確的、但是沒有按序號排列的報(bào)文段時(shí),能否設(shè)法只傳輸缺少的數(shù)據(jù)而不重傳已經(jīng)正確到達(dá)接收方的數(shù)據(jù)?答案是可以的,方法就是選擇確認(rèn)。當(dāng)接收方收到了和前面的字節(jié)流不連續(xù)的兩個(gè)字節(jié)塊時(shí),如果這些字節(jié)的序號都在接收窗口之內(nèi),那么接收方就先收下這些數(shù)據(jù),但要把這些信息準(zhǔn)確的告訴發(fā)送方,使發(fā)送方不再重復(fù)發(fā)送這些數(shù)據(jù)。這就要求在建立TCP連接時(shí)在首部加上“允許SACK”選項(xiàng),而且雙方必須事先商定好,具體內(nèi)容可以參見RFC2018。5TCP流量控制一般來說,我們總是希望數(shù)據(jù)傳輸?shù)酶煲恍5绻l(fā)送方把數(shù)據(jù)發(fā)送的過快,接收方就可能來不及接收,這就會造成數(shù)據(jù)的丟失。所謂流量控制就是讓發(fā)送方的發(fā)送速率不要太快,要讓接收方來得及接收。利用滑動窗口機(jī)制可以很方便的在TCP連接上實(shí)現(xiàn)對發(fā)送方的流量控制。發(fā)送方的發(fā)送窗口不能超過接收方給出的接受窗口的數(shù)值(注意TCP的窗口單位是字節(jié),不是報(bào)文段)。這樣可以使得發(fā)送速率有接收方來確定,使得接收方能夠接受到數(shù)據(jù)。但當(dāng)某一次接收方的窗口值為0,這是發(fā)送方不會發(fā)送數(shù)據(jù),等待接收方發(fā)送新的確認(rèn)報(bào)文,但是接收方的新的確認(rèn)報(bào)文在網(wǎng)絡(luò)中丟失,那么發(fā)送方就可能一直等待下去。為了解決這個(gè)問題,TCP為每一個(gè)連接設(shè)有一個(gè)持續(xù)計(jì)時(shí)器。只要TCP連接的一方收到對方的零窗口通知,就啟動持續(xù)計(jì)時(shí)器。若持續(xù)計(jì)時(shí)器設(shè)置的時(shí)間到期,就發(fā)送一個(gè)零窗口探測報(bào)文段(僅攜帶一字節(jié)數(shù)據(jù)),而對方就在確認(rèn)這個(gè)探測報(bào)文段時(shí)給出了現(xiàn)在的窗口值。如果窗口仍然是0,那么收到這個(gè)報(bào)文段的一方就重新設(shè)置持續(xù)計(jì)時(shí)器。如果窗口不是0,那么死鎖的僵局就可以打破了。6TCP的擁塞控制6.1 擁塞和擁塞控制的概念在計(jì)算機(jī)網(wǎng)絡(luò)中的鏈路容量(即帶寬)、交換節(jié)點(diǎn)中的緩存和處理機(jī)等,都是網(wǎng)絡(luò)的資源。在某段時(shí)間按,若對網(wǎng)絡(luò)中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)的性能就要變壞。這種情況就叫擁塞。擁塞常常趨于惡化。如果一個(gè)路由器沒有足夠的緩存空間,他就會丟棄一些新到的分組。但當(dāng)分組被丟棄時(shí),發(fā)送這一分組的源點(diǎn)就會重傳這一分組,甚至可能還要重傳多次。這樣會引起更多的分組流入網(wǎng)絡(luò)和被網(wǎng)絡(luò)中的路由器丟棄。課件擁塞引起的重傳并不會緩解網(wǎng)絡(luò)的擁塞,反而會加劇網(wǎng)絡(luò)的擁塞。所謂擁塞控制就是防止過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不致過載。擁塞控制有一個(gè)前提,就是網(wǎng)絡(luò)能夠承受現(xiàn)有的網(wǎng)絡(luò)負(fù)荷。擁塞控制是一個(gè)全局性的過程涉及所有的主機(jī)、路由器和降低網(wǎng)絡(luò)傳輸性能的有關(guān)的所有因素。另外進(jìn)行擁塞控制需要付出代價(jià),在設(shè)計(jì)擁塞控制策略時(shí)必須全面衡量得失。6.2 擁塞控制方法因特網(wǎng)建議標(biāo)準(zhǔn)RFC2581定義了四種擁塞控制算法,即慢開始、擁塞避免、快重傳和快恢復(fù),本文以慢開始和擁塞避免為例介紹,其他兩種方法可以參考相關(guān)文獻(xiàn)。在討論時(shí)我們假定:(1) 數(shù)據(jù)時(shí)單方向傳送的,而另一個(gè)方向只傳送確認(rèn)。(2) 接收方總是有足夠大的緩存空間,因而發(fā)送窗口的大小由網(wǎng)絡(luò)的擁塞程度決定。6.2.1 慢開始發(fā)送方維持一個(gè)叫做擁塞窗口cwnd的狀態(tài)變量。擁塞窗口的大小取決于網(wǎng)絡(luò)的擁塞程度,并且動態(tài)變化。下面用例子說明慢開始的原理。在一開始發(fā)送方設(shè)置cwnd=1,發(fā)送第一報(bào)文段M1,接收方收到后確認(rèn)M1。發(fā)送方收到對M1的確認(rèn)后,把cwnd增大到2,于是發(fā)送方接著發(fā)送M2和M3兩個(gè)報(bào)文段。接收方收到后發(fā)回度其的確認(rèn)。發(fā)送方每收到一個(gè)對新報(bào)文段的確認(rèn)后就是發(fā)送方的擁塞窗口加1,因此發(fā)送方收到兩個(gè)確認(rèn)后,cwnd增大為4,并可發(fā)送M4M7四個(gè)報(bào)文段。因此使用慢開始算法后,每經(jīng)過一個(gè)傳輸輪次,擁塞窗口就加倍。為了防止擁塞窗口cwnd增長過大引起網(wǎng)絡(luò)擁塞,還需要設(shè)置一個(gè)慢開始門限ssthresh狀態(tài)變量,使用方法如下:當(dāng)cwndssthresh時(shí),停止使用慢開始算法而改用擁塞避免算法。當(dāng)cwnd=ssthresh時(shí),既可使用慢開始算法,又可以使用擁塞避免算法。6.2.2 擁塞避免擁塞避免算法的思路是讓擁塞窗口cwnd緩慢的增大,即每經(jīng)過一個(gè)往返時(shí)間RTT就把發(fā)送方的擁塞窗口cwnd加1,這樣擁塞窗口cwnd按線性規(guī)律緩慢增長。無論在慢開始階段還是在擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)擁塞,就要把慢開始門限ssthresh設(shè)置為出現(xiàn)擁塞時(shí)的一半(但不能小于2)。然后把擁塞窗口cwnd重新 置為1,執(zhí)行慢開始算法。7TCP的運(yùn)輸連接管理TCP是面向連接的協(xié)議。運(yùn)輸連接是用來傳輸TCP報(bào)文的。TCP運(yùn)輸連接時(shí)建立和釋放每一次面向連接的通信中不可少的過程。因此運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常的進(jìn)行。前面已經(jīng)討論了數(shù)據(jù)傳送的相關(guān)問題,下面主要討論連接建立和連接釋放。7.1 TCP連接的建立假定A為客戶而B為服務(wù)器,一開始TCP都處于關(guān)閉狀態(tài)。B首先創(chuàng)建傳送控制塊TCB,準(zhǔn)備接受客戶進(jìn)程請求。這樣服務(wù)器處于LISTEN狀態(tài)。A的TCP客戶進(jìn)程也是首先創(chuàng)建傳輸控制模塊TCB,然后向B發(fā)出連接請求報(bào)文段(SYN=1),報(bào)文段中不攜帶數(shù)據(jù),這是TCP客戶進(jìn)程進(jìn)入SYN-SENT狀態(tài)。B收到連接請求報(bào)文段后,如同意建立連接,則向A發(fā)送確認(rèn)。報(bào)文中應(yīng)把SYN和ACK位都置為1,這時(shí),TCP服務(wù)器進(jìn)程進(jìn)入SYN-RCVD狀態(tài)。TCP客戶端收到B的確認(rèn)后,還要向B給出確認(rèn)。ACK=1。這個(gè)報(bào)文段可以攜帶數(shù)據(jù),但如果不攜帶數(shù)據(jù),不消耗序號,這是TCP連接已建立
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司每月生日會策劃方案
- 2025年職業(yè)教育與成人繼續(xù)教育專業(yè)能力考核試題及答案
- 2025年醫(yī)學(xué)影像技術(shù)考試試卷及答案
- 2025年社會保障與就業(yè)考試題及答案
- 畜禽糞污資源化技術(shù)-洞察及研究
- 2025年教育信息化與學(xué)習(xí)平臺構(gòu)建考試試卷及答案
- 2025年環(huán)境工程師資格考試試卷及答案
- 2025年廣告與傳播專業(yè)考試試題及答案
- 2024年度浙江省二級造價(jià)工程師之建設(shè)工程造價(jià)管理基礎(chǔ)知識提升訓(xùn)練試卷B卷附答案
- 2024年度浙江省二級注冊建筑師之法律法規(guī)經(jīng)濟(jì)與施工題庫附答案(基礎(chǔ)題)
- (完整版)傳熱學(xué)期末考試試題
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹脂耐腐蝕立式貯罐
- Python數(shù)據(jù)分析與數(shù)據(jù)挖掘 課件 第6、7章 Pandas基礎(chǔ)與應(yīng)用、Matplotlib
- 玻璃體手術(shù)并發(fā)癥的預(yù)防及處理
- 2023年醫(yī)學(xué)高級職稱-中醫(yī)肛腸(醫(yī)學(xué)高級)考試歷年高頻考點(diǎn)試題含答案
- 爬架拆除技術(shù)交底
- pergeos軟件教程評價(jià)許可介紹
- 密封條范文模板(A4打印版)
- 出租車 專業(yè)部分考核試題 城市客運(yùn)企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核基礎(chǔ)題庫
- GB/T 9634.3-2002鐵氧體磁心表面缺陷極限導(dǎo)則第3部分:ETD和E形磁心
- GB/T 8478-2008鋁合金門窗
評論
0/150
提交評論