版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十九講 可靠數(shù)據(jù)傳輸與TCP協(xié)議1可靠數(shù)據(jù)傳輸與TCP協(xié)議本講內(nèi)容可靠數(shù)據(jù)傳輸連接管理傳輸控制協(xié)議TCP報(bào)文格式TCP傳輸特性TCP流量控制TCP定時(shí)器設(shè)定基本要求熟練掌握連接管理掌握可靠數(shù)據(jù)傳輸熟練掌握TCP協(xié)議閱讀1 6.1、6.23 3.4.1、3.4.22可靠數(shù)據(jù)傳輸?shù)姆?wù)模式與實(shí)現(xiàn)AB發(fā)送進(jìn)程接收進(jìn)程可靠通道接收進(jìn)程AB發(fā)送進(jìn)程packet不可靠通道可靠數(shù)據(jù)傳輸協(xié)議(發(fā)送)可靠數(shù)據(jù)傳輸協(xié)議(接收)packet應(yīng)用層傳輸層網(wǎng)絡(luò)層rdt_send()deliver_data()udt_send()rdt_rcv()rdt: reliable data transferudt: unre
2、liable data transfer3基于可靠通道的可靠數(shù)據(jù)傳輸rdt1.0假設(shè)底層網(wǎng)絡(luò)提供可靠數(shù)據(jù)傳輸服務(wù)接收端有能力及時(shí)接收數(shù)據(jù)特性Data與packet相同無需反饋機(jī)制packet=make_pkt(data)udt_send(packet)rdt_send(data)Wait for call from above發(fā)送端initialWait for call from belowextract (packet, data)deliver_data (data)rdt_rcv (packet)接收端initialEventactions4基于不可靠通道的可靠數(shù)據(jù)傳輸(1)rdt2.
3、0假設(shè)報(bào)文在傳輸過程中可能出錯(cuò)報(bào)文在傳輸過程中不會(huì)丟失ACK和NAK在傳輸過程中不會(huì)出錯(cuò)新增三種功能差錯(cuò)檢測(cè)(軟件校驗(yàn)和、硬件循環(huán)碼)接收端反饋(ACK、NAK)重發(fā)機(jī)制isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò)5基于不可靠通道的可靠數(shù)據(jù)傳輸(1)Wait for call from above發(fā)送端Wait for ACK or NAKudt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)sndpkt=make_pkt(data,ch
4、ecksum)udt_send(sndpkt)rdt_send(data)rdt_rcv(rcvpkt)&isACK(rcvpkt)extract (rcvpkt, data)deliver_data (data)sndpkt=make_pkt(ACK)udt_send(sndpkt)rdt_rcv (rcvpkt)¬corrupt(rcvpkt)接收端Wait for call from belowrdt_rcv(rcvpkt)&currupt(rcvpkt)sndpkt=make_pkt(NAK)udt_send(sndpkt)6基于不可靠通道的可靠數(shù)據(jù)傳輸(2)rdt2.1假設(shè)報(bào)文
5、在傳輸過程中可能出錯(cuò)ACK和NAK也有可能出錯(cuò)ACK和NAK不會(huì)丟失isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò)notcorrupt(rcvpkt):收到的報(bào)文無措7基于不可靠通道的可靠數(shù)據(jù)傳輸(2)rdt2.1發(fā)送端sndpkt=make_pkt (0,data,checksum)udt_send(sndpkt)rdt_send(data)Wait for ACK orNAK 0Wait for ACK orNAK 1udt_send(sndpkt)rdt_rcv(rcv
6、pkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt)sndpkt=make_pkt (1,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)Wait for Call 1 fromaboverdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt)Wait for call from ab
7、ove8基于不可靠通道的可靠數(shù)據(jù)傳輸(2)rtd2.1接收端sndpkt=make_pkt(ACK,checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq0(rcvpkt)Wait for 1 frombelowrdt_rcv(rcvpkt)&corrupt(rcvpkt)extract(rcvpkt,data)deliver_data(data)Sndpkt=make_pk(ACK, checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_s
8、eq0(rcvpkt)sndpkt=make_pkt(NAK,checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pk(ACK, checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)Wait for 0 from belowsndpkt=make_pkt(NAK,checksum)udt_send(sndpkt)sndpkt=make_
9、pkt(ACK,checksum)udt_send(andpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)9基于不可靠通道的可靠數(shù)據(jù)傳輸(3)rdt2.2假設(shè)報(bào)文在傳輸過程中可能出錯(cuò)ACK和NAK傳輸可能出錯(cuò)ACK和NAK可能丟失isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò)notcorrupt(rcvpkt):收到的報(bào)文無措10基于不可靠通道的可靠數(shù)據(jù)傳輸(3)rtd2.2發(fā)送端sndpkt=make_pkt (
10、0,data,checksum)udt_send(sndpkt)rdt_send(data)Wait for ACK 0Wait for ACK 1udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isACK(rcvpkt,1)rdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt)sndpkt=make_pkt (1,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isN
11、AK(rcvpkt,0)Wait for Call 1 fromaboverdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt,1)Wait for call 0 from above11基于不可靠通道的可靠數(shù)據(jù)傳輸(3)rtd2.2接收端udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|has_seq0(rcvpkt)Wait for 1 frombelowextract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,0,checksum)udt_se
12、nd(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq0(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,1, checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)Wait for 0 from belowudt_send(andpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|has_seq1(rcvpkt)12采用回退N協(xié)議的可靠數(shù)據(jù)傳輸
13、增加三類事件上層調(diào)用過程:是否成功取決于當(dāng)前窗口大小收到ACK的處理:采用累計(jì)確認(rèn)技術(shù)超時(shí)事件:重傳所有的報(bào)文已確認(rèn)未確認(rèn)未發(fā)送不可用basenext segnum窗口大小Ngetacknum():從報(bào)文中提取確認(rèn)號(hào);hasseqnum():驗(yàn)證序號(hào)是否正確;start_timer:?jiǎn)?dòng)計(jì)時(shí)器;stop_timer:停止其時(shí)器;13采用回退N協(xié)議的可靠數(shù)據(jù)傳輸WaitIf(nextseqnumbase+N) sndpktnextseqnum=make_pkt(nextseqnum,data,checksum) udt_send(sndpktnextseqnum) if(base=nextseq
14、num) start_timer nextseqnum+ else refuse_data(data)rdt_send(data)start_timerudt_send(sndpktbase)udt_send(sndpktbase+1)udt_send(sndpktnextseqnum-1)timeoutbase=1nextseqnum=1rdt_rcv(rcvpkt)&corrupt(rcvpkt)base=getacknum(rcvpkt)+1If(base=nextseqnum) stop_timerelse start_timerrdt_rcv(rcvpkt)¬corrupt(r
15、cvpkt)發(fā)送端14采用回退N協(xié)議的可靠數(shù)據(jù)傳輸Waitextract(rcvpkt,data)deliver_data(data)sndpktnextseqnum=make_pkt(expectedseqnum,ACK,checksum)udt_send(sndpkt)expectedseqnum+rdt_rcv(rcvpkt) ¬corrupt(rcvpkt) &hasseqnum(rcvpkt,expectedseqnum)expectedseqnum=1sendpkt=make_pkt(0,ACK,checksum)接收端udt_send(sndpkt)defaut15每一端確
16、保其他端的存在允許兩端協(xié)商參數(shù)觸發(fā)傳輸實(shí)體資源的分配連接建立傳輸層連接模式面向連接無連接與網(wǎng)絡(luò)層虛電路的區(qū)別網(wǎng)絡(luò)層的虛電路由每個(gè)交換機(jī)上的VC表項(xiàng)維護(hù);傳輸層的連接僅由兩個(gè)主機(jī)上的傳輸實(shí)體維護(hù);根據(jù)服務(wù)模式分別處理16基于可靠網(wǎng)絡(luò)服務(wù)的連接建立“二次握手”發(fā)起連接請(qǐng)求的傳輸實(shí)體向另一方發(fā)送一個(gè)SYN請(qǐng)求;對(duì)方傳輸實(shí)體將該請(qǐng)求排入隊(duì)列,直到TS用戶發(fā)出Open;傳輸實(shí)體中斷或向TS用戶發(fā)信號(hào)通知到達(dá)一個(gè)請(qǐng)求被掛起;17CLOSEDCLOSEDLISTENCLOSE WAITSYN SENTFIN WAIT被動(dòng)打開Close Close 收到SYN收到SYN發(fā)送SYN收到FIN收到FIN Clos
17、e發(fā)送FIN Close 發(fā)送FINESTAB采用二次握手的連接建立過程事件動(dòng)作主動(dòng)打開發(fā)送SYN18基于不可靠網(wǎng)絡(luò)服務(wù)的連接建立可能發(fā)生的錯(cuò)誤情況連接發(fā)起方的SYN丟失連接接受方的應(yīng)答SYN丟失出現(xiàn)重復(fù)SYN的情況A發(fā)起的SYN被延遲B的響應(yīng)丟失B的響應(yīng)被延遲SYN重傳計(jì)時(shí)器延遲或重復(fù)數(shù)據(jù)會(huì)影響連接的建立途徑:維護(hù)狀態(tài)信息19關(guān)閉連接SYNSYNSN0SN1SN2SYNSYNSN0SN1SN2B接受并確認(rèn)A發(fā)起連接A打開新連接接受已廢段SN2因重復(fù)而丟棄合法SN2解決辦法:每當(dāng)啟動(dòng)新連接時(shí)采用不同的序號(hào)ABA開始傳輸序號(hào)固定從0開始對(duì)連接的影響B(tài)接受并確認(rèn)A開始傳輸20SYN i廢SYN i
18、到達(dá);B響應(yīng);SYN kSYN jSN k+1B丟棄重復(fù)SYN;因?yàn)閬y序B拒收段現(xiàn)在兩邊認(rèn)為合法連接已存在解決辦法:每一邊都顯式確認(rèn)對(duì)方的SYN和序號(hào)過時(shí)SYN對(duì)連接的影響ABA發(fā)起SYN;21SYNxSYNy, ACKxSNx, ACKyB接受并確認(rèn)A確認(rèn)并開始傳輸三次握手的連接建立ABA發(fā)起連接B接收數(shù)據(jù)通信兩端要保持有關(guān)連接的所有狀態(tài)信息。一旦連接建好后兩個(gè)傳輸實(shí)體便可用任何滑動(dòng)窗口協(xié)議實(shí)現(xiàn)流量控制;22SYN xSYN y, ACK xREJECT, ACK y廢SYN到達(dá)B接受并確認(rèn)A拒絕B的連接三次握手對(duì)重復(fù)SYN的處理AB23SYN iSYN k, ACK pA發(fā)起連接廢SYN到
19、達(dá)A拒絕REJECT, ACK kB接受并確認(rèn)SYN j, ACK iA確認(rèn)并開始傳輸SN i, ACK jAB三次握手對(duì)重復(fù)SYN的處理24連接建立初始序號(hào)的選擇主機(jī)崩潰時(shí)所有保持的有關(guān)連接狀態(tài)信息全部失去;重新建立的連接必須采用不受之前報(bào)文影響的序號(hào);基于時(shí)鐘方法每臺(tái)機(jī)器的始終采用二進(jìn)制計(jì)數(shù)器的形式;連接建立時(shí)用時(shí)鐘的低k位作為初始序號(hào);解決方法確保兩個(gè)序號(hào)相同的報(bào)文永遠(yuǎn)不會(huì)同時(shí)有效;主機(jī)恢復(fù)后等待T秒;限制對(duì)序號(hào)的使用;T是報(bào)文生存期的倍數(shù),用來確保報(bào)文發(fā)出去T時(shí)間后不再存在。25序號(hào)時(shí)間崩潰后用序號(hào)70重啟T序號(hào)選擇的限制序號(hào)不能進(jìn)入禁止區(qū)域70t1=30s,創(chuàng)建一個(gè)連接并發(fā)送數(shù)據(jù);t
20、2=40s,發(fā)完序號(hào)為80的報(bào)文后,宕機(jī);t3=70s,主機(jī)恢復(fù)建立新連接,初始序號(hào)70;t4=85s,發(fā)出序號(hào)為80的報(bào)文;t5=某個(gè)時(shí)刻,序號(hào)為80的報(bào)文到達(dá)目的地可能因重復(fù)而被丟棄一個(gè)序號(hào)在被使用后T時(shí)間之內(nèi)不得再用262k-1時(shí)間序號(hào)TT實(shí)際使用序號(hào)發(fā)送速度對(duì)序號(hào)的影響發(fā)送太慢從上方進(jìn)入發(fā)送太快從下方進(jìn)入27SYN xSYN y, ACK xSN x, ACK yB接受并確認(rèn)A確認(rèn)并開始傳輸SN x+1FIN, ACK xB釋放連接數(shù)據(jù)丟失AB連接釋放可能導(dǎo)致數(shù)據(jù)丟失A發(fā)起連接?28可靠網(wǎng)絡(luò)服務(wù)之上連接釋放非對(duì)稱方式連接的任何一方均可向?qū)Ψ桨l(fā)釋放連接請(qǐng)求;一旦該請(qǐng)求到達(dá)對(duì)方連接即告終止
21、;對(duì)稱方式釋放連接后不能發(fā)數(shù)據(jù)但仍能接收;只有在雙方均釋放連接后連接才算徹底終止;29最后發(fā)出信息的藍(lán)軍指揮官永遠(yuǎn)無法確定信息是否安全到達(dá)對(duì)方。釋放連接兩軍對(duì)壘問題藍(lán)軍是否存在獲勝的機(jī)會(huì)?30不可靠網(wǎng)絡(luò)服務(wù)之上連接釋放三次握手方式釋放連接FINA發(fā)FIN啟動(dòng)定時(shí)器B發(fā)FIN啟動(dòng)定時(shí)器FIN, ACK釋放連接ACKA發(fā)ACK釋放連接AB31FINA發(fā)FIN啟動(dòng)定時(shí)器B確認(rèn)并發(fā)FIN啟動(dòng)定時(shí)器FIN,ACK釋放連接ACKA發(fā)ACK(超時(shí))釋放連接AB三次握手釋放對(duì)最后確認(rèn)丟失的處理32FINA發(fā)FIN啟動(dòng)定時(shí)器B發(fā)FIN啟動(dòng)定時(shí)器FIN釋放連接ACKA發(fā)ACK釋放連接A重發(fā)FIN啟動(dòng)定時(shí)器FINB
22、發(fā)FIN啟動(dòng)定時(shí)器FINAB三次握手釋放對(duì)響應(yīng)丟失的處理33FINA發(fā)FIN啟動(dòng)定時(shí)器B發(fā)FIN啟動(dòng)定時(shí)器FIN(N次超時(shí)) 釋放連接(超時(shí))釋放連接A重發(fā)FIN啟動(dòng)定時(shí)器FINAB三次握手釋放對(duì)響應(yīng)確認(rèn)均丟的處理34傳輸控制協(xié)議(TCP)TCP定義了交換數(shù)據(jù)信息和確認(rèn)信息的格式;確保數(shù)據(jù)正確傳送的過程;TCP規(guī)定了如何識(shí)別給定機(jī)器上的多個(gè)目的進(jìn)程;如何處理丟失或重復(fù)等差錯(cuò)情況;如何初始化一個(gè)數(shù)據(jù)流傳輸;如何協(xié)商結(jié)束數(shù)據(jù)流;TCP( Transmission Control Protocol):可靠的面向連接的端-端字節(jié)流傳輸協(xié)議。RFC793RFC1122RFC1323RFC2018RFC2
23、58135TCP的協(xié)議特性面向連接的只在兩個(gè)端系統(tǒng)上保持連接狀態(tài);不同于TDM/FDM;不同于虛電路;連接是全雙工的可同時(shí)雙向傳送數(shù)據(jù);連接是點(diǎn)-點(diǎn)的只能一對(duì)一通信(不支持一對(duì)多通信)有緩沖的發(fā)送無結(jié)構(gòu)的數(shù)據(jù)流36TCP的協(xié)議特性(續(xù))D(512B)C(512B)B(512B)A(512B)TCPTCPA(512B)B(512B)C(512B)D(512B)CD(1024B)AB(1024B)ABCD(2048B)無結(jié)構(gòu)的數(shù)據(jù)流?socketsocketTCPsendbufferTCPreceivebuffer端-端之間不保留消息邊界;應(yīng)用程序通過socket發(fā)送的數(shù)據(jù)被緩存在send buf
24、fer中,何時(shí)從本地發(fā)出取決于具體的TCP實(shí)現(xiàn);37Data (optional)TCP報(bào)文格式URGACKPSHRSTSYNFINunusedHeaderlengthReceive windowUrgent data pointer ChecksumOptions (0 or more words)Acknowledgement numberDest. Port#Source port#Sequence numberTCP報(bào)文固定頭長(zhǎng)20字節(jié)38TCP報(bào)文主要字段Source/Dest. Port# (16b)用于多路復(fù)用和分用Sequence number/ack. Number (32b
25、)用于可靠的數(shù)據(jù)傳送Header length (4b)TCP頭以32位字計(jì)的長(zhǎng)度TCP頭的長(zhǎng)度可變Receive window (16b)用于流量控制;指出接收端愿意接收的字節(jié)數(shù);Checksum (16b)Urgent data pointer(16b)指向urgent數(shù)據(jù)的最后一個(gè)字節(jié);39標(biāo)志位 意義URGACKPSHRSTSYNFIN緊急指針字段有效確認(rèn)字段有效該段請(qǐng)求緊迫操作重置連接請(qǐng)求建立連接同步序號(hào)連接釋放請(qǐng)求TCP報(bào)文主要字段(續(xù))Options收發(fā)雙方用來協(xié)商MSS、窗口擴(kuò)展因子、時(shí)間戳等;Data應(yīng)用層數(shù)據(jù)受最大段長(zhǎng)MSS限制;40TCP的MSS(maximum segm
26、ent size)TCP segmentTCP協(xié)議交換的數(shù)據(jù)單元(TPDU)最大段長(zhǎng)(MSS)MSS太小降低網(wǎng)絡(luò)利用率MSS太大降低網(wǎng)絡(luò)性能MSS的選擇連接兩端處于同一物理網(wǎng)絡(luò)選擇的MSS應(yīng)使IP數(shù)據(jù)報(bào)的大小與網(wǎng)絡(luò)MTU適應(yīng);連接兩端處于不同物理網(wǎng)絡(luò)設(shè)置為途徑網(wǎng)絡(luò)的最小MTU或省缺值(536字節(jié));連接兩端必須協(xié)商MSSSegment獨(dú)立確認(rèn)Fragment不能獨(dú)立確認(rèn)Fragment不能獨(dú)立重傳41TCP的段編號(hào)以及確認(rèn)編號(hào)TCP為每個(gè)字節(jié)編號(hào)TCP確認(rèn)號(hào)為等待的下一個(gè)字節(jié)TCP采用累計(jì)確認(rèn)(cumulative ack. )TCP緩存到達(dá)的亂序數(shù)據(jù)01ii+1200500900第一段數(shù)據(jù)第
27、二段數(shù)據(jù)確認(rèn)號(hào)未收到未收到面向連接的TCP如何接收亂序數(shù)據(jù)?TCP的RFC將如何處理留給實(shí)現(xiàn)TCP的程序員自己決定。42TCP的urgent發(fā)送和push接收緊迫數(shù)據(jù)的發(fā)送URG強(qiáng)迫TCP發(fā)送當(dāng)前數(shù)據(jù)流中的字節(jié);URG指針指出urgent數(shù)據(jù)所在;TCP將PSH位置1使接收端執(zhí)行緊迫操作;帶外數(shù)據(jù)允許發(fā)方將數(shù)據(jù)標(biāo)為緊急的收方收到緊急數(shù)據(jù)后通知相應(yīng)的應(yīng)用程序進(jìn)入“緊急方式”當(dāng)應(yīng)用程序希望不必等待另一端把數(shù)據(jù)流接收完畢后就能發(fā)送out of band數(shù)據(jù)。43TCP的窗口擴(kuò)大因子*TCP報(bào)文的options格式選項(xiàng)表結(jié)束( kind=0)無操作( kind=1)最大段長(zhǎng)( kind= 2)窗口擴(kuò)大
28、因子( kind=3)Kind=2Length=4MSSKind=3Length=3移位數(shù)0/1當(dāng)網(wǎng)絡(luò)具備高帶寬、高延遲特點(diǎn)時(shí),一次發(fā)送64KB字節(jié)可能帶來發(fā)送的低效率。TCP用窗口擴(kuò)大選項(xiàng)來加大每次發(fā)送的數(shù)據(jù)量。假設(shè)線路帶寬T1=45Mbps;報(bào)文長(zhǎng)度64KB; T發(fā)送時(shí)間=12ms; T往返延遲=50ms;發(fā)送效率約為1/444TCP的窗口擴(kuò)大因子(續(xù))*移位數(shù)值表示窗口大小擴(kuò)大的位數(shù)(至多14)允許窗口大小從216擴(kuò)大到230個(gè)字節(jié)收到窗口通告時(shí)要左移才能獲得實(shí)際的窗口大小發(fā)送窗口通告時(shí)要右移該選項(xiàng)必須在連接建立時(shí)協(xié)商每個(gè)方向上的擴(kuò)大因子可不同45TCP的連接建立被動(dòng)打開與主動(dòng)打開雙方T
29、CP軟件模塊進(jìn)行通信來建立和檢驗(yàn)一個(gè)連接;建立連接TCP的連接建立采用三次握手方法;TCP采用基于時(shí)鐘的序號(hào)產(chǎn)生方案(每4us)雙方協(xié)商初始序號(hào);ABSYNxSYNy, ACKx+1SYNx+1, ACKy+1SYN用于初始化連接時(shí),segment只包含一個(gè)字節(jié)的數(shù)據(jù)。46FINxACKy+1ACKx+1FINy, ACKx+1關(guān)閉連接通知應(yīng)用程序關(guān)閉連接TCP的連接釋放TCP協(xié)議用改進(jìn)的三次握手來關(guān)閉連接;每個(gè)方向連接單獨(dú)釋放;超時(shí)值設(shè)定為2倍的MSL;AB在2*MSL時(shí)間內(nèi)未收到FIN的確認(rèn),則FIN發(fā)送端直接釋放連接。47主動(dòng)關(guān)閉被動(dòng)關(guān)閉CLOSEDCLOSEDCLOSE WAITFIN
30、 WAIT1ACK/ -SYN+ACK/ACKLISTENCONNECT/SYNSYN/SYN+ACKESTABFIN WAIT2CLOSINGTIMEDWAITSYN RCVDSYNSENTCLOSE/FINFIN/ACKACK/ -LASTACKCLOSE/FINFIN/ACKACK/ -timeout同時(shí)關(guān)閉被動(dòng)打開主動(dòng)打開TCP狀態(tài)機(jī)*FIN/ACKACK/ -48SYN SENT(主動(dòng)打開)LISTEN(被動(dòng)打開)SYN RCVDESTABESTABFIN WAIT1(主動(dòng)關(guān)閉)CLOSE WAIT(被動(dòng)關(guān)閉)FIN WAIT2TIMED WAITLAST ACKCLOSEDSYNiSYNj, ACKi+1ACKj+1FINmACKm+1FINnACKn+1連接建立和終止對(duì)應(yīng)的狀態(tài)*49空(4K) 2K應(yīng)用程序?qū)懭?K應(yīng)用程序?qū)懭?K阻塞應(yīng)用程序讀出2K2K2K 接收緩沖區(qū)TCP傳輸策略TCP采用大小動(dòng)態(tài)變化的滑動(dòng)窗口協(xié)議由接收端通過window size字段反饋當(dāng)前可接收的字節(jié)數(shù)Seq=0Ack=2048;Win=2048Seq=2048Ack=4096;Win=0Ack=4096;Win=2048應(yīng)用程序?qū)懭?K50TCP的重傳與確認(rèn)TCP采用累計(jì)確認(rèn)確認(rèn)容易產(chǎn)生;確認(rèn)丟失不一定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上海市技術(shù)轉(zhuǎn)讓合同樣本(2篇)
- 二零二五年度頭灶廚師食品安全聘用合同
- 2025保證借款合同版
- 2025律師的動(dòng)遷房買賣合同示范文本
- 激光加工設(shè)備租賃合同
- 2025年一線城市房屋租賃合同(三篇)
- 二零二五年度綠色建筑設(shè)計(jì)與施工承包合同3篇
- 商品房買賣合同范本簡(jiǎn)單4
- 2025國(guó)際快遞業(yè)務(wù)合同范本
- 二零二五年度電梯安裝與智慧城市建設(shè)項(xiàng)目合同2篇
- 春季開學(xué)安全第一課
- 課題申報(bào)書:數(shù)智賦能高職院校思想政治理論課“金課”實(shí)踐路徑研究
- H3CNE認(rèn)證考試題庫(kù)官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
- ??停?024年智能制造校園招聘白皮書
- 海員的營(yíng)養(yǎng)-1315醫(yī)學(xué)營(yíng)養(yǎng)霍建穎等講解
- 2023年廣東省招聘事業(yè)單位人員考試真題及答案
- 幼兒平衡車訓(xùn)練課程設(shè)計(jì)
- 梁山伯與祝英臺(tái)小提琴譜樂譜
- 我國(guó)全科醫(yī)生培訓(xùn)模式
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論