CH5-傳輸層-TCP實現(xiàn).ppt_第1頁
CH5-傳輸層-TCP實現(xiàn).ppt_第2頁
CH5-傳輸層-TCP實現(xiàn).ppt_第3頁
CH5-傳輸層-TCP實現(xiàn).ppt_第4頁
CH5-傳輸層-TCP實現(xiàn).ppt_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,計算機網(wǎng)絡(luò),第 5 章 傳輸層,2,第 5 章 傳輸層,5.1 傳輸層協(xié)議概述 5.2 用戶數(shù)據(jù)報協(xié)議 UDP 5.3 傳輸控制協(xié)議 TCP 概述 5.4 TCP 的傳輸連接管理 5.5 TCP 報文段的首部格式,3,4,5.4 TCP 的傳輸連接管理,5.4.1 TCP 的連接建立 5.4.2 TCP 的連接釋放 5.4.3 TCP 連接的實現(xiàn),5,用三次握手建立 TCP 連接的各狀態(tài),CLOSED,CLOSED,A,B,客戶,服務(wù)器,5.4.1 TCP 的連接建立,6,5.4.3 TCP連接的實現(xiàn),操作系統(tǒng)的系統(tǒng)調(diào)用(system call)機制 操作系統(tǒng)通過系統(tǒng)調(diào)用在應(yīng)用程序和操作系統(tǒng)之間傳遞控制權(quán)。 對程序員來說,每一個系統(tǒng)調(diào)用和一般程序設(shè)計中的函數(shù)調(diào)用非常相似,只是系統(tǒng)調(diào)用是將控制權(quán)傳遞給了操作系統(tǒng)。,多個應(yīng)用進程 使用系統(tǒng)調(diào)用的機制,應(yīng)用程序 1,應(yīng)用程序 2,應(yīng)用程序 n,由應(yīng)用程序調(diào)用的系統(tǒng)函數(shù),包括 TCP/IP 協(xié)議軟件的操作系統(tǒng)內(nèi)核,8,應(yīng)用編程接口 API (Application Programming Interface),當(dāng)某個應(yīng)用進程啟動系統(tǒng)調(diào)用時,控制權(quán)就從應(yīng)用進程傳遞給了系統(tǒng)調(diào)用接口。 操作系統(tǒng)將此調(diào)用轉(zhuǎn)給某個內(nèi)部過程,并執(zhí)行所請求的操作。 內(nèi)部過程一旦執(zhí)行完畢,控制權(quán)就又通過系統(tǒng)調(diào)用接口返回給應(yīng)用進程。 系統(tǒng)調(diào)用接口實際上就是應(yīng)用進程的控制權(quán)和操作系統(tǒng)的控制權(quán)進行轉(zhuǎn)換的一個接口,即應(yīng)用編程接口 API。,9,應(yīng)用進程通過套接字接入到網(wǎng)絡(luò),應(yīng)用進程,TCP,由應(yīng)用程序 控制,因特網(wǎng),由操作系統(tǒng) 控制,客戶,服務(wù)器,套接字,TCP,應(yīng)用進程,套接字,10,套接字的作用,操作系統(tǒng)創(chuàng)建套接字 應(yīng)用進程請求操作系統(tǒng)為其創(chuàng)建“套接字”,以便把網(wǎng)絡(luò)通信所需要的系統(tǒng)資源分配給該應(yīng)用進程; 操作系統(tǒng)建立套接字描述符 建立好后,把此號碼返回給應(yīng)用進程。應(yīng)用進程所進行的網(wǎng)絡(luò)操作都必須使用這個號碼。 應(yīng)用進程關(guān)閉套接字 通信完畢后,應(yīng)用進程通過一個關(guān)閉套接字的系統(tǒng)調(diào)用通知操作系統(tǒng)回收與該“號碼”相關(guān)的所有資源。,11,套接字描述符表 (每一個進程一個描述符),0: 1: 2: 3: 4:,操作系統(tǒng),套接字的數(shù)據(jù)結(jié)構(gòu),協(xié)議族:PF_INET,服務(wù):SOCK_STREAM,本地 IP 地址:,遠地 IP 地址:,本地端口:,遠地端口:,調(diào)用 socket 創(chuàng)建套接字,12,首 部,0,4,8,16,19,24,31,版 本,標(biāo)志,生 存 時 間,協(xié) 議,標(biāo) 識,總 長 度,片 偏 移,填 充,首 部 檢 驗 和,源 地 址,目 的 地 址,可 選 字 段 (長 度 可 變),位,首部長度,數(shù) 據(jù) 部 分,固 定 部 分,可變 部分,區(qū) 分 服 務(wù),13,運輸層,網(wǎng)絡(luò)層,首部,TCP,UDP,ICMP,IGMP,OSPF,數(shù) 據(jù) 部 分,IP 數(shù)據(jù)報,14,TCP 首部,20 字節(jié)的 固定首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,32 位,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,TCP 數(shù)據(jù)部分,TCP 首部,TCP 報文段,IP 數(shù)據(jù)部分,IP 首部,發(fā)送在前,TCP 報文段的首部格式,15,幾種常用的系統(tǒng)調(diào)用 1. 連接建立階段,把本地地址綁定到套接字 當(dāng)套接字被創(chuàng)建后,它的端口號和 IP 地址都是空的,因此應(yīng)用進程要調(diào)用 bind(綁定)來指明套接字的本地地址。在服務(wù)器端調(diào)用 bind 時就是把熟知端口號和本地IP地址填寫到已創(chuàng)建的套接字中。 服務(wù)器進入被動監(jiān)聽方式 在調(diào)用 bind 后,還必須調(diào)用 listen(收聽)把套接字設(shè)置為被動方式,以便隨時接受客戶的服務(wù)請求。 UDP服務(wù)器由于只提供無連接服務(wù),不使用 listen 系統(tǒng)調(diào)用。 服務(wù)器進入接受方式 緊接著就調(diào)用 accept(接受),以便把遠地客戶進程發(fā)來的連接請求提取出來; 系統(tǒng)調(diào)用 accept 的一個變量就是要指明從哪一個套接字發(fā)起的連接。,16,系統(tǒng)調(diào)用使用順序的例子,服務(wù)器端,socket,bind,listen,accept,recv,send,close,客戶端,socket,recv,send,close,connect,連接建立請求,17,伯克利套接字(Berkeley Socket),TCP套接字傳輸原語,18,第 5 章 傳輸層,5.1 傳輸層協(xié)議概述 5.2 用戶數(shù)據(jù)報協(xié)議 UDP 5.3 傳輸控制協(xié)議 TCP 概述 5.4 TCP 的傳輸連接管理 5.5 TCP 報文段的首部格式,19,第 5 章 傳輸層,5.1 傳輸層協(xié)議概述 5.2 用戶數(shù)據(jù)報協(xié)議 UDP 5.3 傳輸控制協(xié)議 TCP 概述 5.4 TCP 的傳輸連接管理 5.5 TCP 報文段的首部格式,20,TCP 首部,20 字節(jié)的 固定首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,32 位,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,TCP 數(shù)據(jù)部分,TCP 首部,TCP 報文段,IP 數(shù)據(jù)部分,IP 首部,發(fā)送在前,5.5 TCP 報文段的首部格式,21,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,源端口和目的端口字段各占 2 字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。,22,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,序號字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。,23,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,確認號字段占 4 字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。,24,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,數(shù)據(jù)偏移(即首部長度)占 4 位,它指出 TCP 報文段的數(shù)據(jù)起始處距離 TCP 報文段的起始處有多遠?!皵?shù)據(jù)偏移”的單位是 32 位字(以 4 字節(jié)為計算單位)。,25,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,保留字段占 6 位,保留為今后使用,但目前應(yīng)置為 0。,26,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,緊急 URG 當(dāng) URG 1 時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))。,27,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,確認 ACK 只有當(dāng) ACK 1 時確認號字段才有效。當(dāng) ACK 0 時,確認號無效。,28,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,推送 PSH (PuSH) 接收 TCP 收到 PSH = 1 的報文段,就盡快地交付接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。,29,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,復(fù)位 RST (ReSeT) 當(dāng) RST 1 時,表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。,30,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,同步 SYN 同步 SYN = 1 表示這是一個連接請求或連接接受報文。,31,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,終止 FIN (FINis) 用來釋放一個連接。FIN 1 表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。,32,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,窗口字段 占 2 字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。,33,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,檢驗和 占 2 字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節(jié)的偽首部。,34,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,緊急指針字段 占 16 位,指出在本報文段中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)。,35,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗 和,選 項 (長 度 可 變),源 端 口,序 號,緊 急 指 針,窗 口,確 認 號,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 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 報文段。,36,其他選項,窗口擴大選項 占 3 字節(jié),其中有一個字節(jié)表示移位值 S。新的窗口值等于TCP 首部中的窗口位數(shù)增大到(16 + S),相當(dāng)于把窗口值向左移動 S 位后獲得實際的窗口大小。 時間戳選項占10 字節(jié),其中最主要

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論