版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第8章 傳輸層n8.1傳輸層服務(wù)n8.2端口尋址n8.3berkeley socketn8.4建立連接n8.5傳輸控制協(xié)議tcpn8.6用戶數(shù)據(jù)報協(xié)議udp 28.1傳輸層服務(wù)n傳輸層是整個協(xié)議層次結(jié)構(gòu)的核心,它為高層屏蔽任何與網(wǎng)絡(luò)有關(guān)的操作,傳輸層是端到端協(xié)議,與使用的網(wǎng)絡(luò)無關(guān)applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysica
2、lnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transport3向上層提供的服務(wù)傳輸層服務(wù)有兩類:面向連接的傳輸服務(wù)無連接的傳輸服務(wù)48.2端口尋址n由于傳輸層為上層提供復(fù)用機制,因此,當(dāng)一個傳輸層用戶希望與另一個用戶建立連接時,必須指定對方傳輸層的接入點tsap地址host2的時間服務(wù)進(jìn)程連接到的時間服務(wù)進(jìn)程連接到122號號tsap上,等待服務(wù)請求。上,等待服務(wù)請求。host1應(yīng)用進(jìn)程發(fā)出連接請求,應(yīng)用進(jìn)程發(fā)出連接請求,并指明源并指明源tsap=6,目的,目的tsap=122。網(wǎng)絡(luò)層實體向網(wǎng)絡(luò)層實體向hos
3、t2建立連接(建立連接(對于非連接網(wǎng)絡(luò),僅向?qū)τ诜沁B接網(wǎng)絡(luò),僅向host2發(fā)發(fā)送分組)送分組)問題:如何知道對方的問題:如何知道對方的tsap?5tsap的獲取方法1.服務(wù)進(jìn)程固定在特定的tsap地址上。只適用于少數(shù)關(guān)鍵的服務(wù)2.每個系統(tǒng)都有一個進(jìn)程服務(wù)器,它連接在眾所周知的tsap上,用戶為了與目標(biāo)服務(wù)進(jìn)程通信,首先必須與進(jìn)程服務(wù)器通信,通過它激活目標(biāo)服務(wù)進(jìn)程,并獲得目標(biāo)服務(wù)進(jìn)程的tsap。3.采用名字服務(wù)器,當(dāng)新的服務(wù)被創(chuàng)建時,必須向名字服務(wù)器注冊,給出服務(wù)名和tsap。用戶在需要相應(yīng)的服務(wù)前先查找名字服務(wù)器。6n與傳輸層一樣,面向連接的網(wǎng)絡(luò)層也有網(wǎng)絡(luò)服務(wù)接入點(nsap),而無連接的網(wǎng)絡(luò)
4、層不需要提供nsap。n一個全局唯一的傳輸服務(wù)用戶由主機地址,nsap,tsap標(biāo)識,稱為端點地址。n在tcp/ip中,nsap可略去,tsap稱為端口號,所以ip地址, port,協(xié)議類型唯一標(biāo)識傳輸服務(wù)的用戶,源/目的ip地址,源/目的端口號,協(xié)議類型五元組標(biāo)識一個數(shù)據(jù)流。78.3 berkeley socket原語含義socket創(chuàng)建一個新的通信端點bind將一個本地地址關(guān)聯(lián)到一個套接字上listen宣布愿意接收連接,給出隊列大小accept阻塞調(diào)用方,直到有人企圖連接上來connect主動嘗試建立一個連接send在指定的連接上發(fā)送數(shù)據(jù)recv從指定的連接上接收數(shù)據(jù)close釋放指定的連
5、接applicationtransportnetwork(internet)data-link(host-to-network)sockets apitcpudpmyprogramiptcp套接字原語8socket到socket的通信my programsocketportstcp/udpipyour programsocketportstcp/udpip9tcp client-server交互流程socket()bind()listen()accept()send()recv()recv()tcp serverclosesocket()socket()tcp clientconnect()s
6、end()recv()closesocket()建立連接請求數(shù)據(jù)響應(yīng)數(shù)據(jù)文件結(jié)束標(biāo)識10udp client-server交互流程socket()bind()recvfrom()sendto()udp serversocket()udp clientsendto()recvfrom()closesocket()等待,直到從client接收到數(shù)據(jù)報數(shù)據(jù)請求數(shù)據(jù)響應(yīng)118.4建立連接n一般來說,一個連接從連接請求的發(fā)出到接收到連接證實消息就可以建立一個連接,但當(dāng)網(wǎng)絡(luò)丟失、存儲,再重傳重復(fù)分組時,一個連接也會被建立多次n三次握手n主機1選擇一個序號x,并向主機2發(fā)送包含該序號的連接請求tpdun主機
7、2應(yīng)答接受連接tpdu,tpdu中包含確認(rèn)號x和序列號yn主機1在其發(fā)送的第一個數(shù)據(jù)中采用序列號為x,并確認(rèn)主機2的序列號y12三次握手cr-連接請求;連接請求;ack-接受連接接受連接圖圖a為正常操作時連接的建立為正常操作時連接的建立;圖;圖b為重復(fù)的為重復(fù)的cr突然出現(xiàn);突然出現(xiàn);圖圖c為重復(fù)的為重復(fù)的cr和重復(fù)的和重復(fù)的ack13釋放連接釋放連接再次用到三次釋放連接再次用到三次握手,一方發(fā)出釋放連握手,一方發(fā)出釋放連接請求后不立即拆除連接請求后不立即拆除連接,而要等待對方確認(rèn)接,而要等待對方確認(rèn);對方收到請求后,發(fā);對方收到請求后,發(fā)送確認(rèn)報文,并拆除連送確認(rèn)報文,并拆除連接,發(fā)起方收到
8、確認(rèn)后接,發(fā)起方收到確認(rèn)后最后拆除連接。最后拆除連接。148.5 傳輸控制協(xié)議-tcptcp travels in ip datagrams internet routers only look at ip header to forward datagrams tcp at destination interprets tcp messagesntransmission control protocol-rfc 793 15tcp featuresntcp具有以下特性 : n數(shù)據(jù)流傳輸(stream data transfer)n全雙工(full duplex)n復(fù)用(multiplexin
9、g)n邏輯連接(logical connections)n可靠(reliability)n流控(flow control)16tcp segment format 17tcp segment formatn源端口/目的端口(source/ destination port )n16位的端口號n序列號(sequence number )n標(biāo)識本報文段的第一個字節(jié)在數(shù)據(jù)流中的位置。n 確認(rèn)號(acknowledgment number) n標(biāo)識本報文段的發(fā)送方下一個期待接收的字節(jié)編號。 n段頭長度(header length) n4bits 指明報文段長度,單位是32位,隨選項長度而定 n保留(r
10、eserved):6bits,置018tcp segment format - 6 flagsnurg n指示緊急指針有效. nack n指示確認(rèn)段有效 npsh npush 操作,置1時,即將本段迅速發(fā)送 nrst n重新連接. nsyn n同步序列號,用于建立連接nfin n發(fā)送方已發(fā)送完數(shù)據(jù),用于釋放連接19tcp segment formatn窗口(window) n用于流量控制和擁塞控制,窗口指示在對方確認(rèn)了的字節(jié)之后還可發(fā)送的字節(jié)數(shù)。 n檢驗和(checksum) n用來檢驗tcp報頭和數(shù)據(jù)的完整性,檢驗時,要加上偽ip頭標(biāo)n緊急指針(urgent pointer) n指向緊急數(shù)據(jù)
11、的第一個字節(jié),該指針僅在urg置1時有效n選項(options )20偽ip頭標(biāo)(pseudo-ip header)21figure: tcp connection - processes x and y communicate over a tcp connection carried by ip datagramstcp采用三次握手的方法建立連接n客戶請求連接tcp段:syn置1,ack置0,seq=xn服務(wù)器響應(yīng)連接tcp段:syn置1,ack置1,seq=y,ack=x+1n客戶響應(yīng)連接tcp段: ack置1,seq=x+1,ack=y+123tcp采用對稱釋放法釋放連接ntcp的全雙
12、工連接可看成一個雙單工的連接,每個單工連接都獨立地釋放。n通信雙方必須都向?qū)Ψ桨l(fā)送fin=1的tcp段并得到對方的應(yīng)答,連接才能被釋放,有四個階段。finack of finfinack of finhost1host2timen可以將第一個ack數(shù)據(jù)段和第二個fin數(shù)據(jù)段合并,從而變?yōu)槿挝帐帧為防止半連接,必須使用定時器計時,對fin數(shù)據(jù)段的應(yīng)答在兩個最大分組生命期內(nèi)未到達(dá),就釋放連接。對方也會超時釋放。24tcp 滑動窗口(sliding window)ntcp 用滑動窗口進(jìn)行流量控制n接收方可根據(jù)tcp剩余緩沖區(qū)的大小,指定窗口大小,當(dāng)緩沖區(qū)滿,接收方可以發(fā)送一個窗口大小為0的數(shù)據(jù),
13、指示發(fā)送方停止發(fā)送數(shù)據(jù)。但此時仍可以發(fā)送緊急數(shù)據(jù) (如用戶緊急停止進(jìn)程)和一字節(jié)的通知對方重新聲明窗口大小的數(shù)據(jù)。n為了有效利用帶寬,tcp可將確認(rèn)消息和窗口大小修正消息延遲(500ms?)發(fā)送,希望通過捎帶技術(shù)節(jié)約帶寬。25tcp滑動窗口管理26確認(rèn)與重發(fā)n假設(shè)窗口大小為1500字節(jié),數(shù)據(jù)段長度為500字節(jié)27傻瓜窗口癥狀silly window syndromen以下情況被稱為傻瓜窗口癥狀:n當(dāng)接收方的tcp緩沖區(qū)已滿,接收方會向發(fā)送方發(fā)送窗口大小為0的數(shù)據(jù),而此時接收方的應(yīng)用進(jìn)程以交互方式每次只讀取一個字節(jié),于是接收方又發(fā)送窗口大小為一個字節(jié)的修正信息,發(fā)送方應(yīng)邀發(fā)送一個字節(jié)的數(shù)據(jù),于是
14、窗口又滿了,循環(huán)往復(fù)n解決方法:n禁止接收方發(fā)送1個字節(jié)大小的窗口修正信息,而是要等到有了一定數(shù)量的可用空間后再通知對方。 n發(fā)送方不發(fā)送太小的數(shù)據(jù)段。28tcp 定時器管理ntcp設(shè)置多個定時器完成所承擔(dān)的服務(wù)。在發(fā)送數(shù)據(jù)的同時,啟動一個定時器,如果在超時前該數(shù)據(jù)段被確認(rèn),就關(guān)閉該定時器,否則,一旦超時則重發(fā)該數(shù)據(jù)段。n問題:超時間隔( timeout )應(yīng)設(shè)為多長呢?n不適當(dāng)?shù)?timeout 會導(dǎo)致性能下降: ntimeout太長-導(dǎo)致發(fā)送端的等待時間太長ntimeout太短 重發(fā)多余的不必要的數(shù)據(jù) n解決的方法是對網(wǎng)絡(luò)的性能不斷測試,采用一種不斷調(diào)整超時時間間隔的動態(tài)算法29picki
15、ng a timeout valuen對每條連接,tcp均保存變量rtt,用于存放到目的端的往返時間的最接近估計值。n當(dāng)一個數(shù)據(jù)發(fā)送時,同時啟動定時器,如果時間超時就重發(fā)數(shù)據(jù)段,如果在超時之前得到確認(rèn),tcp就測量所花費的時間,記為m,并根據(jù)下面公式修正rttnrtt=rtt+(1- )mn 是修正因子,一般為7/8n1988年jacobson提出了另一個公式nd= d+(1- )|rtt-m|這里的可能不同前面的n確定當(dāng)前的超時間隔timeout=rtt+4dn對已經(jīng)重發(fā)的數(shù)據(jù)段無需修改rtt,而是在每次傳輸失敗時將超時時間加倍,直到該數(shù)據(jù)段被成功傳輸karn算法。30tcp timersn
16、tcp 維護(hù)多個定時器,例如:n連接建立定時器(connection establishment timer)n重發(fā)定時器(retransmission timer)nack延時定時器(delayed ack timer)n持續(xù)定時器(persistence timer)n保持存活定時器(the keepalive timer )n閑置定時器(the quiet timer)31連接建立定時器connection establishment timern當(dāng)syn包發(fā)出時,連接建立定時器就開始計時,如果在一定時間(例如65秒,可設(shè)置)內(nèi)未收到響應(yīng),則連接建立失敗。32重發(fā)定時器the retra
17、nsmission timern重發(fā)定時器是tcp發(fā)送數(shù)據(jù)時設(shè)置的,如果數(shù)據(jù)在重發(fā)定時器超時時還沒有返回確認(rèn),tcp就重發(fā)數(shù)據(jù)。定時器的設(shè)置是動態(tài)的,它基于tcp對往返時間(round-trip time)的測試。33ack延時定時器delayed ack timern當(dāng)tcp實體收到數(shù)據(jù)時它必須返回確認(rèn),但并不需要立即回復(fù),它可以在(200ms?)內(nèi)發(fā)送ack報文,如果在這段時間內(nèi)它恰好有數(shù)據(jù)要發(fā)送,它就可以在數(shù)據(jù)內(nèi)包含確認(rèn)信息,因此需要ack延時定時器。34持續(xù)定時器the persistence timernthe persistence timer管理的是一種較為少見的事件,即下面要介
18、紹的死鎖情況。為了讓發(fā)送方暫停發(fā)送數(shù)據(jù),接收方發(fā)送一個接收窗口為0的確認(rèn)。后來,接收方又發(fā)送了一個更新了窗口大小的分組,但該分組丟失,于是,雙方都處于等待。 n為了防止上述事情發(fā)生,發(fā)送方在收到接收方發(fā)來一個窗口為0的數(shù)據(jù)時,就啟動持續(xù)定時器,等該定時器超時還沒有收到對方修改窗口大小的數(shù)據(jù)的話,發(fā)送方就發(fā)一個探測數(shù)據(jù),對該探測數(shù)據(jù)的響應(yīng)應(yīng)包含了窗口大小,若仍為0,則定時器清0,重復(fù)以上步驟,否則則可以發(fā)送數(shù)據(jù)。35保持存活定時器the keep-alive timern當(dāng)一個連接長時間閑置時,保持存活定時器會超時而使一方去檢測另一方是否仍然存在,如果它未得到響應(yīng),便終止該連接。36閑置定時器t
19、he quiet timern當(dāng)tcp連接斷開后,為防止該連接上的數(shù)據(jù)還在網(wǎng)絡(luò)上,并被后續(xù)打開的相同五元組的連接接收,要設(shè)置閑置定時器以防止剛剛斷開連接的端口號被立即重新使用。37tcp的擁塞控制(congestion control)功能n什么是網(wǎng)絡(luò)的擁塞n當(dāng)大量分組進(jìn)入通信子網(wǎng),超出了網(wǎng)絡(luò)的處理能力時,就會引起網(wǎng)絡(luò)局部或整體性能下降,這種現(xiàn)象稱為擁塞。n路由器的隊列溢出,分組丟失n擁塞會導(dǎo)致什么后果n擁塞使許多分組重傳n導(dǎo)致更多的業(yè)務(wù)量,直至崩潰n擁塞的原因n路由器的處理速度、存儲空間、帶寬不匹配n網(wǎng)絡(luò)負(fù)載的不平衡38tcp的擁塞控制(congestion control)功能ntcp的發(fā)
20、送方除了可以連續(xù)發(fā)送數(shù)據(jù)的窗口外,還有一個擁塞窗口(congestion window),每個窗口都反映出發(fā)送方可以發(fā)送的字節(jié)數(shù),因此應(yīng)取兩個窗口的最小值作為可以發(fā)送的字節(jié)數(shù)。n在連接建立初期,擁塞窗口初始化為該連接最大數(shù)據(jù)段的長度,并發(fā)送一個數(shù)據(jù)段,得到確認(rèn)后,其擁塞窗口大小加倍,依次類推,直到數(shù)據(jù)傳輸超時或已達(dá)到接收方指定的窗口大?。骖檽砣土髁靠刂疲?。這種算法稱為慢啟動(slow start)。39tcp slowstartnexponential increase in window size (not so slow!)nloss event: timeout and/or thr
21、ee duplicate acksinitialize: congwin = 1for (each segment acked) congwin+until (loss event or congwin threshold)slowstart algorithmhost aone segmentrtthost btimetwo segmentsfour segments40internet擁塞控制算法的實例ninternet的擁塞控制算法:初始設(shè)置臨界值(threshold)為64kb,若發(fā)生超時,將臨界值設(shè)為當(dāng)前擁塞窗口的1/2,并將擁塞窗口恢復(fù)為最大段長度,執(zhí)行慢啟動算法,直至擁塞窗口達(dá)到
22、臨界值,此后要求擁塞窗口按線性增加(每次只增加一個最大段長度),直至最終達(dá)到接收窗口大小或發(fā)生超時;若超時再將臨界值設(shè)為當(dāng)前擁塞窗口的1/2,重復(fù)上述過程。41tcp 端口(port)ntcp 用16bits 標(biāo)識其傳輸層接入點地址,即端口號,提供傳輸層的復(fù)用功能。n前1024個端口號為通用端口號( well-known ports)。指示一些常用服務(wù)(如ftp,telnet等)的服務(wù)器端口。 n大于1024的端口可由用戶自行分配,例如,客戶與服務(wù)器建立連接時需由操作系統(tǒng)自動產(chǎn)生一個源端口號,然后與遠(yuǎn)程服務(wù)器(web服務(wù),目的端口號80)。42ports43常用的tcp端口號nport num
23、ber process name description n1 tcpmux tcp port service multiplexer n5 rje remote job entry n7 echo echo n9 discard discard n11 users active users n13 daytime daytime n17 quote quotation of the day n19 chargen character generator n20 ftp-data file transfer protocol data n21 ftp file transfer protocol cont
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)技術(shù)合作免責(zé)責(zé)任書4篇
- 通信協(xié)議基礎(chǔ)課程設(shè)計
- 年度掘進(jìn)機市場分析及競爭策略分析報告
- 2024裝飾工程監(jiān)工質(zhì)量保障合同模板版
- 二零二五版電子商務(wù)平臺合作協(xié)議補充協(xié)議3篇
- 2025年度高品質(zhì)社區(qū)門窗安裝與物業(yè)綜合服務(wù)協(xié)議3篇
- 2025年度綜合能源服務(wù)項目承包工程合同范本4篇
- 2024投資融資咨詢服務(wù)合同范本兩
- 扶壁碼頭胸墻施工方案
- 汀步的施工方案
- 《藥品招商營銷概論》課件
- 2025年病案編碼員資格證試題庫(含答案)
- 2025新譯林版英語七年級下單詞表
- 新疆2024年中考數(shù)學(xué)試卷(含答案)
- 2024-2030年中國連續(xù)性腎臟替代治療(CRRT)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 跨學(xué)科主題學(xué)習(xí):實施策略、設(shè)計要素與評價方式(附案例)
- 場地委托授權(quán)
- 2024年四川省成都市龍泉驛區(qū)中考數(shù)學(xué)二診試卷(含答案)
- 項目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計
評論
0/150
提交評論