第 6 章 通訊協定 TCP.

Slides:



Advertisements
Similar presentations
第 8 章 IP 基礎與定址.
Advertisements

第 12 章 UDP 與 TCP.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
Chapter 12 UDP 與 TCP.
第1章 概述.
数据转发过程.
第 7 章 运输层 基本内容 传输层的概念,TCP/IP体系中的传输层,端口的概念,用户数据报协议UDP,传输控制协议TCP,TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。 重点掌握 TCP/IP体系中的传输控制协议TCP:TCP报文格式、数据的编号与确认、流量控制、拥塞控制、重传机制、TCP的连接管理。
NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作
网络安全威胁与防御策略. TCP/IP Protocols  Contains Five Layers  Top three layers contains many protocols  Actual transmission at the physical layer.
Lab312.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
TCP/IP通訊協定與網路架構 台大計資中心 李美雯
主題五 CPU Learning Lab.
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
第 12 章 UDP 與 TCP.
Chapter 3 Transport Layer (傳輸層).
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
TCP協定 (傳輸層).
FTP 基本原理.
第 6 章 通訊協定 UDP.
Socket () and TCP client-server
Chapter 09 ARP 與 ICMP.
TCP和UDP基本原理.
TCP报文格式.
TCP/UDP協定 10-1 TCP/UDP簡介 10-7 採用TCP或UDP 10-2 連接埠編號 10-8 UDP標頭格式
Internet Protocol (IP)
網路服務 家庭和小型企業網路 – 第六章.
IP協定 (網路層).
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
HiNet 光世代非固定制 用戶端IPv6設定方式說明
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
第4章 OSI傳輸層.
Echo Server/Client Speaker:Fang.
第4讲 传输层之二 本讲目的: 本讲概述: Internet传输层的实现和实例 面向连接的传输: TCP TCP拥塞控制 拥塞控制原则
TCP/IP介紹 講師:陳育良 2018/12/28.
计算机网络(第 5 版) 第 5 章 传输层.
计算机网络 Computer Network
计算机网络 第 7 章 运输层 课件制作人:谢希仁.
實驗目的 明瞭可靠傳輸層的基礎觀念 TCP協定下區段資料傳送的格式
第七讲 网际协议IP.
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
網路安全管理 何謂「安全」(Security) 保護資產之機密性、完整性與可用性;得增加諸如可鑑別性、可歸責性、不可否認性與可靠性。
在WireShark中觀察與分析應用層封包
第十三章 TCP/IP 與 Internet 網路連結技術
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
表單(Form).
Topic Introduction—RMI
TANet PROTOCOL ANALYSIS - WIRESHARK - 350.
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
使用WireShark解析TCP封包 Computer Network Lab2.
Wireshark DNS&HTTP封包分析
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
  传输控制协议 TCP TCP TCP 发送端 接收端 应用进程 应用进程 向发送缓存 写入数据块 从接收缓存 读取数据块 … …
實驗5 IP協定分析 明瞭IP(Internet Protocol;Internet協定)的基礎觀念
WinPXE 無硬碟系統 6.0 安裝說明 憶傑科技股份有限公司
Teardrop Attack 淚滴攻擊 學生:A 葉昱志 指導教授:梁明章 教授.
Speaker : Chang Kai-Jia Date : 2010/04/26
SOCKET( ).
2019/5/3 JAVA Socket(UDP).
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
資料表示方法 資料儲存單位.
ARP攻擊 A 吳峻誠.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
指導教授 :逄愛君 資訊三 B 莊惟舜 資訊三 B 張憶婷 資訊三 B 徐嘉偉
第7章 传输层协议——TCP与UDP 任课教师 卢豫开.
Wireshark 操作.
TCP/IP 簡介.
Presentation transcript:

第 6 章 通訊協定 TCP

TCP/IP 協定組

埠號

TCP 的特性 資料確認與重送 流量控制 連線導向 若目的端未收到某一部份資料, 來源端便可利用重送的機制, 重新傳送該資料。 能視情況調整資料傳輸的速度。 連線導向 利用 TCP 傳輸資料時, 必須先建立 TCP 連線, 彼此協調必要的參數。

圖 12-4 資料流傳送

圖 12-5 送出緩衝器與接收緩器

圖 12-6 TCP 分段

TCP 傳送機制 確認與重送 Sliding Window Send / Receive Window Window Size 與流量控制 以 Byte 為處理單位 雙向傳輸

確認與重送機制 (1) 確認封包已送達

確認與重送機制 (2) 得知封包未送達則重送

Sliding Window 機制 (1) 一開始傳送時, 來源端的 Sliding Window ( 將看得見的 3 個封包送出 )

Sliding Window 機制 (2) 收到目的端回應的 ACK1 後, Sliding Window 便將 Packet 1標示為『完成』

Sliding Window 機制 (3) Sliding Window 往右滑動一格, 再將新進入的 Packet 4 送出

Sliding Window 機制 (4) Sliding Window 會隨著收到的 ACK 封包變化

Send / Receive Window 機制 TCP 來源端的 Sliding Window 稱為 Send Window ( 運作原理先前已說過 )。 TCP 目的端的 Sliding Window 稱為 Receive Window。(用來記錄連續收到的封包與沒有連續收到的封包)

Receive Window 機制 (1) 傳送一開始時, 目的端的 Sliding Window ( 即 Receive Window )

Receive Window 機制 (2) 若目的端先收到 Packet 3, 則只將其標示為『收到』, 而不送出 ACK, 也不移動 Receive Window

Receive Window 機制 (3) 收到最左邊的 Packet 1 後, 送出 ACK 1, 並將 Receive Window 右移一格

Receive Window 機制 (4) 收到 Packet 2 後, 送出 ACK 2 與 ACK 3, 並將 Receive Window 右移二格

Receive Window 機制 (5) Send/Receive Window 的變化情形

Window Size 與流量控制機制 靠 Sliding Window 的大小來調整流量。 Window Size 是由目的端決定。 藉由 ACK 封包, 通知來源端調整傳送封包的速度。

以 Byte 為處理單位機制 (1) 將 TCP 載送的資料視為一個個 Byte 串連而成的 Bytes Stream。並利用序號 (Sequence Number) 來識別資料。

以 Byte 為處理單位機制 (2) ↑ Packet 1、2、3 的序號 ↑ 序號與封包之間的關係

以 Byte 為處理單位機制 (3) ACK 1、2、3 的回應序號

以 Byte 為處理單位機制 (4) 以 Byte 為單位定義 Send Window 的邊界:

以 Byte 為處理單位機制 (5) 以 Byte 為單位定義 Receive Window 邊界:

雙向傳輸機制 (1) 將 TCP 連線想像成由兩條管道所構成的雙向傳輸:

雙向傳輸機制 (2)

TCP 連線 – 連線定義 (1) 由連線兩端的 IP 位址與連接埠編號所定義:

TCP 連線 – 連線定義 (2) B 伺服器可和同一用戶端的不同連接埠建立多條連線, 或是和不同的用戶端同時建立連線

TCP 連線 – 建立連線 在建立連線時, 必須交換以下資訊: 雙方的 Initial Sequence Number。 雙方的 Window Size。 雙方支援的 TCP 選擇性功能。 建立連線的過程稱為『Handshaking』

建立連線 ( Handshaking ) 3 步驟

三路交握

TCP 連線 – 中止連線 經由特定的連線中止步驟, 才能將連線所用的資源 (連接埠、記憶體等等) 釋放出來。 雙方都可以主動提出中止連線的要求。

中止連線 4 步驟

TCP 封包格式 將 TCP 封包交付給 IP (Network 層的協定), 成為 IP Payload:

TCP 表頭

TCP 的運作

封裝及解封裝

多工及解多工

Source Port (來源連接埠編號) 長度為 2 Bytes, 記錄來源端上層應用程式所用的 TCP 連接埠編號。

Destination Port (目的連接埠編號) 長度為 2 Bytes, 記錄目的端上層應用程式所用的 TCP 連接埠編號。

Sequence Number (序號) 長度為 4 Bytes。 記錄 TCP 資料的第 1 Byte, 在『來源端→目的端』傳輸管道 Bytes Stream 中的編號。

Acknowledge Number (回應號碼) 長度為 4 Bytes。 記錄『來源端←目的端』傳輸管道中, 已收到連續性資料在『來源端←目的端』 Bytes Stream 中的編號。

Data Offset (資料長度) 長度為 4 Bits, 記錄 TCP 表頭的長度。 單位為 4 Bytes。例如此欄位值是 5, 代表 TCP 表頭的長度為 20 Bytes。

Reserved (保留) 長度為 6 Bits, 保留用途。

Flags (特殊用途位元) 長度為 6 Bits, 每個 Bit 可代表 TCP 封包的一種 Flag。共有 6 種 Flag: Urgent Acknowledge Push Reset Synchronize Finish

Window (視窗大小) 長度為 2 Bytes。 設定來源端的 Receive Window 大小, 用來控制『來源端←目的端』的流量。

在TCP,送出者窗口的大小完全由接收者窗口所控制,不過實際的窗口可能因為網路壅塞而更小。

有關滑動窗口的幾個觀念 : 1.來源端不需要將整個窗口大小的資料一 次送完。 2.窗口的大小可由目的端的要求,而增大 或減少。 3.目的端可在任何時候送出回應。

Checksum (檢查碼) 長度為 2 Bytes, 記錄錯誤檢查碼。 運作方式與 UDP 的錯誤檢查碼相同。

Urgent Pointer (緊急資料指標) 長度為 2 Bytes。 當 Urgent Flag 設為 1 時, 本欄位記錄 TCP 資料中, 屬於 Urgent 資料的最後一個 Byte。

Options 與 Padding Options 欄位長度不定, 可用來擴充 TCP 的功能。 Padding 欄位是為了讓 TCP 表頭 (包含 Options 欄位) 剛好是 4 Bytes 的倍數。

TCP 常見的選擇性功能 MSS SACK-Permitted SACK

MSS (Maximum Segment Size) 在連線建立時, 用來指定所能傳送 TCP 資料最大的長度。 預設值為 MTU 減去 IP 表頭的最小長度, 再減去 TCP 表頭的最小長度。 以乙太網路為例, MSS 預設值為 1460。

SACK-Permitted 與 SACK SACK-Permitted:在連線建立時, 雙方互相溝通是否要使用 SACK 功能。

擷取建立 TCP 連線時的封包 第一步驟的封包 (1)

擷取建立 TCP 連線時的封包 第一步驟的封包 (2) 1. Browser 所用的連接埠, 屬於 Registered / Dynamic。 2. Web Server 所用的連接埠。已被解讀為 HTTP 所用的 Well-Known 連接埠。 3. 由 Browser 端系統隨機選取的 Initial Sequence Number (ISN Browser → Server)。 4. 尚未收到 Web Server 的 ISN, 所以此處為 0。 5. TCP 表頭的長度。 6. Flag 欄位, 只有 SYN Flag 設為 1。

擷取建立 TCP 連線時的封包 第一步驟的封包 (3) 7. Browser 預設的 Receive Window 大小。 8. 錯誤檢查碼。 9. 由於 Urgent Flag 未設, 所以此欄位為 0。 10.MMS 選項, 乙太網路值為 1460 Bytes。 11.TCP 特別的選項, 沒有任何功能, 可用來在選項之間補白 12.SACK-Permitted 選項, 表示 Browser 端可接受帶有 SACK 選項的 ACK 封包。

擷取建立 TCP 連線時的封包 第二步驟的封包 (1)

擷取建立 TCP 連線時的封包 第二步驟的封包 (2) 1. Web Server 所用的連接埠, 自動以 Hypertext Transfer Protocol 取代 80。 2. Browser 所用的連接埠。 3. 由 Web Server 端系統隨機選取的 Initial Sequence Number ( ISN Browser ← Server )。 4. ISN (Browser → Server) + 1。 5. TCP 表頭的長度。

擷取建立 TCP 連線時的封包 第二步驟的封包 (3) 6. Flag 欄位, ACK 與 SYN Flag 皆設為 1。 7. Web Server 預設的 Receive Window 大小。 8. 錯誤檢查碼。 9. 由於 Urgent Flag 未設, 所以此欄位為 0。 10.MMS 選項, 乙太網路值為 1460 Bytes。 11.SACK-Permitted 選項, 表示 Web Server 端可接受帶有 SACK 選項的 ACK 封包。

擷取建立 TCP 連線時的封包 第三步驟的封包 (1)

擷取建立 TCP 連線時的封包 第三步驟的封包 (2) 1. ISN ( Browser → Server ) + 1。 2. ISN ( Browser ← Server ) + 1。 3. TCP 表頭的長度。由於未使用任何選項, 因此長度為 20 Bytes。 4. Flag 欄位, 只有 ACK Flag 皆設為 1。 5. Browser 的 Receive Window 大小。

擷取傳送資料時的 TCP 封包 HTTP GET (1)

擷取傳送資料時的 TCP 封包 HTTP GET (2) 1. 連線建立完畢後, Browser → Server 的 Sequence Number 仍停留在 ISN (Browser → Server) + 1。 2. 連線建立完畢後, Browser ← Server 的 Sequence Number 仍停留在 ISN (Browser ← Server) + 1。 3. 未使用任何選項, 因此表頭長度為 20 Bytes。 4. Flag 欄位, ACK 與 Push Flag 皆設為 1。

擷取傳送資料時的 TCP 封包 HTTP Response 1. 連線建立完畢後, Browser ← Server 的 Sequence Number 仍停留在 ISN (Browser ← Server) + 1。 2. ISN (Browser → Server) + 1 + 345。