




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉1 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉2r本講內(nèi)容本講內(nèi)容可靠數(shù)據(jù)傳輸可靠數(shù)據(jù)傳輸連接管理連接管理傳輸控制協(xié)議傳輸控制協(xié)議TCP報(bào)文格式報(bào)文格式TCP傳輸特性傳輸特性TCP流量控制流量控制TCP定時(shí)器設(shè)定定時(shí)器設(shè)定r基本要求基本要求熟練掌握連接管理熟練掌握連接管理掌握可靠數(shù)據(jù)傳輸掌握可靠數(shù)據(jù)傳輸熟練掌握熟練掌握TCP協(xié)議協(xié)議r 閱讀閱讀1 6.1、6.23 3.4.1、3.4.
2、2 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉3ABABpacket可靠數(shù)據(jù)傳輸可靠數(shù)據(jù)傳輸協(xié)議(發(fā)送)協(xié)議(發(fā)送)可靠數(shù)據(jù)傳輸可靠數(shù)據(jù)傳輸協(xié)議(接收)協(xié)議(接收)packet應(yīng)用層應(yīng)用層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層rdt_send()deliver_data()udt_send()rdt_rcv() http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉4rrdt1.0假設(shè)假設(shè)底層網(wǎng)絡(luò)提供可靠底層網(wǎng)絡(luò)提供可靠數(shù)據(jù)傳輸服務(wù)數(shù)據(jù)傳輸服務(wù)接收端有能
3、力及時(shí)接收端有能力及時(shí)接收數(shù)據(jù)接收數(shù)據(jù)r特性特性Data與與packet相同相同無需反饋機(jī)制無需反饋機(jī)制packet=make_pkt(data)udt_send(packet)rdt_send(data)發(fā)送端發(fā)送端initialextract (packet, data)deliver_data (data)rdt_rcv (packet)接收端接收端initial http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉5rrdt2.0假設(shè)假設(shè)報(bào)文在傳輸過程中可能出錯(cuò)報(bào)文在傳輸過程中可能出錯(cuò)報(bào)文在傳輸過程中不會(huì)丟失報(bào)文
4、在傳輸過程中不會(huì)丟失ACK和和NAK在傳輸過程中不會(huì)出錯(cuò)在傳輸過程中不會(huì)出錯(cuò)r新增三種功能新增三種功能差錯(cuò)檢測(cè)(軟件校驗(yàn)和、硬件循環(huán)碼差錯(cuò)檢測(cè)(軟件校驗(yàn)和、硬件循環(huán)碼)接收端反饋(接收端反饋(ACK、NAK)重發(fā)機(jī)制重發(fā)機(jī)制isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò):收到的報(bào)文在傳輸過程中出錯(cuò) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉6發(fā)送端發(fā)
5、送端udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)sndpkt=make_pkt(data,checksum)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)接收端接收端rdt_rcv(rcvpkt)&currupt(rcvpkt
6、)sndpkt=make_pkt(NAK)udt_send(sndpkt) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉7rrdt2.1假設(shè)假設(shè)報(bào)文在傳輸過程中可能出錯(cuò)報(bào)文在傳輸過程中可能出錯(cuò)ACK和和NAK也有可能出錯(cuò)也有可能出錯(cuò)ACK和和NAK不會(huì)丟失不會(huì)丟失isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò):收到的報(bào)文在傳輸過程中出錯(cuò)notcorru
7、pt(rcvpkt):收到的報(bào)文無措:收到的報(bào)文無措 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉8rdt2.1發(fā)送端發(fā)送端sndpkt=make_pkt (0,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt)sndpkt=make_p
8、kt (1,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉9rtd2.1接收端接收端sndpkt=make_pkt(ACK,checksum)udt_send(sndpkt)rdt_rcv
9、(rcvpkt)¬corrupt(rcvpkt)&has_seq0(rcvpkt)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_seq0(rcvpkt)sndpkt=make_pkt(NAK,checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corru
10、pt(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pk(ACK, checksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)sndpkt=make_pkt(NAK,checksum)udt_send(sndpkt)sndpkt=make_pkt(ACK,checksum)udt_send(andpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt
11、) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉10rrdt2.2假設(shè)假設(shè)報(bào)文在傳輸過程中可能出錯(cuò)報(bào)文在傳輸過程中可能出錯(cuò)ACK和和NAK傳輸可能出錯(cuò)傳輸可能出錯(cuò)ACK和和NAK可能丟失可能丟失isACK(rcvpkt):收到的報(bào)文是肯定確認(rèn):收到的報(bào)文是肯定確認(rèn)ACKisNAK(rcvpkt):收到的報(bào)文是否定確認(rèn):收到的報(bào)文是否定確認(rèn)NAKcorrupt(rcvpkt):收到的報(bào)文在傳輸過程中出錯(cuò):收到的報(bào)文在傳輸過程中出錯(cuò)notcorrupt(rcvpkt):收到的報(bào)文無措:收到的報(bào)文無措 http:/ C
12、opyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉11rtd2.2發(fā)送端發(fā)送端sndpkt=make_pkt (0,data,checksum)udt_send(sndpkt)rdt_send(data)udt_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(snd
13、pkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt,0)rdt_rcv(rcvpkt)¬corrupt(rcvpkt&isACK(rcvpkt,1) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉12rtd2.2接收端接收端udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|has_seq0(rcvpkt)extract(rc
14、vpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,0,checksum)udt_send(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)udt_send(andpkt)rdt_r
15、cv(rcvpkt)&(corrupt(rcvpkt)|has_seq1(rcvpkt) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉13r增加三類事件增加三類事件上層調(diào)用過程:是否成功取決于當(dāng)前窗口大小上層調(diào)用過程:是否成功取決于當(dāng)前窗口大小收到收到ACK的處理:采用累計(jì)確認(rèn)技術(shù)的處理:采用累計(jì)確認(rèn)技術(shù)超時(shí)事件:重傳所有的報(bào)文超時(shí)事件:重傳所有的報(bào)文basenext segnum窗口大小窗口大小Ngetacknum():從報(bào)文中提取確認(rèn)號(hào);:從報(bào)文中提取確認(rèn)號(hào);hasseqnum():驗(yàn)證序號(hào)是否正確;
16、:驗(yàn)證序號(hào)是否正確;start_timer:?jiǎn)?dòng)計(jì)時(shí)器;:?jiǎn)?dòng)計(jì)時(shí)器;stop_timer:停止其時(shí)器;:停止其時(shí)器; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉14If(nextseqnumbase+N) sndpktnextseqnum=make_pkt(nextseqnum,data,checksum) udt_send(sndpktnextseqnum) if(base=nextseqnum) start_timer nextseqnum+ else refuse_data(data)rdt_send(
17、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(rcvpkt)發(fā)送端發(fā)送端 http:/ Copyright 2006 YAN Wei. All righ
18、ts reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉15extract(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)defa
19、ut http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉16m每一端確保其他端的存在每一端確保其他端的存在m允許兩端協(xié)商參數(shù)允許兩端協(xié)商參數(shù)m觸發(fā)傳輸實(shí)體資源的分配觸發(fā)傳輸實(shí)體資源的分配r傳輸層連接模式傳輸層連接模式面向連接面向連接無連接無連接r與網(wǎng)絡(luò)層虛電路的區(qū)別與網(wǎng)絡(luò)層虛電路的區(qū)別網(wǎng)絡(luò)層的虛電路由每個(gè)交換機(jī)上的網(wǎng)絡(luò)層的虛電路由每個(gè)交換機(jī)上的VC表項(xiàng)維護(hù);表項(xiàng)維護(hù);傳輸層的連接僅由兩個(gè)主機(jī)上的傳輸實(shí)體維護(hù);傳輸層的連接僅由兩個(gè)主機(jī)上的傳輸實(shí)體維護(hù);根據(jù)服務(wù)模根據(jù)服務(wù)模式分別處理式分別處理 http:/ Copyrig
20、ht 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉17r“二次握手二次握手”發(fā)起連接請(qǐng)求的傳輸實(shí)體向另一方發(fā)送一個(gè)發(fā)起連接請(qǐng)求的傳輸實(shí)體向另一方發(fā)送一個(gè)SYN請(qǐng)求請(qǐng)求;對(duì)方傳輸實(shí)體將該請(qǐng)求排入隊(duì)列,直到對(duì)方傳輸實(shí)體將該請(qǐng)求排入隊(duì)列,直到TS用戶用戶發(fā)出發(fā)出Open;傳輸實(shí)體中斷或向傳輸實(shí)體中斷或向TS用戶發(fā)信號(hào)通知到達(dá)一個(gè)用戶發(fā)信號(hào)通知到達(dá)一個(gè)請(qǐng)求被掛起;請(qǐng)求被掛起; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉18被動(dòng)打開被動(dòng)打開Close Close 收到收到S
21、YN收到收到SYN發(fā)送發(fā)送SYN收到收到FIN收到收到FIN Close發(fā)送發(fā)送FIN Close 發(fā)送發(fā)送FIN主動(dòng)打開主動(dòng)打開發(fā)送發(fā)送SYN http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉19r可能發(fā)生的錯(cuò)誤情況可能發(fā)生的錯(cuò)誤情況連接發(fā)起方的連接發(fā)起方的SYN丟失丟失連接接受方的應(yīng)答連接接受方的應(yīng)答SYN丟失丟失出現(xiàn)重復(fù)出現(xiàn)重復(fù)SYN的情況的情況A發(fā)起的發(fā)起的SYN被延遲被延遲B的響應(yīng)丟失的響應(yīng)丟失B的響應(yīng)被延遲的響應(yīng)被延遲SYN重傳計(jì)時(shí)器重傳計(jì)時(shí)器延遲或重復(fù)數(shù)據(jù)會(huì)延遲或重復(fù)數(shù)據(jù)會(huì)影響連接的建立影響連接的建立途
22、徑:維護(hù)狀態(tài)信息途徑:維護(hù)狀態(tài)信息 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉20關(guān)閉連接關(guān)閉連接SYNSYNSN0SN1SN2SYNSYNSN0SN1SN2B接受并確認(rèn)接受并確認(rèn)A發(fā)起連接發(fā)起連接A打開新連接打開新連接接受已廢段接受已廢段SN2因重復(fù)而丟棄合法因重復(fù)而丟棄合法SN2ABA開始傳輸開始傳輸B接受并確認(rèn)接受并確認(rèn)A開始傳輸開始傳輸 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉21SYN i廢廢SYN i到達(dá);到達(dá);B
23、響應(yīng);響應(yīng);SYN kSYN jSN k+1B丟棄重復(fù)丟棄重復(fù)SYN;因?yàn)閬y序因?yàn)閬y序B拒收段拒收段現(xiàn)在兩邊認(rèn)為合現(xiàn)在兩邊認(rèn)為合法連接已存在法連接已存在解決辦法:每一邊都顯式解決辦法:每一邊都顯式確認(rèn)對(duì)方的確認(rèn)對(duì)方的SYN和序號(hào)和序號(hào)過時(shí)過時(shí)SYN對(duì)連接的影響對(duì)連接的影響ABA發(fā)起發(fā)起SYN; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉22SYNxSYNy, ACKxSNx, ACKyB接受接受并確認(rèn)并確認(rèn)A確認(rèn)并確認(rèn)并開始傳輸開始傳輸ABA發(fā)起連接發(fā)起連接B接收接收數(shù)據(jù)數(shù)據(jù)一旦連接建好后兩個(gè)傳輸一旦連接建好后
24、兩個(gè)傳輸實(shí)體便可用任何滑動(dòng)窗口實(shí)體便可用任何滑動(dòng)窗口協(xié)議實(shí)現(xiàn)流量控制;協(xié)議實(shí)現(xiàn)流量控制; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉23SYN xSYN y, ACK xREJECT, ACK y廢廢SYN到達(dá)到達(dá)B接受并確認(rèn)接受并確認(rèn)A拒絕拒絕B的連接的連接AB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉24SYN iSYN k, ACK pA發(fā)起連接發(fā)起連接廢廢SYN到達(dá)到達(dá)A拒絕拒絕REJECT, ACK kB接受并確認(rèn)接
25、受并確認(rèn)SYN j, ACK iA確認(rèn)并確認(rèn)并開始傳輸開始傳輸SN i, ACK jAB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉25r主機(jī)崩潰時(shí)主機(jī)崩潰時(shí)所有保持的有關(guān)連接狀態(tài)信息全部失去;所有保持的有關(guān)連接狀態(tài)信息全部失去;重新建立的連接必須采用不受之前報(bào)文影響的序號(hào);重新建立的連接必須采用不受之前報(bào)文影響的序號(hào);r基于時(shí)鐘方法基于時(shí)鐘方法每臺(tái)機(jī)器的始終采用二進(jìn)制計(jì)數(shù)器的形式;每臺(tái)機(jī)器的始終采用二進(jìn)制計(jì)數(shù)器的形式;連接建立時(shí)用時(shí)鐘的低連接建立時(shí)用時(shí)鐘的低k位作為初始序號(hào);位作為初始序號(hào);r解決方法解決方法
26、確保兩個(gè)序號(hào)相同的報(bào)文永遠(yuǎn)不會(huì)同時(shí)有效;確保兩個(gè)序號(hào)相同的報(bào)文永遠(yuǎn)不會(huì)同時(shí)有效;主機(jī)恢復(fù)后等待主機(jī)恢復(fù)后等待T秒;秒;限制對(duì)序號(hào)的使用;限制對(duì)序號(hào)的使用; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉26序號(hào)序號(hào)時(shí)間時(shí)間崩潰后用序崩潰后用序號(hào)號(hào)70重啟重啟T序號(hào)不能序號(hào)不能進(jìn)入禁止進(jìn)入禁止區(qū)域區(qū)域70t1=30s,創(chuàng)建一個(gè)連,創(chuàng)建一個(gè)連接并發(fā)送數(shù)據(jù);接并發(fā)送數(shù)據(jù);t2=40s,發(fā)完序號(hào)為,發(fā)完序號(hào)為80的報(bào)文后,宕機(jī);的報(bào)文后,宕機(jī);t3=70s,主機(jī)恢復(fù)建,主機(jī)恢復(fù)建立新連接,初始序號(hào)立新連接,初始序號(hào)70;t
27、4=85s,發(fā)出序號(hào)為,發(fā)出序號(hào)為80的報(bào)文;的報(bào)文;t5=某個(gè)時(shí)刻,序號(hào)為某個(gè)時(shí)刻,序號(hào)為80的報(bào)文到達(dá)目的地可的報(bào)文到達(dá)目的地可能因重復(fù)而被丟棄能因重復(fù)而被丟棄一個(gè)序號(hào)在被一個(gè)序號(hào)在被使用后使用后T時(shí)間時(shí)間之內(nèi)不得再用之內(nèi)不得再用 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉272k-1時(shí)間時(shí)間序序號(hào)號(hào)TT實(shí)際使實(shí)際使用序號(hào)用序號(hào)發(fā)送太發(fā)送太慢從上慢從上方進(jìn)入方進(jìn)入發(fā)送太發(fā)送太快從下快從下方進(jìn)入方進(jìn)入 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大
28、學(xué) 計(jì)算機(jī)系 嚴(yán)偉28SYN xSYN y, ACK xSN x, ACK yB接受并確認(rèn)接受并確認(rèn)A確認(rèn)并確認(rèn)并開始傳輸開始傳輸SN x+1FIN, ACK xB釋放連接釋放連接數(shù)據(jù)丟失數(shù)據(jù)丟失ABA發(fā)起連接發(fā)起連接? http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉29r非對(duì)稱方式非對(duì)稱方式連接的任何一方均可向?qū)Ψ桨l(fā)釋放連接請(qǐng)求;連接的任何一方均可向?qū)Ψ桨l(fā)釋放連接請(qǐng)求;一旦該請(qǐng)求到達(dá)對(duì)方連接即告終止;一旦該請(qǐng)求到達(dá)對(duì)方連接即告終止;r對(duì)稱方式對(duì)稱方式釋放連接后不能發(fā)數(shù)據(jù)但仍能接收;釋放連接后不能發(fā)數(shù)據(jù)但仍能接收;
29、只有在雙方均釋放連接后連接才算徹底終止;只有在雙方均釋放連接后連接才算徹底終止; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉30最后發(fā)出信息的藍(lán)軍指揮官永遠(yuǎn)無最后發(fā)出信息的藍(lán)軍指揮官永遠(yuǎn)無法確定信息是否安全到達(dá)對(duì)方。法確定信息是否安全到達(dá)對(duì)方。藍(lán)軍是否藍(lán)軍是否存在獲勝存在獲勝的機(jī)會(huì)?的機(jī)會(huì)? http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉31r三次握手方式釋放連接三次握手方式釋放連接FINA發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器B發(fā)發(fā)FIN
30、啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FIN, ACK釋放連接釋放連接ACKA發(fā)發(fā)ACK釋放連接釋放連接AB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉32FINA發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器B確認(rèn)并發(fā)確認(rèn)并發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FIN,ACK釋放連接釋放連接ACKA發(fā)發(fā)ACK(超時(shí))(超時(shí))釋放連接釋放連接AB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉33FINA發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器B發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FIN釋放
31、連接釋放連接ACKA發(fā)發(fā)ACK釋放連接釋放連接A重發(fā)重發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FINB發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FINAB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉34FINA發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器B發(fā)發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FIN(N次超時(shí))次超時(shí)) 釋放連接釋放連接(超時(shí))(超時(shí))釋放連接釋放連接A重發(fā)重發(fā)FIN啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器FINAB http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉35rTCP定義了
32、定義了交換數(shù)據(jù)信息和確認(rèn)信息的格式;交換數(shù)據(jù)信息和確認(rèn)信息的格式;確保數(shù)據(jù)正確傳送的過程;確保數(shù)據(jù)正確傳送的過程;rTCP規(guī)定了規(guī)定了如何識(shí)別給定機(jī)器上的多個(gè)目的進(jìn)程;如何識(shí)別給定機(jī)器上的多個(gè)目的進(jìn)程;如何處理丟失或重復(fù)等差錯(cuò)情況;如何處理丟失或重復(fù)等差錯(cuò)情況;如何初始化一個(gè)數(shù)據(jù)流傳輸;如何初始化一個(gè)數(shù)據(jù)流傳輸;如何協(xié)商結(jié)束數(shù)據(jù)流;如何協(xié)商結(jié)束數(shù)據(jù)流; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉36r面向連接的面向連接的只在兩個(gè)端系統(tǒng)上保持連接狀態(tài);只在兩個(gè)端系統(tǒng)上保持連接狀態(tài);不同于不同于TDM/FDM;不同
33、于虛電路;不同于虛電路;r連接是全雙工的連接是全雙工的可同時(shí)雙向傳送數(shù)據(jù);可同時(shí)雙向傳送數(shù)據(jù);r連接是點(diǎn)連接是點(diǎn)-點(diǎn)的點(diǎn)的只能一對(duì)一通信(不支持一對(duì)多通信)只能一對(duì)一通信(不支持一對(duì)多通信)r有緩沖的發(fā)送有緩沖的發(fā)送r無結(jié)構(gòu)的數(shù)據(jù)流無結(jié)構(gòu)的數(shù)據(jù)流 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉37D(512B)C(512B)B(512B)A(512B)A(512B)B(512B)C(512B)D(512B)CD(1024B)AB(1024B)ABCD(2048B)?socketsocketTCPsendbuffer
34、TCPreceivebuffer端端-端之間不保留消息邊界;端之間不保留消息邊界;應(yīng)用程序通過應(yīng)用程序通過socket發(fā)送的數(shù)據(jù)被緩存在發(fā)送的數(shù)據(jù)被緩存在send buffer中,何時(shí)從本地發(fā)出取決于具體的中,何時(shí)從本地發(fā)出取決于具體的TCP實(shí)現(xiàn);實(shí)現(xiàn); http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉38Data (optional)URGACKPSHRSTSYNFINunusedHeaderlengthReceive windowUrgent data pointer ChecksumOptions (0 or
35、more words)Acknowledgement numberDest. Port#Source port#Sequence numberTCP報(bào)文固定報(bào)文固定頭長(zhǎng)頭長(zhǎng)20字節(jié)字節(jié) http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉39r Source/Dest. Port# (16b)用于多路復(fù)用和分用用于多路復(fù)用和分用r Sequence number/ack. Number (32b)用于可靠的數(shù)據(jù)傳送用于可靠的數(shù)據(jù)傳送r Header length (4b)TCP頭以頭以32位字計(jì)的長(zhǎng)度位字計(jì)的長(zhǎng)度TCP頭
36、的長(zhǎng)度可變頭的長(zhǎng)度可變r(jià) Receive window (16b)用于流量控制;指出接收端愿意接收的字節(jié)數(shù);用于流量控制;指出接收端愿意接收的字節(jié)數(shù);r Checksum (16b)r Urgent data pointer(16b)指向指向urgent數(shù)據(jù)的最后一個(gè)字節(jié)數(shù)據(jù)的最后一個(gè)字節(jié); http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉40標(biāo)志位標(biāo)志位 意義意義URGACKPSHRSTSYNFIN緊急指針字段有效緊急指針字段有效確認(rèn)字段有效確認(rèn)字段有效該段請(qǐng)求緊迫操作該段請(qǐng)求緊迫操作重置連接重置連接請(qǐng)求建立連接同
37、步序號(hào)請(qǐng)求建立連接同步序號(hào)連接釋放請(qǐng)求連接釋放請(qǐng)求r Options收發(fā)雙方用來協(xié)商收發(fā)雙方用來協(xié)商MSS、窗口擴(kuò)展因子、時(shí)間戳等;、窗口擴(kuò)展因子、時(shí)間戳等;r Data應(yīng)用層數(shù)據(jù)受最大段長(zhǎng)應(yīng)用層數(shù)據(jù)受最大段長(zhǎng)MSS限制;限制; http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉41rTCP segmentTCP協(xié)議交換的數(shù)據(jù)單元(協(xié)議交換的數(shù)據(jù)單元(TPDU)r最大段長(zhǎng)(最大段長(zhǎng)(MSS)MSS太小降低網(wǎng)絡(luò)利用率太小降低網(wǎng)絡(luò)利用率MSS太大降低網(wǎng)絡(luò)性能太大降低網(wǎng)絡(luò)性能rMSS的選擇的選擇連接兩端處于同一物理網(wǎng)絡(luò)連接兩
38、端處于同一物理網(wǎng)絡(luò)選擇的選擇的MSS應(yīng)使應(yīng)使IP數(shù)據(jù)報(bào)的大小與網(wǎng)絡(luò)數(shù)據(jù)報(bào)的大小與網(wǎng)絡(luò)MTU適應(yīng);適應(yīng);連接兩端處于不同物理網(wǎng)絡(luò)連接兩端處于不同物理網(wǎng)絡(luò)設(shè)置為途徑網(wǎng)絡(luò)的最小設(shè)置為途徑網(wǎng)絡(luò)的最小MTU或省缺值或省缺值(536字節(jié)字節(jié));連接兩端必須協(xié)商連接兩端必須協(xié)商MSSSegment獨(dú)立確認(rèn)獨(dú)立確認(rèn)Fragment不能獨(dú)立確認(rèn)不能獨(dú)立確認(rèn)Fragment不能獨(dú)立重傳不能獨(dú)立重傳 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉42r TCP為每個(gè)字節(jié)編號(hào)為每個(gè)字節(jié)編號(hào)r TCP確認(rèn)號(hào)為等待的下一個(gè)字節(jié)確認(rèn)號(hào)為等待的下
39、一個(gè)字節(jié)r TCP采用累計(jì)確認(rèn)(采用累計(jì)確認(rèn)(cumulative ack. )r TCP緩存到達(dá)的亂序數(shù)據(jù)緩存到達(dá)的亂序數(shù)據(jù)01ii+1200500900第一段第一段數(shù)據(jù)數(shù)據(jù)第二段第二段數(shù)據(jù)數(shù)據(jù)確認(rèn)號(hào)未收到未收到未收到未收到面向連接的面向連接的TCP如何接收如何接收亂序數(shù)據(jù)?亂序數(shù)據(jù)? http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉43r緊迫數(shù)據(jù)的發(fā)送緊迫數(shù)據(jù)的發(fā)送URG強(qiáng)迫強(qiáng)迫TCP發(fā)送當(dāng)前數(shù)據(jù)流中的字節(jié);發(fā)送當(dāng)前數(shù)據(jù)流中的字節(jié);URG指針指出指針指出urgent數(shù)據(jù)所在;數(shù)據(jù)所在;TCP將將PSH位置位置1使
40、接收端執(zhí)行緊迫操作;使接收端執(zhí)行緊迫操作;r帶外數(shù)據(jù)帶外數(shù)據(jù)允許發(fā)方將數(shù)據(jù)標(biāo)為緊急的允許發(fā)方將數(shù)據(jù)標(biāo)為緊急的收方收到緊急數(shù)據(jù)后通知相應(yīng)的應(yīng)用程序進(jìn)入收方收到緊急數(shù)據(jù)后通知相應(yīng)的應(yīng)用程序進(jìn)入“緊緊急方式急方式”當(dāng)應(yīng)用程序希望不必等待另一端把數(shù)據(jù)流當(dāng)應(yīng)用程序希望不必等待另一端把數(shù)據(jù)流接收完畢后就能發(fā)送接收完畢后就能發(fā)送out of band數(shù)據(jù)。數(shù)據(jù)。 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉44rTCP報(bào)文的報(bào)文的options格式格式選項(xiàng)表結(jié)束選項(xiàng)表結(jié)束( kind=0)無操作無操作( kind=1)最大段長(zhǎng)
41、最大段長(zhǎng)( kind= 2)窗口擴(kuò)大因子窗口擴(kuò)大因子( kind=3)Kind=2 Length=4MSSKind=3 Length=3移位數(shù)0/1當(dāng)網(wǎng)絡(luò)具備高帶寬、高延遲特點(diǎn)時(shí),一次發(fā)送當(dāng)網(wǎng)絡(luò)具備高帶寬、高延遲特點(diǎn)時(shí),一次發(fā)送64KB字節(jié)可能帶來字節(jié)可能帶來發(fā)送的低效率。發(fā)送的低效率。TCP用窗口擴(kuò)大選項(xiàng)來加大每次發(fā)送的數(shù)據(jù)量。用窗口擴(kuò)大選項(xiàng)來加大每次發(fā)送的數(shù)據(jù)量。假設(shè)線路帶寬假設(shè)線路帶寬T1=45Mbps;報(bào)文長(zhǎng)度;報(bào)文長(zhǎng)度64KB; T發(fā)送時(shí)間發(fā)送時(shí)間=12ms; T往返延遲往返延遲=50ms;發(fā)送效率發(fā)送效率約為約為1/4 http:/ Copyright 2006 YAN Wei.
42、All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉45r移位數(shù)值表示窗口大小擴(kuò)大的位數(shù)(至多移位數(shù)值表示窗口大小擴(kuò)大的位數(shù)(至多14)允許窗口大小從允許窗口大小從216擴(kuò)大到擴(kuò)大到230個(gè)字節(jié)個(gè)字節(jié)r收到窗口通告時(shí)要左移才能獲得實(shí)際的窗口大小收到窗口通告時(shí)要左移才能獲得實(shí)際的窗口大小r發(fā)送窗口通告時(shí)要右移發(fā)送窗口通告時(shí)要右移r該選項(xiàng)必須在連接建立時(shí)協(xié)商該選項(xiàng)必須在連接建立時(shí)協(xié)商r每個(gè)方向上的擴(kuò)大因子可不同每個(gè)方向上的擴(kuò)大因子可不同 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉46r被動(dòng)打開與主動(dòng)打開
43、被動(dòng)打開與主動(dòng)打開雙方雙方TCP軟件模塊進(jìn)行通信來建立和檢驗(yàn)一個(gè)連接;軟件模塊進(jìn)行通信來建立和檢驗(yàn)一個(gè)連接;r建立連接建立連接TCP的連接建立采用三次握手方法;的連接建立采用三次握手方法;TCP采用基于時(shí)鐘的序號(hào)產(chǎn)生方案(每采用基于時(shí)鐘的序號(hào)產(chǎn)生方案(每4us)雙方協(xié)商初始序號(hào);雙方協(xié)商初始序號(hào);ABSYNxSYNy, ACKx+1SYNx+1, ACKy+1SYN用于初始化連接時(shí),用于初始化連接時(shí),segment只包含一個(gè)字節(jié)只包含一個(gè)字節(jié)的數(shù)據(jù)。的數(shù)據(jù)。 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉47FIN
44、xACKy+1ACKx+1FINy, ACKx+1關(guān)閉連接關(guān)閉連接通知應(yīng)通知應(yīng)用程序用程序關(guān)閉連接關(guān)閉連接r TCP協(xié)議用改進(jìn)的三次握手協(xié)議用改進(jìn)的三次握手來關(guān)閉連接來關(guān)閉連接;r每個(gè)方向連接單獨(dú)釋放;每個(gè)方向連接單獨(dú)釋放;r超時(shí)值設(shè)定為超時(shí)值設(shè)定為2倍的倍的MSL;AB在在2*MSL時(shí)間內(nèi)未收到時(shí)間內(nèi)未收到FIN的確認(rèn),則的確認(rèn),則FIN發(fā)送端直接釋放連接。發(fā)送端直接釋放連接。 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉48主動(dòng)關(guān)閉主動(dòng)關(guān)閉被被動(dòng)動(dòng)關(guān)關(guān)閉閉ACK/ -SYN+ACK/ACKCONNECT/SY
45、NSYN/SYN+ACKCLOSE/FINFIN/ACKACK/ -CLOSE/FINFIN/ACKACK/ -timeout同時(shí)關(guān)閉同時(shí)關(guān)閉被動(dòng)打開被動(dòng)打開主動(dòng)打開主動(dòng)打開FIN/ACKACK/ - http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉49SYN SENT(主動(dòng)打開主動(dòng)打開)LISTEN(被動(dòng)打開被動(dòng)打開)SYN RCVDESTABESTABFIN WAIT1(主動(dòng)關(guān)閉主動(dòng)關(guān)閉)CLOSE WAIT(被動(dòng)關(guān)閉被動(dòng)關(guān)閉)FIN WAIT2TIMED WAITLAST ACKCLOSEDSYNiSYNj,
46、ACKi+1ACKj+1FINmACKm+1FINnACKn+1 http:/ Copyright 2006 YAN Wei. All rights reserved.北京大學(xué) 計(jì)算機(jī)系 嚴(yán)偉50空空(4K) 2K應(yīng)用程序應(yīng)用程序?qū)懭雽懭?K應(yīng)用程序應(yīng)用程序?qū)懭雽懭?K阻塞阻塞應(yīng)用程序讀出應(yīng)用程序讀出2K2K2K 接收緩沖區(qū)接收緩沖區(qū)r TCP采用大小動(dòng)態(tài)變化的滑動(dòng)窗采用大小動(dòng)態(tài)變化的滑動(dòng)窗口協(xié)議口協(xié)議r由接收端通過由接收端通過window size字段字段反饋當(dāng)前可接收的字節(jié)數(shù)反饋當(dāng)前可接收的字節(jié)數(shù)Seq=0Ack=2048;Win=2048Seq=2048Ack=4096;Win=0Ack=4096;Win=2048應(yīng)用程序應(yīng)用程序?qū)?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西壯族自治區(qū)貴港市“貴百河”聯(lián)考2024-2025學(xué)年高二下學(xué)期5月月考 英語試題(含答案含聽力原文)
- 高效依賴關(guān)系解析-洞察闡釋
- 酒類產(chǎn)品生命周期管理-洞察闡釋
- 烏海職業(yè)技術(shù)學(xué)院《高級(jí)統(tǒng)計(jì)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江藝術(shù)職業(yè)學(xué)院《生物質(zhì)化工與材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東白云學(xué)院《施工工藝及材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 基因檢測(cè)與表寒里熱證證候關(guān)系研究-洞察闡釋
- 上海師范大學(xué)天華學(xué)院《互動(dòng)媒體技術(shù)與設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 餅干行業(yè)市場(chǎng)細(xì)分分析-洞察闡釋
- 長(zhǎng)春理工大學(xué)《定向鉆進(jìn)與非開挖技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 消化道穿孔患者的護(hù)理課件
- 作物栽培學(xué)智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- 汽車修理廠應(yīng)急預(yù)案汽修廠安全生產(chǎn)事故應(yīng)急救援綜合預(yù)案2019-2020新標(biāo)準(zhǔn)完整版實(shí)施文件
- 建筑智能化系統(tǒng)工程掛靠協(xié)議
- 司法鑒定的奧秘智慧樹知到期末考試答案2024年
- 2024春期國(guó)開電大專本科《教育學(xué)》在線形考 (形考論壇4)試題及答案
- MOOC 高速鐵路運(yùn)營(yíng)與維護(hù)-西南交通大學(xué) 中國(guó)大學(xué)慕課答案
- 11-輪藻植物門課件
- (2024年)健康評(píng)估教學(xué)教案心電圖檢查教案
- 方法模型:展開圖、還原立體圖形
- 2023年廣東省中考生物試卷(含答案)
評(píng)論
0/150
提交評(píng)論