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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論