420 likes | 552 Views
第 2 章. TCP / IP 簡介. TCP / IP 簡介. Transmission Control Protocol / Internet Protocol ( TCP / IP) 協定組是由美國國防部設計的 其設計目的是為了確保資料的完整性 , 以及在戰爭中還能維持通訊 , 所以是一種非常可靠、復原能力很強的網路. DoD 與 OSI 模型. TCP / IP 協定組. 處理 / 應用層協定. Telnet 終端模擬 ﹐ 讓客戶端機器看起來就像它是直接連結到本地網路的終端機 FTP
E N D
第 2 章 TCP / IP 簡介
TCP / IP 簡介 • Transmission Control Protocol / Internet Protocol ( TCP / IP) 協定組是由美國國防部設計的 • 其設計目的是為了確保資料的完整性, 以及在戰爭中還能維持通訊, 所以是一種非常可靠、復原能力很強的網路
處理 / 應用層協定 • Telnet • 終端模擬﹐讓客戶端機器看起來就像它是直接連結到本地網路的終端機 • FTP • 用來列出與操縱目錄、列出檔案內容、以及在主機之間複製檔案, 但不能把遠端的檔案當作程式來執行 • 大檔案的傳送較適合使用FTP﹐而非電子郵件 • TFTP • 精簡版 FTP﹐只能進行檔案的傳送與接收 • 沒有驗證的機制, 是不安全的 • NFS • 透過網路分享相同或不相同之檔案系統的檔案 • SMTP • 傳送電子郵件:利用佇列來儲存並轉送郵件
處理 / 應用層協定(續) • LPD • 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 • 傳送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
UDP • UDP是無連線式的協定﹐而且將資料段傳送出去之後就不管了, 所以是不可靠的協定﹐但因此耗費的網路資源較少 • 應用程式的開發者可選擇 TCP 的可靠性, 或 UDP 的快速傳輸 • 選擇以 UDP 來取代 TCP的情況 • 每次都只傳送小訊息﹐建立、維護、及關閉 TCP 連線所耗費的overhead代價太大﹐例如SNMP • 可靠性已經在處理 / 應用層處理了﹐例如NFS、VoIP
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 協定欄位
ICMP • ICMP 是個為 IP 設計的管理協定與訊息服務提供者, 提供網路問題的相關資訊給主機。其訊息乃以 IP 資料包來運送 • ICMP 相關的常見事件與訊息 • destination unreachable • buffer full如果路由器用來接收封包的buffer滿溢時﹐則送出此訊息﹐直到擁擠情況緩和為止 • Hop如果資料包在抵達目的地之前就已經到了Hop數量的限制, 則收到資料包的路由器就會將它丟掉, 然後利用 ICMP 傳送一則死亡訊息, 通知封包的傳送端機器 • Ping利用 ICMP 的echo request與echo response來檢查互連網路上某部機器之實體與邏輯的連通性 • Traceroute利用 ICMP 的timeout 訊息來找出封包穿越互連網路時所經過的路線
ICMP Echo Request 範例 唯一使用 到Ether-Type 欄位 的訊框就是 Ethernet_II 訊框
ICMP Echo Request 範例(續) ICMP封包 Echo Request
RARP • 為無磁碟的機器找尋它的 IP 位址﹐傳送包含其 MAC 位址的封包, 詢問一個指定給該 MAC 位址的 IP 位址
Proxy ARP • 萬一預設閘道當掉了怎麼辦? Proxy ARP 可以幫助子網路上的機器, 在沒有重設路徑或預設閘道的情形下抵達遠端子網路 • Proxy ARP 其實並不是一種協定, 而是路由器執行的一種服務, 用來代表某些裝置﹐而這些裝置與其他對它們發出 ARP 請求的裝置是被路由器隔開的。目的是要讓這些發出 ARP 請求的裝置以為它們和那些被路由器隔開的裝置共享同一個子網路 • 預設上,所有的 Cisco 路由器上都會設定 Proxy ARP - 如果您不需要使用它, 就應該要將它關掉
IP 位址 • IP 位址是指定給 IP 網路上之每部機器的一個數值識別碼, 標出裝置在網路上的特定位置。 • IP 位址是個軟體位址, 而非硬體位址 - 後者是燒在網路界面卡上, 用來尋找區域網路上的主機 • IP 位址的設計是要讓網路上的一部主機, 可以和其它位於不同網路上的主機互相通訊, 而不管參與通訊之主機位於哪一種區域網路中 • 32 位元的 IP 位址是結構化的或階層式的位址﹐以增加遶送的效率 • 其中一部份的位址代表網路位址, 其它部份則代表子網路與主機, 或者只是代表節點位址 • 最常用的表示法:以點號隔開的十進位, 如 172.16.30.56
網路位址與主機位址 • 網路位址又稱為網路號碼﹐可唯一地識別每個網路。同一個網路上的每部機器會共享一個網路位址, 當作他們 IP 位址的一部份。例如在 172.16.30.56位址中的172.16 • 主機位址是要指派給網路上的每部機器, 做唯一地識別。例如在 172.16.30.56位址中的 30.56
A級網路 • 格式:網路.節點.節點.節點 • 第一個位元組的第一個位元一定要是 0:0xxxxxxx • A 級的網路位址是0.x.x.x ~ 127.x.x.x﹐共有 28-1=128 種, 但全部為 0 的網路位址是要保留給預設路徑用的, 而 127 的位址則是要保留給診斷用的, 不能使用﹐所以實際上只有 126 個 • 一個 A 級網路位址可以有多少有效主機?例如 • 所有主機位元都為 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 • B 級的網路位址是128.0 ~ 191.255﹐共有 216-2 = 16777214 種 • 一個 B 級網路位址可以有多少有效主機?例如 • 所有主機位元都為 0 的網路位址:172.16.0.0 • 所有主機位元都為 1 的廣播位址:172.16.255.255 • 有效的主機則是 172.16.0.1 到 172.16.255.254﹐共216-2= 65534個
C級網路 • 格式:網路.網路.網路.節點 • 第一個位元組的前三個位元一定要是110:110xxxxx • C級的網路位址是192.0.0 ~ 223.255.255﹐共有 224-3 = 2097152 種 • 一個 C 級網路位址可以有多少有效主機?例如 • 所有主機位元都為 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 層廣播 • 又稱為硬體廣播: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位址