310 likes | 442 Views
鍵結層. 靜宜大學資工系 蔡奇偉 2006. 大綱. 乙太網路 (Ethernet) SLIP CSLIP PPP 與 PPPoE Loopback MTU 序列線產能的計算. 乙太網路 (Ethernet). 1982 年由 DEC 、 Intel 及 Xerox 所提出。 匯流排架構 採用 CSMA/CD 的存取方式。 資料傳輸率為 10Mbps, 100Mbps 或 1Gbps 。 採用 48 位元的位址。 定義在 IEEE 802.3 標準。 封裝標準: RFC 894 與 RFC 1042.
E N D
鍵結層 靜宜大學資工系 蔡奇偉 2006
大綱 • 乙太網路 (Ethernet) • SLIP • CSLIP • PPP 與 PPPoE • Loopback • MTU • 序列線產能的計算
乙太網路 (Ethernet) • 1982年由 DEC、Intel 及 Xerox 所提出。 • 匯流排架構 • 採用 CSMA/CD 的存取方式。 • 資料傳輸率為 10Mbps, 100Mbps 或 1Gbps。 • 採用 48 位元的位址。 • 定義在 IEEE 802.3 標準。 • 封裝標準:RFC 894 與 RFC 1042
CSMA/CD Carrier Sense Multiple Access with Collision Detection(載波感應多重存取及衝突偵測)為傳統乙太網路的介質存取方法。在傳統的乙太網路上,實體上各站是以匯排流或是星型方式連接,在邏輯上,其連接方式都是匯流排。這表示傳輸介質是由各站所共享,任何一個時段只有一站能使用。這也表示,所有各站都可以收到由某站送出的訊框,只有真正的目的站才留下訊框,其他的則要丟掉。
我們如何確定在同一時問,二站不會同時使用呢?如果他們同時使用匯流排,則其訊框會在介質上碰撞。CSMA/CD 則是用來解決此一問題,其原理如下: • 1.各站使用傳輸介質的權利相同 (多重存取) • 2.某一站要送出訊框之前,需要先傾聽 (感測) 傳輸介質的使用狀況。如果傳輸介質上沒有資料,要送的站可以開始傳送 (載波感測) • 3.有可能兩站同時感測到傳輸介質上沒有資料,而各自送出其訊框。若是這樣,則碰撞發生。協定規定,送出站要在開始送出後,繼續傾聽線路狀況。若有碰撞發生,所有站會感測到此碰撞,每個送出站接著送出一個代表壅塞的訊號;然後每個發生碰撞的站等待一隨機時問,之後再重送。此一隨機時問可避免同時重送之發生。
三個因素與 CSMA/CD 標準有關,分別是:最小訊框長度、資料傳輸率、和碰撞區間 (collision domain)。某一站要確定在線路上沒有資料所需的等待時間,等於最小訊框長度除以傳輸率。這個時間與第一個位元要旅行的最長網路距離 (即碰撞區間) 成正比。換言之,我們有 最小訊框長度/傳輸率 正比於 碰撞區間/傳播延遲時間 以傳統乙太網路而言,最小訊框長度 520 位元,傳輸率為10 Mbps,傳輸延遲速度幾乎等於光速,而碰撞區間大約為2500 的公尺。
IEEE 802.3 乙太網路的資料連接層有兩個子層: • LLC(logical link control, 邏輯連線控制子層 ) • 負責資料連接層的流量及錯誤控制。 • MAC(media access control, 介質存取控制子層) • 負責CSMA/CD的運作。MAC負責將來自 LLC 的資料封裝成訊框,然後交給實體層做訊號的編碼。 • 實體層在傳輸介質上以電氣訊號傳送資料給下一站。另外,實體層偵測碰撞並回報碰撞給資料連接層。
SNAP • Sub-network Access Protocol • DSAP • Destination Service Access Point • SSAP • Source Service Access Point
乙太網路封裝(RFC 894) 目的位址:有 6 個位元組,代表訊框接收者的實體位址。 來源位址:有 6 個位元組,代表訊框傳送者的實體位址。 長度/類別:如果本欄之值小於1518,則是訊框中的資料長度。如果大於1536,則是使用的網際網路上層協定。 資料:來自上層的資料,資料欄大小為 46 到 1500 位元組。如果上層資料不足 46 位元組,乙太網路會將其補足。如果超過 1500 位元組,上層協定必須將資料分段。 CRC 檢查碼:最後這個 4 位元組ㄎ欄位,用 CRC-32 的方式來做錯誤偵測。
乙太網路位址 乙太網路上的每一站台,如 PC、工作站、列表機都有自己的網路介面卡 (Network Interface Card, NIC)。NIC 安裝在站台內部,提供該站一個六位元組的實體位址。乙太網路位址是 48 位元。通常是以16 進位制以分號隔開的方式表示,如下所示: 07-OI-02-01-2C-4B 位址是一個位元組一個位元組送,從左到右,但是每個位元組由最低有效位元先送,最高有效位元最後送。
乙太網路位址有三類: • 單點位址(unicast address) • 第一個位元組的最低有效位元為 0。 • 群播位址(multicast address) • 第一個位元組的最低有效位元為 1 • 廣播位址(broadcast address) • 廣播位址則為 48 個 1。 • 來源位址一定是單點位址。目的位址可為單點位址 (只有一個接收者)、群播位址 (一群接收者)、或是廣播位址 (連在LAN 上的所有接收者)。
IP 資料報 c0 db db dc db dd END SLIP (Serial Line IP) • 用序列線來傳送 IP 資料報。 • RFC 1055 • IP 資料報之後加上特殊字元 END (0xc0)。 • 置換資料報中的字元 0xc0 和 0xdb (SLIP ESC): • 0xc0 → 0xdb 0xdc • oxdb → 0xdb 0xdd
SLIP 的缺點 • 每一端都要知道其他端的 IP 位址。但是沒有方法讓一端通知其他端關於它的 IP 位址。 • 沒有類型欄。假如一條序列線被SLIP 使用,它便不能同時被別的協定使用。 • SLIP 不支援位元總和檢查。假如一條吵雜的電話線破壞了經由 SLIP 傳送的資料報,得傳送到較高層後才會被偵測出。
CSLIP (Compressed SLIP) • RFC 1144 • IP 資料報包含 20 位元組的 IP 標頭與 20 位元組的 TCP 標頭。若原始資料大都是少量的位元組,則這些標頭顯然浪費掉大部分的頻寬。 • 兩端傳送資料時,這些標頭的大部分欄位常維持不變。 • CSLIP 只傳送有變動的標頭欄位內容,藉此技巧把 40 位元組的標頭壓縮至 3 到 5 個位元組。 • 大幅度地提昇小包資料的傳送效率。
PPP (Point-to-Point Protocol) • 提供序列連線的 IP 資料報封裝方法,PPP 支援 8 位元資料無同位元的非同步鏈結和或位元導向的同步鏈結。 • 鏈結控制協定(Link Control Protocol, LCP) 用來建立、設定並測試資料鏈結的連接,允許兩端協議不同的選項。 • 網路控制協定(Network Control Protocol, NCP) 支援許多不同的網路層協定,如 IP、OSI 網路層、DECnet 以及AppleTalk 等等。 • RFC 1548 說明封裝的方法和鏈結控制協定。RFC 1332 說明的網路控制協定。
最多 1500 位元組 PPP 框架的格式
處理資訊欄中的旗標值 0x7E 同步傳輸採用以下的 bit stuffing 技巧:
8 7 6 5 4 3 2 1 0 → 1, 1 → 0 非同步傳輸採用以下的字元置換技巧: 1. 把要置換掉的字元的第 6 個位元改成其補數。 2. 在要置換掉的字元之前加上 ESC 字元 0x7d。 3. 置換以下的字元: 0x7e, 0x7d, 以及小於 0x20 的所有ASCII 控制字元。譬如: 0x7e → 0x7d, 0x5e 0x7d → 0x7d, 0x5d 0x01 → 0x7d, 0x21
PPP 優點 • 在序列線上支援了多種協定,不只是 IP 資料報。 • 每個框架上都有 CRC 檢查。 • 能夠動態協商各端的 IP 位址(使用IP網路控制)。 • TCP 和 IP標頭以類似 CSLIP 的方式壓縮。 • 透過鏈結控制協定可以協商許多資料鏈結的選項。 獲得這些功能所付的代價是:每個框架多用 3 個位元組、建立鏈結時需要一些協商用的框架,以及較為複雜的實作 (implementation)。
回溯介面 (Loopback Interface) 絕大部分的實作都支援回溯介面 ( loopback),它讓用戶端和伺服端能夠在同一台主機上用 TCP/IP 溝通。A 級的網路 ID 127 就是保留給回溯介面,所以在慣例上,大多數的系統都會指定 127.0.0.1 的位址給回溯介面,並指定它的名稱為 localhost (表示本機)。一個傳送給回溯介面的 IP 資料報,不會出現在其他任何的網路上。
大部分的 loopback 實作都在傳輸層和網路層完成所有的資料處理,然後在資料報離開網路層底部時,IP 資料報才會循環回給它自己。 傳輸層和 IP 層完整地處理回溯資料,這種做法似乎沒有效率,然而卻能簡化設計,因為回溯介面對於網路層來說僅僅是另一個鏈結層。網路層把資料報如同對其他鏈結層一般地傳給回溯介面,然後回溯介面再把資料報放回 IP 的輸入佇列。
MTU (最大傳輸單位) • Maximum Transmission Unit • 大多數的網路類型對於框架的大小都有其上限。 • 假如 IP 資料報比鏈結層的 MTU 還大,IP會執行分段 (fragmentation ),把資料報分成較小的區塊或稱小段( fragment ),讓每個小段比 MTU 小。
路徑 MTU • 同一網路中的兩台主機互相通訊時,只需考慮此網路連線的 MTU。 • 跨網路的兩台主機互相通訊時,封包將經過若干不同的網路連線,其中最小的 MTU 稱為路徑 MTU (path MTU)。 • 路徑 MTU 不是固定值,而是依路由 (route) 而定。 • 路徑 MTU 是不對稱的,即主機 A 到主機 B與主機 B 到主機 A 兩者的路徑 MTU 可能不相同。
序列線產能的計算 假如數據線的速度是 9600 位元/秒,加上一個開始和一個結束的位元,那纜線的速度就是 960 位元組/秒。以這種速度傳送一個1024位元組的封包需要 1066ms,假如我們使用SLIP 鏈結來互連兩個應用程式如 FTP來收送 1024 個位元組的封包,平均要耗費 533ms (1066ms 的一半) 在等待傳送彼此間的交談封包( interactive packet)。 等待 553ms 對交談式回應來說是無法忍受的,人類行為研究指出,超過 100-200ms 的交談反應時間並不理想。交談反應時間是指傳送封包與接收回應的往返時間。
減少 SLIP 鏈結的 MTU 為 256,意味著傳送一個框架的最長時間是 266ms,以及平均等待時間降為它的一半 (133 ms) 。這顯然有所改善,但是仍不夠完美。我們選擇這個值 (相較於64或128) 的理由是對大量資料傳輸 (像較大的檔案傳輸) 提供較好的使用率。假設在一個 261 位元組的框架中,有 5 個位元組的 CSLIP 標頭,256 個位元組的資料,則 98.1% 分給資料,1.9% 分給標頭,算是一個不錯的使用率。若減低 MTU到 256 以下,就減少我們傳輸大量資料的最大產能。