1 / 51

TCP/IP 簡介

TCP/IP 簡介. Outlines. TCP/IP Protocol Stack Internet Protocol(IP) User Datagram Protocol(UDP) Transmission Control Protocol(TCP). TCP/IP Introduction. ARPANET & TCP/IP history Internet v.s. internet Internet: 以 ARPANET 為前身的世界性網路 internet: 指稱以 IP 所架構的網路. TCP/IP 的特點.

Télécharger la présentation

TCP/IP 簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP 簡介

  2. Outlines • TCP/IP Protocol Stack • Internet Protocol(IP) • User Datagram Protocol(UDP) • Transmission Control Protocol(TCP)

  3. TCP/IP Introduction • ARPANET & TCP/IP history • Internet v.s. internet • Internet:以 ARPANET 為前身的世界性網路 • internet:指稱以 IP 所架構的網路

  4. TCP/IP 的特點 • TCP/IP 是 Open Protocol Standard。 • TCP/IP 不受限於特定的網路硬體。 • TCP/IP 不受限於特定的作業系統。 • 適用的 Addressing(定址設計)。 • 標準化的高階協定,提供 Users 廣泛而一致的服務。

  5. TCP/IP 與 OSI 的對應 4. 應用層Application Layer 7. Application Layer 6. Presentation Layer 5. Session Layer 3. 傳輸層 Host-to-host Transport Layer 4. Transport Layer 2. 網際層 Internet Layer 3. Network Layer 1. 網路存取層 Network Access Layer 2. Data Link Layer 1. Physical Layer

  6. TCP/IP 的層級 4. 應用層 Application Layer 由網路應用程式與相關的處理程序所組成 3. 傳輸層 Host-to-host Transport Layer 提供端點對端點的資料傳遞服務 2. 網際層 Internet Layer 定義資料段並掌控資料的傳輸路徑 1. 網路存取層 Network Access Layer 定義存取實體網路的例行程序

  7. TCP/IP 的資料結構 TCP 資料流(stream) UDP 訊息(message) 應用層 傳輸層 資料節(segment) 封包(packet) 網際層 資料段(datagram) 資料段(datagram) 網路存取層 訊框(frame) 訊框(frame)

  8. TCP/IP 的資料封裝(Encapsulation) 應用層 資料 stream、message 發送 接收 傳輸層 表頭 資料 segment、packet 網際層 表頭 表頭 資料 datagram 封裝 Encapsulation 解封裝 Decapsulation 網路存取層 表頭 表頭 表頭 資料 frame Note: 表頭 header

  9. 網路存取層Network Access Layer • 包含 OSI 的最低二層,其功能為: • 把 IP 資料段封裝到網路所傳送的訊框內 • 把 IP 位址對應到網路使用的實體位址 • 網路存取協定種類繁多,各對應一種實體網路標準,以驅動程式的形態出現。 • 最常用的網路存取層協定: • RFC826,位址解析協定(Address Resolution Protocol,ARP),把IP位址對應成Ethernet位址。 • RFC894,規範 IP 資料段封裝的一套標準。

  10. 網際層 Internet Layer • 提供異質網路上的定址能力與資料封包格式的轉換。 • 最常用的網際層協定: • RFC 791,網際協定(Internet Protocol,IP),提供基本的封包傳送服務。 • RFC 792,網際控制訊息協定(Internet Control Message Protocol,ICMP),透過IP來傳送控制訊號。

  11. 傳輸層 Host-to-host Transport Layer • 提供端點對端點之間的資料傳輸服務。 • 最常用的網際層協定: • 使用者資料段協定(User Datagram Protocol,UDP),只負責將訊息傳到網路上,是一種不可靠、非連結導向的協定。 • RFC 793,傳輸控制協定(Transmission Control Protocol,TCP),會檢查資料是否循序正確的傳到網路上,提供可靠、連結導向的傳輸服務。 • 使用者依據應用程式的特性來選擇TCP或UDP。

  12. 可靠 v.s. 不可靠 • 可靠(reliable):檢查資料是否依適當順序正確地傳過網路 • 不可靠(unreliable):表示此協定不包含驗證資料是否正確到達網路另一端的技術。

  13. 連結導向 v.s. 非連結導向 • 連結導向(connection-oriented):在傳送資料前,會和遠端主機交換控制訊息(handshake),以確定對方已準備好接收資料。當handshake完成,就表示已建立connection。 • 非連結導向(connectionless):表示此協定只負責將訊息傳到網路上,不在傳輸資料前先建立connection ,不檢查資料是否被接收。

  14. Connection-oriented v.s. Connectionless • Connection-oriented(WWW,FTP,Email,….) • Telephone System • Users first establishes a connection, uses the connection and then releases the connection. • Slow speed. • Connectionless(DNS,broadcast,….) • Postal System • No connection is established • Quick speed.

  15. 應用層 Application Layer • 定義如何利用傳輸層協定來遞送資料的程序。 • 大多為提供服務給使用者的 protocol。

  16. 常見的應用層協定(1/3) • telnet:網路終端機協定(Network Terminal Protocol),提供透過網路遠端登入(remote login)的服務。 • FTP:檔案傳輸協定(File Transfer Protocol),讓使用者可以與遠端的主機傳輸檔案。 • SMTP:簡易郵件傳送協定(Simple Mail Transfer Protocol),傳送電子郵件。 • HTTP:超文件傳輸協定(Hyper Test Transfer Protocol),透過網路傳送網頁。

  17. 常見的應用層協定(2/3) • DNS:網域名稱服務(Domain Name Server),將網路裝置的名稱對應到 IP 位址。 • OSPF:開放式最短路徑優先協定(Open Shortest Path First),網路設備可透過 OSPF 交換選徑資訊。 • NFS:網路檔案系統(Network File System),讓網路上每個主機可共享檔案。

  18. 常見的應用層協定(3/3) • SNMP:簡單網路管理協定(Simple Network Management Protocol),管理網路運作。

  19. TCP/IP Architecture PING TFTP BOOTP Telnet FTP SMTP ICMP UDP TCP IP ARP RARP PPP RS-232C Driver Ethernet Driver UART Ethernet

  20. 網際協定(Internet Protocol,IP) • 提供基本封包傳送服務: • 定義 Internet 基本的傳送單位:資料段(segment)的格式。 • 定義 Internet 的定址方式。 • 在網路存取層與傳輸層之間移動資料。 • 決定資料段到遠端主機的路徑(route)。 • 執行資料段的分解與重組。

  21. IP 的特性 • IP 提供非連線性的服務(Connectionless) • IP 在傳送資料前,不會和遠端主機交換控制訊息(handshake)建立連線。 • IP 是不可靠(Un-reliable)的協定 • IP 不具備錯誤偵測(Error Detection)與錯誤更正(Error Correction)的功能。 • Variable Length of Datagram • Best Effort Delivery

  22. Variable Length of Datagram • 對 IPv4 而言,應用程式可調整 IP datagram 的長度的特性,使得 IP 可適用於各種不同的應用。 • 一個 datagram 容納(來自上層)的資料量最少為一個 byte,最多為 64K bytes。 • IP header 會含有所有傳送該 Datagram 的 Information。

  23. Best-Effort Delivery • IP 不處理下列的問題 • Datagram遺失 • 延遲或順序不對 • 資料損壞 • Datagram 重覆接收 • 因為 IP 被設計用於任何實體網路,因此底層的實體網路可能不可靠,造成IP datagram 遺失、重覆接收、延遲、順序不對或損壞。IP上層的協定程式必須要處理這些問題。

  24. The IP datagram header format

  25. IP 的資料段 Datagram Bit 0 4 8 16 24 31 1 版本 IHL 服務型態 總長度 2 識別碼 旗標 段落的偏移量 字組Word 3 存活時間 協定號碼 表頭的加總查核碼 表頭Header 4 來源位址 目的位址 5 6 選項 填補 資料由此開始…

  26. IP Datagram Header欄位(1) • 版本(Version,4bits): IP 版本,目前為 version 4 • IHL (Internet Header Length,4bits):表頭長度(以32bits為單位) • 服務型態(Service Type,8bits):表示可靠性、precedence、delay、throughput 的旗標 • 總長度(Total Length,16bits): IP Datagram 的長度(以byte為單位)

  27. IP Datagram Header欄位(2) • 識別碼(Identification,16bits):傳送端會將一個獨一無二的識別碼存在送出的 datagram 。當路由器重新切割datagram時,路由器會複製識別碼給每一個片段(fragment)。 • 旗標(Flags,3bits):指出 Datagram 分割成片段時的一些選項。 • 段落偏移量(Fragment Offset ,13bits ):指出此資料段是具有相同識別碼的第幾個。接收端使用識別碼及 IP 來源位址將片段重組時,利用段落偏移量欄位可將片段排續。

  28. IP Datagram Header欄位(3) • 存活時間(Time To Live,8bits):設定此 Datagram可以經過幾個閘道器。 • 協定號碼或型態(Protocol Number 或 Type,8bits):利用協定號碼可決定是資料是來自那一個傳輸層協定。 • 表頭的加總查核碼( Header Checksum,16bits):每個閘道器都會檢查 IP Header 的 Checksum。

  29. IP Datagram Header欄位(4) • 來源位址(Source Address,32bits):傳送端主機的 IP Address • 目的位址(Destination Address,32bits):目的地主機的 IP Address • 選項(Option):例如路由規格等傳送端可設定的選項等。 • 填補(Padding):加在Option後面使IP Header長度為32 bits倍數。 • 資料(Data,16bits):上層的資料,但應避免使IP datagram 超過 65536bytes。

  30. IP 傳送資料的過程 • 以唯一的 IP 位址決定傳送路徑。 • 封裝且透過網路存取層傳送 IP 資料段。 • 傳送資料給傳輸層 • 利用header中的協定號碼決定是那一個傳輸層協定。 • 將萃取資料送給此傳輸層協定模組。 • 傳輸層協定以port 號碼決定資料屬於那一個應用行程。

  31. 網際控制訊息協定(Internet Control Message Protocol,ICMP) • 透過IP來傳送控制訊號 • 常用的功能: • 流量控制 • 偵測無法到達的目的地 • 重導路徑 • 偵測遠端主機

  32. 使用者資料段協定(User Datagram Protocol,UDP) • 只負責將訊息傳到網路上,是一種不可靠、非連結導向的協定。 • 簡單、效率高、延遲時間小 • 使AP在協定所在造成的額外負擔最少的情況下,經由網路交換訊息。

  33. UDP 的封包 Packet 格式 Bit 0 16 31 來源埠Source Port 目的埠Destination Port 訊息長度 加總查核碼 Checksum 應用層傳來的訊息(Message)資料

  34. UDP PacketHeader 欄位 • 來源埠(Source Port,16bits):傳送端主機的Port Number • 目的埠(Destination Port,16bits):目的地主機的Port Number • 訊息長度(Length,16bits):header+data的長度(以byte為單位) • 加總查核碼(Checksum,16bits):header+pseudo header+data • 資料(Data,16bits):應用層傳來的訊息(Message)資料

  35. 傳輸控制協定(Transmission Control Protocol,TCP) • 端點對端點之間的錯誤偵測與更正功能,提供可靠、連結導向的傳輸服務。 • 用 16 bits 的埠號(Port Number)決定所服務的上層AP。 • 以三段式交握(3-way & 4-way Hands-hake)來建立與結束連結。 • 以確認重傳(Positive Acknowledgement with Re-transmission,PAR)的方式來提供可靠性。

  36. TCP Segment Format

  37. TCP 的資料節 segment Bit 0 4 8 16 24 31 1 來源埠 目的埠 2 序號 Sequence Number 字組Word 3 確認號碼 Acknowledge Number 表頭Header 4 偏移量 保留 旗標 訊框 Window 加總查核碼 checksum 緊急指標 5 6 選項 填補 資料由此開始…

  38. TCP Segment Header 欄位(1) • 來源埠(Source Port,16bits):傳送端主機的port number • 目的埠(Destination Port,16bits):目的地主機的 port number • 序號(Sequence Number,32bits): • SYN=0:此序號指出該 Segment 的第一個 Byte 是整個 Stream 的第幾個 Byte。 • SYN=1:為初始序號(Initial Sequence Number,ISN),整個 Stream 的第一個 Segment 的第一個位元的號碼為 ISN+1。

  39. TCP Segment Header 欄位(2) • 確認號碼(Acknowledge Number,32bits):代表下一次希望收到 Segment 的 Sequence Number。 • 資料位移(Data Offset,4 bits):TCP Header 的長度(以 32 bit 字組為單位) • 保留(Reserved,6 bits):均設為 0 • 訊窗(Windows,16 bits):緩衝器(Buffers)還能接收的 byte 數目。

  40. TCP Segment Header 欄位(3) • 控制位元(Control Bits,6 bits): • URG:Urgent Pointer field significant • ACK:Acknowledgement field significant • PSH:Push Function • RST:Reset the connection • SYN:Synchronize sequence numbers • FIN:No more data from sender

  41. TCP Segment Header 欄位(4) • 加總查核碼(Checksum,16bits):所有Header 與 Text 的 16 bit 字組的總和取其 1’s complement • 緊急指標(Urgent Pointer,16 bits) • 選項(Option) • 填補(Padding):加在Option後面使 TCP Header長度為32 bits倍數 • 資料(Data,16bits):上層的資料

  42. 3-way handshake 建立連結 • Host 1 設定同步訊號SYN(包含ISN)送給Host 2 • Host 2 收到 SYN 後設定ACK以及自己的SYN,通知 Host 1。 • Host 1 送出ACK給Host 2

  43. 4-way Handshake 結束連結 • Host 1 設定結束訊號FIN 送給Host 2 • Host 2 收到 FIN 後設定ACK以及自己的FIN,通知 Host 1。 • Host 1 送出ACK給Host 2

  44. TCP 的確認重傳 • 以確認重傳(Positive Acknowledgement with Retransmission,PAR)的方式來提供可靠性。 • 封包遺失需要重傳。或是接收對方的 segment,使用 checksum 檢查是否正確: • good:送 ACK 給對方(確認)。 • bad:丟棄此 segment。經一段時間(timeout)對方發現沒有收到ACK便會重送(retransmit)此 segment。

  45. 資料遺失與重傳 設定重傳的timeout時間

  46. 可調節的重傳時間 計算每次收到回應的時間,便可求出此連結平均的 round-trip delay,以設定重傳的timeout時間

  47. TCP 的流量控制(Flow Control) • TCP 將資料視為連續不斷的byte-stream,因此必需維護 bytes 順序與流量控制。 • 在建立 Connection 時,雙方以 SYN 通知對方自己的 ISN。每個 Segment 依照其 Sequence Number重組為 Stream。 • Receiver 利用 ACK 讓 Sender 知道它已接收那些資料,以及還能接收多少資料。

  48. Sliding Window Window (specifies which streams are want to be received) 1 1001 2001 3001 4001 5001 6001 7001 Window Slides Window 已收到的資料 1 1001 2001 3001 4001 5001 6001 7001

  49. 流量控制範例一 Window=6000 已收到的資料 目前的segment 1001 2001 3001 4001 5001 6001 7001 Source 目前送出segment 的序號=4001 確認號碼=2001 起始序號(ISN)=0

  50. 流量控制範例二

More Related