第 2 章 TCP / IP 簡介
TCP / IP 簡介 Transmission Control Protocol / Internet Protocol ( TCP / IP) 協定組是由美國國防部設計的 其設計目的是為了確保資料的完整性, 以及在戰爭中還能維持通訊, 所以是一種非常可靠、復原能力很強的網路
DoD與OSI模型
TCP / IP 協定組
處理 / 應用層協定 Telnet FTP TFTP NFS SMTP 終端模擬﹐讓客戶端機器看起來就像它是直接連結到本地網路的終端機 用來列出與操縱目錄、列出檔案內容、以及在主機之間複製檔案, 但不能把遠端的檔案當作程式來執行 大檔案的傳送較適合使用FTP﹐而非電子郵件 TFTP 精簡版 FTP﹐只能進行檔案的傳送與接收 沒有驗證的機制, 是不安全的 NFS 透過網路分享相同或不相同之檔案系統的檔案 SMTP 傳送電子郵件:利用佇列來儲存並轉送郵件
處理 / 應用層協定(續) LPD X Window SNMP DNS LPD 與 LPR 程式將列印的工作暫存起來, 並利用 TCP / IP 傳送給網路印表機 X Window 讓客戶端程式在某部電腦上執行, 並且透過視窗伺服器, 將它的畫面顯示在另一部電腦上 SNMP 定時或不定時從管理工作站polling網路上的裝置來收集資料 扮演網路看門狗的角色(agent)﹐發出Trap來通知管理員突發事件 DNS 以容易解讀、又不常變動的網域名稱來取代IP﹐然後用DNS來解析成IP位址 DNS使用FQDN﹐FQDN是階層式的 在 Cisco 路由器上可使用 ip domain-name lammle.com 命令為每個解析的請求附加 lammle.com 網域, 否則您就得鍵入整個 FQDN
處理 / 應用層協定(續) DHCP / BootP DHCP 可以提供的資訊包括: 傳送IP 位址給主機﹐以簡化管理工作 Cisco 路由器也可以當作 DHCP 伺服器 BootP 也會傳 IP 位址給主機, 但主機的硬體位址必須手動地輸入到 BootP 表格中。另一方面﹐BootP 可以用來傳送主機在開機時所需的作業系統, 而 DHCP 卻不行 DHCP 可以提供的資訊包括: IP 位址 子網路遮罩 網域名稱 預設閘道 (路由器) DNS WINS 資訊 尋找 DHCP訊息以要求 IP 位址的客戶端, 會同時送出第 2 層與第 3 層的廣播 DHCP使用UDP
主機對主機層協定 主機對主機層的主要目的是要隔開其上層的應用服務, 以免受制於網路的複雜性 傳輸控制協定 (Transmission Control Protocol, TCP) 使用者資料包協定 (User Datagram Protocol, UDP)
TCP 開始傳送資料段之前, 先聯繫目的端建立一條虛擬電路﹐並協議出傳送端在收到接收端回應的確認之前, 可以傳送多少量的資訊 從應用程式接收大塊的資訊, 然後切割成segment﹐並依序編號, 使得目的端的 TCP 協定可以重新將它組成應用程式所要的順序 當資料段傳送出去之後, 傳送端主機的 TCP 會等待接收端 TCP 的虛擬電路會談所回應的確認, 並重新傳送那些沒有收到確認的資料段 TCP 是全雙工、連線導向式、可靠的、以及準確的協定﹐也因此會增加不小的overhead
TCP 資料段格式
TCP 資料段範例
UDP UDP是無連線式的協定﹐而且將資料段傳送出去之後就不管了, 所以是不可靠的協定﹐但因此耗費的網路資源較少 應用程式的開發者可選擇 TCP 的可靠性, 或 UDP 的快速傳輸 選擇以 UDP 來取代 TCP的情況 每次都只傳送小訊息﹐建立、維護、及關閉 TCP 連線所耗費的overhead代價太大﹐例如SNMP 可靠性已經在處理 / 應用層處理了﹐例如NFS、VoIP
UDP 資料段格式
UDP 資料段範例 額外負擔多麼少啊! UDP 資料段中找不到序號、確認號碼、以及視窗大小等可靠性機制
主機對主機協定之重要觀念
埠號 TCP 與 UDP 都必須使用埠號 (port number) 來與其上層溝通, 因為他們同時在網路上追蹤各個不同的對話 發起者的來源埠號是由來源主機動態指定的, 他們是從 1024 開始往上遞增的某個號碼 而 RFC 3232 (或參考 www.iana.org) 中定義了 1023 及其以下的號碼, 他們就是所謂的眾所周知的埠號 (well-known port)
埠號 虛擬電路若不是搭配含有眾所周知埠號之應用程式, 我們就會從特定範圍中隨機指定一個埠號給它, TCP 資料段中的這些埠號可用來識別來源或目的之應用程式或程序。 圖 2.5 展示 TCP 與 UDP 如何利用埠號。 同時用到TCP或UDP
TCP封包範例一 由來源主機決定﹐區分各個不同的會談 ﹐必定超過1024 Well-known port﹐代表此次連線 想要取得的服務 告訴遠端的目的裝置 它想要建立會談
TCP封包範例二:Syn 封包的確認 表示來源埠已被接受, 同意 與啟始主機建立虛擬電路
網際網路層協定 2 個主要目的 網際網路層的協定包括: 遶送 提供單一的網路界面給上層協定 IP ICMP ARP RARP Proxy ARP
IP封包格式
IP 協定欄位
IP協定欄中的清單
ICMP ICMP 是個為 IP 設計的管理協定與訊息服務提供者, 提供網路問題的相關資訊給主機。其訊息乃以 IP 資料包來運送 destination unreachable buffer full如果路由器用來接收封包的buffer滿溢時﹐則送出此訊息﹐直到擁擠情況緩和為止 Hop如果資料包在抵達目的地之前就已經到了Hop數量的限制, 則收到資料包的路由器就會將它丟掉, 然後利用 ICMP 傳送一則死亡訊息, 通知封包的傳送端機器 Ping利用 ICMP 的echo request與echo response來檢查互連網路上某部機器之實體與邏輯的連通性 Traceroute利用 ICMP 的timeout 訊息來找出封包穿越互連網路時所經過的路線
ICMP錯誤訊息案例
ICMP Echo Request 範例 唯一使用 到Ether-Type 欄位 的訊框就是 Ethernet_II 訊框
ICMP Echo Request 範例(續)
ARP
ARP廣播封包範例
RARP 為無磁碟的機器找尋它的 IP 位址﹐傳送包含其 MAC 位址的封包, 詢問一個指定給該 MAC 位址的 IP 位址
Proxy ARP 萬一預設閘道當掉了怎麼辦? Proxy ARP 可以幫助子網路上的機器, 在沒有重設路徑或預設閘道的情形下抵達遠端子網路 Proxy ARP 其實並不是一種協定, 而是路由器執行的一種服務, 用來代表某些裝置﹐而這些裝置與其他對它們發出 ARP 請求的裝置是被路由器隔開的。目的是要讓這些發出 ARP 請求的裝置以為它們和那些被路由器隔開的裝置共享同一個子網路 預設上,所有的 Cisco 路由器上都會設定 Proxy ARP - 如果您不需要使用它, 就應該要將它關掉
IP 位址 IP 位址是指定給 IP 網路上之每部機器的一個數值識別碼, 標出裝置在網路上的特定位置。 其中一部份的位址代表網路位址, 其它部份則代表子網路與主機, 或者只是代表節點位址 最常用的表示法:以點號隔開的十進位, 如 172.16.30.56
網路位址與主機位址 網路位址又稱為網路號碼﹐可唯一地識別每個網路。同一個網路上的每部機器會共享一個網路位址, 當作他們 IP 位址的一部份。例如在 172.16.30.56位址中的172.16 主機位址是要指派給網路上的每部機器, 做唯一地識別。例如在 172.16.30.56位址中的 30.56
網路級別
保留的IP位址
A級網路 格式:網路.節點.節點.節點 第一個位元組的第一個位元一定要是 0:0xxxxxxx 所有主機位元都為 0 的網路位址:10.0.0.0 所有主機位元都為 1 的廣播位址:10.255.255.255 有效的主機則是 10.0.0.1 到 10.255.255.254﹐共224-2= 16, 777, 214個
B級網路 格式:網路.網路.節點.節點 第一個位元組的前二個位元一定要是10:10xxxxxx 所有主機位元都為 0 的網路位址:172.16.0.0 所有主機位元都為 1 的廣播位址:172.16.255.255 有效的主機則是 172.16.0.1 到 172.16.255.254﹐共216-2= 65534個
C級網路 格式:網路.網路.網路.節點 第一個位元組的前三個位元一定要是110:110xxxxx 所有主機位元都為 0 的網路位址:192.168.100.0 所有主機位元都為 1 的廣播位址:192.168.100.255 有效的主機則是 192.168.100.1到 192.168.100.254 ﹐共28-2= 254個
D 與 E 級網路 224 與 255 之間的網路是保留給 D 與 E 級網路使用的, D 級 (224-239) 是要用來進行多點傳播, 而 E 級 (240-255) 是要作為科學用途
私有 IP 位址 私有 IP 位址只能用在私有的網路上, 無法在網際網路上遶送﹐目的是為了安全性, 但同時也節省了 IP 位址空間 若要連接網際網路﹐需要利用 NAT技術將它轉換成網際網路上可用的位址 需要使用何種私有IP位址? 建置企業網路時無論它有多小都應該使用 A 級網路, 因為它提供最大的彈性與擴充性 建置家庭網路時最好使用 C 級位址, 因為這一種最容易瞭解與設定
廣播位址 第 2 層廣播 廣播 (第 3 層) 單點傳播 (unicast) 多點傳播 (multicast) 又稱為硬體廣播:FF.FF.FF.FF.FF.FF 傳送給區域網路上的所有節點﹐無法穿越區域網路的邊界 (路由器) 廣播 (第 3 層) 意圖要抵達廣播網域上的所有主機﹐例如172.16.255.255 也可能是所有網路與所有主機-255.255.255.255 單點傳播 (unicast) 從 255.255.255.255 到實際目的 IP 位址的廣播封包 例如:有部主機送出 FF.FF.FF.FF.FF.FF 之第 2 層廣播與 255.255.255.255 之第 3 層目的地廣播, 以找尋DHCP伺服器。路由器會瞭解這是一個想要找 DHCP 伺服器的廣播, 因為它的目的埠號是 67。於是就將這個請求轉送給真正的 DHCP 伺服器的 IP 位址(亦即將目的位址改成特定位址)。 (為了讓路由器提供這個服務, 您得用 ip helper-address 命令來設定界面, 因為這並非預設服務) 多點傳播 (multicast) 從單一個來源端送出封包, 並傳送給不同網路上的多個裝置 藉由傳送訊息或資料到IP multicast group位址, 然後路由器再將封包轉送給每部已經加入該群組位址的主機 例如:主機將會接收到例如目的地為 224.0.0.9 的多點傳播封包﹐只有執行 EIGRP 協定的路由器會解讀這些封包﹐其他主機則會丟棄它。這會節省 PC 的處理資源, 而非 LAN 的頻寬。有時候多點傳播可能會引起嚴重的 LAN 壅塞 多點傳播位址的範圍從 224.0.0.0 到 239.255.255.255﹐亦即D級IP位址