《計算機網(wǎng)絡(luò)教程》第7章 運輸層-2_第1頁
《計算機網(wǎng)絡(luò)教程》第7章 運輸層-2_第2頁
《計算機網(wǎng)絡(luò)教程》第7章 運輸層-2_第3頁
《計算機網(wǎng)絡(luò)教程》第7章 運輸層-2_第4頁
《計算機網(wǎng)絡(luò)教程》第7章 運輸層-2_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《計算機網(wǎng)絡(luò)教程》電子教案第七章運輸層

TCP2主要內(nèi)容TCP和UDP協(xié)議(7.3)TCP服務(wù)TCP協(xié)議TCP連接管理TCP流量控制TCP擁塞控制TCP計時器UDP協(xié)議3TCP服務(wù)TCP在提供無連接盡力遞交服務(wù)的IP層上向高層提供面向連接的、端到端的、可靠字節(jié)流服務(wù)面向連接在進行數(shù)據(jù)傳輸時首先必須建立一條運輸連接,數(shù)據(jù)傳輸完成之后把連接釋放掉。TCP連接標識套接字(Socket):主機的IP地址和一個16比特的端口號(Port)。255以下:assignedprotocolnumbers(publicapps)256~1023:well-known(saleableapplication)一條TCP連接是由發(fā)送方套接字和接收方套接字來唯一標識的,即TCP連接用四元組<源端IP地址、源端口號、目的IP地址、目的端口號>來唯一標識。4TCP服務(wù)面向字節(jié)流從高層接收用戶數(shù)據(jù)時不保留邊界,看成一個一個的字節(jié),每個字節(jié)都有一個順序號。端到端不支持組播、廣播服務(wù)5TCP服務(wù)TCP服務(wù)的其他特征TCP數(shù)據(jù)傳輸服務(wù)是全雙工的可以進行捎帶確認可以關(guān)閉某個方向的連接TCP實體支持數(shù)據(jù)緩沖和立即發(fā)送PUSH機制要求不緩沖,盡快地把數(shù)據(jù)遞交給對方TCP提供緊急數(shù)據(jù)功能緊急數(shù)據(jù)比正常數(shù)據(jù)優(yōu)先發(fā)送和遞交,沒有順序號6TCP協(xié)議:頭部格式TCPPDU稱為TCP數(shù)據(jù)段(Segment),由一個20字節(jié)的頭部、一個可選部分(最多40字節(jié))、和一個用戶數(shù)據(jù)部分組成。源端口號目的端口號順序號確認號(validifACKflagisset)窗口大小校驗和緊急指針(ifURGset)選項(0個或多個字節(jié))用戶數(shù)據(jù)(可選)保留(6b)URGACKPSHRSTSYNFIN數(shù)據(jù)偏移32位填充頭部長度7TCP協(xié)議字段TCP協(xié)議字段源端口號(SourcePort,16比特)和目的端口號(DestinationPort,16比特):分別表示發(fā)送方和接收方的端口號。順序號(SequenceNumber,32比特):該TCP段中攜帶的用戶數(shù)據(jù)中第一個字節(jié)的編號,編號是以字節(jié)為單位的。確認號(AcknowledgmentNumber,32比特):對順序號之前的數(shù)據(jù)已可靠收到的確認,即下一個期望接收的字節(jié)的順序號。數(shù)據(jù)偏移(DataOffset,4比特):指示TCP數(shù)據(jù)開始的位置,也即TCP頭部長度,以32比特為單位。8TCP協(xié)議字段保留(Reserved,6比特)控制標志(ControlBits,6比特)URG:緊急數(shù)據(jù)標志ACK:確認字段有效標志PSH:要求馬上發(fā)送數(shù)據(jù)RST:對TCP連接進行復(fù)位SYN:建立TCP連接FIN:連接釋放窗口大小(WindowSize,16比特):指示接收方滑動窗口的大小,用于實現(xiàn)TCP流量控制和差錯恢復(fù)。9TCP協(xié)議字段校驗和(Checksum,16比特):實現(xiàn)對TCP數(shù)據(jù)段的校驗。在計算檢驗和時包括TCP頭部、用戶數(shù)據(jù)以及一個TCP偽頭部。偽頭部格式檢驗和的計算:所有16位字以反碼形式相加,然后對和取反。緊急指針(UrgentPointer,16比特):當URG位有效時,緊急指針指示緊急數(shù)據(jù)的位置。IP源地址32比特IP目的地址0協(xié)議TCP長度10TCP協(xié)議字段選項(Options,變長:0~40字節(jié)):提供了相應(yīng)的擴展機制,用于實現(xiàn)除TCP基本頭部指定功能外的擴展功能。填充(Padding,變長):總是以0作填充,可確保TCP頭部以32比特邊界結(jié)束。數(shù)據(jù)(Data,變長):數(shù)據(jù)部分用于傳送TCP用戶數(shù)據(jù)。由于IP分組長度的限制(最大64K),因此TCP最大有效數(shù)據(jù)載荷長度是65535-20-20=65495。整個TCP段的長度限制IP包64K-1(65535)字節(jié)長度限制;網(wǎng)絡(luò)MTU(MaximumTransferUnit,最大傳送單位)限制;TCP協(xié)議中用戶數(shù)據(jù)大小受MSS(MaximumSegmentSize,最大分段大小)限制。11TCP連接管理:建立連接TCP連接建立是一個不對稱的過程一方處于被動方式(listen),一方為主動方式(connect)。即主動方式的客戶方要求和被動方式打開的服務(wù)方建立運輸連接(通過一系列的消息交換)。建立連接的實際價值通知對方要求建立連接為了以后的數(shù)據(jù)傳輸同步初始順序號(ISN)考慮:IP分組可能延遲、失序到達前一次連接的分組可能會在新的連接期間到達,要求新連接采用的順序號不應(yīng)該被老的連接使用過系統(tǒng)可能崩潰重啟,無法記住前面連接使用的順序號系統(tǒng)啟動等待MSL(最大分段生存期)時間采用ISN生成器隨機選?。篒SN選取有規(guī)律帶來IPSpoofing攻擊12建立連接:三次握手TCP使用三次握手方法建立連接13建立連接:連接沖突使用三次握手,即使兩臺主機同時想在相同的套接字之間建立一條TCP連接而發(fā)生沖突,也可以正常工作。14建立連接:IPSpoofingEdYX.rhostsY1.Floodcontinuously3.TCPSYNACKACKspoofedYISNSendXISNPACKETDROPPED!2.SpoofTCPSYNfromYWithspoofedYISN6.RealacksdroppedsoYdoesnotresetconnection4.SendACKwithguessofX’sISNasifyoureceivedTCPSYNACK5.Sendpre-cannedrlogin/rshmessagesrshecho“Ed”>>.rhostsspoofacknowledgementsEd7.Doornowopen,rlogintoXfromEddirectly15釋放連接TCP的正常的連接釋放也采用了三次握手過程。把TCP連接看成由兩個方向的單工連接組成:釋放時,兩個方向的連接都要關(guān)閉。兩方發(fā)送一個FIN標志置為1的TCP段,表示沒有數(shù)據(jù)要發(fā)送,當FIN被確認后,那個方向的連接就被關(guān)閉。只有當兩個方向的連接均關(guān)閉后,該TCP連接才被完全釋放。

把一個FIN和ACK合并,就是三次握手過程。TCP連接管理:釋放連接16釋放連接這樣,實際上就有多種釋放連接的順序:穩(wěn)妥關(guān)閉(“兩軍問題”)最后的ACK可能丟失帶來的問題主動關(guān)閉的一端要進入TIME-WAIT狀態(tài),需要維護連接狀態(tài)2*MSL時間在C/S模式中應(yīng)該由客戶方來主動關(guān)閉連接FINACKFINACKFINACKFINACKFINACKFINACKFINFIN,ACKACK17TCP連接管理:連接狀態(tài)TCP連接狀態(tài)狀態(tài)描述Closed無TCP連接,也不在建立連接Listen用戶開始LISTEN,等待對方的呼入連接SYNReceivedSYN收到,等待ACKSYNSentSYN發(fā)出,開始與對方建立連接Established連接建立成功,可以傳送數(shù)據(jù)FINWait1用戶釋放連接,已經(jīng)發(fā)出FINFINWait2對方同意釋放連接Closing雙方同時開始釋放連接TimedWait等待全部TCP段傳送完畢CloseWait等待用戶釋放連接LastAck用戶釋放連接,等待對方最后同意18連接狀態(tài):TCPConnectionEstablishCLOSEDSYNRCVDESTABLISTENactiveOPENcreateTCBsndSYNcreateTCBpassiveOPENdeleteTCBCLOSEdeleteTCBCLOSEsndSYNSENDsndSYNACKrcvSYNsndFINCLOSErcvACKofSYNsndACKRcvSYN,ACKrcvSYNsndACKDDOS攻擊SYNSENT19連接狀態(tài):TCPConnectionTear-downCLOSINGCLOSEWAITFINWAIT-1ESTABTIMEWAITsndFINCLOSEsndFINCLOSErcvACKofFINLAST-ACKCLOSEDFINWAIT-2sndACKrcvFINdeleteTCBTimeout=2mslsndFINCLOSEsndACKrcvFINsndACKrcvFINrcvACKofFINsndACKrcvFIN+ACKrcvACK(activeclose)(passiveclose)(simultaneousclose)20TCP流量控制為了防止發(fā)送方的數(shù)據(jù)發(fā)送得過快,以致接收方來不及處理的情況。TCP采取一種可變大小的滑動窗口機制來進行流量控制。接收方維護一個可變的接收窗口,這是接收方向發(fā)送方指出的目前剩余接收緩沖區(qū)的大?。〝?shù)據(jù)段中的窗口大小字段)。RecvWindow網(wǎng)絡(luò)來的數(shù)據(jù)空緩沖區(qū)緩沖的TCP數(shù)據(jù)RecvBuffer用戶進程讀取21TCP流量控制接收緩沖區(qū)是環(huán)形、循環(huán)使用的。接收窗口大小滿足:其中LastByteRead和LastByteRcvd是接收方定義的兩個指針,滿足:發(fā)送方定義變量LastByteSent和LastByteAcked用于發(fā)送控制,滿足:LastByteSent-LastByteAcked即發(fā)送方發(fā)送的但是沒有得到確認的數(shù)據(jù)的大小。22TCP流量控制探測(probe)消息:防止死鎖X23TCP擁塞控制TCP通過擁塞控制來防止網(wǎng)絡(luò)過載。TCP擁塞控制采用慢啟動(slow-start)和擁塞避免(congestionavoidance)的策略。TCP連接維護兩個變量:擁塞窗口CongWindow 反映了網(wǎng)絡(luò)的容量,限制發(fā)送方向網(wǎng)絡(luò)注入數(shù)據(jù)的速度,這樣發(fā)送方發(fā)送的尚未得到確認的數(shù)據(jù)大小必須小于接收窗口和擁塞窗口,即:慢啟動閾值ssthresh 當擁塞窗口小于該閾值時進入慢啟動階段,而大于時進入擁塞避免階段。24TCP擁塞控制:慢啟動慢啟動TCP慢慢探測以決定網(wǎng)絡(luò)的容量。初始時CongWindow設(shè)置為一個MSS(最大分段大?。?;慢啟動閾值ssthresh設(shè)置為一個較高的值(比如接收窗口的大?。C渴盏揭粋€確認ACK時,就把擁塞窗口大小加1個MSS大?。篊ongWindow+=MSS。這樣實際的結(jié)果是:擁塞窗口的增加是成指數(shù)增加的。當擁塞窗口超過慢啟動閾值ssthresh時,就進入擁塞避免階段。25TCP擁塞控制:擁塞避免擁塞避免不是每收到一個ACK,就把擁塞窗口增加一個MSS,而是每個往返傳輸時間(Round-TripTime,RTT)才把擁塞窗口增加一個MSS。RTT是動態(tài)變化的,在TCP的實現(xiàn)中通常采用一種變通的方法,每收到一個不重復(fù)的ACK時,擁塞窗口按照如下公式增加:這樣擁塞窗口緩慢、線性地增加,直到出現(xiàn)擁塞。26TCP擁塞控制:出現(xiàn)擁塞出現(xiàn)擁塞發(fā)送方TCP段超時,需要重傳。這時,慢啟動閾值ssthresh縮減為擁塞窗口的一半,并且擁塞窗口恢復(fù)到原來的初始窗口大小,然后進入慢啟動過程,重新探測目前網(wǎng)絡(luò)的狀況??臻e后的擁塞窗口TCP連接空閑較長一段時間后,在重新開始傳輸數(shù)據(jù)時進入如同擁塞后的慢啟動過程。27TCP擁塞控制CongWindow超時ssthresh空閑間隔時間tTCP擁塞窗口機制示意圖28TCP計時器:重傳超時重傳計時器(RetransmissionTimer)一般情況下,一個TCP段發(fā)送后啟動這個計時器,如果在計時器超時前收到這個TCP段的確認,則停止該計時器,否則,重新發(fā)送該TCP段。超時應(yīng)該多久呢?太長:低效(延時長,帶寬利用率低)太短:造成不必要的重傳(占用額外的帶寬)TCP采用的是一種自適應(yīng)的重傳計時策略。29重傳計時器:RTT估計TCP重傳計時器基于RTT

對于每一條TCP連接,TCP維護一個變量EstimatedRTT,用于存放所估計的到目的端的往返傳輸時間。每次發(fā)送一個TCP段時記錄下這個時刻,當對TCP段的確認回來后就可以計算該段的往返傳輸時間SampleRTT,然后修正EstimatedRTT: 其中為修正因子,決定了以前估計的RTT的權(quán)重,一般取值為7/8。30TCP計時器:重傳超時一個問題:如果TCP段超時并重傳時怎么辦?Karn方法:不對重傳段進行采樣,超時為原來一倍Jacobs

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論