700 likes | 816 Views
本投影片檔案僅供本書上課 教師 使用 , 非經 作者 同意請勿拷貝或轉載,謝謝。 教學單位若需教材上網,請洽旗標業務取得另一 Web 版,以免觸法,謝謝‧. 大綱. 簡介 埠編號 UDP TCP 序列號碼 緩衝區與滑動訊窗 TCP 標頭欄位定義與實例解析 TCP 連線的啟動與結束 TCP 協定選擇項. 簡介. 傳輸層介於網路層與會議層之間 傳輸層協定標頭位於網路層協定標頭後 TCP/IP 協定架構下 TCP Transmission Control Protocol; 傳輸控制協定 UDP
E N D
本投影片檔案僅供本書上課教師使用,非經作者同意請勿拷貝或轉載,謝謝。本投影片檔案僅供本書上課教師使用,非經作者同意請勿拷貝或轉載,謝謝。 教學單位若需教材上網,請洽旗標業務取得另一Web版,以免觸法,謝謝‧
大綱 • 簡介 • 埠編號 • UDP • TCP • 序列號碼 • 緩衝區與滑動訊窗 • TCP標頭欄位定義與實例解析 • TCP連線的啟動與結束 • TCP協定選擇項
簡介 • 傳輸層介於網路層與會議層之間 • 傳輸層協定標頭位於網路層協定標頭後 • TCP/IP協定架構下 • TCP • Transmission Control Protocol;傳輸控制協定 • UDP • User Datagram Protocol;使用者資料報協定
TCP與UDP • Examples: • TCP: FTP、Telnet、SMTP、POP3等 • UDP:音視訊資料的傳輸、DNS、SNMP、NFS、BOOTP
埠編號 (Port Number) • 傳輸層的定址工作 • 在網路層定址之外,定義一個參數做為相同節點間不同通訊服務的辨識
埠編號 • 佔16位元 • 埠編號由ICANN的IANA所管轄 • Internet Corporation for Assigned Names and Numbers • 網際網路名稱與數字位址分配機構 • 分為三種類型 • 公認埠:公共、常用服務應用程式 • 註冊埠:一般應用服務程式向IANA註冊後使用 • 動態埠:不被註冊佔用,提供自由運用
客戶端 (Client) 埠編號 • IANA規範的埠編號是針對伺服端 (Server) • 客戶端埠編號與伺服端埠編號的設定分開 • 相互不衝突 • 隨機產生 • 常設在1,024 ~ 4,096
UDP 協定 • 一種非可靠性的傳輸模式 • 不會檢測是否已經成功地將資料傳送給對方 • UDP標頭 • UDP訊息長度 : 以位元組為單位 • 記錄UDP標頭及其所屬資料的總合長度
Checksum值運算 • 標頭、資料、虛擬標頭 (Pseudo Header) • Checksum:16個位元為單位,運用1補數演算法執行加總後,再求1的補數 • 虛擬標頭 • 對網路層再次檢測,也破壞各層級各自負責的原則,是好是壞:見仁見智
TCP 協定 • 高可靠度的資料傳輸 • 比UDP複雜的標頭格式與定義 • 提供豐富的通訊控制功能 • 詳細對TCP標頭各欄位定義說明之前 • TCP協定序列號碼 (Sequence Number) • 滑動視窗 (Sliding Window)
序列號碼 • 用以記錄傳送資料過程的累積序號 • 隨傳送完成的位元組數進行循環累加 • 最初 TCP序號累加以「封包數」為累進單位 • 目前則以「位元組數」為單位 • 對100Mbps傳輸速率的系統而言,序號的循環累加大約14天才循環一次 • 因傳輸延遲與等待,實際時程會更長 • 更快網路架構,序號循環時間會更短 • > > IP TTL 的255秒 • 且遇上相同序號的機率也相當微小
回應號碼欄位 • 與序列號碼一起運作 • 告知資料順利收到 • 象徵期望下次收到對方來信的序列號碼
滑動訊窗 (Sliding Windows)
滑動訊窗 (1/2) • 緩衝區也稱之為「訊窗」(Windows) • 訊窗大小由各項參考參數調整 • 單位 • 封包數量:HDLC 、X.25 • 位元組數:TCP • 整體可用的訊窗大小固定 • 剩餘訊窗容量記錄在標頭Window欄位
TCP標頭 • 由於TCP協定的高可靠度傳輸要求 • TCP標頭比UDP標頭要複雜得多
TCP 欄位定義 (1~4) • Source Port Number (來源埠編號) • Destination Port Number (目的埠編號) • Sequence Number (序列號碼) • Acknowledgement Number (回應號碼) • Example: • 140.134.28.206 (簡稱206節點) 與140.134.36.110 (簡稱110節點) 間的傳輸 • 開始時序號分別為10072715與22385505
206節點與110節點 (1/6) • 訊息長度49 (107-20-20-18) 位元組
206節點與110節點 (2/6) • 10072764 = 10072715 + 49
206節點與110節點 (3/6) • 60位元組資料傳送 (60=118-20-20-18)
206節點與110節點 (4/6) • 10072824=10072764+60 • 13 (=71-58) 個位元組資料的傳送
206節點與110節點 (5/6) • 22385518=22385505+13
206節點與110節點 (6/6) • 10072861=10072824+37
TCP 欄位定義 (5,6) • HLEN (Header Length;4位元) • 記錄TCP標頭長度 • 以四個位元組為單位 • 沒有選擇項,HLEN值為5 => 20位元組 • 也代表資料從TCP標頭開始位置起算的開端 • 也稱Data Offset (資料位移) 欄位 • Reserved (保留位元;4位元) • 未使用,四位元,設為0
TCP 欄位定義 (7) • 控制旗標欄位 (Control Flag) • 用來對TCP封包進行控制 • CWR (Congestion Window Reduced;擁塞視窗已降低) • ECE (ECN Echo;明確擁塞通知回聲)
控制旗標欄位 (2/3) • URG (Urgent;緊急) • 1:緊急資料,需立即處理 • Ex: Crtl-C • 位置 : 緊急指標 (Urgent Pointer) 欄位描述 • ACK (Acknowledgement;回應) • 1:帶回應確認訊息 • 一般的TCP封包,此旗標通常都設為1 • PSH (Push;推進) • 1:直接送往上層應用程式,不經TCP處理,或等待緩衝區完全接收資料後再處理,Ex: Enter • 圖9.17~圖9.22,除圖9.18外都以PSH進行
控制旗標欄位 (3/3) • RST (Reset;重設) • 1:重新對TCP封包進行設定傳送 • SYN (Synchronize;同步) • 1:進行雙方同步溝通 • 每次TCP連線建立之初,都必須執行 • FIN (Final;結束) • 1:連線結束訊息
TCP 欄位定義 (8-9) • Window欄位 : 16個位元 • 記錄緩衝區剩下的資料空間 • Example :圖9.17~圖9.22 • Checksum欄位 : 與UDP類似 • TCP標頭、資料以及虛擬標頭三部分 • 以16位元為單位,1補數演算法,再求1的補數 • 運算時,標頭Checksum欄位 : 0
TCP 欄位定義 (10-11) • Urgent Pointer(緊急指標);16位元 • 旗標URG位元為1時才會運用 • 描述緊急資料所在位置 • Ex:資料流量超過網路的頻寬時,系統發出緊急訊息,要求網路主機暫緩傳送資料封包 • TCP Options (選擇項) 欄位 • 可變長度欄位 : 32位元整數倍 • 不足32位元 : 加填充位元 (Padding) • 最常見的TCP選擇項 • 定義傳送封包的最大值 • SACK機制