940 likes | 1.27k Views
第五章. Data Link Layer 資料 鏈結層. 目的. 瞭解何謂資料鏈結層 錯誤偵測和修正 共享傳輸媒介的方法 鏈結層的定址 Flow control 瞭解各種不同的鏈結層技術. 概要. 資料鏈結層的準則 錯誤偵測 , 修正 共享媒介 : multiple access 鏈結層的位址 , ARP 資料鏈結層技術 乙太網路 (Ethernet) hubs, bridges, switches IEEE 802.11 LANs PPP, ATM, X.25, Frame Relay. 資料鏈結層. M. H. H. H. H. H.
E N D
第五章 Data Link Layer 資料鏈結層
目的 • 瞭解何謂資料鏈結層 • 錯誤偵測和修正 • 共享傳輸媒介的方法 • 鏈結層的定址 • Flow control • 瞭解各種不同的鏈結層技術
概要 • 資料鏈結層的準則 • 錯誤偵測, 修正 • 共享媒介: multiple access • 鏈結層的位址, ARP • 資料鏈結層技術 • 乙太網路(Ethernet) • hubs, bridges, switches • IEEE 802.11 LANs • PPP, ATM, X.25, Frame Relay
M H H H H H H H H H t n l t t n l t n M M application transport network link physical M 資料鏈結層 • 兩個實際相連的設備間 • 如:host-router, router-router, host-host • 以訊框(frame)為資料的單位 network link physical data link protocol M frame phys. link adapter card
資料鏈結層的功能 • 把上層的datagram加頭加尾封裝成frame • 定義媒介上的存取方式 • 使用實際位址 (physical addresses) • 實際連接兩點之間的可靠傳輸 • flow control (第三章)
鏈結層的功能 • Flow Control 作用在傳送端 (sender)和接收端(receivers)之間 • 錯誤偵測 (Error Detection) • 訊號衰減和雜訊會造成錯誤發生 • 當接收端發現錯誤,會通知傳送端重送或是把訊框給丟掉 • 錯誤修正 • 由傳送端辨別並修正錯誤的位元,避免重送
錯誤偵測 EDC= Error Detection and Correction bits (redundancy) D = Data protected by error checking, may include header fields
同位元檢查 (Parity Checking) Two Dimensional Bit Parity: Detect and correct single bit errors Single Bit Parity: Detect single bit errors 0 0
Checksum: Cyclic Redundancy Check • 把資料D當作是二進位的數字 • 選出 r+1 個位元的pattern (generator), G • 目的: 選出 r 個 CRC 位元, R, 使得 • <D,R> 恰好被G整除 (modulo 2) • 接收端已知G, 以<D,R> 除以G. 如果除不盡表示有錯誤 • 可以偵測所有小於 r+1 個位元的錯誤 • 廣泛的使用 (如ATM, HDCL)
CRC 範例 D.2r XOR R = nG D.2r = nG XOR R 把D.2r除以G 得到餘數 D.2r G R = remainder[ ]
Multiple Access 協定 • 單一共享頻道上有兩個或以上節點要同時存取資料 • 一次僅能容許一個節點存取 • 由分散式的協定來決定媒介的存取(決定哪一個節點可以存取)
MAC協定的分類 • 分割頻道 (Channel Partitioning) • 把頻道分成許多小塊 (例如.時間槽, 頻率) • 分配小塊給節點使用 • 隨機存取 (Random Access) • 允許發生碰撞 • 重點在發生碰撞後的處理動作 • 輪流 • 嚴格地調節共享媒介的使用,以不發生碰撞為目的 目的: efficient, fair, simple, decentralized
頻道分割MAC協定: TDMA TDMA: time division multiple access • 每一個節點可以得到固定長度的slot(長度 = 封包傳輸時間) • 沒用到的slot稱為idle • 範例: 6-station LAN, 1,3,4有封包, slots 2,5,6 idle • TDM (Time Division Multiplexing): 頻道分割成 N個時間槽, 每個節點使用一個
頻道分割MAC協定: FDMA FDMA: frequency division multiple access • 頻譜分割成幾個頻帶 • 每一個節點使用固定的頻帶 • 頻帶中可能有沒用到的傳輸時間 • 範例: 6-station LAN, 1,3,4有封包, 頻帶2,5,6idle time frequency bands
頻道分割--CDMA CDMA (Code Division Multiple Access) • 指定唯一的code給每一個user.是為分割code set • 通常用在無線寬頻頻道 (cellular, satellite) • 所有的user分享一樣的頻率但是使用自己的code去編碼 • encoded signal = (original data) X (chipping sequence) • decoding: inner-product of encoded signal and chipping sequence • 允許許多user同時傳送資料
Slotted Aloha • 時間分割成等長的slot • 節點在下一slot的開頭就傳送封包 • 如果發生碰撞:以p的機率重送封包直到成功為止 Success (S), Collision (C), Empty (E) slots
Slotted Aloha 效率 假設有N個節點要傳送封包 • 每個slot以p的機率傳送封包 • 成功傳送的機率S為: 單一節點: S= p (1-p)(N-1) 任意N節點 S = Prob (單一傳送) = N p (1-p)(N-1) … choosing optimum p as n -> infty ... = 1/e = .37 as N -> infty 最佳情況:37%頻道使用率
Pure (unslotted) ALOHA • unslotted Aloha: 較簡單, 非同步 • 封包不會等到在slot的開頭才傳送 • 會增加碰撞的機率
0.4 0.3 Slotted Aloha 0.2 0.1 Pure Aloha 1.5 2.0 0.5 1.0 G = offered load = Np Pure Aloha P(success by given node) = P(node transmits) . P(no other node transmits in [p0-1,p0] . P(no other node transmits in [p0-1,p0] = p . (1-p) . (1-p) P(success by any of N nodes) = N p . (1-p) . (1-p) … choosing optimum p as n -> infty ... = 1/(2e) = .18 S = throughput = “goodput” (success rate)
CSMA: Carrier Sense Multiple Access CSMA: 傳送之前會先聽 • 如果聽到idle:傳送! • 如果聽到busy:延遲傳送 • Persistent CSMA: 等到發現媒介idle, 以p的機率重送 • Non-persistent CSMA:亂數延遲一段時間
CSMA/CD (Collision Detection) CSMA/CD:載波偵測(carrier sensing), 如CSMA一般會延遲傳送 • 會偵測碰撞 • 發生碰撞就取消傳送, 發出訊號告知其他節點, 可降低頻道的浪費 • 以persistent或是non-persistent的機制重送
“輪流”的MAC協定 輪詢Polling: • 主節點邀請其他節點以輪流的方式傳送 • 利用RTS/CTS訊息 Token passing: • 節點輪流保管token • 拿到token可以傳送封包
MAC位址 (實際位址) • 在同一網路中,實際互連的設備用來通訊的位址 • 網路卡的ROM中紀錄著48位元的MAC位址 • 每一張網路卡有唯一的MAC位址 • MAC位址的分配由IEEE管理 • 製造商使用部分的MAC位址以保證唯一性 • MAC位址是平面的,所以網路卡可以拿到任意網路下使用。 • 相反的,IP位址是階層式的,和所連接的網路有關
ARP 協定 • 已知IP位址, 想推知MAC位址(實際位址) • A會對網路廣播ARP查詢封包, 裡頭包含B的IP位址 • 在區域網路中的節點都會收到此一查詢封包 • 當B收到此一封包, 就回覆自己的MAC位址(實際位址)給A • 如果B不在區域網路中, 則gateway會回覆自己的MAC位址給A • A會儲存IP和MAC位址對應的關係
繞路到其它LAN A R B
繞路到其它LAN • A(111.111.111.111)有IP封包要傳送到B(222.222.222.222) • A利用ARP查詢R(111.111.111.110)的MAC位址 • A以R的MAC位址為目的地端, 產生Ethernet訊框 • A的資料傳輸層傳送Ethernet訊框 • R的資傳輸層接收Ethernet訊框 • R發現Ethernet訊框是包含要到B的datagram • R利用ARP去找到B的MAC位址 • R以B的MAC位址為目的地端, 產生Ethernet訊框
乙太網路(Ethernet) 是最主要的區域網路技術 • 價格低廉, 廣泛使用的LAN • 簡單, 比其他LAN技術更廉價 • 有10, 100, 1000 Mbps Metcalfe’s Etheret sketch
Ethernet 訊框結構 網路卡會把IP封包封裝成Ethernet訊框 Preamble: • 在10101011之後有7個位元組的10101010 • 用來同步傳送端和接收端的clock rate
Ethernet 訊框結構 • Addresses: 6個位元組, 48-bits • Type:表示上一層的協定, 通常是IP • CRC:接收端會檢查此一欄位, 如果錯誤就會丟棄此一訊框
CSMA/CD 如果A聽到頻道是idle then { transmit and monitor the channel; If detect another transmission then { abort and send jam signal; update # collisions; delay as required by exponential backoff algorithm; goto A } else {done with the frame; set collisions to zero} } else {wait until ongoing transmission is over and goto A}
CSMA/CD Jam Signal:用來保證所有的節點都知道發生碰撞, 48 bits Exponential Backoff: • 用來調節何時重送的機制 • 第一次發生碰撞: 從{0,1}中選出K; 延遲時間等於 K x 512位元的傳輸時間 • 第二次發生碰撞: 從{0,1,2,3}選出K • 直到第十次以後, 固定從{0,1,2,3,4,…,1023}選出K
Ethernet: 10Base2 • 10: 10Mbps • 2: 佈線最長可達200公尺 • 線材:同軸線 • 拓撲:匯流排 • Segment之間可用repeater加以連接 • Repeater功用在於加強和修補收到的訊號, 再送出去, 屬於第一層(實體層)的網路設備
10BaseT/100BaseT • 10/100 Mbps • 100Mbps又稱為fast Ethernet • T表示雙絞線(Twisted Pair) • 使用hub技術 • 運用在星型拓撲 • 在hub上實作CSMA/CD • 節點到hub的最長佈線長度為100公尺
GigaBit Ethernet • Ethernet標準訊框 • 允許點對點連線和共享廣播頻道 • 在共享模式中, 節點間的距離較短 • 使用稱作“Buffered Distributors”的hub • 點對點連線是全雙工的1G bps
Token Passing: IEEE802.5 • 4 Mbps • 最長token擁有時間: 10 ms, 限制訊框的長度 • SD/ED 表示封包的開始/結尾 • AC: access control byte: • token bit: 0:表示token可以被使用, 1:表示資料是根據FC • priority bits:封包的優先權 • reservation bits: 優先權較高的節點可以利用此一位元防止優先權較低的節點拿到token
Token Passing: IEEE802.5 • FC: frame control • source, destination address: 48 bit 實際位址 • checksum: CRC • FS: frame status: 由目的地端設定 • 告知傳送端已經收到 • DLC-level ACKing
集線器 (Hub) • 實體層的設備: 可視為repeater的變形, 重複訊號給所有的介面 • Hub可以架設成階層式, 節點都在同一碰撞區域內 • 優點 • 簡單, 便宜, 容易佈置 • 延長佈線的長度限制
集線器的限制 • 訊號碰撞區域的相同效能並沒有提升 • 相同的碰撞區域一樣會限制住可加入LAN的節點數目 • 無法和其他Ethernet技術相連 • 如 10BaseT和100 BaseT
橋接器(Bridge) • 鏈結層的設備: 檢查Ethernet訊框的標頭, 決定要送往的目的地 • Bridge可以分割碰撞區域(collision domain) • 優點 • 分割碰撞區域可以增加效能並且沒有節點數目的限制 • 可連接不同Ethernet技術的網路 • 通透性:對網路卡來說, 不必知道bridge的存在 • 同一segment的封包不會透過bridge流到外面
Bridge Filtering • Bridges會學習並維護filtering table • 從進來的訊框學習傳送者的位置(LAN segmant) • 紀錄在filtering table中 • filtering table裡的一項包含 • (節點的MAC位址, Bridge介面, 時間戳記) • 超出時間會被丟棄(60分鐘)
Bridge Filtering • filtering procedure: if destination is on LAN on which frame was received then drop the frame else{ lookup filtering table if entry found for destination then forward the frame on interface indicated; else flood; /* forward on all but the interface on which the frame arrived*/ }
Bridge如何學習 假設C送訊框給D, 然後D回覆給C