![計算機網(wǎng)絡(第24講)第6章 運輸層_第1頁](http://file4.renrendoc.com/view/dd9d0ff2a99e271016d06b0319b092cb/dd9d0ff2a99e271016d06b0319b092cb1.gif)
![計算機網(wǎng)絡(第24講)第6章 運輸層_第2頁](http://file4.renrendoc.com/view/dd9d0ff2a99e271016d06b0319b092cb/dd9d0ff2a99e271016d06b0319b092cb2.gif)
![計算機網(wǎng)絡(第24講)第6章 運輸層_第3頁](http://file4.renrendoc.com/view/dd9d0ff2a99e271016d06b0319b092cb/dd9d0ff2a99e271016d06b0319b092cb3.gif)
![計算機網(wǎng)絡(第24講)第6章 運輸層_第4頁](http://file4.renrendoc.com/view/dd9d0ff2a99e271016d06b0319b092cb/dd9d0ff2a99e271016d06b0319b092cb4.gif)
![計算機網(wǎng)絡(第24講)第6章 運輸層_第5頁](http://file4.renrendoc.com/view/dd9d0ff2a99e271016d06b0319b092cb/dd9d0ff2a99e271016d06b0319b092cb5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算機網(wǎng)絡講義1上次課主要內(nèi)容IP多播多播地址局域網(wǎng)多播IGMP和多播路由選擇協(xié)議VPN和NAT運輸層概述UDP協(xié)議計算機網(wǎng)絡講義26.3 TCP傳輸控制協(xié)議TCP 是面向連接的運輸層協(xié)議。每一條 TCP 連接只能有兩個端點(endpoint),每一條 TCP 連接只能是點對點的(一對一)。 TCP 提供可靠交付的服務。 TCP 提供全雙工通信。面向字節(jié)流。計算機網(wǎng)絡講義3768HTCP 面向流的概念 發(fā)送 TCP 報文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應用進程應用進程1230181716151419202145131211H109H加上 TCP 首部構成 TCP 報文段TCP
2、TCP字節(jié)流字節(jié)流H表示 TCP 報文段的首部x表示序號為 x 的數(shù)據(jù)字節(jié)TCP 連接計算機網(wǎng)絡講義4應當注意TCP 連接是一條虛連接而不是一條真正的物理連接。TCP 對應用進程一次把多長的報文發(fā)送到TCP 的緩存中是不關心的。TCP 根據(jù)對方給出的窗口值和當前網(wǎng)絡擁塞的程度來決定一個報文段應包含多少個字節(jié)(UDP 發(fā)送的報文長度是應用進程給出的)。TCP 可把太長的數(shù)據(jù)塊劃分短一些再傳送。TCP 也可等待積累有足夠多的字節(jié)后再構成報文段發(fā)送出去。 計算機網(wǎng)絡講義5TCP 的連接 TCP 把連接作為最基本的抽象。每一條 TCP 連接有兩個端點。TCP 連接的端點不是主機,不是主機的IP 地址,
3、不是應用進程,也不是運輸層的協(xié)議端口。TCP 連接的端點叫做套接字(socket)或插口。端口號拼接到(contatenated with) IP 地址即構成了套接字。 計算機網(wǎng)絡講義6套接字 (socket) 套接字 socket = (IP地址: 端口號) 每一條 TCP 連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。即: TCP 連接 := socket1, socket2 = (IP1: port1), (IP2: port2)TCP首部20 字節(jié)的固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FIN32
4、位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 數(shù)據(jù)部分TCP 首部TCP 報文段IP 數(shù)據(jù)部分IP 首部發(fā)送在前6.3.1 TCP 報文段的格式 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充源端口和目的端口字段各占 2 字節(jié)。端口是運輸層與應用層的服務接口。運輸層的復用和分用功能都要通過端口才能實現(xiàn)。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急
5、 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充序號字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認號字段占 4 字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度
6、 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充數(shù)據(jù)偏移(即首部長度)占 4 位,它指出 TCP 報文段的數(shù)據(jù)起始處距離 TCP 報文段的起始處有多遠?!皵?shù)據(jù)偏移”的單位是 32 位字(以 4 字節(jié)為計算單位)。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充保留字段占 6 位,保留為今后使用,但目前應置為 0。 TCP首部20字節(jié)固定首部目 的 端 口
7、數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急 URG 當 URG 1 時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應盡快傳送(相當于高優(yōu)先級的數(shù)據(jù))。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認 ACK 只有當 ACK 1 時確認號字段才有效。當 ACK 0 時,確認號無效。 TCP首部20
8、字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充推送 PSH (PuSH) 接收 TCP 收到 PSH = 1 的報文段,就盡快地交付接收應用進程,而不再等到整個緩存都填滿了后再向上交付。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充復位 RST (ReSeT) 當 RST 1 時,表明 TC
9、P 連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充同步 SYN 同步 SYN = 1 表示這是一個連接請求或連接接受報文。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充終止 FIN (FIN
10、is) 用來釋放一個連接。FIN 1 表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充窗口字段 占 2 字節(jié),用來讓對方設置發(fā)送窗口的依據(jù),單位為字節(jié)。TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充檢驗和 占 2 字節(jié)。檢
11、驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節(jié)的偽首部。TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急指針字段 占 16 位,指出在本報文段中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特
12、0 8 16 24 31填 充選項字段 長度可變。TCP 最初只規(guī)定了一種選項,即最大報文段長度 MSS。MSS 告訴對方 TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是 MSS 個字節(jié)?!?MSS (Maximum Segment Size)是 TCP 報文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上 TCP 首部才等于整個的 TCP 報文段。計算機網(wǎng)絡講義23其他選項窗口擴大選項 占 3 字節(jié),其中有一個字節(jié)表示移位值 S。新的窗口值等于TCP 首部中的窗口位數(shù)增大到(16 + S),相當于把窗口值向左移動 S 位后獲得實際的窗口大小。時間戳選項占10 字節(jié),其中最主要的字段時間戳值字
13、段(4 字節(jié))和時間戳回送回答字段(4 字節(jié))。選擇確認選項在后面介紹。 TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充填充字段 這是為了使整個首部長度是 4 字節(jié)的整數(shù)倍。 計算機網(wǎng)絡講義256.3.2 TCP可靠傳輸?shù)膶崿F(xiàn)TCP 連接的每一端都必須設有兩個窗口一個發(fā)送窗口和一個接收窗口。 TCP 的可靠傳輸機制用字節(jié)的序號進行控制。TCP 所有的確認都是基于序號而不是基于報文段。 TCP 兩端的四個窗口經(jīng)常處于動態(tài)變化之中。TCP連
14、接的往返時間 RTT 也不是固定不變的。需要使用特定的算法估算較為合理的重傳時間。 計算機網(wǎng)絡講義261、以字節(jié)為單位的可變大小的滑動窗口前移不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口 = 20允許發(fā)送的序號26272829303132333435363738394041424344454647484950515253545556B 期望收到的序號前沿后沿前移收縮根據(jù) B 給出的窗口值A 構造出自己的發(fā)送窗口 TCP 標準強烈不贊成發(fā)送窗口前沿向后收縮 不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口位置不變允許發(fā)送但尚未發(fā)送262728293031323334353637383940414243444
15、546474849505152535455已發(fā)送但未收到確認56P1P2P3不允許接收已發(fā)送確認并交付主機B 的接收窗口允許接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口A 發(fā)送了 11 個字節(jié)的數(shù)據(jù) P3 P1 = A 的發(fā)送窗口(又稱為通知窗口)P2 P1 = 已發(fā)送但尚未收到確認的字節(jié)數(shù)P3 P2 = 允許發(fā)送但尚未發(fā)送的字節(jié)數(shù)(又稱為可用窗口) 允許發(fā)送但尚未發(fā)送A 的發(fā)送窗口向前滑動2627282930313233343536373839404142434445464748495051
16、52535455已發(fā)送并收到確認不允許發(fā)送已發(fā)送但未收到確認56P1P2P3允許接收B 的接收窗口向前滑動262728293031323334353637383940414243444546474849505152535455已發(fā)送確認并交付主機不允許接收56未按序收到A 收到新的確認號,發(fā)送窗口向前滑動 先存下,等待缺少的數(shù)據(jù)的到達不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口已滿,有效窗口為零262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認56P1P2P3A 的發(fā)送窗口內(nèi)的序號都已用完,但還沒有再收到確認,
17、必須停止發(fā)送。 計算機網(wǎng)絡講義302、發(fā)送緩存 最后被確認的字節(jié)發(fā)送應用程序發(fā)送緩存最后發(fā)送的字節(jié)發(fā)送窗口已發(fā)送TCP序號增大計算機網(wǎng)絡講義313、接收緩存接收應用程序已收到接收窗口TCP接收緩存下一個讀取的字節(jié)序號增大下一個期望收到的字節(jié)(確認號)計算機網(wǎng)絡講義324、發(fā)送緩存與接收緩存的作用發(fā)送緩存用來暫時存放: 發(fā)送應用程序傳送給發(fā)送方 TCP 準備發(fā)送的數(shù)據(jù); TCP 已發(fā)送出但尚未收到確認的數(shù)據(jù)。接收緩存用來暫時存放: 按序到達的、但尚未被接收應用程序讀取的數(shù)據(jù); 不按序到達的數(shù)據(jù)。 計算機網(wǎng)絡講義33需要強調(diào)三點A 的發(fā)送窗口并不總是和 B 的接收窗口一樣大(因為有一定的時間滯后)
18、。TCP 標準沒有規(guī)定對不按序到達的數(shù)據(jù)應如何處理。通常是先臨時存放在接收窗口中,等到字節(jié)流中所缺少的字節(jié)收到后,再按序交付上層的應用進程。TCP 要求接收方必須有累積確認的功能,這樣可以減小傳輸開銷。 計算機網(wǎng)絡講義345、超時重傳時間的選擇重傳機制是 TCP 中最重要和最復雜的問題之一。TCP 每發(fā)送一個報文段,就對這個報文段設置一次計時器。只要計時器設置的重傳時間到但還沒有收到確認,就要重傳這一報文段。計算機網(wǎng)絡講義35往返時延的方差很大由于 TCP 的下層是一個互聯(lián)網(wǎng)環(huán)境,IP 數(shù)據(jù)報所選擇的路由變化很大。因而運輸層的往返時間的方差也很大。時間數(shù)據(jù)鏈路層運輸層T1T2T3往返時間的概率
19、分布計算機網(wǎng)絡講義36加權平均往返時間TCP 保留了 RTT 的一個加權平均往返時間 RTTS(這又稱為平滑的往返時間)。第一次測量到 RTT 樣本時,RTTS 值就取為所測量到的 RTT 樣本值。以后每測量到一個新的 RTT 樣本,就按下式重新計算一次 RTTS: 新的 RTTS (1 ) (舊的 RTTS) (新的 RTT 樣本) 式中,0 1。若 很接近于零,表示 RTT 值更新較慢。若選擇 接近于 1,則表示 RTT 值更新較快。RFC 2988 推薦的 值為 1/8,即 0.125。 計算機網(wǎng)絡講義37超時重傳時間 RTO (RetransmissionTime-Out) RTO 應
20、略大于上面得出的加權平均往返時間 RTTS。RFC 2988 建議使用下式計算 RTO: RTO RTTS + 4 RTTD RTTD 是 RTT 的偏差的加權平均值。RFC 2988 建議這樣計算 RTTD。第一次測量時,RTTD 值取為測量到的 RTT 樣本值的一半。在以后的測量中,則使用下式計算加權平均的 RTTD:新的 RTTD = (1 ) (舊的RTTD) + RTTS 新的 RTT 樣本 是個小于 1 的系數(shù),其推薦值是 1/4,即 0.25。計算機網(wǎng)絡講義38往返時間 RTT?往返時間的測量相當復雜 TCP 報文段 1 沒有收到確認。重傳(即報文段 2)后,收到了確認報文段 A
21、CK。如何判定此確認報文段是對原來的報文段 1 的確認,還是對重傳的報文段 2 的確認? 發(fā)送一個TCP 報文段超時重傳TCP 報文段收到 ACK時間12往返時間 RTT?是對哪一個報文段的確認?計算機網(wǎng)絡講義39Karn 算法 在計算平均往返時間 RTT 時,只要報文段重傳了,就不采用其往返時間樣本。這樣得出的加權平均平均往返時間 RTTS 和超時重傳時間 RTO 就較準確。 計算機網(wǎng)絡講義40報文段每重傳一次,就把 RTO 增大一些:新的 RTO (舊的 RTO) 系數(shù) 的典型值是 2 。當不再發(fā)生報文段的重傳時,才根據(jù)報文段的往返時延更新平均往返時延 RTT 和超時重傳時間 RTO 的數(shù)
22、值。實踐證明,這種策略較為合理。 修正的 Karn 算法 計算機網(wǎng)絡講義416、選擇確認 SACK(Selective ACK) 接收方收到了和前面的字節(jié)流不連續(xù)的兩個字節(jié)塊。如果這些字節(jié)的序號都在接收窗口之內(nèi),那么接收方就先收下這些數(shù)據(jù),但要把這些信息準確地告訴發(fā)送方,使發(fā)送方不要再重復發(fā)送這些已收到的數(shù)據(jù)。 計算機網(wǎng)絡講義421 1000 1501 3000 3501 4500確認號 = 1001L1 = 1501L2 = 3501R1 = 3001R1 = 4501接收到的字節(jié)流序號不連續(xù) 連續(xù)的字節(jié)流第一個字節(jié)塊第二個字節(jié)塊 和前后字節(jié)不連續(xù)的每一個字節(jié)塊都有兩個邊界: 左邊界和右邊界
23、。圖中用四個指針標記這些邊界。 第一個字節(jié)塊的左邊界 L1 = 1501,但右邊界 R1 = 3001。 左邊界指出字節(jié)塊的第一個字節(jié)的序號,但右邊界減 1 才是 字節(jié)塊中的最后一個序號。 第二個字節(jié)塊的左邊界 L2 = 3501,而右邊界 R2 = 4501。 計算機網(wǎng)絡講義43RFC 2018 的規(guī)定如果要使用選擇確認,那么在建立 TCP 連接時,就要在 TCP 首部的選項中加上“允許 SACK”的選項,而雙方必須都事先商定好。如果使用選擇確認,那么原來首部中的“確認號字段”的用法仍然不變。只是以后在 TCP 報文段的首部中都增加了 SACK 選項,以便報告收到的不連續(xù)的字節(jié)塊的邊界。由于
24、首部選項的長度最多只有 40 字節(jié),而指明一個邊界就要用掉 4 字節(jié),因此在選項中最多只能指明 4 個字節(jié)塊的邊界信息。計算機網(wǎng)絡講義446.3.3 TCP的流量控制一般說來,我們總是希望數(shù)據(jù)傳輸?shù)酶煲恍?。但如果發(fā)送方把數(shù)據(jù)發(fā)送得過快,接收方就可能來不及接收,這就會造成數(shù)據(jù)的丟失。流量控制(flow control)就是讓發(fā)送方的發(fā)送速率不要太快,既要讓接收方來得及接收,也不要使網(wǎng)絡發(fā)生擁塞。利用滑動窗口機制可以很方便地在 TCP 連接上實現(xiàn)流量控制。 seq = 1, DATAseq = 201, DATAseq = 401, DATAseq = 301, DATAseq = 101, DATAseq = 201, DATAseq = 501, DATAACK =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面上基金申請書
- 中國電動三極管成型機項目投資可行性研究報告
- 2025年中國智能網(wǎng)聯(lián)汽車行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃報告
- 現(xiàn)代教育建筑供電智能化創(chuàng)新模式實踐案例分析
- 電商銷售模式在農(nóng)業(yè)領域的應用與挑戰(zhàn)
- 熱障涂層用MCrAlY粘結(jié)層成分改性及氧化行為研究
- 2025年金屬電渡項目可行性研究報告
- 木質(zhì)素基碳材料的制備及其吸附、光催化降解中的應用
- 2025年金屬專用工具項目投資可行性研究分析報告
- 空氣氣氛下α-FAPbI3鈣鈦礦薄膜的低溫制備及其器件性能研究
- 單縣煙草專賣局QC課題多維度降低行政處罰文書出錯率
- 毫針刺法(全)教學課件
- 金風科技-風電產(chǎn)業(yè)集團-供應商現(xiàn)場作業(yè)基礎安全考試附答案
- 人工智能機器人科學小報手抄報簡報
- 三年級下冊美術課件-第1課 燈彩輝映|浙美版 (共19張PPT)
- 硫酸銨廢水MVR蒸發(fā)結(jié)晶
- 原子物理學第五章-多電子原子:泡利原理
- 35kV輸電線路工程旋挖鉆孔專項施工方案
- 開學第一課(七下數(shù)學)
- 固定資產(chǎn)借用登記表
- 行業(yè)會計比較ppt課件(完整版)
評論
0/150
提交評論