版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 5 章 傳輸層1第 5 章 運(yùn)輸層 1 運(yùn)輸層協(xié)議概述2 傳輸控制協(xié)議 TCP 3 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 2TCP/IP與OSI參考模型比較應(yīng)用層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層應(yīng)用層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路接口層TCP/IPOSI76543213 OSI 模型4數(shù)據(jù)應(yīng)用層頭部數(shù)據(jù)表示層頭部數(shù)據(jù)會(huì)話層頭部數(shù)據(jù)傳輸層頭部數(shù)據(jù)網(wǎng)絡(luò)層頭部10001數(shù)據(jù)數(shù)據(jù)鏈路層頭部應(yīng)用層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層 應(yīng)用層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層 數(shù)據(jù)封裝與解封裝5數(shù)據(jù)E-mail 信息數(shù)據(jù)數(shù)據(jù)封裝示例6段 頭部數(shù)據(jù)數(shù)據(jù)E-mail 信息數(shù)據(jù)數(shù)據(jù)段數(shù)據(jù)封裝示例7段 頭部數(shù)據(jù)數(shù)據(jù)
2、包 頭部段 頭部數(shù)據(jù)E-mail 信息數(shù)據(jù)數(shù)據(jù)段數(shù)據(jù)包數(shù)據(jù)封裝示例8包 頭部段 頭部幀 尾數(shù)據(jù)段 頭部數(shù)據(jù)數(shù)據(jù)幀 頭部包 頭部段 頭部數(shù)據(jù)E-mail 信息數(shù)據(jù)數(shù)據(jù)段數(shù)據(jù)包數(shù)據(jù)幀(取決于不同傳輸介質(zhì))數(shù)據(jù)封裝示例9 包 頭部段 頭部幀 尾數(shù)據(jù)段 頭部數(shù)據(jù)數(shù)據(jù)幀 頭部包 頭部段 頭部數(shù)據(jù)1E-mail 信息數(shù)據(jù)數(shù)據(jù)段數(shù)據(jù)幀(取決于不同的傳輸介質(zhì))比特流數(shù)據(jù)包數(shù)據(jù)封裝示例10 TCP/IP11OSI-TCP/IP模型對(duì)比應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層12網(wǎng)絡(luò)接口層網(wǎng)絡(luò)層傳輸層應(yīng)用層用戶數(shù)據(jù)TCP段網(wǎng)絡(luò)接口層網(wǎng)絡(luò)層傳輸層應(yīng)用層IP包用戶數(shù)據(jù)TCP段實(shí)際物理網(wǎng)絡(luò)的幀IP包實(shí)際傳輸TCP/IP封裝過程PD
3、Udatasegmentpacketframe實(shí)際物理網(wǎng)絡(luò)的幀bit13TELNETSMTPDNSFTPTFTPTCPUDPICMPIPARPRARP網(wǎng)絡(luò)接口層TCP/IP協(xié)議族14傳輸層在OSI模型中的位置應(yīng)用層表示層會(huì)話層傳輸層物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層7654321資源子網(wǎng)通信子網(wǎng)傳送的使用者傳送的提供者1.介于通信子網(wǎng)和資源子網(wǎng)之間,對(duì)高層用戶屏蔽了通信的細(xì)節(jié)2.彌補(bǔ)了通信子網(wǎng)所提供服務(wù)的差異和不足,提供端到端之間的無差錯(cuò)保證3.傳輸層工作的簡(jiǎn)繁取決于通信子網(wǎng)提供服務(wù)的程度。15運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信 54321運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī) A主機(jī) B應(yīng)用進(jìn)程應(yīng)用進(jìn)
4、程路由器 1路由器 2AP1LAN2WANAP2AP3AP4IP 層LAN1AP1AP2AP4端口端口54321IP 協(xié)議的作用范圍運(yùn)輸層協(xié)議 TCP 和 UDP 的作用范圍AP316應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。 應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。 運(yùn)輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的端口向下交到運(yùn)輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)?!斑\(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信”?!斑壿嬐ㄐ拧钡囊馑际牵哼\(yùn)輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)運(yùn)輸層之間并沒有一條水平方向的物理連接。17傳輸連接管理、數(shù)據(jù)傳送
5、運(yùn)輸實(shí)體運(yùn)輸實(shí)體運(yùn)輸協(xié)議運(yùn)輸層層接口 運(yùn)輸服務(wù)用戶(應(yīng)用層實(shí)體) 運(yùn)輸服務(wù)用戶 (應(yīng)用層實(shí)體)層接口 網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機(jī) A主機(jī) B運(yùn)輸層服務(wù)訪問點(diǎn)TSAP網(wǎng)絡(luò)層服務(wù)訪問點(diǎn)NSAP運(yùn)輸層與其上下層之間的關(guān)系的 OSI 表示18運(yùn)輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)用層運(yùn)輸層發(fā)送進(jìn)程接收進(jìn)程接收進(jìn)程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用 TCP 協(xié)議使用 UDP 協(xié)議不可靠信道發(fā)送進(jìn)程19TCP/IP的運(yùn)輸層中的兩個(gè)協(xié)議:用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol):提供無連接服務(wù)傳輸控制協(xié)議TCP(Transmission Control Protocol
6、):提供面向連接服務(wù)UDP和TCP都使用IP協(xié)議。如下圖所示。應(yīng)有層TCPUDPIP與各種網(wǎng)絡(luò)的接口圖:TCP/IP運(yùn)輸層的UDP與TCP傳輸層的兩個(gè)主要協(xié)議 20TCP 與 UDP兩個(gè)對(duì)等運(yùn)輸實(shí)體在通信時(shí)傳送的數(shù)據(jù)單位叫作運(yùn)輸協(xié)議數(shù)據(jù)單元 TPDU (Transport Protocol Data Unit)。TCP 傳送的數(shù)據(jù)單位協(xié)議是 TCP 報(bào)文段(segment) UDP 傳送的數(shù)據(jù)單位協(xié)議是 UDP 報(bào)文或用戶數(shù)據(jù)報(bào)。 21還要強(qiáng)調(diào)兩點(diǎn) 運(yùn)輸層的 UDP 用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)報(bào)有很大區(qū)別。IP 數(shù)據(jù)報(bào)要經(jīng)過互連網(wǎng)中許多路由器的存儲(chǔ)轉(zhuǎn)發(fā),但 UDP 用戶數(shù)據(jù)報(bào)是在運(yùn)輸層的端到
7、端抽象的邏輯信道中傳送的。TCP 報(bào)文段是在運(yùn)輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過了哪些路由器,而這些路由器也根本不知道上面的運(yùn)輸層是否建立了 TCP 連接。 22端口的概念 端口(port)就是傳輸層的應(yīng)用程序接口。應(yīng)用層的各個(gè)進(jìn)程是通過相應(yīng)的端口才能與運(yùn)輸實(shí)體進(jìn)行交互。 服務(wù)器和客戶進(jìn)程:TCP建立連接是采用客戶服務(wù)器模式。主動(dòng)發(fā)起連接建立的進(jìn)程叫客戶(client),被動(dòng)等待連接的進(jìn)程叫服務(wù)器(server)。傳輸層地址23TCP 的端口 端口用一個(gè) 16 位端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各
8、進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。24三類端口 熟知端口,數(shù)值一般為 01023。登記端口號(hào),數(shù)值為102449151,為沒有熟知端口號(hào)的應(yīng)用程序使用的。使用這個(gè)范圍的端口號(hào)必須在 IANA 登記,以防止重復(fù)??蛻舳丝谔?hào)或短暫端口號(hào),數(shù)值為4915265535,留給客戶進(jìn)程選擇暫時(shí)使用。當(dāng)服務(wù)器進(jìn)程收到客戶進(jìn)程的報(bào)文時(shí),就知道了客戶進(jìn)程所使用的動(dòng)態(tài)端口號(hào)。通信結(jié)束后,這個(gè)端口號(hào)可供其他客戶進(jìn)程以后使用。 25一些常見的“眾所周知的”端口號(hào)FTPSMTPTFTPDNSTelnetSNMP2123255369161TCP/UDP應(yīng)用層傳輸層20HTTP80網(wǎng)絡(luò)層IP26端口在進(jìn)程
9、之間的通信中所起的作用應(yīng)用層運(yùn)輸層網(wǎng)絡(luò)層TCP 報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程TCP 復(fù)用IP 復(fù)用UDP 復(fù)用TCP 報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程端口端口TCP 分用UDP 分用IP 分用IP 數(shù)據(jù)報(bào)IP 數(shù)據(jù)報(bào)發(fā)送方接收方27第 5 章 運(yùn)輸層 1 運(yùn)輸層協(xié)議概述2 傳輸控制協(xié)議 TCP 3 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 28傳輸控制協(xié)議(TCPTransmission Control Protocol)TCP的服務(wù) 實(shí)現(xiàn)可靠性 包丟失重發(fā)機(jī)制流量控制擁塞控制三次握手TCP的報(bào)文格式291.TCP提供的服務(wù)TCP 是面向連接的運(yùn)輸層協(xié)議。每一條 TCP 連接只能有兩個(gè)端點(diǎn)(endpoint),
10、每一條 TCP 連接只能是點(diǎn)對(duì)點(diǎn)的(一對(duì)一)。 TCP 提供可靠交付的服務(wù)。 TCP 提供全雙工通信。面向字節(jié)流。 30768HTCP 面向流的概念 發(fā)送 TCP 報(bào)文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應(yīng)用進(jìn)程應(yīng)用進(jìn)程1230181716151419202145131211H109H加上 TCP 首部構(gòu)成 TCP 報(bào)文段TCPTCP字節(jié)流字節(jié)流H表示 TCP 報(bào)文段的首部x表示序號(hào)為 x 的數(shù)據(jù)字節(jié)TCP 連接31應(yīng)當(dāng)注意TCP 連接是一條虛連接而不是一條真正的物理連接。TCP 對(duì)應(yīng)用進(jìn)程一次把多長(zhǎng)的報(bào)文發(fā)送到TCP 的緩存中是不關(guān)心的。TCP 根據(jù)對(duì)方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁
11、塞的程度來決定一個(gè)報(bào)文段應(yīng)包含多少個(gè)字節(jié)(UDP 發(fā)送的報(bào)文長(zhǎng)度是應(yīng)用進(jìn)程給出的)。TCP 可把太長(zhǎng)的數(shù)據(jù)塊劃分短一些再傳送。TCP 也可等待積累有足夠多的字節(jié)后再構(gòu)成報(bào)文段發(fā)送出去。 322 可靠傳輸?shù)墓ぷ髟?1) 停止等待協(xié)議 (a) 無差錯(cuò)情況A發(fā)送 M1確認(rèn) M1B發(fā)送 M2發(fā)送 M3確認(rèn) M2確認(rèn) M3A發(fā)送 M1B超時(shí)重傳 M1發(fā)送 M2確認(rèn) M1丟棄有差錯(cuò)的報(bào)文(b) 超時(shí)重傳tttt33請(qǐng)注意在發(fā)送完一個(gè)分組后,必須暫時(shí)保留已發(fā)送的分組的副本。分組和確認(rèn)分組都必須進(jìn)行編號(hào)。超時(shí)計(jì)時(shí)器的重傳時(shí)間應(yīng)當(dāng)比數(shù)據(jù)在分組傳輸?shù)钠骄禃r(shí)間更長(zhǎng)一些。 34確認(rèn)丟失和確認(rèn)遲到 A發(fā)送 M1B
12、超時(shí)重傳 M1發(fā)送 M2丟棄重復(fù)的 M1重傳確認(rèn) M1(a) 確認(rèn)丟失確認(rèn) M1A發(fā)送 M1B超時(shí)重傳 M1發(fā)送 M2丟棄重復(fù)的 M1重傳確認(rèn)M1(b) 確認(rèn)遲到確認(rèn) M1收下遲到的確認(rèn)但什么也不做tttt35可靠通信的實(shí)現(xiàn)使用上述的確認(rèn)和重傳機(jī)制,我們就可以在不可靠的傳輸網(wǎng)絡(luò)上實(shí)現(xiàn)可靠的通信。這種可靠傳輸協(xié)議常稱為自動(dòng)重傳請(qǐng)求ARQ (Automatic Repeat reQuest)。ARQ 表明重傳的請(qǐng)求是自動(dòng)進(jìn)行的。接收方不需要請(qǐng)求發(fā)送方重傳某個(gè)出錯(cuò)的分組 。36信道利用率 停止等待協(xié)議的優(yōu)點(diǎn)是簡(jiǎn)單,但缺點(diǎn)是信道利用率太低。 TDRTTATD + RTT + TAB分組確認(rèn)tt分組確認(rèn)
13、37流水線傳輸 發(fā)送方可連續(xù)發(fā)送多個(gè)分組,不必每發(fā)完一個(gè)分組就停頓下來等待對(duì)方的確認(rèn)。由于信道上一直有數(shù)據(jù)不間斷地傳送,這種傳輸方式可獲得很高的信道利用率。 B分組ttAACK385.4.2 連續(xù) ARQ 協(xié)議 123456789101112(a) 發(fā)送方維持發(fā)送窗口(發(fā)送窗口是 5)發(fā)送窗口(b) 收到一個(gè)確認(rèn)后發(fā)送窗口向前滑動(dòng)向前123456789101112發(fā)送窗口39累積確認(rèn) 接收方一般采用累積確認(rèn)的方式。即不必對(duì)收到的分組逐個(gè)發(fā)送確認(rèn),而是對(duì)按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn),這樣就表示:到這個(gè)分組為止的所有分組都已正確收到了。累積確認(rèn)有的優(yōu)點(diǎn)是:容易實(shí)現(xiàn),即使確認(rèn)丟失也不必重傳。缺點(diǎn)是
14、:不能向發(fā)送方反映出接收方已經(jīng)正確收到的所有分組的信息。40Go-back-N(回退 N) 如果發(fā)送方發(fā)送了前 5 個(gè)分組,而中間的第 3 個(gè)分組丟失了。這時(shí)接收方只能對(duì)前兩個(gè)分組發(fā)出確認(rèn)。發(fā)送方無法知道后面三個(gè)分組的下落,而只好把后面的三個(gè)分組都再重傳一次。這就叫做 Go-back-N(回退 N),表示需要再退回來重傳已發(fā)送過的 N 個(gè)分組??梢姰?dāng)通信線路質(zhì)量不好時(shí),連續(xù) ARQ 協(xié)議會(huì)帶來負(fù)面的影響。 41TCP 可靠通信的具體實(shí)現(xiàn) TCP 連接的每一端都必須設(shè)有兩個(gè)窗口一個(gè)發(fā)送窗口和一個(gè)接收窗口。 TCP 的可靠傳輸機(jī)制用字節(jié)的序號(hào)進(jìn)行控制。TCP 所有的確認(rèn)都是基于序號(hào)而不是基于報(bào)文段
15、。 TCP 兩端的四個(gè)窗口經(jīng)常處于動(dòng)態(tài)變化之中。TCP連接的往返時(shí)間 RTT 也不是固定不變的。需要使用特定的算法估算較為合理的重傳時(shí)間。 42TCP首部20 字節(jié)的固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 數(shù)據(jù)部分TCP 首部TCP 報(bào)文段IP 數(shù)據(jù)部分IP 首部發(fā)送在前3.TCP 報(bào)文段的首部格式 43TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)
16、保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充源端口和目的端口字段各占 2 字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。 44源端口SP目的端口DP 數(shù)據(jù)Host ADest. port = 23.將數(shù)據(jù)包送到我的TELNET端口102823數(shù)據(jù)SPDPHost ZTelnet ZTCP 端口號(hào)45多個(gè)連接時(shí)端口號(hào)的使用源端口目的端口數(shù)據(jù)Host A102823數(shù)據(jù)SPDPHost ZTelnet ZTelnet Z102923數(shù)據(jù)46TCP 的連接 TCP 把連接作為最基本的抽象。每一條 TCP 連接有兩個(gè)端點(diǎn)。TCP 連接
17、的端點(diǎn)不是主機(jī),不是主機(jī)的IP 地址,不是應(yīng)用進(jìn)程,也不是運(yùn)輸層的協(xié)議端口。TCP 連接的端點(diǎn)叫做套接字(socket)或插口。端口號(hào)拼接到(contatenated with) IP 地址即構(gòu)成了套接字。 47套接字 (socket) 套接字 socket = (IP地址: 端口號(hào)) (5-1)每一條 TCP 連接唯一地被通信兩端的兩個(gè)端點(diǎn)(即兩個(gè)套接字)所確定。即: TCP 連接 := socket1, socket2 = (IP1: port1), (IP2: port2) (5-2)48TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)
18、緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充序號(hào)字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。 49TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認(rèn)號(hào)字段占 4 字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。 50 序列號(hào)和確認(rèn)號(hào)用于識(shí)別TCP段中的數(shù)據(jù)。 序列號(hào)的作用:一
19、方面用于標(biāo)識(shí)數(shù)據(jù)順序,以便接收者在將其遞交給應(yīng)用程序前按正確的順序進(jìn)行裝配;另一方面是消除網(wǎng)絡(luò)中的重復(fù)報(bào)文包,這種現(xiàn)象在網(wǎng)絡(luò)擁塞時(shí)會(huì)出現(xiàn)。 確認(rèn)號(hào)的作用:接收者告訴發(fā)送者哪個(gè)數(shù)據(jù)包已經(jīng)成功接收,并指示發(fā)送者接收者希望接受的下一個(gè)字節(jié)。 基本概念序列號(hào)和確認(rèn)號(hào)51SenderReceiver123456確認(rèn)號(hào)52SenderReceiverSend 2Send 1Send 3123456123確認(rèn)號(hào)53SenderReceiverSend 2Send 1Send 3Ack 4Send 4123456123確認(rèn)號(hào)54SenderReceiverSend 2Send 1Send 3Ack 4Send
20、 5Send 4Send 612345612346確認(rèn)號(hào)55SenderReceiverSend 2Send 1Send 3Ack 4Send 5Send 4Send 6Ack 512345612346確認(rèn)號(hào)56SenderReceiverSend 2Send 1Send 3Ack 4Send 5Send 4Send 6Ack 5Send 5123456123456確認(rèn)號(hào)57SenderReceiverSend 2Send 1Send 3Ack 4Send 5Send 4Send 6Ack 5Send 5Ack 7123456123456確認(rèn)號(hào)58我的序列號(hào)是1000000,你下次應(yīng)該發(fā)給我的
21、序列號(hào)是2000000源端口目的端口序號(hào)#確認(rèn)序號(hào)#102823SourceDest.Seq.Ack.TCP 序號(hào)和確認(rèn)號(hào)綜述59SourceDest.Seq.Ack.TCP 序號(hào)和確認(rèn)號(hào)綜述102823我的序列號(hào)是1000000,你下次應(yīng)該發(fā)給我的序列號(hào)是2000000我的序列號(hào)是2000000,你下次應(yīng)該發(fā)給我的序列號(hào)是1000001源端口目的端口序號(hào)#確認(rèn)序號(hào)#10282360TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急 U
22、RG 當(dāng) URG 1 時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。 61TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認(rèn) ACK 只有當(dāng) ACK 1 時(shí)確認(rèn)號(hào)字段才有效。當(dāng) ACK 0 時(shí),確認(rèn)號(hào)無效。 62TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0
23、8 16 24 31填 充推送 PSH (PuSH) 接收 TCP 收到 PSH = 1 的報(bào)文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。 63TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充復(fù)位 RST (ReSeT) 當(dāng) RST 1 時(shí),表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。 64TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng)
24、(長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充同步 SYN (synchronize) 同步 SYN = 1 表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文。 65TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充終止 FIN (FINis) 用來釋放一個(gè)連接。FIN 1 表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。 66TCP首部20字節(jié)固定首
25、部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充窗口字段 占 2 字節(jié),用來讓對(duì)方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。67TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充檢驗(yàn)和 占 2 字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在 TCP 報(bào)文段的前面加上 12 字節(jié)的偽首部。68TC
26、P首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急指針字段 占 16 位,指出在本報(bào)文段中緊急數(shù)據(jù)共有多少個(gè)字節(jié)(緊急數(shù)據(jù)放在本報(bào)文段數(shù)據(jù)的最前面)。 69TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充選項(xiàng)字段 長(zhǎng)度可變。TCP 最初只規(guī)定了一種選項(xiàng),即最大報(bào)文段長(zhǎng)度 MSS。MS
27、S 告訴對(duì)方 TCP:“我的緩存所能接收的報(bào)文段的數(shù)據(jù)字段的最大長(zhǎng)度是 MSS 個(gè)字節(jié)?!?MSS (Maximum Segment Size)是 TCP 報(bào)文段中的數(shù)據(jù)字段的最大長(zhǎng)度。數(shù)據(jù)字段加上 TCP 首部才等于整個(gè)的 TCP 報(bào)文段。70其他選項(xiàng)窗口擴(kuò)大選項(xiàng) 占 3 字節(jié),其中有一個(gè)字節(jié)表示移位值 S。新的窗口值等于TCP 首部中的窗口位數(shù)增大到(16 + S),相當(dāng)于把窗口值向左移動(dòng) S 位后獲得實(shí)際的窗口大小。時(shí)間戳選項(xiàng)占10 字節(jié),其中最主要的字段時(shí)間戳值字段(4 字節(jié))和時(shí)間戳回送回答字段(4 字節(jié))。選擇確認(rèn)選項(xiàng)71TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選
28、 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充填充字段 這是為了使整個(gè)首部長(zhǎng)度是 4 字節(jié)的整數(shù)倍。 724.TCP 的運(yùn)輸連接管理運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。連接建立過程中要解決以下三個(gè)問題:要使每一方能夠確知對(duì)方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長(zhǎng)度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小,連接表中的項(xiàng)目等)進(jìn)行分配。 73客戶服務(wù)器方式 TCP 連接的建立都是采用客戶服務(wù)器方式
29、。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(client)。被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)。 74用三次握手建立 TCP 連接 SYN = 1, seq = xCLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器TCP 的連接建立A 的 TCP 向 B 發(fā)出連接請(qǐng)求報(bào)文段,其首部中的同步位 SYN = 1,并選擇序號(hào) seq = x,表明傳送數(shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)是 x。75用三次握手建立 TCP 連接 SYN = 1, seq = xCLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器TCP 的連接建立SYN = 1, ACK = 1, seq = y, ack=
30、x 1 B 的 TCP 收到連接請(qǐng)求報(bào)文段后,如同意,則 發(fā)回確認(rèn)。 B 在確認(rèn)報(bào)文段中應(yīng)使 SYN = 1,使 ACK = 1, 其確認(rèn)號(hào)ack = x 1,自己選擇的序號(hào) seq = y。76SYN = 1, seq = xACK = 1, seq = x + 1, ack = y 1CLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器SYN = 1, ACK = 1, seq = y, ack= x 1 A 收到此報(bào)文段后向 B 給出確認(rèn),其 ACK = 1, 確認(rèn)號(hào) ack = y 1。 A 的 TCP 通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。 77SYN = 1, seq = xACK =
31、 1, seq = x + 1, ack = y 1CLOSEDCLOSED數(shù)據(jù)傳送主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器SYN = 1, ACK = 1, seq = y, ack= x 1 B 的 TCP 收到主機(jī) A 的確認(rèn)后,也通知其上層 應(yīng)用進(jìn)程:TCP 連接已經(jīng)建立。78SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED用三次握手建立 TCP 連接的各狀態(tài) SYN = 1, seq = xACK = 1, seq = x + 1, ack = y 1CLOSEDCLOSED數(shù)據(jù)傳送主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器TCP 的連接建立SYN = 1, A
32、CK = 1, seq = y, ack= x 179Send SYN (seq=100 ctl=SYN)SYN receivedHost AHost B1TCP三次握手/建立連接80Send SYN (seq=100 ctl=SYN)SYN receivedSend SYN, ACK (seq=300 ack=101 ctl=syn,ack)Host AHost BSYN received12TCP三次握手/建立連接81Send SYN (seq=100 ctl=SYN)SYN receivedSend SYN, ACK (seq=300 ack=101 ctl=SYN,ACK)Establ
33、ished(seq=101 ack=301 ctl=ACK)Host AHost B123SYN receivedTCP三次握手/建立連接82同步同步協(xié)商建立連接數(shù)據(jù)傳送(Send Segments)SenderReceiver連接建立響應(yīng)面向連接的會(huì)話83FIN的ACKFIN的ACKFINFIN應(yīng)用程序關(guān)閉主機(jī)A主機(jī)B應(yīng)用程序關(guān)閉TCP四次握手/終止連接一個(gè)TCP連接是全雙工(即數(shù)據(jù)在兩個(gè)方向上能同時(shí)傳遞),因此每個(gè)方向必須單獨(dú)進(jìn)行關(guān)閉。這原則就是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就發(fā)送一個(gè)FIN來終止這個(gè)方向連接。當(dāng)一端收到一個(gè)FIN,它必須通知應(yīng)用層另一端已經(jīng)終止了那個(gè)方向的數(shù)據(jù)傳送。 84W
34、indow size = 1024Send 1Receive 1SenderReceiver4.基本概念窗口控制85Window size = 1024Send 1Receive 1Ack 2SenderReceiver窗口控制86Window size = 1024Send 1Receive 1Ack 2Send 2Receive 2SenderReceiver窗口控制87Window size = 1024Send 1Receive 1Ack 2Send 2Receive 2Ack 3SenderReceiver窗口控制這種可靠傳輸協(xié)議常稱為自動(dòng)重傳請(qǐng)求ARQ (Automatic Rep
35、eat reQuest)。ARQ 表明重傳的請(qǐng)求是自動(dòng)進(jìn)行的。接收方不需要請(qǐng)求發(fā)送方重傳某個(gè)出錯(cuò)的分組 。88窗口控制Send 1Send 2Receive 1Receive 2Window size = 3072Send 3Receive 3SenderReceiver89Send 1Send 2Receive 1Receive 2Window size = 3072Send 3Receive 3Ack 4SenderReceiver窗口控制90Send 1Send 2Receive 1Receive 2Window size = 3072Send 3Receive 3Ack 4Send 4
36、SenderReceiver窗口控制這種可靠傳輸協(xié)議常稱為連續(xù)ARQ (Automatic Repeat reQuest)協(xié)議。91TCP 可靠通信的具體實(shí)現(xiàn) TCP 連接的每一端都必須設(shè)有兩個(gè)窗口一個(gè)發(fā)送窗口和一個(gè)接收窗口。 TCP 的可靠傳輸機(jī)制用字節(jié)的序號(hào)進(jìn)行控制。TCP 所有的確認(rèn)都是基于序號(hào)而不是基于報(bào)文段。 TCP 兩端的四個(gè)窗口經(jīng)常處于動(dòng)態(tài)變化之中。TCP連接的往返時(shí)間 也不是固定不變的。需要使用特定的算法估算較為合理的重傳時(shí)間。 92緩沖區(qū)滿傳輸SenderReceiver基本概念流量控制93緩沖區(qū)滿 未準(zhǔn)備好StopSenderReceiver傳送流量控制94緩沖區(qū)滿 處理數(shù)據(jù)緩沖區(qū)好傳送未準(zhǔn)備好StopSenderReceiver流量控制95緩沖區(qū)滿 處理數(shù)據(jù)緩沖區(qū)好傳送未準(zhǔn)備好Stop就緒GoSenderReceiver流量控制96緩沖區(qū)滿 處理數(shù)據(jù)緩沖區(qū)好傳送未準(zhǔn)備好Stop就緒Go恢復(fù)傳送SenderReceiver流量控制97發(fā)送端接收端Send_Seq=1(1-200)Ack_Seq= 200,WIN=300應(yīng)用進(jìn)程交付200字節(jié)Ack_Seq= 501, WIN=0向應(yīng)用進(jìn)程交付200字節(jié)空閑緩存500字節(jié)300字節(jié)Send_Seq=201 (201-500)0Ack_Seq=501, WIN= 200200字節(jié)暫停發(fā)送Send_Seq=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代短詩(shī)遠(yuǎn)和近
- 石河子大學(xué)《通信原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《葡萄酒市場(chǎng)學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《大數(shù)據(jù)分析與可視化》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《優(yōu)化理論與方法》2021-2022學(xué)年第一學(xué)期期末試卷
- 腫瘤患者的飲食營(yíng)養(yǎng)護(hù)理
- 沈陽(yáng)理工大學(xué)《微波技術(shù)與天線》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《內(nèi)燃機(jī)原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《機(jī)械制造裝備設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《高頻電子電路》2021-2022學(xué)年期末試卷
- 獎(jiǎng)狀證書模板優(yōu)秀員工3
- 教師積分考核表
- 蘇教版四年級(jí)上冊(cè):7.2《含有小括號(hào)的混合運(yùn)算》課件
- 高一年級(jí)政治上學(xué)期期中試題(人教含答案)
- 國(guó)際創(chuàng)傷生命支持培訓(xùn)課前測(cè)試題測(cè)試題
- 蘇教版三年級(jí)數(shù)學(xué)上冊(cè)《認(rèn)識(shí)千克》教案(南通公開課)
- 三年級(jí)上冊(cè)數(shù)學(xué)課件-7.1 認(rèn)識(shí)周長(zhǎng) 西師大版(22張PPT)
- 2021年北京農(nóng)學(xué)院財(cái)務(wù)管理期末精選C試卷
- 部編版七年級(jí)上冊(cè)語文 第三單元 周周清(一)
- JD-BQ(M)電動(dòng)執(zhí)行器技術(shù)規(guī)范書(隔爆)
- 小學(xué)《道德與法治》課堂教學(xué)生活化的研究課題實(shí)施方案
評(píng)論
0/150
提交評(píng)論